[Bug target/80938] [7/8 Regression] ICE in maybe_record_trace_start, at dwarf2cfi.c:2330

segher at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Aug 9 21:09:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80938

--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Author: segher
Date: Wed Aug  9 21:08:33 2017
New Revision: 251005

URL: https://gcc.gnu.org/viewcvs?rev=251005&root=gcc&view=rev
Log:
rs6000: Use SAVE_MULTIPLE only if we restore what it saves (PR80938)

We can have SAVE_MULTIPLE while we do not have REST_MULTIPLE.  If the
inline restore does not restore all registers, the CFI for the save
and restore can conflict if things are shrink-wrapped.

We could restore all registers that are saved (not ideal), or emit
the CFI notes to say we did (which will work fine, but is also not
so great); instead, let's not save the registers that are unused.


        PR target/80938
        * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
        SAVE_MULTIPLE if not all the registers that saves, should be saved.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.c


More information about the Gcc-bugs mailing list