Skip to content

Instantly share code, notes, and snippets.

diff --git a/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c b/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c
index 4800ec72c77d..a7237a03fca2 100644
--- a/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c
+++ b/compiler-rt/lib/profile/InstrProfilingPlatformWindows.c
@@ -28,6 +28,10 @@
/* Allocate read-only section bounds. */
#pragma section(".lprfn$A", read)
#pragma section(".lprfn$Z", read)
+#pragma section(".lprfvn$A", read, write)
+#pragma section(".lprfvn$Z", read, write)
git-clang-format --diff 024718313b526a4530d7cd58886fcc157247e0ff 8c725efaaaa1f0ceffb47c5b339f7b582a2beb3f -- compiler-rt/include/profile/InstrProfData.inc compiler-rt/lib/profile/InstrProfiling.h compiler-rt/lib/profile/InstrProfilingBuffer.c compiler-rt/lib/profile/InstrProfilingInternal.h compiler-rt/lib/profile/InstrProfilingMerge.c compiler-rt/lib/profile/InstrProfilingPlatformLinux.c compiler-rt/lib/profile/InstrProfilingWriter.c llvm/include/llvm/Analysis/IndirectCallVisitor.h llvm/include/llvm/ProfileData/InstrProf.h llvm/include/llvm/ProfileData/InstrProfData.inc llvm/include/llvm/ProfileData/InstrProfReader.h llvm/include/llvm/ProfileData/InstrProfWriter.h llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h llvm/lib/ProfileData/InstrProf.cpp llvm/lib/ProfileData/InstrProfReader.cpp llvm/lib/ProfileData/InstrProfWriter.cpp llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp llvm/lib/Transforms/Instrumentation/ValueProfilePlugins.i
source_filename = "lib.cc"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
@calleeAddrs = dso_local local_unnamed_addr global [2 x ptr] [ptr @_ZL7callee0v, ptr @_Z7callee1v], align 16
; Function Attrs: inlinehint mustprogress nounwind uwtable
define dso_local void @_Z7callee1v() #0 !prof !34 {
entry:
ret void
./bin/llvm-profdata show --help
OVERVIEW: LLVM profile data
SUBCOMMAND 'show': Takes a profile data file and displays the profiles
USAGE: llvm-profdata show [options] <profdata-file>
OPTIONS:
General options:
./bin/llvm-profdata --version
LLVM (http://llvm.org/):
LLVM version 18.0.0git
DEBUG build with assertions.
./bin/llvm-profdata --help
OVERVIEW: LLVM profile data
USAGE: llvm-profdata [subcommand] [options]
SUBCOMMANDS:
merge - Merges profiles
order - Reads temporal profiling traces from a profile and outputs a function order that reduces the number of page faults for those traces
overlap - Computes and displays the overlap between two profiles
./bin/llvm-profdata show --help
OVERVIEW: LLVM profile data summary
SUBCOMMAND 'show': show profile data
USAGE: llvm-profdata show [options] <profdata-file>
OPTIONS:
General options:
=== orn_generated_for_large_constant
Creating new node: t2: i64,ch = CopyFromReg t0, Register:i64 %0
Creating new node: t4: i64,ch = CopyFromReg t0, Register:i64 %1
Creating new node: t6: i64,ch = CopyFromReg t0, Register:i64 %2
Creating constant: t7: i64 = Constant<-1>
Creating new node: t8: i64 = xor t2, Constant:i64<-1>
Creating constant: t9: i64 = Constant<1234605616436508552>
Creating new node: t10: i64 = or t8, Constant:i64<1234605616436508552>
Creating new node: t11: i64 = and t10, t4
Creating new node: t13: ch,glue = CopyToReg t0, Register:i64 $x0, t11
=== orn_not_generated_for_small_constant
Creating new node: t2: i64,ch = CopyFromReg t0, Register:i64 %0
Creating new node: t4: i64,ch = CopyFromReg t0, Register:i64 %1
Creating new node: t6: i64,ch = CopyFromReg t0, Register:i64 %2
Creating constant: t7: i64 = Constant<-1>
Creating new node: t8: i64 = xor t2, Constant:i64<-1>
Creating constant: t9: i64 = Constant<2>
Creating new node: t10: i64 = or t8, Constant:i64<2>
Creating new node: t11: i64 = and t10, t4
Creating new node: t13: ch,glue = CopyToReg t0, Register:i64 $x0, t11
=== trunc
Creating new node: t2: i64,ch = CopyFromReg t0, Register:i64 %0
Creating new node: t4: v2i64,ch = CopyFromReg t0, Register:v2i64 %1
Creating new node: t6: v2i64,ch = CopyFromReg t0, Register:v2i64 %2
Creating new node: t7: v4i64 = concat_vectors t4, t6
Creating new node: t8: v4i8 = truncate t7
Creating new node: t9: i8 = vecreduce_add t8
Creating constant: t10: i64 = Constant<0>
Creating new node: t11: i64 = undef
Creating new node: t12: ch = store<(store (s8) into %ir.addr)> t0, t9, t2, undef:i64