Skip to content
  • Dan Gohman's avatar
    When the coalescer is doing rematerializing, have it remove · c835458d
    Dan Gohman authored
    the copy instruction from the instruction list before asking the
    target to create the new instruction. This gets the old instruction
    out of the way so that it doesn't interfere with the target's
    rematerialization code. In the case of x86, this helps it find
    more cases where EFLAGS is not live.
    
    Also, in the X86InstrInfo.cpp, teach isSafeToClobberEFLAGS to check
    to see if it reached the end of the block after scanning each
    instruction, instead of just before. This lets it notice when the
    end of the block is only two instructions away, without doing any
    additional scanning.
    
    These changes allow rematerialization to clobber EFLAGS in more
    cases, for example using xor instead of mov to set the return value
    to zero in the included testcase.
    
    llvm-svn: 57872
    c835458d
Loading