It looks like most targets do this, but not all.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Is the code change due to the fact that the optimizer later finally knows that 12(sp) and 8(sp) don't overlap?
Comment Actions
MachineSinking is moving the fld down. It previously couldn't do it because isSafeToMove returned false because hasOrderedMemoryRef() conservatively returned true due to the missing mem operand.
// a load across an atomic load with Ordering > Monotonic. if (mayStore() || isCall() || isPHI() || (mayLoad() && hasOrderedMemoryRef())) { SawStore = true; return false; }