[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-16 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #14 from Dominique d'Humieres dominiq at lps dot ens.fr --- Created attachment 31860 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31860action=edit assembly file for gcc.c-torture/execute/pr59747.c on darwin

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-16 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Dominique d'Humieres dominiq at lps dot ens.fr changed: What|Removed |Added Status|RESOLVED|REOPENED

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-16 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #13 from Dominique d'Humieres dominiq at lps dot ens.fr --- Created attachment 31859 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31859action=edit preprocessed file for gcc.c-torture/execute/pr59747.c on darwin13

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-16 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|REOPENED|RESOLVED

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-16 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #16 from Dominique d'Humieres dominiq at lps dot ens.fr --- You don't have the r206659 fix in your tree, do you? No. I thought to have tested it as said at the end of comment 12, but it seems that I did not actually do it. Importing

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-15 Thread trippels at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Markus Trippelsdorf trippels at gcc dot gnu.org changed: What|Removed |Added CC||trippels

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-15 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Jeffrey A. Law law at redhat dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-15 Thread law at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #10 from Jeffrey A. Law law at gcc dot gnu.org --- Author: law Date: Wed Jan 15 18:13:52 2014 New Revision: 206638 URL: http://gcc.gnu.org/viewcvs?rev=206638root=gccview=rev Log: PR tree-optimization/59747 * ree.c

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Marek Polacek mpolacek at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org --- I think the problem is in setting the value of e. With -O in .gimple we have: e.2 = e; e.3 = e.2; e.4 = e.3 + -1; e = e.4; while with -O2: e.2 = e; e.3 =

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #4 from Richard Biener rguenth at gcc dot gnu.org --- (In reply to Marek Polacek from comment #2) I think the problem is in setting the value of e. With -O in .gimple we have: e.2 = e; e.3 = e.2; e.4 = e.3 + -1;

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org --- So, before ree we have: (insn 13 12 14 4 (set (reg:HI 0 ax [orig:88 D.1782 ] [88]) (mem/c:HI (symbol_ref:DI (e) var_decl 0x7fbcde42c260 e) [3 e+0 S2 A16])) pr59747.c:18 91

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org --- The actual REGNO != REGNO transformation is correct, the problem is that the second extension is to a wider mode and while handling that we change the destination mode on the def_insn

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 Jeffrey A. Law law at redhat dot com changed: What|Removed |Added Status|NEW |ASSIGNED

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #7 from Jeffrey A. Law law at redhat dot com --- In response to your question in c#6, if you use the most obvious form: ORIG: (set (reg1) (expression)) (set (reg2) (any_extend (reg1)) TRANSFORMED: (set (reg1) (any_extend

[Bug tree-optimization/59747] [4.9 Regression] wrong code at -Os and above on x86_64-linux-gnu in 64-bit mode

2014-01-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59747 --- Comment #8 from Jeffrey A. Law law at redhat dot com --- This looks pretty easy to fix as we emit the copies. Basically we had two extensions reached by the same def. Elimination of the first extension requires a copy. Elimination of the