diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-08-24 22:27:36 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-08-24 22:27:36 +0000 |
commit | 951fb361203dd56bb1139036da29fc9c3aea2a46 (patch) | |
tree | bb5bcb4b93ba3baa3417c92f10f017946aa4bae5 | |
parent | d398d4a39ecef00c718e3a2cada0582fc35f46db (diff) | |
download | bcm5719-llvm-951fb361203dd56bb1139036da29fc9c3aea2a46.tar.gz bcm5719-llvm-951fb361203dd56bb1139036da29fc9c3aea2a46.zip |
[Hexagon] Change insertion of expand-condsets pass to avoid memory leaks
llvm-svn: 279678
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp index 5a2a9854830..03c753c9bf6 100644 --- a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp +++ b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp @@ -224,6 +224,10 @@ namespace { char HexagonExpandCondsets::ID = 0; +namespace llvm { + char &HexagonExpandCondsetsID = HexagonExpandCondsets::ID; +} + INITIALIZE_PASS_BEGIN(HexagonExpandCondsets, "expand-condsets", "Hexagon Expand Condsets", false, false) INITIALIZE_PASS_DEPENDENCY(MachineDominatorTree) diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 94fd52c38e5..1061082865c 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -112,6 +112,9 @@ SchedCustomRegistry("hexagon", "Run Hexagon's custom scheduler", createVLIWMachineSched); namespace llvm { + extern char &HexagonExpandCondsetsID; + void initializeHexagonExpandCondsetsPass(PassRegistry&); + FunctionPass *createHexagonBitSimplify(); FunctionPass *createHexagonBranchRelaxation(); FunctionPass *createHexagonCallFrameInformation(); @@ -120,7 +123,6 @@ namespace llvm { FunctionPass *createHexagonConstPropagationPass(); FunctionPass *createHexagonCopyToCombine(); FunctionPass *createHexagonEarlyIfConversion(); - FunctionPass *createHexagonExpandCondsets(); FunctionPass *createHexagonFixupHwLoops(); FunctionPass *createHexagonGenExtract(); FunctionPass *createHexagonGenInsert(); @@ -164,6 +166,7 @@ HexagonTargetMachine::HexagonTargetMachine(const Target &T, const Triple &TT, TT, CPU, FS, Options, getEffectiveRelocModel(RM), CM, (HexagonNoOpt ? CodeGenOpt::None : OL)), TLOF(make_unique<HexagonTargetObjectFile>()) { + initializeHexagonExpandCondsetsPass(*PassRegistry::getPassRegistry()); initAsmInfo(); } @@ -287,10 +290,8 @@ bool HexagonPassConfig::addInstSelector() { void HexagonPassConfig::addPreRegAlloc() { if (getOptLevel() != CodeGenOpt::None) { - if (EnableExpandCondsets) { - Pass *Exp = createHexagonExpandCondsets(); - insertPass(&RegisterCoalescerID, IdentifyingPassPtr(Exp)); - } + if (EnableExpandCondsets) + insertPass(&RegisterCoalescerID, &HexagonExpandCondsetsID); if (!DisableStoreWidening) addPass(createHexagonStoreWidening(), false); if (!DisableHardwareLoops) |