[LLVMdev] ARM and lowerinvoke
Jim Grosbach
grosbach at apple.com
Tue Apr 21 13:53:32 PDT 2009
All,
I'm looking at the lowerinvoke pass as a starting point for getting
SJLJ based exception handling working on ARM, but am having some
troubles with it. When I run a simple testcase (attached) through llc
and specify -enable-correct-eh-support, llc asserts on me. It appears
there's been some bitrot somewhere. SelectDAGBuild and
SelectionDAGISel cooperate to track landing pads with CatchInfoLost
and CatchInfoFound and make sure they're all handled. However,
lowerinvoke throws a wrench into that by getting rid of the explicit
invokes, so SelectionDAGISel never identifies any landing pads, and
then complains with:
Assertion failed: (FuncInfo->CatchInfoFound.size() == FuncInfo-
>CatchInfoLost.size() && "Not all catch info was assigned to a
landing pad!"), function runOnFunction, file /Volumes/Home/grosbaj/
sources/llvm-public/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp,
line 350.
Is it reasonable to expect that lowerinvoke is a good place to start
for doing what I'm after? Assuming so, I could use a bit of background
education on what's going on with this assertion and how to correct
it. Where is a good place to look to get that?
Thanks
Jim
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.bc
Type: application/octet-stream
Size: 1840 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090421/e00e4b1f/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.cpp
Type: application/octet-stream
Size: 239 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090421/e00e4b1f/attachment-0001.obj>
More information about the llvm-dev
mailing list