Author: Rose Hudson
Date: 2026-04-09T12:51:42Z
New Revision: 0ab4d8556ddb935d3eda044cf6ea118f0686de0e

URL: 
https://github.com/llvm/llvm-project/commit/0ab4d8556ddb935d3eda044cf6ea118f0686de0e
DIFF: 
https://github.com/llvm/llvm-project/commit/0ab4d8556ddb935d3eda044cf6ea118f0686de0e.diff

LOG: [clang][Lex] don't run -Wnonportable-include-path-separator if disabled 
(#191148)

The diagnostic's addition caused a perf regression:
https://llvm-compile-time-tracker.com/compare.php?from=b9149823d85891044bf34e8654d1a45870e55174&to=e2294efaabcc745bf6beacbefbd371595cf3e87f&stat=instructions:u

So, only run its logic if it's actually enabled:

https://llvm-compile-time-tracker.com/compare.php?from=e2294efaabcc745bf6beacbefbd371595cf3e87f&to=52bd4e1441b75b617cf81dfffcb149966616a34a&stat=instructions:u

Added: 
    

Modified: 
    clang/lib/Lex/PPDirectives.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp
index 172c2fa57db00..be2878076510d 100644
--- a/clang/lib/Lex/PPDirectives.cpp
+++ b/clang/lib/Lex/PPDirectives.cpp
@@ -2733,6 +2733,9 @@ Preprocessor::ImportAction 
Preprocessor::HandleHeaderIncludeOrImport(
     }
 
     bool SuppressBackslashDiag =
+        // The diagnostic logic is expensive, so only run it if it's enabled...
+        Diags->isIgnored(diag::pp_nonportable_path_separator, FilenameLoc) ||
+        // ...and try to only trigger on paths that appear in source.
         FilenameLoc.isMacroID() ||
         SourceMgr.isWrittenInBuiltinFile(FilenameLoc) ||
         SourceMgr.isWrittenInModuleIncludes(FilenameLoc);


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to