[llvm-commits] [PATCH] Fix LLVM error after lowering thumb tMOVCCr_pseudo

Logan Chien tzuhsiang.chien at gmail.com
Thu Dec 20 00:25:13 PST 2012


Hi,

  It seems that ARMISelLowering is lowering tMOVCCr_pseudo instruction with
an if-then-else.  The original MachineBasicBlock will be splitted into 3
MachineBasicBlocks.  However, if we don't update the live-ins register
information properly, an LLVM error will occur in some complex test case.
The attached patch should resolve this issue, and the test case is
included.  Please have a look.  Thanks.

Sincerely,
Logan

p.s.
[1] The patch file consists of the patch to ARMISelLowering.cpp and a new
.ll test case for Thumb code generator.
[2] The "arm-tmovcc_pseudo.cpp" is the minimal example I can construct in
C++, and the .ll test case is generated from this file.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121220/f394c1b6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: arm-tmovcc_pseudo.cpp
Type: text/x-c++src
Size: 1000 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121220/f394c1b6/attachment.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-live-ins-to-the-splitted-MachineBasicBlock.patch
Type: application/octet-stream
Size: 5878 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121220/f394c1b6/attachment.obj>


More information about the llvm-commits mailing list