Skip to content
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

LLVM and SPIRV-LLVM-Translator pulldown (WW34) #10903

Closed
wants to merge 1,519 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1519 commits
Select commit Hold shift + click to select a range
59c59a3
[flang] Add the endianness check for vec_sld and vec_sldw intrinsics
kkwli Jul 11, 2023
851c248
[clang] Prevent possible use-after-free
kadircet Aug 18, 2023
686aef8
[LV] Remove compares and branches on undef from a few tests.
fhahn Aug 18, 2023
d6e7c16
[NFC][GuardUtils] Add util to extract widenable conditions
aleks-tmb Aug 18, 2023
89053e4
[flang][driver] Partial revert of D157837
banach-space Aug 18, 2023
1c66d08
Rename warn_drv_overriding_flag_option (-Woverriding-t-option) to war…
MaskRay Aug 18, 2023
1fcc2bc
Reapply "[DebugInfo] Alternate (more efficient) MD5 fix"
pogo59 Aug 18, 2023
de82fde
AMDGPU/Uniformity/GlobalISel: G_AMDGPU atomics are always divergent
mbrkusanin Aug 18, 2023
f631a10
[flang][openacc][NFC] Split global acc declare and function/subroutin…
clementval Aug 18, 2023
57cb2f6
Reland "[llvm-cov] Support multi-source object files for convert-for-…
yhgu2000 Aug 18, 2023
0c46a91
[MLIR] Infer locations for block argument conversion
nandor Aug 14, 2023
23f08af
[Inline] Avoid incompatible return attributes on deoptimize
annamthomas Aug 18, 2023
2dad7ee
[LangRef] Document integer hexadecimal constants
lukel97 Aug 18, 2023
cf5e918
Fix LLVM Sphinx bot
AaronBallman Aug 18, 2023
5a6c1ce
[libc++] Change _LIBCPP_CONSTEXPR_SINCE_XXX to constexpr in the dylib
ldionne Jul 21, 2023
40bf363
[MLIR][Math] Add support for f16 in the expansion of math.roundeven
alexander-shaposhnikov Aug 18, 2023
548789b
[libc] Fix HPD on extremely long numbers
michaelrj-google Aug 16, 2023
29b2009
Revert "[DAG] SimplifyDemandedBits - if we're only demanding the sign…
thurstond Aug 18, 2023
3e3880e
[lldb] Simplify the LLDB website structure
JDevlieghere Aug 18, 2023
d22883e
Revert "[MLIR][Math] Add support for f16 in the expansion of math.rou…
alexander-shaposhnikov Aug 18, 2023
7275734
[CUDA/NVPTX] Improve handling of memcpy for -Os compilations.
Artem-B Aug 17, 2023
4d1d8a8
[dsymutil] Fix data race in input verification (NFC)
JDevlieghere Aug 18, 2023
8f8df78
Added missing test constraints.
Artem-B Aug 18, 2023
160ab99
[emacs] Highlight hexadecimal integer constants
lukel97 Aug 18, 2023
770be43
[DAG] Fold insert_subvector undef, (extract_subvector X, 0), 0 with n…
topperc Aug 18, 2023
0a5347f
[DAG] SimplifyDemandedBits - Use DemandedBits intead of OriginalDeman…
topperc Aug 18, 2023
bbbb93e
Revert "[DAG] Fold insert_subvector undef, (extract_subvector X, 0), …
topperc Aug 18, 2023
f0221fb
[OpenMP] Add option to use different units for blocktime
TerryLWilmarth Aug 10, 2023
2de024e
[flang] Add PowerPC vec_lxv, vec_lvsl, vec_lvsr, vec_xl, vec_xl_be an…
kkwli Aug 1, 2023
62945bb
[Driver] Add PIE support on Solaris
rorth Aug 18, 2023
6fbfbb6
Merge from 'sycl' to 'sycl-web'
Aug 18, 2023
630ba7d
Removed whitespace that made "grep -rnI '[[:blank:]]$' clang/lib clan…
AntonRydahl Aug 18, 2023
f4ba1f3
Merge from 'main' to 'sycl-web' (120 commits)
tylanphear Aug 18, 2023
67b71ad
[DAG] Fold insert_subvector undef, (extract_subvector X, 0), 0 with n…
preames Aug 18, 2023
ca72b0a
[CodeGen] Use the TII hook for Noop insertion in BBSections (NFC)
dhoekwater Aug 18, 2023
80ce7ce
[RISCV] Mention frm in addition to vxrm in the comments for RISCVInse…
topperc Aug 18, 2023
92e0c0d
[DAG] Restrict insert_subvector undef, splat_veector, dontcare transform
preames Aug 18, 2023
078eb4b
[RISCV] Fix a UBSAN failure for passing INT64_MIN to std::abs.
topperc Aug 18, 2023
7602641
[lldb/crashlog] Add test for 8f75c4d01eff3c65d7ae40bfd05582de7dffa590…
medismailben Aug 12, 2023
eef5ead
[lldb/crashlog] Replace deprecated optparse by argparse (NFC)
medismailben Aug 14, 2023
21a597c
[lldb/crashlog] Fix module loading for crashed thread behaviour
medismailben Aug 14, 2023
3054a0c
[lldb/crashlog] Remove dead code (NFC)
medismailben Aug 14, 2023
4c4f0d8
[lldb/crashlog] Add support for Last Exception Backtrace
medismailben Aug 18, 2023
9a44eed
[lldb/crashlog] Skip non-crashed threads in batch mode
medismailben Aug 18, 2023
fc06cce
Revert "Respect integer overflow handling in abs builtin"
thurstond Aug 18, 2023
4da76ea
[libc++][NFC] Refactor enable_ifs in defaulted arguments to defaulted…
philnik777 Aug 18, 2023
28134a2
[NFCi][MergeFunctions] Consolidate Hashing Functions
boomanaiden154 Aug 17, 2023
07bb667
[llvm-readobj] Fix std::abs overflow after D156821
MaskRay Aug 18, 2023
472a510
Re-land "[-Wunsafe-buffer-usage][NFC] Slightly refactor and optimize …
ziqingluo-90 Aug 18, 2023
07181e2
[clang-format][NFC] Simplify getFirstNonComment() in the annotator
owenca Aug 16, 2023
b8f191e
[FunctionPropertiesAnalysis] Add operand type counts
boomanaiden154 Aug 15, 2023
6a0e536
[mlir] Fully qualify typenames in SymbolInterfaces.td
shkoo Aug 18, 2023
d8900f6
[ARM] Fix abs overflow when encoding instructions like strb r1, [r0],…
MaskRay Aug 18, 2023
7ba37f4
[clang][ExtractAPI] Add support for C++ class templates and concepts
evelez7 Aug 18, 2023
74727a4
[dsymutil] Fix stdio data races (NFC)
JDevlieghere Aug 18, 2023
9a20757
[TTI]Add InsertSubvector pattern in improveShuffleKindFromMask().
alexey-bataev Aug 8, 2023
8842d7e
[lldb] Add link to Discourse to the website
JDevlieghere Aug 18, 2023
8d8c898
[clang][ExtractAPI] Add support for C++ variable templates
evelez7 Aug 18, 2023
12db5c2
[lldb] Move Continuous Integration documentation under Testing
JDevlieghere Aug 18, 2023
984dc4b
[WebAssembly] Create separation between MC and CodeGen layers
rnk Jul 26, 2023
cf6d16f
[lldb] Rename "Projects" to "Open Projects" in the docs
JDevlieghere Aug 18, 2023
cd09089
[AArch64] Fix a couple comment typos. NFC.
mstorsjo Aug 18, 2023
3364d76
[clang-format][doc] Don't use the ".0" suffix on version numbers
owenca Aug 18, 2023
a7e20dd
LowLevelType: replace a reachable llvm_unreachable with assert
MaskRay Aug 18, 2023
8806b4f
Get LLDB building with clang-6 on Ubuntu 18.04
etcwilde Aug 18, 2023
4ab4e40
[OpenMP] Always pass the optimization level to the linker wrapper
jhuber6 Aug 18, 2023
a3e6ac1
[lldb/test] Fix TestSaveCrashlog.py following changes in eef5eadbe617
medismailben Aug 18, 2023
b10c2f8
Align mach exception data before accessing it
jasonmolenda Aug 18, 2023
ef70f5c
Revert "Align mach exception data before accessing it"
jasonmolenda Aug 18, 2023
1a2122e
Align mach exception data before accessing it
jasonmolenda Aug 18, 2023
b6e148f
[lldb] Shorten "DWARF Extensions supported by LLDB" in the docs
JDevlieghere Aug 18, 2023
14e3bec
Reland "[lld] Preliminary fat-lto-object support"
ilovepi Jul 24, 2023
6b539f5
Reland "[gold] Add preliminary FatLTO support to the Gold plugin""
ilovepi Jul 20, 2023
0c60b4b
[ubsan][test] Replace arch= features with TARGET=
MaskRay Aug 18, 2023
dd7fb51
[ubsan][test] Remove unused lit feature arch=config.target_arch
MaskRay Aug 18, 2023
e651c19
[ubsan][test] Fix a typo: target= instead of TARGET=
MaskRay Aug 18, 2023
03b43d3
Fix scf-to-cfg conversion for IndexSwitchOp
ezhulenev Aug 17, 2023
18b211c
Disable stdin/stdout for environment_check inferior process
jasonmolenda Aug 18, 2023
9c08e76
[Attributor] Introduce AAIndirectCallInfo
jdoerfert Jan 27, 2023
bb90063
[lldb] Fix data race in ThreadList
augusto2112 Aug 15, 2023
79a8e00
[lldb] Fix data race in Process
augusto2112 Aug 10, 2023
9be33de
[clang-tidy]`pro-bounds-array-to-pointer-decay` ignore predefined exp…
HerrCai0907 Aug 19, 2023
3e56988
[RISCV][GISel] Lower G_UADDE, G_UADDO, G_USUBE, and G_USUBO
topperc Aug 19, 2023
80b787e
[clang][ExtractAPI] Add support for C++ global function templates
evelez7 Aug 18, 2023
acc8a33
[-Wunsafe-buffer-usage][NFC] Refactor `getFixIts`---where fix-its are…
ziqingluo-90 Aug 18, 2023
b9d079d
[clang][test] Refine clang machine-function-split tests.
shenhanc78 Aug 17, 2023
3e69886
[clangd] Fix incorrect RecursiveASTVisitor usage in summarizeExpr()
HighCommander4 Aug 18, 2023
92464cc
[RISCV][GISel] Initial legalization support for G_LOAD and G_STORE.
topperc Aug 19, 2023
744b111
[clangd] Bail gracefully if given an assembly or IR source file
HighCommander4 Apr 26, 2023
8ee710a
[clangd] Parameter hints for calls through function pointers
HighCommander4 Aug 18, 2023
974c639
[M68k] Add MC support for bchg, bclr and bset instruction
tclin914 Aug 19, 2023
22a8402
MIPS: unwind, don't save/restore hi/lo for R6
wzssyqa Aug 19, 2023
f3c0eae
[RISCV] Rename Ventana DecoderNamespace to XVentana for matching othe…
tclin914 Aug 19, 2023
3e19416
[Attributor][FIX] Initialize variable
jdoerfert Aug 19, 2023
df8d33f
[OpenMP][AMDGPU] Add "amdgpu-flat-work-group-size" for known thread c…
jdoerfert Aug 19, 2023
18f5ada
[DAGCombiner] Don't reduce BUILD_VECTOR to BITCAST before LegalizeTyp…
tclin914 Aug 19, 2023
11e2975
Fx typos in documentation
kazutakahirata Aug 19, 2023
f237da1
[AST] Use DenseMap::lookup (NFC)
kazutakahirata Aug 19, 2023
394eeb6
[libc++][test] Fixes a typo in UNSUPPORTED.
mordante Aug 19, 2023
51c9f12
[mlir] Use StringMap::lookup (NFC)
kazutakahirata Aug 19, 2023
2fbbb7e
[clangd] Modernize SymbolLocation::Position (NFC)
kazutakahirata Aug 19, 2023
519ea98
[Sema] Modernize VirtSpecifiers (NFC)
kazutakahirata Aug 19, 2023
fbaf5cb
[StaticAnalyzer] Modernize EventDispatcher (NFC)
kazutakahirata Aug 19, 2023
b627bde
[Interp] Modernize State (NFC)
kazutakahirata Aug 19, 2023
d188916
[Driver][DXC] Accept -f{no-,}discard-value-names in the DXC driver
bogner Aug 19, 2023
53141b2
[LoongArch] Add LSX intrinsic support
wangleiat Aug 19, 2023
691f0d0
[LoongArch] Add LASX intrinsic support
wangleiat Aug 19, 2023
f3aa441
[LoongArch] Add LSX intrinsic testcases
leecheechen Aug 19, 2023
83311b2
[LoongArch] Add LASX intrinsic testcases
leecheechen Aug 19, 2023
82bbf70
[LoongArch] Add testcases of LASX intrinsics with immediates
leecheechen Aug 19, 2023
2f4b669
[LoongArch][MC] Add invalid immediate testcases for LSX instructions
leecheechen Aug 19, 2023
d163ae8
[LoongArch][MC] Add invalid immediate testcases for LASX instructions
leecheechen Aug 19, 2023
9aaf007
[SCF][Transform] Add transform.loop.fuse_sibling
Groverkss Aug 19, 2023
a67072e
[MLIR][Presburger] Fix incorrect doc comment and add const
iambrj Aug 16, 2023
0229dd0
[Reland][DWARFLinkerParallel] Add limited functionality to DWARFLinke…
avl-llvm May 20, 2023
65f2596
[gn build] Port 0229dd0626b2
llvmgnsyncbot Aug 19, 2023
8663915
[MLIR][Presburger] Implement getDomainSet and getRangeSet for Presbur…
iambrj Aug 19, 2023
69a8636
[clang][NFC] Remove redundant whitespaces
zyn0217 Aug 19, 2023
eac0b67
[docs] Fix include-what-you-use example
kimgr Aug 19, 2023
f471b49
[NFC][libc++] Removes no longer existing define.
mordante Aug 19, 2023
985a72b
[clang][Diagnostics] Provide source range to integer-overflow warnings
hazohelet Aug 19, 2023
960881a
clang: Make rewrite-includes-macros.cpp runnable on non-Win
nico Aug 18, 2023
9517afe
[TableGen] Modernize SubClassReference (NFC)
kazutakahirata Aug 19, 2023
c74b206
[TableGen] Modernize SubMultiClassReference (NFC)
kazutakahirata Aug 19, 2023
f10125b
[SystemZ] Modernize GPRRegs (NFC)
kazutakahirata Aug 19, 2023
5fcecea
[llvm-diff] Modernize DiffEntry (NFC)
kazutakahirata Aug 19, 2023
d27614e
[llvm-profdata] Modernize SampleOverlapStats (NFC)
kazutakahirata Aug 19, 2023
d85993d
[llvm] Remove redundant control flow statements (NFC)
kazutakahirata Aug 19, 2023
5675f44
[Transforms] Remove unnecessary const from a return type (NFC)
kazutakahirata Aug 19, 2023
622b611
[VPlan] Inline buildScalarSteps in single user (NFC).
fhahn Aug 19, 2023
b448fe0
[mlir][NFC] Split OpBase.td into multiple smaller units
Groverkss Aug 19, 2023
1eb90b9
[libc++] Fixes disabling wide character.
mordante Aug 17, 2023
e51b21a
[bazel] Add new files from b448fe0c126d45eabd6f2994559bb0124dae3113
d0k Aug 19, 2023
e940926
[bazel] Make transitive OpBase.td inclusions visible to pdll tests
d0k Aug 19, 2023
b41e75c
[RISCV][GISel] Make s32 a legal type for RV64 for any operation that …
topperc Aug 19, 2023
7ff7df1
Revert "[NFCi][MergeFunctions] Consolidate Hashing Functions"
boomanaiden154 Aug 19, 2023
46eded7
[LoopVectorize] Replace dyn_cast with isa to suppress an unused varia…
topperc Aug 19, 2023
3583bf3
[libc++] Make everything in namespace std have default type visibilit…
philnik777 Aug 19, 2023
cd34e89
[libc++][NFC] Remove __has_keyword
philnik777 Aug 19, 2023
6521c40
[MC] Remove an unneeded Darwin x86_64 workaround
MaskRay Aug 19, 2023
58696d2
[clang][X86] Add __cpuidex function to cpuid.h
boomanaiden154 Aug 19, 2023
64da0be
Reland "[NFCi][MergeFunctions] Consolidate Hashing Functions"
boomanaiden154 Aug 17, 2023
8b6f09e
Revert "[clang][X86] Add __cpuidex function to cpuid.h"
boomanaiden154 Aug 20, 2023
d6cd49d
[RISCV][GISel] Add legalizer tests for G_SEXT/ZEXT from s32 to s64 fo…
topperc Aug 20, 2023
fe42682
[RISCV][NFC] Rename CVROR, NFC
realqhc Aug 18, 2023
e1dfbc4
[clang][Sema][NFC] Modernize ActOnCallExpr
tbaederr Aug 20, 2023
ebbedc4
[clang][Sema][NFC] Remove TileLoc parameter from getDestructorName()
tbaederr Aug 20, 2023
8a58f0d
[clang][Interp] Handle global composite temporaries
tbaederr Feb 21, 2023
39236e9
[clang][Interp] Fix lifetime diagnostics for dead records
tbaederr Jun 5, 2023
1b95661
[AArch64] Regenerate sve-fixed-length-fp-minmax.ll
RKSimon Aug 20, 2023
08d0b55
[SwiftError] Use IMPLICIT_DEF as a definition for unreachable VReg uses
fzhinkin Jan 5, 2023
0e79111
[AVR][BPF][Lanai][Xtensa] Replace OperandMatchResultTy with ParseStat…
s-barannikov Jul 5, 2023
6dfe555
[clang][Interp] Rework initializers
tbaederr Jul 19, 2023
b1aa7cd
[clang][Sema][NFC] Make some locals const in getUndefinedButUsed()
tbaederr Aug 20, 2023
96377e5
[libc++][expected] Implement LWG3836
yronglin Aug 19, 2023
ca10a6c
[X86] Add test coverage for min/max signbit simplification
RKSimon Aug 20, 2023
95865e5
[DAG] SimplifyDemandedBits - if we're only demanding the signbit, a S…
RKSimon Aug 20, 2023
71a7192
[libc++][doc] Marks LLVM-17 release notes as final.
mordante Aug 19, 2023
9405b67
[X86] Add test coverage for PR33879 (Issue #33226)
RKSimon Aug 20, 2023
2c090e9
[X86] Add test case for Issue #64655
RKSimon Aug 20, 2023
3d22dac
Revert "[clang][test] Refine clang machine-function-split tests."
nico Aug 20, 2023
62b2b39
[mlir][irdl] Support variadicity check in operations
math-fehr Jun 22, 2023
c4e4b64
[docs] Update the static analyzer bug reporting page
AaronBallman Aug 20, 2023
ef38e6d
[GlobalISel] introduce MIFlag::NoConvergent
ssahasra Aug 18, 2023
00aa1a8
Revert "[mlir][irdl] Support variadicity check in operations"
math-fehr Aug 20, 2023
326280d
[llvm][NFC] Refactor AutoUpgrade dbg case
urnathan Aug 16, 2023
1295a35
[mlir][irdl] Support variadicity check in operations
math-fehr Jun 22, 2023
d6a1388
[llvm][NFC] Refactor AutoUpdater case 'e'
urnathan Aug 9, 2023
bd31c36
[AST] Modernize FunctionTypeDepthState (NFC)
kazutakahirata Aug 20, 2023
7a68060
[AST] Modernize ExternalLayout (NFC)
kazutakahirata Aug 20, 2023
f01f2de
[CodeGen] Modernize CallArgList (NFC)
kazutakahirata Aug 20, 2023
477457c
[CodeGen] Modernize NullReturnState (NFC)
kazutakahirata Aug 20, 2023
c6bcdc4
[CodeGen] Modernize GuardInfo (NFC)
kazutakahirata Aug 20, 2023
4d434f7
[Sema] Modernize Usage (NFC)
kazutakahirata Aug 20, 2023
0db1ae3
[mlir][CFGToSCF] Visit subregions in CFGToSCF pass
Hardcode84 Aug 19, 2023
69e47de
[Propeller] Deprecate Codegen paths for SHT_LLVM_BB_ADDR_MAP version 1.
rlavaee Aug 18, 2023
56f5738
[LV] Move induction ::execute impls to VPlanRecipes.cpp (NFC).
fhahn Aug 20, 2023
d151aa4
Fix MLIR build failure: error: no member named 'getValue' in 'mlir::O…
joker-eph Aug 20, 2023
ad83164
Revert "Fix MLIR build failure: error: no member named 'getValue' in …
joker-eph Aug 20, 2023
87a1421
Fix MLIR build failure: error: no member named 'getValue' in 'mlir::O…
joker-eph Aug 20, 2023
a695be7
[llvm][NFC] Refactor AutoUpgrade case 'w'
urnathan Aug 17, 2023
6acff53
[X86] Support -march=gracemont
FreddyLeaf Aug 21, 2023
14de5a2
[mlir][complex] Initial support for FastMath flag when converting to …
Lewuathe Aug 21, 2023
7ed0f5b
[lit] Use raw strings for backslash escapes to fix SyntaxWarnings
mgorny Aug 20, 2023
8af297b
[SystemZ][z/OS] Fix the entry point marker for leaf functions
Everybody0523 Aug 21, 2023
01da5b9
[RISCV] Remove trailing whitespace. NFC.
tclin914 Aug 21, 2023
4320722
Revert "[SystemZ][z/OS] Fix the entry point marker for leaf functions"
Everybody0523 Aug 21, 2023
0c76f46
[LoongArch] Add testcases of LSX intrinsics with immediates
leecheechen Aug 21, 2023
dc10bd4
[clangd] don't add inlay hint for dependent type in structured binding
v1nh1shungry Aug 15, 2023
4b60e1e
[RISCV] Add function that check extension name with version
BeMg Aug 21, 2023
41e71f5
[GlobalISel] Remove unneeded empty check. NFC
MaskRay Aug 21, 2023
2c3ded6
[flang][OpenMP] Support for common block in copyin clause
NimishMishra Aug 4, 2023
cd7280b
[TableGen] Fix wrong lex result on 64-bit integer boundaries
zsrkmyn Aug 21, 2023
abed823
[Sema] Modernize UsageInfo (NFC)
kazutakahirata Aug 21, 2023
9b987e0
[Sema] Modernize ShadowMapEntry (NFC)
kazutakahirata Aug 21, 2023
760e0c3
[StaticAnalyzer] Modernize CFNumberChecker (NFC)
kazutakahirata Aug 21, 2023
848be08
[StaticAnalyzer] Modernize DeleteBugVisitor (NFC)
kazutakahirata Aug 21, 2023
6f31908
[StaticAnalyzer] Modernize InvalidationInfo (NFC)
kazutakahirata Aug 21, 2023
bf69217
[instcombine] Sunk instructions with invalid source location.
CarlosAlbertoEnciso Aug 21, 2023
0baf85c
[clang] Set FP options in Sema when instantiating CompoundStmt
spavloff Aug 21, 2023
1341156
[CodeGen] Use isAllOnesConstant and isNullConstant (NFC)
kazutakahirata Aug 21, 2023
6f4a6e1
[Docs] Fix typo in opaque pointers doc
jasilvanus Aug 21, 2023
73e5a70
[clang] Run test for concrete target
spavloff Aug 21, 2023
3758aed
[flang][driver] Mark -Wl as visible in Flang
banach-space Aug 18, 2023
48aeca0
[flang] Run pic-flags.f90 test in more places
DavidSpickett Aug 18, 2023
45325a2
[mlir][Bazel] Add missing dependencies after 14de5a2a4f27ed719b1f59f9…
akuegel Aug 21, 2023
7549cde
[lldb][debugserver] Fix build after libcxx removed generic char_trait…
DavidSpickett Aug 21, 2023
b09c575
[AArch64] Add Defs=[NZCV] to MTE loop pseudos.
statham-arm Aug 21, 2023
23c8d38
[BOLT] Calculate input to output address map using BOLTLinker
mtvec Aug 21, 2023
fab91e9
Revert "[Reland][DWARFLinkerParallel] Add limited functionality to DW…
nikic Aug 21, 2023
94e14b9
[gn build] Port 23c8d3825831
llvmgnsyncbot Aug 21, 2023
b064a2c
[gn build] Port fab91e950966
llvmgnsyncbot Aug 21, 2023
a40c984
[AArch64][GlobalISel] Support more legal types for EXTEND
chuongg3 Aug 17, 2023
9108897
[clang] Report missing designated initializers in C++
Fznamznon Aug 21, 2023
5f2a7fa
[Reland][Reland][DWARFLinkerParallel] Add limited functionality to DW…
avl-llvm May 20, 2023
26dc284
[AMDGPU] ISel for amdgpu_cs_chain[_preserve] functions
rovka May 30, 2023
ab45b4f
[gn build] Port 5f2a7fa67e9b
llvmgnsyncbot Aug 21, 2023
b16a758
[flang][driver] Disable Clang options in Flang
banach-space Aug 18, 2023
b0af89c
[emacs] Add regexps for defuns
lukel97 Aug 17, 2023
fa1b6e6
[X86] Fix i128 argument passing under SysV ABI
nikic Aug 17, 2023
f5130a5
[InstCombine] Fold (-a >> b) and/or/xor (~a >> b) into (-a and/or/xor…
kitaisreal Aug 21, 2023
341443d
[InstCombine] Fold (-a >> b) and/or/xor (~a >> b) into (-a and/or/xor…
kitaisreal Aug 21, 2023
7ed4b7e
[SCEVExpander] Change getRelatedExistingExpansion() to return bool (NFC)
nikic Aug 21, 2023
69bd66b
[Tests] Remove some and/or constant expressions in tests (NFC)
nikic Aug 21, 2023
ba818c4
[DAG] replaceStoreOfInsertLoad - don't fold if the inserted element i…
RKSimon Aug 21, 2023
8ce23b8
[mlir][ArmSME] Add vector to tile intrinsics
c-rhodes Aug 3, 2023
5272ae6
[AMDGPU] Add IsChainFunction to the MachineFunctionInfo
rovka Jul 27, 2023
1851858
[clang][Interp][NFC] Fix a doc comment.
tbaederr Aug 20, 2023
a3b11ce
[RISCV][NFC] Move tests of inline asm memory constraints to separate …
wangpc-pp Aug 21, 2023
dc60003
[RISCV] Support global address as inline asm memory operand of `m`
wangpc-pp Aug 21, 2023
955d761
[AArch64] [GlobalISel] Fix clobbered callee saved registers with win6…
mstorsjo Aug 18, 2023
db158c7
[AArch64] Update generic sched model to A510
harviniriawan Jul 28, 2023
cd96aa7
[libc] Use LIBC_HAS_BUILTIN instead of __has_builtin directly.
mikhailramalho Aug 21, 2023
189f4ac
[mlir][Presburger] Remove slow applyDomainAndRange test
Groverkss Aug 21, 2023
6970920
[libc] Remove 'try_open' from the client interface
jhuber6 Aug 21, 2023
b0ce192
[bazel][libc] Add missing dependency for cd96aa7e10c6e081a68edd9ff67e…
d0k Aug 21, 2023
7e66e30
[LangRef][DebugInfo] Update DIFile checksum description
jryans Aug 18, 2023
9e2c685
Merge commit '7e66e3072ddd03c89e8c12fb98f67ec953cbc6c2' into llvmspir…
sys-ce-bb Aug 21, 2023
e1e14db
Explicitly set clang-format binary (#2123)
svenvh Aug 11, 2023
76b5d11
Convert DebugInfo tests to opaque pointers (#2126)
svenvh Aug 16, 2023
8039af2
Report disallowed extensions in metadata (#2125)
svenvh Aug 17, 2023
35564c6
Convert transcoding tests to opaque pointers (#2127)
svenvh Aug 17, 2023
fe3d9e6
Allow cooperative matrix types for OpMatrixTimesScalar (#2124)
vmaksimo Aug 17, 2023
cf61891
Convert SpecConstants+intrinsics tests to opaque pointers (#2129)
svenvh Aug 18, 2023
20ca00b
Fix is.fpclass intrinsic emulation (#2130)
MrSidims Aug 20, 2023
88c0a4d
Merge remote-tracking branch 'origin/sycl' into llvmspirv_pulldown
jsji Aug 23, 2023
30614a5
Update sycl-offload.cpp due to 44e6c114d974c80e4a88c1b93bfe646ac9b6d08d
jsji Aug 23, 2023
d29f171
Fix revert of 8acdcf4016876
jsji Aug 22, 2023
33670fa
Remove leftover file
jsji Aug 21, 2023
755c22e
Merge remote-tracking branch 'origin/sycl' into llvmspirv_pulldown
jsji Aug 29, 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.
17 changes: 17 additions & 0 deletions .github/workflows/sync-release-repo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Sync Release Repositories
permissions:
contents: write
on:
workflow_dispatch
env:
RELEASE_BRANCH: release/17.x
GH_TOKEN: ${{ secrets.RELEASE_WORKFLOW_PUSH_SECRET }}
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Fetch LLVM sources
uses: actions/checkout@v3
- name: Run Sync Script
run: |
llvm/utils/git/sync-release-repo.sh
8 changes: 0 additions & 8 deletions bolt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,6 @@ compiler option. Since GCC8 enables this option by default, you have to
explicitly disable it by adding `-fno-reorder-blocks-and-partition` flag if
you are compiling with GCC8 or above.

NOTE2: DWARF v5 is the new debugging format generated by the latest LLVM and GCC
compilers. It offers several benefits over the previous DWARF v4. Currently, the
support for v5 is a work in progress for BOLT. While you will be able to
optimize binaries produced by the latest compilers, until the support is
complete, you will not be able to update the debug info with
`-update-debug-sections`. To temporarily work around the issue, we recommend
compiling binaries with `-gdwarf-4` option that forces DWARF v4 output.

PIE and .so support has been added recently. Please report bugs if you
encounter any issues.

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
29 changes: 17 additions & 12 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 @@ -1225,13 +1223,6 @@ 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;
}

/// Register relocation type \p RelType at a given \p Address in the function
/// against \p Symbol.
/// Assert if the \p Address is not inside this function.
Expand Down Expand Up @@ -1779,6 +1770,15 @@ class BinaryFunction {
return llvm::is_contained(Fragments, &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
3 changes: 2 additions & 1 deletion bolt/include/bolt/Core/DIEBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
#include "llvm/DebugInfo/DWARF/DWARFExpression.h"
#include "llvm/DebugInfo/DWARF/DWARFUnit.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/ErrorHandling.h"

#include <list>
#include <memory>
#include <optional>
#include <unordered_map>
#include <unordered_set>
#include <vector>

namespace llvm {
Expand Down Expand Up @@ -113,6 +113,7 @@ class DIEBuilder {
std::vector<LocWithReference> LocWithReferencesToProcess;
BumpPtrAllocator DIEAlloc;
ProcessingType Type;
std::unordered_set<uint64_t> DWARFDieAddressesParsed;
};

std::unique_ptr<State> BuilderState;
Expand Down
3 changes: 0 additions & 3 deletions bolt/include/bolt/Core/DebugData.h
Original file line number Diff line number Diff line change
Expand Up @@ -313,9 +313,6 @@ class DebugAddrWriter {
/// Adds Address to map.
uint32_t getIndexFromAddress(uint64_t Address, DWARFUnit &CU);

/// Adds {\p Address, \p Index} to \p CU.
void addIndexAddress(uint64_t Address, uint32_t Index, DWARFUnit &CU);

/// Write out entries in to .debug_addr section for CUs.
virtual void update(DIEBuilder &DIEBlder, DWARFUnit &CUs);

Expand Down
63 changes: 63 additions & 0 deletions bolt/lib/Core/AddressMap.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#include "bolt/Core/AddressMap.h"
#include "bolt/Core/BinaryContext.h"
#include "bolt/Core/BinaryFunction.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/Support/DataExtractor.h"

namespace llvm {
namespace bolt {

const char *const AddressMap::SectionName = ".bolt.address_map";

static void emitLabel(MCStreamer &Streamer, uint64_t InputAddress,
const MCSymbol *OutputLabel) {
Streamer.emitIntValue(InputAddress, 8);
Streamer.emitSymbolValue(OutputLabel, 8);
}

void AddressMap::emit(MCStreamer &Streamer, BinaryContext &BC) {
Streamer.switchSection(BC.getDataSection(SectionName));

for (const auto &[BFAddress, BF] : BC.getBinaryFunctions()) {
if (!BF.requiresAddressMap())
continue;

for (const auto &BB : BF) {
if (!BB.getLabel()->isDefined())
continue;

emitLabel(Streamer, BFAddress + BB.getInputAddressRange().first,
BB.getLabel());

if (!BB.hasLocSyms())
continue;

for (auto [Offset, Symbol] : BB.getLocSyms())
emitLabel(Streamer, BFAddress + Offset, Symbol);
}
}
}

AddressMap AddressMap::parse(StringRef Buffer, const BinaryContext &BC) {
const auto EntrySize = 2 * BC.AsmInfo->getCodePointerSize();
assert(Buffer.size() % EntrySize == 0 && "Unexpected address map size");

DataExtractor DE(Buffer, BC.AsmInfo->isLittleEndian(),
BC.AsmInfo->getCodePointerSize());
DataExtractor::Cursor Cursor(0);

AddressMap Parsed;
Parsed.Map.reserve(Buffer.size() / EntrySize);

while (Cursor && !DE.eof(Cursor)) {
const auto Input = DE.getAddress(Cursor);
const auto Output = DE.getAddress(Cursor);
Parsed.Map.insert({Input, Output});
}

assert(Cursor && "Error reading address map section");
return Parsed;
}

} // namespace bolt
} // namespace llvm
22 changes: 0 additions & 22 deletions bolt/lib/Core/BinaryBasicBlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -613,27 +613,5 @@ BinaryBasicBlock *BinaryBasicBlock::splitAt(iterator II) {
return NewBlock;
}

void BinaryBasicBlock::updateOutputValues(const MCAsmLayout &Layout) {
if (!LocSyms)
return;

const uint64_t BBAddress = getOutputAddressRange().first;
const uint64_t BBOffset = Layout.getSymbolOffset(*getLabel());
for (const auto &LocSymKV : *LocSyms) {
const uint32_t InputFunctionOffset = LocSymKV.first;
const uint32_t OutputOffset = static_cast<uint32_t>(
Layout.getSymbolOffset(*LocSymKV.second) - BBOffset);
getOffsetTranslationTable().emplace_back(
std::make_pair(OutputOffset, InputFunctionOffset));

// Update reverse (relative to BAT) address lookup table for function.
if (getFunction()->requiresAddressTranslation()) {
getFunction()->getInputOffsetToAddressMap().emplace(
std::make_pair(InputFunctionOffset, OutputOffset + BBAddress));
}
}
LocSyms.reset(nullptr);
}

} // namespace bolt
} // namespace llvm
4 changes: 4 additions & 0 deletions bolt/lib/Core/BinaryEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ void BinaryEmitter::emitAll(StringRef OrgSecPrefix) {
}

emitDataSections(OrgSecPrefix);

// TODO Enable for Mach-O once BinaryContext::getDataSection supports it.
if (BC.isELF())
AddressMap::emit(Streamer, BC);
}

void BinaryEmitter::emitFunctions() {
Expand Down
Loading
Loading