aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2012-07-02 17:28:11 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2012-07-02 17:28:11 +0200
commit4e03d8493b5ef63ea04c0690483260a172578887 (patch)
tree5ff15b70c4b81f43228a99ff4a914806693e6eed /gcc
parentb60e9a88b0dec3068a6e52cb0c16e2c655b25c51 (diff)
downloadgcc-4e03d8493b5ef63ea04c0690483260a172578887.zip
gcc-4e03d8493b5ef63ea04c0690483260a172578887.tar.gz
gcc-4e03d8493b5ef63ea04c0690483260a172578887.tar.bz2
re PR middle-end/38474 (compile time explosion in dataflow_set_preserve_mem_locs at -O3)
2012-07-02 Martin Jambor <mjambor@suse.cz> PR middle-end/38474 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a dynamic type change check. From-SVN: r189163
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-prop.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c02b77b..c9a7abb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-02 Martin Jambor <mjambor@suse.cz>
+
+ PR middle-end/38474
+ * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
+ dynamic type change check.
+
2012-07-02 Richard Guenther <rguenther@suse.de>
Michael Matz <matz@suse.de>
Tobias Grosser <tobias@grosser.es>
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index ae35191..6a74cda 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -912,8 +912,8 @@ compute_known_type_jump_func (tree op, struct ipa_jump_func *jfunc,
|| is_global_var (base))
return;
- if (detect_type_change (op, base, call, jfunc, offset)
- || !TYPE_BINFO (TREE_TYPE (base)))
+ if (!TYPE_BINFO (TREE_TYPE (base))
+ || detect_type_change (op, base, call, jfunc, offset))
return;
ipa_set_jf_known_type (jfunc, offset, TREE_TYPE (base), TREE_TYPE (op));