search for: issret

Displaying 8 results from an estimated 8 matches for "issret".

Did you mean: isset
2007 Oct 05
0
[LLVMdev] RFC: Tail call optimization X86
...off the stack" is not controlled by the .td. It's controlled in code by the operands of CALLSEQ_END. for example in SDOperand X86TargetLowering::LowerCCCCallTo: ... if (CC == CallingConv::X86_StdCall || CC == CallingConv::Fast) { if (isVarArg) NumBytesForCalleeToPush = isSRet ? 4 : 0; else NumBytesForCalleeToPush = NumBytes; assert(!(isVarArg && CC==CallingConv::Fast) && "CallingConv::Fast does not support varargs."); } else { // If this is is a call to a struct-return function, the callee // pops the...
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
...that's even easier to have it be controlled by the command line option. Evan > > for example in SDOperand X86TargetLowering::LowerCCCCallTo: > ... > if (CC == CallingConv::X86_StdCall || CC == CallingConv::Fast) { > if (isVarArg) > NumBytesForCalleeToPush = isSRet ? 4 : 0; > else > NumBytesForCalleeToPush = NumBytes; > assert(!(isVarArg && CC==CallingConv::Fast) && > "CallingConv::Fast does not support varargs."); > } else { > // If this is is a call to a struct-return function...
2007 Oct 05
0
[LLVMdev] RFC: Tail call optimization X86
...ntrolled by the command line > option. > > Evan > >> >> for example in SDOperand X86TargetLowering::LowerCCCCallTo: >> ... >> if (CC == CallingConv::X86_StdCall || CC == CallingConv::Fast) { >> if (isVarArg) >> NumBytesForCalleeToPush = isSRet ? 4 : 0; >> else >> NumBytesForCalleeToPush = NumBytes; >> assert(!(isVarArg && CC==CallingConv::Fast) && >> "CallingConv::Fast does not support varargs."); >> } else { >> // If this is is a call to...
2020 Feb 18
2
Function Return Legalization
...ndex) generated, saving the pointer to the i64 return value memory location in int form into a register. The plan is to extract the frame address and offset from the FrameIndex node and perform CopyToReg(ER0, (frame address + offset)). - These DAG nodes are being created in LowerCall when the isSRet flag is true for an argument. Is it ideal to do it here or are there other better methods? The main goal here is to expand FrameIndex node into an add(frame address, offset) node - I am currently having a hard time extracting the offset in the FrameIndex node. I have also read (From “Using fr...
2020 Feb 14
2
Function Return Legalization
...xample of how this works in practice, try something like “echo 'define i128 @foo() { ret i128 3 }' | llc -mtriple=i686”. If you need to stick the sret pointer into a special register, you can use CCIfSRet in TableGen. (Or if you’re not using a TableGen’ed calling convention, you can check IsSRet in C++.) -Eli From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Miguel Inigo J. Manalac via llvm-dev Sent: Wednesday, February 12, 2020 12:32 AM To: llvm-dev at lists.llvm.org Subject: [EXT] [llvm-dev] Function Return Legalization Hi All, In the target we are implementing,...
2020 Feb 12
3
Function Return Legalization
Hi All, In the target we are implementing, function return for i64 and f64 types has a different processing. For types i8 to i32, and f32, the return values are stored in their designated return registers (like how other targets does it). For i64 and f64 types, in the function call, after pushing the function parameters into the stack, the address of the allocated return memory space is
2013 Sep 25
1
[LLVMdev] arm64 / iOS support
Attached is a working patch set for llvm to be able to emit arm64 (currently as triple aarch64-apple-ios) mach-o object files, in case someone is interested. I'm not sure if the llvm maintainers want the patch given the previous message that there's going to be an official patch set from apple to support this, but here is mine. What works (tested on an iPhone 5S): * objc strings,