search for: init_trampolin

Displaying 7 results from an estimated 7 matches for "init_trampolin".

Did you mean: 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 targe...
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 contain...
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 giv...
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...