search for: emitexceptiont

Displaying 11 results from an estimated 11 matches for "emitexceptiont".

2012 Mar 14
0
[LLVMdev] ARM EHABI support in LLVM + clang
...after "switch (((offset & 1) << 1) | (len & 1))" control reaches default: return _URC_FAILURE. offset was == 0x808f and len was == 0xff. (((offset & 1) << 1) | (len & 1)) was == 3. 3 is an undefined descriptor as per ARM EHABI spec section 9.2. DwarfException::EmitExceptionTable Asm->EmitULEB128(TTypeBaseOffset, "@TType base offset", SizeAlign); was generating ".asciz  "\217\200"             @ @TType base offset" in .s file leading to the problem.           I would like to know whether anyone managed to use ARM EHABI successfully. Also...
2009 Dec 25
1
[LLVMdev] JIT buffer code skipping 8 bytes?
...not sure what a type info is anyway, as I know they are not c++ type infos, but the array trick seems to work ... sort of. My question though is: 1) In JITDwarfEmitter.cpp these GlobalVariables are emitted with: JCE->emitInt64((intptr_t)Jit.getOrEmitGlobalVariable(GV)); (in JITDwarfEmitter::EmitExceptionTable) 2) The allocated emitted space is calculated by: JITCodeEmitter::allocateSpace(...) as eventually called by getOrEmitGlobalVariable(...) 3) If the correctly sized buffer was already allocated, and alignment did not affect the current buffer pointer, JITCodeEmitter::allocateSpace(...) return...
2018 Jan 06
2
LLVM EH tables much larger than GCC's
...ncreasing the .uleb128 directive to 2 bytes could reduce the (.ttbase - .start) difference to 0x7F, though, which can be represented with a 1-byte uleb128. (The LLVM assembler apparently alternates between these two encodings forever -- https://bugs.llvm.org/show_bug.cgi?id=35809.) The EHStreamer::emitExceptionTable code currently avoids this complication by calculating the size of everything in the EH table before-hand, and then aligning type infos using extra-large ULEB128 values (e.g. by encoding 0x20 as A0 80 00). Calculating the size of the EH table like this, though, requires using udata4 for code of...
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...DwarfJITEmitter(MachineCodeEmitter &mce, const TargetData& td, > + TargetMachine& tm) : TD(td), TM(tm), MCE(mce) { > + RI = TM.getRegisterInfo(); > + MemMgr = JITMemoryManager::CreateDefaultMemManager(); > + } > + > + unsigned char* EmitExceptionTable(MachineFunction* MF, > + unsigned char* StartFunction, > + unsigned char* EndFunction); > + > + void EmitFrameMoves(intptr_t BaseLabelPtr, > + const std::vector<MachineMove>...
2007 Dec 12
3
[LLVMdev] Exception handling in JIT
...eCodeEmitter &mce, const TargetData& td, >> + TargetMachine& tm) : TD(td), TM(tm), MCE(mce) { >> + RI = TM.getRegisterInfo(); >> + MemMgr = JITMemoryManager::CreateDefaultMemManager(); >> + } >> + >> + unsigned char* EmitExceptionTable(MachineFunction* MF, >> + unsigned char* StartFunction, >> + unsigned char* EndFunction); >> + >> + void EmitFrameMoves(intptr_t BaseLabelPtr, >> + const std::vector...
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 Aug 24
0
[LLVMdev] Turning on exception handling codegen
Hi Duncan, > > I'm trying it on 4.0. On 4.2, I'm getting this problem during bootstrapping: > > > > ccAMeZbg.s:111:non-relocatable subtraction expression, > > "___gxx_personality_v0" minus "L0" > > ccAMeZbg.s:111:symbol: "___gxx_personality_v0" can't be undefined in a > > subtraction expression > > this is the
2008 Feb 04
0
[LLVMdev] Exception handling in JIT
...st TargetData* TD; > + MachineCodeEmitter* MCE; > + const MRegisterInfo* RI; > + MachineModuleInfo* MMI; > + JIT& Jit; > + bool needsIndirectEncoding; > + bool stackGrowthDirection; > + > +public: > + JITDwarfEmitter(JIT& jit); > + > + unsigned char* EmitExceptionTable(MachineFunction* MF, > + unsigned char* StartFunction, > + unsigned char* EndFunction); > + > + void EmitFrameMoves(intptr_t BaseLabelPtr, > + const std::vector<MachineMove> &Mov...
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 Aug 24
5
[LLVMdev] Turning on exception handling codegen
Hi Bill, > I'm trying it on 4.0. On 4.2, I'm getting this problem during bootstrapping: > > ccAMeZbg.s:111:non-relocatable subtraction expression, > "___gxx_personality_v0" minus "L0" > ccAMeZbg.s:111:symbol: "___gxx_personality_v0" can't be undefined in a > subtraction expression this is the darwin assembler that barfs, right? It
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