[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