[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 Segher Boessenkool changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Segher Boessenkool --- Fixed. Thanks for the report!
[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 --- Comment #4 from Segher Boessenkool --- Author: segher Date: Wed Dec 13 14:05:57 2017 New Revision: 255606 URL: https://gcc.gnu.org/viewcvs?rev=255606=gcc=rev Log: combine: Fix PR83393 In move_deaths we move a REG_DEAD note if the instruction combination has extended the lifetime of a register so that the existing note is no longer valid. We find that note using reg_stat, but what that finds can refer to a later insn. If so, we cannot use the cached value. This patch implements that. PR rtl-optimization/83393 * combine.c (move_deaths): If reg_stat points to a too new insn in last_death, do not use it: find the proper insn instead. gcc/testsuite/ PR rtl-optimization/83393 * gcc.dg/pr83393.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/pr83393.c Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 --- Comment #3 from Segher Boessenkool --- In the original code, r108 as set by insn 14 is dead after insn 16. The combination 15->20 should have changed that, but apparently didn't.
[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- For the testsuite, we should use LL or ULL suffix for the large fn argument, and return 0; from main early if not lp64 or ilp32 (like if (__SIZEOF_INT__ != 4 || __SIZEOF_LONG_LONG__ != 8 || __CHAR_BIT__ != 8) return 0; ).
[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 --- Comment #1 from Zdenek Sojka --- (In reply to Zdenek Sojka from comment #0) > ... even though insn 16 output (r108) should be used insn 20; ... s/insn 16/insn 14/ Later, there is: Trying 18 -> 20: 18: r116:SI=0 20: {r108:HI=r108:HI<
[Bug rtl-optimization/83393] [8 Regression] wrong code with -O2 -fno-forward-propagate -fno-tree-bit-ccp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393 Richard Biener changed: What|Removed |Added Target Milestone|--- |8.0