aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-phiopt.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f2959dd..66d8a9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
+ PR tree-optimization/53647
+ * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
+ targets with no defined cache line size.
+
+2012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
+
* targhooks.c (default_builtin_vectorized_conversion): Handle
vec_construct, using vectype to base cost on subparts.
* target.h (enum vect_cost_for_stmt): Add vec_construct.
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 6e47f6f..c64e8e2 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -1976,12 +1976,14 @@ hoist_adjacent_loads (basic_block bb0, basic_block bb1,
/* Determine whether we should attempt to hoist adjacent loads out of
diamond patterns in pass_phiopt. Always hoist loads if
-fhoist-adjacent-loads is specified and the target machine has
- a conditional move instruction. */
+ both a conditional move instruction and a defined cache line size. */
static bool
gate_hoist_loads (void)
{
- return (flag_hoist_adjacent_loads == 1 && HAVE_conditional_move);
+ return (flag_hoist_adjacent_loads == 1
+ && PARAM_VALUE (PARAM_L1_CACHE_LINE_SIZE)
+ && HAVE_conditional_move);
}
/* Always do these optimizations if we have SSA