search for: findinittrampolin

Displaying 4 results from an estimated 4 matches for "findinittrampolin".

Did you mean: findinittrampoline
2011 Aug 25
0
[LLVMdev] [RFC] Splitting init.trampoline into init.trampoline and adjust.trampoline
...21,42 @@ Instruction *InstCombiner::tryOptimizeCall(CallInst *CI, const TargetData *TD) { > return Simplifier.NewInstruction; > } > > +// Given a call to llvm.adjust.trampoline, find the corresponding call to > +// llvm.init.trampoline, conservatively. > +static IntrinsicInst *FindInitTrampoline(Value *Callee) { > + BitCastInst *BCInst = dyn_cast<BitCastInst>(Callee); > + if (BCInst == NULL) > + return NULL; It may be better to just do: Callee = Callee->stripPointerCasts(); Then you would use Callee rather than BCOp. > + > + Value *BCOp = BCInst->getO...
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 31
0
[LLVMdev] [PATCH] Split init.trampoline into init.trampoline & adjust.trampoline
...iven a call to llvm.adjust.trampoline, find the corresponding call to > +// llvm.init.trampoline. I think you should also say that it only returns a non-null value if the transform is safe to do. It's not just a question of finding the init.tramp call. > +// > +static IntrinsicInst *FindInitTrampoline(Value *Callee) { > + Callee = Callee->stripPointerCasts(); > + > + // This technique does not work (directly) if the trampoline has been > + // bitcasted even once. I find this obscure. Especially as the trampoline is almost always bitcast before being passed as a pointer to in...
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