Skip to content

Conversation

@kazutakahirata
Copy link
Contributor

No description provided.

@llvmbot
Copy link
Member

llvmbot commented Feb 27, 2025

@llvm/pr-subscribers-llvm-ir

Author: Kazu Hirata (kazutakahirata)

Changes

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

1 Files Affected:

  • (modified) llvm/lib/IR/DroppedVariableStats.cpp (+3-2)
diff --git a/llvm/lib/IR/DroppedVariableStats.cpp b/llvm/lib/IR/DroppedVariableStats.cpp
index d80ac9339a1b2..9e221bf585f1a 100644
--- a/llvm/lib/IR/DroppedVariableStats.cpp
+++ b/llvm/lib/IR/DroppedVariableStats.cpp
@@ -44,9 +44,10 @@ void DroppedVariableStats::calculateDroppedStatsAndPrint(
   unsigned DroppedCount = 0;
   DenseSet<VarID> &DebugVariablesBeforeSet = DbgVariables.DebugVariablesBefore;
   DenseSet<VarID> &DebugVariablesAfterSet = DbgVariables.DebugVariablesAfter;
-  if (InlinedAts.back().find(FuncName) == InlinedAts.back().end())
+  auto It = InlinedAts.back().find(FuncName);
+  if (It == InlinedAts.back().end())
     return;
-  DenseMap<VarID, DILocation *> &InlinedAtsMap = InlinedAts.back()[FuncName];
+  DenseMap<VarID, DILocation *> &InlinedAtsMap = It->second;
   // Find an Instruction that shares the same scope as the dropped #dbg_value
   // or has a scope that is the child of the scope of the #dbg_value, and has
   // an inlinedAt equal to the inlinedAt of the #dbg_value or it's inlinedAt

@kazutakahirata kazutakahirata merged commit 25ebdfc into llvm:main Feb 27, 2025
13 checks passed
@kazutakahirata kazutakahirata deleted the cleanup_001_repeated_hash_lookups_llvm_IR branch February 27, 2025 09:46
@llvm-ci
Copy link
Collaborator

llvm-ci commented Feb 27, 2025

LLVM Buildbot has detected a new failure on builder llvm-x86_64-debian-dylib running on gribozavr4 while building llvm at step 6 "test-build-unified-tree-check-clang".

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

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-clang) failure: test (failure)
******************** TEST 'Clang :: Analysis/exploded-graph-rewriter/escapes.c' FAILED ********************
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/b/1/llvm-x86_64-debian-dylib/build/bin/clang -cc1 -internal-isystem /b/1/llvm-x86_64-debian-dylib/build/lib/clang/21/include -nostdsysteminc -analyze -triple x86_64-unknown-linux-gnu                      -analyzer-checker=core                      -analyzer-dump-egraph=/b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/escapes.c.tmp.dot /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c
# executed command: /b/1/llvm-x86_64-debian-dylib/build/bin/clang -cc1 -internal-isystem /b/1/llvm-x86_64-debian-dylib/build/lib/clang/21/include -nostdsysteminc -analyze -triple x86_64-unknown-linux-gnu -analyzer-checker=core -analyzer-dump-egraph=/b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/escapes.c.tmp.dot /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c
# .---command stderr------------
# | writing to the newly created file /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/escapes.c.tmp.dot
# |  done. 
# `-----------------------------
# RUN: at line 5
'/usr/bin/python3.9' /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/utils/analyzer/exploded-graph-rewriter.py --dump-dot-only /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/escapes.c.tmp.dot | /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c
# executed command: /usr/bin/python3.9 /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/utils/analyzer/exploded-graph-rewriter.py --dump-dot-only /b/1/llvm-x86_64-debian-dylib/build/tools/clang/test/Analysis/exploded-graph-rewriter/Output/escapes.c.tmp.dot
# executed command: /b/1/llvm-x86_64-debian-dylib/build/bin/FileCheck /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c
# .---command stderr------------
# | /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c:9:17: error: CHECK-SAME: is not on the same line as the previous match
# |  // CHECK-SAME: <td align="left">foo</td><td align="left">0</td>
# |                 ^
# | <stdin>:14:1572: note: 'next' match was here
# | Node0xfffbc0 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 222</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">8.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S598</i></td><td align="left"><font color="cyan3">PostStore</font></td><td align="left">const char *const foo = "foo";</td></tr><tr><td align="left">9.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S598</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">const char *const foo = "foo";</td></tr><tr><td align="left">10.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>11</b>:</td><td align="left" width="0"><font color="cyan4">IntegerLiteral</font> </td><td align="left"><i>S617</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">1</td></tr><tr><td align="left">11.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>15</b>:</td><td align="left" width="0"><font color="cyan4">IntegerLiteral</font> </td><td align="left"><i>S621</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">2</td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffb48)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">foo</td><td align="left">0</td><td align="left"></td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S595</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr></table>>];
# |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^
# | <stdin>:3:1081: note: previous match ended here
# | Node0x10000f8 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 378</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">14.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S629</i></td><td align="left"><font color="cyan3">PostStore</font></td><td align="left">int x = 1 \| 2;</td></tr><tr><td align="left">15.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S629</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">int x = 1 \| 2;</td></tr><tr><td align="left">16.</td><td width="0"></td><td align="left" width="0"><font color="gold3">BlockEdge</font></td><td align="left">[B1] -&gt; [B0]</td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0x1000028)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">x</td><td align="left">0</td><td align="left"></td><td align="left">3 S32b</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S625</i></td><td align="left"><font color="darkgreen"><i>(BinaryOperator)</i></font></td><td align="left">1 \| 2</td><td align="left">3 S32b</td></tr></table></td></tr></table>>];
# |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         ^
# | 
# | Input file: <stdin>
# | Check file: /b/1/llvm-x86_64-debian-dylib/llvm-project/clang/test/Analysis/exploded-graph-rewriter/escapes.c
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |         .
# |         .
# |         .
# |         9: Node0xfff7f8 -> Node0xfff930; 
# |        10: Node0xfff930 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 140</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">6.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>27</b>:</td><td align="left" width="0"><font color="cyan4">ImplicitCastExpr (NoOp)</font> </td><td align="left"><i>S595</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">"foo"</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S592</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr><tr><td></td><td align="left"><i>S595</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr></table>>]; 
# |        11: Node0xfff930 -> Node0xfffa10; 
# |        12: Node0xfffa10 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 168</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">7.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S598</i></td><td align="left"><font color="cyan3">PreStmtPurgeDeadSymbols</font></td><td align="left"></td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Clean Node</font></td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S595</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr></table>>]; 
# |        13: Node0xfffa10 -> Node0xfffbc0; 
# |        14: Node0xfffbc0 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 222</b></td></tr><tr><td align="left" width="0"><b>Program points:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">8.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S598</i></td><td align="left"><font color="cyan3">PostStore</font></td><td align="left">const char *const foo = "foo";</td></tr><tr><td align="left">9.</td><td align="left" width="0">escapes.c:<b>14</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S598</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">const char *const foo = "foo";</td></tr><tr><td align="left">10.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>11</b>:</td><td align="left" width="0"><font color="cyan4">IntegerLiteral</font> </td><td align="left"><i>S617</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">1</td></tr><tr><td align="left">11.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>15</b>:</td><td align="left" width="0"><font color="cyan4">IntegerLiteral</font> </td><td align="left"><i>S621</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">2</td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffb48)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">foo</td><td align="left">0</td><td align="left"></td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S595</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr></table>>]; 
# | same:9                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  error: match on wrong line
# |        15: Node0xfffbc0 -> Node0xfffe58; 
# |        16: Node0xfffe58 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 305</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">12.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>11</b>:</td><td align="left" width="0"><font color="cyan4">BinaryOperator</font> </td><td align="left"><i>S625</i></td><td align="left"><font color="cyan3">PostStmt</font></td><td align="left">1 \| 2</td></tr></table></td></tr><hr /><tr><td align="left"><b>Store: </b> <font color="gray">(0xfffb48)</font></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left">foo</td><td align="left">0</td><td align="left"></td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S595</i></td><td align="left"><font color="darkgreen"><i>(ImplicitCastExpr)</i></font></td><td align="left">"foo"</td><td align="left">&amp;Element\{"foo",0 S64b,char\}</td></tr><tr><td></td><td align="left"><i>S625</i></td><td align="left"><font color="darkgreen"><i>(BinaryOperator)</i></font></td><td align="left">1 \| 2</td><td align="left">3 S32b</td></tr></table></td></tr></table>>]; 
# |        17: Node0xfffe58 -> Node0xffff38; 
# |        18: Node0xffff38 [shape=record,label=<<table border="0"><tr><td bgcolor="gray70"><b>State 333</b></td></tr><tr><td align="left" width="0"><b>Program point:</b></td></tr><tr><td align="left" width="0"><table border="0" align="left" width="0"><tr><td align="left">13.</td><td align="left" width="0">escapes.c:<b>19</b>:<b>3</b>:</td><td align="left" width="0"><font color="cyan4">DeclStmt</font> </td><td align="left"><i>S629</i></td><td align="left"><font color="cyan3">PreStmtPurgeDeadSymbols</font></td><td align="left"></td></tr><tr><td width="0"></td><td width="0"></td><td colspan="3" align="left"><b>Tag: </b> <font color="crimson">ExprEngine : Clean Node</font></td></tr></table></td></tr><hr /><tr><td align="left"><b>Expressions: </b></td></tr><tr><td align="left"><table border="0"><tr><td></td><td align="left"><b>#0 Call</b></td><td align="left" colspan="2"><font color="gray60">escapes </font></td></tr><tr><td></td><td align="left"><i>S625</i></td><td align="left"><font color="darkgreen"><i>(BinaryOperator)</i></font></td><td align="left">1 \| 2</td><td align="left">3 S32b</td></tr></table></td></tr></table>>]; 
# |        19: Node0xffff38 -> Node0x10000f8; 
# |        20: } 
...

joaosaffran pushed a commit to joaosaffran/llvm-project that referenced this pull request Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants