Skip to content

LLVM and SPIRV-LLVM-Translator pulldown (WW33) #6536

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 562 commits into from
Aug 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
562 commits
Select commit Hold shift + click to select a range
b395c0f
[mlir] Update comment now that DenseArrayAttr has Tensor type.
akuegel Aug 2, 2022
b651fdf
[DAG] matchRotateSub - ensure the (pre-extended) shift amount is wide…
RKSimon Aug 2, 2022
c23e2c0
[libcxx] Fixed a number of typos
GabrielRavier Aug 2, 2022
8be1197
[libc++] Implement P2499R0 (`string_view` range constructor should be…
fsb4000 Aug 2, 2022
64bb0ae
[mlir] add TOC to top-level documents
ftynse Aug 2, 2022
29f97ec
[AArch64] Mul fold tests for D130874. NFC
davemgreen Aug 2, 2022
008ea1c
[mlir][Math] Add constant folder for TanhOp.
Aug 2, 2022
a1bf0c0
[LLDB] Skip buildbot failures AArch64/Windows
omjavaid Aug 2, 2022
1206f72
[AArch64] Fold Mul(And(Srl(X, 15), 0x10001), 0xffff) to CMLTz
davemgreen Aug 2, 2022
bb28324
[IRBuilder] CreateIntrinsic with implicit mangling
jayfoad Jul 29, 2022
07e6eb6
[yaml2obj] Add a `-E` flag to preprocess only.
statham-arm Aug 2, 2022
c783ca0
Revert "Missing tautological compare warnings due to unary operators"
AaronBallman Aug 2, 2022
5dbd8fa
[lld] Fixed a number of typos
GabrielRavier Aug 2, 2022
6093a77
[lldb] Create an enum to specify the kind of ArchSpec matching
labath Mar 9, 2022
23021d4
[X86][FP16] Fix vector_shuffle and lowering without f16c feature prob…
phoebewang Aug 2, 2022
9b86792
[flang] Support lowering of intrinsic module procedure `c_loc`
PeixinQiao Aug 2, 2022
1f9212d
[flang] Support extention intrinsic ABORT
PeixinQiao Aug 2, 2022
48b6f5c
[flang] Add some semantic checks for derived type with BIND attribute
PeixinQiao Aug 2, 2022
0b47615
[LV] Recognize store of invariant value to invariant address as uniform
preames Aug 2, 2022
5ec6ea3
[clang][OpenMP][DebugInfo] Mark OpenMP generated functions as artificial
alokkrsharma Oct 11, 2021
c24d68f
[AMDGPU] Take advantage of VOP3 literals in convertToThreeAddress
jayfoad Aug 2, 2022
71d1bd1
llvm-reduce: reorder passes to run the ones first that delete functio…
regehr Aug 2, 2022
e301e07
[AMDGPU] Remove IR SpeculativeExecution pass from codegen pipeline
jayfoad Jul 21, 2022
a321d95
[AMDGPU] avoid blind converting to VALU REG_SEQUENCE and PHIs
alex-t Aug 1, 2022
2e5c516
[RISCV] Add scheduler class to PseudoReadVLENB.
topperc Aug 2, 2022
ae68778
[RISCV] Add scheduler classes to PseudoVMV*R_V.
topperc Aug 2, 2022
679169b
[libc++][format] Enables feature-test macro.
mordante Jul 29, 2022
da38bcf
[libc++][format] Improves generated files.
mordante Aug 1, 2022
85a6dd5
[MIPS] Expose the ZERO register as a constant physical register
weiguozhi Aug 2, 2022
d735307
[LLDB][Reliability] Remove dead code.
fixathon Aug 1, 2022
f6d9f00
[DebugInfo] Test commit: update irrelevant comments
dzhidzhoev Aug 2, 2022
8468e67
[SPIRV] Add tests to improve test coverage
Aug 2, 2022
d884eb2
[test] Remove -fsanitize-coverage-whitelist=
MaskRay Aug 2, 2022
b1b22b4
[RISCV][Clang] Support policy functions for vneg, vnot, vncvt, vwcvt,
zakk0610 Aug 1, 2022
7eddeb9
[RISCV][Clang] Support policy functions for vmerge, vfmerge and
zakk0610 Aug 1, 2022
9caf2cc
[RISCV][Clang] Support policy functions for Vector Comparison
zakk0610 Aug 2, 2022
dffdca8
[RISCV][Clang] Support policy functions for Vector Reduction
zakk0610 Aug 2, 2022
bb99d4b
[RISCV][Clang] Support policy functions for Vector Mask Instructions.
zakk0610 Aug 2, 2022
71aecbb
[AArch64] Treat x18 as callee-saved in functions with Windows calling…
dzhidzhoev Jul 27, 2022
d3c4609
[GIsel] Add missing space between type and name in GICombinerHelperArg
redstar Aug 2, 2022
b383753
[GIsel] Add missing libcall for G_MUL to LegalizerHelper
redstar Aug 2, 2022
eb5aeee
[test] Update BoundsChecking/simple.ll
aeubanks Aug 2, 2022
43aa4ac
[StandardInstrumentations] Assign names to basic blocks without names
aeubanks Jul 26, 2022
ceebf91
[libc++][doc] Update spaceship status page
vogelsgesang Aug 2, 2022
29fbe60
[MLIR] Rename the generic LLVM allocation and deallocation functions
mscuttari Aug 2, 2022
3e43d0c
This patch fixes these errors while building BOLT.
tmsri Aug 2, 2022
f712775
[libc++][format] Exposes basic-format-string
mordante Jul 15, 2022
9921ef7
[mlir][sparse] remove singleton dimension level type (for now)
aartbik Aug 2, 2022
92c1bc6
[CodeGen][inlineasm] assume the flag output of inline asm is boolean …
Jul 29, 2022
508c431
[SemaCXX] Validate destructor is valid for dependent classes
royjacobson Aug 1, 2022
a1a30dc
[libcxx][test] Test code should inspect `TEST_STD_VER`, not `_LIBCPP_…
CaseyCarter Aug 2, 2022
20f7f9b
[NFC][DirectX backend] Fix crash when emit_obj for DirectX backend.
python3kgae Jul 31, 2022
ce3d0e8
[mlir][sparse] enable SDDMM-flavored fusion
aartbik Aug 2, 2022
0a56927
[LLDB][NFC] Fix LLDB_WATCH_TYPE_IS_VALID macro
fixathon Aug 2, 2022
ce6aff8
[libc++] Update documentation on testing libc++
ldionne Aug 2, 2022
d7100b3
[AMDGPU] Add GCNMaxILPSchedStrategy
kerbowa Jul 30, 2022
54110b8
Fix use-after-free in clang-apply-replacements
benlangmuir Aug 2, 2022
4146c17
[nfc] Remove unused parameter in TailDuplicator::duplicateSimpleBB
mtrofin Aug 2, 2022
40eec27
[AMDGPU] Add llvm_unreachable to switch statement added in d7100b398.
kerbowa Aug 2, 2022
d8879fb
Allow firmware binaries to be specified only by load address
jasonmolenda Aug 2, 2022
803386d
Revert "Allow firmware binaries to be specified only by load address"
jasonmolenda Aug 2, 2022
95a9299
Adds the NSDateFormatter checker to clang-tidy
t-rasmud Aug 2, 2022
c2fc8d9
[mlir][GPU] Allow bare pointer memrefs when calling GPU kernels
krzysz00 Jul 11, 2022
577840b
[gn build] Port 95a92995d45f
llvmgnsyncbot Aug 2, 2022
560efad
workflows: Release Workflow - Avoid selecting random reviewers when n…
tstellar Aug 2, 2022
96d1218
Allow firmware binaries to be specified only by load address
jasonmolenda Aug 2, 2022
59c6f41
[LLD] [MachO] Fix GCC build warnings
mstorsjo Aug 2, 2022
318454a
Inline my uuid_is_null() implementation in a header file
jasonmolenda Aug 2, 2022
e8468dd
[flang] Add semantics test for ERROR STOP statement
ngeorge1098 Jul 16, 2022
f7872cd
CommandLine: add and use cl::SubCommand::get{All,TopLevel}
nhaehnle Jun 29, 2022
ee4d815
[DX] Remove IntrNoMem from create handle intrinsic
llvm-beanz Aug 2, 2022
9cf6511
[OpenMP][libomp] Detect if test compiler has omp.h
jpeyton52 Aug 1, 2022
2b7203a
[Libomptarget] Deinitialize AMDGPU global state more intentionally
jhuber6 Aug 2, 2022
a5605f1
[RISCV] Fix operand number in debug message in RISCVMergeBaseOffset.
topperc Aug 2, 2022
4f0262c
Fix use-after-free in SymbolTable::replaceAllSymbolUses
joker-eph Aug 2, 2022
6cbc6e9
[LLDB] Add SBInstruction::GetControlFlowKind()
jj10306 Aug 2, 2022
4502e35
[LLDB][NFC] Fix incorrect return status Some functions always return …
fixathon Aug 2, 2022
c7bd61d
Revert "[lldb][modules] Disable Clang Modules in source/Host director…
JDevlieghere Aug 2, 2022
63725eb
[NFC] Remove no-op code from x86AssemblyInspectionEngine::jmp_to_reg_p
jasonmolenda Aug 2, 2022
4bd9d98
[SPIRV] Fix style of LIT tests and remove metadata
Aug 2, 2022
3dfa562
[AMDGPU] Add CL option for max-ilp scheduler.
kerbowa Aug 2, 2022
f9b4ea0
[trace] Add SBTraceCursor bindings
jj10306 Aug 1, 2022
3ddc280
[gn build] Port f9b4ea0ce9ef
llvmgnsyncbot Aug 2, 2022
6ac30fa
[flang] Add stopped_images to list of intrinsics and add test
ktras Jun 23, 2022
d434e40
[llvm][NFC] Refactor code to use ProfDataUtils
ilovepi Jul 27, 2022
db0ac30
[libc++] Fix warning C4244 in std/numerics/rand/rand.dist/rand.dist.s…
fsb4000 Aug 3, 2022
495519e
[libc++][NFC] Don't rely on `<algorithm>` transitively including `<me…
fsb4000 Aug 3, 2022
39d4e16
[libc++][test] Propagate host environment to libc++ test suite
mgorny Aug 3, 2022
d8602bc
fix f9b4ea0ce9efb4132a75551c40b2efc049e5b9f7
Aug 3, 2022
ce1b24c
[IRBuilder] Handle constexpr-bitcast for IRBuilder::CreateThreadLocal…
ChuanqiXu9 Aug 3, 2022
2d3d0f5
workflows: Remove symbol versions from libclang.so in the libclang AB…
tstellar Aug 2, 2022
d179ea1
[NFC][trace] format source files
Aug 3, 2022
f19497f
[RISCV] Use InstVisitor in RISCVCodeGenPrepare. NFC
topperc Aug 3, 2022
be3587a
workflows: Fix typo from 2d3d0f50ceb938c155a7283e684f28190d24d6ba
tstellar Aug 2, 2022
1116fa4
avoid a bug where we remove a BB and then the next one becomes the
regehr Aug 3, 2022
d469f13
oops-- I pushed previous commit from a fresh checkout and forgot to
regehr Aug 3, 2022
dc860d5
[mlir] Add has_value and value to OptionalParseResult
kazutakahirata Aug 3, 2022
760d2b4
[libc++][ranges] Implement `ranges::remove_copy{, _if}`.
philnik777 Aug 3, 2022
f537a01
[libc++][ranges] Fix the return value of `{copy,move}_backward`.
var-const Aug 3, 2022
93172c1
[libc++][ranges] Implement `ranges::replace_copy{,_if}`.
philnik777 Aug 3, 2022
6bdb642
[libc++][ranges] Implement `ranges::sample`.
var-const Aug 3, 2022
75f6a10
[gn build] Port 6bdb64223473
llvmgnsyncbot Aug 3, 2022
7e8bf0a
[gn build] Port 68264b649461
llvmgnsyncbot Aug 3, 2022
8a78b72
[libc++][test] Replace `_LIBCPP_STD_VER` with `TEST_STD_VER`
cpplearner Aug 2, 2022
68264b6
[libc++][ranges] Implement `ranges::{prev, next}_permutation`.
philnik777 Aug 3, 2022
c44c718
[clang][dataflow] Make the type of the post visit callback consistent
sgatev Aug 2, 2022
752c9d0
[mlir][Math] Add constant folder for AtanOp.
Aug 2, 2022
9ef1161
Add foldings for multi-line comment.
usx95 Jul 19, 2022
817dd5e
[clang][dataflow] Rename member to make it clear that it isn't stable
sgatev Aug 2, 2022
34ae308
[SCEV] Use context to strengthen flags of BinOps
xortator Aug 3, 2022
b128e05
[AA] Make ModRefInfo a bitmask enum (NFC)
nikic Aug 1, 2022
5bbb0a8
[X86] Using `X86MemOperand` instead of `Operand` for `i32mem_TC` and …
MoringLiu Aug 3, 2022
3285f94
[mlir] Disable `misc-const-correctness` clang-tidy check.
pifon2a Aug 3, 2022
d0bfebd
[Docs] Improve cycle and closed path definitions
jasilvanus Aug 1, 2022
3d51e27
[NFC] Remove some boilerplate from SmallVector unit tests
yurai007 Aug 3, 2022
11e52ec
[clang] Short-circuit trivial constructors when evaluating arrays
tbaederr Jul 29, 2022
48c401a
ManagedStatic: remove from TimeProfiler
nhaehnle Jun 29, 2022
2fe3589
ManagedStatic: remove from PluginLoader
nhaehnle Jun 29, 2022
34e814a
[CMake] Make split-file an utility instead of tool
zero9178 Aug 3, 2022
f4b9c07
[clang][NFC] Try to fix the docs build
tbaederr Aug 3, 2022
7ae5d00
Fix a stack overflow in ScalarEvolution.
jreiffers Aug 3, 2022
c2066d1
[X86][MC] Always emit `rep` prefix for `bsf`
phoebewang Aug 3, 2022
646e2f4
[VP] Rename VP int<->float conversion ISD opcodes
frasercrmck Aug 2, 2022
3e9e43b
Fix compiler error: init-statements in if/switch.
jreiffers Aug 3, 2022
75747e6
[mlir] Fix Analysis/Presburger/Utils.cpp compilation with GCC 11
rorth Aug 3, 2022
4cf0a9d
ManagedStatic: remove from Interpreter/ExternalFunctions
nhaehnle Jun 29, 2022
e90deaf
[MLIR] Reconciliation of chains of unrealized casts
mscuttari Aug 3, 2022
ae553f9
[AMDGPU][MC][GFX10] Correct encoding of VOP3 v_cmpx* opcodes
dpreobra Aug 3, 2022
05b3aad
[AMDGPU][MC][GFX11] Correct v_dot2_f16_f16 and v_dot2_bf16_bf16
dpreobra Aug 3, 2022
d4cab87
ManagedStatic: remove from CrashRecoveryContext
nhaehnle Jun 29, 2022
28f12a0
[RISCV] Teach ComputeNumSignBitsForTargetNode about masked atomic int…
asb Aug 3, 2022
9a976f3
[llvm] Always use TargetConstant for FP_ROUND ISD Nodes
DavidTruby Aug 3, 2022
3d5d442
[libc++] More documentation improvements about running tests
ldionne Aug 3, 2022
44b4f4d
[libunwind] Remove unused substitution in AIX libunwind config
ldionne Aug 2, 2022
b7fb856
[libc++] Simplify how we define the linker script for libc++
ldionne Aug 3, 2022
84831bd
[SystemZ] Make 128 bit integers be aligned to 8 bytes.
JonPsson Jul 1, 2022
fb65b17
[NFCI] Refactor how KeywordStatus is calculated
Aug 2, 2022
69c39e2
[lldb] Fix TestDeletedExecutable on linux
labath Aug 2, 2022
96faef0
[gn build] Set LLVM_TOOLS_INSTALL_DIR to bin for llvm-config
nico Aug 3, 2022
bf6db18
Fix char8_t in C mode regression from fb65b179
Aug 3, 2022
a1cab0d
[LV] Use cost base decision for uniform mem op strategy [nfc-ish]
preames Aug 3, 2022
692e030
[clang][dataflow] Add cache of `ControlFlowContext`s for function decls.
ymand Aug 3, 2022
38817af
ManagedStatic: remove from DynamicLibrary
nhaehnle Jun 29, 2022
569a7f6
[LV] Move definition of isPredicatedInst out of line and make it cons…
preames Aug 3, 2022
5c7c838
Revert "ManagedStatic: remove from DynamicLibrary"
nhaehnle Aug 3, 2022
2e7231e
Merge from 'sycl' to 'sycl-web'
Aug 3, 2022
5b4f6d8
prevent llvm-reduce from duplicating values in switch cases when turn…
regehr Aug 3, 2022
3a45677
[libcxx][test] Silence narrowing warning
CaseyCarter Aug 3, 2022
a7bca18
Fix assert during the call to getCanonicalDecl.
jyu2-git Aug 2, 2022
144cea2
[libc++] Mark -fexperimental-library test as unsupported on another A…
ldionne Aug 3, 2022
3b217f2
[libc++] Implement `operator<=>` for `shared_ptr`
vogelsgesang Aug 3, 2022
446b61c
[lldb] [gdb-remote] Send interrupt packets from async thread
mgorny Aug 3, 2022
6a79e2f
[clang] Add FileEntryRef::getNameAsRequested()
benlangmuir Aug 2, 2022
f3bd773
Replace pdb file used in llvm-symbolizer test with a smaller file.
amykhuang Aug 2, 2022
3426fc7
Revert "[lldb] [gdb-remote] Send interrupt packets from async thread"
mgorny Aug 3, 2022
23c3b27
Merge from 'main' to 'sycl-web' (167 commits)
dwoodwor-intel Aug 3, 2022
10a7ee0
[analyzer] Fix for the crash in #56873
isuckatcs Aug 2, 2022
6a48dc0
[lldb] Add missing newlines after LLDB_INSTRUMENT_VA
JDevlieghere Aug 3, 2022
f23076f
[libc] Add init and fini array iteration to the loader.
Aug 2, 2022
3aef968
[lldb] Allow SymbolTable regex search functions to match mangled name
augusto2112 Jul 29, 2022
44f2baa
[Clang][C++20] Support capturing structured bindings in lambdas
cor3ntin Mar 30, 2022
71e8f79
[ubsan] Make TypeCheckKinds const. NFC
MaskRay Aug 3, 2022
c9edf84
Error instead of assert when making a _BitInt vector
AaronBallman Aug 3, 2022
a5a8a05
[SelectionDAG] Handle IntToPtr constants in dbg.value
felipepiovezan Aug 3, 2022
c77db81
[CMake] Fix runtimes cross-compilation when using LLVM_USE_LINKER
thevinster Aug 3, 2022
9e966dd
[RISCV][test] Add test for ability to tailcall libcalls
asb Aug 3, 2022
3716107
[NFC][intel pt] Improve troubleshooting message
Aug 3, 2022
0f82133
[lldb] Add assertStopReason helper function
JDevlieghere Aug 3, 2022
1f64f8b
[lldb] Fix 'FileCheck' spelling on symtab regex tests
augusto2112 Aug 3, 2022
a274219
Revert "[Clang][C++20] Support capturing structured bindings in lambdas"
cor3ntin Aug 3, 2022
f0bb276
[libc] Disable the loader init_fini_array_test for non-x86_64 targets.
Aug 3, 2022
b3335e8
[Libomptarget][NFC] Clang format the AMDGPU plugin
jhuber6 Aug 3, 2022
c5ccb78
[clang][Darwin] Always set the default C++ Standard Library to libc++
ldionne Aug 3, 2022
905f2d1
Fix LDV InstrRefBasedImpl to not crash when encountering unreachable …
adrian-prantl Aug 2, 2022
9a1612a
Merge from 'sycl' to 'sycl-web'
Aug 3, 2022
11e5275
Document why test is disabled on macOS Ventura
adrian-prantl Aug 3, 2022
19eb908
[BOLT] Remove always true if statement
rafaelauler Aug 3, 2022
ff91b2d
[X86] Promote i16 CTTZ/CTTZ_ZERO_UNDEF always.
topperc Aug 3, 2022
e056e74
[NFC][inline] Add const to an argument
vitalybuka Aug 2, 2022
ce0bb31
[DX] [NFC] Move hasSection check up
llvm-beanz Aug 3, 2022
383e754
NFC. Require DirectX backend for these tests
llvm-beanz Aug 3, 2022
2428a5e
Merge from 'main' to 'sycl-web' (22 commits)
dwoodwor-intel Aug 3, 2022
880b212
[lldb] Mark TestRosetta as skipIfDarwinEmbedded
JDevlieghere Aug 3, 2022
2b61b77
[lldb] Make TestModuleLoadedNotifys work with dyld from the shared cache
JDevlieghere Aug 3, 2022
1132220
[X86] Add a test for missed opportunity combine AND32rm+TEST32rr.
topperc Aug 3, 2022
9ffcc85
Revert "Revert "[lldb][modules] Disable Clang Modules in source/Host …
JDevlieghere Aug 3, 2022
84e9194
Revert "[X86][MC] Always emit `rep` prefix for `bsf`"
topperc Aug 3, 2022
26dd427
[NFC][Inliner] Simplify clamping in addCost
vitalybuka Aug 2, 2022
53d560b
[RISCV] Prevent infinite loop after D129980.
topperc Aug 3, 2022
e0b16aa
[AMDGPU] Precommit test case for D130729
jrbyrnes Aug 3, 2022
71ebcd3
[lldb] Make LLDB resilient against failing dyld introspection SPIs
JDevlieghere Aug 3, 2022
42c15ca
[TSAN][Darwin] x86_64 specific tests requiring weak symbols
Aug 3, 2022
36c746c
[libc++][ranges] Implement `ranges::rotate`.
var-const Aug 3, 2022
5a906b7
[LLDB][NFC] Fix potential div by 0 "count" can be zero potentially ca…
fixathon Aug 1, 2022
670122b
[gn build] Port 36c746ca2d5b
llvmgnsyncbot Aug 3, 2022
0cb9746
[nfc][mlgo] Separate logger and training-mode model evaluator
mtrofin Aug 3, 2022
ca8de2d
[gn build] Port 0cb9746a7d85
llvmgnsyncbot Aug 3, 2022
239c831
Add switch to use "source_filename" instead of a hash ID for globally…
bwendling Jul 18, 2022
a243af5
[CostModel][RISCV] Add test coverage of floating point rounding intri…
preames Aug 3, 2022
76be554
[DependenceAnalysis][PR56275] Normalize negative dependence analysis …
CongzheUalberta Aug 3, 2022
8dc4b2e
[LoopInterchange][PR56275] Fix legality with negative dependence vectors
CongzheUalberta Aug 3, 2022
a2aa680
[NFC][Inliner] Add cl::opt<int> to tune InstrCost
vitalybuka Aug 2, 2022
203296d
[BoundsChecking] Fix merging of sizes
aeubanks Aug 2, 2022
4229d27
[JITLink] Add tests for FDEs with bad CIE and PC-begin pointers.
lhames Aug 3, 2022
b5f76d8
[ORC] Ensure that llvm_orc_registerJITLoaderGDBAllocAction is linked …
lhames Aug 4, 2022
bbf1900
[clang][Headers] Avoid compiler warnings in builtin headers
ddcc Jul 29, 2022
54ee055
Merge from 'main' to 'sycl-web' (9 commits)
zhaomaosu Aug 4, 2022
c988c26
[lldb] Re-enable TestCCallingConventions on Apple Silicon
JDevlieghere Aug 4, 2022
91e8079
[X86] Teach PostprocessISelDAG to fold ANDrm+TESTrr when chain result…
topperc Aug 4, 2022
e2a932d
[ELF] Move updateARMVFPArgs/updateARMVFPArgs. NFC
MaskRay Aug 4, 2022
077b16a
[ELF] Remove unneeded make<InputSection>. NFC
MaskRay Aug 4, 2022
c9e1ecd
[libc] Adjust aarch64 startup code to reliably sniff out the start args.
Aug 4, 2022
b19de81
[WebAssembly] Improve codegen for v128.bitselect
tlively Aug 4, 2022
84d4bb7
[mlir][Linalg] Inline an interface method to its only user.
akuegel Aug 2, 2022
bc32896
[llvm][Bazel] Exclude TrainingLoggerTest.cpp from build.
akuegel Aug 4, 2022
45bae1b
[RISCV][test] Add inloop reduction vectorize test. NFC
Aug 4, 2022
6f867f9
[X86] Support ``-mindirect-branch-cs-prefix`` for call and jmp to ind…
phoebewang Jul 29, 2022
b61cfc9
[RISCV] Add cost modelling for vector widenning reduction.
Jul 18, 2022
b6b0690
[LegalizeTypes][VP] Add split operand support for VP float and intege…
Jul 28, 2022
127bf44
[Clang][C++20] Support capturing structured bindings in lambdas
cor3ntin Mar 30, 2022
46196db
[ORC] Fix a warning about an unused variable on Windows. NFC.
mstorsjo Aug 3, 2022
46bc1b5
[ORC] Actually propagate memory unmapping errors on Windows
mstorsjo Aug 3, 2022
7ce321e
[llvm-reduce] Split operands-skip.ll into serial and parallel parts
DavidSpickett Jul 28, 2022
57a9bcc
[MLIR] Fix checks for native arch
nikic Aug 3, 2022
56d94b3
[mlir] Extract offsets-sizes-strides computation from `makeTiledShape…
pifon2a Aug 4, 2022
c8b2f3f
[ObjC] type method metadata `_imp`, messenger routine at callsite wit…
mhjacobson Aug 1, 2022
a203acb
[libc++][ranges] Implement `ranges::clamp`
philnik777 Aug 3, 2022
2b0d5e9
[gn build] Port a203acb9dd72
llvmgnsyncbot Aug 4, 2022
5e44c50
Merge from 'sycl' to 'sycl-web'
Aug 4, 2022
df48e3f
Revert "[clang] Pass FoundDecl to DeclRefExpr creator for operator ov…
kadircet Aug 4, 2022
b8985ba
[lldb] Fix arm breakages from D130985
labath Aug 4, 2022
f417583
[clang] format string checking for conpile-time evaluated str literal
inclyc Aug 3, 2022
282d475
[clang] change `auto` to `Expr` in last commit [NFC]
inclyc Aug 4, 2022
f4917cd
Merge from 'main' to 'sycl-web' (47 commits)
zhaomaosu Aug 4, 2022
ff1d471
[Docs] Added my office hours
michalpaszkowski Aug 4, 2022
74940d2
[VP] Add widening for VP_STRIDED_LOAD and VP_STRIDED_STORE
Aug 3, 2022
d0541b4
[mlir] Add I1 support to DenseArrayAttr
Aug 1, 2022
448adfe
[mlir] Only conditionally lower CF branching ops to LLVM
tpopp Aug 2, 2022
2138c90
[IR] Move support for dxil::TypedPointerType to LLVM core IR.
jcranmer-intel Aug 4, 2022
648d99e
[libc++] Install clang-tools in the CI container
philnik777 Aug 3, 2022
2d47e0f
[gn build] Port 2138c906458e
llvmgnsyncbot Aug 4, 2022
54d24ea
[clang][dataflow][NFC] Fix outdated comment on getStableStorageLocation
tJener Aug 3, 2022
d1d799b
[libc++][doc] Updates format status page.
mordante Aug 4, 2022
ec7f4a7
[mlir:LLVM] Do not lookup symbol twice in the addressof verifier
ezhulenev Aug 4, 2022
d9fe4db
Merge remote-tracking branch 'otcshare_llvm/sycl-web' into llvmspirv_…
dbudanov-cmplr Aug 5, 2022
c9a2b33
Merge commit 'ec7f4a7c5d9794c9fdf4f894873e7edbbfddf3e2' into llvmspir…
dbudanov-cmplr Aug 5, 2022
37518e8
Update LLVM version from 15 to 16
svenvh Jul 27, 2022
194e0eb
Fix "SPRI" typo
svenvh Aug 2, 2022
479cdcc
Suppress some clang-tidy errors
svenvh Aug 3, 2022
36a19b6
Support SYCL 2020 namespace (::sycl) for SYCL Half/BFloat16 types
aelovikov-intel Aug 2, 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
  •  
  •  
  •  
21 changes: 20 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,-misc-non-private-member-variables-in-classes,-misc-no-recursion,readability-identifier-naming'
Checks: |
-*,
clang-diagnostic-*,
llvm-*,
-llvm-header-guard,
misc-*,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-unused-parameters,
readability-identifier-naming
WarningsAsErrors: |
llvm-*,
-llvm-header-guard,
misc-*,
-misc-no-recursion,
-misc-non-private-member-variables-in-classes,
-misc-unused-parameters,
readability-identifier-naming
CheckOptions:
- key: readability-identifier-naming.ClassCase
value: CamelCase
Expand All @@ -24,3 +41,5 @@ CheckOptions:
value: 1
- key: modernize-use-default-member-init.UseAssignment
value: 1
- key: llvm-namespace-comment.ShortNamespaceLines
value: '25'
1 change: 1 addition & 0 deletions .github/workflows/issue-release-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,5 @@ jobs:
--token ${{ secrets.RELEASE_WORKFLOW_PUSH_SECRET }} \
release-workflow \
--issue-number ${{ github.event.issue.number }} \
--phab-token ${{ secrets.RELEASE_WORKFLOW_PHAB_TOKEN }} \
auto
10 changes: 4 additions & 6 deletions .github/workflows/libclang-abi-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,10 @@ jobs:
- name: Dump ABI
run: |
parallel abi-dumper -lver ${{ matrix.ref }} -skip-cxx -public-headers ./install/include/${{ needs.abi-dump-setup.outputs.ABI_HEADERS }} -o {}-${{ matrix.ref }}.abi ./build/lib/{} ::: ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}
# Remove symbol versioning from dumps, so we can compare across major
# versions. We don't need to do this for libclang.so since its ABI
# is stable across major releases and the symbol versions don't change.
if [ -e libclang-cpp.so-${{ matrix.ref }}.abi ]; then
sed -i 's/LLVM_[0-9]\+/LLVM_NOVERSION/' libclang-cpp.so-${{ matrix.ref }}.abi
fi
for lib in ${{ needs.abi-dump-setup.outputs.ABI_LIBS }}; do
# Remove symbol versioning from dumps, so we can compare across major versions.
sed -i 's/LLVM_[0-9]\+/LLVM_NOVERSION/' $lib-${{ matrix.ref }}.abi
done
- name: Upload ABI file
uses: actions/upload-artifact@v2
with:
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ Intel LLVM-based projects:

- [oneAPI DPC++ compiler](#oneapi-dpc-compiler)
- [Late-outline OpenMP and OpenMP Offload](#late-outline-openmp-and-openmp-offload)
sudo apt-get install llvm-16-dev llvm-16-tools clang-16 libclang-16-dev
`-DLLVM_EXTERNAL_LIT="/usr/lib/llvm-16/build/utils/lit/lit.py"` is

## oneAPI DPC++ compiler

Expand Down
3 changes: 2 additions & 1 deletion bolt/include/bolt/Core/BinaryDomTree.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
#ifndef BOLT_CORE_BINARY_DOMTREE_H
#define BOLT_CORE_BINARY_DOMTREE_H

#include "bolt/Core/BinaryBasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/Support/GenericDomTreeConstruction.h"

namespace llvm {
namespace bolt {

class BinaryBasicBlock;
using BinaryDomTreeNode = DomTreeNodeBase<BinaryBasicBlock>;
using BinaryDominatorTree = DomTreeBase<BinaryBasicBlock>;

Expand Down
11 changes: 4 additions & 7 deletions bolt/include/bolt/Core/BinaryFunction.h
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ class BinaryFunction {
bool hasName(const std::string &FunctionName) const {
auto Res =
forEachName([&](StringRef Name) { return Name == FunctionName; });
return Res.hasValue();
return Res.has_value();
}

/// Check if any of function names matches the given regex.
Expand All @@ -1005,7 +1005,7 @@ class BinaryFunction {
Optional<StringRef> hasRestoredNameRegex(const StringRef NameRegex) const;

/// Return a vector of all possible names for the function.
const std::vector<StringRef> getNames() const {
std::vector<StringRef> getNames() const {
std::vector<StringRef> AllNames;
forEachName([&AllNames](StringRef Name) {
AllNames.push_back(Name);
Expand Down Expand Up @@ -1427,17 +1427,15 @@ class BinaryFunction {

const CallSitesType &getColdCallSites() const { return ColdCallSites; }

const ArrayRef<uint8_t> getLSDAActionTable() const { return LSDAActionTable; }
ArrayRef<uint8_t> getLSDAActionTable() const { return LSDAActionTable; }

const LSDATypeTableTy &getLSDATypeTable() const { return LSDATypeTable; }

const LSDATypeTableTy &getLSDATypeAddressTable() const {
return LSDATypeAddressTable;
}

const ArrayRef<uint8_t> getLSDATypeIndexTable() const {
return LSDATypeIndexTable;
}
ArrayRef<uint8_t> getLSDATypeIndexTable() const { return LSDATypeIndexTable; }

const LabelsMapType &getLabels() const { return Labels; }

Expand Down Expand Up @@ -1652,7 +1650,6 @@ class BinaryFunction {
}
OffsetToCFI.emplace(Offset, FrameInstructions.size());
FrameInstructions.emplace_back(std::forward<MCCFIInstruction>(Inst));
return;
}

BinaryBasicBlock::iterator addCFIInstruction(BinaryBasicBlock *BB,
Expand Down
38 changes: 19 additions & 19 deletions bolt/include/bolt/Core/DebugData.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,22 +226,22 @@ class DebugRangeListsSectionWriter : public DebugRangesSectionWriter {
static void setAddressWriter(DebugAddrWriter *AddrW) { AddrWriter = AddrW; }

/// Add ranges with caching.
virtual uint64_t addRanges(
uint64_t addRanges(
DebugAddressRangesVector &&Ranges,
std::map<DebugAddressRangesVector, uint64_t> &CachedRanges) override;

/// Add ranges and return offset into section.
virtual uint64_t addRanges(const DebugAddressRangesVector &Ranges) override;
uint64_t addRanges(const DebugAddressRangesVector &Ranges) override;

virtual std::unique_ptr<DebugBufferVector> releaseBuffer() override {
std::unique_ptr<DebugBufferVector> releaseBuffer() override {
return std::move(RangesBuffer);
}

/// Needs to be invoked before each \p CU is processed.
void virtual initSection(DWARFUnit &CU) override;
void initSection(DWARFUnit &CU) override;

/// Writes out range lists for a current CU being processed.
void virtual finalizeSection() override;
void finalizeSection() override;

// Returns true if section is empty.
bool empty() { return RangesBuffer->empty(); }
Expand Down Expand Up @@ -391,15 +391,15 @@ class DebugAddrWriterDwarf5 : public DebugAddrWriter {
DebugAddrWriterDwarf5(BinaryContext *BC) : DebugAddrWriter(BC) {}

/// Creates consolidated .debug_addr section, and builds DWOID to offset map.
virtual AddressSectionBuffer finalize() override;
AddressSectionBuffer finalize() override;
/// Given DWARFUnit \p Unit returns offset of this CU in to .debug_addr
/// section.
virtual uint64_t getOffset(DWARFUnit &Unit) override;
uint64_t getOffset(DWARFUnit &Unit) override;

protected:
/// Given DWARFUnit \p Unit returns either DWO ID or it's offset within
/// .debug_info.
virtual uint64_t getCUID(DWARFUnit &Unit) override {
uint64_t getCUID(DWARFUnit &Unit) override {
if (Unit.isDWOUnit()) {
DWARFUnit *SkeletonCU = Unit.getLinkedUnit();
return SkeletonCU->getOffset();
Expand Down Expand Up @@ -561,9 +561,9 @@ class DebugLoclistWriter : public DebugLocWriter {
static void setAddressWriter(DebugAddrWriter *AddrW) { AddrWriter = AddrW; }

/// Stores location lists internally to be written out during finalize phase.
virtual void addList(AttrInfo &AttrVal, DebugLocationsVector &LocList,
DebugInfoBinaryPatcher &DebugInfoPatcher,
DebugAbbrevWriter &AbbrevWriter) override;
void addList(AttrInfo &AttrVal, DebugLocationsVector &LocList,
DebugInfoBinaryPatcher &DebugInfoPatcher,
DebugAbbrevWriter &AbbrevWriter) override;

/// Writes out locations in to a local buffer and applies debug info patches.
void finalize(DebugInfoBinaryPatcher &DebugInfoPatcher,
Expand Down Expand Up @@ -685,7 +685,7 @@ class SimpleBinaryPatcher : public BinaryPatcher {

/// This function takes in \p BinaryContents, applies patches to it and
/// returns an updated string.
virtual std::string patchBinary(StringRef BinaryContents) override;
std::string patchBinary(StringRef BinaryContents) override;
};

class DebugInfoBinaryPatcher : public SimpleBinaryPatcher {
Expand Down Expand Up @@ -843,7 +843,7 @@ class DebugInfoBinaryPatcher : public SimpleBinaryPatcher {
std::string Value;
};

virtual PatcherKind getKind() const override {
PatcherKind getKind() const override {
return PatcherKind::DebugInfoBinaryPatcher;
}

Expand All @@ -853,23 +853,23 @@ class DebugInfoBinaryPatcher : public SimpleBinaryPatcher {

/// This function takes in \p BinaryContents, and re-writes it with new
/// patches inserted into it. It returns an updated string.
virtual std::string patchBinary(StringRef BinaryContents) override;
std::string patchBinary(StringRef BinaryContents) override;

/// Adds a patch to put the integer \p NewValue encoded as a 64-bit
/// little-endian value at offset \p Offset.
virtual void addLE64Patch(uint64_t Offset, uint64_t NewValue) override;
void addLE64Patch(uint64_t Offset, uint64_t NewValue) override;

/// Adds a patch to put the integer \p NewValue encoded as a 32-bit
/// little-endian value at offset \p Offset.
/// The \p OldValueSize is the size of the old value that will be replaced.
virtual void addLE32Patch(uint64_t Offset, uint32_t NewValue,
uint32_t OldValueSize = 4) override;
void addLE32Patch(uint64_t Offset, uint32_t NewValue,
uint32_t OldValueSize = 4) override;

/// Add a patch at \p Offset with \p Value using unsigned LEB128 encoding with
/// size \p OldValueSize.
/// The \p OldValueSize is the size of the old value that will be replaced.
virtual void addUDataPatch(uint64_t Offset, uint64_t Value,
uint32_t OldValueSize) override;
void addUDataPatch(uint64_t Offset, uint64_t Value,
uint32_t OldValueSize) override;

/// Adds a label \p Offset for DWARF UNit.
/// Used to recompute relative references.
Expand Down
4 changes: 2 additions & 2 deletions bolt/include/bolt/Core/JumpTable.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class JumpTable : public BinaryData {
/// starting at (or containing) 'Addr'.
std::pair<size_t, size_t> getEntriesForAddress(const uint64_t Addr) const;

virtual bool isJumpTable() const override { return true; }
bool isJumpTable() const override { return true; }

/// Change all entries of the jump table in \p JTAddress pointing to
/// \p OldDest to \p NewDest. Return false if unsuccessful.
Expand All @@ -120,7 +120,7 @@ class JumpTable : public BinaryData {
void updateOriginal();

/// Print for debugging purposes.
virtual void print(raw_ostream &OS) const override;
void print(raw_ostream &OS) const override;
};

} // namespace bolt
Expand Down
1 change: 1 addition & 0 deletions bolt/include/bolt/Passes/RegReAssign.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#ifndef BOLT_PASSES_REGREASSIGN_H
#define BOLT_PASSES_REGREASSIGN_H

#include "bolt/Passes/BinaryFunctionCallGraph.h"
#include "bolt/Passes/BinaryPasses.h"
#include "bolt/Passes/RegAnalysis.h"

Expand Down
15 changes: 8 additions & 7 deletions bolt/include/bolt/Profile/BoltAddressTranslation.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,26 +76,29 @@ class BoltAddressTranslation {
/// output binary
static const char *SECTION_NAME;

BoltAddressTranslation(BinaryContext &BC) : BC(BC) {}
BoltAddressTranslation() {}

/// Write the serialized address translation tables for each reordered
/// function
void write(raw_ostream &OS);
void write(const BinaryContext &BC, raw_ostream &OS);

/// Read the serialized address translation tables and load them internally
/// in memory. Return a parse error if failed.
std::error_code parse(StringRef Buf);

/// Dump the parsed address translation tables
void dump(raw_ostream &OS);

/// If the maps are loaded in memory, perform the lookup to translate LBR
/// addresses in \p Func.
uint64_t translate(const BinaryFunction &Func, uint64_t Offset,
/// addresses in function located at \p FuncAddress.
uint64_t translate(uint64_t FuncAddress, uint64_t Offset,
bool IsBranchSrc) const;

/// Use the map keys containing basic block addresses to infer fall-throughs
/// taken in the path started at FirstLBR.To and ending at SecondLBR.From.
/// Return NoneType if trace is invalid or the list of fall-throughs
/// otherwise.
Optional<FallthroughListTy> getFallthroughsInTrace(const BinaryFunction &Func,
Optional<FallthroughListTy> getFallthroughsInTrace(uint64_t FuncAddress,
uint64_t From,
uint64_t To) const;

Expand All @@ -115,8 +118,6 @@ class BoltAddressTranslation {
void writeEntriesForBB(MapTy &Map, const BinaryBasicBlock &BB,
uint64_t FuncAddress);

BinaryContext &BC;

std::map<uint64_t, MapTy> Maps;

/// Links outlined cold bocks to their original function
Expand Down
12 changes: 6 additions & 6 deletions bolt/include/bolt/Profile/DataReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -268,18 +268,18 @@ class DataReader : public ProfileReaderBase {

bool isTrustedSource() const override { return false; }

virtual Error preprocessProfile(BinaryContext &BC) override;
Error preprocessProfile(BinaryContext &BC) override;

virtual Error readProfilePreCFG(BinaryContext &BC) override;
Error readProfilePreCFG(BinaryContext &BC) override;

virtual Error readProfile(BinaryContext &BC) override;
Error readProfile(BinaryContext &BC) override;

virtual bool hasLocalsWithFileName() const override;
bool hasLocalsWithFileName() const override;

virtual bool mayHaveProfileData(const BinaryFunction &BF) override;
bool mayHaveProfileData(const BinaryFunction &BF) override;

/// Return all event names used to collect this profile
virtual StringSet<> getEventNames() const override { return EventNames; }
StringSet<> getEventNames() const override { return EventNames; }

protected:
/// Read profile information available for the function.
Expand Down
4 changes: 2 additions & 2 deletions bolt/include/bolt/Profile/YAMLProfileReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ class YAMLProfileReader : public ProfileReaderBase {

Error preprocessProfile(BinaryContext &BC) override;

virtual bool hasLocalsWithFileName() const override;
bool hasLocalsWithFileName() const override;

virtual bool mayHaveProfileData(const BinaryFunction &BF) override;
bool mayHaveProfileData(const BinaryFunction &BF) override;

/// Check if the file contains YAML.
static bool isYAML(StringRef Filename);
Expand Down
28 changes: 3 additions & 25 deletions bolt/lib/Core/BinaryContext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -622,10 +622,6 @@ bool BinaryContext::analyzeJumpTable(
void BinaryContext::populateJumpTables() {
LLVM_DEBUG(dbgs() << "DataPCRelocations: " << DataPCRelocations.size()
<< '\n');

// Collect jump tables that pass the analyzeJumpTable's first check,
// but fail the analyzeJumpTable's second check
SmallVector<JumpTable *, 1> AbortedJTs;
for (auto JTI = JumpTables.begin(), JTE = JumpTables.end(); JTI != JTE;
++JTI) {
JumpTable *JT = JTI->second;
Expand All @@ -644,13 +640,6 @@ void BinaryContext::populateJumpTables() {
const bool Success =
analyzeJumpTable(JT->getAddress(), JT->Type, *(JT->Parents[0]),
NextJTAddress, &JT->EntriesAsAddress);
// !Success means a false positive from earlier analysis run due to
// different context. A possible culprit is instruction bounds check.
// Previous run happens during disassembly. If the target function
// is not disassembled, the check will be skipped, leading to a false
// positive
//
// Solution: Ignore fragments accessing JT that fails the check
if (!Success) {
LLVM_DEBUG(ListSeparator LS;
dbgs() << "failed to analyze jump table in function ";
Expand All @@ -670,8 +659,7 @@ void BinaryContext::populateJumpTables() {
dbgs() << "\n";);
NextJTI->second->print(dbgs());
}
AbortedJTs.push_back(JT);
continue;
llvm_unreachable("jump table heuristic failure");
}
for (BinaryFunction *Frag : JT->Parents) {
for (uint64_t EntryAddress : JT->EntriesAsAddress)
Expand Down Expand Up @@ -701,15 +689,6 @@ void BinaryContext::populateJumpTables() {
addFragmentsToSkip(Frag);
}

// Ignore fragments accessing JT that fails analyzeJumpTable check
for (JumpTable *JT : AbortedJTs) {
for (BinaryFunction *Frag : JT->Parents) {
Frag->setIgnored();
Frag->JumpTables.erase(Frag->JumpTables.find(JT->getAddress()));
}
JumpTables.erase(JumpTables.find(JT->getAddress()));
}

if (opts::StrictMode && DataPCRelocations.size()) {
LLVM_DEBUG({
dbgs() << DataPCRelocations.size()
Expand Down Expand Up @@ -799,9 +778,8 @@ BinaryContext::getOrCreateJumpTable(BinaryFunction &Function, uint64_t Address,
// Prevent associating a jump table to a specific fragment twice.
// This simple check arises from the assumption: no more than 2 fragments.
if (JT->Parents.size() == 1 && JT->Parents[0] != &Function) {
bool SameFunction = isFragmentOf(JT->Parents[0], &Function) ||
isFragmentOf(&Function, JT->Parents[0]);
assert(SameFunction &&
assert((isFragmentOf(JT->Parents[0], &Function) ||
isFragmentOf(&Function, JT->Parents[0])) &&
"cannot re-use jump table of a different function");
// Duplicate the entry for the parent function for easy access
JT->Parents.push_back(&Function);
Expand Down
Loading