Displaying 4 results from an estimated 4 matches for "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->getOp...
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 ini...
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