aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-08-28 23:02:39 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-08-28 23:02:39 +0000
commit5b79591450c47920139705712a402251af7eed79 (patch)
tree63b087a555c7efc39e4e405241d6b955a3cc2823
parent8b5f6cc0a4805c8cc64c22b02d34009452ebeef2 (diff)
downloadexternal_llvm-5b79591450c47920139705712a402251af7eed79.zip
external_llvm-5b79591450c47920139705712a402251af7eed79.tar.gz
external_llvm-5b79591450c47920139705712a402251af7eed79.tar.bz2
Moved function PrintMachineInstructions here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@392 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/MachineInstr.cpp42
1 files changed, 37 insertions, 5 deletions
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp
index 85440ae..d636d3a 100644
--- a/lib/CodeGen/MachineInstr.cpp
+++ b/lib/CodeGen/MachineInstr.cpp
@@ -12,10 +12,19 @@
// 7/2/01 - Vikram Adve - Created
//**************************************************************************/
-#include "llvm/CodeGen/MachineInstr.h"
+
+//************************** System Include Files ***************************/
+
+#include <strstream>
+
+
+//*************************** User Include Files ***************************/
+
+#include "llvm/Method.h"
#include "llvm/ConstPoolVals.h"
#include "llvm/Instruction.h"
-#include <strstream>
+#include "llvm/CodeGen/MachineInstr.h"
+
//************************ Class Implementations **************************/
@@ -204,7 +213,7 @@ Set3OperandsFromInstrJUNK(MachineInstr* minstr,
unsigned returnFlags = 0x0;
- // Check if operand 1 is 0 and if so, try to use the register that gives 0, if any.
+ // Check if operand 1 is 0. If so, try to use a hardwired 0 register.
Value* op1Value = vmInstrNode->leftChild()->getValue();
bool isValidConstant;
int64_t intValue = GetConstantValueAsSignedInt(op1Value, isValidConstant);
@@ -220,8 +229,8 @@ Set3OperandsFromInstrJUNK(MachineInstr* minstr,
op1Value);
}
- // Check if operand 2 (if any) fits in the immediate field of the instruction,
- // of if it is 0 and can use a dedicated machine register
+ // Check if operand 2 (if any) fits in the immed. field of the instruction,
+ // or if it is 0 and can use a dedicated machine register
if (op2Position >= 0)
{
Value* op2Value = vmInstrNode->rightChild()->getValue();
@@ -333,3 +342,26 @@ ChooseRegOrImmed(Value* val,
return opType;
}
+
+
+void
+PrintMachineInstructions(Method* method)
+{
+ cout << "\n" << method->getReturnType()
+ << " \"" << method->getName() << "\"" << endl;
+
+ for (Method::const_iterator BI = method->begin(); BI != method->end(); ++BI)
+ {
+ BasicBlock* bb = *BI;
+ cout << "\n"
+ << (bb->hasName()? bb->getName() : "Label")
+ << " (" << bb << ")" << ":"
+ << endl;
+
+ MachineCodeForBasicBlock& mvec = bb->getMachineInstrVec();
+ for (unsigned i=0; i < mvec.size(); i++)
+ cout << "\t" << *mvec[i] << endl;
+ }
+ cout << endl << "End method \"" << method->getName() << "\""
+ << endl << endl;
+}