[llvm-commits] [PATCH] Sparc backend fixes

Venkatraman Govindaraju venkatra at cs.wisc.edu
Sun Dec 26 20:33:14 PST 2010


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.

Thanks,
Venkatraman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sparc-backend-fixes.patch
Type: application/octet-stream
Size: 4145 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20101226/96164592/attachment.obj>


More information about the llvm-commits mailing list