[llvm-dev] live-in lists during register allocation

Jonas Paulsson via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 18 22:12:45 PDT 2019


I wonder if live-in lists can be trusted to be accurate during register 
allocation / foldMemoryOperandImp().

On SystemZ, a compare register-register which has one of the registers 
spilled can fold that reload into a compare register-memory instruction. 
In order to do this also with the first (LHS) register, the operands 
must be swapped. This can only reasonably be done when all the CC users 
are in the same basic block and so can be found in order to reverse 
their condition operands, which must be done. The first check for this 
is to know if the CC register is live into any successor block.

I know there has been corrupt live-in lists in the past found, but I 
think that was some passes after register allocation.

Would it be safe to rely on live-in lists in foldMemoryOperandImpl()?



More information about the llvm-dev mailing list