aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorAdam Nemet <anemet@caviumnetworks.com>2009-05-28 07:42:52 +0000
committerAdam Nemet <nemet@gcc.gnu.org>2009-05-28 07:42:52 +0000
commit2c5bfdf70b616ace5c3f5322299ccc9729e08384 (patch)
treeb6849b0da1547659fc7e169123e25b958cc36e69 /gcc/target.h
parent51fb7760dd6fcad1570ef1462459136cefb9c8f0 (diff)
downloadgcc-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.h6
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);