search for: store_stack

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