Skip to content

LLVM and SPIRV-LLVM-Translator pulldown (WW29) #6420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1,459 commits into from
Jul 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1459 commits
Select commit Hold shift + click to select a range
d34ce04
[CMake][Fuchsia] Install static libuwind
petrhosek Jul 6, 2022
ff87ee4
[Metadata] Utilize the resizing capability of MDNodes in Moduleflag p…
May 25, 2022
23c2bed
[flang] Establish a single source of target information for semantics
klausler Jul 1, 2022
fb06dd3
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
cor3ntin Jul 6, 2022
8a66867
[gn build] Port f8cbe3cdf024
llvmgnsyncbot Jul 6, 2022
ea2182f
[BOLT] Add runtime functions required by freestanding environment
maksfb Jul 6, 2022
e0b5208
[NFC] [DirectX] Prefix for intrinsics should be dx
llvm-beanz Jul 6, 2022
548f3f9
Update the status & add tests for some more C99 DRs
AaronBallman Jul 6, 2022
484b1aa
[llvm] [Debuginfod] Add cpp-httplib optional dependency.
noajshu Jul 6, 2022
96515df
[PowerPC] Fix the check for scalar MASS conversion
msdataei Jul 6, 2022
8cb5c82
[libc++] Improves pragma system_header test.
mordante Jul 3, 2022
8366e21
[llvm] [Debuginfod] Add HTTP Server to Debuginfod library.
noajshu Jul 6, 2022
4722b5d
[clang] Correct the macOS version that supports aligned allocation
ldionne Jul 5, 2022
4174f0c
[Clang] Add a warning on invalid UTF-8 in comments.
cor3ntin Jun 17, 2022
67d82b5
[gn build] (manually) port e0b520865026
nico Jul 6, 2022
8f83f8f
[gn build] (manually) port 484b1aa611ca
nico Jul 6, 2022
9ee97ce
[libc++] Use ABI tags instead of internal linkage to provide per-TU i…
ldionne Jun 9, 2022
6148c79
[gn build] (manually) port 9ee97ce3b8305c5
nico Jul 6, 2022
d1c33c6
[gn build] Port 8366e21ef176
llvmgnsyncbot Jul 6, 2022
d34315e
Removing this test temporarily beacuse of a failure in x86_64
msdataei Jul 6, 2022
696f536
[AsmPrinter] Fix bit pattern for i1 vectors.
efriedma-quic Jul 6, 2022
babef90
[llvm] [Debuginfod] DebuginfodCollection and DebuginfodServer for tra…
noajshu Jul 6, 2022
fe06b9f
Bringing back the test with the required target related to commit 965…
msdataei Jul 6, 2022
39ed08f
try to fix build after babef908cc1
nico Jul 6, 2022
bf45e27
[Clang] Fix invalid utf-8 detection
cor3ntin Jul 6, 2022
a60360f
[clang][NFC] Re-generate CommandLineReference.rst
ldionne Jul 6, 2022
a638648
[clangd] add inlay hints for std::forward-ed parameter packs
upsj Jul 6, 2022
e9fe20d
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
nico Jul 6, 2022
66ae1d6
[mlir][sparse] fix windows build error
Jul 6, 2022
9ad64cf
[flang] Add semantics test for coshape function
ngeorge1098 Jun 30, 2022
6d8e2f1
[mlir][sparse] implement simple reshaping (expand/collapse)
aartbik Jul 1, 2022
6f4773f
[RISCV] Add codegen coverage for get.active.lane.mask
preames Jul 6, 2022
71c9757
[Bazel] Fixup to llvmorg-15-init-15618-ge0b520865026, s/dxil/dx/
chapuni Jul 6, 2022
6826047
[LV] Remove redundant checks from recurrence test.
fhahn Jul 6, 2022
3703f51
[Debuginfod] Try to fix shared library build after babef908cc1 (D1148…
noajshu Jul 6, 2022
a3ac689
[libc++] Fix a few things in RangesAlgorithms.csv
philnik777 Jul 6, 2022
aeaca85
[LoongArch] Add codegen support for handling floating point immediates
gonglingqin Jul 6, 2022
0508fd5
[flang][runtime] Make ENDFILE work after non-advancing READ
klausler Jun 29, 2022
715283a
[flang] Cope with overflow in real MOD/MODULO
klausler Jul 1, 2022
061df07
[flang][runtime] Fix directed UP/DOWN rounding edge case for Fw.d output
klausler Jul 1, 2022
89a99ec
[GVN] Bug fix to reportMayClobberedLoad remark
virnarula Jul 7, 2022
2100725
[AArch64][GlobalISel] update the test case with update_mir_test_check…
LuoYuanke Jul 7, 2022
c0db2b7
[mlir][tblgen] Reverting fatality of assemblyFormat with skipDefaultB…
wrengr Jul 6, 2022
6052025
[flang] Add IsElementalProcedure() predicate
klausler Jun 30, 2022
121798f
[sanitizer] Fix dn_expand test
vitalybuka Jul 7, 2022
ac77649
[flang] Avoid spurious warnings in pedantic mode from FORMAT items
klausler Jul 1, 2022
7c708ad
[flang][runtime] Trim FORMATs echoed to error messages
klausler Jul 1, 2022
7c23138
[libc][NFC] Make explicit casts
abrachet Jul 7, 2022
362240e
[mlir][Math] Support fold PowFOp with constant dense.
Jul 5, 2022
c45ec53
[SystemZ] [z/OS] Use assignCalleeSavedSpillSlots() to mark handle spe…
Everybody0523 Jul 7, 2022
7137ebc
[Debug] [Coroutine] Adjust the scope and name for coroutine frame
ChuanqiXu9 May 20, 2022
e3b4452
[Debug] [Coroutines] Get rid of DW_ATE_address
ChuanqiXu9 Jun 10, 2022
17d48c3
[VPlan] Move remove dead recipes before merging regions.
fhahn Jul 7, 2022
b45829d
[AArch64][GlobalISel] update the gisel test case
LuoYuanke Jul 7, 2022
819a7f9
[Debuginfod] Try to fix clang-ppc64le-rhel build
noajshu Jul 7, 2022
9a04710
[NFC][sanitizer] Format dn_expand interceptor
vitalybuka Jul 7, 2022
9cb00e7
[AArch64] Clean up vselect-ext.ll test, add tests with ne/ep preds.
fhahn Jul 7, 2022
0826a56
[NFC] make ASTContext:isSame* methods const
ChuanqiXu9 Jul 7, 2022
152d922
[libc++][format] Improve floating-point formatters.
mordante Dec 28, 2021
207e7e4
[libc++[format][NFC] Removes dead code.
mordante Dec 28, 2021
011d2bf
[clang-tidy] Fix confusable identifier interaction with unavailable c…
Jul 6, 2022
66e15d4
[NFC] [Coroutines] Update the comments for lowering coro.save
ChuanqiXu9 Jul 7, 2022
40a4078
[BasicBlockUtils] Allow splitting predecessors with callbr terminators
nikic Jul 6, 2022
f066a0c
[llvm][Debuginfod][Bazel] Match dependencies in CMakeLists.txt.
akuegel Jul 7, 2022
b6eeef0
[LSR] Regenerate test checks (NFC)
nikic Jul 7, 2022
15c3ba8
[AArc64] Legalisation of compares and truncates of nxv1i1 types.
sdesmalen-arm Jul 6, 2022
6106a76
[AArch64][SME] Update load/store intrinsics to take predicate corresp…
sdesmalen-arm Jul 6, 2022
a28ce1a
[mlir][vector][bufferize] Fix transfer_write dropping mask operand
matthias-springer Jul 7, 2022
14c30c7
[clang-format] Avoid crash in LevelIndentTracker.
mkurdej Jul 4, 2022
4a579ab
[GlobalsModRef] Don't override getModRefBehavior() for CallBase
nikic Jul 7, 2022
f45a3f7
[VectorCombine] NFC: rename test extract-cmp-binop.ll to extract-scal…
sdesmalen-arm Jul 7, 2022
519d787
[VectorCombine] Avoid creating shuffle for extract-extract pattern on…
sdesmalen-arm Jul 7, 2022
60d6be5
[LegalizeTypes] Replace vecreduce_xor/or/and with vecreduce_add/umax/…
brads55 Jun 29, 2022
9f186bb
[mlir][ods] Make Type- and AttrInterfaces also `Type`s and `Attr`s
zero9178 Jul 6, 2022
1a92dbc
[mlir][ods] Replace redundant `Type` instances for interfaces
zero9178 Jul 6, 2022
2db2a4e
[doc][ReleaseNotes] Document AArch64 SVE ABI fix from D127209
peterwaller-arm Jul 5, 2022
1d9086b
Fix use of uninitialized member in constructor
svenvh Jul 7, 2022
ff6e550
[mlir] Structured transforms: introduce op splitting
ftynse Jul 7, 2022
8e03bfc
[mlir] Transform dialect: introduce merge_handles op
ftynse Jul 7, 2022
bd301a4
[BOLT] Fix concurrent hash table modification in the instrumentation …
michoecho Jul 7, 2022
8d9dc83
X86: add newline to end of FMA instruction comments.
TNorthover Jul 7, 2022
606f7c8
[mlir][bufferization][NFC] Move more unknown type conversion logic in…
matthias-springer Jul 7, 2022
fe62019
lld: fix test after x86 instruction comments now end in newline
TNorthover Jul 7, 2022
0f4339a
lld test fix: don't check the precise hex emitted as a comment.
TNorthover Jul 7, 2022
fdf7e43
llvm-c: Add LLVMDeleteInstruction to fix a test issue
nhaehnle Jul 4, 2022
64a78c8
Remove unnecessary includes of ManagedStatic.h
nhaehnle Jul 5, 2022
82ba3f4
Recommit "[lldb/test] Don't use preexec_fn for launching inferiors"
labath Jul 1, 2022
cd3aa33
[pseudo] NFC, fix the header guard for Language.h
hokein Jul 7, 2022
17c790c
[ORC][MIPS} Correct template parameter for stubAndPointerRangesOk fun…
XiaodongLoong Jul 7, 2022
11a0969
[lldb] Fixup TestLoadAfterAttach for 82ba3f4
labath Jul 7, 2022
1ca8a97
[lldb][Windows] Fix memory region base addresses when a range is split
DavidSpickett Jul 7, 2022
479c4f6
[MLIR][Presburger] Refactor division representation to DivisionRepr
Groverkss Jul 7, 2022
26f3693
[IR][OpaquePointers] Properly print cmpxchg with pointer operands.
dantrushin Jul 7, 2022
8262ff4
[lldb/test] Add a couple of libc++ std::string layouts
labath Jul 7, 2022
7d1a295
[ms] [llvm-ml] Add support for anonymous labels (`@@`, `@B`, `@F`)
ericastor Jul 6, 2022
5230710
[mlir][Transform] Make applyToOne return a DiagnosedSilenceableFailure
nicolasvasilache Jul 7, 2022
86e4723
[lldb] [test] Improve stability of llgs vCont-threads tests
mgorny Jul 1, 2022
2d01a85
[Driver] Improve linking options for target AVR
KOLANICH Jul 7, 2022
cab44c5
[mlir][AMDGPU] Add --chipset option to AMDGPUToROCDL
krzysz00 Jul 6, 2022
fad93cd
Revert "[lldb] [test] Improve stability of llgs vCont-threads tests"
mgorny Jul 7, 2022
a442c62
[libc] Make div test names unique
abrachet Jul 7, 2022
438ffdb
[ARM] Switch the costs of mve1beat and mve4beat
davemgreen Jul 7, 2022
fa2a7a2
[SPIR-V] Introduce SPIR-V global entities tracking and deduplication …
zuban32 Jun 18, 2022
b4466bc
[Test] Add some tests showing missing opportunities in IndVars
xortator Jul 7, 2022
3f78683
[libc++] Implements 128-bit support in to_chars.
mordante Jun 30, 2022
d955185
[lldb/test] Use the shim executable for TestGdbRemoteAttach*Or*Wait a…
labath Jul 7, 2022
0857a02
[libc++][format] Implements 128-bit support.
mordante Jul 1, 2022
f3d43ec
[lldb][Windows] Fixup overlapping memory regions tests
DavidSpickett Jul 7, 2022
bc19b7c
[LV] Remove collectTriviallyDeadInstructions, already handled by VP DCE.
fhahn Jul 7, 2022
12f9c7b
[LV] Update RISCV test missed by bc19b7c3cc16.
fhahn Jul 7, 2022
61d417c
Revert "[libc++] Use ABI tags instead of internal linkage to provide …
JDevlieghere Jul 7, 2022
eb64dbd
[clangd] Fix flaky throttler test
sam-mccall Jul 7, 2022
636bc54
Revert "[gn build] (manually) port 9ee97ce3b8305c5"
nico Jul 7, 2022
fa3783c
[RISCV] Test coverage for missing commute of vsadd(u)
preames Jul 7, 2022
23f5613
[IndVars] Add tests for more different float->int conversions.
fhahn Jul 7, 2022
ed801ad
[Clang] Use metadata to make identifying embedded objects easier
jhuber6 Jul 2, 2022
1d2ce4d
[Object] Add ELF section type for offloading objects
jhuber6 Jul 3, 2022
82a0adf
[llvm-objdump] Update offload dumping to use SHT_LLVM_OFFLOADING
jhuber6 Jul 3, 2022
41fba3c
[Metadata] Add 'exclude' metadata to add the exclude flags on globals
jhuber6 Jul 5, 2022
ba4435e
[msan] Fix dn_comp interceptor after D126851
vitalybuka Jul 7, 2022
91fe9e6
[TableGen] Move printing to stream directly to MachineValueTypeSet
Jul 6, 2022
53804e4
[flang][NFC] Make LEN parameters homogenous
clementval Jul 7, 2022
6c3990a
[OpenMP][NFC] Claim order clause modifiers (reproducible and unconstr…
chichunchen Jul 7, 2022
bfa2c42
[VE] Change displacement type in MEM..i from i32 to i64
Jul 7, 2022
6817031
[AMDGPU] Disable FillMFMAShadowMutation by default
kerbowa Jul 6, 2022
8cadfdf
[TableGen] Fix CodeGenRegisterClass::hasType for simple-type arguments
Jul 6, 2022
42e1035
[LinkerWrapper] Identify offloading sections using ELF type
jhuber6 Jul 7, 2022
b242e85
[AArch64][NFC] Prepare test cases (for D128302) to show more accurate…
mingmingl-llvm Jun 30, 2022
8aa5965
[libc++][doc] Removes a colon in a title.
mordante Jul 7, 2022
6656029
[libc][nfc] update get_explicit_mantissa
michaelrj-google Jul 6, 2022
ef7aed3
[InstCombine] Do not fold 'and (sext (ashr X, Shift)), C' if Shift < 0
BertalanD Jul 7, 2022
6611d58
[ELF] Relax R_RISCV_ALIGN
MaskRay Jul 7, 2022
9432fbf
[mlir] An implementation of sparse data-flow analysis
Mogball Jun 23, 2022
b15127d
[clangd] Disable flaky test
sam-mccall Jul 7, 2022
75e551e
[ELF] Relax R_RISCV_CALL and R_RISCV_CALL_PLT
MaskRay Jul 7, 2022
ec48a0d
[lldb] Improve the error message in run_to_breakpoint_do_run
JDevlieghere Jul 7, 2022
67a84ec
[clang] Cleanup ASTContext before output files in crash recovery for …
benlangmuir Jul 7, 2022
227dffd
[LLDB][NFC] Decouple dwarf location table from DWARFExpression.
ZequanWu May 13, 2022
85236e6
[NFC][sanitizer] Minor change: eliminate loop
theidexisted Jul 7, 2022
ff8c0e6
[scudo] Pass MapPlatformData in more calls
ddcc Jul 6, 2022
472aa7e
[docs] Move code contribution from GettingStarted.rst to Contributing…
MaskRay Jul 7, 2022
36f0190
[llvm] [Debuginfod] LLVM debuginfod server.
noajshu Jul 7, 2022
209bebc
Try to fix shared lib buildbot failures after 36f01909a0e2 (D114846)
noajshu Jul 7, 2022
19e2188
[clang][dataflow] Return a solution from the solver when `Constraints…
weiyi-t Jul 7, 2022
f67fc3a
[sanitizer] Extract check_mem_is_good into header
vitalybuka Jul 7, 2022
58b9666
[LSR] Fix bug - check if loop has preheader before calling isInductio…
syzaara Jul 7, 2022
d3712b0
[llvm-objdump] Change some nonnull pointers to references. NFC
MaskRay Jul 7, 2022
b9e642a
[mlir][spirv] Add path for math.round to spirv for OCL and GLSL
rsuderman Jul 7, 2022
9f9e9d9
[flang] SET_EXPONENT(-0.0) should return -0.0
psteinfeld Jul 7, 2022
534a2bf
[TableGen] Rewrite type set intersection in type inference
Jul 6, 2022
65cac0e
Use StringRef to avoid unnecessary copies into std::strings
dwblaikie Jul 7, 2022
63fac42
Revert "[clang][dataflow] Return a solution from the solver when `Con…
gribozavr Jul 7, 2022
5ade38c
[lldb] Add comments to describe m_memory_addr and IsInMemory
augusto2112 Jul 7, 2022
5f3818c
[scudo] Add [[no_unique_address]] attribute to new MapPlatformData va…
ddcc Jul 7, 2022
856ebe9
Retrieve as StringRef since that's how it'll be used
dwblaikie Jul 7, 2022
81e6400
[clang][dataflow] Return a solution from the solver when `Constraints…
weiyi-t Jul 7, 2022
6edbde1
Simplify some AsCString usage that was also explicitly handling default
dwblaikie Jul 7, 2022
439783d
[RISCV] Adjust fixed vector coverage for get.active.lane.mask
preames Jul 7, 2022
5b32e47
[libcxx] [ci] Don't disable libc++experimental in mingw builds
mstorsjo Jul 7, 2022
0c44277
[mlir-vscode] Explicitly set the return type for didOpen
River707 Jul 6, 2022
7e08885
[mlir-vscode] Bump the language client version
River707 Jul 6, 2022
ed2fb17
[mlir:LSP] Add support for MLIR code completions
River707 Jul 6, 2022
b92c334
Remove dead code: TypeMap::RemoveMismatchedTypes(TypeClass type_class)
dwblaikie Jun 28, 2022
a9c875b
[NFC] [DirectX] Cleanup test for comput_ids.
python3kgae Jul 7, 2022
4098e20
[libc++] Add test for algorithm result type alias declarations
philnik777 Jul 6, 2022
bbf2725
[AArch64] Add vector select tests with odd element types.
fhahn Jul 7, 2022
e3611f8
[flang] Fix typo in runtime message
psteinfeld Jul 7, 2022
516915b
[InstCombine] Fold memchr and strchr equality with first argument
Jun 30, 2022
db59054
[mlir][AMDGPU] Use the correct values for OOB_SELECT on gfx10
krzysz00 Jul 6, 2022
5812f9f
[gn build] (manually) port 36f01909a0e2 (llvm-debuginfod)
nico Jul 7, 2022
8e21802
[clang] [MinGW] Fix paths on Gentoo
maharmstone Jul 6, 2022
c211041
[hwasan][fuchsia] Fix features bitmask checking
PiJoules Jul 7, 2022
0f58982
[hwasan] Refactor frame record info into function
PiJoules Jul 7, 2022
d1b7d57
[sanitizer] Deduplicate dn_expand test
vitalybuka Jul 7, 2022
c771eaf
[OpenMP] Ensure to not use SPMD mode in the absence of parallel regions
jdoerfert Jun 21, 2022
efe8c58
[Attributor][NFC] Improve heap2stack result readability and code style
jdoerfert Jul 7, 2022
cb26b01
[Attributor] Make heap2stack record alloca placement
jdoerfert Jul 7, 2022
d81edc7
[vscode-mlir] Bump to version 0.0.10
River707 Jul 7, 2022
b299814
[gn build/mac] Use -mmacos-version-min instead of -mmacosx-version-min
nico Jul 7, 2022
562c346
[LLDB] Fix aggregate-indirect-arg.cpp failure introduced by 227dffd0b…
ZequanWu Jul 7, 2022
d80c271
[mlir] An implementation of dense data-flow analysis
Mogball Jun 23, 2022
c84d29a
[clang-format][NFC] Clean up IndentForLevel in LevelIndentTracker
owenca Jul 5, 2022
bf1758c
Revert "[RISCV] Optimize 2x SELECT for floating-point types"
dcaballe Jul 7, 2022
a81cc1f
[libcxx][ranges] Create a test tool `ProxyIterator` that customises `…
huixie90 Jul 5, 2022
e4c5bca
Revert "[LLDB][NFC] Decouple dwarf location table from DWARFExpression."
JDevlieghere Jul 7, 2022
0a9667b
[Sanitizer][Darwin] Cleanup MaybeReexec() function and usage
Jul 1, 2022
afdedd4
[AArch64] Try to re-use extended operand for SETCC with vector ops.
fhahn Jul 7, 2022
d926b33
[mlir] add complex type to getZeroAttr
aartbik Jul 7, 2022
72d9390
Add a little extra test coverage for simple template names
dwblaikie Jul 8, 2022
7789c9a
Revert "[Sanitizer][Darwin] Cleanup MaybeReexec() function and usage"
Jul 8, 2022
e60cc52
[mlir][bzl] Update for 1a92dbcfa88a857bf735c897125d9a2f9be53e9e and c…
jpienaar Jul 8, 2022
8576867
[llvm-objdump][Docs] Document new flag
jhuber6 Jul 8, 2022
eaba6e0
[mlir][complex] Convert complex.abs to libm
Lewuathe Jul 8, 2022
eee6a12
[clang-repl][NFC] Split weak symbol test to a new test
junaire Jul 7, 2022
33f2a00
[ms] [llvm-ml] Add support for the remaining binary named operators
ericastor Jul 7, 2022
b3b37f3
[RISCV] Precommit test for D128717
Jun 29, 2022
ab9e8a3
Revert "[RISCV] Precommit test for D128717"
Jul 8, 2022
6c535f9
[X86][FP16] Fix crash when lowering copysign for f16
phoebewang Jul 8, 2022
99da311
[RISCV] Recommit test for D128717
Jul 8, 2022
18a1085
[X86] Fix collectLeaves for adds used by phi that forms loop
HaohaiWen Jul 8, 2022
f27deee
[mlir][complex] Lower complex.angle to libm
Lewuathe Jul 8, 2022
354a597
[C++20] [Modules] Don't complain about duplicated default template ar…
ChuanqiXu9 Jul 8, 2022
ab70197
[mlir] Swap integer range inference to the new framework
Mogball Jun 23, 2022
1934b3a
[docs] Add document "Debugging C++ Coroutines"
ChuanqiXu9 Jun 13, 2022
c20a581
[mlir] Delete ForwardDataFlowAnalysis
Mogball Jun 27, 2022
7504c7a
[AMDGPU] Use AddedComplexity for ret and noret atomic ops selection
abinavpp Jun 20, 2022
c42fe5b
[GlobalISel][SelectionDAG] Implement the HasNoUse builtin predicate
abinavpp May 8, 2022
17a81ec
[AMDGPU] Use the HasNoUse predicate for no-ret atomic op selection
abinavpp May 8, 2022
f17639e
[Attributor] Replace AAValueSimplify with AAPotentialValues
jdoerfert Jun 21, 2022
f6e0c05
Revert "[Attributor] Replace AAValueSimplify with AAPotentialValues"
jdoerfert Jul 8, 2022
9cfb28d
[RISCV] Change VECTOR_SPLICE mask operation from expand to promote
Jun 29, 2022
0266773
[SLP] Add missing space to optimization remark.
topperc Jul 8, 2022
8db8754
[NFC] Move isSameDefaultTemplateArgument into ASTContext
ChuanqiXu9 Jul 8, 2022
0d7de7a
[libcxx] Make LIBCXX_HERMETIC_STATIC_LIBRARY apply to libc++experimen…
mstorsjo Jul 7, 2022
9b37d48
[UpdateTestChecks] Remove outdated help text
nikic Jul 7, 2022
34a5c2b
[BasicBlockUtils] Allow critical edge splitting with callbr terminators
nikic Jul 7, 2022
116c29a
[CallSiteSplitting] Regenerate test checks (NFC)
nikic Jul 8, 2022
6d036b8
[JumpThreading] Avoid threadThroughTwoBasicBlocks when PredPred BB en…
Ch111p Jul 8, 2022
69c8319
[mlir][Transform] Fix isDefiniteFailure helper
nicolasvasilache Jul 8, 2022
b042d15
[lldb/test] Add Shell/Expr/TestStringLiteralExpr.test
Jul 8, 2022
5cae881
[AMDGPU] Add GFX11 test coverage
jayfoad Jul 6, 2022
2247fdc
[SelectionDAG] computeKnownBits / ComputeNumSignBits for the remainin…
s-barannikov Jul 8, 2022
2483f43
[AArch64][GlobalISel] Fix call lowering for <3 x i32> vector arguments
petar-avramovic Jul 6, 2022
a59c3eb
[AMDGPU] Add GFX11 coverage to shared sdag/gisel tests
jayfoad Jul 8, 2022
7b9a3b9
[RISCV] Precommit testcase to show wrong result of make-compressible …
kito-cheng Jul 8, 2022
716e1b8
[IndVars] Eliminate redundant type cast between integer and float
vfdff Jul 8, 2022
1d27f26
[LoongArch] Add codegen support for multiplication operations
SixWeining Jul 8, 2022
86a2f2e
[Support] Fix Windows dump file hang with multi-threaded crashes
nga888 Jun 30, 2022
03af9ba
[AArch64] Initial sched model for Neoverse N2
c-rhodes Jul 8, 2022
de3b5d7
[AMDGPU] More GFX11 coverage for tests with generated checks
jayfoad Jul 8, 2022
5c45ae4
[RISCV] Fix wrong register rename for store value during make-compres…
kito-cheng Jul 8, 2022
132d711
[lldb/test] Disable TestStringLiteralExpr.test on Windows
Jul 8, 2022
c62dd3f
Merge branch 'sycl-web' into pulldown-ww29
dwoodwor-intel Jul 8, 2022
56d21c0
Update tests for new static_assert message format
dwoodwor-intel Jul 8, 2022
7488a44
Merge commit '132d711554cbb3db0b0efd1e88d2acb9278b6be9' into pulldown…
dwoodwor-intel Jul 8, 2022
46e68c3
Exclude some files from code style checks
svenvh Jun 28, 2022
1374ae8
Restrict access to some SPIRVToOCLBase members
svenvh Jun 27, 2022
efec551
Factor out mutateArgsForImageOperands
svenvh Jun 27, 2022
c1b23a3
Separate image operand and LoD handling
svenvh Jun 27, 2022
899128a
Use SPIR-V subarch version if present in triple
svenvh Jun 24, 2022
0aed535
Scavenge type parameters for use in translating opaque pointers. (#1512)
jcranmer-intel Jul 1, 2022
cceba32
Fix some mangling bugs in the Itanium name mangler.
jcranmer-intel Jul 1, 2022
d79e810
Implement support for @llvm.sadd.sat intrinsic. (#1524)
jcranmer-intel Jul 8, 2022
bf77879
Use mutateArgsForImageOperands for SPIRVImageReadBuiltIn
svenvh Jun 29, 2022
4256e4e
Use Sign/ZeroExtend image operands for read/write_image
svenvh Jun 29, 2022
81e0105
Fix the Clang sphinx bot
AaronBallman Jul 8, 2022
1644539
Merge branch 'sycl' into pulldown-ww29
dwoodwor-intel Jul 11, 2022
7bd097c
Fix static_assert formatting in newly added test
dwoodwor-intel Jul 11, 2022
be9bfe6
Revert "Use Sign/ZeroExtend image operands for read/write_image"
dwoodwor-intel Jul 11, 2022
dcaa649
Merge branch 'sycl' into pulldown-ww29
dwoodwor-intel Jul 11, 2022
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.
2 changes: 1 addition & 1 deletion bolt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ Once you have `perf.fdata` ready, you can use it for optimizations with
BOLT. Assuming your environment is setup to include the right path, execute
`llvm-bolt`:
```
$ llvm-bolt <executable> -o <executable>.bolt -data=perf.fdata -reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions=2 -split-all-cold -split-eh -dyno-stats
$ llvm-bolt <executable> -o <executable>.bolt -data=perf.fdata -reorder-blocks=ext-tsp -reorder-functions=hfsort -split-functions -split-all-cold -split-eh -dyno-stats
```

If you do need an updated debug info, then add `-update-debug-sections` option
Expand Down
2 changes: 1 addition & 1 deletion bolt/docs/OptimizingClang.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Notice that we are passing `clang-7` to `perf2bolt` which is the real binary tha
the generated profile:
```bash
$ llvm-bolt $CPATH/clang-7 -o $CPATH/clang-7.bolt -b clang-7.yaml \
-reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions=3 \
-reorder-blocks=ext-tsp -reorder-functions=hfsort+ -split-functions \
-split-all-cold -dyno-stats -icf=1 -use-gnu-stack
```
The output will look similar to the one below:
Expand Down
6 changes: 2 additions & 4 deletions bolt/include/bolt/Core/BinaryBasicBlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -634,14 +634,12 @@ class BinaryBasicBlock {

/// Test if BB is a predecessor of this block.
bool isPredecessor(const BinaryBasicBlock *BB) const {
auto Itr = std::find(Predecessors.begin(), Predecessors.end(), BB);
return Itr != Predecessors.end();
return llvm::is_contained(Predecessors, BB);
}

/// Test if BB is a successor of this block.
bool isSuccessor(const BinaryBasicBlock *BB) const {
auto Itr = std::find(Successors.begin(), Successors.end(), BB);
return Itr != Successors.end();
return llvm::is_contained(Successors, BB);
}

/// Test if this BB has a valid execution count.
Expand Down
2 changes: 1 addition & 1 deletion bolt/include/bolt/Core/BinaryData.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class BinaryData {
bool nameStartsWith(StringRef Prefix) const;

bool hasSymbol(const MCSymbol *Symbol) const {
return std::find(Symbols.begin(), Symbols.end(), Symbol) != Symbols.end();
return llvm::is_contained(Symbols, Symbol);
}

bool isAbsolute() const;
Expand Down
8 changes: 4 additions & 4 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -716,9 +716,8 @@ class BinaryFunction {
BB->setOffset(Offset);

BasicBlockOffsets.emplace_back(Offset, BB);
assert(std::is_sorted(BasicBlockOffsets.begin(), BasicBlockOffsets.end(),
CompareBasicBlockOffsets()) &&
std::is_sorted(begin(), end()));
assert(llvm::is_sorted(BasicBlockOffsets, CompareBasicBlockOffsets()) &&
llvm::is_sorted(blocks()));

return BB;
}
Expand Down Expand Up @@ -888,8 +887,9 @@ class BinaryFunction {

/// Update layout of basic blocks used for output.
void updateBasicBlockLayout(BasicBlockOrderType &NewLayout) {
BasicBlocksPreviousLayout = BasicBlocksLayout;
assert(NewLayout.size() == BasicBlocks.size() && "Layout size mismatch.");

BasicBlocksPreviousLayout = BasicBlocksLayout;
if (NewLayout != BasicBlocksLayout) {
ModifiedLayout = true;
BasicBlocksLayout.clear();
Expand Down
11 changes: 5 additions & 6 deletions bolt/include/bolt/Core/DynoStats.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,7 @@ DynoStats getDynoStats(const BinaryFunction &BF);

/// Return program-wide dynostats.
template <typename FuncsType>
inline DynoStats getDynoStats(const FuncsType &Funcs) {
bool IsAArch64 = Funcs.begin()->second.getBinaryContext().isAArch64();
inline DynoStats getDynoStats(const FuncsType &Funcs, bool IsAArch64) {
DynoStats dynoStats(IsAArch64);
for (auto &BFI : Funcs) {
auto &BF = BFI.second;
Expand All @@ -160,16 +159,16 @@ inline DynoStats getDynoStats(const FuncsType &Funcs) {
/// Call a function with optional before and after dynostats printing.
template <typename FnType, typename FuncsType>
inline void callWithDynoStats(FnType &&Func, const FuncsType &Funcs,
StringRef Phase, const bool Flag) {
bool IsAArch64 = Funcs.begin()->second.getBinaryContext().isAArch64();
StringRef Phase, const bool Flag,
bool IsAArch64) {
DynoStats DynoStatsBefore(IsAArch64);
if (Flag)
DynoStatsBefore = getDynoStats(Funcs);
DynoStatsBefore = getDynoStats(Funcs, IsAArch64);

Func();

if (Flag) {
const DynoStats DynoStatsAfter = getDynoStats(Funcs);
const DynoStats DynoStatsAfter = getDynoStats(Funcs, IsAArch64);
const bool Changed = (DynoStatsAfter != DynoStatsBefore);
outs() << "BOLT-INFO: program-wide dynostats after running " << Phase
<< (Changed ? "" : " (no change)") << ":\n\n"
Expand Down
3 changes: 2 additions & 1 deletion bolt/include/bolt/Passes/BinaryPasses.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ class DynoStatsPrintPass : public BinaryFunctionPass {
bool shouldPrint(const BinaryFunction &BF) const override { return false; }

void runOnFunctions(BinaryContext &BC) override {
const DynoStats NewDynoStats = getDynoStats(BC.getBinaryFunctions());
const DynoStats NewDynoStats =
getDynoStats(BC.getBinaryFunctions(), BC.isAArch64());
const bool Changed = (NewDynoStats != PrevDynoStats);
outs() << "BOLT-INFO: program-wide dynostats " << Title
<< (Changed ? "" : " (no change)") << ":\n\n"
Expand Down
26 changes: 15 additions & 11 deletions bolt/include/bolt/Passes/SplitFunctions.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,29 @@ namespace bolt {

/// Split function code in multiple parts.
class SplitFunctions : public BinaryFunctionPass {
public:
/// Settings for splitting function bodies into hot/cold partitions.
enum SplittingType : char {
ST_NONE = 0, /// Do not split functions.
ST_LARGE, /// In non-relocation mode, only split functions that
/// are too large to fit into the original space.
ST_ALL, /// Split all functions.
};

private:
/// Split function body into fragments.
void splitFunction(BinaryFunction &Function);
template <typename SplitStrategy>
void splitFunction(BinaryFunction &Function, SplitStrategy Strategy = {});

/// Map basic block labels to their trampoline block labels.
using TrampolineSetType = DenseMap<const MCSymbol *, const MCSymbol *>;

using BasicBlockOrderType = BinaryFunction::BasicBlockOrderType;

/// Create trampoline landing pads for exception handling code to guarantee
/// that every landing pad is placed in the same function fragment as the
/// corresponding thrower block. The trampoline landing pad, when created,
/// will redirect the execution to the real landing pad in a different
/// fragment.
void createEHTrampolines(BinaryFunction &Function) const;
TrampolineSetType createEHTrampolines(BinaryFunction &Function) const;

/// Merge trampolines into \p Layout without trampolines. The merge will place
/// a trampoline immediately before its destination. Used to revert the effect
/// of trampolines after createEHTrampolines().
BasicBlockOrderType
mergeEHTrampolines(BinaryFunction &BF, BasicBlockOrderType &Layout,
const TrampolineSetType &Trampolines) const;

std::atomic<uint64_t> SplitBytesHot{0ull};
std::atomic<uint64_t> SplitBytesCold{0ull};
Expand Down
6 changes: 5 additions & 1 deletion bolt/include/bolt/Rewrite/DWARFRewriter.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ class DWARFRewriter {

/// Stores and serializes information that will be put into the
/// .debug_ranges DWARF section.
std::unique_ptr<DebugRangesSectionWriter> RangesSectionWriter;
std::unique_ptr<DebugRangesSectionWriter> LegacyRangesSectionWriter;

/// Stores and serializes information that will be put into the
/// .debug_rnglists DWARF section.
std::unique_ptr<DebugRangeListsSectionWriter> RangeListsSectionWriter;

/// Stores and serializes information that will be put into the
/// .debug_aranges DWARF section.
Expand Down
2 changes: 1 addition & 1 deletion bolt/lib/Core/BinaryBasicBlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ BinaryBasicBlock::getBranchStats(const BinaryBasicBlock *Succ) const {
}

if (TotalCount > 0) {
auto Itr = std::find(Successors.begin(), Successors.end(), Succ);
auto Itr = llvm::find(Successors, Succ);
assert(Itr != Successors.end());
const BinaryBranchInfo &BI = BranchInfo[Itr - Successors.begin()];
if (BI.Count && BI.Count != COUNT_NO_PROFILE) {
Expand Down
69 changes: 28 additions & 41 deletions bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -718,9 +718,8 @@ void BinaryContext::skipMarkedFragments() {
BF->setSimple(false);
BF->setHasSplitJumpTable(true);

std::for_each(BF->Fragments.begin(), BF->Fragments.end(), addToWorklist);
std::for_each(BF->ParentFragments.begin(), BF->ParentFragments.end(),
addToWorklist);
llvm::for_each(BF->Fragments, addToWorklist);
llvm::for_each(BF->ParentFragments, addToWorklist);
}
if (!FragmentsToSkip.empty())
errs() << "BOLT-WARNING: skipped " << FragmentsToSkip.size() << " function"
Expand Down Expand Up @@ -1059,10 +1058,9 @@ void BinaryContext::generateSymbolHashes() {

// First check if a non-anonymous alias exists and move it to the front.
if (BD.getSymbols().size() > 1) {
auto Itr = std::find_if(BD.getSymbols().begin(), BD.getSymbols().end(),
[&](const MCSymbol *Symbol) {
return !isInternalSymbolName(Symbol->getName());
});
auto Itr = llvm::find_if(BD.getSymbols(), [&](const MCSymbol *Symbol) {
return !isInternalSymbolName(Symbol->getName());
});
if (Itr != BD.getSymbols().end()) {
size_t Idx = std::distance(BD.getSymbols().begin(), Itr);
std::swap(BD.getSymbols()[0], BD.getSymbols()[Idx]);
Expand Down Expand Up @@ -1224,8 +1222,7 @@ void BinaryContext::foldFunction(BinaryFunction &ChildBF,
ChildBF.getSymbols().clear();

// Move other names the child function is known under.
std::move(ChildBF.Aliases.begin(), ChildBF.Aliases.end(),
std::back_inserter(ParentBF.Aliases));
llvm::move(ChildBF.Aliases, std::back_inserter(ParentBF.Aliases));
ChildBF.Aliases.clear();

if (HasRelocations) {
Expand Down Expand Up @@ -1392,32 +1389,29 @@ unsigned BinaryContext::addDebugFilenameToUnit(const uint32_t DestCUID,

std::vector<BinaryFunction *> BinaryContext::getSortedFunctions() {
std::vector<BinaryFunction *> SortedFunctions(BinaryFunctions.size());
std::transform(BinaryFunctions.begin(), BinaryFunctions.end(),
SortedFunctions.begin(),
[](std::pair<const uint64_t, BinaryFunction> &BFI) {
return &BFI.second;
});

std::stable_sort(SortedFunctions.begin(), SortedFunctions.end(),
[](const BinaryFunction *A, const BinaryFunction *B) {
if (A->hasValidIndex() && B->hasValidIndex()) {
return A->getIndex() < B->getIndex();
}
return A->hasValidIndex();
});
llvm::transform(BinaryFunctions, SortedFunctions.begin(),
[](std::pair<const uint64_t, BinaryFunction> &BFI) {
return &BFI.second;
});

llvm::stable_sort(SortedFunctions,
[](const BinaryFunction *A, const BinaryFunction *B) {
if (A->hasValidIndex() && B->hasValidIndex()) {
return A->getIndex() < B->getIndex();
}
return A->hasValidIndex();
});
return SortedFunctions;
}

std::vector<BinaryFunction *> BinaryContext::getAllBinaryFunctions() {
std::vector<BinaryFunction *> AllFunctions;
AllFunctions.reserve(BinaryFunctions.size() + InjectedBinaryFunctions.size());
std::transform(BinaryFunctions.begin(), BinaryFunctions.end(),
std::back_inserter(AllFunctions),
[](std::pair<const uint64_t, BinaryFunction> &BFI) {
return &BFI.second;
});
std::copy(InjectedBinaryFunctions.begin(), InjectedBinaryFunctions.end(),
std::back_inserter(AllFunctions));
llvm::transform(BinaryFunctions, std::back_inserter(AllFunctions),
[](std::pair<const uint64_t, BinaryFunction> &BFI) {
return &BFI.second;
});
llvm::copy(InjectedBinaryFunctions, std::back_inserter(AllFunctions));

return AllFunctions;
}
Expand Down Expand Up @@ -1490,21 +1484,15 @@ void BinaryContext::preprocessDebugInfo() {
ContainsDwarfLegacy |= CU->getVersion() < 5;
}

if (ContainsDwarf5 && ContainsDwarfLegacy)
llvm::errs() << "BOLT-WARNING: BOLT does not support mix mode binary with "
"DWARF5 and DWARF{2,3,4}.\n";

std::sort(AllRanges.begin(), AllRanges.end());
llvm::sort(AllRanges);
for (auto &KV : BinaryFunctions) {
const uint64_t FunctionAddress = KV.first;
BinaryFunction &Function = KV.second;

auto It = std::partition_point(
AllRanges.begin(), AllRanges.end(),
[=](CURange R) { return R.HighPC <= FunctionAddress; });
if (It != AllRanges.end() && It->LowPC <= FunctionAddress) {
auto It = llvm::partition_point(
AllRanges, [=](CURange R) { return R.HighPC <= FunctionAddress; });
if (It != AllRanges.end() && It->LowPC <= FunctionAddress)
Function.setDWARFUnit(It->Unit);
}
}

// Discover units with debug info that needs to be updated.
Expand Down Expand Up @@ -2218,8 +2206,7 @@ DebugAddressRangesVector BinaryContext::translateModuleAddressRanges(
break;
const DebugAddressRangesVector FunctionRanges =
Function.getOutputAddressRanges();
std::move(std::begin(FunctionRanges), std::end(FunctionRanges),
std::back_inserter(OutputRanges));
llvm::move(FunctionRanges, std::back_inserter(OutputRanges));
std::advance(BFI, 1);
}
}
Expand Down
8 changes: 3 additions & 5 deletions bolt/lib/Core/BinaryEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -333,8 +333,7 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function, bool EmitColdPart) {
// Only write CIE CFI insns that LLVM will not already emit
const std::vector<MCCFIInstruction> &FrameInstrs =
MAI->getInitialFrameState();
if (std::find(FrameInstrs.begin(), FrameInstrs.end(), CFIInstr) ==
FrameInstrs.end())
if (!llvm::is_contained(FrameInstrs, CFIInstr))
emitCFIInstruction(CFIInstr);
}
}
Expand Down Expand Up @@ -1087,7 +1086,7 @@ void BinaryEmitter::emitDebugLineInfoForUnprocessedCUs() {

StmtListOffsets.push_back(*StmtList);
}
std::sort(StmtListOffsets.begin(), StmtListOffsets.end());
llvm::sort(StmtListOffsets);

// For each CU that was not processed, emit its line info as a binary blob.
for (const std::unique_ptr<DWARFUnit> &CU : BC.DwCtx->compile_units()) {
Expand All @@ -1105,8 +1104,7 @@ void BinaryEmitter::emitDebugLineInfoForUnprocessedCUs() {

// Statement list ends where the next unit contribution begins, or at the
// end of the section.
auto It =
std::upper_bound(StmtListOffsets.begin(), StmtListOffsets.end(), Begin);
auto It = llvm::upper_bound(StmtListOffsets, Begin);
const uint64_t End =
It == StmtListOffsets.end() ? DebugLineContents.size() : *It;

Expand Down
Loading