summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bb5e0b11eaf..e99500ba514 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,26 @@
2009-08-25 Michael Matz <matz@suse.de>
+ * expr.h (struct separate_ops, sepops): New type for passing
+ around an exploded simple expression.
+ * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
+ Use this structure instead of expression tree.
+ (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
+ expression, only its type.
+ (expand_vec_cond_expr): Take type and individual operands instead
+ of full expression.
+ * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
+ expand_vec_shift_expr): Change prototype accordingly.
+ * tree-vect-stmts.c (vectorizable_condition): Change call of
+ expand_vec_cond_expr_p to pass only type.
+ * expr.c (do_store_flags): Change prototype and implementation
+ to take an exploded expression.
+ (expand_expr_real_1): New local ops initialized with details
+ of the full expression. Use it instead of full
+ expression in calls to do_store_flags, expand_vec_cond_expr,
+ expand_widen_pattern_expr and expand_vec_shift_expr.
+
+2009-08-25 Michael Matz <matz@suse.de>
+
* expr.c (expand_expr_real_1): New local treeop0, treeop1,
treeop2 initialized with first three operands of the full expression.
Substitute all TREE_OPERAND (exp, [012]) calls with them.