Displaying 4 results from an estimated 4 matches for "store_stack".
Did you mean:
restore_stack
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
...cted LLVM will just treat the value being
> >> stored as a generic pointer-width integer unless you have written a
> >> specific pattern for storing a FrameIndex somewhere.
> >
> > Actually, this is exactly my case. I have a pattern that looks like
> >
> > (store_stack IntRegs:$reg, FIOperand:$i)
> >
> > It worked for me when first operand was a register and now I stumbled
> upon two FrameIndicies.
>
> That looks more like it's storing *to* a FrameIndex than storing a
> FrameIndex, but it actually shouldn't matter. The same sequenc...
2019 Jun 25
2
How to handle ISD::STORE when both operands are FrameIndex?
...e used instead?
>
> 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 storing a FrameIndex somewhere.
Actually, this is exactly my case. I have a pattern that looks like
(store_stack IntRegs:$reg, FIOperand:$i)
It worked for me when first operand was a register and now I stumbled upon
two FrameIndicies.
That's probably
> what you want so no need to change anything.
>
> After that, LLVM will try to select the FrameIndex itself (which
> you'll need to suppo...
2019 Jun 26
2
How to handle ISD::STORE when both operands are FrameIndex?
...thover <t.p.northover at gmail.com>
wrote:
> Hi Gleb,
>
> On Wed, 26 Jun 2019 at 07:28, Gleb Popov <6yearold at gmail.com> wrote:
> > def StoreStackF : InstRI<2, (outs), (ins IntRegs:$reg, i32imm:$i),
> > "storestackf $reg, [$i]", [(store_stack i32:$reg,
> AddrFI:$i)]>;
> >
> > I'm puzzled why despite having "IntRegs:$reg" in ins list, it still
> matches FrameIndex:
>
> A register-class will match anything with the appropriate type (i32
> here). The idea is that any value of that type can be put...
2019 Jun 24
3
How to handle ISD::STORE when both operands are FrameIndex?
Hello.
After "Initial selection DAG" stage I get a DAG with node
t14: ch = store<(store 4 into %ir.p45, align 8, addrspace 1)> t10,
FrameIndex:i32<2>, FrameIndex:i32<3>, undef:i32
1. Where does it come from? Can I do anything to make it not appear?
2. If not, how do I change it so that the operand being stored would be
first loaded into a register, and that register