search for: onreturn

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

Did you mean: noreturn
2007 Oct 05
0
[LLVMdev] RFC: Tail call optimization X86
...th ones compiled without the flag off as stack behaviour would mismatch. It would be no problem to make the behaviour dependent on the -tail- call-opt flag. i am not sure that this is a good idea? pseudocode: module 1: with -tailcallopt enabled fastcc int callee(int arg1, int arg2) { ... -> onreturn: pops 8 byte } module 2: no -tailcallopt fastcc int caller() { int x= call fastcc callee(); //!! caller pops the arguments => stack mismatch callee pops the arguments but caller also wants to pop the arguments of the stack Apparently i forgot to send the answer email to chris reponse. sor...
2007 Oct 04
3
[LLVMdev] RFC: Tail call optimization X86
Comments: CheckDAGForTailCallsAndFixThem - 1. for (SelectionDAG::allnodes_iterator BE = DAG.allnodes_begin(), + BI = prior(DAG.allnodes_end()); BI != BE; BI--) { Please use pre-decrement instead of post-decrement. 2. The function is slower than it should be. You are scanning all the nodes in the DAG twice. You should just examine DAG.getRoot() to make determine whether it's a
2007 Oct 05
6
[LLVMdev] RFC: Tail call optimization X86
...rnal functions to fastcc. We can set a policy of treating fastcc external functions as c functions. Then there is no chance of introducing ABI incompatibility. > > pseudocode: > > module 1: with -tailcallopt enabled > fastcc int callee(int arg1, int arg2) { > ... > -> onreturn: pops 8 byte > } > > module 2: no -tailcallopt > fastcc int caller() { > int x= call fastcc callee(); > //!! caller pops the arguments => stack mismatch > > callee pops the arguments but caller also wants to pop the arguments > of the stack > > Apparently i for...
2007 Oct 05
0
[LLVMdev] RFC: Tail call optimization X86
...a policy of treating fastcc external functions > as c functions. Then there is no chance of introducing ABI > incompatibility. > >> >> pseudocode: >> >> module 1: with -tailcallopt enabled >> fastcc int callee(int arg1, int arg2) { >> ... >> -> onreturn: pops 8 byte >> } >> >> module 2: no -tailcallopt >> fastcc int caller() { >> int x= call fastcc callee(); >> //!! caller pops the arguments => stack mismatch >> >> callee pops the arguments but caller also wants to pop the arguments >> of...