]> granicus.if.org Git - llvm/commitdiff
[Internalize] Replace uses of std::set with DenseSet
authorFangrui Song <maskray@google.com>
Tue, 2 Apr 2019 09:25:31 +0000 (09:25 +0000)
committerFangrui Song <maskray@google.com>
Tue, 2 Apr 2019 09:25:31 +0000 (09:25 +0000)
This makes it faster and saves 104 bytes for my build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357458 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Transforms/IPO/Internalize.h
lib/Transforms/IPO/Internalize.cpp

index a7efd3e172a89be44fac3493a38779b99d0c758d..6c1e19ef9fe45f68ef90946c40918f6de6cc04e6 100644 (file)
 #ifndef LLVM_TRANSFORMS_IPO_INTERNALIZE_H
 #define LLVM_TRANSFORMS_IPO_INTERNALIZE_H
 
+#include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/StringSet.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/PassManager.h"
 #include <functional>
-#include <set>
 
 namespace llvm {
 class Module;
@@ -44,11 +44,11 @@ class InternalizePass : public PassInfoMixin<InternalizePass> {
   /// Internalize GV if it is possible to do so, i.e. it is not externally
   /// visible and is not a member of an externally visible comdat.
   bool maybeInternalize(GlobalValue &GV,
-                        const std::set<const Comdat *> &ExternalComdats);
+                        const DenseSet<const Comdat *> &ExternalComdats);
   /// If GV is part of a comdat and is externally visible, keep track of its
   /// comdat so that we don't internalize any of its members.
   void checkComdatVisibility(GlobalValue &GV,
-                             std::set<const Comdat *> &ExternalComdats);
+                             DenseSet<const Comdat *> &ExternalComdats);
 
 public:
   InternalizePass();
index 8423a8a4d71b7fc6ee248c12c886a355cd435ea9..2e269604e379b183f97d83dd9896befdc3f257ff 100644 (file)
@@ -32,7 +32,6 @@
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/Utils/GlobalStatus.h"
-#include <set>
 using namespace llvm;
 
 #define DEBUG_TYPE "internalize"
@@ -111,7 +110,7 @@ bool InternalizePass::shouldPreserveGV(const GlobalValue &GV) {
 }
 
 bool InternalizePass::maybeInternalize(
-    GlobalValue &GV, const std::set<const Comdat *> &ExternalComdats) {
+    GlobalValue &GV, const DenseSet<const Comdat *> &ExternalComdats) {
   if (Comdat *C = GV.getComdat()) {
     if (ExternalComdats.count(C))
       return false;
@@ -138,7 +137,7 @@ bool InternalizePass::maybeInternalize(
 // If GV is part of a comdat and is externally visible, keep track of its
 // comdat so that we don't internalize any of its members.
 void InternalizePass::checkComdatVisibility(
-    GlobalValue &GV, std::set<const Comdat *> &ExternalComdats) {
+    GlobalValue &GV, DenseSet<const Comdat *> &ExternalComdats) {
   Comdat *C = GV.getComdat();
   if (!C)
     return;
@@ -155,7 +154,7 @@ bool InternalizePass::internalizeModule(Module &M, CallGraph *CG) {
   collectUsedGlobalVariables(M, Used, false);
 
   // Collect comdat visiblity information for the module.
-  std::set<const Comdat *> ExternalComdats;
+  DenseSet<const Comdat *> ExternalComdats;
   if (!M.getComdatSymbolTable().empty()) {
     for (Function &F : M)
       checkComdatVisibility(F, ExternalComdats);