-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
live-interval trouble with exception handling #1874
Comments
Sorry about the lateness. I want to take a look at this now but the patch does |
new patch |
Note that the test CodeGen/Generic/2007-04-14-EHSelectorCrash.ll #ifndef NDEBUG If you remove that assertion and un-XFAIL the test, you should see |
Working on #2. Initial thoughts: LiveIntervals::computerIntervals() should |
I guess you mean: if the live-in eh registers are not killed. |
Nevermind. I've decided the proper fix is to simply add the EH register(s) as a http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070625/050807.html Let me know if you run into other issues. 2007-04-14-EHSelectorCrash.ll is still XFAIL due to the CatchInfo issue. Please |
Extended Description
Logically speaking, the exception register and exception selector register
should be marked as live-in on landing pads. (Currently they are marked
live-in on the block containing the EXCEPTIONADDR/EHSELECTION selections,
which seems wrong). I wrote a patch to fix this, but then live-intervals
blows up on several testcases in the testsuite, for example:
(1) CodeGen/Generic/2007-04-14-EHSelectorCrash.ll. Here the problem seems
to be that there is no landing pad but there is a EHSELECTION instruction.
So the exception selector register is used without being marked live-in
anywhere.
(2) CodeGen/Generic/2007-06-06-CriticalEdgeLandingPad.ll. Here the registers
are not used in the landing pad itself (they are used in a sucessor).
Live-intervals doesn't seem to like having registers marked as live-in without
actually being used in that machine basic block.
Could a live-intervals expert please take a look?
The text was updated successfully, but these errors were encountered: