diff options
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/match.pd | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e89f685..51649b6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2015-07-23 Richard Biener <rguenther@suse.de> + PR middle-end/66916 + * match.pd: Guard widen and sign-change comparison simplification + with single_use. + +2015-07-23 Richard Biener <rguenther@suse.de> + PR tree-optimization/66945 * tree-ssa-propagate.c (substitute_and_fold_dom_walker ::before_dom_children): Force the propagators idea of diff --git a/gcc/match.pd b/gcc/match.pd index 9a66f52..9cf0278 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1679,7 +1679,8 @@ along with GCC; see the file COPYING3. If not see type on targets that require function pointer canonicalization. */ && !(targetm.have_canonicalize_funcptr_for_compare () && TREE_CODE (TREE_TYPE (@00)) == POINTER_TYPE - && TREE_CODE (TREE_TYPE (TREE_TYPE (@00))) == FUNCTION_TYPE)) + && TREE_CODE (TREE_TYPE (TREE_TYPE (@00))) == FUNCTION_TYPE) + && single_use (@0)) (if (TYPE_PRECISION (TREE_TYPE (@00)) == TYPE_PRECISION (TREE_TYPE (@0)) && (TREE_CODE (@10) == INTEGER_CST || (@1 != @10 && types_match (TREE_TYPE (@10), TREE_TYPE (@00)))) |
