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