search for: beginlabel

Displaying 10 results from an estimated 10 matches for "beginlabel".

2007 Nov 05
4
[LLVMdev] Two labels around one instruction in Codegen
Hi everyone, In order to have exceptions for non-call instructions (such as sdiv, load or stores), I'm modifying codegen so that it generates a BeginLabel and an EndLabel between the "may throwing" instruction. This is what the codegen of an InvokeInst does. However, when generating native code, only BeginLabel is generated, and it is generated after the instruction. I'm not familiar with DAGs in the codegen library, so here are my 2-c...
2007 Nov 06
0
[LLVMdev] Two labels around one instruction in Codegen
Hi Nicolas, > In order to have exceptions for non-call instructions (such as sdiv, > load or stores), I'm modifying codegen so that it generates a BeginLabel > and an EndLabel between the "may throwing" instruction. This is what the > codegen of an InvokeInst does. the rule is that all instructions between eh begin labelN and eh end labelN must unwind to the same landing pad. This is why invokes are bracketed by such labels. There are...
2008 Apr 17
1
[LLVMdev] Being able to know the jitted code-size before emitting
Thx again Evan for the review. Here's a new patch for the JIT in itself. The major changes are: 1) A JITMemoryManager now has a flag saying "I require to know the size of what you want to emit" 2) DwarfJITEmitter is augmented with GetSize* functions 3) JITEmitter::startFunction checks if the JITMemoryManager requires to know the size. If so, it computes it and gives it through the
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...the landing pad's > label lists. > + unsigned RangeIndex; > +}; > + > +typedef DenseMap<unsigned, PadRange, KeyInfo> RangeMapType; > + > +/// CallSiteEntry - Structure describing an entry in the call-site > table. > +struct CallSiteEntry { > + unsigned BeginLabel; // zero indicates the start of the function. > + unsigned EndLabel; // zero indicates the end of the function. > + unsigned PadLabel; // zero indicates that there is no landing > pad. > + unsigned Action; > +}; > + > +unsigned char* JITDwarfEmitter::EmitExceptionTable...
2008 Feb 01
2
[LLVMdev] Exception handling in JIT
Dear all, Here's a new patch with Evan's comments (thx Evan!) and some cleanups. Now the (duplicated) exception handling code is in a new file: lib/ExecutionEngine/JIT/JITDwarfEmitter. This patch should work on linux/x86 and linux/ppc (tested). Nicolas -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: jit-exceptions.patch URL:
2007 Nov 06
1
[LLVMdev] Two labels around one instruction in Codegen
Duncan Sands wrote: > Hi Nicolas, > > >> In order to have exceptions for non-call instructions (such as sdiv, >> load or stores), I'm modifying codegen so that it generates a BeginLabel >> and an EndLabel between the "may throwing" instruction. This is what the >> codegen of an InvokeInst does. >> > > the rule is that all instructions between eh begin labelN and eh end labelN > must unwind to the same landing pad. This is why invokes are...
2007 Nov 07
0
[LLVMdev] Two labels around one instruction in Codegen
On Nov 5, 2007, at 11:52 AM, Nicolas Geoffray wrote: > Hi everyone, > > In order to have exceptions for non-call instructions (such as sdiv, > load or stores), I'm modifying codegen so that it generates a > BeginLabel > and an EndLabel between the "may throwing" instruction. This is > what the > codegen of an InvokeInst does. > > However, when generating native code, only BeginLabel is generated, > and > it is generated after the instruction. I'm not familiar with DAGs &g...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...the landing pad's > label lists. > + unsigned RangeIndex; > +}; > + > +typedef DenseMap<unsigned, PadRange, KeyInfo> RangeMapType; > + > +/// CallSiteEntry - Structure describing an entry in the call-site > table. > +struct CallSiteEntry { > + unsigned BeginLabel; // zero indicates the start of the function. > + unsigned EndLabel; // zero indicates the end of the function. > + unsigned PadLabel; // zero indicates that there is no landing > pad. > + unsigned Action; > +}; > + > +unsigned char* DwarfJITEmitter::EmitExceptionTable...
2007 Dec 10
2
[LLVMdev] Exception handling in JIT
Hi everyone, Here's a patch that enables exception handling when jitting. I've copy/pasted _many_code from lib/Codegen/DwarfWriter.cpp, so we may need to factorize it, but the functionality is there and I'm very happy with it :) lli should now be able to execute the output from llvm-gcc when using exceptions (the UnwindInst instruction is not involved in this patch). Just add the
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...lists. >> + unsigned RangeIndex; >> +}; >> + >> +typedef DenseMap<unsigned, PadRange, KeyInfo> RangeMapType; >> + >> +/// CallSiteEntry - Structure describing an entry in the call-site >> table. >> +struct CallSiteEntry { >> + unsigned BeginLabel; // zero indicates the start of the function. >> + unsigned EndLabel; // zero indicates the end of the function. >> + unsigned PadLabel; // zero indicates that there is no landing >> pad. >> + unsigned Action; >> +}; >> + >> +unsigned char* DwarfJI...