search for: labelid

Displaying 20 results from an estimated 22 matches for "labelid".

Did you mean: labeled
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...> + > public: > virtual ~MachineCodeEmitter() {} > > @@ -158,6 +161,9 @@ > /// start of the block is, and can implement > getMachineBasicBlockAddress. > virtual void StartMachineBasicBlock(MachineBasicBlock *MBB) = 0; > > + virtual void EmitLabel(uint64_t LabelID) = 0; > + > + > /// getCurrentPCValue - This returns the address that the next > emitted byte > /// will be output to. > /// > @@ -193,6 +199,10 @@ > /// emitted. > /// > virtual intptr_t getMachineBasicBlockAddress(MachineBasicBlock > *MBB) co...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...virtual ~MachineCodeEmitter() {} >> >> @@ -158,6 +161,9 @@ >> /// start of the block is, and can implement >> getMachineBasicBlockAddress. >> virtual void StartMachineBasicBlock(MachineBasicBlock *MBB) = 0; >> >> + virtual void EmitLabel(uint64_t LabelID) = 0; >> + >> + >> /// getCurrentPCValue - This returns the address that the next >> emitted byte >> /// will be output to. >> /// >> @@ -193,6 +199,10 @@ >> /// emitted. >> /// >> virtual intptr_t getMachineBasicBlockA...
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
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...Emit Value in Addr > + void emitAt(uintptr_t *Addr, uintptr_t Value) { > + if (Addr >= (uintptr_t*)BufferBegin && Addr < > (uintptr_t*)BufferEnd) > + (*Addr) = Value; > + } > + > + /// emitLabel - Emits a label > + virtual void emitLabel(uint64_t LabelID) = 0; > + > /// allocateSpace - Allocate a block of space in the current > output buffer, > /// returning null (and setting conditions to indicate buffer > overflow) on > /// failure. Alignment is the alignment in bytes of the buffer > desired. > @@ -194,6 +261,...
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:
2009 May 03
2
[LLVMdev] Origin of DEBUG and EH label values
Where do DEBUG and EH label values originate from ? Where's their allocator ? I am looking at some code in X86CodeEmitter.cpp line 574, where a labels value is extraced from an operand. But dont know where to look in the frontend or middle end to find the LabelID allocator. If some kind person could point me in the right direction. Many thanks in advance, Aaron -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090503/878e948d/attachment.html>
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 Mar 30
3
[LLVMdev] Being able to know the jitted code-size before emitting
Hi everyone, vmkit requires to know the size of a jitted method before emitting the method. This allows to allocate the correct size for the method. The attached patch creates this functionality when the flag SizedMemoryCode is on. In order to implement this functionality, i had to virtualize some MachineCodeEmitter functions. Is it OK to commit the patch? Thanks, Nicolas --------------
2008 Apr 01
2
[LLVMdev] Being able to know the jitted code-size before emitting
...ockAddress(MachineBasicBlock >> *MBB) const { >> + assert(0 && "Should not be in getMachineBasicBlockAddress of >> SizeEmitter"); >> + } >> + >> + virtual void emitLabel(uint64_t) {} >> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >> + assert(LabelLocations.size() > (unsigned)LabelID && >> + LabelLocations[LabelID] && "Label not emitted!"); >> + return LabelLocations[LabelID]; >> + } >> + virtual void setModuleInfo(llvm::MachineModuleIn...
2008 Mar 31
0
[LLVMdev] Being able to know the jitted code-size before emitting
...l intptr_t getMachineBasicBlockAddress(MachineBasicBlock > *MBB) const { > + assert(0 && "Should not be in getMachineBasicBlockAddress of > SizeEmitter"); > + } > + > + virtual void emitLabel(uint64_t) {} > + virtual intptr_t getLabelAddress(uint64_t LabelID) const { > + assert(LabelLocations.size() > (unsigned)LabelID && > + LabelLocations[LabelID] && "Label not emitted!"); > + return LabelLocations[LabelID]; > + } > + virtual void setModuleInfo(llvm::MachineModuleInfo*) {} > +}; &gt...
2008 Apr 01
0
[LLVMdev] Being able to know the jitted code-size before emitting
...lock >>> *MBB) const { >>> + assert(0 && "Should not be in getMachineBasicBlockAddress of >>> SizeEmitter"); >>> + } >>> + >>> + virtual void emitLabel(uint64_t) {} >>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>> + assert(LabelLocations.size() > (unsigned)LabelID && >>> + LabelLocations[LabelID] && "Label not emitted!"); >>> + return LabelLocations[LabelID]; >>> + } >>> + virtual void setModuleInfo(l...
2009 Jun 01
0
[LLVMdev] Origin of DEBUG and EH label values
...Where do DEBUG and EH label values originate from ? > > Where's their allocator ? > > I am looking at some code in X86CodeEmitter.cpp line 574, where a labels > value is extraced from an operand. > > But dont know where to look in the frontend or middle end to find the > LabelID allocator. See how Intrinsic::dbg_* are lowered by SelectionDAGBuild.cpp and FastISel.cpp - Devang
2008 Apr 04
3
[LLVMdev] Being able to know the jitted code-size before emitting
...const { >>>> + assert(0 && "Should not be in getMachineBasicBlockAddress of >>>> SizeEmitter"); >>>> + } >>>> + >>>> + virtual void emitLabel(uint64_t) {} >>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>> + LabelLocations[LabelID] && "Label not emitted!"); >>>> + return LabelLocations[LabelID]; >>>> + } >>>> + virtual...
2008 Apr 05
2
[LLVMdev] Being able to know the jitted code-size before emitting
...amp;& "Should not be in getMachineBasicBlockAddress of >>>>>> SizeEmitter"); >>>>>> + } >>>>>> + >>>>>> + virtual void emitLabel(uint64_t) {} >>>>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>>>> + LabelLocations[LabelID] && "Label not emitted!"); >>>>>> + return LabelLocations[LabelID]; >>>>>> +...
2008 Apr 05
0
[LLVMdev] Being able to know the jitted code-size before emitting
...ckAddress >>>>>>> of >>>>>>> SizeEmitter"); >>>>>>> + } >>>>>>> + >>>>>>> + virtual void emitLabel(uint64_t) {} >>>>>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>>>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>>>>> + LabelLocations[LabelID] && "Label not emitted!"); >>>>>>> + return LabelLocations[LabelID]; >>>&g...
2008 Apr 04
0
[LLVMdev] Being able to know the jitted code-size before emitting
...> + assert(0 && "Should not be in getMachineBasicBlockAddress of >>>>> SizeEmitter"); >>>>> + } >>>>> + >>>>> + virtual void emitLabel(uint64_t) {} >>>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>>> + LabelLocations[LabelID] && "Label not emitted!"); >>>>> + return LabelLocations[LabelID]; >>>>> + } >>>...
2008 Apr 07
2
[LLVMdev] Being able to know the jitted code-size before emitting
...>>>>> of >>>>>>>> SizeEmitter"); >>>>>>>> + } >>>>>>>> + >>>>>>>> + virtual void emitLabel(uint64_t) {} >>>>>>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>>>>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>>>>>> + LabelLocations[LabelID] && "Label not emitted!"); >>>>>>>> + return LabelLocations[LabelID]; &g...
2008 Apr 07
0
[LLVMdev] Being able to know the jitted code-size before emitting
...of >>>>>>>>> SizeEmitter"); >>>>>>>>> + } >>>>>>>>> + >>>>>>>>> + virtual void emitLabel(uint64_t) {} >>>>>>>>> + virtual intptr_t getLabelAddress(uint64_t LabelID) const { >>>>>>>>> + assert(LabelLocations.size() > (unsigned)LabelID && >>>>>>>>> + LabelLocations[LabelID] && "Label not >>>>>>>>> emitted!"); >>>>>>&gt...
2009 Jun 03
5
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
...@@ ARMConstantPoolValue(GlobalValue *GV, ARMCP::ARMCPKind Kind, const char *Modifier); - GlobalValue *getGV() const { return GV; } const char *getSymbol() const { return S; } const char *getModifier() const { return Modifier; } @@ -63,6 +63,9 @@ unsigned getLabelId() const { return LabelId; } bool isNonLazyPointer() const { return Kind == ARMCP::CPNonLazyPtr; } bool isStub() const { return Kind == ARMCP::CPStub; } + bool isValue() const { return Kind == ARMCP::CPValue; } + bool isDataSegmentJumpTable() const { + return Kind == ARMCP::CPDataSegmentJ...
2009 Jun 11
0
[LLVMdev] patch for llc/ARM: added mechanism to move switch tables from .text -> .data; also cleanup and documentation
On Jun 8, 2009, at 2:42 PM, robert muth wrote: > On Sun, Jun 7, 2009 at 11:53 PM, Evan Cheng <evan.cheng at apple.com> > wrote: >> >> On Jun 7, 2009, at 6:59 AM, robert muth wrote: >> >>> On Sat, Jun 6, 2009 at 4:51 PM, Evan Cheng<evan.cheng at apple.com> >>> wrote: >>>> +cl::opt<std::string>