Skip to content

Feature/merge upstream 20230828 #260

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,028 commits into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1028 commits
Select commit Hold shift + click to select a range
1896096
[mlir][ROCM] Add Wave/Warp shuffle lowering and op for ROCM.
raikonenfnu Aug 24, 2023
397a9cc
Recommit "[InstCombine] Expand `foldSelectICmpAndOr` -> `foldSelectIC…
goldsteinn Aug 24, 2023
d0b4ed9
[ValueTracking] Add tests for knowing `sdiv` is non-zero; NFC
goldsteinn Aug 7, 2023
846ff92
[ValueTracking] Compute `sdiv` as non-zero if `abs(num) u>= abs(denum)`
goldsteinn Aug 24, 2023
e4cb692
[Driver] Add NaCl to ShouldAddDefaultIncludePaths()
brad0 Aug 25, 2023
e4c7298
[OpenMP 5.1] Parsing and Sema support for `scope` directive
mdfazlay Aug 9, 2023
aa9d7d1
[Driver] Remove Myriad.cpp
MaskRay Aug 25, 2023
a5b584d
[mlir][lsp] Add parser support for tracking alias definitions and uses
Aug 24, 2023
604aba0
[mlir] Fix -Wunused-variable warning in AsmParserState.cpp (NFC)
DamonFool Aug 25, 2023
85e3875
[TableGen] Rename ResourceCycles and StartAtCycle to clarify semantics
michaelmaitland Aug 23, 2023
653f776
[mlir][complex] Convert complex.abs to arith with fastmath flag
Lewuathe Aug 24, 2023
48fa79a
Revert "[DAGCombiner] Change foldAndOrOfSETCC() to optimize and/or pa…
kmitropoulou Aug 25, 2023
37f6e3c
[libc] Add sys/time.h to the list of aarch64 headers.
Aug 25, 2023
a208b68
[X86TargetParser] Simplify X86_FEATURE_COMPAT assert. NFC
MaskRay Aug 25, 2023
4235bc0
[RISCV] Fix `vmsge{u}.vx` lowering by not adding the mask operand if …
imkiva Aug 24, 2023
5624e86
[tsan] Respect !nosanitize metadata and remove gcov special case
MaskRay Aug 25, 2023
7bd6328
[lldb-vscode] Update package.json
JDevlieghere Aug 25, 2023
5a9a02f
[SCEV] Compute SCEV for ashr(add(shl(x, n), c), m) instr triplet
vedantparanjape-amd Aug 16, 2023
3bcc63e
[mlir][lsp] Add LSP support for attribute and type aliases
Aug 24, 2023
45d2033
[MLIR][Printing] ASMPrinter prints escape characters in Resources
Aug 25, 2023
79ff70f
[mlir][sparse] Better error handling when bufferizing sparse_tensor ops
matthias-springer Aug 25, 2023
6824d15
[Clang] Fix a crash when an invalid immediate function call appears i…
cor3ntin Aug 24, 2023
615d812
[clang][ExprConstant] Improve error message of compound assignment ag…
hazohelet Aug 25, 2023
01b2554
[clang] - Add missing builtin name to AtomicExpr JSON dump
serge-sans-paille Aug 22, 2023
4eafc9b
[IR] Treat callbr as special terminator (PR64215)
nikic Aug 23, 2023
2acf00b
Revert "Recommit "[InstCombine] Expand `foldSelectICmpAndOr` -> `fold…
goldsteinn Aug 25, 2023
1b12427
[VP][RISCV] Add vp.is.fpclass and RISC-V support
ChunyuLiao Aug 25, 2023
8760ff1
Revert "[clang] - Add missing builtin name to AtomicExpr JSON dump"
serge-sans-paille Aug 25, 2023
ea32f99
[Sema][HLSL] Clarify wording. NFC
bogner Aug 25, 2023
d43f324
[Sema][HLSL] Remove some duplicated code. NFC
bogner Aug 25, 2023
00d1966
[X86] matchIndexRecursively - don't peek through SIGN_EXTEND for vect…
RKSimon Aug 25, 2023
232f0c9
[NFC][AMDGPU] Remove redundant code
tomatih Aug 25, 2023
be5013a
[ConstraintElim] Add some tests with inductions that may wrap.
fhahn Aug 25, 2023
d282781
update gitpython to 3.1.32
krasimirgg Aug 25, 2023
275259e
[OpenMP] Add `getComputeUnitKind` to generic-elf-64bit plugin
mhalk Aug 25, 2023
eb6277e
update certifi to 2023.7.22
krasimirgg Aug 25, 2023
5e60345
[clang] Also run the clang tests as part of the Clang-specific CI pip…
ldionne Aug 24, 2023
adaae6a
Fix LLVM Sphinx build
AaronBallman Aug 25, 2023
ce0d16f
[NFC][AMDGPU] assert scoreboard index is in range
ldrumm Aug 25, 2023
742fa94
[llvm-exegesis] Skip codegen of known-invalid snippets
kpdev Aug 25, 2023
e3373c6
[mlir][memref] Fix crash in SubViewReturnTypeCanonicalizer
matthias-springer Aug 25, 2023
8ca614a
[libc][math] Implement double precision exp2 function correctly round…
lntue Aug 25, 2023
0b98c35
[RISCV] Restructure i1 insert/extract element costing [nfc-ish]
preames Aug 25, 2023
c783258
[clang][tooling] Fix `name` range-selector to handle TypeLocs correctly.
ymand Aug 24, 2023
52b93d2
[mlir][nvgpu] remove duplicated pattern (nfc)
grypp Aug 25, 2023
291101a
[WebAssembly] Optimize vector shift using a splat value from outside …
yolanda15 Aug 25, 2023
cccf4d6
[flang] Skip OPTIONAL arguments in LoopVersioning.
vzakhari Aug 25, 2023
e994c5d
[NFC] Remove old email
rengolin Aug 25, 2023
50b1276
[lldb] Qualify `auto` in the lldb driver (NFC)
JDevlieghere Aug 25, 2023
1994e11
[clangd] Avoid null result in FindRecordTypeAt()
HighCommander4 Aug 25, 2023
b8a9c50
[AMDGPU] Add target feature gws to clang
yxsamliu Aug 20, 2023
ea82a82
[libc++] Adds string_view constructor overload
mordante Jun 17, 2023
9eb1e82
[gn build] Add missing dependency to clang-fuzzer-dictionary
aeubanks Aug 25, 2023
91b3ca3
llvm_gtest: install to appropriate locations.
dtzSiFive Aug 8, 2023
4f76810
[scudo] Detach the hooks from Scudo's internal implementation
ChiaHungDuan Aug 24, 2023
2dc6281
[libc++]Declaring '__asign_view__' as a non noexcept function
rb1005 Aug 25, 2023
1561495
[flang][driver] Mark -L as visible in Flang
erjin Aug 24, 2023
e9e4584
[AggressiveInstCombine] Improve line breaks in comment. NFC
topperc Aug 25, 2023
41818ce
[clang-tidy] Access checks not done classes derived of std::array
sousajo-cc Aug 25, 2023
04e6178
[Sema] tolerate more promotion matches in format string checking
apple-fcloutier Aug 18, 2023
5adac8b
[PowerPC] Exclude frexp(long double) on linux
lei137 Aug 23, 2023
8d0c3db
Emit the CodeView `S_ARMSWITCHTABLE` debug symbol for jump tables
dpaoliello Aug 25, 2023
66ec5df
[ConstraintElim] fix crash with large constants in mul nsw
erikdesjardins Aug 25, 2023
01a92f0
[llvm-exegesis] Use mmap2 when mmap is unavailable to fix riscv32 build
kraj Aug 25, 2023
a013981
[OpenMPOpt][FIX] Ensure to propagate information about parallel regions
jdoerfert Aug 25, 2023
e7294db
Fix llvm/test/DebugInfo/COFF/jump-table.ll
dpaoliello Aug 25, 2023
9300b6d
[OpenMP][OMPT] Add OMPT support for `generic-elf-64bit` plugin
mhalk Aug 25, 2023
1cfcc36
[libc++] Fix GNU/Hurd build
sthibaul Aug 25, 2023
636269f
[CodeGen] Fix a warning
kazutakahirata Aug 25, 2023
1034688
[lldb] Re-enable TestVSCode_disconnect on Darwin
JDevlieghere Aug 25, 2023
54c99a9
[Clang] Update the core issues list
cor3ntin Aug 25, 2023
a5e7d16
[gn build] Pass -Wl,--export-dynamic for clang-repl
aeubanks Aug 25, 2023
bbcc7c5
[NFC] Initialize member pointer and avoid potential null dereference
schittir Aug 24, 2023
7a5ecbd
[libc++][NFC] Fix typos in comments
ldionne Aug 25, 2023
3ba8dab
[AMDGPU] Add sdot4 / sdot8 intrinsics for gfx11
jrbyrnes Aug 22, 2023
53ee31c
[Fuchsia] Make __start_* / __stop_* symbols hidden
petrhosek Aug 25, 2023
2c8a03d
[gn build] Port 4f76810d4860
llvmgnsyncbot Aug 25, 2023
b825808
[libc][bazel] Add missing triple_double header and target to bazel ov…
lntue Aug 25, 2023
37086ca
[lldb] Use Popen.wait in TestVSCode_launch
JDevlieghere Aug 25, 2023
847186e
[NFC][Clang] Fix static analyzer concern
elizabethandrews Aug 25, 2023
e036ba5
[StatepointLowering] Fix possible nullptr access in debug output
danilaml Aug 25, 2023
43a9b92
[Sema][HLSL] Fix naming of anyhit/closesthit shaders
bogner Aug 25, 2023
53445db
[Analysis] Fix a comment typo (NFC)
kazutakahirata Aug 25, 2023
5966079
[CodeGen] Fix a warning
kazutakahirata Aug 25, 2023
8cfe9d8
[Driver] Remove remnant myriad pieces after Myriad.cpp removal
MaskRay Aug 25, 2023
24eaf78
Cleanup remaining bits for Minix, Contiki and Myriad
brad0 Aug 25, 2023
59fdd4c
[NFC] Update OpenMP Support page for Clang/LLVM 17
chichunchen Aug 25, 2023
6bdf485
[lldb] Re-enable TestVSCode_launch on Darwin
JDevlieghere Aug 25, 2023
f0f53cb
[clangd] Do not ignore qualifier in heuristic resolution of dependent…
HighCommander4 Aug 24, 2023
33b6b67
[clang] Fix crash in __builtin_strncmp and other related builtin func…
shafik Aug 25, 2023
17b48de
[ForceFunctionAttrs] Make options additionally work over entire module
boomanaiden154 Aug 25, 2023
ee95b64
[flang] Support fir.llvm_ptr in getTypeAsString
clementval Aug 25, 2023
4184baf
[RISCV] Refactor lowerSPLAT_VECTOR_PARTS to use splatPartsI64WithVL f…
topperc Aug 25, 2023
398c855
[RISCV] Improve splatPartsI64WithVL for vlmax scalable vector constan…
topperc Aug 25, 2023
3dbabea
[CodeGen] Remove unused option in MachineFunctionSplitter.
snehasish Aug 25, 2023
c3afa79
[flang][openacc] Fix function name resolution in acc routine
clementval Aug 25, 2023
df112cb
[Tests][ConstraintElim] autogen newly-added case in large-constant-in…
erikdesjardins Aug 25, 2023
f532d61
[IR] Add more details to StructuralHash
boomanaiden154 Aug 18, 2023
a7ca117
[lldb] Fix & re-enable TestVSCode_completions on Darwin
JDevlieghere Aug 25, 2023
f118e3b
[Attributor][NFC] Fix typo
jdoerfert Aug 25, 2023
d0b5523
[Attributor] Introduce limit for indirect call specialization
jdoerfert Aug 25, 2023
e5313ef
[Attributor] Filter potential callees based on `noundef` arguments
jdoerfert Aug 25, 2023
aad3641
[FunctionPropertiesAnalysis] Add CFG and call properties
boomanaiden154 Aug 23, 2023
f8838f8
[clang-format][NFC] Remove extraneous newlines at end of test cases
owenca Aug 25, 2023
f66e4bd
[mlir][math] Modify math.powf to handle negative bases.
bviyer Aug 25, 2023
93adcb7
[lld][WebAssembly] Add `--table-base` setting
sbc100 Aug 25, 2023
8456c8f
[CMake] Allow enabling Python in Fuchsia LLDB
mysterymath Aug 21, 2023
79cf24e
[llvm-nm][WebAssembly] Report the size of data symbols
sbc100 Aug 24, 2023
aa78e94
[Libomptarget] Support mapping indirect host calls to device functions
jhuber6 Aug 14, 2023
b24dab0
AMDGPU: Trim dead includes
arsenm Aug 25, 2023
35c2a75
AMDGPU: Fix asserting on fast f16 pown
arsenm Aug 25, 2023
1376dfa
[OpenMP][Fix] Update test after changing flag value
jhuber6 Aug 25, 2023
b9deec1
[BOLT] Fix cross-compilation build
rafaelauler Aug 25, 2023
08ed557
[mlir] mlir-opt: Fix linking after 7c4e8c6a273f2 .
dtzSiFive Aug 22, 2023
0a4fc4a
Revert "Emit the CodeView `S_ARMSWITCHTABLE` debug symbol for jump ta…
aeubanks Aug 26, 2023
9de3b35
[X86][test] Test that target("x86-64") and cpu_specific(x86_64) attri…
MaskRay Aug 26, 2023
27da153
[X86] __builtin_cpu_supports: support x86-64{,-v2,-v3,-v4}
MaskRay Aug 26, 2023
0c9c9dd
[clang][Sema] Add truncation warning on fortified snprintf
hazohelet Aug 26, 2023
ffad4f8
[clang-tidy] Container-size-empty fixed c++ version in tests to suppo…
felix642 Aug 26, 2023
856c463
[CodeGenPrepare] Fix modification status bug
boomanaiden154 Aug 25, 2023
1b4932e
[Pass] Enable detailed structural hashing
boomanaiden154 Aug 26, 2023
012b148
[mlir] Fix crash when adding nested dialect extensions
matthias-springer Aug 26, 2023
6a2552a
[lldb/infra] Revamp lldb.llvm.org
medismailben Aug 23, 2023
7afea8a
[NFC][FuncSpec] Update the description of function specialization.
labrinea Aug 24, 2023
1d0061f
[clang-format][doc] Correct typos
sstwcw Aug 24, 2023
2c9372e
[clang-format] Rename qualifier file comments (#64354)
mydeveloperday Aug 26, 2023
b6bab6d
[MLIR][transforms] Fix `cloneInto()` error in `RemoveDeadValues` pass
srishti-pm Aug 26, 2023
3891c8d
[MC] Remove comment no longer useful
brad0 Aug 26, 2023
6b2cb3b
[XCore] Remove unused TableGen classes and multiclasses
kosarev Aug 26, 2023
c852145
[clang-format][NFC] Skip stability test if input is pre-formatted
owenca Aug 26, 2023
a6986f6
Revert "[XCore] Remove unused TableGen classes and multiclasses"
brad0 Aug 26, 2023
ac00726
Reapply "Revert "[MemCpyOpt] implement multi BB stack-move optimizati…
khei4 Aug 24, 2023
b06f16f
[ARM][test] Test .long thumb_func - .
MaskRay Aug 26, 2023
1271ba4
[AArch64][test] Test GOT relocations referencing local STT_TLS are no…
MaskRay Aug 27, 2023
c95f23b
[docs][JITLink] Add a link to the ORC design document.
cmcaine Aug 26, 2023
265d6bd
[JITLink] Add a shouldAddDefaultPasses predicate to JITLinkerBase.
lhames Aug 26, 2023
35c9072
[JITLink] Fix access of moved-from argument in 265d6bda95b.
lhames Aug 27, 2023
fbcce33
[OpenMP] Honor `thread_limit` value when choosing grid size
shiltian Aug 27, 2023
e0f9cc7
Revert "Reapply "Revert "[MemCpyOpt] implement multi BB stack-move op…
vitalybuka Aug 27, 2023
19e3dfa
[clang-format][NFC] Chang some verifyFormat() to verifyNoChange()
owenca Aug 27, 2023
f2b8666
[ORC][clang-repl] Fix clang-repl -host-supports-jit option after 122e…
lhames Aug 27, 2023
08bbff4
[OpenMP] Codegen support for thread_limit on target directive for host
sandeepkosuri Aug 27, 2023
d57fe1d
[libc++] Implement LWG3464(istream::gcount() can overflow)
yronglin Aug 27, 2023
1c4c9e8
[flang][OpenMP] Added semantic checks for atomic capture, write, and …
NimishMishra Aug 27, 2023
2051a41
Revert "[libc++] Implement LWG3464(istream::gcount() can overflow)"
yronglin Aug 27, 2023
3a14993
Fix typos in documentation
kazutakahirata Aug 27, 2023
25ac7a0
[llvm] Use SmallDenseMap::contains (NFC)
kazutakahirata Aug 27, 2023
c81ff8b
[Analysis] Use DenseMap::lookup (NFC)
kazutakahirata Aug 27, 2023
e41d383
[ARM] Use isNullConstant (NFC)
kazutakahirata Aug 27, 2023
f1f1633
[clang-tidy][NFC] Fix readability-inconsistent-declaration-parameter-…
PiotrZSL Aug 26, 2023
8ba103c
[clang-tidy][NFC] Fix readability-static-accessed-through-instance fi…
PiotrZSL Aug 26, 2023
09c1b2e
[clang-tidy][NFC] Fix cppcoreguidelines-prefer-member-initializer fin…
PiotrZSL Aug 26, 2023
76284be
[clang-tidy][NFC] Fix bugprone-optional-value-conversion findings
PiotrZSL Aug 26, 2023
95320b5
[clang-tidy][NFC] Fix modernize-loop-convert findings
PiotrZSL Aug 26, 2023
b6ea164
[clang-tidy][NFC] Fix misc-unused-using-decls findings
PiotrZSL Aug 26, 2023
ac80017
[clang-tidy][NFC] Fix modernize-use-emplace findings
PiotrZSL Aug 26, 2023
87c4113
[clang-tidy][NFC] Fix modernize-use-using findings
PiotrZSL Aug 26, 2023
4b8accb
[clang-tidy][NFC] Fix readability-redundant-access-specifiers findings
PiotrZSL Aug 26, 2023
d57cf05
[clang-tidy][NFC] Fix modernize-concat-nested-namespaces findings
PiotrZSL Aug 26, 2023
c8644b1
[clang-tidy][NFC] Fix modernize-deprecated-headers findings
PiotrZSL Aug 26, 2023
c5a4f29
[clang-tidy][NFC] Fix readability-container-size-empty findings
PiotrZSL Aug 26, 2023
9999423
[clang-tidy][NFC] Fix performance-for-range-copy findings
PiotrZSL Aug 26, 2023
4d81b14
[clang-tidy][NFC] Fix performance-unnecessary-copy-initialization fin…
PiotrZSL Aug 26, 2023
9c857f2
[clang-tidy][NFC] Fix modernize-raw-string-literal findings
PiotrZSL Aug 26, 2023
ec5f4be
[clang-tidy][NFC] Fix modernize-return-braced-init-list findings
PiotrZSL Aug 26, 2023
24a7587
[clang-tidy][NFC] Fix readability-make-member-function-const findings
PiotrZSL Aug 26, 2023
7142f73
[clang-tidy][NFC] Fix modernize-type-traits findings
PiotrZSL Aug 26, 2023
44b38fe
[clang-tidy][NFC] Fix bugprone-implicit-widening-of-multiplication-re…
PiotrZSL Aug 26, 2023
7365802
[clang-tidy][NFC] Fix modernize-use-default-member-init findings
PiotrZSL Aug 27, 2023
54c2005
[X86] MergeConsecutiveStores.ll - add 32-bit i686 coverage
RKSimon Aug 27, 2023
fc2a9ad
[clang-tidy][NFC] Fix modernize-use-auto findings
PiotrZSL Aug 27, 2023
fe4bf68
[clang-tidy][NFC] Fix readability-uppercase-literal-suffix findings
PiotrZSL Aug 27, 2023
01c8bf6
[clang-tidy][NFC] Fix llvm-else-after-return findings
PiotrZSL Aug 27, 2023
857f532
[clang-tidy][NFC] Fix clang-analyzer-optin.cplusplus.UninitializedObj…
PiotrZSL Aug 27, 2023
26078f3
[clang-tidy][NFC] Fix cppcoreguidelines-missing-std-forward findings
PiotrZSL Aug 27, 2023
9f82209
[clang-tidy][NFC] Fix clang-analyzer-core.UndefinedBinaryOperatorResu…
PiotrZSL Aug 27, 2023
cbdc3e1
[clang-tidy][NFC] Fix cppcoreguidelines-init-variables findings
PiotrZSL Aug 27, 2023
5897b44
[HotColdSplit Test] Check that the outlined functions have internal v…
hiraditya Aug 26, 2023
a678ed4
[flang] Use DenseMap::lookup (NFC)
kazutakahirata Aug 27, 2023
7224749
[clang] Use SmallDenseMap::contains (NFC)
kazutakahirata Aug 27, 2023
57390c9
[AMDGPU] Use isNullConstant and isOneConstant (NFC)
kazutakahirata Aug 27, 2023
de3f7e2
[mlir] Fix infinite recursion in alias initializer
zero9178 Aug 26, 2023
f79bbef
[clang][NFC] Fix a few malformed links
danix800 Aug 27, 2023
3d64b63
[Sema] Modernize LambdaIntroducer (NFC)
kazutakahirata Aug 27, 2023
e7eadbd
[ARCMigrate] Modernize PoolVarInfo (NFC)
kazutakahirata Aug 27, 2023
7866c01
[AST] Modernize EvalResult (NFC)
kazutakahirata Aug 27, 2023
e7ee15e
[AST] Modernize MicrosoftNumberingContext (NFC)
kazutakahirata Aug 27, 2023
5ab7c28
[CodeGen] Modernize PeepholeProtection (NFC)
kazutakahirata Aug 27, 2023
f6f6f19
[CodeGen] Modernize InstrProfStats (NFC)
kazutakahirata Aug 27, 2023
8033231
[asan] Intercept atoll and strtoll on Windows
MaskRay Aug 27, 2023
7b1bfb2
[DWARFLinkerParallel] Remove a redundant return (NFC)
kazutakahirata Aug 27, 2023
24fcc0a
[clang] Remove redundant control flow statements (NFC)
kazutakahirata Aug 27, 2023
03dff0d
[clang-tidy] Disambiguate calls to log
rorth Aug 27, 2023
d791fa2
[BOLT] Use SmallPtrSet::contains (NFC)
kazutakahirata Aug 27, 2023
69ffd49
[mlir] Use {DenseSet,DenseMap,SemallDenseSet}::contains (NFC)
kazutakahirata Aug 27, 2023
0b51e64
[LLD] [MinGW] Hook up more LTO options
mstorsjo Aug 25, 2023
2a10510
Delete Ananas support
brad0 Aug 27, 2023
ad183b9
[Format] Modernize SpaceBeforeParensCustom (NFC)
kazutakahirata Aug 27, 2023
b32dfd9
[ASTMatchers] Modernize TimeBucketRegion (NFC)
kazutakahirata Aug 27, 2023
e47189b
[CodeGen] Modernize BreakContinue (NFC)
kazutakahirata Aug 27, 2023
8f1b718
[StaticAnalyzer] Modernize ObjCSuperCallChecker (NFC)
kazutakahirata Aug 27, 2023
a8931a1
[StaticAnalyzer] Modernize VforkChecker (NFC)
kazutakahirata Aug 27, 2023
3823395
[libclang] Modernize Location (NFC)
kazutakahirata Aug 27, 2023
dc3dc97
Remove the `conversionCallStack` from the MLIR TypeConverter
joker-eph Aug 27, 2023
ef3ab3d
[MLIR] Switch the default for usePropertiesForAttributes (NFC)
joker-eph Aug 22, 2023
57f03ba
Revert "[MLIR] Switch the default for usePropertiesForAttributes (NFC)"
joker-eph Aug 27, 2023
a8daefe
Lock the MLIR TypeConverter caches management to make it thread-safe …
joker-eph Aug 27, 2023
73a2eec
[LoongArch] Pre-commit test for bstrins optimization
SixWeining Aug 19, 2023
2602157
[LoongArch] Optimize (and (a & ~((2^^X - 1) << Y)) to (bstrins a, zer…
SixWeining Aug 25, 2023
915139f
[X86][BF16] Lower FP_EXTEND for vector types under AVX512BF16
phoebewang Aug 28, 2023
d0580b8
[FunctionImport] Initialize Reason
MaskRay Aug 28, 2023
57aee4e
[RISCV] Add check-prefixes ZVFH for zvfh and CHECK for zvfhmin. NFC.
tclin914 Aug 28, 2023
9d9c25f
[C++20] [Coroutines] Don't mark await_suspend as noinline if it is sp…
ChuanqiXu9 Aug 28, 2023
8514d20
[AIX] Handle ReadOnlyWithRel kind on AIX.
Aug 28, 2023
4198576
[clang] - Add missing builtin name to AtomicExpr JSON dump
serge-sans-paille Aug 22, 2023
56255e0
[builtins] Fix signed shift overflows in absvti2.c and negvti2.c
karka228 Aug 28, 2023
fb46377
[builtins] Fix undefined behavior in negdi2.c and negti2.c
karka228 Aug 28, 2023
5ae3211
[builtins] Fix signed shift overflows in ashlti3.c, ashrti3.c, ashldi…
karka228 Aug 26, 2023
510b6b7
[builtins] Fix signed integer overflows in divmodsi4.c, divmoddi4.c a…
karka228 Aug 28, 2023
beeb37a
[sanitizer] scanf interceptor: fix write size for %mc/%mC/%mS
MaskRay Aug 28, 2023
572cc8d
Revert "[C++20] [Coroutines] Mark await_suspend as noinline if the aw…
ChuanqiXu9 Aug 28, 2023
5487b67
[X86] Merge FeatureInfos_WithPLUS and FeatureInfos. NFC
topperc Aug 28, 2023
98d1b0e
[MemCpyOpt] add tests for unreachable block before calculating common…
khei4 Aug 27, 2023
e957bbe
[mlir][Bazel] Add missing dependency after dc3dc97410af5a298f9374da1f…
akuegel Aug 28, 2023
bed9081
Reland [JITLink][PowerPC] Pre-commit test for D158708. NFC.
Aug 28, 2023
04c1e52
[MC][test] Test Mach-O __TEXT,__gcc_except_tab
MaskRay Aug 28, 2023
94b0851
[sanitizer] use uptr to store the result of internal_strlen/internal_…
Enna1 Aug 28, 2023
183f49c
[Verifier] Sanity check alloca size against DILocalVariable fragment …
nikic Aug 24, 2023
cec855a
[OpenMP][OMPT] Fix ompt_get_task_memory implementation
jprotze Aug 28, 2023
779353e
[Driver] Improve legibility of ld -z options on Solaris
rorth Aug 28, 2023
ab090e9
[include-cleaner] Make handling of enum constants similar to members
kadircet Aug 22, 2023
1880d8f
[OpenMP][Archer] Add support for taskwait depend
jprotze Aug 28, 2023
98cf20f
Revert "[Verifier] Sanity check alloca size against DILocalVariable f…
nikic Aug 28, 2023
ad7e250
[sanitizer] Intercept glibc 2.38 __isoc23_* functions
MaskRay Aug 28, 2023
778494a
[mlir][bufferization] Add bufferization.dealloc canonicalizer to remo…
maerhart Aug 24, 2023
fff1830
[mlir][bufferization] Run the simple dealloc canonicalization pattern…
maerhart Aug 28, 2023
a470df3
[mlir][linalg][transform][python] Extend mix-in for Vectorize
ingomueller-net Aug 28, 2023
475a93a
[BOLT] Calculate output values using BOLTLinker
mtvec Aug 28, 2023
7590b76
Revert "[clang-format] Annotate constructor/destructor names"
kadircet Aug 28, 2023
b454ecc
[mlir] Apply ClangTidy fix (NFC)
akuegel Aug 28, 2023
7ffc507
[cmake] Drop redundant libdir suffix during gtest installation
nikic Aug 28, 2023
b32aa72
Recommit [C++20] [Coroutines] Mark await_suspend as noinline if the a…
ChuanqiXu9 Aug 28, 2023
471d9c5
[NFC][AMDGPU] assert we've found a value before use
ldrumm Aug 25, 2023
5ade434
[clang] Fix assertion fail when function has cleanups and fatal errors
Fznamznon Aug 28, 2023
6e4860f
[SDAG] Add SimplifyDemandedBits support for ISD::SPLAT_VECTOR
lukel97 Aug 24, 2023
8f1d1e2
[SDAG] Add computeKnownBits support for ISD::SPLAT_VECTOR_PARTS
lukel97 Aug 25, 2023
b91b4ec
[RISCV] Add missing mask operand for masked vclmul/vclmulh tests. NFC.
tclin914 Aug 28, 2023
985e399
[analyzer] Fix assertion on casting SVal to NonLoc inside the Iterato…
steakhal Aug 28, 2023
667a9f7
[MLIR][OpenMP] Fix compiler crash when translating omp.target to LLVM IR
skatrak Aug 24, 2023
239a8c2
Merge commit '667a9f7aa154ded9c7546b4d0d940237487d4698' into feature/…
kaz7 Aug 28, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions .github/workflows/repo-lockdown.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:
- 'clang/docs/**'
- 'clang/unitests/Format/**'
- 'clang/tools/clang-format/**'
- 'llvm/utils/git/**'

permissions:
pull-requests: write
Expand Down
5 changes: 3 additions & 2 deletions bolt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@ foreach (tgt ${BOLT_TARGETS_TO_BUILD})
endforeach()

set(BOLT_ENABLE_RUNTIME_default OFF)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64"
if ((CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64"
OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
AND (CMAKE_SYSTEM_NAME STREQUAL "Linux"
OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
AND "X86" IN_LIST BOLT_TARGETS_TO_BUILD)
AND (NOT CMAKE_CROSSCOMPILING))
set(BOLT_ENABLE_RUNTIME_default ON)
endif()
option(BOLT_ENABLE_RUNTIME "Enable BOLT runtime" ${BOLT_ENABLE_RUNTIME_default})
Expand Down
59 changes: 59 additions & 0 deletions bolt/include/bolt/Core/AddressMap.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
//===- bolt/Core/AddressMap.h - Input-output address map --------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Helper class to create a mapping from input to output addresses needed for
// updating debugging symbols and BAT. We emit an MCSection containing
// <Input address, Output MCSymbol> pairs to the object file and JITLink will
// transform this in <Input address, Output address> pairs. The linker output
// can then be parsed and used to establish the mapping.
//
//===----------------------------------------------------------------------===//
//
#ifndef BOLT_CORE_ADDRESS_MAP_H
#define BOLT_CORE_ADDRESS_MAP_H

#include "llvm/ADT/StringRef.h"

#include <optional>
#include <unordered_map>

namespace llvm {

class MCStreamer;

namespace bolt {

class BinaryContext;

class AddressMap {
using MapTy = std::unordered_multimap<uint64_t, uint64_t>;
MapTy Map;

public:
static const char *const SectionName;

static void emit(MCStreamer &Streamer, BinaryContext &BC);
static AddressMap parse(StringRef Buffer, const BinaryContext &BC);

std::optional<uint64_t> lookup(uint64_t InputAddress) const {
auto It = Map.find(InputAddress);
if (It != Map.end())
return It->second;
return std::nullopt;
}

std::pair<MapTy::const_iterator, MapTy::const_iterator>
lookupAll(uint64_t InputAddress) const {
return Map.equal_range(InputAddress);
}
};

} // namespace bolt
} // namespace llvm

#endif
26 changes: 1 addition & 25 deletions bolt/include/bolt/Core/BinaryBasicBlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,16 +100,6 @@ class BinaryBasicBlock {
using LocSymsTy = std::vector<std::pair<uint32_t, const MCSymbol *>>;
std::unique_ptr<LocSymsTy> LocSyms;

/// After output/codegen, map output offsets of instructions in this basic
/// block to instruction offsets in the original function. Note that the
/// output basic block could be different from the input basic block.
/// We only map instruction of interest, such as calls and markers.
///
/// We store the offset array in a basic block to facilitate BAT tables
/// generation. Otherwise, the mapping could be done at function level.
using OffsetTranslationTableTy = std::vector<std::pair<uint32_t, uint32_t>>;
std::unique_ptr<OffsetTranslationTableTy> OffsetTranslationTable;

/// Alignment requirements for the block.
uint32_t Alignment{1};

Expand Down Expand Up @@ -828,8 +818,7 @@ class BinaryBasicBlock {
return OutputAddressRange;
}

/// Update addresses of special instructions inside this basic block.
void updateOutputValues(const MCAsmLayout &Layout);
bool hasLocSyms() const { return LocSyms != nullptr; }

/// Return mapping of input offsets to symbols in the output.
LocSymsTy &getLocSyms() {
Expand All @@ -841,19 +830,6 @@ class BinaryBasicBlock {
return const_cast<BinaryBasicBlock *>(this)->getLocSyms();
}

/// Return offset translation table for the basic block.
OffsetTranslationTableTy &getOffsetTranslationTable() {
return OffsetTranslationTable
? *OffsetTranslationTable
: *(OffsetTranslationTable =
std::make_unique<OffsetTranslationTableTy>());
}

/// Return offset translation table for the basic block.
const OffsetTranslationTableTy &getOffsetTranslationTable() const {
return const_cast<BinaryBasicBlock *>(this)->getOffsetTranslationTable();
}

/// Return size of the basic block in the output binary.
uint64_t getOutputSize() const {
return OutputAddressRange.second - OutputAddressRange.first;
Expand Down
10 changes: 10 additions & 0 deletions bolt/include/bolt/Core/BinaryContext.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#ifndef BOLT_CORE_BINARY_CONTEXT_H
#define BOLT_CORE_BINARY_CONTEXT_H

#include "bolt/Core/AddressMap.h"
#include "bolt/Core/BinaryData.h"
#include "bolt/Core/BinarySection.h"
#include "bolt/Core/DebugData.h"
Expand Down Expand Up @@ -221,6 +222,9 @@ class BinaryContext {
bool ContainsDwarf5{false};
bool ContainsDwarfLegacy{false};

/// Mapping from input to output addresses.
std::optional<AddressMap> IOAddressMap;

/// Preprocess DWO debug information.
void preprocessDWODebugInfo();

Expand Down Expand Up @@ -1343,6 +1347,12 @@ class BinaryContext {
/* DWARFMustBeAtTheEnd */ false));
return Streamer;
}

void setIOAddressMap(AddressMap Map) { IOAddressMap = std::move(Map); }
const AddressMap &getIOAddressMap() const {
assert(IOAddressMap && "Address map not set yet");
return *IOAddressMap;
}
};

template <typename T, typename = std::enable_if_t<sizeof(T) == 1>>
Expand Down
37 changes: 21 additions & 16 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -366,14 +366,15 @@ class BinaryFunction {
std::string ColdCodeSectionName;

/// Parent function fragment for split function fragments.
SmallPtrSet<BinaryFunction *, 1> ParentFragments;
using FragmentsSetTy = SmallPtrSet<BinaryFunction *, 1>;
FragmentsSetTy ParentFragments;

/// Indicate if the function body was folded into another function.
/// Used by ICF optimization.
BinaryFunction *FoldedIntoFunction{nullptr};

/// All fragments for a parent function.
SmallPtrSet<BinaryFunction *, 1> Fragments;
FragmentsSetTy Fragments;

/// The profile data for the number of times the function was executed.
uint64_t ExecutionCount{COUNT_NO_PROFILE};
Expand Down Expand Up @@ -576,9 +577,6 @@ class BinaryFunction {
/// Count the number of functions created.
static uint64_t Count;

/// Map offsets of special instructions to addresses in the output.
InputOffsetToAddressMapTy InputOffsetToAddressMap;

/// Register alternative function name.
void addAlternativeName(std::string NewName) {
Aliases.push_back(std::move(NewName));
Expand Down Expand Up @@ -1193,7 +1191,7 @@ class BinaryFunction {

if (!Islands->FunctionConstantIslandLabel) {
Islands->FunctionConstantIslandLabel =
BC.Ctx->createNamedTempSymbol("func_const_island");
BC.Ctx->getOrCreateSymbol("func_const_island@" + getOneName());
}
return Islands->FunctionConstantIslandLabel;
}
Expand All @@ -1203,7 +1201,7 @@ class BinaryFunction {

if (!Islands->FunctionColdConstantIslandLabel) {
Islands->FunctionColdConstantIslandLabel =
BC.Ctx->createNamedTempSymbol("func_cold_const_island");
BC.Ctx->getOrCreateSymbol("func_cold_const_island@" + getOneName());
}
return Islands->FunctionColdConstantIslandLabel;
}
Expand All @@ -1223,14 +1221,7 @@ class BinaryFunction {
}

/// Update output values of the function based on the final \p Layout.
void updateOutputValues(const MCAsmLayout &Layout);

/// Return mapping of input to output addresses. Most users should call
/// translateInputToOutputAddress() for address translation.
InputOffsetToAddressMapTy &getInputOffsetToAddressMap() {
assert(isEmitted() && "cannot use address mapping before code emission");
return InputOffsetToAddressMap;
}
void updateOutputValues(const BOLTLinker &Linker);

/// Register relocation type \p RelType at a given \p Address in the function
/// against \p Symbol.
Expand Down Expand Up @@ -1776,9 +1767,18 @@ class BinaryFunction {

/// Returns if this function is a parent of \p Other function.
bool isParentOf(const BinaryFunction &Other) const {
return llvm::is_contained(Fragments, &Other);
return Fragments.contains(&Other);
}

/// Return the child fragment form parent function
iterator_range<FragmentsSetTy::const_iterator> getFragments() const {
return iterator_range<FragmentsSetTy::const_iterator>(Fragments.begin(),
Fragments.end());
}

/// Return the parent function for split function fragments.
FragmentsSetTy *getParentFragments() { return &ParentFragments; }

/// Returns if this function is a parent or child of \p Other function.
bool isParentOrChildOf(const BinaryFunction &Other) const {
return isChildOf(Other) || isParentOf(Other);
Expand Down Expand Up @@ -2170,6 +2170,11 @@ class BinaryFunction {
/// its code emission.
bool requiresAddressTranslation() const;

/// Return true if the linker needs to generate an address map for this
/// function. Used for keeping track of the mapping from input to out
/// addresses of basic blocks.
bool requiresAddressMap() const;

/// Adjust branch instructions to match the CFG.
///
/// As it comes to internal branches, the CFG represents "the ultimate source
Expand Down
4 changes: 4 additions & 0 deletions bolt/include/bolt/Core/BinarySection.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ class BinarySection {
mutable bool IsReordered{false}; // Have the contents been reordered?
bool IsAnonymous{false}; // True if the name should not be included
// in the output file.
bool IsLinkOnly{false}; // True if the section should not be included
// in the output file.

uint64_t hash(const BinaryData &BD,
std::map<const BinaryData *, uint64_t> &Cache) const;
Expand Down Expand Up @@ -452,6 +454,8 @@ class BinarySection {
void setIndex(uint32_t I) { Index = I; }
void setOutputName(const Twine &Name) { OutputName = Name.str(); }
void setAnonymous(bool Flag) { IsAnonymous = Flag; }
bool isLinkOnly() const { return IsLinkOnly; }
void setLinkOnly() { IsLinkOnly = true; }

/// Emit the section as data, possibly with relocations.
/// Use name \p SectionName for the section during the emission.
Expand Down
15 changes: 14 additions & 1 deletion bolt/include/bolt/Core/Linker.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,28 @@ class BOLTLinker {
std::function<void(const BinarySection &Section, uint64_t Address)>;
using SectionsMapper = std::function<void(SectionMapper)>;

struct SymbolInfo {
uint64_t Address;
uint64_t Size;
};

virtual ~BOLTLinker() = default;

/// Load and link \p Obj. \p MapSections will be called before the object is
/// linked to allow section addresses to be remapped. When called, the address
/// of a section can be changed by calling the passed SectionMapper.
virtual void loadObject(MemoryBufferRef Obj, SectionsMapper MapSections) = 0;

/// Return the address and size of a symbol or std::nullopt if it cannot be
/// found.
virtual std::optional<SymbolInfo> lookupSymbolInfo(StringRef Name) const = 0;

/// Return the address of a symbol or std::nullopt if it cannot be found.
virtual std::optional<uint64_t> lookupSymbol(StringRef Name) const = 0;
std::optional<uint64_t> lookupSymbol(StringRef Name) const {
if (const auto Info = lookupSymbolInfo(Name))
return Info->Address;
return std::nullopt;
}
};

} // namespace bolt
Expand Down
Loading