Don't move normal loads across volatile/atomic loads.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 29 Aug 2012 20:48:45 +0000 (20:48 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 29 Aug 2012 20:48:45 +0000 (20:48 +0000)
commit0d7585839540abb9ab661a741dc3e0c2c860bceb
treede409289982038ea7215472a88a780c84de50048
parent688c1cd6c932ce2811905dbca64e631c7ecbbd0f
Don't move normal loads across volatile/atomic loads.

It is technically allowed to move a normal load across a volatile load,
but probably not a good idea.

It is not allowed to move a load across an atomic load with
Ordering > Monotonic, and we model those with MOVolatile as well.

I recently removed the mayStore flag from atomic load instructions, so
they don't need a pseudo-opcode. This patch makes up for the difference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162857 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/MachineInstr.cpp