[LLVMdev] RFC: Exception Handling Proposal Revised
Peter Lawrence
peterl95124 at sbcglobal.net
Wed Dec 1 11:59:23 PST 2010
responses to the Exception Handling Proposal are "all over the map",
including at least....
1. what are the semantics of the various high level languages, and
how are these constructs
to be lowered into an IR
2. what should the IR be
3. what should the final output code format and layout be, and to
what extent can/should
this be compatible with any existing runtime environments and ABIs
4. what exception specific optimizations can be done on this IR
5. what "zero cost when no exception is thrown" degree of achievement
is possible
concerning #2, I have a question relative to the "Proposal", is a
"region" a basic block or not ?
I ask because it is not clear at least to me what the proposer
intended, and it is crucial...
All the existing analysis and optimization phases are designed to
operate on basic blocks,
and the definition of a basic block is not flexible, you cannot leave
a basic block from the
middle of it (if you can then for example a register allocator cannot
know where within
a basic block spill/fill code for global registers can be inserted
because you cannot know
if any specific location within the block will actually be executed
before you "leave"
from the block).
I believe other folks have already tried to raise this question, but
when formulated in terms of
phi nodes or what ever neither the question nor the answer are as
clear as when it is formulated
in terms of basic blocks.....
sincerely,
Peter Lawrence.
More information about the llvm-dev
mailing list