forked from OSchip/llvm-project
Use unique_ptr to manage Scop inside ScopInfo.
llvm-svn: 260821
This commit is contained in:
parent
660f3ccfa5
commit
fec328083a
|
@ -2009,7 +2009,7 @@ class ScopInfo : public RegionPass {
|
|||
ScalarEvolution *SE;
|
||||
|
||||
// The Scop
|
||||
Scop *scop;
|
||||
std::unique_ptr<Scop> scop;
|
||||
isl_ctx *ctx;
|
||||
|
||||
// Clear the context.
|
||||
|
@ -2214,8 +2214,8 @@ public:
|
|||
/// @return If the current region is a valid for a static control part,
|
||||
/// return the Polly IR representing this static control part,
|
||||
/// return null otherwise.
|
||||
Scop *getScop() { return scop; }
|
||||
const Scop *getScop() const { return scop; }
|
||||
Scop *getScop() { return scop.get(); }
|
||||
const Scop *getScop() const { return scop.get(); }
|
||||
|
||||
/// @name RegionPass interface
|
||||
//@{
|
||||
|
|
|
@ -4126,7 +4126,7 @@ void ScopInfo::addPHIReadAccess(PHINode *PHI) {
|
|||
|
||||
void ScopInfo::buildScop(Region &R, AssumptionCache &AC) {
|
||||
unsigned MaxLoopDepth = getMaxLoopDepthInRegion(R, *LI, *SD);
|
||||
scop = new Scop(R, *SE, ctx, MaxLoopDepth);
|
||||
scop.reset(new Scop(R, *SE, ctx, MaxLoopDepth));
|
||||
|
||||
buildStmts(R, R);
|
||||
buildAccessFunctions(R, R);
|
||||
|
@ -4153,15 +4153,10 @@ void ScopInfo::print(raw_ostream &OS, const Module *) const {
|
|||
scop->print(OS);
|
||||
}
|
||||
|
||||
void ScopInfo::clear() {
|
||||
if (scop) {
|
||||
delete scop;
|
||||
scop = 0;
|
||||
}
|
||||
}
|
||||
void ScopInfo::clear() { scop.reset(); }
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
ScopInfo::ScopInfo() : RegionPass(ID), scop(0) {
|
||||
ScopInfo::ScopInfo() : RegionPass(ID) {
|
||||
ctx = isl_ctx_alloc();
|
||||
isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT);
|
||||
}
|
||||
|
@ -4207,8 +4202,7 @@ bool ScopInfo::runOnRegion(Region *R, RGPassManager &RGM) {
|
|||
|
||||
if (scop->isEmpty() || !scop->hasFeasibleRuntimeContext()) {
|
||||
Msg = "SCoP ends here but was dismissed.";
|
||||
delete scop;
|
||||
scop = nullptr;
|
||||
scop.reset();
|
||||
} else {
|
||||
Msg = "SCoP ends here.";
|
||||
++ScopFound;
|
||||
|
|
Loading…
Reference in New Issue