Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
757 commits
Select commit Hold shift + click to select a range
3137b6a
[lsan] Make ReportUnsuspendedThreads return bool also for Fuchsia
zmodem Oct 7, 2024
c98e41f
[LegalizeVectorTypes] Always widen fabs (#111298)
lukel97 Oct 7, 2024
ae6af37
update_test_checks: fix a simple regression (#111347)
nhaehnle Oct 7, 2024
74a98fd
Revert "[x86] combineMul - use computeKnownBits directly to find MUL_…
zmodem Oct 7, 2024
d148548
Reland "[lldb][test] TestDataFormatterLibcxxStringSimulator.py: add n…
Michael137 Oct 7, 2024
3d862c7
[x86] combineMul - use computeKnownBits directly to find MUL_IMM cons…
RKSimon Oct 7, 2024
66713a0
[lldb][test] Add libcxx-simulators test for std::optional (#111133)
Michael137 Oct 7, 2024
a1c0ba1
[lldb][test] TestDataFormatterLibcxxOptionalSimulator.py: change orde…
Michael137 Oct 7, 2024
e0b24d9
[llvm-dis] Fix non-deterministic disassembly across multiple inputs (…
peterwaller-arm Oct 7, 2024
db13404
[x86] combineMul - handle 0/-1 KnownBits cases before MUL_IMM logic (…
RKSimon Oct 7, 2024
88478a8
[Flang][OpenMP] Improve entry block argument creation and binding (#1…
skatrak Oct 7, 2024
8df6637
[doc] Fix Kaleidoscope tutorial chapter 3 code snippet and full listi…
aidint Oct 7, 2024
d9e986e
[clang][OpenMP][test] Use x86_64-linux-gnu triple for test referencin…
asb Oct 7, 2024
f1ec45a
[Driver] Use empty multilib file in another test (#111352)
ostannard Oct 7, 2024
9a222a1
[X86] Add test coverage for #111323
RKSimon Oct 7, 2024
c978d05
[X86] getIntImmCostInst - pull out repeated Imm.getBitWidth() calls. …
RKSimon Oct 7, 2024
8b6e1dc
[X86] getIntImmCostInst - reduce i64 imm costs of AND(X,CMASK) case t…
RKSimon Oct 7, 2024
02dd6b1
[LLVM][CodeGen] Add lowering for scalable vector bfloat operations. (…
paulwalker-arm Oct 7, 2024
1062007
[gn build] Port fb0ef6b66e3c
llvmgnsyncbot Oct 7, 2024
ee57a68
[libc] Make a dedicated thread for the RPC server (#111210)
jhuber6 Oct 7, 2024
a018353
Revert "[NFC][EarlyIfConverter] Remove unused member variables"
jmmartinez Oct 7, 2024
e7174a8
[lldb][test] Provide proper path to LLVM utils in API tests (#110837)
dzhidzhoev Oct 7, 2024
91d6e77
[flang][debug] set DW_AT_main_subprogram for fortran main function (#…
tblah Oct 7, 2024
dda107b
Revert "[libc][bazel] Enable software prefetching for memcpy" (#111370)
gchatelet Oct 7, 2024
5dc7a5e
[clang][x86] popcntintrin.h - merge the __DEFAULT_FN_ATTRS / __DEFAUL…
RKSimon Oct 7, 2024
73c9ad2
[clang][x86] Add constexpr support for some basic SSE1 intrinsics (#1…
RKSimon Oct 7, 2024
b2784ec
Revert "[X86] For minsize memset/memcpy, use byte or double-word acce…
zmodem Oct 7, 2024
1666d13
[CMake]: Remove unnecessary dependencies on LLVM/MLIR (#111255)
Adnios Oct 7, 2024
4c9c2d6
[AST] Avoid repeated hash lookups (NFC) (#111327)
kazutakahirata Oct 7, 2024
4bc0916
[Linalg] Avoid repeated hash lookups (NFC) (#111328)
kazutakahirata Oct 7, 2024
31e8c53
[Affine] Avoid repeated hash lookups (NFC) (#111330)
kazutakahirata Oct 7, 2024
40f0f7b
[FMV][AArch64] Unify features ssbs and ssbs2. (#110297)
labrinea Oct 7, 2024
0614b3c
[Analysis] Simplify code with DenseMap::operator[] (NFC) (#111331)
kazutakahirata Oct 7, 2024
5fdda41
[Transforms] Avoid repeated hash lookups (NFC) (#111329)
kazutakahirata Oct 7, 2024
5f94b0c
AMDGPU: Try to reuse dest reg for s_add_i32 frame indexes (#111201)
arsenm Oct 7, 2024
d5ec01b
Revert "[NFC][EarlyIfConverter] Replace boolean Predicate for a class…
jmmartinez Oct 7, 2024
989c437
[RISCV][GISEL][NFC] Add break statement to reduce diff on future chan…
michaelmaitland Oct 7, 2024
0e8555d
[libclc] Remove mention of BSD license in readme (#111371)
Oct 7, 2024
0e2970f
[lldb] Make libc++ simulator tests compatible with category-based ski…
labath Oct 7, 2024
aa65636
[clang][x86] Update AVX1 intrinsic tests for both C/C++
RKSimon Oct 7, 2024
f71d621
[clang][x86] Update F16C intrinsic tests for both C/C++ and 32/64-bit…
RKSimon Oct 7, 2024
aa4d948
[clang][x86] Update FMA/FMA4 intrinsic tests for both C/C++ and 32/64…
RKSimon Oct 7, 2024
f15fe73
[clang][x86] Update AVX2 intrinsic tests for both C/C++
RKSimon Oct 7, 2024
8565213
[clang] Code owners -> Maintainers transition (#108997)
AaronBallman Oct 7, 2024
2fe1f84
[test] Fix llc-start-stop.ll when the default target enables the loop…
asb Oct 7, 2024
2edd897
Make WriteIndexesThinBackend multi threaded (#109847)
NuriAmari Oct 7, 2024
c5f7a32
[X86] Add AMD Llano family detection (#111312)
RipleyTom Oct 7, 2024
0e8a10b
[lldb][test] Mark test() in TestBSDArchives.py as passing remotely (#…
dzhidzhoev Oct 7, 2024
5e7cc37
[lldb][test] TestDataFormatterLibcxxOptionalSimulator.py: don't use _…
Michael137 Oct 7, 2024
02b9c97
[memprof] Simplify code with MapVector::operator[] (NFC) (#111335)
kazutakahirata Oct 7, 2024
1f17c2d
[LLD] Deprecate --lto-basic-block-sections=labels (#110697)
rlavaee Oct 7, 2024
dec6fe3
Revert "[SPIRV] Add radians intrinsic" (#111398)
bogner Oct 7, 2024
b2c615f
Reapply "[SPIRV] Add radians intrinsic"
bogner Oct 7, 2024
b795c28
[clang][x86] Update AVX512F intrinsic tests for both C/C++
RKSimon Oct 7, 2024
f07e1c8
[clang][x86] Update MMX intrinsic tests for both C/C++ and 32/64-bit …
RKSimon Oct 7, 2024
d4c1789
Make env and source map dictionaries #95137 (#106919)
da-viper Oct 7, 2024
5d372ea
[LLDB][DYLD] Remove logic around not rebasing when main executable ha…
Jlalond Oct 7, 2024
971b579
[MLIR] Don't drop attached discardable attributes (#111261)
pashu123 Oct 7, 2024
b3c1403
[clang] Fix std::tm etc. mangling on Solaris (#106353)
rorth Oct 7, 2024
71b2c4d
[flang] Remove failing integration test
NimishMishra Oct 7, 2024
69577b2
[WebAssembly] Support type checker for new EH (#111069)
aheejin Oct 7, 2024
0b8fec6
[DirectX] Fix broken test and accidental fallthrough in #110616 (#111…
bogner Oct 7, 2024
1297ff1
[FMV][AArch64][NFC] Cleanup attribute metadata from test files. (#111…
labrinea Oct 7, 2024
fabe7e3
[llvm][gold] Fix syntax error (#111412)
ilovepi Oct 7, 2024
d8a656f
[MLIR] AMDGPUToROCDL: Use a bitcast op to reintepret a vector of i8 a…
bjacob Oct 7, 2024
41b09c5
[Clang] omit parentheses in fold expressions with a single expansion …
a-tarasyuk Oct 7, 2024
93bfa78
[SandboxVectorizer] Define SeedBundle: a set of instructions to be ve…
Sterling-Augustine Oct 7, 2024
32e90bb
[lldb][test] Support remote run of Shell tests (#95986)
dzhidzhoev Oct 7, 2024
f11568b
Revert "[RISCV][TTI] Recognize CONCAT_VECTORS if a shufflevector mask…
preames Oct 7, 2024
adbc37d
[clang-tidy] Fix incorrect command-line option in docs (#111405)
float3 Oct 7, 2024
3f50393
[SandboxVectorizer][NFC] Remove unused include (#111418)
Sterling-Augustine Oct 7, 2024
90a5744
Remove redundant checks related to quantized type (#110604)
sdasgup3 Oct 7, 2024
a8e1311
[RFC] IR: Define noalias.addrspace metadata (#102461)
arsenm Oct 7, 2024
fbb8234
[SandboxIR][NFC] Remove unused include (#111422)
Sterling-Augustine Oct 7, 2024
e0b840a
[SandboxVectorizer][NFC] Remove erroneous expensive check assert (#11…
Sterling-Augustine Oct 7, 2024
017b504
[clang] Don't lose track of explicit specializations of member functi…
mizvekov Oct 7, 2024
dd0fe4f
[CIR] Add .clang-tidy files for ClangIR specific coding style rules
lanza Oct 7, 2024
9dca83f
AMDGPU: Add noalias.addrspace metadata when autoupgrading atomic intr…
arsenm Oct 7, 2024
8882d59
[flang] Fix typo in warning message text (#110888)
klausler Oct 7, 2024
ce5edfd
[flang] Finer error detection in separate module procedure case (#110…
klausler Oct 7, 2024
49016d5
[flang] Silence bogus error message (#111057)
klausler Oct 7, 2024
70cbedc
[flang] Catch errors with INTENT(OUT) assumed rank dummy arguments (#…
klausler Oct 7, 2024
6ace680
[rtsan][compiler-rt] Get rid of [[blocking]] stub in tests (#111392)
cjappl Oct 7, 2024
a98466a
[WebAssembly] Merge eh-assembly-legacy.s into eh-assembly.s (#111411)
aheejin Oct 7, 2024
d2457e6
Remove redundant symbol lookups in IRExecutionUnit::FindInSymbols (#1…
DmT021 Oct 7, 2024
3bace7e
[LLVM][AsmParser] Make error reporting of lexer errors more precise (…
jurahul Oct 7, 2024
00989f4
[scudo] Fix isOwned on MTE devices. (#111060)
eugenis Oct 7, 2024
10d4306
[rtsan][NFC] Refactor to scoped bypasser for __rtsan::Context (#111438)
cjappl Oct 7, 2024
9e06e77
[rtsan] Add stats summary even when halt_on_error=true (#110165)
cjappl Oct 7, 2024
5c88aa9
[libc++] Document the de-facto status of compiler extension support (…
ldionne Oct 7, 2024
75103aa
Added include of common interfaces (#111374)
gbMattN Oct 7, 2024
2918e77
[mlir][debuginfo] Add support for subprogram annotations (#110946)
walter-erquinigo Oct 7, 2024
376b5c0
[SandboxIR][NFC] Use accessor for DataLayout rather than passing it d…
Sterling-Augustine Oct 7, 2024
2ca8501
Revert "[ELF] Change Ctx::target to unique_ptr (#111260)" (#111449)
ilovepi Oct 7, 2024
991adff
[WebAssembly] Allow try_table to target loops in AsmTypeCheck (#111432)
aheejin Oct 7, 2024
39ac121
[Clang] Check that we have the correct RecordDecl (#111448)
bwendling Oct 7, 2024
63a0a81
[NFC][Scalarizer][TargetTransformInfo] Add isTargetIntrinsicWithScala…
farzonl Oct 7, 2024
b443711
[rtsan] Ensure pthread is initialized in test (#111401)
lizhijin1024 Oct 8, 2024
4b6e41b
[clang-format] Don't insert spaces after keywords in protobuf field o…
owenca Oct 8, 2024
6568827
[clang-format][NFC] Clean up AlignConsecutiveStyle (#111285)
owenca Oct 8, 2024
db4874c
[ConstantFPRange][UnitTests] Guard exhaustive checks by `EXPENSIVE_CH…
dtcxzyw Oct 8, 2024
ae5ee97
[SPIR-V] Emit DebugTypePointer from NonSemantic DI (#109287)
bwlodarcz Oct 8, 2024
646aa81
[lldb][Docs] Fix typo in `tutorial.rst` (#111326)
Oct 8, 2024
1ad3180
[llvm-remarkutil] Simplify code with std::map::operator[] (NFC) (#111…
kazutakahirata Oct 8, 2024
1b53aae
[ThinLTO][NFC] Refactor ThinBackend (#110461)
kyulee-com Oct 8, 2024
e98875a
[RISCV] Add scalable interleave cost tests. NFC
lukel97 Oct 8, 2024
4647a46
[ConstantFPRange] Implement `ConstantFPRange::makeSatisfyingFCmpRegio…
dtcxzyw Oct 8, 2024
c35214c
[ELF] Initialize TargetInfo members
MaskRay Oct 8, 2024
e1a073c
[ELF] Change Ctx::target to unique_ptr (#111260)
MaskRay Oct 8, 2024
1f2c08b
[clang-tools-extra] Fix add_clang_library usage (#109321)
fsfod Oct 8, 2024
4fadf41
[ELF] Pass Ctx & to ARM/AArch64
MaskRay Oct 8, 2024
975da02
[modules][test] Bump maximum size for embed-files-compressed.cpp for …
asb Oct 8, 2024
58ef1eb
[libc] Bound the worst-case stack usage in qsort(). (#110849)
statham-arm Oct 8, 2024
a11509c
[AArch64][GlobalISel] Scalarize i128/fp128 vector loads/stores.
davemgreen Oct 8, 2024
a3a253d
[ConstantFPRange] Implement `ConstantFPRange::makeExactFCmpRegion` (#…
dtcxzyw Oct 8, 2024
4d218ca
[Clang] [Sema] Effects: Correctly detect `(x ? a : b)` as nonblocking…
dougsonos Oct 8, 2024
20b8d3f
[libc++][CI] Replace LLDB test targets with libc++ test category (#11…
Michael137 Oct 8, 2024
634c57d
[mlir][SCF][NFC] `scf.for`/`scf.while`: rename builder args (#111493)
matthias-springer Oct 8, 2024
f658c1b
Recommit "[RISCV][FMV] Support target_version" (#111096)" (#111333)
BeMg Oct 8, 2024
1df8ccd
Revert "[NFC][EarlyIfConverter] Turn SSAIfConv into a local variable …
jmmartinez Oct 8, 2024
29ec071
Fix comment typo in ExpandFCOPYSIGN (#111489)
RalfJung Oct 8, 2024
7c10876
[lldb][test] Fix unexpected pass of TestBSDArchives on Windows
Oct 8, 2024
ec00999
[lldb][test] Remove xfails from static lib tests on Windows
Oct 8, 2024
6b4c4d7
[llvm][docs] Improve the formatting of the Common Problems section (#…
Oct 8, 2024
f22e6d5
[Clang][AArch64] Fix checkArmStreamingBuiltin for 'sve-b16b16' (#109420)
sdesmalen-arm Oct 8, 2024
fbf9bea
[Clang] [NFC] Remove trailing whitespace in release notes (#111506)
Sirraide Oct 8, 2024
327124e
[NFC][EarlyIfConverter] Rename SSAIfConv::runOnMachineFunction to SSA…
jmmartinez Oct 8, 2024
366e469
[RISCV] Add cost tests for more interleave factors. NFC
lukel97 Oct 8, 2024
39cdfdf
[lldb][test] Fix typo in TestSharedLibStrippedSymbols
Oct 8, 2024
6636f32
[AMDGPU] Include WWM register spill into BB Prolog (#111496)
cdevadas Oct 8, 2024
782a2d4
[clang][Sema] Bad register variable type error should point to the ty…
Oct 8, 2024
c62e61a
[libomp][AIX] Use SO version "1" for AIX libomp (#111384)
xingxue-ibm Oct 8, 2024
9fd15ad
[AArch64] NFC: rename subreg zsub to qsub (#111154)
sdesmalen-arm Oct 8, 2024
e3e5517
[clang][x86] Enable _mm_movehdup_ps, _mm_moveldup_ps and _mm_movedup_…
RKSimon Oct 8, 2024
a649e8f
[lit] Allow passthrough of some QEMU_* environment variables to lit (…
asb Oct 8, 2024
bfe0666
[LLVM][CodeGen][SVE2] Implement nxvf64 fpround to nxvbf16. (#111012)
paulwalker-arm Oct 8, 2024
871f69f
[TimeProfiler] Added instant events to llvm TimeProfiler. (#103039)
ivanaivanovska Oct 8, 2024
3ec6f80
[VPlan] Don't created GEP x, 0 for interleave group pointers.
fhahn Oct 8, 2024
326b381
[LLVM][Maintainers] Update lead maintainer for LLVM (#111180)
nikic Oct 8, 2024
1312369
[clang][x86] Enable SSE2/AVX/AVX512 setzero intrinsics in constant ex…
RKSimon Oct 8, 2024
235067b
[clang][bytecode] Make sure ia32_bzhi input is an integer (#111505)
tbaederr Oct 8, 2024
f01364e
[Clang] Instantiate the correct lambda call operator (#110446)
Sirraide Oct 8, 2024
db1a762
[LLD][RISCV] Error on PCREL_LO referencing other Section (#107558)
lenary Oct 8, 2024
e06e493
Make a tablegen test match-table.td more robust.
MaggieYingYi Aug 22, 2024
87cdc83
[LLVM][ConstFolds] Verify a scalar src before attempting scalar->vect…
paulwalker-arm Oct 8, 2024
2d666de
Revert "[AArch64] NFC: rename subreg zsub to qsub (#111154)"
zmodem Oct 8, 2024
f93f925
[RISCV][MC] Support Assembling 48- and 64-bit Instructions (#110022)
lenary Oct 8, 2024
c0a2915
[SystemZ][z/OS] don't write to source
metaflow Oct 8, 2024
6e5d612
[Coroutines] Move OptimizeFrame out of Shape (#111017)
TylerNowicki Oct 8, 2024
388c693
[SystemZ][z/OS] fix sample-split-layout.test on z/OS (#109679)
zibi2 Oct 8, 2024
a7968f6
[gn] port 32e90bbe579d39356eb (lldb remote tests)
nico Oct 8, 2024
48ac846
[AMDGPU][GlobalISel] Align `selectVOP3PMadMixModsImpl` with the `Sele…
shiltian Oct 8, 2024
88a239d
[AMDGPU] Adopt new lowering sequence for `fdiv16` (#109295)
shiltian Oct 8, 2024
97a784e
[llvm][cmake][Trivial] use /Zc:preprocessor with MSVC only explicitly…
Maetveis Oct 8, 2024
db98be3
[InstCombine] Minor cleanup for optimizeFMod. NFC
davemgreen Oct 8, 2024
148a8fe
GVN/test: regen a test with UTC (NFC) (#111365)
artagnon Oct 8, 2024
4da8ac3
Reapply "[Clang][Sema] Refactor collection of multi-level template ar…
sdkrystian Oct 8, 2024
416d1bd
[Basic] Avoid repeated hash lookups (NFC) (#111467)
kazutakahirata Oct 8, 2024
dec641e
[Driver] Avoid repeated hash lookups (NFC) (#111468)
kazutakahirata Oct 8, 2024
a8289a3
[Tooling] Avoid repeated hash lookups (NFC) (#111469)
kazutakahirata Oct 8, 2024
98c9c1a
[lldb][test] Disable new lldb-dap test on non-x86
Oct 8, 2024
1e5f32e
[Transforms] Avoid repeated hash lookups (NFC) (#111470)
kazutakahirata Oct 8, 2024
d48920d
[gn build] Port 93bfa7886b1a
nico Oct 8, 2024
7fa0d05
[AsmParser] Simplify code with std::map::operator[] (NFC) (#111480)
kazutakahirata Oct 8, 2024
64f7e1b
[libclc] Update build instructions in readme (#111369)
Oct 8, 2024
e542202
[RISCV] Update vector calling convention test for tuple type. NFC (#1…
4vtomat Oct 8, 2024
4e6a6ed
[PowerPC] Update matchRegisterName() to return MCRegister instead of …
lei137 Oct 8, 2024
8ab7718
[clang][RISCV] Make the index of riscv_tuple_extract and riscv_tuple_…
4vtomat Oct 8, 2024
4582651
[SLP][NFC]Fix clang-tidy suggestions, cleanup, NFC.
alexey-bataev Oct 8, 2024
74f3cc0
[flang] Call __clog instead of clog on AIX (#111442)
kkwli Oct 8, 2024
adc6a9e
Reapply "[X86] For minsize memset/memcpy, use byte or double-word acc…
AZero13 Oct 8, 2024
d079743
[clang] Fix comment typos in CodeGen::EmitLoadOfGlobalRegLValue
Oct 8, 2024
10054ba
[mlir][vector] Add pattern to rewrite contiguous ExtractStridedSlice …
bjacob Oct 8, 2024
70e0a7e
[libclc] Convert README to Markdown (#111549)
Oct 8, 2024
baa51ff
[sanitizer] Document AddressSanitizer security considerations (#100937)
bigb4ng Oct 8, 2024
5af7ae5
[SPIRV] Implement handle_fromBinding intrinsic. (#111052)
s-perron Oct 8, 2024
1dcb6dc
[DAG] foldVSelectToSignBitSplatMask - pull out repeated code and use …
RKSimon Oct 8, 2024
d38addf
Fix MSVC signed/unsigned mismatch warning
RKSimon Oct 8, 2024
5589096
[PowerPC] vec-min-max.ll - regenerate with common check prefixes to r…
RKSimon Oct 8, 2024
cc5ddae
[NVPTX] Fix ISel patterns for i1 sint_to_fp (#110866)
LewisCrawford Oct 8, 2024
6f2ebc4
[lldb] Change SymbolContext::GetAddressRangeFromHereToEndLine to retu…
AbdAlRahmanGad Oct 8, 2024
ababa48
[lldb] Add SBTypeStaticField to SBDefines (#111560)
chelcassanova Oct 8, 2024
f576c1f
[X86] Regenerate test checks with vpternlog comments
RKSimon Oct 8, 2024
84088d3
[DLCov 1/5] Add CMake option for enhanced debug line coverage trackin…
SLTozer Oct 8, 2024
7e31eaa
[libc++] Remove unused HAVE_LIBCXXABI variable from Android cache (#1…
ldionne Oct 8, 2024
5cb6b15
[AMDGPU] Constrain use LiveMask by the operand's LaneMask for RP calc…
jrbyrnes Oct 7, 2024
01b8dd1
[RISCV][NFC] Remove the unused RISCV_COALESCE_VSETVLI_NAME (#111536)
pfusik Oct 8, 2024
c563fe5
[gn build] Manually port 84088d3a
aeubanks Oct 8, 2024
3c6041d
[SandboxVec][Interval] Implement getUnionInterval() and getSingleDiff…
Oct 8, 2024
9e954b2
[docs] Fix llround typo in LangRef (#111426)
JohanEngelen Oct 8, 2024
eaea5f6
[clang] Add test for CWG110 "Can template functions and classes be de…
Endilll Oct 8, 2024
d17ad77
[flang][Semantics] Testcase for declaration conflict with named-const…
kparzysz Oct 8, 2024
418920b
[flang][OpenMP] Diagnose non-variable symbols in OpenMP clauses (#111…
kparzysz Oct 8, 2024
3829fd7
[VPlan] Remove redundant getVPSingleValue for VPSingleDefRecipes (NFC).
fhahn Oct 8, 2024
d905b1c
[MLIR] Vector dialect: Address post-merge review comments on #111541 …
bjacob Oct 8, 2024
a199fb1
[clang-tidy] Only expand <inttypes.h> macros in modernize-use-std-for…
mikecrowe Oct 8, 2024
36fc291
[VPlan] Implement VPBlendRecipe::computeCost.
fhahn Oct 8, 2024
a65a5fe
[SLP]Improve masked loads vectorization, attempting gathered loads
alexey-bataev Oct 8, 2024
9f3c559
[SLP]Fix loads sorting for loads from diffrent basic blocks
alexey-bataev Oct 8, 2024
75611ca
[Clang] Improve type traits recognition in `__has_builtin` (#111516)
cor3ntin Oct 8, 2024
9b82e85
[DWARF] Generalize DWARFTypePrinter to a template class (#109459)
ZequanWu Oct 8, 2024
3423a5e
[rtsan][NFC] Refactor where we unwind the stack (#111443)
cjappl Oct 8, 2024
29d6f8a
[gn build] Port 9b82e85d8175
llvmgnsyncbot Oct 8, 2024
6fbbe15
[VPlan] Introduce VPWidenIntrinsicRecipe to separate from libcall. (#…
fhahn Oct 8, 2024
c6d6da4
[ORC][MachO] Remove the ExecutionSession& argument to MachOPlatform::…
lhames Oct 8, 2024
56d2c62
[SandboxVec][Interval] Add print() and dump()
Oct 8, 2024
0c0ec04
[gn build] Port 56d2c626f75e
llvmgnsyncbot Oct 8, 2024
e5fae76
[SandboxVectorizer] Add MemSeed bundle types (#111584)
Sterling-Augustine Oct 8, 2024
a8eb12c
[compiler-rt] Reapply freadlink interception for macOs. (#110917)
devnexen Oct 8, 2024
87b491a
[NFC] [MTE] get rid of unnecessary cast (#110336)
fmayer Oct 8, 2024
5f36042
[NFC] [HWASan] [MTE] factor out threadlong increment (#110340)
fmayer Oct 8, 2024
1a19313
[RISC-V][HWASAN] Fix incorrect comments (#103728)
SiFiveHolland Oct 8, 2024
4cab01f
[BOLT] Profile quality stats -- CFG discontinuity (#109683)
ShatianWang Oct 8, 2024
a85eb34
[gn build] Port 4cab01f07262
llvmgnsyncbot Oct 8, 2024
0e86e52
[BOLT][AArch64] Reduce the number of ADR relaxations (#111577)
maksfb Oct 8, 2024
04a8bff
[SandboxVec][DAG] Build actual dependencies (#111094)
Oct 8, 2024
aabddc9
[MLIR][memref] Fix normalization issue in memref.load (#107771)
darshan-opensource Oct 9, 2024
c80f484
[lldb][NFC] Fix a build failure with MSVC (#111231)
igorkudrin Oct 9, 2024
ff6faca
[clang] remove extra space in warn_atomic_op_oversized (NFC) (#110955)
Enna1 Oct 9, 2024
1818404
[LiveDebugValues][NVPTX]VarLocBasedImpl handle vregs, enable for NVPT…
willghatch Oct 9, 2024
64a22b3
[NVPTX] fix debug register encoding of special %Depot register (#111596)
willghatch Oct 9, 2024
bb8df02
[RISCV] Use the MCStreamer reference passed to RISCVAsmPrinter::EmitT…
topperc Oct 9, 2024
267e852
[SandboxVec][DAG][NFC] Rename enumerators
Oct 9, 2024
1e81056
[Coroutines] Avoid repeated hash lookups (NFC) (#111617)
kazutakahirata Oct 9, 2024
2d8cd32
[InstCombine] Avoid repeated hash lookups (NFC) (#111618)
kazutakahirata Oct 9, 2024
0ee5c86
[mlir][spirv] Avoid repeated hash lookups (NFC) (#111619)
kazutakahirata Oct 9, 2024
a579782
[llvm] Add serialization to uint32_t for FixedPointSemantics (#110288)
tbaederr Oct 9, 2024
1809d0f
[clang-format] Insert a space between l_paren and ref-qualifier (#111…
owenca Oct 9, 2024
d0b9c2c
[compiler-rt] Remove SHA2 interceptions for NetBSD/FreeBSD. (#110246)
devnexen Oct 9, 2024
d50302f
clang/AMDGPU: Stop emitting amdgpu-unsafe-fp-atomics attribute (#111579)
arsenm Oct 9, 2024
4336f00
[clang] Track function template instantiation from definition (#110387)
mizvekov Oct 9, 2024
fbd2a91
InferAddressSpaces: Handle llvm.fake.use (#109567)
arsenm Oct 9, 2024
c198f77
AMDGPU: Remove flat/global fmin/fmax intrinsics (#105642)
arsenm Oct 9, 2024
3dba4ca
[ORC][MachO] Remove the ExecutionSession& argument to MachOPlatform c…
lhames Oct 9, 2024
55dd29c
[llvm-profdata] Avoid repeated hash lookups (NFC) (#111629)
kazutakahirata Oct 9, 2024
b26aac5
[sanitizer] Report -> VReport for ThreadLister failure
vitalybuka Oct 9, 2024
a06591b
[libc++][type_traits] P2674R1: A trait for implicit lifetime types (#…
H-G-Hristov Oct 9, 2024
3c1d9b8
[gn build] Port a06591b4d4fb
llvmgnsyncbot Oct 9, 2024
fb2960a
[compiler-rt] [profile] Add missing (void) to prototypes, for C sourc…
mstorsjo Oct 9, 2024
3be6916
Add symbol visibility macros to abi-breaking.h.cmake (#110898)
fsfod Oct 9, 2024
ada6372
Revert "[clang] Finish implementation of P0522 (#96023)"
zmodem Oct 7, 2024
3bf33ec
[GlobalISel] Fold bitcast(undef) to undef. (#111491)
davemgreen Oct 9, 2024
8a8a279
Merge commit '3bf33ecec8f0' into aie-public
Aug 4, 2025
ef84dee
[ELF][AIE] Rename `TargetInfo *getAIETargetInfo` to `void setAIETarge…
Aug 4, 2025
c86c544
[AIE] Change backend callback to require const RecordKeeper (#111064)
Aug 4, 2025
e00e0b6
[AIE] Timer code factored out into a `TGTimer` class (#111054)
Aug 4, 2025
55e6574
fixup! [AIE] initial commit
Aug 4, 2025
08ec045
fixup! [AIE] Add basic clang support, including intrinsics
Aug 4, 2025
6fb94bc
fixup! [AIEX] combiner to simplify Concat-UNMERGE-PHI
Aug 4, 2025
f56984e
[AMDGPU] Mark unit-test as XFAIL due to local change for aie
Aug 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ autoconf/autom4te.cache
/CMakeSettings.json
# CLion project configuration
/.idea
/cmake-build*

#==============================================================================#
# Directories to ignore (do not add trailing '/'s, they skip symlinks).
Expand Down
61 changes: 61 additions & 0 deletions bolt/include/bolt/Passes/ContinuityStats.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
//===- bolt/Passes/ContinuityStats.h ----------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This pass checks how well the BOLT input profile satisfies the following
// "CFG continuity" property of a perfect profile:
//
// Each positive-execution-count block in the function’s CFG
// should be *reachable* from a positive-execution-count function
// entry block through a positive-execution-count path.
//
// More specifically, for each of the hottest 1000 functions, the pass
// calculates the function’s fraction of basic block execution counts
// that is *unreachable*. It then reports the 95th percentile of the
// distribution of the 1000 unreachable fractions in a single BOLT-INFO line.
// The smaller the reported value is, the better the BOLT profile
// satisfies the CFG continuity property.

// The default value of 1000 above can be changed via the hidden BOLT option
// `-num-functions-for-continuity-check=[N]`.
// If more detailed stats are needed, `-v=1` can be used: the hottest N
// functions will be grouped into 5 equally-sized buckets, from the hottest
// to the coldest; for each bucket, various summary statistics of the
// distribution of the unreachable fractions and the raw unreachable execution
// counts will be reported.
//
//===----------------------------------------------------------------------===//

#ifndef BOLT_PASSES_CONTINUITYSTATS_H
#define BOLT_PASSES_CONTINUITYSTATS_H

#include "bolt/Passes/BinaryPasses.h"
#include <vector>

namespace llvm {

class raw_ostream;

namespace bolt {
class BinaryContext;

/// Compute and report to the user the function CFG continuity quality
class PrintContinuityStats : public BinaryFunctionPass {
public:
explicit PrintContinuityStats(const cl::opt<bool> &PrintPass)
: BinaryFunctionPass(PrintPass) {}

bool shouldOptimize(const BinaryFunction &BF) const override;
const char *getName() const override { return "continuity-stats"; }
bool shouldPrint(const BinaryFunction &) const override { return false; }
Error runOnFunctions(BinaryContext &BC) override;
};

} // namespace bolt
} // namespace llvm

#endif // BOLT_PASSES_CONTINUITYSTATS_H
7 changes: 4 additions & 3 deletions bolt/lib/Passes/ADRRelaxationPass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,14 @@ void ADRRelaxationPass::runOnFunction(BinaryFunction &BF) {
continue;
}

// Don't relax adr if it points to the same function and it is not split
// and BF initial size is < 1MB.
// Don't relax ADR if it points to the same function and is in the main
// fragment and BF initial size is < 1MB.
const unsigned OneMB = 0x100000;
if (BF.getSize() < OneMB) {
BinaryFunction *TargetBF = BC.getFunctionForSymbol(Symbol);
if (TargetBF == &BF && !BF.isSplit())
if (TargetBF == &BF && !BB.isSplit())
continue;

// No relaxation needed if ADR references a basic block in the same
// fragment.
if (BinaryBasicBlock *TargetBB = BF.getBasicBlockForLabel(Symbol))
Expand Down
1 change: 1 addition & 0 deletions bolt/lib/Passes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ add_llvm_library(LLVMBOLTPasses
PatchEntries.cpp
PettisAndHansen.cpp
PLTCall.cpp
ContinuityStats.cpp
RegAnalysis.cpp
RegReAssign.cpp
ReorderAlgorithm.cpp
Expand Down
250 changes: 250 additions & 0 deletions bolt/lib/Passes/ContinuityStats.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
//===- bolt/Passes/ContinuityStats.cpp --------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file implements the continuity stats calculation pass.
//
//===----------------------------------------------------------------------===//

#include "bolt/Passes/ContinuityStats.h"
#include "bolt/Core/BinaryBasicBlock.h"
#include "bolt/Core/BinaryFunction.h"
#include "bolt/Utils/CommandLineOpts.h"
#include "llvm/Support/CommandLine.h"
#include <queue>
#include <unordered_map>
#include <unordered_set>

#define DEBUG_TYPE "bolt-opts"

using namespace llvm;
using namespace bolt;

namespace opts {
extern cl::opt<unsigned> Verbosity;
cl::opt<unsigned> NumFunctionsForContinuityCheck(
"num-functions-for-continuity-check",
cl::desc("number of hottest functions to print aggregated "
"CFG discontinuity stats of."),
cl::init(1000), cl::ZeroOrMore, cl::Hidden, cl::cat(BoltOptCategory));
} // namespace opts

namespace {
using FunctionListType = std::vector<const BinaryFunction *>;
using function_iterator = FunctionListType::iterator;

template <typename T>
void printDistribution(raw_ostream &OS, std::vector<T> &values,
bool Fraction = false) {
if (values.empty())
return;
// Sort values from largest to smallest and print the MAX, TOP 1%, 5%, 10%,
// 20%, 50%, 80%, MIN. If Fraction is true, then values are printed as
// fractions instead of integers.
std::sort(values.begin(), values.end());

auto printLine = [&](std::string Text, double Percent) {
int Rank = int(values.size() * (1.0 - Percent / 100));
if (Percent == 0)
Rank = values.size() - 1;
if (Fraction)
OS << " " << Text << std::string(9 - Text.length(), ' ') << ": "
<< format("%.2lf%%", values[Rank] * 100) << "\n";
else
OS << " " << Text << std::string(9 - Text.length(), ' ') << ": "
<< values[Rank] << "\n";
};

printLine("MAX", 0);
const int percentages[] = {1, 5, 10, 20, 50, 80};
for (size_t i = 0; i < sizeof(percentages) / sizeof(percentages[0]); ++i) {
printLine("TOP " + std::to_string(percentages[i]) + "%", percentages[i]);
}
printLine("MIN", 100);
}

void printCFGContinuityStats(raw_ostream &OS,
iterator_range<function_iterator> &Functions) {
// Given a perfect profile, every positive-execution-count BB should be
// connected to an entry of the function through a positive-execution-count
// directed path in the control flow graph.
std::vector<size_t> NumUnreachables;
std::vector<size_t> SumECUnreachables;
std::vector<double> FractionECUnreachables;

for (auto it = Functions.begin(); it != Functions.end(); ++it) {
const BinaryFunction *Function = *it;
if (Function->size() <= 1)
continue;

// Compute the sum of all BB execution counts (ECs).
size_t NumPosECBBs = 0;
size_t SumAllBBEC = 0;
for (const BinaryBasicBlock &BB : *Function) {
const size_t BBEC = BB.getKnownExecutionCount();
NumPosECBBs += BBEC > 0 ? 1 : 0;
SumAllBBEC += BBEC;
}

// Perform BFS on subgraph of CFG induced by positive weight edges.
// Compute the number of BBs reachable from the entry(s) of the function and
// the sum of their execution counts (ECs).
std::unordered_map<unsigned, const BinaryBasicBlock *> IndexToBB;
std::unordered_set<unsigned> Visited;
std::queue<unsigned> Queue;
for (const BinaryBasicBlock &BB : *Function) {
// Make sure BB.getIndex() is not already in IndexToBB.
assert(IndexToBB.find(BB.getIndex()) == IndexToBB.end());
IndexToBB[BB.getIndex()] = &BB;
if (BB.isEntryPoint() && BB.getKnownExecutionCount() > 0) {
Queue.push(BB.getIndex());
Visited.insert(BB.getIndex());
}
}
while (!Queue.empty()) {
const unsigned BBIndex = Queue.front();
const BinaryBasicBlock *BB = IndexToBB[BBIndex];
Queue.pop();
auto SuccBIIter = BB->branch_info_begin();
for (const BinaryBasicBlock *Succ : BB->successors()) {
const uint64_t Count = SuccBIIter->Count;
if (Count == BinaryBasicBlock::COUNT_NO_PROFILE || Count == 0) {
++SuccBIIter;
continue;
}
if (!Visited.insert(Succ->getIndex()).second) {
++SuccBIIter;
continue;
}
Queue.push(Succ->getIndex());
++SuccBIIter;
}
}

const size_t NumReachableBBs = Visited.size();

// Loop through Visited, and sum the corresponding BBs' execution counts
// (ECs).
size_t SumReachableBBEC = 0;
for (const unsigned BBIndex : Visited) {
const BinaryBasicBlock *BB = IndexToBB[BBIndex];
SumReachableBBEC += BB->getKnownExecutionCount();
}

const size_t NumPosECBBsUnreachableFromEntry =
NumPosECBBs - NumReachableBBs;
const size_t SumUnreachableBBEC = SumAllBBEC - SumReachableBBEC;
const double FractionECUnreachable =
(double)SumUnreachableBBEC / SumAllBBEC;

if (opts::Verbosity >= 2 && FractionECUnreachable >= 0.05) {
OS << "Non-trivial CFG discontinuity observed in function "
<< Function->getPrintName() << "\n";
LLVM_DEBUG(Function->dump());
}

NumUnreachables.push_back(NumPosECBBsUnreachableFromEntry);
SumECUnreachables.push_back(SumUnreachableBBEC);
FractionECUnreachables.push_back(FractionECUnreachable);
}

if (FractionECUnreachables.empty())
return;

std::sort(FractionECUnreachables.begin(), FractionECUnreachables.end());
const int Rank = int(FractionECUnreachables.size() * 0.95);
OS << format("top 5%% function CFG discontinuity is %.2lf%%\n",
FractionECUnreachables[Rank] * 100);

if (opts::Verbosity >= 1) {
OS << "abbreviations: EC = execution count, POS BBs = positive EC BBs\n"
<< "distribution of NUM(unreachable POS BBs) among all focal "
"functions\n";
printDistribution(OS, NumUnreachables);

OS << "distribution of SUM_EC(unreachable POS BBs) among all focal "
"functions\n";
printDistribution(OS, SumECUnreachables);

OS << "distribution of [(SUM_EC(unreachable POS BBs) / SUM_EC(all "
"POS BBs))] among all focal functions\n";
printDistribution(OS, FractionECUnreachables, /*Fraction=*/true);
}
}

void printAll(BinaryContext &BC, FunctionListType &ValidFunctions,
size_t NumTopFunctions) {
// Sort the list of functions by execution counts (reverse).
llvm::sort(ValidFunctions,
[&](const BinaryFunction *A, const BinaryFunction *B) {
return A->getKnownExecutionCount() > B->getKnownExecutionCount();
});

const size_t RealNumTopFunctions =
std::min(NumTopFunctions, ValidFunctions.size());

iterator_range<function_iterator> Functions(
ValidFunctions.begin(), ValidFunctions.begin() + RealNumTopFunctions);

BC.outs() << format("BOLT-INFO: among the hottest %zu functions ",
RealNumTopFunctions);
printCFGContinuityStats(BC.outs(), Functions);

// Print more detailed bucketed stats if requested.
if (opts::Verbosity >= 1 && RealNumTopFunctions >= 5) {
const size_t PerBucketSize = RealNumTopFunctions / 5;
BC.outs() << format(
"Detailed stats for 5 buckets, each with %zu functions:\n",
PerBucketSize);

// For each bucket, print the CFG continuity stats of the functions in the
// bucket.
for (size_t BucketIndex = 0; BucketIndex < 5; ++BucketIndex) {
const size_t StartIndex = BucketIndex * PerBucketSize;
const size_t EndIndex = StartIndex + PerBucketSize;
iterator_range<function_iterator> Functions(
ValidFunctions.begin() + StartIndex,
ValidFunctions.begin() + EndIndex);
const size_t MaxFunctionExecutionCount =
ValidFunctions[StartIndex]->getKnownExecutionCount();
const size_t MinFunctionExecutionCount =
ValidFunctions[EndIndex - 1]->getKnownExecutionCount();
BC.outs() << format("----------------\n| Bucket %zu: "
"|\n----------------\n",
BucketIndex + 1)
<< format(
"execution counts of the %zu functions in the bucket: "
"%zu-%zu\n",
EndIndex - StartIndex, MinFunctionExecutionCount,
MaxFunctionExecutionCount);
printCFGContinuityStats(BC.outs(), Functions);
}
}
}
} // namespace

bool PrintContinuityStats::shouldOptimize(const BinaryFunction &BF) const {
if (BF.empty() || !BF.hasValidProfile())
return false;

return BinaryFunctionPass::shouldOptimize(BF);
}

Error PrintContinuityStats::runOnFunctions(BinaryContext &BC) {
// Create a list of functions with valid profiles.
FunctionListType ValidFunctions;
for (const auto &BFI : BC.getBinaryFunctions()) {
const BinaryFunction *Function = &BFI.second;
if (PrintContinuityStats::shouldOptimize(*Function))
ValidFunctions.push_back(Function);
}
if (ValidFunctions.empty() || opts::NumFunctionsForContinuityCheck == 0)
return Error::success();

printAll(BC, ValidFunctions, opts::NumFunctionsForContinuityCheck);
return Error::success();
}
3 changes: 3 additions & 0 deletions bolt/lib/Rewrite/BinaryPassManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "bolt/Passes/AllocCombiner.h"
#include "bolt/Passes/AsmDump.h"
#include "bolt/Passes/CMOVConversion.h"
#include "bolt/Passes/ContinuityStats.h"
#include "bolt/Passes/FixRISCVCallsPass.h"
#include "bolt/Passes/FixRelaxationPass.h"
#include "bolt/Passes/FrameOptimizer.h"
Expand Down Expand Up @@ -373,6 +374,8 @@ Error BinaryFunctionPassManager::runAllPasses(BinaryContext &BC) {
if (opts::PrintProfileStats)
Manager.registerPass(std::make_unique<PrintProfileStats>(NeverPrint));

Manager.registerPass(std::make_unique<PrintContinuityStats>(NeverPrint));

Manager.registerPass(std::make_unique<ValidateInternalCalls>(NeverPrint));

Manager.registerPass(std::make_unique<ValidateMemRefs>(NeverPrint));
Expand Down
Loading
Loading