diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-12-14 03:05:20 +0100 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-12-14 02:05:20 +0000 |
commit | 73f30c6308cc7e246841e83969a1f4551bac3d3d (patch) | |
tree | 33e4fecfec131da30950f9a5e548ab0f2c428746 /gcc/tree-flow.h | |
parent | 904e0e974d06c1cfae8941447d0dd207b9b87fd2 (diff) | |
download | gcc-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.h | 28 |
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); |