[llvm-commits] [llvm] r129235 - in /llvm/trunk: include/llvm/BasicBlock.h include/llvm/Bitcode/LLVMBitCodes.h lib/AsmParser/LLLexer.cpp lib/AsmParser/LLParser.cpp lib/AsmParser/LLToken.h lib/Bitcode/Reader/BitcodeReader.cpp lib/Bitcode/Writer/Bit

Duncan Sands baldrick at free.fr
Mon Apr 11 11:34:49 PDT 2011


Hi Jay,

>> There is an issue, but I would say that the issue is in getting
>> the right exception value / selector value at the point where decisions about
>> branching to catch clauses is made,
>
> I've been wondering for a while if these things could be represented
> as new kinds of Value:
>
> class ExceptionPointer : public User { ... } // or "ExceptionValue" in
> your terminology
> class ExceptionIndex : public User { ... } // or "SelectorValue"
>
> which have a single operand which is a BasicBlock, and represent the
> exception/selector value from when that basic block was (last) jumped
> to as a landing pad. I think this would codegen quite
> straightforwardly.

having an intrinsic or instruction that takes a basic block as an argument is
indeed one of the possible solutions.

Ciao, Duncan.



More information about the llvm-commits mailing list