[llvm] 21ce61b - [ADT] Use "static inline" to initialize EmptyDivergenceDesc; (NFC) (#160445)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 24 08:44:42 PDT 2025


Author: Kazu Hirata
Date: 2025-09-24T08:44:38-07:00
New Revision: 21ce61bcdebf561d0a7bbcfd12be32a0b51f4ba2

URL: https://github.com/llvm/llvm-project/commit/21ce61bcdebf561d0a7bbcfd12be32a0b51f4ba2
DIFF: https://github.com/llvm/llvm-project/commit/21ce61bcdebf561d0a7bbcfd12be32a0b51f4ba2.diff

LOG: [ADT] Use "static inline" to initialize EmptyDivergenceDesc; (NFC) (#160445)

In C++17, we can initialize a static member variable with "static
inline" as part of the class definition.  With this, we can eliminate
the out-of-line static initializer involving boilerplate template
code.

Added: 
    

Modified: 
    llvm/include/llvm/ADT/GenericUniformityImpl.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/ADT/GenericUniformityImpl.h b/llvm/include/llvm/ADT/GenericUniformityImpl.h
index 3b9b7f2633771..141816c304397 100644
--- a/llvm/include/llvm/ADT/GenericUniformityImpl.h
+++ b/llvm/include/llvm/ADT/GenericUniformityImpl.h
@@ -310,7 +310,7 @@ template <typename ContextT> class GenericSyncDependenceAnalysis {
   const DivergenceDescriptor &getJoinBlocks(const BlockT *DivTermBlock);
 
 private:
-  static DivergenceDescriptor EmptyDivergenceDesc;
+  static inline DivergenceDescriptor EmptyDivergenceDesc;
 
   ModifiedPO CyclePO;
 
@@ -741,10 +741,6 @@ template <typename ContextT> class DivergencePropagator {
   }
 };
 
-template <typename ContextT>
-typename llvm::GenericSyncDependenceAnalysis<ContextT>::DivergenceDescriptor
-    llvm::GenericSyncDependenceAnalysis<ContextT>::EmptyDivergenceDesc;
-
 template <typename ContextT>
 llvm::GenericSyncDependenceAnalysis<ContextT>::GenericSyncDependenceAnalysis(
     const ContextT &Context, const DominatorTreeT &DT, const CycleInfoT &CI)


        


More information about the llvm-commits mailing list