Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
210 commits
Select commit Hold shift + click to select a range
dc72ec8
[RISCV] Custom legalize vp.merge for mask vectors. (#120479)
topperc Dec 19, 2024
f0dcf32
[Sema] Fix tautological bounds check warning with -fwrapv (#120480)
nathanchance Dec 19, 2024
1cc926b
[ADT] Add a unittest for the ScopedHashTable class (#120183)
samolisov Dec 19, 2024
76275c0
[gn build] Port 1cc926b8b697
llvmgnsyncbot Dec 19, 2024
fe26853
[clang-format] Fix a crash caused by commit f03bf8c45f43
owenca Dec 19, 2024
c94ce0c
[ADT] Fix warnings
kazutakahirata Dec 19, 2024
104ad92
[SelectionDAG] Rename SDNode::uses() to users(). (#120499)
topperc Dec 19, 2024
2302142
[Coroutines][Docs] Add a discussion on the handling of certain parame…
Dec 19, 2024
2c782ab
[RISCV] Add software pipeliner support (#117546)
wangpc-pp Dec 19, 2024
5c55f96
[Clang] Don't assume unexpanded PackExpansions' size when expanding p…
zyn0217 Dec 19, 2024
4ca4287
[SelectionDAG] Replace findGlueUse in SelectionDAGISel with SDNode::g…
topperc Dec 19, 2024
bd261ec
[SelectionDAG] Add SDNode::user_begin() and use it in some places (#1…
topperc Dec 19, 2024
296c294
[RISCV][MCA] Move sifive-x280 tests to directory SiFiveX280 (#120522)
wangpc-pp Dec 19, 2024
a3bf873
[llvm-mc] --no-exec-stack: replace initSection with switchSection. NFC
MaskRay Dec 19, 2024
e389492
[NFC] Move DroppedVariableStats code to Analysis (#120502)
rastogishubham Dec 19, 2024
2c31262
[gn build] Port e389492d6a00
llvmgnsyncbot Dec 19, 2024
16bc44a
[LLVM] Update BPF maintainer (#120429)
nikic Dec 19, 2024
70f326c
[LLVM] Move Bigcheese to inactive maintainer for Windows object tools…
nikic Dec 19, 2024
881447f
[LLVM] Update maintainers for binary utilities (#120428)
nikic Dec 19, 2024
223c764
Add a pass to collect dropped var stats for MIR (#120501)
rastogishubham Dec 19, 2024
16d9528
Revert "Add a pass to collect dropped var stats for MIR (#120501)"
rastogishubham Dec 19, 2024
0f9257b
[RISCV] Add scheduling model for mips p8700 CPU (#119885)
djtodoro Dec 19, 2024
023fb25
[LLVM] Update ADT/Support maintainers (#120423)
nikic Dec 19, 2024
9fa109a
Revert "[RISCV] Add scheduling model for mips p8700 CPU" (#120537)
djtodoro Dec 19, 2024
e4351f2
[TOSA] Don't run validation pass on non TOSA operations (#120205)
lhutton1 Dec 19, 2024
beea5ac
Reapply "[driver] Fix sanitizer libc++ runtime linking (#120370)" (#1…
vitalybuka Dec 19, 2024
9fc2fad
[Clang] Re-write codegen for atomic_test_and_set and atomic_clear (#1…
ostannard Dec 19, 2024
2210da3
[lldb][AIX] clang-format changes for ProcessLauncherPosixFork.cpp (#1…
DhruvSrivastavaX Dec 19, 2024
9829598
[AArch64][SME2] Extend getRegAllocationHints for ZPRStridedOrContiguo…
kmclaughlin-arm Dec 19, 2024
3c661cf
[PAC][MC][ELF][AArch64] Support signed TLSDESC (#120010)
kovdan01 Dec 19, 2024
431975b
[X86] LowerShift - directly initialize SmallVector with build vector …
RKSimon Dec 18, 2024
976f877
[X86] ExtendToType - directly initialize SmallVector with build vecto…
RKSimon Dec 19, 2024
c616fdc
[PS5][Driver] Pass user search paths to linker before implict ones (#…
playstation-edd Dec 19, 2024
10d84a8
[bazel] port 79e859e049c77b5190a54fc1ecf1d262e3ef9f11
metaflow Dec 19, 2024
cffe22a
Revert "[NFC] Move DroppedVariableStats code to Analysis (#120502)"
metaflow Dec 19, 2024
a3bb2d6
[gn build] Port cffe22a93726
llvmgnsyncbot Dec 19, 2024
c18fda0
[LoopVectorize] Use new single string variant of reportVectorizationF…
david-arm Dec 19, 2024
eaf482f
[AArch64] Tweak truncate costs for some scalable vector types (#119542)
david-arm Dec 19, 2024
e020f46
[ARM] Fix BF16 lowering with FullFP16
davemgreen Dec 19, 2024
ecdc528
[Clang] Fix crash in __builtin_assume_aligned (#114217)
ostannard Dec 19, 2024
30f386c
[AArch64] Fixup destructive floating-point precision conversions (#11…
SpencerAbson Dec 19, 2024
5a3f1ac
[LLParser] Remove redundant code (NFC) (#120478)
pedroclobo Dec 19, 2024
5fb8d70
ARM: Handle vldrh and vstrh in stack access hooks (#120527)
arsenm Dec 19, 2024
056e5ec
[AMDGPU] Remove unneeded use of !dag. NFC. (#120546)
jayfoad Dec 19, 2024
b41240b
[analyzer][NFC] Introduce APSIntPtr, a safe wrapper of APSInt (1/4) (…
steakhal Dec 19, 2024
060d62b
[LoopVectorizer] Add support for partial reductions (#92418)
NickGuy-Arm Dec 19, 2024
d0d5101
[analyzer][NFC] Migrate nonloc::ConcreteInt to use APSIntPtr (2/4) (#…
steakhal Dec 19, 2024
13e20bc
[analyzer][NFC] Migrate loc::ConcreteInt to use APSIntPtr (3/4) (#120…
steakhal Dec 19, 2024
2337789
[analyzer][NFC] Migrate {SymInt,IntSym}Expr to use APSIntPtr (4/4) (#…
steakhal Dec 19, 2024
eace826
[clang] NFC, simplify the shouldLifetimeExtendThroughPath.
hokein Dec 19, 2024
6586c67
[FMV][AArch64] Emit mangled default version if explicitly specified. …
labrinea Dec 19, 2024
eb812d2
[X86] Put R20/R21/R28/R29 later in GR64 list (#120510)
fzou1 Dec 19, 2024
89da344
[analyzer] Handle [[assume(cond)]] as __builtin_assume(cond) (#116462)
vinay-deshmukh Dec 19, 2024
9bb1d03
[X86] getShuffleCost - when splitting shuffles, if a whole vector sou…
RKSimon Dec 19, 2024
ca98a3d
[AArch64][SVE] Use SVE for scalar FP converts in streaming[-compatibl…
MacDue Dec 19, 2024
3222060
Reland "[RISCV] Add scheduling model for mips p8700 CPU" (#120550)
djtodoro Dec 19, 2024
db84ae3
[Clang][AArch64] Add signed index/offset variants of sve2p1 qword sto…
SpencerAbson Dec 19, 2024
eba7690
[lldb][AIX] GetOpt support in AIX (#120574)
DhruvSrivastavaX Dec 19, 2024
0745add
[mlir][GPU] Do not strip location info when lowering to NVVM (#120432)
matthias-springer Dec 19, 2024
9469fd2
[Clang][AArch64] Remove const from base pointers in sve2p1 stores (#1…
SpencerAbson Dec 19, 2024
94837c8
Add llvm-profgen to the list of toolchain tools (#120106)
tcreech-intel Dec 19, 2024
6f8afaf
[InstCombine] Fold `A == MIN_INT ? B != MIN_INT : A < B` to `A < B` (…
veera-sivarajan Dec 19, 2024
1f2d934
[clang][bytecode] Support pointers in __builtin_mem{move,cpy} (#120560)
tbaederr Dec 19, 2024
a161e73
[AMDGPU] Remove unnecessary casts to GCNSubtarget
jayfoad Dec 19, 2024
310e798
[NVPTX] Avoid introducing unnecessary ProxyRegs and Movs in ISel (#12…
AlexMaclean Dec 19, 2024
b0a4b5b
[TableGen] Avoid repeated hash lookups (NFC) (#120532)
kazutakahirata Dec 19, 2024
d56edc1
[libc++] Bump the Docker image used in the CI (#120248)
ldionne Dec 19, 2024
cc246d4
[Transforms][CodeExtraction] bug fix regions with stackrestore (#118564)
AbhayKanhere Dec 19, 2024
4039a79
[libc++][test] Improve tests for assign in std::vector and vector<boo…
winner245 Dec 19, 2024
2b6713d
[lld/coff] Fix assert on /start-lib foo.obj /end-lib during eager loa…
nico Dec 19, 2024
b05071d
[lld/ELF] Add tests for start-lib / end-lib with eager loads (#120294)
nico Dec 19, 2024
f8bcd93
[lld/COFF] Fix -start-lib / -end-lib after reviews.llvm.org/D116434 (…
nico Dec 19, 2024
e6b2495
[SelectionDAG] Split SDNode::use_iterator into user_iterator and use_…
topperc Dec 19, 2024
fafdf97
[libc++] Simplify vector<bool>::flip() and add new tests (#119607)
winner245 Dec 19, 2024
145ddf7
[M68k] Fix build after splitting SDNode::use_iterator.
topperc Dec 19, 2024
527595f
[lldb][Mach-O] Initialize cputype/cpusubtype in test corefiles (#120518)
jasonmolenda Dec 19, 2024
2b9abf0
Revert "[analyzer] Handle [[assume(cond)]] as __builtin_assume(cond) …
thurstond Dec 19, 2024
f139bde
[SelectionDAG] Move SDNode::use_iterator::getOperandNo to SDUse. (#12…
topperc Dec 19, 2024
4044886
Revert "[AMDGPU][True16][MC] true16 for v_minmax/maxmin_f16 (#119586)…
broxigarchen Dec 19, 2024
c2dd612
[llvm-lib] Add /llvmlibindex:no to disable writing an index (#120596)
nico Dec 19, 2024
434819c
[PhaseOrdering][X86] Add test coverage for #34072
RKSimon Dec 19, 2024
01b9638
[RISCV][test] Add zbb-logic-neg-imm.ll
pfusik Dec 18, 2024
254ba78
[GenericDomTree][NFC] Remove unnecessary `const_cast`s (#97638)
MagentaTreehouse Dec 19, 2024
46e7823
[lldb][debugserver] Read/write SME registers on arm64 (#119171)
jasonmolenda Dec 19, 2024
a03343d
[memprof] YAMLify the profile for memprof_missing_leaf.ll (NFC) (#120…
kazutakahirata Dec 19, 2024
e504ece
[LLVMIR] Migrate away from PointerUnion::{is,get} (NFC) (#120530)
kazutakahirata Dec 19, 2024
3710050
[RISCV][VLOPT] Set CommonVL as the largest of the users (#120349)
michaelmaitland Dec 19, 2024
2886576
[memprof] clang-format MemProf-related files (NFC) (#120504)
kazutakahirata Dec 19, 2024
21684e3
[BOLT][Linux] Refactor reading of PC-relative addresses. NFCI (#120491)
maksfb Dec 19, 2024
b71c44b
[scudo] Add the record of number of attempted page release (#120497)
ChiaHungDuan Dec 19, 2024
1808255
[DWARFVerifier] Fix and enable broken test llvm-dwarfdump/X86/verify_…
alx32 Dec 19, 2024
395a369
[Xtensa] Fix build after splitting SDNode::use_iterator
sylvestre Dec 19, 2024
98c97d4
[WebKit checkers] Recognize adoptRef as a safe function (#119846)
rniwa Dec 19, 2024
aa07f92
[DirectX][SPIRV] Consistent names for HLSL resource intrinsics (#120466)
bogner Dec 19, 2024
d3508cc
[AMDGPU] Emit S_CBRANCH_SCC for floating-point conditions. (#120588)
kmitropoulou Dec 19, 2024
b5d0278
Revert "[WebKit checkers] Recognize adoptRef as a safe function" (#12…
rniwa Dec 19, 2024
45c01e8
[NFC][TargetTransformInfo][VectorUtils] Consolidate `isVectorIntrinsi…
inbelic Dec 19, 2024
e3b571e
[clang-tidy][NFC] Sync ContainerSizeEmptyCheck with container-size-em…
N-Dekker Dec 19, 2024
10d054e
[memprof] Introduce IndexedCallstackIdConveter (NFC) (#120540)
kazutakahirata Dec 19, 2024
4bbdb01
[OpenACC] Implement 'init' and 'shutdown' constructs
erichkeane Dec 19, 2024
bdf2555
[OpenACC] Implement 'device_num' clause sema for 'init'/'shutdown'
erichkeane Dec 19, 2024
1fcb6a9
[flang][OpenMP] Initialize allocatable members of derived types (#120…
luporl Dec 19, 2024
4797437
[clang][NFC] Increase NumStmtBits by 1 as we are approaching the limi…
ziqingluo-90 Dec 19, 2024
6e7312b
[RISCV] Select and/or/xor with certain constants to Zbb ANDN/ORN/XNOR…
pfusik Dec 19, 2024
7009b06
[flang][cuda] Allow STOP in device context (#120625)
clementval Dec 19, 2024
cb8a90b
[ubsan] Remove -ubsan-unique-traps (replace with -fno-sanitize-merge)…
thurstond Dec 19, 2024
8dfae0c
Revert "[libcxx] Use alias for detecting overriden function (#114961)"
nico Dec 19, 2024
5b5b241
[TableGen] Avoid repeated hash lookups (NFC) (#120619)
kazutakahirata Dec 19, 2024
34e0f9c
[libc++] Remove the need for `uselocale()` (#120158)
ldionne Dec 19, 2024
c2830b2
[AMDGPU][True16][MC] added fake16 for gfx12 alias MC test (#120624)
broxigarchen Dec 19, 2024
0a94ee6
[libc] update host build docs (#120147)
michaelrj-google Dec 19, 2024
f000c05
[VectorCombine] Add test coverage to shuffleToIdentity for fp casts. NFC
davemgreen Dec 19, 2024
4c3e13e
[gn build] Port 34e0f9cd36e9
llvmgnsyncbot Dec 19, 2024
9e322c5
[TySan] Don't report globals with external storage. (#120565)
fhahn Dec 19, 2024
d33a2c5
[BoundsSan] Update BoundsChecking.cpp to use no-merge attribute where…
thurstond Dec 19, 2024
5f096fd
Revert "[LoopVectorizer] Add support for partial reductions (#92418)"
fhahn Dec 19, 2024
0517772
Delete unused PoisonChecking utility pass
preames Dec 19, 2024
6a01ac7
[HLSL] Add concepts for Structured buffers (#119643)
bob80905 Dec 19, 2024
af5a656
[IR] Remove unused method InstIterator::atEnd (#120611)
jayfoad Dec 19, 2024
6f983f8
[compiler-rt] Set the default C++ library to libc++ on OpenBSD (#107694)
brad0 Dec 19, 2024
bcd32ef
[Driver][FreeBSD][NFC] Remove some code duplication (#120652)
brad0 Dec 20, 2024
3d29751
[BoundsChecking] Add support for runtime handlers (#120513)
vitalybuka Dec 20, 2024
b135922
[Doc] Add a section on CI to the GitHub documentation (#85376)
joker-eph Dec 20, 2024
4420167
AMDGPU: Fix mishandling of search for constantexpr addrspacecasts (#1…
arsenm Dec 20, 2024
c2aee50
[ubsan] Runtime and driver support for local-bounds (#120515)
vitalybuka Dec 20, 2024
52574b5
[ELF] Add support for PT_OPENBSD_NOBTCFI (#120005)
brad0 Dec 20, 2024
cc7d084
[clang][Sema] Enable the kprintf format attribute (#100669)
brad0 Dec 20, 2024
eb1b9fc
[lldb][LoongArch] Fix the incorrect floating-point register dwarf number
wangleiat Dec 20, 2024
ee7ca0d
Make CombinerHelper methods const (#119529)
paulhuggett Dec 20, 2024
d3c4637
[WebKit checkers] Recognize adoptRef as a safe function (#120629)
rniwa Dec 20, 2024
4307198
Move DroppedVariableStats to CodeGen lib (#120650)
rastogishubham Dec 20, 2024
a71f9e6
[webkit.UncountedLambdaCapturesChecker] Detect protectedThis pattern.…
rniwa Dec 20, 2024
7666c40
[gn build] Port 4307198d5148
llvmgnsyncbot Dec 20, 2024
4e3c0bb
llvm-cov: Introduce `-show-created-time` to suppress timestamps (#120…
chapuni Dec 20, 2024
e93d226
[flang][cuda] Update CompilerGeneratedNames pass to work on gpu modul…
clementval Dec 20, 2024
f421a7a
[ARM] Use `RegisterClassInfo::getRegPressureSetLimit` (#120377)
wangpc-pp Dec 20, 2024
91e392b
[ubsan] Fix test on Windows
vitalybuka Dec 20, 2024
08db696
[AMDGPU][True16][MC] V_MED3_I/U16_fake16 CodeGen pattern (#120600)
broxigarchen Dec 20, 2024
e7e622f
Revert "Move DroppedVariableStats to CodeGen lib (#120650)"
rastogishubham Dec 20, 2024
16e4223
[gn build] Port e7e622f15312
llvmgnsyncbot Dec 20, 2024
ebb5f1a
[AArch64][GlobalISel] Fix crash when selecting an anyextending FP load.
aemerson Dec 20, 2024
a73ca29
[compiler-rt] Add weak defs for .*contiguous_container.* functions (#…
chestnykh Dec 20, 2024
c760671
[AMDGPU] Update base addr of dyn alloca considering GrowingUp stack (…
easyonaadit Dec 20, 2024
ecd59f8
[SelectionDAG] Use SmallVectorImpl& to avoid repeating SmallVector si…
topperc Dec 20, 2024
e303081
[X86] Remove redundant initialize*Pass in ctor
MaskRay Dec 20, 2024
59c7d6f
[Xtensa,test] Remove failing RUN line from #119639
MaskRay Dec 20, 2024
93743ee
Revert "[Clang] Re-write codegen for atomic_test_and_set and atomic_c…
metaflow Dec 20, 2024
a6d26c5
[clang] Fix dangling false positives for conditional operators. (#120…
hokein Dec 20, 2024
a16cb7e
[LLVM] Update Sparc maintainer (#120430)
nikic Dec 20, 2024
4096dd6
[LLVM] Update LTO maintainer (#120575)
nikic Dec 20, 2024
4111841
[BOLT] Correctly print preferred disassembly for annotated instructio…
kbeyls Dec 20, 2024
4472648
[ARM] Expand bf16 expanding/rounding fp loads/stores
davemgreen Dec 20, 2024
701f240
[mlir] fix crash when scf utils work on llvm.func (#120688)
cxy-1993 Dec 20, 2024
53d080c
[mlir][Arith] Remove `arith-to-llvm` from `func-to-llvm` (#120548)
matthias-springer Dec 20, 2024
d0b7633
[mlir] [doc] fix typos in documentation (#120179)
tim-hoffman Dec 20, 2024
d8a5fae
[MC][Mips] Add MipsWinCOFFObjectWriter/MipsWinCOFFStreamer (#114611)
hpoussin Dec 20, 2024
fe85c71
[bazel] port 53d080c5b5dfbb46eb81d189736864f5b6196492
metaflow Dec 20, 2024
81e63f9
[CostModel][X86] getShuffleCost - use processShuffleMasks to split SK…
RKSimon Dec 20, 2024
e10cb44
Revert "[compiler-rt] Add weak defs for .*contiguous_container.* func…
zmodem Dec 20, 2024
69ebac7
[win/asan] Don't intercept memset etc. in ntdll (#120397)
zmodem Dec 20, 2024
b03a09e
[mlir] Fix integration tests after #120548 (#120706)
matthias-springer Dec 20, 2024
091448e
Revert "[CostModel][X86] getShuffleCost - use processShuffleMasks to …
RKSimon Dec 20, 2024
2405c5f
[llvm-readelf] Update outdated URL (#120498)
wenzhoumei Dec 20, 2024
0b5b09b
[NFC] Move DroppedVariableStats to its own file (#120711)
rastogishubham Dec 20, 2024
2fa2c21
[llvm][docs] MemTagSanitizer is only supported on AArch64 Android (#1…
DavidSpickett Dec 20, 2024
d66f653
[MachinePipeliner] Skip reserved registers when computing register pr…
wangpc-pp Dec 20, 2024
1e18815
[MLIR] fix shape.broadcast canonicalize with all empty shape operands…
YellowHCH Dec 20, 2024
611401c
[CostModel][X86] getShuffleCost - use processShuffleMasks to split SK…
RKSimon Dec 20, 2024
ff93ca7
[VectorCombine] Combine scalar fneg with insert/extract to vector fne…
ParkHanbum Dec 20, 2024
708e143
[gn build] Port 0b5b09b67c57
llvmgnsyncbot Dec 20, 2024
42bc7bf
[gn build] Port d8a5fae6913a
llvmgnsyncbot Dec 20, 2024
919aead
[Flang OpenMP] Add LLVM translation support for UNTIED in Task (#115283)
Thirumalai-Shaktivel Dec 20, 2024
c2bd5c2
[AArch64] Avoid GPR trip when moving truncated i32 vector elements (#…
SpencerAbson Dec 20, 2024
cf0bc8d
[lldb][AIX] Adding AIX version of ptrace64 (#120390)
DhruvSrivastavaX Dec 20, 2024
6fd267d
[lldb][DWARFASTParserClang][NFC] Remove unused parameter to CompleteR…
Michael137 Dec 20, 2024
84f0098
[bazel] port b03a09e74fa38eceddbc314c4f896a935224f453
metaflow Dec 20, 2024
9a1837f
[lldb][AIX] Introducing _ALL_SOURCE macro into driver CMakeLists (#12…
DhruvSrivastavaX Dec 20, 2024
385b144
[lldb][Linux] Moving generic APIs from HostInfoLinux to HostInfoPosix…
DhruvSrivastavaX Dec 20, 2024
8dc23ef
[NFC][AArch64][SVE] Rename variables in partial reduction lowering fu…
JamesChesterman Dec 20, 2024
d7ddc97
[MachinePipeliner] Remove unused private field MF
wangpc-pp Dec 20, 2024
000febd
[lldb][test] Add test-coverage for DW_AT_APPLE_objc_complete_type par…
Michael137 Dec 20, 2024
e4db3f0
[llvm] Bail out when meeting pointer with negative offset in approxim…
serge-sans-paille Dec 20, 2024
451a80c
[docs] Mention ffmpeg and dav1d in llvm-test-suite (#120570)
mstorsjo Dec 20, 2024
cf7b3f8
Fix double-quotes in diagnostic when attempting to access a ext_vecto…
smallp-o-p Dec 20, 2024
eb6c419
[mlir][CF] Split `cf-to-llvm` from `func-to-llvm` (#120580)
matthias-springer Dec 20, 2024
1738b75
[LLVM] Update InstCombine maintainers (#120408)
nikic Dec 20, 2024
e11d49c
[BOLT][AArch64] Adds tls relocations support (#117465)
yavtuk Dec 20, 2024
0dc086a
[mlir] Fix integration tests after #120580 (#120729)
matthias-springer Dec 20, 2024
4eba40c
[ConstraintElim] Remove dead code. NFC. (#118983)
dtcxzyw Dec 20, 2024
a9034d0
[clang-tidy][docs] improve documentation on cppcoreguidelines-narrowi…
JonasToth Dec 20, 2024
c543480
[VectorCombine] foldInsExtVectorToShuffle - add debug message for mat…
RKSimon Dec 20, 2024
5f0db7c
[VectorCombine] Add "VECTORCOMBINE on <FUNCTION_NAME>" title debug me…
RKSimon Dec 20, 2024
42873e0
[bazel] port eb6c4197d5263ed2e086925b2b2f032a19442d2b
metaflow Dec 20, 2024
54309b1
[clang][dataflow] Add matchers for smart pointer accessors to be cach…
jvoung Dec 20, 2024
54665f5
[gn build] Port 54309b1c2f7a
llvmgnsyncbot Dec 20, 2024
fa9cef5
Only guard loop metadata that has non-debug info in it (#118825)
dominik-steenken Dec 20, 2024
9e33387
[clang analyzer]consume `llvm::Error` (#120597)
HerrCai0907 Dec 20, 2024
acfd26a
[SCEV] Fix exit condition for recursive loop guard collection (#120442)
juliannagele Dec 20, 2024
2d5dc5c
[clang][dataflow] Fix a missing break from a switch case -Wimplicit-f…
jvoung Dec 20, 2024
b87a5fb
[VectorCombine] Add "VC: Visiting" debug message to help the log show…
RKSimon Dec 20, 2024
70eac25
[VectorCombine] Add fp cast handling for shuffletoidentity (#120641)
davemgreen Dec 20, 2024
5845298
[LoopVectorize] Teach some X86 cost model tests to use new vplan cost…
david-arm Dec 20, 2024
953b07f
[mlir] AMDGPUToROCDL: RawBufferOpLowering fixes (#120642)
Hardcode84 Dec 20, 2024
56ffcd4
[mlir] Fix integration tests after #120580 (part 2) (#120751)
matthias-springer Dec 20, 2024
8177bf5
[Hexagon] Only handle simple types memory accesses (#120654)
iajbar Dec 20, 2024
811f2a6
[Compiler-rt] Add AArch64 routines for __arm_agnostic("sme_za_state")…
sdesmalen-arm Dec 20, 2024
8c00900
[llvm]Add a simple Telemetry framework (#102323)
oontvoo Dec 20, 2024
2e1128d
[AMDGPU] Remove some unnecessary !casts
jayfoad Dec 20, 2024
412e1af
Revert "[AArch64] Lower alias mask to a whilewr" (#120261)
SamTebbs33 Dec 20, 2024
24dc1a1
[AutoBump] Merge with 412e1af1 (Dec 20)
jorickert Mar 17, 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
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/workflows/libcxx-build-and-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
stage1:
if: github.repository_owner == 'llvm'
runs-on: libcxx-self-hosted-linux
container: ghcr.io/llvm/libcxx-linux-builder:0fd6f684b9c84c32d6cbfd9742402e788b2879f1
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
continue-on-error: false
strategy:
fail-fast: false
Expand Down Expand Up @@ -74,7 +74,7 @@ jobs:
stage2:
if: github.repository_owner == 'llvm'
runs-on: libcxx-self-hosted-linux
container: ghcr.io/llvm/libcxx-linux-builder:0fd6f684b9c84c32d6cbfd9742402e788b2879f1
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
needs: [ stage1 ]
continue-on-error: false
strategy:
Expand Down Expand Up @@ -162,7 +162,7 @@ jobs:
- config: 'generic-msan'
machine: libcxx-self-hosted-linux
runs-on: ${{ matrix.machine }}
container: ghcr.io/llvm/libcxx-linux-builder:0fd6f684b9c84c32d6cbfd9742402e788b2879f1
container: ghcr.io/llvm/libcxx-linux-builder:d8a0709b1090350a7fe3604d8ab78c7d62f10698
steps:
- uses: actions/checkout@v4
- name: ${{ matrix.config }}
Expand Down
10 changes: 9 additions & 1 deletion bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1961,7 +1961,15 @@ void BinaryContext::printInstruction(raw_ostream &OS, const MCInst &Instruction,
OS << "\tjit\t" << MIB->getTargetSymbol(Instruction)->getName()
<< " # ID: " << DynamicID;
} else {
InstPrinter->printInst(&Instruction, 0, "", *STI, OS);
// If there are annotations on the instruction, the MCInstPrinter will fail
// to print the preferred alias as it only does so when the number of
// operands is as expected. See
// https://github.com/llvm/llvm-project/blob/782f1a0d895646c364a53f9dcdd6d4ec1f3e5ea0/llvm/lib/MC/MCInstPrinter.cpp#L142
// Therefore, create a temporary copy of the Inst from which the annotations
// are removed, and print that Inst.
MCInst InstNoAnnot = Instruction;
MIB->stripAnnotations(InstNoAnnot);
InstPrinter->printInst(&InstNoAnnot, 0, "", *STI, OS);
}
if (MIB->isCall(Instruction)) {
if (MIB->isTailCall(Instruction))
Expand Down
8 changes: 8 additions & 0 deletions bolt/lib/Core/Relocation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ static bool isSupportedAArch64(uint64_t Type) {
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
Expand Down Expand Up @@ -183,6 +185,8 @@ static size_t getSizeForTypeAArch64(uint64_t Type) {
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
Expand Down Expand Up @@ -651,6 +655,8 @@ static bool isTLSAArch64(uint64_t Type) {
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
case ELF::R_AARCH64_TLSDESC_CALL:
Expand Down Expand Up @@ -716,6 +722,8 @@ static bool isPCRelativeAArch64(uint64_t Type) {
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_HI12:
case ELF::R_AARCH64_TLSLE_ADD_TPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case ELF::R_AARCH64_LD64_GOT_LO12_NC:
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
case ELF::R_AARCH64_TLSDESC_ADD_LO12:
Expand Down
192 changes: 97 additions & 95 deletions bolt/lib/Rewrite/LinuxKernelRewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,30 @@ inline raw_ostream &operator<<(raw_ostream &OS, const ORCState &E) {

namespace {

/// Extension to DataExtractor that supports reading addresses stored in
/// PC-relative format.
class AddressExtractor : public DataExtractor {
uint64_t DataAddress;

public:
AddressExtractor(StringRef Data, uint64_t DataAddress, bool IsLittleEndian,
uint8_t AddressSize)
: DataExtractor(Data, IsLittleEndian, AddressSize),
DataAddress(DataAddress) {}

/// Extract 32-bit PC-relative address/pointer.
uint64_t getPCRelAddress32(Cursor &C) {
const uint64_t Base = DataAddress + C.tell();
return Base + (int32_t)getU32(C);
}

/// Extract 64-bit PC-relative address/pointer.
uint64_t getPCRelAddress64(Cursor &C) {
const uint64_t Base = DataAddress + C.tell();
return Base + (int64_t)getU64(C);
}
};

class LinuxKernelRewriter final : public MetadataRewriter {
/// Information required for updating metadata referencing an instruction.
struct InstructionFixup {
Expand Down Expand Up @@ -423,13 +447,13 @@ Error LinuxKernelRewriter::processSMPLocks() {
return createStringError(errc::executable_format_error,
"bad size of .smp_locks section");

DataExtractor DE = DataExtractor(SMPLocksSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(0);
AddressExtractor AE(SMPLocksSection->getContents(), SectionAddress,
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(0);
while (Cursor && Cursor.tell() < SectionSize) {
const uint64_t Offset = Cursor.tell();
const uint64_t IP = SectionAddress + Offset + (int32_t)DE.getU32(Cursor);
const uint64_t IP = AE.getPCRelAddress32(Cursor);

// Consume the status of the cursor.
if (!Cursor)
Expand Down Expand Up @@ -499,20 +523,17 @@ Error LinuxKernelRewriter::readORCTables() {
return createStringError(errc::executable_format_error,
"ORC entries number mismatch detected");

const uint64_t IPSectionAddress = ORCUnwindIPSection->getAddress();
DataExtractor OrcDE = DataExtractor(ORCUnwindSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor IPDE = DataExtractor(ORCUnwindIPSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor OrcDE(ORCUnwindSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor IPAE(
ORCUnwindIPSection->getContents(), ORCUnwindIPSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor ORCCursor(0);
DataExtractor::Cursor IPCursor(0);
uint64_t PrevIP = 0;
for (uint32_t Index = 0; Index < NumORCEntries; ++Index) {
const uint64_t IP =
IPSectionAddress + IPCursor.tell() + (int32_t)IPDE.getU32(IPCursor);

const uint64_t IP = IPAE.getPCRelAddress32(IPCursor);
// Consume the status of the cursor.
if (!IPCursor)
return createStringError(errc::executable_format_error,
Expand Down Expand Up @@ -856,15 +877,13 @@ Error LinuxKernelRewriter::validateORCTables() {
if (!ORCUnwindIPSection)
return Error::success();

const uint64_t IPSectionAddress = ORCUnwindIPSection->getAddress();
DataExtractor IPDE = DataExtractor(ORCUnwindIPSection->getOutputContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor IPCursor(0);
AddressExtractor IPAE(
ORCUnwindIPSection->getOutputContents(), ORCUnwindIPSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor IPCursor(0);
uint64_t PrevIP = 0;
for (uint32_t Index = 0; Index < NumORCEntries; ++Index) {
const uint64_t IP =
IPSectionAddress + IPCursor.tell() + (int32_t)IPDE.getU32(IPCursor);
const uint64_t IP = IPAE.getPCRelAddress32(IPCursor);
if (!IPCursor)
return createStringError(errc::executable_format_error,
"out of bounds while reading ORC IP table: %s",
Expand Down Expand Up @@ -916,16 +935,14 @@ Error LinuxKernelRewriter::readStaticCalls() {
"static call table size error");

const uint64_t SectionAddress = StaticCallSection->getAddress();
DataExtractor DE(StaticCallSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(StaticCallTableAddress - SectionAddress);
AddressExtractor AE(StaticCallSection->getContents(), SectionAddress,
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(StaticCallTableAddress - SectionAddress);
uint32_t EntryID = 0;
while (Cursor && Cursor.tell() < Stop->getAddress() - SectionAddress) {
const uint64_t CallAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t KeyAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t CallAddress = AE.getPCRelAddress32(Cursor);
const uint64_t KeyAddress = AE.getPCRelAddress32(Cursor);

// Consume the status of the cursor.
if (!Cursor)
Expand Down Expand Up @@ -1027,18 +1044,15 @@ Error LinuxKernelRewriter::readExceptionTable() {
return createStringError(errc::executable_format_error,
"exception table size error");

const uint64_t SectionAddress = ExceptionsSection->getAddress();
DataExtractor DE(ExceptionsSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(0);
AddressExtractor AE(
ExceptionsSection->getContents(), ExceptionsSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(0);
uint32_t EntryID = 0;
while (Cursor && Cursor.tell() < ExceptionsSection->getSize()) {
const uint64_t InstAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t FixupAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t Data = DE.getU32(Cursor);
const uint64_t InstAddress = AE.getPCRelAddress32(Cursor);
const uint64_t FixupAddress = AE.getPCRelAddress32(Cursor);
const uint64_t Data = AE.getU32(Cursor);

// Consume the status of the cursor.
if (!Cursor)
Expand Down Expand Up @@ -1134,9 +1148,9 @@ Error LinuxKernelRewriter::readParaInstructions() {
if (!ParavirtualPatchSection)
return Error::success();

DataExtractor DE = DataExtractor(ParavirtualPatchSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor DE(ParavirtualPatchSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
uint32_t EntryID = 0;
DataExtractor::Cursor Cursor(0);
while (Cursor && !DE.eof(Cursor)) {
Expand Down Expand Up @@ -1235,15 +1249,14 @@ Error LinuxKernelRewriter::readBugTable() {
return createStringError(errc::executable_format_error,
"bug table size error");

const uint64_t SectionAddress = BugTableSection->getAddress();
DataExtractor DE(BugTableSection->getContents(), BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(0);
AddressExtractor AE(
BugTableSection->getContents(), BugTableSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(0);
uint32_t EntryID = 0;
while (Cursor && Cursor.tell() < BugTableSection->getSize()) {
const uint64_t Pos = Cursor.tell();
const uint64_t InstAddress =
SectionAddress + Pos + (int32_t)DE.getU32(Cursor);
const uint64_t InstAddress = AE.getPCRelAddress32(Cursor);
Cursor.seek(Pos + BUG_TABLE_ENTRY_SIZE);

if (!Cursor)
Expand Down Expand Up @@ -1402,23 +1415,20 @@ Error LinuxKernelRewriter::readAltInstructions() {
Error LinuxKernelRewriter::tryReadAltInstructions(uint32_t AltInstFeatureSize,
bool AltInstHasPadLen,
bool ParseOnly) {
const uint64_t Address = AltInstrSection->getAddress();
DataExtractor DE = DataExtractor(AltInstrSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor AE(
AltInstrSection->getContents(), AltInstrSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(0);
uint64_t EntryID = 0;
DataExtractor::Cursor Cursor(0);
while (Cursor && !DE.eof(Cursor)) {
const uint64_t OrgInstAddress =
Address + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t AltInstAddress =
Address + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t Feature = DE.getUnsigned(Cursor, AltInstFeatureSize);
const uint8_t OrgSize = DE.getU8(Cursor);
const uint8_t AltSize = DE.getU8(Cursor);
while (Cursor && !AE.eof(Cursor)) {
const uint64_t OrgInstAddress = AE.getPCRelAddress32(Cursor);
const uint64_t AltInstAddress = AE.getPCRelAddress32(Cursor);
const uint64_t Feature = AE.getUnsigned(Cursor, AltInstFeatureSize);
const uint8_t OrgSize = AE.getU8(Cursor);
const uint8_t AltSize = AE.getU8(Cursor);

// Older kernels may have the padlen field.
const uint8_t PadLen = AltInstHasPadLen ? DE.getU8(Cursor) : 0;
const uint8_t PadLen = AltInstHasPadLen ? AE.getU8(Cursor) : 0;

if (!Cursor)
return createStringError(
Expand Down Expand Up @@ -1537,19 +1547,17 @@ Error LinuxKernelRewriter::readPCIFixupTable() {
return createStringError(errc::executable_format_error,
"PCI fixup table size error");

const uint64_t Address = PCIFixupSection->getAddress();
DataExtractor DE = DataExtractor(PCIFixupSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor AE(
PCIFixupSection->getContents(), PCIFixupSection->getAddress(),
BC.AsmInfo->isLittleEndian(), BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(0);
uint64_t EntryID = 0;
DataExtractor::Cursor Cursor(0);
while (Cursor && !DE.eof(Cursor)) {
const uint16_t Vendor = DE.getU16(Cursor);
const uint16_t Device = DE.getU16(Cursor);
const uint32_t Class = DE.getU32(Cursor);
const uint32_t ClassShift = DE.getU32(Cursor);
const uint64_t HookAddress =
Address + Cursor.tell() + (int32_t)DE.getU32(Cursor);
while (Cursor && !AE.eof(Cursor)) {
const uint16_t Vendor = AE.getU16(Cursor);
const uint16_t Device = AE.getU16(Cursor);
const uint32_t Class = AE.getU32(Cursor);
const uint32_t ClassShift = AE.getU32(Cursor);
const uint64_t HookAddress = AE.getPCRelAddress32(Cursor);

if (!Cursor)
return createStringError(errc::executable_format_error,
Expand Down Expand Up @@ -1654,18 +1662,15 @@ Error LinuxKernelRewriter::readStaticKeysJumpTable() {
"static keys jump table size error");

const uint64_t SectionAddress = StaticKeysJumpSection->getAddress();
DataExtractor DE(StaticKeysJumpSection->getContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(StaticKeysJumpTableAddress - SectionAddress);
AddressExtractor AE(StaticKeysJumpSection->getContents(), SectionAddress,
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(StaticKeysJumpTableAddress - SectionAddress);
uint32_t EntryID = 0;
while (Cursor && Cursor.tell() < Stop->getAddress() - SectionAddress) {
const uint64_t JumpAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t TargetAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t KeyAddress =
SectionAddress + Cursor.tell() + (int64_t)DE.getU64(Cursor);
const uint64_t JumpAddress = AE.getPCRelAddress32(Cursor);
const uint64_t TargetAddress = AE.getPCRelAddress32(Cursor);
const uint64_t KeyAddress = AE.getPCRelAddress64(Cursor);

// Consume the status of the cursor.
if (!Cursor)
Expand Down Expand Up @@ -1859,21 +1864,18 @@ Error LinuxKernelRewriter::updateStaticKeysJumpTablePostEmit() {
return Error::success();

const uint64_t SectionAddress = StaticKeysJumpSection->getAddress();
DataExtractor DE(StaticKeysJumpSection->getOutputContents(),
BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(StaticKeysJumpTableAddress - SectionAddress);
AddressExtractor AE(StaticKeysJumpSection->getOutputContents(),
SectionAddress, BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
AddressExtractor::Cursor Cursor(StaticKeysJumpTableAddress - SectionAddress);
const BinaryData *Stop = BC.getBinaryDataByName("__stop___jump_table");
uint32_t EntryID = 0;
uint64_t NumShort = 0;
uint64_t NumLong = 0;
while (Cursor && Cursor.tell() < Stop->getAddress() - SectionAddress) {
const uint64_t JumpAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t TargetAddress =
SectionAddress + Cursor.tell() + (int32_t)DE.getU32(Cursor);
const uint64_t KeyAddress =
SectionAddress + Cursor.tell() + (int64_t)DE.getU64(Cursor);
const uint64_t JumpAddress = AE.getPCRelAddress32(Cursor);
const uint64_t TargetAddress = AE.getPCRelAddress32(Cursor);
const uint64_t KeyAddress = AE.getPCRelAddress64(Cursor);

// Consume the status of the cursor.
if (!Cursor)
Expand Down
2 changes: 2 additions & 0 deletions bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1449,6 +1449,8 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
case ELF::R_AARCH64_TLSDESC_LD64_LO12:
case ELF::R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
case ELF::R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0:
case ELF::R_AARCH64_TLSLE_MOVW_TPREL_G0_NC:
case ELF::R_AARCH64_MOVW_UABS_G0:
case ELF::R_AARCH64_MOVW_UABS_G0_NC:
case ELF::R_AARCH64_MOVW_UABS_G1:
Expand Down
Loading