aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/gimple-fold.c2
-rw-r--r--gcc/tree-cfg.c45
-rw-r--r--gcc/tree-cfg.h1
-rw-r--r--gcc/tree-inline.c1
5 files changed, 12 insertions, 49 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 81c60be..f5bb227 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2015-07-23 Richard Biener <rguenther@suse.de>
+
+ * gimple-fold.c (fold_gimple_cond): Do not require folding
+ results to pass valid_gimple_rhs_p.
+ * tree-cfg.h (fold_cond_expr_cond): Remove.
+ * tree-cfg.c (fold_cond_expr_cond): Likewise.
+ (make_edges): Do not call it.
+ * tree-inline.c (tree_function_versioning): Likewise.
+
2015-07-23 Tom de Vries <tom@codesourcery.com>
* tree-parloops.c (gather_scalar_reductions): Add arg to call to
@@ -8,7 +17,8 @@
(vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
need_wrapping_integral_overflow parameter.
(vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
- * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to decl.
+ * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
+ decl.
2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index e19700d..2909c42 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -546,7 +546,7 @@ fold_gimple_cond (gcond *stmt)
if (result)
{
STRIP_USELESS_TYPE_CONVERSION (result);
- if (is_gimple_condexpr (result) && valid_gimple_rhs_p (result))
+ if (is_gimple_condexpr (result))
{
gimple_cond_set_condition_from_tree (stmt, result);
return true;
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index d97b824..66f999e 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -606,48 +606,6 @@ create_bb (void *h, void *e, basic_block after)
Edge creation
---------------------------------------------------------------------------*/
-/* Fold COND_EXPR_COND of each COND_EXPR. */
-
-void
-fold_cond_expr_cond (void)
-{
- basic_block bb;
-
- FOR_EACH_BB_FN (bb, cfun)
- {
- gimple stmt = last_stmt (bb);
-
- if (stmt && gimple_code (stmt) == GIMPLE_COND)
- {
- gcond *cond_stmt = as_a <gcond *> (stmt);
- location_t loc = gimple_location (stmt);
- tree cond;
- bool zerop, onep;
-
- fold_defer_overflow_warnings ();
- cond = fold_binary_loc (loc, gimple_cond_code (cond_stmt),
- boolean_type_node,
- gimple_cond_lhs (cond_stmt),
- gimple_cond_rhs (cond_stmt));
- if (cond)
- {
- zerop = integer_zerop (cond);
- onep = integer_onep (cond);
- }
- else
- zerop = onep = false;
-
- fold_undefer_overflow_warnings (zerop || onep,
- stmt,
- WARN_STRICT_OVERFLOW_CONDITIONAL);
- if (zerop)
- gimple_cond_make_false (cond_stmt);
- else if (onep)
- gimple_cond_make_true (cond_stmt);
- }
- }
-}
-
/* If basic block BB has an abnormal edge to a basic block
containing IFN_ABNORMAL_DISPATCHER internal call, return
that the dispatcher's basic block, otherwise return NULL. */
@@ -1000,9 +958,6 @@ make_edges (void)
XDELETE (bb_to_omp_idx);
free_omp_regions ();
-
- /* Fold COND_EXPR_COND of each COND_EXPR. */
- fold_cond_expr_cond ();
}
/* Add SEQ after GSI. Start new bb after GSI, and created further bbs as
diff --git a/gcc/tree-cfg.h b/gcc/tree-cfg.h
index af58c80..6c4b1d9 100644
--- a/gcc/tree-cfg.h
+++ b/gcc/tree-cfg.h
@@ -31,7 +31,6 @@ extern void gt_pch_nx (edge_def *e, gt_pointer_operator, void *);
extern void init_empty_tree_cfg_for_function (struct function *);
extern void init_empty_tree_cfg (void);
-extern void fold_cond_expr_cond (void);
extern void start_recording_case_labels (void);
extern void end_recording_case_labels (void);
extern basic_block label_to_block_fn (struct function *, tree);
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 374b246..e1ceea4 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -5847,7 +5847,6 @@ tree_function_versioning (tree old_decl, tree new_decl,
fold_marked_statements (0, id.statements_to_fold);
delete id.statements_to_fold;
- fold_cond_expr_cond ();
delete_unreachable_blocks_update_callgraph (&id);
if (id.dst_node->definition)
cgraph_edge::rebuild_references ();