[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-01 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #32 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Mon Jun 1 11:28:09 2015 New Revision: 223931 URL: https://gcc.gnu.org/viewcvs?rev=223931root=gccview=rev Log: PR 66215: S390: Fix placement of post-label

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-01 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #29 from Dominik Vogt vogt at linux dot vnet.ibm.com --- As this still seems to work in 4.8, 4.9 and 5.1, is it acceptable to only fix this on the master?

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-01 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #33 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Mon Jun 1 11:29:46 2015 New Revision: 223932 URL: https://gcc.gnu.org/viewcvs?rev=223932root=gccview=rev Log: PR 66215: S390: Fix placement of post-label

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-01 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #31 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Mon Jun 1 11:25:56 2015 New Revision: 223930 URL: https://gcc.gnu.org/viewcvs?rev=223930root=gccview=rev Log: PR 66215: S390: Fix placement of post-label

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-06-01 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #30 from Jakub Jelinek jakub at gcc dot gnu.org --- IMHO it is better to keep the tests in sync between branches.

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-29 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #24 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Okay, I've made a new patch that fixes the problem with only the hotpatch tests running in the s390 test suite. This change passes all tests on 64 and 31 bit. After this

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-29 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #26 from Dominik Vogt vogt at linux dot vnet.ibm.com --- The patch for upstream gcc is available here: https://gcc.gnu.org/ml/gcc-patches/2015-05/msg02739.html

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-29 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #25 from Andreas Krebbel krebbel at gcc dot gnu.org --- The patch looks good to me. Please post it on the mailing list and I'll commit it. Jakub, thanks for your valuable comments! Does Dominik's last patch address your concerns?

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #28 from Jakub Jelinek jakub at gcc dot gnu.org --- BTW, the hotpatch-19.c, hotpatch-20.c and hotpatch-compile-15.c testcases look wrong, always_inline attribute shouldn't be used on functions not declared inline.

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-29 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #27 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Fri May 29 14:26:56 2015 New Revision: 223867 URL: https://gcc.gnu.org/viewcvs?rev=223867root=gccview=rev Log: PR 66215: S390: Fix placement of post-label

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #21 from Jakub Jelinek jakub at gcc dot gnu.org --- In case somebody forces any of the torture options into the default through --target_board=unix/WHATEVER that will result in testing some option combination multiple times and -O0

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #23 from Jakub Jelinek jakub at gcc dot gnu.org --- (In reply to Dominik Vogt from comment #22) Created attachment 35628 [details] Experimental fix 5 Version 5 with the suggested changes and a new test case. Hopefully the last

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-26 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Dominik Vogt vogt at linux dot vnet.ibm.com changed: What|Removed |Added Attachment #35599|0 |1

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-25 Thread mbenes at suse dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #18 from Miroslav Benes mbenes at suse dot cz --- I confirm that v4 of the proposed patch works for me. Tested on simple userspace program similar to the one in the bug description and on the kernel module where I stumbled upon the

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-25 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #19 from Jakub Jelinek jakub at gcc dot gnu.org --- I'm still missing (untested): -dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ +dg-runtest [lsort [prune [glob -nocomplain $srcdir/$subdir/*.\[cS\]] \ +

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-25 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #20 from Dominik Vogt vogt at linux dot vnet.ibm.com --- I'll remove -O0 from the list of torture test options so that the list of hotpatch torture tests is only defined in one place.

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #7 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Created attachment 35595 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35595action=edit Experimental fix Can you please check whether this patch works for you? The patch

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org --- Doesn't this disable all the other s390 tests? Supposedly you need to prune them from the non-torture lists, see e.g. g++.dg/dg.exp on how it prunes tests.

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #11 from Dominik Vogt vogt at linux dot vnet.ibm.com --- (In reply to Jakub Jelinek from comment #10) As for the hotpatch testcases, have you tested them also with -fno-dwarf2-cfi-asm (as they seem to contain .cfi directives in the

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #9 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Yeah, I accidentally left the other test cases commented out. I'll clean that up in the next version of the patch. That doesn't have an impact on the correctness of the code

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org --- As for the hotpatch testcases, have you tested them also with -fno-dwarf2-cfi-asm (as they seem to contain .cfi directives in the regexps)? And for the main patch, the change will

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #12 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Created attachment 35597 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=35597action=edit Experimental fix 2 Version 2 of the patch with the suggested changes and test

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #14 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Is it possible that a function has no insns at all?

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Dominik Vogt vogt at linux dot vnet.ibm.com changed: What|Removed |Added Attachment #35597|0 |1

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org --- The only function without active insns I'm aware of is: void foo (void) { __builtin_unreachable (); } which only contains notes and a BARRIER, nothing else (at least on s390x). It

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Dominik Vogt vogt at linux dot vnet.ibm.com changed: What|Removed |Added Attachment #35598|0 |1

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org --- The function I've mentioned has: (note 1 0 3 NOTE_INSN_DELETED) (note 3 1 12 [bb 2] NOTE_INSN_BASIC_BLOCK) (note 12 3 2 NOTE_INSN_PROLOGUE_END) (note 2 12 5 NOTE_INSN_FUNCTION_BEG)

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-21 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org --- No, IMHO you can have many debug insns after that and before first real insn. I'd go for something like: rtx_insn *insn = get_insns (); if (!active_insn_p (insn)) insn =

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-21 Thread vogt at linux dot vnet.ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #5 from Dominik Vogt vogt at linux dot vnet.ibm.com --- Wouldn't the correct and easy to identify place be right after the first NOTE_INSN_BASIC_BLOCK?

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-21 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Richard Biener rguenth at gcc dot gnu.org changed: What|Removed |Added Target Milestone|--- |4.8.5

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-20 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #1 from Martin Liška marxin at gcc dot gnu.org --- Following testcase is wrongly compiled event with -O2 optimization level. $ cat o2-test-case.c static int a; int t(int tt) { switch (tt) { case 1: return a; } return 0;

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-20 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #2 from Martin Liška marxin at gcc dot gnu.org --- (In reply to Martin Liška from comment #1) Following testcase is wrongly compiled event with -O2 optimization level. $ cat o2-test-case.c static int a; int t(int tt) {

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-20 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-20 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot

[Bug target/66215] [4.8/4.9/5/6 Regression] Wrong after label NOP emission for -mhotpatch

2015-05-20 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66215 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #3) IMHO the nops should go immediately before the first real instruction in the function. The point of not emitting it earlier is so