aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-12-14 03:05:20 +0100
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-12-14 02:05:20 +0000
commit73f30c6308cc7e246841e83969a1f4551bac3d3d (patch)
tree33e4fecfec131da30950f9a5e548ab0f2c428746 /gcc/tree-flow.h
parent904e0e974d06c1cfae8941447d0dd207b9b87fd2 (diff)
downloadgcc-73f30c6308cc7e246841e83969a1f4551bac3d3d.zip
gcc-73f30c6308cc7e246841e83969a1f4551bac3d3d.tar.gz
gcc-73f30c6308cc7e246841e83969a1f4551bac3d3d.tar.bz2
tree-ssa-loop-ivopts.c: Include tree-affine.h.
* tree-ssa-loop-ivopts.c: Include tree-affine.h. (divide): Removed. (constant_multiple_of): Fix order of operators for division. (aff_combination_const, aff_combination_elt, aff_combination_scale, aff_combination_add_elt, aff_combination_add, aff_combination_convert, tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination, aff_combination_to_tree): Moved to tree-affine.c and made to work with double_int coefficients. (get_computation_aff, get_computation_at): Work with double_int coefficients. (get_computation_cost_at): Do not use divide. (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare): Assert that expressing the computation did not fail. * tree-ssa-address.c: Include tree-affine.h. (add_to_parts, most_expensive_mult_to_index, addr_to_parts, create_mem_ref): Work with double_int coefficients. * tree-affine.c: New file. * tree-affine.h: New file. * tree-flow.h (struct affine_tree_combination): Removed. * Makefile.in (tree-affine.o): Add. (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h dependency. From-SVN: r119854
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h28
1 files changed, 1 insertions, 27 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index e0ef809..f4337d2a 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -1002,33 +1002,6 @@ extern void remove_unused_locals (void);
/* In tree-ssa-address.c */
-/* Affine combination of trees. We keep track of at most MAX_AFF_ELTS elements
- to make things simpler; this is sufficient in most cases. */
-
-#define MAX_AFF_ELTS 8
-
-struct affine_tree_combination
-{
- /* Type of the result of the combination. */
- tree type;
-
- /* Mask modulo that the operations are performed. */
- unsigned HOST_WIDE_INT mask;
-
- /* Constant offset. */
- unsigned HOST_WIDE_INT offset;
-
- /* Number of elements of the combination. */
- unsigned n;
-
- /* Elements and their coefficients. */
- tree elts[MAX_AFF_ELTS];
- unsigned HOST_WIDE_INT coefs[MAX_AFF_ELTS];
-
- /* Remainder of the expression. */
- tree rest;
-};
-
/* Description of a memory address. */
struct mem_address
@@ -1036,6 +1009,7 @@ struct mem_address
tree symbol, base, index, step, offset;
};
+struct affine_tree_combination;
tree create_mem_ref (block_stmt_iterator *, tree,
struct affine_tree_combination *);
rtx addr_for_mem_ref (struct mem_address *, bool);