[llvm-dev] How to handle ISD::STORE when both operands are FrameIndex?

Gleb Popov via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 24 04:15:38 PDT 2019


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 would be used instead? Like

ch = StoreStackF<Mem:(store 4 into %ir.p45, align 8, addrspace 1)>
Register:%1, TargetFrameIndex:i32<3>, t10

Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190624/9c7d3784/attachment.html>


More information about the llvm-dev mailing list