[PATCH] D135658: demangle OptFunction trace names
Trass3r via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 11 15:30:01 PDT 2022
Trass3r updated this revision to Diff 466946.
Trass3r added a comment.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
add test
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135658/new/
https://reviews.llvm.org/D135658
Files:
clang/test/Driver/check-time-trace-sections.py
llvm/lib/IR/CMakeLists.txt
llvm/lib/IR/LegacyPassManager.cpp
Index: llvm/lib/IR/LegacyPassManager.cpp
===================================================================
--- llvm/lib/IR/LegacyPassManager.cpp
+++ llvm/lib/IR/LegacyPassManager.cpp
@@ -12,6 +12,7 @@
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/ADT/MapVector.h"
+#include "llvm/Demangle/Demangle.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/IRPrintingPasses.h"
#include "llvm/IR/LLVMContext.h"
@@ -1408,7 +1409,8 @@
FunctionSize = F.getInstructionCount();
}
- llvm::TimeTraceScope FunctionScope("OptFunction", F.getName());
+ llvm::TimeTraceScope FunctionScope(
+ "OptFunction", [&F]() { return demangle(F.getName().str()); });
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
FunctionPass *FP = getContainedPass(Index);
Index: llvm/lib/IR/CMakeLists.txt
===================================================================
--- llvm/lib/IR/CMakeLists.txt
+++ llvm/lib/IR/CMakeLists.txt
@@ -77,6 +77,7 @@
LINK_COMPONENTS
BinaryFormat
+ Demangle
Remarks
Support
)
Index: clang/test/Driver/check-time-trace-sections.py
===================================================================
--- clang/test/Driver/check-time-trace-sections.py
+++ clang/test/Driver/check-time-trace-sections.py
@@ -13,9 +13,12 @@
log_contents = json.loads(sys.stdin.read())
events = log_contents["traceEvents"]
-codegens = [event for event in events if event["name"] == "CodeGen Function"]
+
+instants = [event for event in events if event["name"] == "InstantiateFunction"]
+codegens = [event for event in events if event["name"] == "CodeGen Function"]
+opts = [event for event in events if event["name"] == "OptFunction"]
frontends = [event for event in events if event["name"] == "Frontend"]
-backends = [event for event in events if event["name"] == "Backend"]
+backends = [event for event in events if event["name"] == "Backend"]
beginning_of_time = log_contents["beginningOfTime"] / 1000000
seconds_since_epoch = time.time()
@@ -32,3 +35,11 @@
if not all([all([is_before(frontend, backend) for frontend in frontends])
for backend in backends]):
sys.exit("Not all Frontend section are before all Backend sections!")
+
+# Check that entries for foo exist and are in a demangled form.
+if not any(e for e in instants if "foo<int>" in e["args"]["detail"]):
+ sys.exit("Missing Instantiate entry for foo!")
+if not any(e for e in codegens if "foo<int>" in e["args"]["detail"]):
+ sys.exit("Missing CodeGen entry for foo!")
+if not any(e for e in opts if "foo<int>" in e["args"]["detail"]):
+ sys.exit("Missing Optimize entry for foo!")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D135658.466946.patch
Type: text/x-patch
Size: 2663 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221011/cce9e653/attachment.bin>
More information about the llvm-commits
mailing list