diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-04-12 12:13:51 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-04-12 12:13:51 +0000 |
commit | 3389e10d675f7723d3ab24deda60dfba568b42c0 (patch) | |
tree | f786da549e8adaeba9c1b760c31c0647e6fdf1ce | |
parent | 200241e4de11981523b3d14f3acab6129efed701 (diff) | |
download | external_llvm-3389e10d675f7723d3ab24deda60dfba568b42c0.tar.gz external_llvm-3389e10d675f7723d3ab24deda60dfba568b42c0.tar.bz2 external_llvm-3389e10d675f7723d3ab24deda60dfba568b42c0.zip |
Revert broken pieces of r179373.
You can't copy an OwningPtr, and move semantics aren't available in C++98.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179374 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/RegAllocPBQP.h | 21 | ||||
-rw-r--r-- | lib/CodeGen/RegAllocPBQP.cpp | 32 | ||||
-rw-r--r-- | tools/llvm-link/llvm-link.cpp | 19 |
3 files changed, 37 insertions, 35 deletions
diff --git a/include/llvm/CodeGen/RegAllocPBQP.h b/include/llvm/CodeGen/RegAllocPBQP.h index dd7638e762..b617c14558 100644 --- a/include/llvm/CodeGen/RegAllocPBQP.h +++ b/include/llvm/CodeGen/RegAllocPBQP.h @@ -17,7 +17,6 @@ #define LLVM_CODEGEN_REGALLOCPBQP_H #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/OwningPtr.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/PBQP/Graph.h" #include "llvm/CodeGen/PBQP/Solution.h" @@ -124,10 +123,11 @@ namespace llvm { /// Build a PBQP instance to represent the register allocation problem for /// the given MachineFunction. - virtual OwningPtr<PBQPRAProblem> build(MachineFunction *mf, - const LiveIntervals *lis, - const MachineLoopInfo *loopInfo, - const RegSet &vregs); + virtual std::auto_ptr<PBQPRAProblem> build( + MachineFunction *mf, + const LiveIntervals *lis, + const MachineLoopInfo *loopInfo, + const RegSet &vregs); private: void addSpillCosts(PBQP::Vector &costVec, PBQP::PBQPNum spillCost); @@ -144,10 +144,11 @@ namespace llvm { /// Build a PBQP instance to represent the register allocation problem for /// the given MachineFunction. - virtual OwningPtr<PBQPRAProblem> build(MachineFunction *mf, - const LiveIntervals *lis, - const MachineLoopInfo *loopInfo, - const RegSet &vregs); + virtual std::auto_ptr<PBQPRAProblem> build( + MachineFunction *mf, + const LiveIntervals *lis, + const MachineLoopInfo *loopInfo, + const RegSet &vregs); private: @@ -160,7 +161,7 @@ namespace llvm { PBQP::PBQPNum benefit); }; - FunctionPass* createPBQPRegisterAllocator(OwningPtr<PBQPBuilder> builder, + FunctionPass* createPBQPRegisterAllocator(std::auto_ptr<PBQPBuilder> builder, char *customPassID=0); } diff --git a/lib/CodeGen/RegAllocPBQP.cpp b/lib/CodeGen/RegAllocPBQP.cpp index 42cdc649c2..607edac24b 100644 --- a/lib/CodeGen/RegAllocPBQP.cpp +++ b/lib/CodeGen/RegAllocPBQP.cpp @@ -89,8 +89,8 @@ public: static char ID; /// Construct a PBQP register allocator. - RegAllocPBQP(OwningPtr<PBQPBuilder> b, char *cPassID=0) - : MachineFunctionPass(ID), builder(b.take()), customPassID(cPassID) { + RegAllocPBQP(std::auto_ptr<PBQPBuilder> b, char *cPassID=0) + : MachineFunctionPass(ID), builder(b), customPassID(cPassID) { initializeSlotIndexesPass(*PassRegistry::getPassRegistry()); initializeLiveIntervalsPass(*PassRegistry::getPassRegistry()); initializeCalculateSpillWeightsPass(*PassRegistry::getPassRegistry()); @@ -121,7 +121,7 @@ private: typedef std::set<unsigned> RegSet; - OwningPtr<PBQPBuilder> builder; + std::auto_ptr<PBQPBuilder> builder; char *customPassID; @@ -132,7 +132,7 @@ private: const MachineLoopInfo *loopInfo; MachineRegisterInfo *mri; - OwningPtr<Spiller> spiller; + std::auto_ptr<Spiller> spiller; LiveIntervals *lis; LiveStacks *lss; VirtRegMap *vrm; @@ -186,16 +186,16 @@ unsigned PBQPRAProblem::getPRegForOption(unsigned vreg, unsigned option) const { return allowedSet[option - 1]; } -OwningPtr<PBQPRAProblem> PBQPBuilder::build(MachineFunction *mf, - const LiveIntervals *lis, - const MachineLoopInfo *loopInfo, - const RegSet &vregs) { +std::auto_ptr<PBQPRAProblem> PBQPBuilder::build(MachineFunction *mf, + const LiveIntervals *lis, + const MachineLoopInfo *loopInfo, + const RegSet &vregs) { LiveIntervals *LIS = const_cast<LiveIntervals*>(lis); MachineRegisterInfo *mri = &mf->getRegInfo(); const TargetRegisterInfo *tri = mf->getTarget().getRegisterInfo(); - OwningPtr<PBQPRAProblem> p(new PBQPRAProblem()); + std::auto_ptr<PBQPRAProblem> p(new PBQPRAProblem()); PBQP::Graph &g = p->getGraph(); RegSet pregs; @@ -311,13 +311,13 @@ void PBQPBuilder::addInterferenceCosts( } } -OwningPtr<PBQPRAProblem> PBQPBuilderWithCoalescing::build( +std::auto_ptr<PBQPRAProblem> PBQPBuilderWithCoalescing::build( MachineFunction *mf, const LiveIntervals *lis, const MachineLoopInfo *loopInfo, const RegSet &vregs) { - OwningPtr<PBQPRAProblem> p = PBQPBuilder::build(mf, lis, loopInfo, vregs); + std::auto_ptr<PBQPRAProblem> p = PBQPBuilder::build(mf, lis, loopInfo, vregs); PBQP::Graph &g = p->getGraph(); const TargetMachine &tm = mf->getTarget(); @@ -584,7 +584,7 @@ bool RegAllocPBQP::runOnMachineFunction(MachineFunction &MF) { while (!pbqpAllocComplete) { DEBUG(dbgs() << " PBQP Regalloc round " << round << ":\n"); - OwningPtr<PBQPRAProblem> problem = + std::auto_ptr<PBQPRAProblem> problem = builder->build(mf, lis, loopInfo, vregsToAlloc); #ifndef NDEBUG @@ -621,18 +621,18 @@ bool RegAllocPBQP::runOnMachineFunction(MachineFunction &MF) { } FunctionPass* llvm::createPBQPRegisterAllocator( - OwningPtr<PBQPBuilder> builder, + std::auto_ptr<PBQPBuilder> builder, char *customPassID) { - return new RegAllocPBQP(OwningPtr<PBQPBuilder>(builder.take()), customPassID); + return new RegAllocPBQP(builder, customPassID); } FunctionPass* llvm::createDefaultPBQPRegisterAllocator() { if (pbqpCoalescing) { return createPBQPRegisterAllocator( - OwningPtr<PBQPBuilder>(new PBQPBuilderWithCoalescing())); + std::auto_ptr<PBQPBuilder>(new PBQPBuilderWithCoalescing())); } // else return createPBQPRegisterAllocator( - OwningPtr<PBQPBuilder>(new PBQPBuilder())); + std::auto_ptr<PBQPBuilder>(new PBQPBuilder())); } #undef DEBUG_TYPE diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp index b195ca88de..83665cc175 100644 --- a/tools/llvm-link/llvm-link.cpp +++ b/tools/llvm-link/llvm-link.cpp @@ -53,13 +53,13 @@ DumpAsm("d", cl::desc("Print assembly as linked"), cl::Hidden); // LoadFile - Read the specified bitcode file in and return it. This routine // searches the link path for the specified file to try to find it... // -static inline OwningPtr<Module> LoadFile(const char *argv0, - const std::string &FN, - LLVMContext& Context) { +static inline std::auto_ptr<Module> LoadFile(const char *argv0, + const std::string &FN, + LLVMContext& Context) { sys::Path Filename; if (!Filename.set(FN)) { errs() << "Invalid file name: '" << FN << "'\n"; - return OwningPtr<Module>(); + return std::auto_ptr<Module>(); } SMDiagnostic Err; @@ -68,10 +68,10 @@ static inline OwningPtr<Module> LoadFile(const char *argv0, const std::string &FNStr = Filename.str(); Result = ParseIRFile(FNStr, Err, Context); - if (Result) return OwningPtr<Module>(Result); // Load successful! + if (Result) return std::auto_ptr<Module>(Result); // Load successful! Err.print(argv0, errs()); - return OwningPtr<Module>(); + return std::auto_ptr<Module>(); } int main(int argc, char **argv) { @@ -86,8 +86,8 @@ int main(int argc, char **argv) { unsigned BaseArg = 0; std::string ErrorMessage; - OwningPtr<Module> Composite(LoadFile(argv[0], - InputFilenames[BaseArg], Context)); + std::auto_ptr<Module> Composite(LoadFile(argv[0], + InputFilenames[BaseArg], Context)); if (Composite.get() == 0) { errs() << argv[0] << ": error loading file '" << InputFilenames[BaseArg] << "'\n"; @@ -95,7 +95,8 @@ int main(int argc, char **argv) { } for (unsigned i = BaseArg+1; i < InputFilenames.size(); ++i) { - OwningPtr<Module> M(LoadFile(argv[0], InputFilenames[i], Context)); + std::auto_ptr<Module> M(LoadFile(argv[0], + InputFilenames[i], Context)); if (M.get() == 0) { errs() << argv[0] << ": error loading file '" <<InputFilenames[i]<< "'\n"; return 1; |