[PATCH] D105493: [clang] Change set type used for SourceLocation.
This revision was automatically updated to reflect the committed changes. simon_tatham marked an inline comment as done. Closed by commit rGcef56d58dbbb: [clang] Change set type used for SourceLocation. (authored by simon_tatham). Changed prior to commit: https://reviews.llvm.org/D105493?vs=356758=359756#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105493/new/ https://reviews.llvm.org/D105493 Files: clang/include/clang/Basic/SourceLocation.h clang/include/clang/Lex/Preprocessor.h Index: clang/include/clang/Lex/Preprocessor.h === --- clang/include/clang/Lex/Preprocessor.h +++ clang/include/clang/Lex/Preprocessor.h @@ -783,8 +783,7 @@ /// deserializing from PCH, we don't need to deserialize identifier & macros /// just so that we can report that they are unused, we just warn using /// the SourceLocations of this set (that will be filled by the ASTReader). - /// We are using SmallPtrSet instead of a vector for faster removal. - using WarnUnusedMacroLocsTy = llvm::SmallPtrSet; + using WarnUnusedMacroLocsTy = llvm::SmallDenseSet; WarnUnusedMacroLocsTy WarnUnusedMacroLocs; /// A "freelist" of MacroArg objects that can be Index: clang/include/clang/Basic/SourceLocation.h === --- clang/include/clang/Basic/SourceLocation.h +++ clang/include/clang/Basic/SourceLocation.h @@ -16,7 +16,6 @@ #include "clang/Basic/LLVM.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/PointerLikeTypeTraits.h" #include #include #include @@ -510,20 +509,6 @@ static void Profile(const clang::SourceLocation , FoldingSetNodeID ); }; - // Teach SmallPtrSet how to handle SourceLocation. - template<> - struct PointerLikeTypeTraits { -static constexpr int NumLowBitsAvailable = 0; - -static void *getAsVoidPointer(clang::SourceLocation L) { - return L.getPtrEncoding(); -} - -static clang::SourceLocation getFromVoidPointer(void *P) { - return clang::SourceLocation::getFromRawEncoding((unsigned)(uintptr_t)P); -} - }; - } // namespace llvm #endif // LLVM_CLANG_BASIC_SOURCELOCATION_H Index: clang/include/clang/Lex/Preprocessor.h === --- clang/include/clang/Lex/Preprocessor.h +++ clang/include/clang/Lex/Preprocessor.h @@ -783,8 +783,7 @@ /// deserializing from PCH, we don't need to deserialize identifier & macros /// just so that we can report that they are unused, we just warn using /// the SourceLocations of this set (that will be filled by the ASTReader). - /// We are using SmallPtrSet instead of a vector for faster removal. - using WarnUnusedMacroLocsTy = llvm::SmallPtrSet; + using WarnUnusedMacroLocsTy = llvm::SmallDenseSet; WarnUnusedMacroLocsTy WarnUnusedMacroLocs; /// A "freelist" of MacroArg objects that can be Index: clang/include/clang/Basic/SourceLocation.h === --- clang/include/clang/Basic/SourceLocation.h +++ clang/include/clang/Basic/SourceLocation.h @@ -16,7 +16,6 @@ #include "clang/Basic/LLVM.h" #include "llvm/ADT/StringRef.h" -#include "llvm/Support/PointerLikeTypeTraits.h" #include #include #include @@ -510,20 +509,6 @@ static void Profile(const clang::SourceLocation , FoldingSetNodeID ); }; - // Teach SmallPtrSet how to handle SourceLocation. - template<> - struct PointerLikeTypeTraits { -static constexpr int NumLowBitsAvailable = 0; - -static void *getAsVoidPointer(clang::SourceLocation L) { - return L.getPtrEncoding(); -} - -static clang::SourceLocation getFromVoidPointer(void *P) { - return clang::SourceLocation::getFromRawEncoding((unsigned)(uintptr_t)P); -} - }; - } // namespace llvm #endif // LLVM_CLANG_BASIC_SOURCELOCATION_H ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D105493: [clang] Change set type used for SourceLocation.
miyuki added inline comments. Comment at: clang/include/clang/Basic/SourceLocation.h:19 #include "llvm/ADT/StringRef.h" #include "llvm/Support/PointerLikeTypeTraits.h" #include Can this `#include` be removed? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105493/new/ https://reviews.llvm.org/D105493 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D105493: [clang] Change set type used for SourceLocation.
tmatheson added a comment. LGTM Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105493/new/ https://reviews.llvm.org/D105493 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D105493: [clang] Change set type used for SourceLocation.
simon_tatham created this revision. simon_tatham added reviewers: rsmith, lebedev.ri, akyrtzi. Herald added a subscriber: dexonsmith. simon_tatham requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This is part of a patch series working towards the ability to make SourceLocation into a 64-bit type to handle larger translation units. If clang is built for a 32-bit platform and SourceLocation is 64 bits wide, then a SourceLocation will be larger than a pointer, so it won't be possible to keep them in a SmallPtrSet any more. Switch to SmallDenseSet instead. Patch originally by Mikhail Maltsev. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D105493 Files: clang/include/clang/Basic/SourceLocation.h clang/include/clang/Lex/Preprocessor.h Index: clang/include/clang/Lex/Preprocessor.h === --- clang/include/clang/Lex/Preprocessor.h +++ clang/include/clang/Lex/Preprocessor.h @@ -781,8 +781,7 @@ /// deserializing from PCH, we don't need to deserialize identifier & macros /// just so that we can report that they are unused, we just warn using /// the SourceLocations of this set (that will be filled by the ASTReader). - /// We are using SmallPtrSet instead of a vector for faster removal. - using WarnUnusedMacroLocsTy = llvm::SmallPtrSet; + using WarnUnusedMacroLocsTy = llvm::SmallDenseSet; WarnUnusedMacroLocsTy WarnUnusedMacroLocs; /// A "freelist" of MacroArg objects that can be Index: clang/include/clang/Basic/SourceLocation.h === --- clang/include/clang/Basic/SourceLocation.h +++ clang/include/clang/Basic/SourceLocation.h @@ -513,20 +513,6 @@ static void Profile(const clang::SourceLocation , FoldingSetNodeID ); }; - // Teach SmallPtrSet how to handle SourceLocation. - template<> - struct PointerLikeTypeTraits { -static constexpr int NumLowBitsAvailable = 0; - -static void *getAsVoidPointer(clang::SourceLocation L) { - return L.getPtrEncoding(); -} - -static clang::SourceLocation getFromVoidPointer(void *P) { - return clang::SourceLocation::getFromRawEncoding((unsigned)(uintptr_t)P); -} - }; - } // namespace llvm #endif // LLVM_CLANG_BASIC_SOURCELOCATION_H Index: clang/include/clang/Lex/Preprocessor.h === --- clang/include/clang/Lex/Preprocessor.h +++ clang/include/clang/Lex/Preprocessor.h @@ -781,8 +781,7 @@ /// deserializing from PCH, we don't need to deserialize identifier & macros /// just so that we can report that they are unused, we just warn using /// the SourceLocations of this set (that will be filled by the ASTReader). - /// We are using SmallPtrSet instead of a vector for faster removal. - using WarnUnusedMacroLocsTy = llvm::SmallPtrSet; + using WarnUnusedMacroLocsTy = llvm::SmallDenseSet; WarnUnusedMacroLocsTy WarnUnusedMacroLocs; /// A "freelist" of MacroArg objects that can be Index: clang/include/clang/Basic/SourceLocation.h === --- clang/include/clang/Basic/SourceLocation.h +++ clang/include/clang/Basic/SourceLocation.h @@ -513,20 +513,6 @@ static void Profile(const clang::SourceLocation , FoldingSetNodeID ); }; - // Teach SmallPtrSet how to handle SourceLocation. - template<> - struct PointerLikeTypeTraits { -static constexpr int NumLowBitsAvailable = 0; - -static void *getAsVoidPointer(clang::SourceLocation L) { - return L.getPtrEncoding(); -} - -static clang::SourceLocation getFromVoidPointer(void *P) { - return clang::SourceLocation::getFromRawEncoding((unsigned)(uintptr_t)P); -} - }; - } // namespace llvm #endif // LLVM_CLANG_BASIC_SOURCELOCATION_H ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits