Bug 312256 (MONO42136) - [mini] register allocation problem in exception handlers
Summary: [mini] register allocation problem in exception handlers
Status: RESOLVED FIXED
Alias: MONO42136
Product: Mono: Runtime
Classification: Mono
Component: misc (show other bugs)
Version: unspecified
Hardware: Other Debian Woody
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Mono Bugs
QA Contact: Mono Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-04-30 12:58 UTC by Zoltan Varga
Modified: 2007-09-15 21:24 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
testcase (255 bytes, text/plain)
2003-04-30 12:59 UTC, Thomas Wiest
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wiest 2007-09-15 18:09:22 UTC


---- Reported by vargaz@freemail.hu 2003-04-30 05:58:57 MST ----

The attached test case illustrates a register allocation problem: the code
in the exception handler thinks %EDI holds the domain pointer, which is
not true.

You have to run the testcase with --optimize=shared to see the problem.

I reported this earlier by mail but it seems to have been forgotten.



---- Additional Comments From vargaz@freemail.hu 2003-04-30 05:59:32 MST ----

Created an attachment (id=164645)
testcase




---- Additional Comments From lupus@ximian.com 2003-04-30 10:32:02 MST ----

The issue here is that the liveness code seems to not take into account
the possibility that control flow jumps from the middle of a basic
block to an exception handler. I guess this may happen in non-shared
code, too. The fix may be to extend the lifeness of a variable that is
used in the exception handlers to the whole region of code the handler
refers to, if the variable was used outside.
The change is too big to do just before a release, though.



---- Additional Comments From vargaz@freemail.hu 2003-04-30 16:44:08 MST ----

A temporary workaround would be to disable the register allocator
on methods which contain exception handlers.



---- Additional Comments From lupus@ximian.com 2003-05-02 12:37:42 MST ----

The workaround is in cvs.



---- Additional Comments From vargaz@freemail.hu 2004-02-26 09:39:57 MST ----

Fixed in CVS.

Imported an attachment (id=164645)