summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/InstrSelection
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/InstrSelection')
-rw-r--r--llvm/lib/CodeGen/InstrSelection/InstrForest.cpp9
-rw-r--r--llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp2
-rw-r--r--llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp4
3 files changed, 12 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
index 199ed6569be..d460bb77e23 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrForest.cpp
@@ -80,6 +80,15 @@ InstructionNode::InstructionNode(Instruction* I)
{
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 abbd2f94f7e..fafe0234e34 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -130,7 +130,7 @@ SelectInstructionsForMethod(Method* method, TargetMachine &target)
{
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 88fd4a41386..0a6d7d331d3 100644
--- a/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
+++ b/llvm/lib/CodeGen/InstrSelection/InstrSelectionSupport.cpp
@@ -337,7 +337,7 @@ FixConstantOperandsForInstr(Instruction* vmInstr,
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 @@ FixConstantOperandsForInstr(Instruction* vmInstr,
if (isa<ConstPoolVal>(oldVal))
{ // register the value so it is emitted in the assembly
- method->getMachineCode().addToConstantPool(
+ MachineCodeForMethod::get(method).addToConstantPool(
cast<ConstPoolVal>(oldVal));
}
}
OpenPOWER on IntegriCloud