Displaying 7 results from an estimated 7 matches for "init_trampoline".
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
...or comments
below.
> --- a/include/llvm/CodeGen/ISDOpcodes.h
> +++ b/include/llvm/CodeGen/ISDOpcodes.h
> @@ -566,14 +566,18 @@ namespace ISD {
> // HANDLENODE node - Used as a handle for various purposes.
> HANDLENODE,
>
> - // TRAMPOLINE - This corresponds to the init_trampoline intrinsic.
> - // It takes as input a token chain, the pointer to the trampoline,
> - // the pointer to the nested function, the pointer to pass for the
> - // 'nest' parameter, a SRCVALUE for the trampoline and another for
> - // the nested function (allowing target...
2011 Aug 23
2
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
Hi!
Attached set of patches splits llvm.init.trampoline into an "init"
phase and an "adjust" phase, as discussed on the "Go on dragonegg"
thread.
Thanks!
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Split-intrinsics-and-DAG-nodes.patch
Type: text/x-diff
Size: 8808 bytes
Desc:
2011 Aug 21
1
[LLVMdev] Lying about being expanded?
Hi!
I noticed in the LegalizeDAG.cpp (SelectionDAGLegalize::LegalizeOp):
case ISD::INIT_TRAMPOLINE:
case ISD::FRAMEADDR:
case ISD::RETURNADDR:
// These operations lie about being legal: when they claim to be legal,
// they should actually be custom-lowered.
Action = TLI.getOperationAction(Node->getOpcode(),
Node->getValueType(0));
if (Action == TargetLowering::Legal)...
2008 Oct 31
3
[LLVMdev] nested function's static link gets clobbered
...f0de11c420c
0x00007f0de11c41fc: mov 0x8(%r10),%rax
0x00007f0de11c4200: incl (%rax)
0x00007f0de11c4202: mov (%r10),%rax
0x00007f0de11c4205: incl (%rax)
0x00007f0de11c4207: jmpq 0x7f0de11c41f0
0x00007f0de11c420c: xor %rax,%rax
0x00007f0de11c420f: retq
I use init_trampoline to generate code that sets up the static link:
0x00007fffee982316: mov $0x7f48e1a08fb0,%r11
0x00007fffee982320: mov $0x7fffee982330,%r10 the static
link
0x00007fffee98232a: rex.WB jmpq *%r11
The program crashes in loop1 on the 2nd instruction. r10, which containe...
2011 Aug 31
0
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
...hould first compare InstIterator with InstBegin and only after decrement the
iterator.
> +
> + while(InstIterator != InstBegin) {
> + // Check if we got lucky.
> + In = dyn_cast<IntrinsicInst>(InstIterator);
> + if (In && In->getIntrinsicID() == Intrinsic::init_trampoline &&
> + In->getOperand(0) == TrampMem)
> + return In;
> +
> + // If there is a write to the trampoline, then the sifting through previous
> + // instructions is useless.
> + if (InstIterator->mayWriteToMemory()) {
Here you should just always give...
2011 Aug 29
3
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
Hi!
Attached patches split init.trampoline into adjust.trampoline and
init.trampoline, like in gcc.
As mentioned in the previous mail, I've not made a documentation
patch, since I'm not sure about what the documented semantics of
llvm.adjust.trampoline should be.
Thanks!
--
Sanjoy Das
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was
2008 Nov 01
0
[LLVMdev] nested function's static link gets clobbered
...0x8(%r10),%rax
> 0x00007f0de11c4200: incl (%rax)
> 0x00007f0de11c4202: mov (%r10),%rax
> 0x00007f0de11c4205: incl (%rax)
> 0x00007f0de11c4207: jmpq 0x7f0de11c41f0
> 0x00007f0de11c420c: xor %rax,%rax
> 0x00007f0de11c420f: retq
>
> I use init_trampoline to generate code that sets up the static link:
>
> 0x00007fffee982316: mov $0x7f48e1a08fb0,%r11
> 0x00007fffee982320: mov $0x7fffee982330,%r10 the static
> link
> 0x00007fffee98232a: rex.WB jmpq *%r11
>
> The program crashes in loop1 on the 2...