projects
/
platform
/
upstream
/
llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
06bd138
)
[mips] Disallow moving load/store instructions past volatile instructions.
author
Akira Hatanaka
<ahatanaka@mips.com>
Thu, 14 Feb 2013 23:54:40 +0000
(23:54 +0000)
committer
Akira Hatanaka
<ahatanaka@mips.com>
Thu, 14 Feb 2013 23:54:40 +0000
(23:54 +0000)
Unfortunately, I wasn't able to create a test case that demonstrates the
problem I was trying to fix with this patch.
llvm-svn: 175226
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
patch
|
blob
|
history
diff --git
a/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
b/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
index b56d9cd22b3488fb582293934cb97c9d642e4d2d..6b25d2d97cb0e2cc970228a207a1f8eb0a4594e3 100644
(file)
--- a/
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+++ b/
llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
@@
-208,7
+208,7
@@
bool Filler::delayHasHazard(const MachineInstr &Candidate, bool &SawLoad,
// Loads or stores cannot be moved past a store to the delay slot
// and stores cannot be moved past a load.
- if (Candidate.mayStore()) {
+ if (Candidate.mayStore()
|| Candidate.hasOrderedMemoryRef()
) {
HasHazard |= SawStore | SawLoad;
SawStore = true;
} else if (Candidate.mayLoad()) {