summaryrefslogtreecommitdiff
path: root/gcc/graphite.h
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-15 16:24:15 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-15 16:24:15 +0000
commitbe8d200b02193648532fec45160982c6a17f4702 (patch)
tree330d6f9c765630d4d31dbcd29bd050c5cd5fa243 /gcc/graphite.h
parent7dd3db6ea365e42e565bb546b2e2729ef4828638 (diff)
downloadgcc-be8d200b02193648532fec45160982c6a17f4702.tar.gz
2008-10-15 Jan Sjodin <jan.sjodin@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/37485 * graphite.c (gmp_cst_to_tree): Moved. (iv_stack_entry_is_constant): New. (iv_stack_entry_is_iv): New. (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv. (loop_iv_stack_insert_constant): New. (loop_iv_stack_pop): Use new datatpype. (loop_iv_stack_get_iv): Same. (loop_iv_stack_get_iv_from_name): Same. (loop_iv_stack_debug): Renamed to debug_loop_iv_stack. (loop_iv_stack_patch_for_consts): New. (loop_iv_stack_remove_constants): New. (graphite_create_new_loop): Use loop_iv_stack_push_iv. (translate_clast): Call loop_iv_stack_patch_for_consts and loop_iv_stack_remove_constants. (gloog): Use new datatype. Redirect construction edge to end block to avoid accidental deletion. * graphite.h (enum iv_stack_entry_kind): New. Tag for data in iv stack entry. (union iv_stack_entry_data): New. Data in iv stack entry. (struct iv_stack_entry): New. Datatype for iv stack entries. 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> * tree-data-ref.c (stmt_simple_memref_p): Fix memleak. * graphite.c (free_scop): Same. (build_scops): Same. (free_scattering): New. (build_cloog_prog): Call free_scattering. (patch_phis_for_virtual_defs): Fix memleak. (graphite_trans_bb_strip_mine): Same. (limit_scops): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141143 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite.h')
-rw-r--r--gcc/graphite.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/gcc/graphite.h b/gcc/graphite.h
index 1a3cf6ccc65..2e2904a6abf 100644
--- a/gcc/graphite.h
+++ b/gcc/graphite.h
@@ -260,7 +260,7 @@ typedef struct name_tree
{
tree t;
const char *name;
- struct loop* loop;
+ struct loop *loop;
} *name_tree;
DEF_VEC_P(name_tree);
@@ -340,8 +340,34 @@ extern void debug_clast_stmt (struct clast_stmt *);
extern void debug_loop_vec (graphite_bb_p gb);
extern void debug_oldivs (scop_p);
-typedef VEC(name_tree, heap) **loop_iv_stack;
-extern void loop_iv_stack_debug (loop_iv_stack);
+/* Describes the type of an iv stack entry. */
+typedef enum {
+ iv_stack_entry_unknown = 0,
+ iv_stack_entry_iv,
+ iv_stack_entry_const
+} iv_stack_entry_kind;
+
+/* Data contained in an iv stack entry. */
+typedef union iv_stack_entry_data_union
+{
+ name_tree iv;
+ tree constant;
+} iv_stack_entry_data;
+
+/* Datatype for loop iv stack entry. */
+typedef struct iv_stack_entry_struct
+{
+ iv_stack_entry_kind kind;
+ iv_stack_entry_data data;
+} iv_stack_entry;
+
+typedef iv_stack_entry *iv_stack_entry_p;
+
+DEF_VEC_P(iv_stack_entry_p);
+DEF_VEC_ALLOC_P(iv_stack_entry_p,heap);
+
+typedef VEC(iv_stack_entry_p, heap) **loop_iv_stack;
+extern void debug_loop_iv_stack (loop_iv_stack);
/* Return the number of gimple loops contained in SCOP. */