[llvm-commits] [PATCH] Sparc backend fixes

Chris Lattner clattner at apple.com
Tue Dec 28 11:10:53 PST 2010


On Dec 26, 2010, at 8:33 PM, Venkatraman Govindaraju wrote:

> Hello,
> 
> The attached path fixes the following three issues with the Sparc backend.
> 
> 1. EmitInstrWithCustomInserter() in SparcISelLowering splices
> MachineBasicBlock before inserting them into the machine function. It
> corrupts the def-use chain of MachineOperand and causes a infinite
> loop in llc. Now, the patch avoids this by inserting the machine
> basicblocks into the machine function before splicing the original
> basicblock.
> 
> 2. When the bitcode has "select_cc", Sparc backend may not generate
> correct assembly code. Since select_ccs do not have ICC/FCC as Uses,
> the corresponding def of ICC/FCC can be marked as dead and removed.
> Now, the select_ccs have ICC/FCC as Uses.
> 
> 3. Sparc backend does not know about Y register. It causes the "rdy"
> and "wry" instructions to be marked as dead and removed. Now it knows
> about Y and generate correct code.
> 
> Please let me know if the patch is okay to commit.

Looks great to me, please commit!

-Chris



More information about the llvm-commits mailing list