[Bug target/83905] ix86_expand_epilogue modifies the copy of cfun->machine->frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83905 --- Comment #5 from hjl at gcc dot gnu.org --- Author: hjl Date: Mon Apr 16 18:44:43 2018 New Revision: 259411 URL: https://gcc.gnu.org/viewcvs?rev=259411=gcc=rev Log: i386: Use const reference of struct ix86_frame to avoid copy We can use const reference of struct ix86_frame to avoid making a local copy of ix86_frame. ix86_expand_epilogue makes a local copy of struct ix86_frame and uses the reg_save_offset field as a local variable. This patch uses a separate local variable for reg_save_offset. Tested on x86-64 with ada. Backport from mainline PR target/83905 * config/i386/i386.c (ix86_expand_prologue): Use cost reference of struct ix86_frame. (ix86_expand_epilogue): Likewise. Add a local variable for the reg_save_offset field in struct ix86_frame. Modified: branches/gcc-6-branch/gcc/ChangeLog
[Bug target/83905] ix86_expand_epilogue modifies the copy of cfun->machine->frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83905 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #4 from H.J. Lu --- Fixed for GCC 8 and GCC 7.4.
[Bug target/83905] ix86_expand_epilogue modifies the copy of cfun->machine->frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83905 --- Comment #3 from hjl at gcc dot gnu.org --- Author: hjl Date: Sat Jan 27 13:10:24 2018 New Revision: 257123 URL: https://gcc.gnu.org/viewcvs?rev=257123=gcc=rev Log: i386: Use const reference of struct ix86_frame to avoid copy We can use const reference of struct ix86_frame to avoid making a local copy of ix86_frame. ix86_expand_epilogue makes a local copy of struct ix86_frame and uses the reg_save_offset field as a local variable. This patch uses a separate local variable for reg_save_offset. Tested on x86-64 with ada. Backport from mainline PR target/83905 * config/i386/i386.c (ix86_expand_prologue): Use cost reference of struct ix86_frame. (ix86_expand_epilogue): Likewise. Add a local variable for the reg_save_offset field in struct ix86_frame. Modified: branches/gcc-7-branch/gcc/ChangeLog branches/gcc-7-branch/gcc/config/i386/i386.c
[Bug target/83905] ix86_expand_epilogue modifies the copy of cfun->machine->frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83905 --- Comment #2 from hjl at gcc dot gnu.org --- Author: hjl Date: Tue Jan 23 19:30:32 2018 New Revision: 256996 URL: https://gcc.gnu.org/viewcvs?rev=256996=gcc=rev Log: i386: Use const reference of struct ix86_frame to avoid copy We can use const reference of struct ix86_frame to avoid making a local copy of ix86_frame. ix86_expand_epilogue makes a local copy of struct ix86_frame and uses the reg_save_offset field as a local variable. This patch uses a separate local variable for reg_save_offset. Tested on x86-64 with ada. PR target/83905 * config/i386/i386.c (ix86_expand_prologue): Use cost reference of struct ix86_frame. (ix86_expand_epilogue): Likewise. Add a local variable for the reg_save_offset field in struct ix86_frame. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c
[Bug target/83905] ix86_expand_epilogue modifies the copy of cfun->machine->frame
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83905 --- Comment #1 from Richard Biener --- To catch such issues when changing by-value to reference _always_ use a const reference.