diff options
| author | Michael Gottesman <mgottesman@apple.com> | 2013-04-26 01:12:18 +0000 | 
|---|---|---|
| committer | Michael Gottesman <mgottesman@apple.com> | 2013-04-26 01:12:18 +0000 | 
| commit | 47cf8a4c129d7f5735eef4c6f8192d75f2869c83 (patch) | |
| tree | 1e8ad37dedcd3b278b50579d1a4edb501074f21e /llvm/lib/Transforms | |
| parent | a0509add5b43517ade4fcd9669231c18732642ba (diff) | |
| download | bcm5719-llvm-47cf8a4c129d7f5735eef4c6f8192d75f2869c83.tar.gz bcm5719-llvm-47cf8a4c129d7f5735eef4c6f8192d75f2869c83.zip | |
Revert "[objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that were once autoreleaseRV instructions."
This reverts commit r180222.
I think this might tie in with a different problem which will require a
different approach potentially. I am reverting this in the case I need to go
down that second path.
My apologies for the noise. = /.
llvm-svn: 180590
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp | 38 | 
1 files changed, 0 insertions, 38 deletions
| diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp b/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp index 8e4da2f7964..e6c5928375f 100644 --- a/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp +++ b/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp @@ -30,7 +30,6 @@  #include "ObjCARCAliasAnalysis.h"  #include "ProvenanceAnalysis.h"  #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/DenseSet.h"  #include "llvm/ADT/STLExtras.h"  #include "llvm/ADT/SmallPtrSet.h"  #include "llvm/ADT/Statistic.h" @@ -986,13 +985,6 @@ namespace {      /// A flag indicating whether this optimization pass should run.      bool Run; -    /// This set contains references to objc_autorelease calls that at one point -    /// in time were objc_autoreleaseRV calls. Thus we can disambiguate -    /// in between objc_autorelease that were inserted from the frontend (which -    /// we must be very conservative with) and those as a result of strength -    /// reducing objc_autoreleaseRV calls (which are more flexible). -    DenseSet<Instruction *> ImpreciseAutoreleaseSet; -      /// Declarations for ObjC runtime functions, for use in creating calls to      /// them. These are initialized lazily to avoid cluttering up the Module      /// with unused declarations. @@ -1042,27 +1034,6 @@ namespace {      bool IsRetainBlockOptimizable(const Instruction *Inst); -    /// Erase an instruction. -    /// -    /// This is included separately from the EraseInstruction in ObjCARC.h -    /// (which this uses internally) in order to make sure that state is cleaned -    /// up. Currently this just means attempting to remove said instruction from -    /// ImpreciseAutoreleaseSet if it is an autorelease instruction. This will -    /// prevent bugs of the sort where we erase an instruction and forget to -    /// remove any associated state. -    /// -    /// TODO: Maybe remove this, the ImpreciseAutoreleaseSet, the -    /// MetadataKind/Callee variables into a separate class. -    void EraseInstruction(Instruction *Inst) { -      // If Inst is an autorelease instruction, erase it from -      // ImpreciseAutoreleaseSet if it is contained there in. -      if (GetBasicInstructionClass(Inst) == IC_Autorelease) { -        ImpreciseAutoreleaseSet.erase(Inst); -      } -      // Invoke the normal EraseInstruction. -      llvm::objcarc::EraseInstruction(Inst); -    } -      void OptimizeRetainCall(Function &F, Instruction *Retain);      bool OptimizeRetainRVCall(Function &F, Instruction *RetainRV);      void OptimizeAutoreleaseRVCall(Function &F, Instruction *AutoreleaseRV, @@ -1388,12 +1359,6 @@ ObjCARCOpt::OptimizeAutoreleaseRVCall(Function &F, Instruction *AutoreleaseRV,    AutoreleaseRVCI->setTailCall(false); // Never tail call objc_autorelease.    Class = IC_Autorelease; -  // Stash the given instruction in the ImpreciseAutoreleaseSet so we can check -  // later on that this instruction was an autoreleaseRV instruction that was -  // converted to an autorelease instead of an autorelease inserted by the -  // frontend (which we can not touch). -  ImpreciseAutoreleaseSet.insert(AutoreleaseRVCI); -    DEBUG(dbgs() << "New: " << *AutoreleaseRV << "\n");  } @@ -3129,14 +3094,11 @@ bool ObjCARCOpt::runOnFunction(Function &F) {    DEBUG(dbgs() << "\n"); -  ImpreciseAutoreleaseSet.clear(); -    return Changed;  }  void ObjCARCOpt::releaseMemory() {    PA.clear(); -  ImpreciseAutoreleaseSet.clear();  }  /// @} | 

