Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2090 commits
Select commit Hold shift + click to select a range
5fe6fac
[Bazel] Fixes 6617aac (#194834)
forking-google-bazel-bot[bot] Apr 29, 2026
cec9634
[X86] horizontal-reduce-umax.ll - regenerate vpternlog asm comments (…
RKSimon Apr 29, 2026
6252237
[llvm][ADT] Add erase method to ScopedHashTableScope (#193516)
linuxlonelyeagle Apr 29, 2026
3482aff
[mlir][vector] drop unit dim from memrefs for xfer_read/write with no…
egebeysel Apr 29, 2026
c1a184b
[LLVM][SelectionDAG] Be more specific when constructing the MMO for m…
paulwalker-arm Apr 29, 2026
8fd0b3f
[InstSimplify] Fix invalid dereference in simplifyBinaryIntrinsic (#1…
david-arm Apr 29, 2026
fba8bde
[CIR][NFC] Add missing checks in emitForMemory (#194646)
Lancern Apr 29, 2026
64e7798
[llvm][YAML] Support aliases (anchors) in YAMLIO (#146371)
sizn-sc Apr 29, 2026
b49383c
[LLVM] Provide a default 'multilibs.yaml' when configured (#192281)
jhuber6 Apr 29, 2026
0d97b5a
[CIR][AArch64] Lower NEON zip1/2 elements intrinsics (#194311)
E00N777 Apr 29, 2026
3dd7565
[Docs] Normalize headers and indents for ReleaseNotes (#194784)
nigham Apr 29, 2026
ef7dc47
[VPlan] Strip phi-check in collectUsersRecursively (NFC) (#194816)
artagnon Apr 29, 2026
5e7e097
[offload] Enable Intel GPU tests and mark CUDA tests unsupported (#19…
adurang Apr 29, 2026
e231ee6
[clang-tidy][readability-identifier-length] refactoring and cleanup (…
dutkalex Apr 29, 2026
398049f
Search for @_thisIsNotAPipe vs _thisIsNotAPipe (#192132)
perry-ca Apr 29, 2026
aee8491
[Flang][Semantics] Fix crash on invalid function result declaration (…
ShashwathiNavada Apr 29, 2026
6238ce1
[LV][NFC] Regenerate CHECK lines for some tests (#194842)
david-arm Apr 29, 2026
095d465
[X86] Add constant comments for VGF2P8AFFINEQB rmbi forms (#194789)
ParkHanbum Apr 29, 2026
766a42a
[CodeGen] Use getFnAttributeAsParsedInteger for patchable-function at…
jph-13 Apr 29, 2026
f78419c
[libc++abi][libc][test] Use LLVM-libc headers in LLVM-libc config (#1…
jtstogel Apr 29, 2026
fe85dc9
[mlir][SPIR-V] Add OpenCL.std ldexp, pown, and rootn ops (#194791)
aobolensk Apr 29, 2026
f933bbf
[TableGen] Use guarded assert in constexpr functions (#194728)
kparzysz Apr 29, 2026
507caaf
[X86] Add custom ISD::VEC_REDUCE_*MIN/MAX lowering (#194848)
RKSimon Apr 29, 2026
f11ad99
[libcxx][lit] Fixing libcxx test failures on Windows (#194752)
zeroomega Apr 29, 2026
b46904a
[CIR][AArch64] Lower NEON vzip intrinsics (#193658)
E00N777 Apr 29, 2026
2be72ed
[SLP][NFC] Reduce compile time of isTreeTinyAndNotFullyVectorizable
alexey-bataev Apr 29, 2026
63c0520
[RISCV] Use BufferSize = 0 for ProcResGroup in SiFive7 scheduling mod…
topperc Apr 29, 2026
70a26a2
[LoopVectorize] Add metadata to distinguish vectorized loop body from…
adelejjeh Apr 29, 2026
1230cfd
[AMDGPU] Propagate debug info to constant materialization instr (#192…
aleksandar-amd Apr 29, 2026
e784c7d
[RISCV] Fix crashes and add RV32 RUN line to rvp-simd-64.ll (#194782)
topperc Apr 29, 2026
e6d46f1
[VPlan] Expand DerivedIV into executable recipes (#187589)
artagnon Apr 29, 2026
6a82589
Remove an unused include which causes Bazel dep-check failure (#194902)
jyknight Apr 29, 2026
ff8abfa
[RISCV] Remove codegen for vp_trunc (#194886)
lukel97 Apr 29, 2026
27b8441
[SLP][NFC]Fix building on windows, NFC
alexey-bataev Apr 29, 2026
1242f93
Revert "[LoopVectorize] Add metadata to distinguish vectorized loop b…
adelejjeh Apr 29, 2026
5193332
[CIR] Ternary expression for VectorType with vector cond (#194128)
AmrDeveloper Apr 29, 2026
4d7c1c6
[cmake] Fix find libxml2 for Windows static libraries (#194894)
nga888 Apr 29, 2026
4acbff3
[WinEH] Fix crash when deleting C++ objects inside SEH __try (#180144)
GkvJwa Apr 29, 2026
202adc3
[Support] Introduce a function to reset all debug counters (#194864)
BStott6 Apr 29, 2026
a8f9bae
[NFC] typo fixes (#194908)
zwu-2025 Apr 29, 2026
a7a4a8a
[lldb] Decorate tests that use shared libraries (#193118)
JDevlieghere Apr 29, 2026
88d2615
[lldb] Add skipIfWasm decorator and skip unsupported WebAssembly test…
JDevlieghere Apr 29, 2026
326162b
[WebAssembly][GlobalISel] Remove unecessary `-verify-machineinstrs` f…
QuantumSegfault Apr 29, 2026
b6824bf
[RISCV] Remove codegen for vp_and, vp_or, vp_xor, vp_sra, vp_srl, vp_…
lukel97 Apr 29, 2026
e328845
[MLIR][XeGPU] Clean up stale convert_layout on single-element vector …
nbpatel Apr 29, 2026
5776682
[gn] port 69c38be83991374 (#194918)
nico Apr 29, 2026
f0af59a
[gn build] Port 69c38be83991 (#194921)
nico Apr 29, 2026
12c9ffb
[gn build] Port 6617aac292a1 (#194920)
nico Apr 29, 2026
7e13df6
[gn build] Port 1e10f9a82222 (#194919)
nico Apr 29, 2026
df65c8b
[lldb] Handle ConstantExpr constants in InjectPointerSigningFixupCode…
bulbazord Apr 29, 2026
a068c90
[flang][HLFIR] Fix crash in WHERE with exactly_once inside elemental …
mjklemm Apr 29, 2026
de3ff7e
[flang][FIR][Mem2Reg] Do not emit potentially wrong debug info (#194837)
ivanradanov Apr 29, 2026
2a54e8f
[PowerPC] Fix assert which caused by PR 190606 (#194040)
diggerlin Apr 29, 2026
b42edd6
[clang][Fuchsia] Add test for Fuchsia-specific predefines (#194780)
frobtech Apr 29, 2026
323fc90
[gn] port 16897c234a2980 (wasm global isel extended llt tblgen) (#194…
nico Apr 29, 2026
d558f69
[lldb] Add a @skipIfNoSignals decorator for Windows and Wasm (#194760)
JDevlieghere Apr 29, 2026
105bd6b
[Offload] Clean up and split Shared/Utils.h (#194876)
jhuber6 Apr 29, 2026
01de588
Revert "[CodeGen] Temporary disable the unreachable" (#194720)
LucasChollet Apr 29, 2026
135d14c
[clang][deps] Value-compare buffers in the in-process module cache (#…
jansvoboda11 Apr 29, 2026
6591086
[Clang] allow GNU attrs before bit-field width in member declarators …
a-tarasyuk Apr 29, 2026
eab8a46
[WebAssembly] Remove exception deferring in CFGSort (NFC) (#194905)
aheejin Apr 29, 2026
04591cb
[SandboxVec][SeedCollector] Change vector bit width calculation (#194…
vporpo Apr 29, 2026
6fc0857
[CIR] Add some missing NYIs for WeakRefAttr/AliasAttr (#194913)
erichkeane Apr 29, 2026
22f61fe
[LifetimeSafety] Generalize invalidating member function detection (#…
NeKon69 Apr 29, 2026
fe5817b
Revert "Search for @_thisIsNotAPipe vs _thisIsNotAPipe" (#194929)
zeroomega Apr 29, 2026
ac10c55
[libcxx] Remove NODEBUG, ALWAYS_INLINE from __swap_layouts (#194931)
nico Apr 29, 2026
48ed850
workflows: Stop using depricated app-id with actions/create-github-ap…
tstellar Apr 29, 2026
ef63661
[llvm-cov] Use JSON streaming instead of in-memory DOM (#192457)
NoLuckNoWin Apr 29, 2026
eff85d6
workflows/new-issues: Use a GitHub app token (#194091)
tstellar Apr 29, 2026
333a650
[mlir][SPIR-V] Add OpDecorateId support for Id-form decorations (#194…
aobolensk Apr 29, 2026
da9a390
workflows/pr-subscriber: Use a GitHub app token (#194083)
tstellar Apr 29, 2026
457f179
workflows/new-prs: Use a GitHub app token (#194092)
tstellar Apr 29, 2026
ec14a1f
[VPlan] Add transform to replace VPWidenCanonicalIV with wide IV. (#1…
fhahn Apr 29, 2026
c8032c8
[SandboxIR] Implement helper getLoadStoreAddressSpace() (#194934)
vporpo Apr 29, 2026
87b568f
Avoid indirect branches from cold sections when BTI is enabled (#194727)
yabinc Apr 29, 2026
7226f42
[libc++] Allow building libc++ using llvm-libc without locale support…
jtstogel Apr 29, 2026
1782cfa
[libc] Validate against LC_ALL_MASK in newlocale (#194514)
jtstogel Apr 29, 2026
b2ddd3c
[CIR] Fix DeleteArrayOp lowering for unsized delete with destructor (…
adams381 Apr 29, 2026
cd16155
[CIR] Implement SSE packed float comparison builtins (#194724)
adams381 Apr 29, 2026
62c1d98
[CIR] Relax end_catch assertion in flattenCatchHandler (#194917)
adams381 Apr 29, 2026
6ea383f
[CIR] Fix array new cookie pointer arithmetic (#194927)
adams381 Apr 29, 2026
b79c356
[AMDGPU] Add gfx13 HSA tests (#194714)
mariusz-sikora-at-amd Apr 29, 2026
8bc2258
MC: Group .reloc directive relocations and emit groups in offset order.
pcc Apr 29, 2026
8454fb4
workflows/release-asset-audit: Use a GitHub app token (#194085)
tstellar Apr 29, 2026
015e6ca
[CIR] Make BeginCatchOp target-independent (#190612)
AmrDeveloper Apr 29, 2026
bf2b1ef
[clang][deps] Use `ModuleFile` instead of `Module` (#194028)
jansvoboda11 Apr 29, 2026
76ba2e7
[clang] NFC: Replace `auto` with `Module *` (#194032)
jansvoboda11 Apr 29, 2026
1b60e78
[clang][modules] Make `ExportDecl` a `std::pair` (#194036)
jansvoboda11 Apr 29, 2026
2787fb1
[clang][modules] Always keep submodule index up-to-date (#194039)
jansvoboda11 Apr 29, 2026
b46edf7
[RegisterCoalescer] Fix LiveRange::overlaps assert on empty interval …
michalpaszkowski Apr 29, 2026
d32a1c9
[flang][OpenMP] Simplify unpacking directive arguments, NFC (#194952)
kparzysz Apr 29, 2026
9f72098
[VPlan] Include wide IVs with NUW as monotonic in verifier. (#194959)
fhahn Apr 29, 2026
a26d9c6
[LangRef] asm clobber constrains: '~memory' allows reads and synchron…
RalfJung Apr 29, 2026
a9cef14
[clang-tidy] Fix some false positive in bugprone-move-forwarding-refe…
serge-sans-paille Apr 29, 2026
caa18a8
[llvm-dwp] Replace MCStreamer with direct ELF writer for zero-copy ou…
fzakaria Apr 29, 2026
965146d
[dsymutil] Fix ODR type uniquing for -gsimple-template-names (#194501)
JDevlieghere Apr 29, 2026
8f45c1e
[Bazel] Fixes caa18a8 (#194967)
forking-google-bazel-bot[bot] Apr 29, 2026
3d49090
[Driver] [SYCL] Update tests to use valid -std=C++ value. (#21906)
srividya-sundaram Apr 29, 2026
289b604
[libc][thread] detect self-join and mutual-join deadlock (#194891)
SchrodingerZhu Apr 29, 2026
113479d
[CIR] FlattenCFG: accept cir.trap as a ternary region terminator (#19…
bcardosolopes Apr 29, 2026
bb82a7a
[MemProf] Skip GV `__prof*` during instrumentation (#193354)
DataCorrupted Apr 29, 2026
2296100
[lldb][windows] fix yaml2macho not loading file (#194909)
charles-zablit Apr 29, 2026
b5ff452
[Clang] Reject __annotation on unsupported targets (#193731)
kjedruczyk Apr 29, 2026
5606613
[gn build] Port 7226f424bfe9
pcc Apr 29, 2026
8ba1986
[gn build] Port caa18a808aa0
pcc Apr 29, 2026
cf3a327
IR: Introduce !elf_section_properties for setting section properties.
pcc Apr 29, 2026
0177533
[RISCV] Remove isAsmParserOnly from LongBccPseudo and LongBcciPseudo.…
topperc Apr 29, 2026
74f3b56
[RISCV] Remove isAsmParserOnly from isPseudo instructions. NFC (#194958)
topperc Apr 29, 2026
df32e69
[AMDGPU]/GlobalISel: RegBankLegalize rules for fp8/bf8 cvt intrinsics…
aidanshilling Apr 29, 2026
fbdc27d
[clang][tools] NFC: Replace `auto` with `Module *` (#194977)
jansvoboda11 Apr 29, 2026
6cad48a
[WebAssembly] Remove WasmEHFuncInfo (NFC) (#194972)
aheejin Apr 29, 2026
0abb456
[orc-rt] Add NativeDylibManager. (#194792)
lhames Apr 30, 2026
c81f883
[TableGen] Use isCodeGenOnly field of CodeGenInstruction. NFC (#194942)
topperc Apr 30, 2026
8d53d36
[LoongArch] Introduce LASX instruction patterns for vector sign/zero …
lrzlin Apr 30, 2026
c1a2360
[mlir][python] expose remaining Location inspection API (#192630)
swjng Apr 30, 2026
bcbad84
[clang][bytecode] Only revisit C variables with valid initializers (#…
tbaederr Apr 30, 2026
3d19371
[CIR] Add calling_conv attribute to FuncOp with lowering support (#18…
ranapratap55 Apr 30, 2026
af4649f
[CIR][AMDGPU] Adds amdgcn logb and scalebn builtins (#191344)
ranapratap55 Apr 30, 2026
cc0a1d8
[mlir][emitc] Deferred emission as expressions (#159975)
aniragil Apr 30, 2026
8106f3b
[AArch64][GlobalISel] Normalize and cleanup some test checks. NFC (#1…
davemgreen Apr 30, 2026
9c618b7
[lldb][AIX] Implement read/write handling for GPR and SPR registers (…
HemangGadhavi Apr 30, 2026
3e8fbb2
[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into Process (#…
felipepiovezan Apr 30, 2026
18060c2
[LoongArch][NFC] Add tests for vector bitwise selection (#193752)
heiher Apr 30, 2026
cb9ffe1
[MLIR][Arith] Add subf(-0, x) -> negf(x) canonicalization rule for Su…
MaxGraey Apr 30, 2026
24e4414
[clang][bytecode] Fix DiscardResult handling in fixed-point operation…
tbaederr Apr 30, 2026
896a1fe
[AArch64] Extend addp pattern to add_like(xtn, uzp2) in 128 bit resul…
he-weiwen Apr 30, 2026
a80638e
[NFC][analyzer] Remove various NodeBuilders (#194843)
NagyDonat Apr 30, 2026
16d2bcd
[flang][lower] fix source location in WHERE constructs (#194849)
jeanPerier Apr 30, 2026
b8551d9
[clang][bytecode] Fix a crash with addr label diffs (#195011)
tbaederr Apr 30, 2026
330a8f9
[LV][NFC] Remove use of -print-after=... to verify IR output (#194882)
david-arm Apr 30, 2026
c6b245f
[SelectionDAG] Reland debuginfo salvage for load/ext combines (#194700)
rastogishubham Apr 30, 2026
9561b07
[LV][NFC] Remove instcombine from RUN lines when it has no effect (#1…
david-arm Apr 30, 2026
436fbb8
[lldb][docs] Update Variable Formatting Documentation (#193907)
hawkinsw Apr 30, 2026
272812b
[VPlan] Tighten m_CanonicalIV() (#194312)
madhur13490 Apr 30, 2026
c10f33e
[mlir][linalg] Fuse transform op - variadic tile sizes (#194657)
adam-smnk Apr 30, 2026
8baf7cc
[LICM] Improve hoist-safety checks for dominated MemorySSA accesses (…
CarolineConcatto Apr 30, 2026
34a1888
[mlir] Refactor transform.apply_dce into a eliminateTriviallyDeadOps …
joker-eph Apr 30, 2026
2c79f90
[libc++] Avoid type-punning locale in ios_base (#193507)
philnik777 Apr 30, 2026
1bba540
[MLIR][NVVM] Fix `inline_ptx` when there is only clobber register (#1…
grypp Apr 30, 2026
91c1703
[libc][docs] Add sys/ipc.h POSIX header documentation (#122006) (#194…
petbernt Apr 30, 2026
6dcb422
[clang][bytecode] Reject uninitialized bases in builtin_bit_cast (#19…
tbaederr Apr 30, 2026
124ab73
[libc++] Remove libc++'s own inttypes.h (#193716)
philnik777 Apr 30, 2026
4354248
llvm: Use add_link_options for stack size flags (#195034)
Steelskin Apr 30, 2026
317417e
[SelectionDAG][AArch64] Legalize vector.[de]interleave6 (#193723)
MDevereau Apr 30, 2026
b689f8b
[SCEV] Limit ControlsOnlyExit logic to BinOps with neutral elements. …
fhahn Apr 30, 2026
39e30cc
[KnowFPClass] Refactor fmul & fdiv (NFC) (#191651)
MaxGraey Apr 30, 2026
f32da7b
[mlir][spirv] Tighten SPIR-V TOSA convolution verification (#194592)
davidegrohmann Apr 30, 2026
63ee54a
[libc++] Refactor std::print to allow for constant folding of the for…
philnik777 Apr 30, 2026
780a182
[LoongArch] Add patterns for vector bitwise selection (#193753)
heiher Apr 30, 2026
a94ad60
[AMDGPU] Preserve old MSBs when handling SETREG (#191352)
rampitec Apr 30, 2026
b2dda8c
[LifetimeSafety] Add placement new support (#194030)
NeKon69 Apr 30, 2026
f966490
[AMDGPU] Extend max3/min3 tree-reduction combine to cover ternary cha…
PrasoonMishra Apr 30, 2026
f7d4032
[ObjCopy] Reject compress-debug-sections for non-ELF (#191314)
nataliakokoromyti Apr 30, 2026
a8eb65a
[AMDGPU][NFC] Use LaneMaskConstants for waterfall loops in AMDGPURegB…
gretay-amd Apr 30, 2026
f7e133d
[lldb] Add Python cryptography package as new test dependency (#192434)
weliveindetail Apr 30, 2026
312d882
[JITLink][COFF] Move GetImageBaseSymbol utility into public header. (…
lhames Apr 30, 2026
08bafa3
[NFC][SPIR-V] Re-enable spirv-val on tests that are passing validatio…
aobolensk Apr 30, 2026
dd99506
[CIR] Combined virtual + non-virtual base offset (#192617)
xiongzile Apr 30, 2026
d50dd86
AMDGPU/GlobalISel: Fix G_STRICT_FMUL f64 selection on GFX12 (#195050)
petar-avramovic Apr 30, 2026
2dbff02
[LoopInterchange] Fix handling of PHI which refers to another PHI (#1…
kasuga-fj Apr 30, 2026
d13c658
[LV][NFC] Remove unused -simplifycfg-*** option from tests (#195044)
david-arm Apr 30, 2026
1862fd2
[clang][unittests] Fix flaky PerformPendingInstantiations nesting in …
chfast Apr 30, 2026
6ccbdc3
[clang][ssaf][NFC] Hoist findFnByName and findDeclByName (#195056)
steakhal Apr 30, 2026
98e26bc
[AArch64] ConditionOptimizer: replace intra-block scan with map-based…
hussam-alhassan Apr 30, 2026
6593f9d
[SPIR-V] Recover aggregate type for stores of undef/composite constan…
aobolensk Apr 30, 2026
ebd677b
[LV] Re-generate check lines with UTC version 6. (NFC) (#195061)
fhahn Apr 30, 2026
875d2c9
[LV][NFC] Factor out MinBWs of values from the cost model (#194492)
hassnaaHamdi Apr 30, 2026
44753d8
[MLIR][NVVM] SpecialRegister&PureSpecialRegister takes result type (…
bastianhagedorn Apr 30, 2026
4975ad9
[GlobalISel][KnownBits] Use KnownBits::urem for G_UREM (#193455)
tejasgaikwad04 Apr 30, 2026
680a990
[VPlanSLP] Strip stub (#192635)
artagnon Apr 30, 2026
d57c4e4
[X86] Add basic ISD::VECREDUCE_AND/OR/XOR handling (#195063)
RKSimon Apr 30, 2026
a9ad4d3
[libc] Move function argument from rpc::dispatch to template (#194953)
jhuber6 Apr 30, 2026
aae871b
[DAGCombiner] Reconstruct borrow chain from icmp pattern for USUBO_CA…
chfast Apr 30, 2026
8dfe85b
[flang][fir] Support memref to memref fir.convert (#194954)
ivanradanov Apr 30, 2026
54388f4
[mlir][SPIR-V] Rename SPV_INTEL_long_constant_composite to SPV_INTEL_…
aobolensk Apr 30, 2026
e803f21
[LifetimeSafety] Make `strict` a superset of `permissive` (#195068)
usx95 Apr 30, 2026
e672169
[gn build] Port 124ab73043b2 (#195081)
nico Apr 30, 2026
2d8f233
[AMDGPU][GlobalISel] Add RegBankLegalize rules for amdgcn_sqrt (#194231)
slant14 Apr 30, 2026
5e7e704
[gn build] Port 312d8823c616 (#195082)
nico Apr 30, 2026
33a12db
[gn build] Port 680a9908194e (#195083)
nico Apr 30, 2026
6d92257
[ASan] Do not instrument HIP/CUDA fatbin wrapper sections (#194928)
yxsamliu Apr 30, 2026
3232d38
[BOLT][AArch64] Refuse to run RegReAssign pass (#194866)
Amichaxx Apr 30, 2026
6f1e6e4
[mlir][dataflow] Register dependency when const-prop fold returns non…
dimp-pl Apr 30, 2026
bcc9a55
[libc] add proc number parser and sysconf wrapper (#194159)
SchrodingerZhu Apr 30, 2026
abc0093
[lldb][windows] fix build issue (#195089)
charles-zablit Apr 30, 2026
d6410f3
[Offload] Remove use of raw Linux fd for error reporting (#195073)
jhuber6 Apr 30, 2026
327cfc5
[GlobalISel] Remove spaces at the ends of liness in Combine.td. NFC (…
davemgreen Apr 30, 2026
c72a01f
[MLIR][XeGPU] Consider alignment in dpas sg_layout creation (#181141)
akroviakov Apr 30, 2026
fc77aa9
[AArch64][GlobalISel] Use generic matchinfo. NFC (#195094)
davemgreen Apr 30, 2026
8b7dd15
Fix memcpy-operator= generation with restrict parameters. (#194906)
erichkeane Apr 30, 2026
bc4aa89
[RISCV] Fix crash when tryReduceVL tries to sink to the end of the ba…
topperc Apr 30, 2026
9a65e4a
[lldb] Change verbose logs into regular ones in SymbolLocatorSymStore…
weliveindetail Apr 30, 2026
b6aa86a
[SPIR-V] Register __spirv_* arithmetic builtins for GLSL_std_450 (#19…
aobolensk Apr 30, 2026
cc04ed6
[libc] Stop passing `--version` to compiler when detecting target (#1…
nico Apr 30, 2026
497d850
[Bazel] Fixes bcc9a55 (#195091)
forking-google-bazel-bot[bot] Apr 30, 2026
da66e6d
[flang][openmp] Fix incorrect reduction for array section in OpenMP D…
SunilKuravinakop Apr 30, 2026
62310b0
[ProfileData] Use FORCE_ON for LLVM_ENABLE_OPENCSD (#194973)
gulfemsavrun Apr 30, 2026
76db420
[libc][docs] Add nl_types.h POSIX header documentation (#122006) (#19…
petbernt Apr 30, 2026
3d47936
[DAG] expandVecReduce - widen sub-legal vectors to not prematurely sc…
RKSimon Apr 30, 2026
9dcb6f7
[llubi] Vector manipulation intrinsics cleanup (#195004)
nofe1248 Apr 30, 2026
b6130af
[flang][OpenMP] Remove deferredNonVariables_ from OmpStructureChecker…
kparzysz Apr 30, 2026
afdbe7b
[mlir][SPIR-V] Combine storage class bit with atomic memory semantics…
aobolensk Apr 30, 2026
e2f92a3
[AA] Teach getModRefInfo(FenceInst) to consult the AA chain (#192043)
michaelselehov Apr 30, 2026
66955aa
[libc][sched] Fix CPU_SET and CPU_ISSET macros (#194830)
petbernt Apr 30, 2026
b03d16c
[RegisterCoalescer] Fix incorrect VNInfo deletion condition in pruneS…
mkovacevic99 Apr 30, 2026
49d0258
[X86] vector-reduce-fmaximum.ll - regenerate with missing AVX1/AVX2 c…
RKSimon Apr 30, 2026
ad72bee
[LLVM][Intrinsics] Remove unused IIT_EMPTYSTRUCT (#195084)
jurahul Apr 30, 2026
94201c3
[LLVM][Intrinsics] Add validation for vararg intrinsics (#193777)
jurahul Apr 30, 2026
5a15574
[TailDuplicator] Fix miss-compile with PHI referencing each other in …
Ralender Apr 30, 2026
22f0c69
[CodeGen][ExpandIRInsts] NFC: cleanup style. (#194978)
yunqingy180 Apr 30, 2026
184f236
[AtomicExpandPass] Preserve atomic and volatile nature of emulated op…
akshayrdeodhar Apr 30, 2026
dfa56b5
[RFC][DataLayout] Add null pointer value infrastructure (#183207)
shiltian Apr 30, 2026
77434ce
[DAGCombiner] Teach `reduceLoadWidth` to look past `ISD:FREEZE` (#189…
mustartt Apr 30, 2026
fbe31ed
[AMDGPU] Mark WAIT_ASYNCMARK as zero-size instruction (#195107)
Yu-Zhewen Apr 30, 2026
f46af84
Revert "Changed stat passes to count instructions before and after op…
aeubanks Apr 30, 2026
7072b13
[clang][deps] Call getMemBuffer with RequiresNullTerminator false (#1…
smithp35 Apr 30, 2026
2b0fde2
[libc] Add noexcept to aligned_alloc declaration in full-build mode (…
kaladron Apr 30, 2026
ba72823
[WebAssembly][GlobalISel] Implement basic floating point instructions…
QuantumSegfault Apr 30, 2026
a23ddcd
[libc][docs][NFC] Remove dead files and consolidate check.rst (#194442)
kaladron Apr 30, 2026
699d3bf
[libc] Add sys/mman syscall wrappers (#195103)
kaladron Apr 30, 2026
ca9f6c5
[libc][docs] Fix docgen macro lookup for underscored headers (#194367)
petbernt Apr 30, 2026
0aef0f2
[Inliner] Use store-to-load forwarding to resolve call arguments (#19…
fileho Apr 30, 2026
faeae9f
[DAG] computeKnownFPClass - add ISD::SELECT/VSELECT handling + test c…
chaitanyav Apr 30, 2026
dc94465
[AMDGPU] Add readfirstlane for inline asm SGPR with VGPR input (#176330)
VigneshwarJ Apr 30, 2026
fa2b19f
[Flang][Driver] NFC: Move Flang/Fortran only options to a separate fi…
kiranchandramohan Apr 30, 2026
f4e959a
[flang][NFC] Converted five tests from old lowering to new lowering (…
eugeneepshteyn Apr 30, 2026
6810a69
[libc++] Update macOS and AppleClang (#193711)
philnik777 Apr 30, 2026
2291047
[libc++][NFC] Simplify the mersenne_twister_engine implementation a b…
philnik777 Apr 30, 2026
1fd45f0
[lldb] Remove commented-out code in DWARFExpression (NFC) (#195138)
JDevlieghere Apr 30, 2026
36a823e
[DWARFLinker] Make ODR uniquing deterministic (#194777)
JDevlieghere Apr 30, 2026
24dbf1b
Merge from 'main' to 'sycl-web' (351 commits)
Apr 30, 2026
56ba5ea
Merge from 'sycl' to 'sycl-web' (15 commits)
Apr 30, 2026
05d7863
[lldb] Centralize the pexpect timeout to make it easy to override (#1…
JDevlieghere Apr 30, 2026
bc325ec
Revert "[Inliner] Use store-to-load forwarding to resolve call argume…
aeubanks Apr 30, 2026
f07ea01
Resolve
sarnex Apr 30, 2026
403aa68
Merge from 'sycl' to 'sycl-web' (1 commits)
Apr 30, 2026
fa69da2
Merge from 'main' to 'sycl-web' (3 commits)
Apr 30, 2026
bbc7057
Resolve
sarnex Apr 30, 2026
6bfe6fd
Merge from 'main' to 'sycl-web' (10 commits)
Apr 30, 2026
3dcc436
Fix build
sarnex Apr 30, 2026
0f306da
Merge with Conflict Markers
sys-ce-bb May 13, 2026
b0aa799
Merge with Conflict Markers
sys-ce-bb May 13, 2026
453edf0
[libclc] Add back native_cpu to LIBCLC_ARCHS_ALL
sys-ce-bb May 15, 2026
4f3b768
Update test checks after d28a8b0b3ff1848cc368e33d9a84dd90ee751332 (#2…
againull May 8, 2026
fbf14ed
[Test] XFAIL sycl-offload-jit-unix.cpp after 5cd21e84 (#36487)
jsji May 3, 2026
cb4e5bf
[Clang] Disable UseAllocaASForSrets in AMD OpenMP tests w/ de82b47909…
jsji May 6, 2026
b6c8fe2
[Clang][AST] Fix test after fb024337 (#36392)
jsji Apr 30, 2026
36ce807
[Clang][CodeGen] Fix assertion in withReturnValueSlot for incomplete …
sys-ce-bb May 16, 2026
f5b2353
[Driver][SYCL] Fix device library lookup on Windows
sys-ce-bb May 16, 2026
96b4c7c
[Test] Fix sycl-offload-jit.cpp on Windows
sys-ce-bb May 17, 2026
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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ autoconf/autom4te.cache
/.idea
/cmake-build*
# Coding assistants' stuff
.agents/
/CLAUDE.md
/instructions.md
.claude/
Expand Down
50 changes: 44 additions & 6 deletions bolt/docs/profiles.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,51 @@ Where:
- `R` — Aggregated trace originating at a return.
- `B` — Aggregated branch from `<start>` to `<end>`.
- `F` — Aggregated fall-through from `<start>` to `<end>`.
- `f` — Aggregated fall-through with external origin (disambiguates returns
hitting a basic block head from regular internal jumps).
- `r` — Aggregated fall-through originating at an external return (no checks
performed for fall-through start).
- `f` — Aggregated fall-through with external origin.
- `r` — Aggregated fall-through with external return as origin.

### Trace mapping
Internally, all branch/fall-through formats are represented as traces, with the
following field mapping:
- `B <start> <end>` -> `T <start> <end> BR_ONLY`
- `F <start> <end>` -> `T FT_ONLY <start> <end>`
- `f <start> <end>` -> `T FT_EXTERNAL_ORIGIN <start> <end>`
- `r <start> <end>` -> `R FT_EXTERNAL_RETURN <start> <end>`

The constants have the following values and can be specified directly:
- `BR_ONLY`/`FT_ONLY`: UINT64_MAX: ffffffffffffffff or -1
- `FT_EXTERNAL_ORIGIN`: UINT64_MAX-1: fffffffffffffffe or -2
- `FT_EXTERNAL_RETURN`: UINT64_MAX-2: fffffffffffffffd or -3

### Call continuation fall-throughs
Where applicable, call continuation fall-throughs are extended back to cover
the call site, improving profile continuity:
- `f`: check that the fall-through start is a block start, not an entry point
or a landing pad.
- `R`/`r`: unconditional.
- `T`: local origin: extend only if it's a return. External origin: use `f`.

Return hint is only needed for external returns (e.g. from a PLT call), where
the address can't be disassembled to distinguish a return from a jump.

### Best practices
Use T/R format. To capture branch type using Linux perf events, set
the `PERF_SAMPLE_BRANCH_TYPE_SAVE` flag in `perf_event_attr::branch_sample_type`.

To represent top of brstack entry with no fall-through, use `BR_ONLY` as `ft_end`.
Such traces can be extended with an average fall-through length by passing
`--impute-trace-fall-through`.

### Location format

Locations have the format `[<buildid>:]<offset>`:
- `<offset>` — Hex offset from the object base load address.
Locations have the format `[<buildid>:]<addr>`:
- `<addr>` — Hex vaddr (non-PIE) or offset from the object base load address (PIE).
- `<buildid>:<offset>` — Offset within the object identified by `<buildid>`.
- `X:<addr>` — External address (outside the profiled binary).

Base load address is the address of the first `PT_LOAD` segment in the binary, which
may not be the same as the segment containing code address.

### Examples

Basic samples profile:
Expand All @@ -101,6 +134,11 @@ Trace profile combining branches and fall-throughs:
T 4b196f 4b19e0 4b19ef 2
```

Trace with unknown fall-through:
```
T 4b196f 4b19e0 -1 2
```

Legacy branch profile with separate branches and fall-throughs:
```
F 41be50 41be50 3
Expand Down
13 changes: 10 additions & 3 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -679,8 +679,6 @@ class BinaryContext {

std::unique_ptr<MCObjectFileInfo> MOFI;

MCTargetOptions MCOptions;

std::unique_ptr<const MCAsmInfo> AsmInfo;

std::unique_ptr<const MCInstrInfo> MII;
Expand Down Expand Up @@ -726,6 +724,11 @@ class BinaryContext {
/// FunctionFragment::getFragmentNum() == FragmentNum::warm()
bool HasWarmSection{false};

/// Indicates if the binary should assume large code model
/// Can be triggered by the presence of .ltext sections if
/// unspecified.
bool UseLargeCodeModel{false};

/// Is the binary always loaded at a fixed address. Shared objects and
/// position-independent executables (PIEs) are examples of binaries that
/// will have HasFixedLoadAddress set to false.
Expand Down Expand Up @@ -851,6 +854,10 @@ class BinaryContext {
/// enum Constants, e.g. DW_EH_PE_omit.
unsigned LSDAEncoding = dwarf::DW_EH_PE_omit;

/// Update LSDAEncoding for the binary taking into account
/// large code model and position-independent executables.
void updateLSDAEncoding();

BinaryContext(std::unique_ptr<MCContext> Ctx,
std::unique_ptr<DWARFContext> DwCtx,
std::unique_ptr<Triple> TheTriple,
Expand Down Expand Up @@ -1539,7 +1546,7 @@ class BinaryContext {
IndependentCodeEmitter createIndependentMCCodeEmitter() const {
IndependentCodeEmitter MCEInstance;
MCEInstance.LocalCtx.reset(
new MCContext(*TheTriple, AsmInfo.get(), MRI.get(), STI.get()));
new MCContext(*TheTriple, *AsmInfo, MRI.get(), STI.get()));
MCEInstance.LocalMOFI.reset(
TheTarget->createMCObjectFileInfo(*MCEInstance.LocalCtx,
/*PIC=*/!HasFixedLoadAddress));
Expand Down
11 changes: 9 additions & 2 deletions bolt/include/bolt/Core/MCPlus.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,20 @@ template <typename ValueType> class MCSimpleAnnotation : public MCAnnotation {
ValueType Value;
};

/// Return true if \p Op is the annotation sentinel: a null MCInst operand
/// that marks the start of BOLT annotations. Non-null MCInst operands
/// (e.g. Hexagon duplex sub-instructions) are legitimate prime operands.
inline bool isAnnotationSentinel(const MCOperand &Op) {
return Op.isInst() && Op.getInst() == nullptr;
}

/// Return a number of operands in \Inst excluding operands representing
/// annotations.
inline unsigned getNumPrimeOperands(const MCInst &Inst) {
for (signed I = Inst.getNumOperands() - 1; I >= 0; --I) {
if (Inst.getOperand(I).isInst())
if (isAnnotationSentinel(Inst.getOperand(I)))
return I;
if (!Inst.getOperand(I).isImm())
if (!Inst.getOperand(I).isInst() && !Inst.getOperand(I).isImm())
return Inst.getNumOperands();
}
return Inst.getNumOperands();
Expand Down
4 changes: 1 addition & 3 deletions bolt/include/bolt/Core/MCPlusBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,8 @@ class MCPlusBuilder {

MCInst::iterator getAnnotationInstOp(MCInst &Inst) const {
for (MCInst::iterator Iter = Inst.begin(); Iter != Inst.end(); ++Iter) {
if (Iter->isInst()) {
assert(Iter->getInst() == nullptr && "Empty instruction expected.");
if (MCPlus::isAnnotationSentinel(*Iter))
return Iter;
}
}
return Inst.end();
}
Expand Down
1 change: 1 addition & 0 deletions bolt/include/bolt/Profile/DataAggregator.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ class DataAggregator : public DataReader {
friend raw_ostream &operator<<(raw_ostream &OS, const LBREntry &);

friend struct PerfSpeEventsTestHelper;
friend struct PreAggregatedTestHelper;

struct PerfBranchSample {
SmallVector<LBREntry, 32> LBR;
Expand Down
40 changes: 23 additions & 17 deletions bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ using namespace llvm;

namespace opts {

extern cl::opt<bool> LargeCodeModel;

static cl::opt<bool>
NoHugePages("no-huge-pages",
cl::desc("use regular size pages for code alignment"),
Expand Down Expand Up @@ -155,9 +157,6 @@ BinaryContext::BinaryContext(std::unique_ptr<MCContext> Ctx,
STI(std::move(STI)), InstPrinter(std::move(InstPrinter)),
MIA(std::move(MIA)), MIB(std::move(MIB)), MRI(std::move(MRI)),
DisAsm(std::move(DisAsm)), Logger(Logger), InitialDynoStats(isAArch64()) {
// createMCAsmInfo stored a pointer to a local MCTargetOptions in MCAsmInfo.
// Update it to point to our member that will outlive MCAsmInfo.
const_cast<MCAsmInfo *>(this->AsmInfo.get())->setTargetOptions(MCOptions);
RegularPageSize = isAArch64() ? RegularPageSizeAArch64 : RegularPageSizeX86;
PageAlign = opts::NoHugePages ? RegularPageSize : HugePageSize;
}
Expand Down Expand Up @@ -227,8 +226,9 @@ Expected<std::unique_ptr<BinaryContext>> BinaryContext::createBinaryContext(
make_error_code(std::errc::not_supported),
Twine("BOLT-ERROR: no register info for target ", TripleName));

// Set up disassembler.
MCTargetOptions MCOptions;
// Set up disassembler. The MCAsmInfo holds a reference to MCTargetOptions, so
// make it static to outlive the AsmInfo.
static const MCTargetOptions MCOptions;
std::unique_ptr<MCAsmInfo> AsmInfo(
TheTarget->createMCAsmInfo(*MRI, TheTriple, MCOptions));
if (!AsmInfo)
Expand All @@ -255,20 +255,10 @@ Expected<std::unique_ptr<BinaryContext>> BinaryContext::createBinaryContext(
Twine("BOLT-ERROR: no instruction info for target ", TripleName));

std::unique_ptr<MCContext> Ctx(
new MCContext(TheTriple, AsmInfo.get(), MRI.get(), STI.get()));
new MCContext(TheTriple, *AsmInfo, MRI.get(), STI.get()));
std::unique_ptr<MCObjectFileInfo> MOFI(
TheTarget->createMCObjectFileInfo(*Ctx, IsPIC));
Ctx->setObjectFileInfo(MOFI.get());
// We do not support X86 Large code model. Change this in the future.
bool Large = false;
if (TheTriple.getArch() == llvm::Triple::aarch64)
Large = true;
unsigned LSDAEncoding =
Large ? dwarf::DW_EH_PE_absptr : dwarf::DW_EH_PE_udata4;
if (IsPIC) {
LSDAEncoding = dwarf::DW_EH_PE_pcrel |
(Large ? dwarf::DW_EH_PE_sdata8 : dwarf::DW_EH_PE_sdata4);
}

std::unique_ptr<MCDisassembler> DisAsm(
TheTarget->createMCDisassembler(*STI, *Ctx));
Expand Down Expand Up @@ -306,7 +296,13 @@ Expected<std::unique_ptr<BinaryContext>> BinaryContext::createBinaryContext(
std::move(InstructionPrinter), std::move(MIA), nullptr, std::move(MRI),
std::move(DisAsm), Logger);

BC->LSDAEncoding = LSDAEncoding;
// Use large code model encoding for AArch64 (always). For X86, this is
// updated after detecting .ltext if unset.
// Otherwise allow the user to force it via `--large-code-model` flag.
if (TheTriple.getArch() == llvm::Triple::aarch64)
BC->UseLargeCodeModel = true;
else if (opts::LargeCodeModel.getNumOccurrences())
BC->UseLargeCodeModel = opts::LargeCodeModel;

BC->MAB = std::unique_ptr<MCAsmBackend>(
BC->TheTarget->createMCAsmBackend(*BC->STI, *BC->MRI, MCTargetOptions()));
Expand All @@ -318,6 +314,8 @@ Expected<std::unique_ptr<BinaryContext>> BinaryContext::createBinaryContext(
BC->SymbolicDisAsm = std::unique_ptr<MCDisassembler>(
BC->TheTarget->createMCDisassembler(*BC->STI, *BC->Ctx));

BC->updateLSDAEncoding();

if (!BC->SymbolicDisAsm)
return createStringError(
make_error_code(std::errc::not_supported),
Expand Down Expand Up @@ -393,6 +391,14 @@ bool BinaryContext::validateHoles() const {
return Valid;
}

void BinaryContext::updateLSDAEncoding() {
LSDAEncoding = HasFixedLoadAddress
? dwarf::DW_EH_PE_absptr
: (dwarf::DW_EH_PE_pcrel |
(this->UseLargeCodeModel ? dwarf::DW_EH_PE_sdata8
: dwarf::DW_EH_PE_sdata4));
}

void BinaryContext::updateObjectNesting(BinaryDataMapType::iterator GAI) {
const uint64_t Address = GAI->second->getAddress();
const uint64_t Size = GAI->second->getSize();
Expand Down
8 changes: 4 additions & 4 deletions bolt/lib/Core/BinaryEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function,
}

MCContext &Context = Streamer.getContext();
const MCAsmInfo *MAI = Context.getAsmInfo();
const MCAsmInfo &MAI = Context.getAsmInfo();

MCSymbol *const StartSymbol = Function.getSymbol(FF.getFragmentNum());

Expand Down Expand Up @@ -387,7 +387,7 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function,
for (const MCCFIInstruction &CFIInstr : Function.cie()) {
// Only write CIE CFI insns that LLVM will not already emit
const std::vector<MCCFIInstruction> &FrameInstrs =
MAI->getInitialFrameState();
MAI.getInitialFrameState();
if (!llvm::is_contained(FrameInstrs, CFIInstr))
emitCFIInstruction(CFIInstr);
}
Expand All @@ -413,7 +413,7 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function,
if (size_t Padding = opts::padFunctionAfter(Function)) {
LLVM_DEBUG(dbgs() << "BOLT-DEBUG: padding function " << Function << " with "
<< Padding << " bytes\n");
Streamer.emitFill(Padding, MAI->getTextAlignFillValue());
Streamer.emitFill(Padding, MAI.getTextAlignFillValue());
}

if (opts::MarkFuncs)
Expand All @@ -426,7 +426,7 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function,
MCSymbol *EndSymbol = Function.getFunctionEndLabel(FF.getFragmentNum());
Streamer.emitLabel(EndSymbol);

if (MAI->hasDotTypeDotSizeDirective()) {
if (MAI.hasDotTypeDotSizeDirective()) {
const MCExpr *SizeExpr = MCBinaryExpr::createSub(
MCSymbolRefExpr::create(EndSymbol, Context),
MCSymbolRefExpr::create(StartSymbol, Context), Context);
Expand Down
10 changes: 5 additions & 5 deletions bolt/lib/Core/DebugData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -966,7 +966,7 @@ static inline void emitBinaryDwarfLineTable(
unsigned Discriminator = 0;
uint64_t LastAddress = InvalidAddress;
uint64_t PrevEndOfSequence = InvalidAddress;
const MCAsmInfo *AsmInfo = MCOS->getContext().getAsmInfo();
const MCAsmInfo &AsmInfo = MCOS->getContext().getAsmInfo();

auto emitEndOfSequence = [&](uint64_t Address) {
MCDwarfLineAddr::Emit(MCOS, Params, INT64_MAX, Address - LastAddress);
Expand Down Expand Up @@ -1037,7 +1037,7 @@ static inline void emitBinaryDwarfLineTable(
} else {
if (LastAddress == InvalidAddress)
emitDwarfSetLineAddrAbs(*MCOS, Params, LineDelta, Address,
AsmInfo->getCodePointerSize());
AsmInfo.getCodePointerSize());
else
MCDwarfLineAddr::Emit(MCOS, Params, LineDelta, Address - LastAddress);

Expand Down Expand Up @@ -1068,13 +1068,13 @@ static inline void emitDwarfLineTable(
unsigned Isa = 0;
unsigned Discriminator = 0;
MCSymbol *LastLabel = nullptr;
const MCAsmInfo *AsmInfo = MCOS->getContext().getAsmInfo();
const MCAsmInfo &AsmInfo = MCOS->getContext().getAsmInfo();

// Loop through each MCDwarfLineEntry and encode the dwarf line number table.
for (const MCDwarfLineEntry &LineEntry : LineEntries) {
if (LineEntry.getFlags() & DWARF2_FLAG_END_SEQUENCE) {
MCOS->emitDwarfAdvanceLineAddr(INT64_MAX, LastLabel, LineEntry.getLabel(),
AsmInfo->getCodePointerSize());
AsmInfo.getCodePointerSize());
FileNum = 1;
LastLine = 1;
Column = 0;
Expand Down Expand Up @@ -1128,7 +1128,7 @@ static inline void emitDwarfLineTable(
// in line numbers and the increment of the address from the previous
// Label and the current Label.
MCOS->emitDwarfAdvanceLineAddr(LineDelta, LastLabel, Label,
AsmInfo->getCodePointerSize());
AsmInfo.getCodePointerSize());
Discriminator = 0;
LastLine = LineEntry.getLine();
LastLabel = Label;
Expand Down
5 changes: 5 additions & 0 deletions bolt/lib/Passes/CMOVConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,11 @@ void CMOVConversion::runOnFunction(BinaryFunction &Function) {
}

Error CMOVConversion::runOnFunctions(BinaryContext &BC) {
if (!BC.isX86()) {
BC.errs() << "BOLT-ERROR: " << getName() << " is supported only on X86\n";
exit(1);
}

for (auto &It : BC.getBinaryFunctions()) {
BinaryFunction &Function = It.second;
if (!shouldOptimize(Function))
Expand Down
5 changes: 5 additions & 0 deletions bolt/lib/Passes/IndirectCallPromotion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1142,6 +1142,11 @@ Error IndirectCallPromotion::runOnFunctions(BinaryContext &BC) {
if (opts::ICP == ICP_NONE)
return Error::success();

if (!BC.isX86()) {
BC.errs() << "BOLT-ERROR: " << getName() << " is supported only on X86\n";
exit(1);
}

auto &BFs = BC.getBinaryFunctions();

const bool OptimizeCalls = (opts::ICP == ICP_CALLS || opts::ICP == ICP_ALL);
Expand Down
Loading
Loading