[Bug debug/50317] [4.7 Regression] missing DW_OP_GNU_implicit_pointer
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 7 14:23:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50317
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-09-07 14:21:51 UTC ---
The first difference is in fre1, just a better optimization:
@@ -22,7 +22,7 @@ foo (int i)
p$1_9 = &j;
# DEBUG p$1 => p$1_9
D.2704_2 = p$0_10;
- D.2705_3 = *D.2704_2;
+ D.2705_3 = i.0_1;
D.2706_4 = p$1_9;
D.2707_5 = i.0_1;
D.2703_6 = D.2705_3 + D.2707_5;
In *.mergephi1 the difference is still pretty minor:
@@ -19,8 +19,7 @@ foo (int i)
j = i.0_1;
# DEBUG p$0 => &i
# DEBUG p$1 => &j
- D.2705_3 = i;
- D.2703_6 = i.0_1 + D.2705_3;
+ D.2703_6 = i.0_1 + i.0_1;
return D.2703_6;
}
but in *.cddce1 the j variable is removed altogether:
<bb 2>:
i.0_1 = i;
- j = i.0_1;
# DEBUG p$0 => &i
# DEBUG p$1 => &j
- D.2705_3 = i;
- D.2703_6 = i.0_1 + D.2705_3;
+ D.2703_6 = i.0_1 + i.0_1;
return D.2703_6;
}
in r175915 the j variable would survive in the IL until *.alias where it was
determined not address taken, gimplified and DEBUG j => j_11 added and during
copyprop2 the debug stmt was adjusted after j_11 removal.
More information about the Gcc-bugs
mailing list