Displaying 4 results from an estimated 4 matches for "rvloc".
Did you mean:
reloc
2007 Sep 11
0
[LLVMdev] RFC: Tail call optimization X86
...owered
in certain order, that is dangerous. It's probably better to check
whether the last call is a tail call on the fly as you are processing
the return node.
8.
-
- SDOperand Chain = Op.getOperand(0);
- SDOperand Flag;
-
- // Copy the result values into the output registers.
- if (RVLocs.size() != 1 || !RVLocs[0].isRegLoc() ||
- RVLocs[0].getLocReg() != X86::ST0) {
- for (unsigned i = 0; i != RVLocs.size(); ++i) {
- CCValAssign &VA = RVLocs[i];
- assert(VA.isRegLoc() && "Can only return in registers!");
- Chain = DAG.getCopyToReg(Chain,...
2007 Sep 06
2
[LLVMdev] RFC: Tail call optimization X86
Hi Evan,
first off thanks to you and Chris for taking time.
On 6 Sep 2007, at 00:57, Evan Cheng wrote:
> We'd like to see tail call optimization to be similar to the target
> independent lowering of ISD::CALL nodes. These are auto-generated
> from ???CallingConv.td files. Some target specific details such as
> function address register (ECX in your example) should be coded in
2013 Feb 02
0
[LLVMdev] Moving return value registers from MRI to return instructions
...s.
3. XXXISelLowering::LowerReturn() should add return value registers to the RET_FLAG node instead of calling MRI.addLiveOut():
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -1590,14 +1590,7 @@ X86TargetLowering::LowerReturn(SDValue Chain,
RVLocs, *DAG.getContext());
CCInfo.AnalyzeReturn(Outs, RetCC_X86);
- // Add the regs to the liveout set for the function.
- MachineRegisterInfo &MRI = DAG.getMachineFunction().getRegInfo();
- for (unsigned i = 0; i != RVLocs.size(); ++i)
- if (RVLocs[i].isRegLoc() && !MRI.isLiveOut...
2007 Sep 11
2
[LLVMdev] RFC: Tail call optimization X86
...s probably better to check
> whether the last call is a tail call on the fly as you are processing
> the return node.
Will do so.
> 8.
> -
> - SDOperand Chain = Op.getOperand(0);
> - SDOperand Flag;
> -
> - // Copy the result values into the output registers.
> - if (RVLocs.size() != 1 || !RVLocs[0].isRegLoc() ||
> - RVLocs[0].getLocReg() != X86::ST0) {
> - for (unsigned i = 0; i != RVLocs.size(); ++i) {
> - CCValAssign &VA = RVLocs[i];
> - assert(VA.isRegLoc() && "Can only return in registers!");
> - Chain...