PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include "genC.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "ri-util.h"
#include "effects-util.h"
#include "misc.h"
#include "properties.h"
#include "prettyprint.h"
#include "points-to.h"
Go to the source code of this file.
Functions | |
static bool | statement_equal_p (statement s1, statement s2) |
bool | control_in_set_p (control c, set s) |
test if a control belong to a set More... | |
bool | control_equal_p (const void *vc1, const void *vc2) |
_uint | control_rank (const void *vc, size_t size) |
create a key which is the statement number More... | |
bool | Ready_p (control c, set Processed, set Reachable) |
A node is ready to be processed if its predecessors are not reachable or processed. More... | |
set | ready_to_be_processed_set (control n, set Processed, set Reachable) |
A set containing all the successors of n that are ready to be processed. More... | |
static pt_map | control_to_points_to (control c, pt_map in, __attribute__((__unused__)) bool store) |
static pt_map | cyclic_graph_to_points_to (set ctrls, pt_map in, bool store __attribute__((unused))) |
pt_map | new_points_to_unstructured (unstructured uns, pt_map pt_in_g, bool __attribute__((__unused__)) store) |
bool control_equal_p | ( | const void * | vc1, |
const void * | vc2 | ||
) |
vc1 | c1 |
vc2 | c2 |
Definition at line 71 of file unstructured.c.
References control_statement, s1, and statement_ordering.
Referenced by new_points_to_unstructured().
test if a control belong to a set
unstructured.c
Definition at line 61 of file unstructured.c.
References control_statement, SET_FOREACH, and statement_equal_p().
Referenced by new_points_to_unstructured().
create a key which is the statement number
vc | c |
size | ize |
Definition at line 83 of file unstructured.c.
References control_statement, hash_string_rank(), int2a(), statement_ordering, and strdup().
Referenced by new_points_to_unstructured().
|
static |
Definition at line 131 of file unstructured.c.
References control_statement, control_successors, FOREACH, gen_full_copy_list(), merge_points_to_graphs(), new_pt_map, out, points_to_graph_assign(), and statement_to_points_to().
Referenced by new_points_to_unstructured().
|
static |
sequence seq = sequence_undefined;
seq_l = NIL,
Pred = set_assign_list(Pred, gen_full_copy_list(pred));
Definition at line 160 of file unstructured.c.
References control_predecessors, control_statement, control_successors, FOREACH, gen_copy_seq(), new_pt_map, NIL, out, points_to_graph_assign(), set_add_element(), set_assign_list(), SET_FOREACH, set_make(), set_pointer, and statement_to_points_to().
Referenced by new_points_to_unstructured().
pt_map new_points_to_unstructured | ( | unstructured | uns, |
pt_map | pt_in_g, | ||
bool __attribute__((__unused__)) | store | ||
) |
Get all the nodes of the unstructured
Gel all the reachable nodes of the unstructured
if 0
#endif
The entry node is part of a cycle, rtbp is empty and the while loop below is soing to be skipped. Relation "out_g" must be properly initialized.
Pred = set_assign_list(Pred, gen_full_copy_list(Pred_l));
Definition at line 204 of file unstructured.c.
References control_equal_p(), control_in_set_p(), CONTROL_MAP, control_predecessors, control_rank(), control_statement, control_to_points_to(), cyclic_graph_to_points_to(), exit, FOREACH, FORWARD_CONTROL_MAP, free(), full_copy_pt_map(), gen_full_copy_list(), gen_nconc(), make_points_to_graph(), merge_points_to_graphs(), new_pt_map, NIL, out, points_to_equal_p(), points_to_graph_set, points_to_rank(), ready_to_be_processed_set(), set_add_element(), set_assign(), set_assign_list(), set_clear(), set_del_element(), set_difference(), set_empty_p(), SET_FOREACH, set_generic_make(), set_intersection(), set_intersection_p(), set_private, set_union(), statement_ordering, statement_to_points_to(), unstructured_control, unstructured_exit, and unstructured_to_trail().
A node is ready to be processed if its predecessors are not reachable or processed.
Pred = set_assign_list(Pred,gen_full_copy_list( Pred_l));
Processed | rocessed |
Reachable | eachable |
Definition at line 97 of file unstructured.c.
References control_predecessors, FOREACH, set_add_element(), set_belong_p(), SET_FOREACH, set_make(), and set_pointer.
Referenced by ready_to_be_processed_set().
A set containing all the successors of n that are ready to be processed.
Succ = set_assign_list(Succ, gen_full_copy_list(Succ_l));
Processed | rocessed |
Reachable | eachable |
Definition at line 114 of file unstructured.c.
References control_successors, FOREACH, Ready_p(), set_add_element(), SET_FOREACH, set_make(), and set_pointer.
Referenced by new_points_to_unstructured().
Definition at line 55 of file unstructured.c.
References s1, and statement_ordering.
Referenced by allocate_task_to_cluster(), bottom_level(), communications_construction(), control_in_set_p(), end_idle_clusters(), predecessors(), ready_node(), t_level(), task_time_polynome(), tlevel_decrease(), topological_sort(), and zeroing_multiple_edges().