search for: lowerx86_32fastcccallto

Displaying 10 results from an estimated 10 matches for "lowerx86_32fastcccallto".

2007 Sep 06
2
[LLVMdev] RFC: Tail call optimization X86
...ean bit :) > As for what you described here. I am having a hard time following > it. :-) Please send patch. > Okay here is a patch containing the tail call optimization code for X86. It mostly does what i have described in preceeding emails: There is new code for lowering fastcc calls: LowerX86_32FastCCCallTo LowerX86_32FastCCArguments There is some code checking whether a TAIL CALL really is eligible for tail call optimization. I modified: LowerRET to create a TC_RETURN node. (used for adjusting stackpointer and jumping to function in epilogue, similar to EH_RETURN) There is a new calling conventio...
2007 Sep 11
0
[LLVMdev] RFC: Tail call optimization X86
...match and the +// function CALL is immediatly followed by a RET +bool X86TargetLowering::IsEligibleForTailCallElimination(SDOperand Call, SelectionDAG& DAG, unsigned CalleeCC, SDOperand Callee) { + bool IsEligible = false; + SDNode * CallNode = Call.Val; ... +SDOperand X86TargetLowering::LowerX86_32FastCCCallTo(SDOperand Op, + SelectionDAG &DAG, + unsigned CC) { + DOUT << "LowerX86_32FastCCCallTo\n"; + SDOperand Chain = Op.getOperand(0); + bool isVarArg = cast<Constan...
2007 Aug 11
1
[LLVMdev] Tail call optimization deeds
...nt. Only functions with callingconv::fastcc and the tail call attribute will be optimized. Maybe the next step should be to integrate the code into the other calling convention lowering. Here is what i have at the moment: If callingconv::fastcc is used the function will be custom lowered. (LowerX86_32FastCCCallTo and LowerX86_32FastCCArguments, the code is based on the std calling convention minus ecx as inreg) The lowering code decides whether the function call really is eligible for tail call optimization tco (caller-callee agree, tail call opt is enabled, tail position, TODO: check for PIC code). I...
2007 Sep 11
2
[LLVMdev] RFC: Tail call optimization X86
...L is immediatly followed by a RET > +bool X86TargetLowering::IsEligibleForTailCallElimination(SDOperand > Call, SelectionDAG& DAG, unsigned CalleeCC, SDOperand Callee) { > + bool IsEligible = false; > + SDNode * CallNode = Call.Val; > ... > > +SDOperand X86TargetLowering::LowerX86_32FastCCCallTo(SDOperand Op, > + SelectionDAG > &DAG, > + unsigned CC) { > + DOUT << "LowerX86_32FastCCCallTo\n"; > + SDOperand Chain = Op.getOperand(0); > + bool...
2007 Aug 13
0
[LLVMdev] Tail call optimization deeds
...th > callingconv::fastcc and the tail call attribute will be optimized. > Maybe the next step should be to integrate the code into the other > calling convention lowering. Here is what i have at the moment: > > If callingconv::fastcc is used the function will be custom lowered. > (LowerX86_32FastCCCallTo and LowerX86_32FastCCArguments, the code is > based on the std calling convention minus ecx as inreg) > The lowering code decides whether the function call really is > eligible for tail call optimization tco (caller-callee agree, tail > call opt is enabled, tail position, TODO: check fo...
2007 Aug 09
4
[LLVMdev] Tail call optimization thoughts
Hello, Arnold. Only quick comments, I'll try to make a full review a little bit later. > 0.)a fast calling convention (maybe use the current > CallingConv::Fast, or create a CallingConv::TailCall) > 1.) lowering of formal arguments > like for example x86_LowerCCCArguments in stdcall mode > we need to make sure that later mentioned CALL_CLOBBERED_REG is >
2007 Sep 24
2
[LLVMdev] RFC: Tail call optimization X86
...ote that I interpreted the following paragraph of you: > IsEligibleForTailCallElimination() should be a target hook. This way > TargetLowering::LowerCallTo() can determine whether a call is > eligible for tail call elimination and insert the current ISD::CALL > node. X86TargetLowering::LowerX86_32FastCCCallTo() will not have to > handle non-tail calls. in the following way: I check in TargetLowering:LowerCallTo whether the call IsEligibleForTailCallElimination and insert a ISD:CALL node with the tailcall attribute set or not. Then in X86TargetLowering::LowerCALL i can dispatch the right lowerin...
2007 Sep 24
0
[LLVMdev] RFC: Tail call optimization X86
...preted the following paragraph of you: >> IsEligibleForTailCallElimination() should be a target hook. This way >> TargetLowering::LowerCallTo() can determine whether a call is >> eligible for tail call elimination and insert the current ISD::CALL >> node. X86TargetLowering::LowerX86_32FastCCCallTo() will not have to >> handle non-tail calls. > > in the following way: > I check in TargetLowering:LowerCallTo whether the call > IsEligibleForTailCallElimination > and insert a ISD:CALL node with the tailcall attribute set or not. > > Then in X86TargetLowering::LowerCALL...
2007 Sep 24
0
[LLVMdev] RFC: Tail call optimization X86
Hi Arnold, This is a very good first step! Thanks! Comments below. Evan Index: test/CodeGen/X86/constant-pool-remat-0.ll =================================================================== --- test/CodeGen/X86/constant-pool-remat-0.ll (revision 42247) +++ test/CodeGen/X86/constant-pool-remat-0.ll (working copy) @@ -1,8 +1,10 @@ ; RUN: llvm-as < %s | llc -march=x86-64 | grep LCPI | count 3 ;
2007 Sep 23
2
[LLVMdev] RFC: Tail call optimization X86
The patch is against revision 42247. -------------- next part -------------- A non-text attachment was scrubbed... Name: tailcall-src.patch Type: application/octet-stream Size: 62639 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070923/4770302f/attachment.obj>