Print IR from Hexagon MI passes with -print-before/after-all.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181255 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Krzysztof Parzyszek
2013-05-06 21:58:00 +00:00
parent 61e0172197
commit 942940a326
6 changed files with 79 additions and 17 deletions

View File

@@ -49,6 +49,11 @@
using namespace llvm;
namespace llvm {
void initializeHexagonSplitTFRCondSetsPass(PassRegistry&);
}
namespace {
class HexagonSplitTFRCondSets : public MachineFunctionPass {
@@ -58,7 +63,9 @@ class HexagonSplitTFRCondSets : public MachineFunctionPass {
public:
static char ID;
HexagonSplitTFRCondSets(const HexagonTargetMachine& TM) :
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {}
MachineFunctionPass(ID), QTM(TM), QST(*TM.getSubtargetImpl()) {
initializeHexagonSplitTFRCondSetsPass(*PassRegistry::getPassRegistry());
}
const char *getPassName() const {
return "Hexagon Split TFRCondSets";
@@ -211,6 +218,17 @@ bool HexagonSplitTFRCondSets::runOnMachineFunction(MachineFunction &Fn) {
// Public Constructor Functions
//===----------------------------------------------------------------------===//
static void initializePassOnce(PassRegistry &Registry) {
const char *Name = "Hexagon Split TFRCondSets";
PassInfo *PI = new PassInfo(Name, "hexagon-split-tfr",
&HexagonSplitTFRCondSets::ID, 0, false, false);
Registry.registerPass(*PI, true);
}
void llvm::initializeHexagonSplitTFRCondSetsPass(PassRegistry &Registry) {
CALL_ONCE_INITIALIZATION(initializePassOnce)
}
FunctionPass*
llvm::createHexagonSplitTFRCondSets(const HexagonTargetMachine &TM) {
return new HexagonSplitTFRCondSets(TM);