Skip to content

FXML-1067 Merge upstream LLVM to commit '59548fe873d8d98e359fb21fbb2a0852fed17ff5' #1

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 637 commits into from
Oct 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
637 commits
Select commit Hold shift + click to select a range
acaf6b9
[NFC] Add [[maybe_unused]] to avoid warning in gcc9
ChuanqiXu9 Aug 19, 2022
dfde731
[DirectX] Fix crash on ShuffleVectorInst in DXILBitcodeWriter
python3kgae Aug 18, 2022
b8655f7
[clang-tidy] Improve modernize-use-emplace check
Aug 19, 2022
ccb9d4d
[lldb] [gdb-remote] Include PID in vCont packets if multiprocess
mgorny Aug 12, 2022
00fa513
[NFC] Add tests for MemorySSA shouldn't contain debug instructions
ChuanqiXu9 Aug 19, 2022
857286f
[libc][NFC] Change the libc fullbuild target name to "libc".
Aug 19, 2022
84517b6
[libc] Add more headers to the linux x86_64 and aarch64 configs.
Aug 19, 2022
5815708
[lldb] [test] Skip step packet test on non-amd64
mgorny Aug 19, 2022
0867f23
[Test] Regenerate tests using update_tests.py
xortator Aug 19, 2022
8b50ffe
[lldb] [test] Remove test_step_multiprocess, it's unreliable
mgorny Aug 19, 2022
3a72906
[IR] Update llvm.prefetch to match docs
lenary Aug 17, 2022
270c179
[AArch64][GISel] Lower llvm.prefetch
lenary Aug 17, 2022
a2dd613
[clang][Modules] Fix a regression in handling missing framework headers.
iains Aug 18, 2022
04986dd
[LangRef][VP] Fix typo.
Aug 19, 2022
3fd4213
[clang-tidy] Do not trigger cppcoreguidelines-avoid-const-or-ref-data…
carlosgalvezp Aug 12, 2022
e78223e
[libcxx] [test] Remove --env PATH from the static clangcl config
mstorsjo Aug 9, 2022
63d88ed
[libcxx] [test] Split the TEST_HAS_SANITIZERS define into TEST_IS_EXE…
mstorsjo Aug 9, 2022
81e55ff
[libcxx] [test] Make some threading tests more robust
mstorsjo Aug 9, 2022
8437c8f
[libcxx] [test] Mark the libcxx/selftest/remote-substitutions.sh.cpp …
mstorsjo Aug 8, 2022
1ad18b5
[CostModel][X86] Cleanup arithmetic test triples
RKSimon Aug 19, 2022
19cbe4e
[CostModel][X86] Add tremont to slm-arith-costs.ll
RKSimon Aug 19, 2022
0de2c3d
[CostModel][X86] Split select cost kinds tests
RKSimon Aug 19, 2022
23a9121
[CostModel][X86] Split icmp/fcmp cost kinds tests
RKSimon Aug 19, 2022
cd86a03
[clang,flang] Add help text for -fsyntax-only
alexiprof Aug 19, 2022
4ef1f01
[Clang][AArch64] Replace aarch64_sve_ldN intrinsic by aarch64_sve_ldN…
CarolineConcatto Aug 11, 2022
b736179
[NFC][OpenMP] Add test for simd directive with nested loop
DominikAdamski Aug 19, 2022
bdb859c
[AMDGPU][MC][GFX8][NFC] Split large test file
dpreobra Aug 19, 2022
e99f6df
[AMDGPU][MC][GFX9][NFC] Split large test file
dpreobra Aug 19, 2022
09afe41
[InstCombine] For vector extract when extract vector and insert value…
CarolineConcatto Aug 19, 2022
1bd2b2d
Add support for specifying the severity of a SARIF Result
envp Aug 19, 2022
c74c17f
[lldb] Use WSAEventSelect for MainLoop polling on windows
labath Aug 4, 2022
ca5902c
Revert "[gn build] port f7a33090a910"
nico Aug 19, 2022
6a62fc1
[gn build] Port c74c17f37aa9
nico Aug 19, 2022
9f21d6e
[Clang][AArch64] Use generic extract/insert vector for svget/svset/sv…
CarolineConcatto Aug 10, 2022
1492c88
[PowerPC] Fix bugs in sign-/zero-extension elimination
stefanp-synopsys Aug 16, 2022
3d2ea3c
Add guidance for what to put in community calendar invites
kbeyls Aug 18, 2022
13b2a0c
[clangd] Support hover on __func__ etc (PredefinedExpr)
sam-mccall Aug 19, 2022
2cc7463
[pseudo] Perform unconstrained reduction prior to recovery.
sam-mccall Aug 19, 2022
605035b
[pseudo] Changes omitted from previous commit
sam-mccall Aug 19, 2022
ac31781
[Sema] Tweak diagnostic logic so suppress-in-header logic works in to…
sam-mccall Jul 13, 2022
5146b57
[libc++][NFC] Rename the constexpr macros
philnik777 Aug 19, 2022
d6e1e01
[lldb] [Core] Harmonize Communication::Read() returns w/ thread
mgorny Aug 19, 2022
7aadeca
[lldb] [test] Add synchronization to TestContinue
mgorny Aug 19, 2022
e32799d
[pseudo] NFC, remove redundant ;
hokein Aug 19, 2022
5779966
Revert "Revert "[compiler-rt] Fix check for cross-compiling""
ellishg Aug 19, 2022
f798c04
Revert "[SCEV] Prove condition invariance via context"
xortator Aug 19, 2022
72136d8
[Test] Add test for miscompile described in PR57247
xortator Aug 19, 2022
80bbc05
[clang][Interp] Implement inv and neg unary operations
tbaederr Aug 9, 2022
a771a91
[libcxxabi] Fix alignment of pointers returned by fallback_malloc
statham-arm Aug 19, 2022
666d2a9
[SVE][LoopVectorize][NFC] Tidy up some tests
david-arm Aug 19, 2022
7614785
[clang][Interp] Rename Integral::T to Integral::ReprT
tbaederr Aug 19, 2022
d38985a
[lldb] [test] Disable new CommunicationTests on Windows
mgorny Aug 19, 2022
d53e245
[COST][NFC]Introduce OperandValueKind in getMemoryOpCost, NFC.
alexey-bataev Aug 19, 2022
fd874e5
Missing tautological compare warnings due to unary operators
Codesbyusman Aug 19, 2022
4d931b6
[NFC][libc] rearrange aarch64 memset code to better match new impleme…
gchatelet Aug 18, 2022
bd5cc65
[pseudo] Start rules are `_ := start-symbol EOF`, improve recovery.
sam-mccall Aug 19, 2022
dbb95c2
[clang][dataflow] Debug string for value kinds.
weiyi-t Aug 16, 2022
31fbccc
Revert "[NFC][libc] rearrange aarch64 memset code to better match new…
gchatelet Aug 19, 2022
0e7ed32
[SLP]Cost for a constant buildvector.
alexey-bataev Jun 2, 2022
20ae22b
[mlir][Affine] Add affine.delinearize_index operation
christopherbate Aug 16, 2022
7799b5c
[reland][NFC][libc] rearrange aarch64 memset code to better match new…
gchatelet Aug 18, 2022
c167028
[SLP]Delay vectorization of postponable values for instructions with …
alexey-bataev Aug 15, 2022
c9a41fe
[RISCV] Prefer vnsrl.wi v8, v8, 0 over vnsrl.wx v8, v8, x0.
topperc Aug 19, 2022
961838c
[RISCV] Add passthru operand to RISCVISD::SETCC_VL.
topperc Aug 19, 2022
ee648c0
[clang][index] Index unresolved member expression as reference
denis-fatkulin Aug 19, 2022
a47ec1b
[analyzer][NFC] Be more descriptive when we replay without inlining
isuckatcs Aug 19, 2022
1a60e00
[RISCV] Use Triple::isRISCV/isRISCV32/isRISCV64 helps in some places.…
topperc Aug 19, 2022
2d48b40
Fix UB in DIExpression::appendOffset()
adrian-prantl Aug 19, 2022
4bff103
[EarlyCSE][ConstantFolding] add tests for atan2 with zero args; NFC
rotateright Aug 19, 2022
00c4852
Revert "[lldb] [test] Disable new CommunicationTests on Windows"
adrian-prantl Aug 19, 2022
fe0f72d
Revert "[lldb] [test] Add synchronization to TestContinue"
adrian-prantl Aug 19, 2022
7f1262a
[EarlyCSE][ConstantFolding] do not constant fold atan2(+/-0.0, +/-0.0)
rotateright Aug 19, 2022
e41dd02
Fix MSVC "not all control paths return a value" warning
RKSimon Aug 19, 2022
73a9dfc
MC: make section classification a bit more thorough
compnerd Aug 5, 2022
5517401
Revert "[lldb] [gdb-remote] Include PID in vCont packets if multiproc…
Michael137 Aug 19, 2022
e7fda46
[RISCV] Correct costs for vector ceil/floor/trunc/round
preames Aug 19, 2022
a744128
[X86] Fix znver1 256-bit ALU/Logic/Blend uop counts
RKSimon Aug 19, 2022
1dc8fcf
Revert "[lldb] [gdb-remote] Include PID in vCont packets if multiproc…
Michael137 Aug 19, 2022
01e3a37
[NFC] Precommit test for D132255.
dantrushin Aug 19, 2022
20cf170
[InferAddressSpaces] [AMDGPU] Add inference for flat_atomic intrinsics
jrbyrnes Jul 28, 2022
ac6a0cd
[X86][AArch64][NFC] Simplify querying used argument registers
bwendling Aug 18, 2022
bc53832
[clang][RISCV] Fix incorrect ABI lowering for inherited structs under…
asb Aug 19, 2022
95d94a6
Revert "Re-apply "Deferred Concept Instantiation Implementation"""
Aug 19, 2022
e412bac
[MachineVerifier] add checks for INLINEASM_BR
nickdesaulniers Aug 19, 2022
cda0936
Update coding standards for constexpr if statements; NFC
AaronBallman Aug 19, 2022
59960e8
[RISCV] Factor out getVectorImmCost cost after 0e7ed3 [nfc]
preames Aug 19, 2022
8847d9a
Reland "[mlir][test] Fix IR/AttributeTest.cpp compilation on Solaris"
rorth Aug 19, 2022
b0befe3
[clang][dataflow] Mark `getDeclCtx` function in dataflow `Environment…
weiyi-t Aug 19, 2022
1c1ecee
[RISCV] Add cost model coverage of store of constant [nfc]
preames Aug 19, 2022
8a002ab
[libcxx] [test] Fix the transitive_includes test on Windows
mstorsjo Jul 6, 2022
4d97766
[libc] Install startup files with the install-libc target.
Aug 19, 2022
3e6d1a6
[NFC][AArch64] Precommit test to optimize instruction selection for a…
mingmingl-llvm Aug 3, 2022
945a306
[AArch64] Change aarch64_neon_pmull{,64} intrinsic ISel through a new
mingmingl-llvm Aug 3, 2022
309d453
[llvm-reduce] Move most debugging output behind --verbose
aeubanks Aug 15, 2022
d0e03bf
[flang] Add a placeholder argument for a format descriptor on IO calls
klausler Aug 19, 2022
6227b7a
[RISCV] Move xori creation for scalar setccs to lowering.
topperc Aug 19, 2022
7ba14b8
[libc][NFC] Use STL case for bit
gchatelet Aug 19, 2022
175560f
Revert "[libc][NFC] Use STL case for bit"
gchatelet Aug 19, 2022
8f826fe
Fix reverse-iteration buildbot.
efriedma-quic Aug 19, 2022
d769cd8
[reland][libc][NFC] Use STL case for bit
gchatelet Aug 19, 2022
9e1a4ce
[clang-tidy] Fix for bugprone-sizeof-expression PR57167
tauchris Aug 19, 2022
e2d7975
[libc][NFC] Use STL case for bitset and simplify implementation
gchatelet Aug 19, 2022
cf3654c
[RISCV] Add test coverage for 64 bit splat constants
preames Aug 19, 2022
f00567e
[libc][NFC] Move blockstore out of the CPP folder
gchatelet Aug 19, 2022
89aaae5
Revert "[NFC] Precommit test for D132255."
nico Aug 19, 2022
57c9780
[clang][ExtractAPI] Record availability information on all platforms
daniel-grumberg Aug 1, 2022
2cd4cd9
[lld][ELF] Rename SymbolTable::symbols() to SymbolTable::getSymbols()…
sbc100 Jul 29, 2022
9e51cba
[gn build] Port 57c9780d60b1
llvmgnsyncbot Aug 19, 2022
cc0b5eb
[lldb] Support specifying a custom libcxx for the API tests
JDevlieghere Aug 19, 2022
928c2ba
[DWARF][BOLT] Fix handling of converting range accesss from ofset to …
ayermolo Aug 19, 2022
b0f4678
[AMDGPU] Add iglp_opt builtin and MFMA GEMM Opt strategy
kerbowa Aug 17, 2022
4579a02
[NFC] Fix warning in asserts build
llvm-beanz Aug 19, 2022
72e5991
[Flang]Fix another way to crash SimplifyIntrinsics
Leporacanthicus Aug 19, 2022
b0a2c48
[tti] Consolidate getOperandInfo without OperandValueProperties copie…
preames Aug 19, 2022
ae071a5
[libc++][NFC][spaceship] Update status doc
vogelsgesang Aug 20, 2022
98117fe
[VP] Add splitting for VP_STRIDED_STORE and VP_STRIDED_LOAD
Aug 20, 2022
e0f64b3
[docs] Remove lld/ELF release note about --package-metadata= which is…
MaskRay Aug 20, 2022
1e0fe6a
[LoongArch] Add codegen support for fsqrt
gonglingqin Aug 20, 2022
c2ee21c
[LoongArch] Add some fixups and relocations
wangleiat Aug 20, 2022
1dbe856
[MC][LoongArch] Make .reloc support arbitrary relocation types
wangleiat Aug 20, 2022
fbebf0f
[msan] Bump max allocation on aarch64
vitalybuka Aug 20, 2022
2b46625
[lldb] Use Optional::transform instead of Optional::map (NFC)
kazutakahirata Aug 20, 2022
c38bc42
[lldb] Use Optional::value instead of Optional::getValue (NFC)
kazutakahirata Aug 20, 2022
5b108df
workflows/version-check: Fix check for release candidates
tstellar Aug 20, 2022
5159be3
(Reland) [fastalloc] Support allocating specific register class in fa…
LuoYuanke Aug 18, 2022
2f50883
[lldb] [gdb-remote] Include PID in vCont packets if multiprocess
mgorny Aug 12, 2022
35e5677
[mlir][docs] Migrate away from deprecated llvm::Optional methods
MaskRay Aug 20, 2022
e565e2f
[NFC][AMDGPU] Fix typo.
Aug 20, 2022
d92f49f
Reland "[lldb] [test] Disable new CommunicationTests on Windows"
mgorny Aug 19, 2022
9e29658
Fix unused variable warnings
kazutakahirata Aug 20, 2022
99020b3
workflows/llvm-project-tests: Workaround an issue with lldb builds on…
tstellar Aug 20, 2022
662a11b
HowToReleaseLLVM: Add some more details about website updates
tstellar Aug 20, 2022
7225c0b
HowToReleaseLLVM: Add annual release schedule template
tstellar Aug 20, 2022
eba370e
Fix llvm-docs-sphinx buildbot after 7225c0bd0115c947f3c081599e6268cfa…
tstellar Aug 20, 2022
1f0b4f4
More llvm-docs-sphinx buildbot fixes
tstellar Aug 20, 2022
2ede992
[libc++][doc] Updates status of P2291R3.
mordante Aug 20, 2022
8faf515
[X86] Add vector test coverage of 'one-bit-diff' and/or icmp ne/eq pa…
RKSimon Aug 20, 2022
fa96383
[X86] Fold PMULUDQ(X,1) -> AND(X,(1<<32)-1) 'getZeroExtendInReg'
RKSimon Aug 20, 2022
2981a94
[EarlyCSE][ConstantFolding] do not constant fold atan2(+/-0.0, +/-0.0…
rotateright Aug 20, 2022
0e0e638
[ADT] Simplify llvm::reverse with constexpr if (NFC)
kazutakahirata Aug 20, 2022
e15359d
[ADT] Implement Any::has_value
kazutakahirata Aug 20, 2022
347c462
[lldb] Use Any::has_value instead of ANy::hasValue (NFC)
kazutakahirata Aug 20, 2022
aa41460
[flang][OpenMP] Handle the data race for firstprivate and lastprivate
PeixinQiao Aug 20, 2022
6d1a685
[flang] Add semantic checks for interoperability of derived type (C1806)
PeixinQiao Aug 20, 2022
fc4d3a1
[clang] Use Any::has_value instead of Any::hasValue (NFC)
kazutakahirata Aug 20, 2022
abb6271
[ADT] Deprecate Any::hasValue
kazutakahirata Aug 20, 2022
7dec464
[ADT] Simplify llvm::sort with constexpr if (NFC)
kazutakahirata Aug 20, 2022
3adda39
[clang][lldb][cmake] Use new `*_INSTALL_LIBDIR_BASENAME` CPP macro
Ericson2314 Aug 20, 2022
90dcdc4
[bolt][llvm][cmake] Use `CMAKE_INSTALL_LIBDIR` too
Ericson2314 Aug 20, 2022
804d459
[gn build] Fix oversight in 3adda398cef7f56d0
nico Aug 20, 2022
00da9e9
[libc++][string] Removes obsolete constexpr.
mordante Aug 14, 2022
e0fc85e
[JITLink] Fix LinkGraph::makeAbsolute, add unit test.
lhames Aug 20, 2022
01ffe31
[llvm] Remove llvm::is_trivially_{copy/move}_constructible (NFC)
kazutakahirata Aug 20, 2022
1b08b27
[mlir] Use std::is_invocable instead of llvm::is_invocable
JoeLoser Aug 20, 2022
dad00da
[libunwind] Fixed a number of typos
GabrielRavier Aug 21, 2022
ce377df
Ensure newlines at the end of files (NFC)
kazutakahirata Aug 21, 2022
6b1bc80
[Scalar] Qualify auto in range-based for loops (NFC)
kazutakahirata Aug 21, 2022
06b551c
Use llvm::is_contained (NFC)
kazutakahirata Aug 21, 2022
258531b
Remove redundant initialization of Optional (NFC)
kazutakahirata Aug 21, 2022
8e494b8
Use llvm::drop_begin (NFC)
kazutakahirata Aug 21, 2022
ec5eab7
Use range-based for loops (NFC)
kazutakahirata Aug 21, 2022
c5da37e
Use std::is_same_v instead of std::is_same (NFC)
kazutakahirata Aug 21, 2022
8b1b0d1
Revert "Use std::is_same_v instead of std::is_same (NFC)"
kazutakahirata Aug 21, 2022
9a764ff
[mlir][Bazel] Fix Bazel build
anlunx Aug 21, 2022
fee3ccc
[C++20][Modules] Improve handing of Private Module Fragment diagnostics.
iains Jun 22, 2022
5263155
[CostModel] Add CostKind argument to getShuffleCost
RKSimon Aug 21, 2022
d4284ba
[mlir][normalize-memrefs] NFC Follow-up D125854
tungld Aug 20, 2022
883538f
[CostModel][X86] Split int/fp arithmetic cost kinds tests
RKSimon Aug 21, 2022
5df428e
[Orc] Actually save the callback
argentite Aug 20, 2022
1134d3a
[Orc] Only unmap shared memory in controller process destructor
argentite Aug 20, 2022
0ecfee0
[Orc] Provide correct Reservation address for slab allocations
argentite Aug 20, 2022
e309f5e
[Orc] Improve deintialize and shutdown logic
argentite Aug 20, 2022
efc1c02
[CostModel][X86] Split integer div/rem cost kinds tests
RKSimon Aug 21, 2022
3917306
[CostModel][X86] Add trunc cost kinds tests
RKSimon Aug 21, 2022
176db3b
[RFC] Remove support for building C++ with `LLVM_ENABLE_PROJECTS`
Ericson2314 Aug 21, 2022
e6a0800
[libcxxabi][cmake] Allow building without libcxx again
Ericson2314 Aug 20, 2022
1fb87ac
[RISCV] Optimize x > 1 ? x : 1 -> x > 0 ? x : 1
ChunyuLiao Aug 19, 2022
53c0be2
[PhaseOrdering][X86] Regenerate vdiv.ll
RKSimon Aug 21, 2022
952f90b
[CMake] Weaken 176db3b3ab25ff8a9b2405f50ef5a8bd9304a6d5
Ericson2314 Aug 21, 2022
15e3d86
[InstCombine] reassociate bitwise logic chains based on uses
rotateright Aug 21, 2022
6ebc2a1
[libc++] Fix typos in deprecation messages for experimental searchers
JoeLoser Aug 20, 2022
3bdc0f3
[NFC][mlir][affine] Typo in Affine Analysis test
Lewuathe Aug 21, 2022
d49a82f
[NFC][libc++][doc] Improves rst formatting.
mordante Aug 21, 2022
15de7aa
[CostModel][X86] Add CodeSize/SizeLatency handling for fadd/fsub/fmul…
RKSimon Aug 21, 2022
3c4391b
Revert rG15de7aaae52ef4be9f9ff3b130804e5b5ccd29f4 "[CostModel][X86] A…
RKSimon Aug 21, 2022
99694a5
[ADT] Replace `void_t` equivalent with `std::void_t`
JoeLoser Aug 20, 2022
7ff2a9f
[CostModel][X86] Add CodeSize handling for fadd/fsub/fmul/fsqrt ops
RKSimon Aug 21, 2022
d9ff670
[flang][OpenMP] Parser support for Target directive and Device clause
seshakalyur2 Aug 21, 2022
36357c9
Remove llvm::is_trivially_copyable (NFC)
kazutakahirata Aug 21, 2022
be35870
[ADT] Simplify llvm::bit_cast (NFC)
kazutakahirata Aug 21, 2022
a6c3ccd
[RISCV] Be more strict about LUI+ADDI macrofusion pre-RA.
topperc Aug 21, 2022
1a042dd
[RISCV] Optimize x <s -1 ? x : -1. Improve x >u 1 ? x : 1.
topperc Aug 21, 2022
abce7ac
[RISCV] Remove impossible TODO in RISCVRedundantCopyElimination. NFC
topperc Aug 21, 2022
7e2cf26
[ADT] Clarify llvm::bit_cast implementation comment
JoeLoser Aug 21, 2022
4a51b0c
[ADT] Remove `is_invocable` from `STLExtras.h`
JoeLoser Aug 21, 2022
4121445
[clang-format] Fix BeforeHash indent of comments above PPDirective
owenca Aug 18, 2022
cab58b7
[sanitizer] use ../runtimes path to build libcxx
vitalybuka Aug 22, 2022
53bc7d5
[AArch64][NFC] Replace setOperationAction and AddPromotedToType
Aug 19, 2022
d2d77e0
[PowerPC][Coroutines] Add tail-call check with call information for c…
Aug 22, 2022
e9ef456
[clang] adds unary type transformations as compiler built-ins
cjdb Aug 22, 2022
0e79711
[libcxx][NFC] utilises compiler builtins for unary transform type-traits
cjdb Aug 22, 2022
2492bdb
[LoongArch] Support Load and Store with 14-bit signed immediate operands
gonglingqin Aug 22, 2022
7167a42
[RISCV] Add zihintntl instructions
Aug 22, 2022
bedf43b
[Test] One more test for PR57247
xortator Aug 22, 2022
a3214a3
[LoongArch][test] Regenerate loongarch_generated_funcs.test checks
wangleiat Aug 22, 2022
aaa987d
[clang] Fix warning after D116203
vitalybuka Aug 22, 2022
7d6e7d5
[Test] And one more test for PR57247
xortator Aug 22, 2022
d90c1bc
Revert "[clang-format][NFC] Fix a bug in setting type FunctionLBrace"
owenca Aug 22, 2022
5541e6b
[libc] Add a span facility
gchatelet Aug 19, 2022
e587199
[SCEV] Prove condition invariance via context, try 2
xortator Aug 22, 2022
f3acb54
[mlir] Add initial support for a binary serialization format
River707 Aug 12, 2022
e7b250b
[NFC][libc] Use span instead of ArrayRef
gchatelet Aug 22, 2022
70ca9a6
Revert "[NFC][libc] Use span instead of ArrayRef"
gchatelet Aug 22, 2022
a1c42cb
[reland][NFC][libc] Use span instead of ArrayRef
gchatelet Aug 22, 2022
93cf0e8
[mlir] Fix bots after bytecode support was added in D131747
River707 Aug 22, 2022
1d66c5e
[ARM] Fix bug in also_compatible_with attribute parser
vhscampos Aug 19, 2022
e5d5146
[libc] Allow construction of const span from mutable span
gchatelet Aug 22, 2022
a6e155f
[flang] Add bind(C) to buitlin C_PTR
clementval Aug 22, 2022
459fd3f
[MLIR][GPU] Detect bounds with `arith.minsi ` in loops-to-gpu
chsigg Aug 22, 2022
b3125ad
[DSE] Add additional uses to tests to ensure stores be removed.
fhahn Aug 22, 2022
3c2cb8e
[clangd] Disable IncludeCleaner for ObjC
kadircet Aug 22, 2022
f890f80
[libc] Allow span views over mutable data
gchatelet Aug 22, 2022
dd5b489
[CostModel][X86] getShuffleCost - treat SK_Splice as SK_PermuteTwoSrc
RKSimon Aug 22, 2022
04a68fc
[ARM] Add a couple of MVE fixed-order-reduction tests. NFC
davemgreen Aug 22, 2022
22bc0fd
[NFC][libc] Switch mem* tests from ArrayRef to span
gchatelet Aug 22, 2022
65f6a8c
[LLDB] Fix: make m_target_arch private
Aug 22, 2022
1d9b142
[mlir][Bazel] Fix bazel build
gflegar Aug 22, 2022
4d23191
[NFC][libc] Switch File impl to span instead of ArrayRef
gchatelet Aug 22, 2022
541e24e
[CostModel][X86] Add some basic SK_Splice shuffle test coverage
RKSimon Aug 22, 2022
c860fd3
[NFC][libc] Remove ArrayRef which is replaced with span
gchatelet Aug 22, 2022
3c48263
[analyzer] Remove pattern matching of lambda capture initializers
isuckatcs Aug 16, 2022
d0397db
[CostModel][X86] Fix a off-by-one typo in the v64i8 splice shuffle test
RKSimon Aug 22, 2022
0cf9e47
[AArch64] Add SK_Splice fixed-width costs
davemgreen Aug 22, 2022
b21de9b
[lldb] Silence a GCC warning about missing returns after a fully cove…
mstorsjo Aug 22, 2022
c81bf94
[analyzer] Handling non-POD multidimensional arrays in ArrayInitLoopExpr
isuckatcs Aug 13, 2022
494b6c4
[LAA] Add test cases where BTC can be used to rule out dependences.
fhahn Aug 22, 2022
6f19f98
[lldb][Test] Replace expect() with expect_expr() in TestNamespaceLook…
Michael137 Aug 20, 2022
09f608f
[lldb][ClangExpression] Remove storage-class check when creating AsmL…
Michael137 Aug 19, 2022
e2ab606
Add N2562 to the C status page
AaronBallman Aug 22, 2022
53125e7
[DebugInfo] Handle joins PHI+Def values in InstrRef LiveDebugValues
SLTozer May 17, 2022
df23fc4
[X86][AVX512FP16] Add the missing const modifiers. NFCI
phoebewang Aug 22, 2022
210a419
[docs] Adjust the example command line in DebuggingCoroutines.rst
Aug 22, 2022
45e80d9
Reapply "[NFC] Precommit test for D132255".
dantrushin Aug 22, 2022
416ba22
[mlir][linalg][transform] Support dynamic tile sizes in TileToForeach…
matthias-springer Aug 22, 2022
9ee12f4
[mlir][tensor][bufferize] Bufferize tensor.pad
matthias-springer Aug 22, 2022
aa59c98
[libc][NFC] Use STL case for string_view
gchatelet Aug 22, 2022
11ce014
[DebugInfo][NFC] Update LDV to use generic DBG_VALUE* MI interface
SLTozer Jun 16, 2022
41d4067
[NFC][libc] clarify CPP folder documentation
gchatelet Aug 22, 2022
59548fe
[mlir] Fix compile errors with bytecode support
gflegar Aug 22, 2022
0057022
Merge: Bump llvm-project to commit '59548fe873d8d98e359fb21fbb2a0852f…
gargaroff Oct 6, 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
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .github/workflows/llvm-project-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ jobs:
uses: llvm/actions/setup-windows@main
with:
arch: amd64
# On Windows, starting with win19/20220814.1, cmake choose the 32-bit
# python3.10.6 libraries instead of the 64-bit libraries when building
# lldb. Using this setup-python action to make 3.10 the default
# python fixes this.
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Ninja
uses: llvm/actions/install-ninja@main
# actions/checkout deletes any existing files in the new git directory,
Expand Down
40 changes: 18 additions & 22 deletions .github/workflows/version-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,29 @@
import re
import sys


def get_version_from_tag(tag):
m = re.match('llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)(-rc[0-9]+)?$', tag)
if m:
if m.lastindex == 4:
# We have an rc tag.
return m.group(1,2,3)
# We have a final release tag.
return (m.group(1), m.group(2), int(m.group(3)) + 1)

m = re.match('llvmorg-([0-9]+)-init', tag)
if m:
return (int(m.group(1)) + 1, 0, 0)

raise Exception(f"error: Tag is not valid: {tag}")


version = sys.argv[1]

repo = Repo()

tag = repo.git.describe(tags = True, abbrev=0)
m = re.match('llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)', tag)

if m:
expected_major = m.group(1)
expected_minor = m.group(2)
expected_patch = int(m.group(3)) + 1
else:
# If the previous tag is llvmorg-X-init, then we should be at version X.0.0.
m = re.match('llvmorg-([0-9]+)-init', tag)
if not m:
print("error: Tag is not valid: ", tag)
sys.exit(1)
expected_major = m.group(1)
expected_minor = 0
expected_patch = 0

expected_version = f"{expected_major}.{expected_minor}.{expected_patch}"

m = re.match("[0-9]+\.[0-9]+\.[0-9]+", version)
if not m:
print("error: Version is not valid: ", version)
sys.exit(1)
expected_version = '.'.join(get_version_from_tag(tag))

if version != expected_version:
print("error: Expected version", expected_version, "but found version", version)
Expand Down
24 changes: 16 additions & 8 deletions bolt/include/bolt/Core/BinaryBasicBlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@ class BinaryBasicBlock {
/// CFI state at the entry to this basic block.
int32_t CFIState{-1};

/// In cases where the parent function has been split, IsCold == true means
/// this BB will be allocated outside its parent function.
bool IsCold{false};
/// In cases where the parent function has been split, FragmentNum > 0 means
/// this BB will be allocated in a fragment outside its parent function.
FragmentNum Fragment;

/// Indicates if the block could be outlined.
bool CanOutline{true};
Expand Down Expand Up @@ -672,13 +672,21 @@ class BinaryBasicBlock {

void markValid(const bool Valid) { IsValid = Valid; }

FragmentNum getFragmentNum() const {
return IsCold ? FragmentNum::cold() : FragmentNum::hot();
}
FragmentNum getFragmentNum() const { return Fragment; }

void setFragmentNum(const FragmentNum Value) { Fragment = Value; }

bool isCold() const { return IsCold; }
bool isSplit() const { return Fragment != FragmentNum::main(); }

void setIsCold(const bool Flag) { IsCold = Flag; }
bool isCold() const {
assert(Fragment.get() < 2 &&
"Function is split into more than two (hot/cold)-fragments");
return isSplit();
}

void setIsCold(const bool Flag) {
Fragment = Flag ? FragmentNum::cold() : FragmentNum::main();
}

/// Return true if the block can be outlined. At the moment we disallow
/// outlining of blocks that can potentially throw exceptions or are
Expand Down
3 changes: 2 additions & 1 deletion bolt/include/bolt/Core/BinaryEmitter.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class MCStreamer;
namespace bolt {
class BinaryContext;
class BinaryFunction;
class FunctionFragment;

/// Emit all code and data from the BinaryContext \p BC into the \p Streamer.
///
Expand All @@ -34,7 +35,7 @@ void emitBinaryContext(MCStreamer &Streamer, BinaryContext &BC,
/// Emit \p BF function code. The caller is responsible for emitting function
/// symbol(s) and setting the section to emit the code to.
void emitFunctionBody(MCStreamer &Streamer, BinaryFunction &BF,
bool EmitColdPart, bool EmitCodeOnly = false);
const FunctionFragment &FF, bool EmitCodeOnly);

} // namespace bolt
} // namespace llvm
Expand Down
105 changes: 56 additions & 49 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -568,13 +568,10 @@ class BinaryFunction {
};
SmallVector<BasicBlockOffset, 0> BasicBlockOffsets;

MCSymbol *ColdSymbol{nullptr};
SmallVector<MCSymbol *, 0> ColdSymbols;

/// Symbol at the end of the function.
mutable MCSymbol *FunctionEndLabel{nullptr};

/// Symbol at the end of the cold part of split function.
mutable MCSymbol *FunctionColdEndLabel{nullptr};
/// Symbol at the end of each fragment of a split function.
mutable SmallVector<MCSymbol *, 0> FunctionEndLabels;

/// Unique number associated with the function.
uint64_t FunctionNumber;
Expand Down Expand Up @@ -1081,7 +1078,23 @@ class BinaryFunction {

/// Return MC symbol associated with the function.
/// All references to the function should use this symbol.
MCSymbol *getSymbol() { return Symbols[0]; }
MCSymbol *getSymbol(const FragmentNum Fragment = FragmentNum::main()) {
if (Fragment == FragmentNum::main())
return Symbols[0];

size_t ColdSymbolIndex = Fragment.get() - 1;
if (ColdSymbolIndex >= ColdSymbols.size())
ColdSymbols.resize(ColdSymbolIndex + 1);

MCSymbol *&ColdSymbol = ColdSymbols[ColdSymbolIndex];
if (ColdSymbol == nullptr) {
SmallString<10> Appendix = formatv(".cold.{0}", ColdSymbolIndex);
ColdSymbol = BC.Ctx->getOrCreateSymbol(
NameResolver::append(Symbols[0]->getName(), Appendix));
}

return ColdSymbol;
}

/// Return MC symbol associated with the function (const version).
/// All references to the function should use this symbol.
Expand Down Expand Up @@ -1135,33 +1148,26 @@ class BinaryFunction {
/// Return true of all callbacks returned true, false otherwise.
bool forEachEntryPoint(EntryPointCallbackTy Callback) const;

MCSymbol *getColdSymbol() {
if (ColdSymbol)
return ColdSymbol;

ColdSymbol = BC.Ctx->getOrCreateSymbol(
NameResolver::append(getSymbol()->getName(), ".cold.0"));

return ColdSymbol;
}

/// Return MC symbol associated with the end of the function.
MCSymbol *getFunctionEndLabel() const {
MCSymbol *
getFunctionEndLabel(const FragmentNum Fragment = FragmentNum::main()) const {
assert(BC.Ctx && "cannot be called with empty context");
if (!FunctionEndLabel) {
std::unique_lock<std::shared_timed_mutex> Lock(BC.CtxMutex);
FunctionEndLabel = BC.Ctx->createNamedTempSymbol("func_end");

size_t LabelIndex = Fragment.get();
if (LabelIndex >= FunctionEndLabels.size()) {
FunctionEndLabels.resize(LabelIndex + 1);
}
return FunctionEndLabel;
}

/// Return MC symbol associated with the end of the cold part of the function.
MCSymbol *getFunctionColdEndLabel() const {
if (!FunctionColdEndLabel) {
MCSymbol *&FunctionEndLabel = FunctionEndLabels[LabelIndex];
if (!FunctionEndLabel) {
std::unique_lock<std::shared_timed_mutex> Lock(BC.CtxMutex);
FunctionColdEndLabel = BC.Ctx->createNamedTempSymbol("func_cold_end");
if (Fragment == FragmentNum::main())
FunctionEndLabel = BC.Ctx->createNamedTempSymbol("func_end");
else
FunctionEndLabel = BC.Ctx->createNamedTempSymbol(
formatv("func_cold_end.{0}", Fragment.get() - 1));
}
return FunctionColdEndLabel;
return FunctionEndLabel;
}

/// Return a label used to identify where the constant island was emitted
Expand Down Expand Up @@ -1310,31 +1316,29 @@ class BinaryFunction {
}

/// Return internal section name for this function.
StringRef getCodeSectionName() const { return StringRef(CodeSectionName); }
SmallString<32>
getCodeSectionName(const FragmentNum Fragment = FragmentNum::main()) const {
if (Fragment == FragmentNum::main())
return SmallString<32>(CodeSectionName);
if (Fragment == FragmentNum::cold())
return SmallString<32>(ColdCodeSectionName);
return formatv("{0}.{1}", ColdCodeSectionName, Fragment.get() - 1);
}

/// Assign a code section name to the function.
void setCodeSectionName(StringRef Name) {
CodeSectionName = std::string(Name);
void setCodeSectionName(const StringRef Name) {
CodeSectionName = Name.str();
}

/// Get output code section.
ErrorOr<BinarySection &> getCodeSection() const {
return BC.getUniqueSectionByName(getCodeSectionName());
}

/// Return cold code section name for the function.
StringRef getColdCodeSectionName() const {
return StringRef(ColdCodeSectionName);
ErrorOr<BinarySection &>
getCodeSection(const FragmentNum Fragment = FragmentNum::main()) const {
return BC.getUniqueSectionByName(getCodeSectionName(Fragment));
}

/// Assign a section name for the cold part of the function.
void setColdCodeSectionName(StringRef Name) {
ColdCodeSectionName = std::string(Name);
}

/// Get output code section for cold code of this function.
ErrorOr<BinarySection &> getColdCodeSection() const {
return BC.getUniqueSectionByName(getColdCodeSectionName());
void setColdCodeSectionName(const StringRef Name) {
ColdCodeSectionName = Name.str();
}

/// Return true iif the function will halt execution on entry.
Expand Down Expand Up @@ -1862,14 +1866,15 @@ class BinaryFunction {
}

/// Return symbol pointing to function's LSDA for the cold part.
MCSymbol *getColdLSDASymbol() {
MCSymbol *getColdLSDASymbol(const FragmentNum Fragment) {
if (ColdLSDASymbol)
return ColdLSDASymbol;
if (ColdCallSites.empty())
return nullptr;

ColdLSDASymbol = BC.Ctx->getOrCreateSymbol(
Twine("GCC_cold_except_table") + Twine::utohexstr(getFunctionNumber()));
ColdLSDASymbol =
BC.Ctx->getOrCreateSymbol(formatv("GCC_cold_except_table{0:x-}.{1}",
getFunctionNumber(), Fragment.get()));

return ColdLSDASymbol;
}
Expand Down Expand Up @@ -2012,7 +2017,9 @@ class BinaryFunction {
return Size;
}

bool hasIslandsInfo() const { return !!Islands; }
bool hasIslandsInfo() const {
return Islands && (hasConstantIsland() || !Islands->Dependency.empty());
}

bool hasConstantIsland() const {
return Islands && !Islands->DataOffsets.empty();
Expand Down
Loading