Simplify post epilogue_completed splitters.
authorUros Bizjak <ubizjak@gmail.com>
Wed, 5 Feb 2020 23:13:00 +0000 (00:13 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Wed, 5 Feb 2020 23:13:00 +0000 (00:13 +0100)
commitba67231631b83b0b4dc499a42e07104233ee4b03
treefa0754c763bd412298030615f24f8c2c75d57168
parentf214002ba1600ff64a6269c40282dd4ae36be873
Simplify post epilogue_completed splitters.

Now that we have post epilogue_completed split point for all
optimization levels, we can simplify post epilogue_completed splitters
considerably. If corresponding define_peephole2 pattern fails to
allocate a temporary register (or if peephole2 pass isn't run at all),
we can now always split invalid RTX after epilogue_completed is set.

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

* config/i386/i386.md (*pushdi2_rex64 peephole2): Remove.
(*pushdi2_rex64 peephole2): Unconditionally split after
epilogue_completed.
(*ashl<mode>3_doubleword): Ditto.
(*<shift_insn><mode>3_doubleword): Ditto.
gcc/ChangeLog
gcc/config/i386/i386.md