Skip to content

[Driver] Avoid repeated map lookups (NFC) #122625

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

kazutakahirata
Copy link
Contributor

No description provided.

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' labels Jan 12, 2025
@llvmbot
Copy link
Member

llvmbot commented Jan 12, 2025

@llvm/pr-subscribers-clang

@llvm/pr-subscribers-clang-driver

Author: Kazu Hirata (kazutakahirata)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/122625.diff

1 Files Affected:

  • (modified) clang/lib/Driver/Driver.cpp (+2-2)
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 4d9492ea08f647..10df730744b089 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -2534,8 +2534,8 @@ enum {
 static unsigned PrintActions1(const Compilation &C, Action *A,
                               std::map<Action *, unsigned> &Ids,
                               Twine Indent = {}, int Kind = TopLevelAction) {
-  if (Ids.count(A)) // A was already visited.
-    return Ids[A];
+  if (auto It = Ids.find(A); It != Ids.end()) // A was already visited.
+    return It->second;
 
   std::string str;
   llvm::raw_string_ostream os(str);

@kazutakahirata kazutakahirata merged commit 4f6fabd into llvm:main Jan 12, 2025
11 checks passed
@kazutakahirata kazutakahirata deleted the cleanup_001_repeated_hash_lookups_clang_Driver branch January 12, 2025 03:50
@llvm-ci
Copy link
Collaborator

llvm-ci commented Jan 12, 2025

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-darwin running on doug-worker-3 while building clang at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/23/builds/6556

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)
******************** TEST 'LLVM-Unit :: Support/./SupportTests/7/11' FAILED ********************
Script(shard):
--
GTEST_OUTPUT=json:/Volumes/RAMDisk/buildbot-root/x86_64-darwin/build/unittests/Support/./SupportTests-LLVM-Unit-59744-7-11.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=11 GTEST_SHARD_INDEX=7 /Volumes/RAMDisk/buildbot-root/x86_64-darwin/build/unittests/Support/./SupportTests
--

Note: This is test shard 8 of 11.
[==========] Running 126 tests from 82 test suites.
[----------] Global test environment set-up.
[----------] 1 test from AddressRangeTest
[ RUN      ] AddressRangeTest.TestRangesMap
[       OK ] AddressRangeTest.TestRangesMap (0 ms)
[----------] 1 test from AddressRangeTest (0 ms total)

[----------] 1 test from AlignmentTest
[ RUN      ] AlignmentTest.AlignToWithSkew
[       OK ] AlignmentTest.AlignToWithSkew (0 ms)
[----------] 1 test from AlignmentTest (0 ms total)

[----------] 1 test from AllocatorTest
[ RUN      ] AllocatorTest.TestAlignment
[       OK ] AllocatorTest.TestAlignment (0 ms)
[----------] 1 test from AllocatorTest (0 ms total)

[----------] 1 test from CPUArchProfileBuildAttr
[ RUN      ] CPUArchProfileBuildAttr.testBuildAttr
[       OK ] CPUArchProfileBuildAttr.testBuildAttr (0 ms)
[----------] 1 test from CPUArchProfileBuildAttr (0 ms total)

[----------] 1 test from MPBuildAttr
[ RUN      ] MPBuildAttr.testBuildAttr
[       OK ] MPBuildAttr.testBuildAttr (0 ms)
[----------] 1 test from MPBuildAttr (0 ms total)

[----------] 1 test from FPRoundingBuildAttr
[ RUN      ] FPRoundingBuildAttr.testBuildAttr
[       OK ] FPRoundingBuildAttr.testBuildAttr (0 ms)
[----------] 1 test from FPRoundingBuildAttr (0 ms total)

[----------] 1 test from Base64Test
[ RUN      ] Base64Test.Base64
[       OK ] Base64Test.Base64 (0 ms)
[----------] 1 test from Base64Test (0 ms total)

[----------] 2 tests from BinaryStreamTest
[ RUN      ] BinaryStreamTest.StreamReaderBounds
[       OK ] BinaryStreamTest.StreamReaderBounds (0 ms)
[ RUN      ] BinaryStreamTest.StreamWriterPadToAlignment
[       OK ] BinaryStreamTest.StreamWriterPadToAlignment (0 ms)
[----------] 2 tests from BinaryStreamTest (0 ms total)
...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants