<div dir="ltr">Hello Lang,<div><br></div><div>PeepholeOptimizer allows backend to provide optimizeLoadInstr function to fold memory-load operand.</div><div><br></div><div>But it doesn't work for folding load operand into store instruction (combine into memory-to-memory instruction).</div><div>It is rare case, but some backends have such instructions (like SystemZ MVC).</div><div><div><br></div><div>It doesn't work because "FoldAsLoadDefCandidates.clear()" occurs too early, before current instruction "optimizeLoadInstr" check.</div><div><br></div><div>Could "FoldAsLoadDefCandidates.clear()" be moved later?</div><div><br></div><div>After "!isLoadFoldable(...) && !FoldAsLoadDefCandidates.empty()" condition check.</div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Thanks,</div><div class="gmail_signature" data-smartmail="gmail_signature">Andrew</div>
</div></div>