Displaying 11 results from an estimated 11 matches for "landingpadinfo".
2007 Dec 11
0
[LLVMdev] Exception handling in JIT
...tInt8(dwarf::DW_CFA_offset_extended);
> + EmitULEB128Bytes(Reg);
> + EmitULEB128Bytes(Offset);
> + }
> + }
> + }
> +}
> +
> +/// SharedTypeIds - How many leading type ids two landing pads
> have in common.
> +static unsigned SharedTypeIds(const LandingPadInfo *L,
> + const LandingPadInfo *R) {
> + const std::vector<int> &LIds = L->TypeIds, &RIds = R->TypeIds;
> + unsigned LSize = LIds.size(), RSize = RIds.size();
> + unsigned MinSize = LSize < RSize ? LSize : RSize;
> + unsigned Coun...
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
...CFA_offset_extended);
> + MCE->emitULEB128Bytes(Reg);
> + MCE->emitULEB128Bytes(Offset);
> + }
> + }
> + }
> +}
> +
> +/// SharedTypeIds - How many leading type ids two landing pads have
> in common.
> +static unsigned SharedTypeIds(const LandingPadInfo *L,
> + const LandingPadInfo *R) {
> + const std::vector<int> &LIds = L->TypeIds, &RIds = R->TypeIds;
> + unsigned LSize = LIds.size(), RSize = RIds.size();
> + unsigned MinSize = LSize < RSize ? LSize : RSize;
> + unsigned Coun...
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 Dec 12
3
[LLVMdev] Exception handling in JIT
...t;> + EmitULEB128Bytes(Reg);
>> + EmitULEB128Bytes(Offset);
>> + }
>> + }
>> + }
>> +}
>> +
>> +/// SharedTypeIds - How many leading type ids two landing pads
>> have in common.
>> +static unsigned SharedTypeIds(const LandingPadInfo *L,
>> + const LandingPadInfo *R) {
>> + const std::vector<int> &LIds = L->TypeIds, &RIds = R->TypeIds;
>> + unsigned LSize = LIds.size(), RSize = RIds.size();
>> + unsigned MinSize = LSize < RSize ? LSize : RSize;
>&...
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
2015 Jan 29
4
[LLVMdev] RFC: Native Windows C++ exception handling
...My thinking is that the "eh.actions" list can be transformed into a compact xdata table later, after we've done machine basic block layout.
I think the algorithm will be something like
1. Input: already laid out MachineFunction
2. Call EHStreamer::computeCallSiteTable to populate a LandingPadInfo vector sorted by ascending PC values
4. Iterate the LandingPadInfos, comparing the action list of each landing pad with the previous landing pad, assuming an empty action list at function start and end.
5. Model the action list as a stack, and compute the common suffix of the landing pad action lis...
2015 Jan 27
2
[LLVMdev] RFC: Native Windows C++ exception handling
Thanks, Reid. These are good points.
So I guess that does take us back to something more like my original proposal.
I like your suggestion of having some kind of “eh.actions” intrinsic to represent the outlining rather than the extension to landingpad that I had proposed. I was just working on something like that in conjunction with my second alternative idea.
What I’d really like is to have
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
...can be transformed into a
> compact xdata table later, after we've done machine basic block layout.
>
>
>
> I think the algorithm will be something like
>
>
>
> 1. Input: already laid out MachineFunction
>
> 2. Call EHStreamer::computeCallSiteTable to populate a LandingPadInfo
> vector sorted by ascending PC values
>
> 4. Iterate the LandingPadInfos, comparing the action list of each landing
> pad with the previous landing pad, assuming an empty action list at
> function start and end.
>
> 5. Model the action list as a stack, and compute the common s...
2015 Jan 29
0
[LLVMdev] RFC: Native Windows C++ exception handling
...can be transformed into a
> compact xdata table later, after we've done machine basic block layout.
>
>
>
> I think the algorithm will be something like
>
>
>
> 1. Input: already laid out MachineFunction
>
> 2. Call EHStreamer::computeCallSiteTable to populate a LandingPadInfo
> vector sorted by ascending PC values
>
> 4. Iterate the LandingPadInfos, comparing the action list of each landing
> pad with the previous landing pad, assuming an empty action list at
> function start and end.
>
> 5. Model the action list as a stack, and compute the common s...
2015 Feb 11
2
[LLVMdev] RFC: Native Windows C++ exception handling
...My thinking is that the "eh.actions" list can be transformed into a compact xdata table later, after we've done machine basic block layout.
I think the algorithm will be something like
1. Input: already laid out MachineFunction
2. Call EHStreamer::computeCallSiteTable to populate a LandingPadInfo vector sorted by ascending PC values
4. Iterate the LandingPadInfos, comparing the action list of each landing pad with the previous landing pad, assuming an empty action list at function start and end.
5. Model the action list as a stack, and compute the common suffix of the landing pad action lis...