This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Fix too broad (mem,reg)->(const,reg) splitters


Hello!

This patch fixes a bunch of too broad (mem,reg)->(const,reg)
splitters, that block other similar splitters. The solution is to
check, if the splitter will transform the insn in the splitter
condition, instead of using FAIL in the splitter preparation
statements.

2016-05-06  Uros Bizjak  <ubizjak@gmail.com>

    PR target/70873
    * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
    New prototype.
    * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
    * config/i386/i386.md (push mem splitter): Use find_constant_src in
    the splitter condition.
    (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
    the splitter condition.
    (FP float_extend load splitter): Ditto.

Patch was bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.

Attachment: r.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]