Displaying 5 results from an estimated 5 matches for "gettargetframeindex".
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
...I just emit FrameIndex as immediate:
bool MyBackendDAGToDAGISel::SelectAddrFI(SDValue &N, SDValue &R) {
if (N.getOpcode() != ISD::FrameIndex)
return false;
MachineFrameInfo &MFI = MF->getFrameInfo();
int FX = cast<FrameIndexSDNode>(N)->getIndex();
R = CurDAG->getTargetFrameIndex(FX, MVT::i32);
return true;
}
This way I end up with
store %r1, [1]
and handle it in my CPU emulator accordingly.
So, instead of matching that FrameIndex in store, I really want to emit a
load first and then use a register in the store instruction.
Can you, please, advise me how to implement...
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
On Tue, Jun 25, 2019 at 9:59 AM Tim Northover <t.p.northover at gmail.com>
wrote:
> On Tue, 25 Jun 2019 at 06:26, Gleb Popov via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> >> While the store is being selected LLVM will just treat the value being
> >> stored as a generic pointer-width integer unless you have written a
> >> specific pattern for
2010 Jan 18
0
[LLVMdev] Frame index arithmetic
On Jan 17, 2010, at 2:56 AM, Mark Muir wrote:
> I've developed a working back-end for a custom architecture, based on LLVM 2.6. I'm now trying to cover more of the unique features of this architecture.
>
> To make use of one such feature, I'm trying something cunning/crazy with the stack - implementing it in a type of memory that can only be addressed via immediates.
>
2010 Jan 19
2
[LLVMdev] Frame index arithmetic
...quot;printFrameIndexOperand";
let MIOperandInfo = (ops GPR);
}
And the following selection code:
bool
MyDAGToDAGISel::
SelectFrameIndex(SDValue Op, SDValue N, SDValue& Address) {
if (FrameIndexSDNode* FIN = dyn_cast<FrameIndexSDNode>(N)) {
Address = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
return true;
}
return false;
}
In light of your comment, I tried extending this method to only allow cases where Op is ISD::LOAD or ISD::STORE. I found this made no difference to the behaviour. That was surprising, so I added code to print out each in...
2010 Jan 17
2
[LLVMdev] Frame index arithmetic
I've developed a working back-end for a custom architecture, based on LLVM 2.6. I'm now trying to cover more of the unique features of this architecture.
To make use of one such feature, I'm trying something cunning/crazy with the stack - implementing it in a type of memory that can only be addressed via immediates.
I've got this mostly working. However, I came across a problem