[C++11] Replace some comparisons with 'nullptr' with simple boolean checks to reduce...
authorCraig Topper <craig.topper@gmail.com>
Wed, 9 Apr 2014 04:20:00 +0000 (04:20 +0000)
committerCraig Topper <craig.topper@gmail.com>
Wed, 9 Apr 2014 04:20:00 +0000 (04:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205829 91177308-0d34-0410-b5e6-96231b3b80d8

19 files changed:
include/llvm/ADT/IntrusiveRefCntPtr.h
include/llvm/ADT/StringRef.h
include/llvm/ADT/ilist.h
include/llvm/CodeGen/PBQP/Graph.h
include/llvm/Support/CommandLine.h
include/llvm/Support/FileSystem.h
include/llvm/Support/YAMLParser.h
lib/Support/Allocator.cpp
lib/Support/CommandLine.cpp
lib/Support/DynamicLibrary.cpp
lib/Support/FoldingSet.cpp
lib/Support/ManagedStatic.cpp
lib/Support/PrettyStackTrace.cpp
lib/Support/SourceMgr.cpp
lib/Support/StringMap.cpp
lib/Support/TargetRegistry.cpp
lib/Support/Timer.cpp
lib/Support/YAMLParser.cpp
lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp

index 449f445e71b12b118fbcd4039781385a02980ba6..cd1946c54d4f9d24c62c91113b556092273c5ebb 100644 (file)
@@ -179,7 +179,7 @@ public:
 
     typedef T* (IntrusiveRefCntPtr::*unspecified_bool_type) () const;
     operator unspecified_bool_type() const {
-      return Obj == nullptr ? nullptr : &IntrusiveRefCntPtr::getPtr;
+      return Obj ? &IntrusiveRefCntPtr::getPtr : nullptr;
     }
 
     void swap(IntrusiveRefCntPtr& other) {
index d306b399faf0737097f58c56913070df48c89069..bd5a550b9f5214ccd755262d13edb175cc5583e7 100644 (file)
@@ -186,7 +186,7 @@ namespace llvm {
 
     /// str - Get the contents as an std::string.
     std::string str() const {
-      if (Data == nullptr) return std::string();
+      if (!Data) return std::string();
       return std::string(Data, Length);
     }
 
index 3c076d4399dbebc41946b26e0a65f4a1329ccf97..abb5a22fd2171f8afb954df9455c77e34d29d013 100644 (file)
@@ -383,7 +383,7 @@ public:
   // Miscellaneous inspection routines.
   size_type max_size() const { return size_type(-1); }
   bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const {
-    return Head == nullptr || Head == getTail();
+    return !Head || Head == getTail();
   }
 
   // Front and back accessor functions...
index 07c333773146e878b121702b9b3253a3cf26a202..1b960381c7b9503583c782aaa9d565ec205ca347 100644 (file)
@@ -336,7 +336,7 @@ namespace PBQP {
     /// each node in the graph, and handleAddEdge for each edge, to give the
     /// solver an opportunity to set up any requried metadata.
     void setSolver(SolverT &S) {
-      assert(Solver == nullptr && "Solver already set. Call unsetSolver().");
+      assert(!Solver && "Solver already set. Call unsetSolver().");
       Solver = &S;
       for (auto NId : nodeIds())
         Solver->handleAddNode(NId);
@@ -346,7 +346,7 @@ namespace PBQP {
 
     /// \brief Release from solver instance.
     void unsetSolver() {
-      assert(Solver != nullptr && "Solver not set.");
+      assert(Solver && "Solver not set.");
       Solver = nullptr;
     }
 
index 006680587b65fa64bdd98455abc4cb4d8e9099a0..ab94d6150067883bd4f5ade8d9e084e72a7a2b52 100644 (file)
@@ -1664,7 +1664,7 @@ class alias : public Option {
   void done() {
     if (!hasArgStr())
       error("cl::alias must have argument name specified!");
-    if (AliasFor == nullptr)
+    if (!AliasFor)
       error("cl::alias must have an cl::aliasopt(option) specified!");
       addArgument();
   }
index 52182a8e77b69f3fe0fe69c7877afb274068cca7..b2a06770825f6319428286caf4b5138cbfbc8a0a 100644 (file)
@@ -828,9 +828,9 @@ public:
   bool operator==(const directory_iterator &RHS) const {
     if (State == RHS.State)
       return true;
-    if (RHS.State == nullptr)
+    if (!RHS.State)
       return State->CurrentEntry == directory_entry();
-    if (State == nullptr)
+    if (!State)
       return RHS.State->CurrentEntry == directory_entry();
     return State->CurrentEntry == RHS.State->CurrentEntry;
   }
index cbe154464f32b5e32a77bd062107e9454d45027c..d9d632e00ebbc5f0792948be629865f0a2c9d0fe 100644 (file)
@@ -305,7 +305,7 @@ public:
     assert(Base && "Attempted to advance iterator past end!");
     Base->increment();
     // Create an end iterator.
-    if (Base->CurrentEntry == nullptr)
+    if (!Base->CurrentEntry)
       Base = nullptr;
     return *this;
   }
index 11f7ba80a6f14750f0f94a900ce766fb4fcb533f..da1bf3e18c445cb8ab6caadefd28052f0c2b7864 100644 (file)
@@ -39,7 +39,7 @@ void MallocSlabAllocator::Deallocate(MemSlab *Slab) {
 void BumpPtrAllocatorBase::PrintStats() const {
   unsigned NumSlabs = 0;
   size_t TotalMemory = 0;
-  for (MemSlab *Slab = CurSlab; Slab != nullptr; Slab = Slab->NextPtr) {
+  for (MemSlab *Slab = CurSlab; Slab; Slab = Slab->NextPtr) {
     TotalMemory += Slab->Size;
     ++NumSlabs;
   }
@@ -53,7 +53,7 @@ void BumpPtrAllocatorBase::PrintStats() const {
 
 size_t BumpPtrAllocatorBase::getTotalMemory() const {
   size_t TotalMemory = 0;
-  for (MemSlab *Slab = CurSlab; Slab != nullptr; Slab = Slab->NextPtr) {
+  for (MemSlab *Slab = CurSlab; Slab; Slab = Slab->NextPtr) {
     TotalMemory += Slab->Size;
   }
   return TotalMemory;
index 04a40b46f1ff3a49c00419a4c84a778086f33828..4777616b9521b2264cd5bb8f602a75a7d072055a 100644 (file)
@@ -300,7 +300,7 @@ static inline bool ProvideOption(Option *Handler, StringRef ArgName,
   // Enforce value requirements
   switch (Handler->getValueExpectedFlag()) {
   case ValueRequired:
-    if (Value.data() == nullptr) { // No value specified?
+    if (!Value.data()) { // No value specified?
       if (i+1 >= argc)
         return Handler->error("requires a value!");
       // Steal the next argument, like for '-o filename'
@@ -400,7 +400,7 @@ static Option *HandlePrefixedOrGroupedOption(StringRef &Arg, StringRef &Value,
   // Do the lookup!
   size_t Length = 0;
   Option *PGOpt = getOptionPred(Arg, Length, isPrefixedOrGrouping, OptionsMap);
-  if (PGOpt == nullptr) return nullptr;
+  if (!PGOpt) return nullptr;
 
   // If the option is a prefixed option, then the value is simply the
   // rest of the name...  so fall through to later processing, by
@@ -770,7 +770,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
 
     // Calculate how many positional values are _required_.
     bool UnboundedFound = false;
-    for (size_t i = ConsumeAfterOpt != nullptr, e = PositionalOpts.size();
+    for (size_t i = ConsumeAfterOpt ? 1 : 0, e = PositionalOpts.size();
          i != e; ++i) {
       Option *Opt = PositionalOpts[i];
       if (RequiresValue(Opt))
@@ -845,8 +845,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
         // All of the positional arguments have been fulfulled, give the rest to
         // the consume after option... if it's specified...
         //
-        if (PositionalVals.size() >= NumPositionalRequired &&
-            ConsumeAfterOpt != nullptr) {
+        if (PositionalVals.size() >= NumPositionalRequired && ConsumeAfterOpt) {
           for (++i; i < argc; ++i)
             PositionalVals.push_back(std::make_pair(argv[i],i));
           break;   // Handle outside of the argument processing loop...
@@ -884,18 +883,18 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
       Handler = LookupOption(ArgName, Value, Opts);
 
       // Check to see if this "option" is really a prefixed or grouped argument.
-      if (Handler == nullptr)
+      if (!Handler)
         Handler = HandlePrefixedOrGroupedOption(ArgName, Value,
                                                 ErrorParsing, Opts);
 
       // Otherwise, look for the closest available option to report to the user
       // in the upcoming error.
-      if (Handler == nullptr && SinkOpts.empty())
+      if (!Handler && SinkOpts.empty())
         NearestHandler = LookupNearestOption(ArgName, Opts,
                                              NearestHandlerString);
     }
 
-    if (Handler == nullptr) {
+    if (!Handler) {
       if (SinkOpts.empty()) {
         errs() << ProgramName << ": Unknown command line argument '"
              << argv[i] << "'.  Try: '" << argv[0] << " -help'\n";
@@ -939,7 +938,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
          << " positional arguments: See: " << argv[0] << " -help\n";
     ErrorParsing = true;
 
-  } else if (ConsumeAfterOpt == nullptr) {
+  } else if (!ConsumeAfterOpt) {
     // Positional args have already been handled if ConsumeAfter is specified.
     unsigned ValNo = 0, NumVals = static_cast<unsigned>(PositionalVals.size());
     for (size_t i = 0, e = PositionalOpts.size(); i != e; ++i) {
@@ -1044,7 +1043,7 @@ void cl::ParseCommandLineOptions(int argc, const char * const *argv,
 //
 
 bool Option::error(const Twine &Message, StringRef ArgName) {
-  if (ArgName.data() == nullptr) ArgName = ArgStr;
+  if (!ArgName.data()) ArgName = ArgStr;
   if (ArgName.empty())
     errs() << HelpStr;  // Be nice for positional arguments
   else
@@ -1779,7 +1778,7 @@ void cl::SetVersionPrinter(void (*func)()) {
 }
 
 void cl::AddExtraVersionPrinter(void (*func)()) {
-  if (ExtraVersionPrinters == nullptr)
+  if (!ExtraVersionPrinters)
     ExtraVersionPrinters = new std::vector<void (*)()>;
 
   ExtraVersionPrinters->push_back(func);
index e4a438585b82ae302a696fb7acb143c8066645cf..82d7c0cc6d19cd3c1707d8b6c93d4a00aa4389cf 100644 (file)
@@ -58,7 +58,7 @@ DynamicLibrary DynamicLibrary::getPermanentLibrary(const char *filename,
   SmartScopedLock<true> lock(*SymbolsMutex);
 
   void *handle = dlopen(filename, RTLD_LAZY|RTLD_GLOBAL);
-  if (handle == nullptr) {
+  if (!handle) {
     if (errMsg) *errMsg = dlerror();
     return DynamicLibrary();
   }
@@ -66,11 +66,11 @@ DynamicLibrary DynamicLibrary::getPermanentLibrary(const char *filename,
 #ifdef __CYGWIN__
   // Cygwin searches symbols only in the main
   // with the handle of dlopen(NULL, RTLD_GLOBAL).
-  if (filename == NULL)
+  if (!filename)
     handle = RTLD_DEFAULT;
 #endif
 
-  if (OpenedHandles == nullptr)
+  if (!OpenedHandles)
     OpenedHandles = new DenseSet<void *>();
 
   // If we've already loaded this library, dlclose() the handle in order to
index 0367c7ce45e2491425c96365683b2d27f014f1b8..d857559898ed046986a17613902f055f53393ff7 100644 (file)
@@ -323,7 +323,7 @@ void FoldingSetImpl::InsertNode(Node *N, void *InsertPos) {
   // If this is the first insertion into this bucket, its next pointer will be
   // null.  Pretend as if it pointed to itself, setting the low bit to indicate
   // that it is a pointer to the bucket.
-  if (Next == nullptr)
+  if (!Next)
     Next = reinterpret_cast<void*>(reinterpret_cast<intptr_t>(Bucket)|1);
 
   // Set the node's next pointer, and make the bucket point to the node.
@@ -337,7 +337,7 @@ bool FoldingSetImpl::RemoveNode(Node *N) {
   // Because each bucket is a circular list, we don't need to compute N's hash
   // to remove it.
   void *Ptr = N->getNextInBucket();
-  if (Ptr == nullptr) return false;  // Not in folding set.
+  if (!Ptr) return false;  // Not in folding set.
 
   --NumNodes;
   N->SetNextInBucket(nullptr);
@@ -390,7 +390,7 @@ FoldingSetImpl::Node *FoldingSetImpl::GetOrInsertNode(FoldingSetImpl::Node *N) {
 FoldingSetIteratorImpl::FoldingSetIteratorImpl(void **Bucket) {
   // Skip to the first non-null non-self-cycle bucket.
   while (*Bucket != reinterpret_cast<void*>(-1) &&
-         (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr))
+         (!*Bucket || !GetNextPtr(*Bucket)))
     ++Bucket;
   
   NodePtr = static_cast<FoldingSetNode*>(*Bucket);
@@ -410,7 +410,7 @@ void FoldingSetIteratorImpl::advance() {
     do {
       ++Bucket;
     } while (*Bucket != reinterpret_cast<void*>(-1) &&
-             (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr));
+             (!*Bucket || !GetNextPtr(*Bucket)));
     
     NodePtr = static_cast<FoldingSetNode*>(*Bucket);
   }
@@ -420,6 +420,5 @@ void FoldingSetIteratorImpl::advance() {
 // FoldingSetBucketIteratorImpl Implementation
 
 FoldingSetBucketIteratorImpl::FoldingSetBucketIteratorImpl(void **Bucket) {
-  Ptr = (*Bucket == nullptr || GetNextPtr(*Bucket) == nullptr) ? (void*) Bucket
-                                                               : *Bucket;
+  Ptr = (!*Bucket || !GetNextPtr(*Bucket)) ? (void*) Bucket : *Bucket;
 }
index e358fe8c5c1e011e0b4122535a1b5177a2a18571..c05cd22ea0579863908d5fb34ec64dbc9063dff5 100644 (file)
@@ -24,7 +24,7 @@ void ManagedStaticBase::RegisterManagedStatic(void *(*Creator)(),
   if (llvm_is_multithreaded()) {
     llvm_acquire_global_lock();
 
-    if (Ptr == nullptr) {
+    if (!Ptr) {
       void* tmp = Creator ? Creator() : nullptr;
 
       TsanHappensBefore(this);
index aef02e990a2dc31fd273fa4e2e909d8c585b34cd..987778a1bde66999171556f571c94c59e352dddb 100644 (file)
@@ -46,7 +46,7 @@ static unsigned PrintStack(const PrettyStackTraceEntry *Entry, raw_ostream &OS){
 /// PrintCurStackTrace - Print the current stack trace to the specified stream.
 static void PrintCurStackTrace(raw_ostream &OS) {
   // Don't print an empty trace.
-  if (PrettyStackTraceHead->get() == nullptr) return;
+  if (!PrettyStackTraceHead->get()) return;
   
   // If there are pretty stack frames registered, walk and emit them.
   OS << "Stack dump:\n";
index 4aa6ff7d31ecd2cb61b909d0e6494bb3dcfe7d32..ca682897968c46ac237c46d90df028166335fda3 100644 (file)
@@ -114,7 +114,7 @@ SourceMgr::getLineAndColumn(SMLoc Loc, int BufferID) const {
     if (*Ptr == '\n') ++LineNo;
 
   // Allocate the line number cache if it doesn't exist.
-  if (LineNoCache == nullptr)
+  if (!LineNoCache)
     LineNoCache = new LineNoCacheTy();
 
   // Update the line # cache.
index 30b6abb3b42b79fa51632c36cddd978c1b202116..72a6d822d2b6b4ee8cb96546fe9d08bb6b843562 100644 (file)
@@ -70,7 +70,7 @@ unsigned StringMapImpl::LookupBucketFor(StringRef Name) {
   while (1) {
     StringMapEntryBase *BucketItem = TheTable[BucketNo];
     // If we found an empty bucket, this key isn't in the table yet, return it.
-    if (LLVM_LIKELY(BucketItem == nullptr)) {
+    if (LLVM_LIKELY(!BucketItem)) {
       // If we found a tombstone, we want to reuse the tombstone instead of an
       // empty bucket.  This reduces probing.
       if (FirstTombstone != -1) {
@@ -124,7 +124,7 @@ int StringMapImpl::FindKey(StringRef Key) const {
   while (1) {
     StringMapEntryBase *BucketItem = TheTable[BucketNo];
     // If we found an empty bucket, this key isn't in the table yet, return.
-    if (LLVM_LIKELY(BucketItem == nullptr))
+    if (LLVM_LIKELY(!BucketItem))
       return -1;
     
     if (BucketItem == getTombstoneVal()) {
@@ -212,7 +212,7 @@ void StringMapImpl::RehashTable() {
       // Fast case, bucket available.
       unsigned FullHash = HashTable[I];
       unsigned NewBucket = FullHash & (NewSize-1);
-      if (NewTableArray[NewBucket] == nullptr) {
+      if (!NewTableArray[NewBucket]) {
         NewTableArray[FullHash & (NewSize-1)] = Bucket;
         NewHashArray[FullHash & (NewSize-1)] = FullHash;
         continue;
index 5b0e4a30a9b3c7c930b8022ea36b926264d9d28f..a008831eb6be0faf60b9b885ddf11c52ff9dd1b0 100644 (file)
@@ -53,7 +53,7 @@ const Target *TargetRegistry::lookupTarget(const std::string &ArchName,
     // Get the target specific parser.
     std::string TempError;
     TheTarget = TargetRegistry::lookupTarget(TheTriple.getTriple(), TempError);
-    if (TheTarget == nullptr) {
+    if (!TheTarget) {
       Error = ": error: unable to get target for '"
             + TheTriple.getTriple()
             + "', see --version and --triple.\n";
index c2ce90c85880db28360bc382d3b5548aa1247bd0..ea75d45f68a3f75f7a4d8a0e47b83069a2e78c64 100644 (file)
@@ -264,7 +264,7 @@ TimerGroup::TimerGroup(StringRef name)
 TimerGroup::~TimerGroup() {
   // If the timer group is destroyed before the timers it owns, accumulate and
   // print the timing data.
-  while (FirstTimer != nullptr)
+  while (FirstTimer)
     removeTimer(*FirstTimer);
   
   // Remove the group from the TimerGroupList.
@@ -291,7 +291,7 @@ void TimerGroup::removeTimer(Timer &T) {
   
   // Print the report when all timers in this group are destroyed if some of
   // them were started.
-  if (FirstTimer != nullptr || TimersToPrint.empty())
+  if (FirstTimer || TimersToPrint.empty())
     return;
   
   raw_ostream *OutStream = CreateInfoOutputFile();
index 573bb47868f88b0dda5a0eff0ac32370498cc7a5..3be02ee9fb98639b4ddf24e626b408d2fd7220c0 100644 (file)
@@ -1941,7 +1941,7 @@ void SequenceNode::increment() {
     case Token::TK_BlockEntry:
       getNext();
       CurrentEntry = parseBlockNode();
-      if (CurrentEntry == nullptr) { // An error occurred.
+      if (!CurrentEntry) { // An error occurred.
         IsAtEnd = true;
         CurrentEntry = nullptr;
       }
@@ -1963,7 +1963,7 @@ void SequenceNode::increment() {
     case Token::TK_BlockEntry:
       getNext();
       CurrentEntry = parseBlockNode();
-      if (CurrentEntry == nullptr) { // An error occurred.
+      if (!CurrentEntry) { // An error occurred.
         IsAtEnd = true;
         CurrentEntry = nullptr;
       }
index 5ca2b58746df6a4ec6680dac8ee47824d118e45a..c3d9f120e99660da7a32eba90d621a97d044ef98 100644 (file)
@@ -111,7 +111,7 @@ static bool IsEliminableAddrSpaceCast(Operator *Cast) {
 bool NVPTXFavorNonGenericAddrSpaces::hoistAddrSpaceCastFromGEP(
     GEPOperator *GEP) {
   Operator *Cast = dyn_cast<Operator>(GEP->getPointerOperand());
-  if (Cast == nullptr)
+  if (!Cast)
     return false;
 
   if (!IsEliminableAddrSpaceCast(Cast))