aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-03-18 06:29:54 +0000
committerChris Lattner <sabre@nondot.org>2004-03-18 06:29:54 +0000
commit85c84e759e86d3f6d77b6a1568e1c8d25cdf1814 (patch)
tree9391fa3961d607e1dec1452f411af264605a5a5e
parentaa7ab53b99c37a809563513bb8d5ac9a9230b104 (diff)
Fix a really nasty bug that was breaking ijpeg in LLC mode. We were incorrectly
folding load instructions into other instructions across free instruction boundaries. Perhaps this will also fix the other strange failures? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12494 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/InstSelectSimple.cpp2
-rw-r--r--lib/Target/X86/X86ISelSimple.cpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index 5fad0e788a..e631fdb6ff 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -1422,6 +1422,8 @@ static bool isSafeToFoldLoadIntoInstruction(LoadInst &LI, Instruction &User) {
// really use alias analysis here, but for now we just do something simple.
for (++It; It != BasicBlock::iterator(&User); ++It) {
switch (It->getOpcode()) {
+ case Instruction::Malloc:
+ case Instruction::Free:
case Instruction::Store:
case Instruction::Call:
case Instruction::Invoke:
diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp
index 5fad0e788a..e631fdb6ff 100644
--- a/lib/Target/X86/X86ISelSimple.cpp
+++ b/lib/Target/X86/X86ISelSimple.cpp
@@ -1422,6 +1422,8 @@ static bool isSafeToFoldLoadIntoInstruction(LoadInst &LI, Instruction &User) {
// really use alias analysis here, but for now we just do something simple.
for (++It; It != BasicBlock::iterator(&User); ++It) {
switch (It->getOpcode()) {
+ case Instruction::Malloc:
+ case Instruction::Free:
case Instruction::Store:
case Instruction::Call:
case Instruction::Invoke: