diff options
author | Peter Bergner <bergner@linux.ibm.com> | 2020-04-01 14:24:07 -0500 |
---|---|---|
committer | Peter Bergner <bergner@linux.ibm.com> | 2020-04-01 14:24:07 -0500 |
commit | 7546463b9f7a0b001cf61a94dcfc18f540721390 (patch) | |
tree | 53ca984c7e9191dd9718a11d3b987571ce62f59e /gcc | |
parent | b60bd122dc753a8407760f4a69bdc7f9126734f2 (diff) | |
download | gcc-7546463b9f7a0b001cf61a94dcfc18f540721390.zip gcc-7546463b9f7a0b001cf61a94dcfc18f540721390.tar.gz gcc-7546463b9f7a0b001cf61a94dcfc18f540721390.tar.bz2 |
subreg: Fix PR94123, SVN r273240 causes gcc.target/powerpc/pr87507.c to fail
Segher's patch that added -fsplit-wide-types-early and enabled by default
for rs6000, caused pr87507.c to FAIL because when running lower-subreg
earlier, we don't see any pseudo-to-pseudo copies of our wide type,
which are created by combine, therefore, we skip decomposing our TImode
accesses. The fix here is just to always run the third pass of lower-subreg
instead of disabling it if we ran the second pass.
2020-04-01 Peter Bergner <bergner@linux.ibm.com>
PR rtl-optimization/94123
* lower-subreg.c (pass_lower_subreg3::gate): Remove test for
flag_split_wide_types_early.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lower-subreg.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba92946..66a118b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-04-01 Peter Bergner <bergner@linux.ibm.com> + + PR rtl-optimization/94123 + * lower-subreg.c (pass_lower_subreg3::gate): Remove test for + flag_split_wide_types_early. + 2020-04-01 Joerg Sonnenberger <joerg@bec.de> * doc/extend.texi (Common Function Attributes): Fix typo. diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index 4c8bc83..a170f0f 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -1844,8 +1844,7 @@ public: {} /* opt_pass methods: */ - virtual bool gate (function *) { return flag_split_wide_types - && !flag_split_wide_types_early; } + virtual bool gate (function *) { return flag_split_wide_types; } virtual unsigned int execute (function *) { decompose_multiword_subregs (true); |