Major overhaul of stack frame management.
llvm-svn: 1185
diff --git a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
index 199ed65..d460bb7 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
@@ -80,6 +80,15 @@
{
opLabel = opLabel + 100; // load/getElem with index vector
}
+ else if (opLabel == Instruction::And ||
+ opLabel == Instruction::Or ||
+ opLabel == Instruction::Xor ||
+ opLabel == Instruction::Not)
+ {
+ // Distinguish bitwise operators from logical operators!
+ if (I->getType() != Type::BoolTy)
+ opLabel = opLabel + 100; // bitwise operator
+ }
else if (opLabel == Instruction::Cast)
{
const Type *ITy = I->getType();
diff --git a/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp b/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp
index abbd2f9..fafe023 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -130,7 +130,7 @@
{
cout << endl
<< "*** Machine instructions after INSTRUCTION SELECTION" << endl;
- method->getMachineCode().dump();
+ MachineCodeForMethod::get(method).dump();
}
return false;
diff --git a/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp b/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
index 88fd4a4..0a6d7d3 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
@@ -337,7 +337,7 @@
if (constantThatMustBeLoaded)
{ // register the value so it is emitted in the assembly
- method->getMachineCode().addToConstantPool(
+ MachineCodeForMethod::get(method).addToConstantPool(
cast<ConstPoolVal>(opValue));
}
}
@@ -372,7 +372,7 @@
if (isa<ConstPoolVal>(oldVal))
{ // register the value so it is emitted in the assembly
- method->getMachineCode().addToConstantPool(
+ MachineCodeForMethod::get(method).addToConstantPool(
cast<ConstPoolVal>(oldVal));
}
}