diff options
author | Adam Nemet <anemet@caviumnetworks.com> | 2009-05-28 07:42:52 +0000 |
---|---|---|
committer | Adam Nemet <nemet@gcc.gnu.org> | 2009-05-28 07:42:52 +0000 |
commit | 2c5bfdf70b616ace5c3f5322299ccc9729e08384 (patch) | |
tree | b6849b0da1547659fc7e169123e25b958cc36e69 /gcc/target.h | |
parent | 51fb7760dd6fcad1570ef1462459136cefb9c8f0 (diff) | |
download | gcc-2c5bfdf70b616ace5c3f5322299ccc9729e08384.zip gcc-2c5bfdf70b616ace5c3f5322299ccc9729e08384.tar.gz gcc-2c5bfdf70b616ace5c3f5322299ccc9729e08384.tar.bz2 |
re PR middle-end/33699 (missing optimization on const addr area store)
PR middle-end/33699
* target.h (struct gcc_target): Fix indentation. Add
const_anchor.
* target-def.h (TARGET_CONST_ANCHOR): New macro.
(TARGET_INITIALIZER): Use it.
* cse.c (CHEAPER): Move it up to the other macros.
(insert): Rename this ...
(insert_with_costs): ... to this. Add cost parameters. Update
function comment.
(insert): New function. Call insert_with_costs.
(compute_const_anchors, insert_const_anchor, insert_const_anchors,
find_reg_offset_for_const, try_const_anchors): New functions.
(cse_insn): Call try_const_anchors. Adjust cost of src_related
when using a const-anchor. Call insert_const_anchors.
* config/mips/mips.c (mips_set_mips16_mode): Set
targetm.const_anchor.
* doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
testsuite/
* gcc.target/mips/const-anchor-1.c: New test.
* gcc.target/mips/const-anchor-2.c: New test.
From-SVN: r147944
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/target.h b/gcc/target.h index d851425..0d60b11 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -481,7 +481,7 @@ struct gcc_target /* Target builtin that implements vector permute. */ tree (* builtin_vec_perm) (tree, tree*); -} vectorize; + } vectorize; /* The initial value of target_flags. */ int default_target_flags; @@ -825,6 +825,10 @@ struct gcc_target checks to handle_dll_attribute (). */ bool (* valid_dllimport_attribute_p) (const_tree decl); + /* If non-zero, align constant anchors in CSE to a multiple of this + value. */ + unsigned HOST_WIDE_INT const_anchor; + /* Functions relating to calls - argument passing, returns, etc. */ struct calls { bool (*promote_function_args) (const_tree fntype); |