Skip to content

LLVM and SPIRV-LLVM-Translator pulldown #1432

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
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
610 commits
Select commit Hold shift + click to select a range
b259ce9
[llvm-readobj] Derive dynamic symtab size from DT_HASH
jh7370 Mar 16, 2020
b8a2cf6
[SCCP] Extend test coverage in conditions-ranges.ll to false branches.
fhahn Mar 23, 2020
16d2065
[InstCombine] Add ub-safe negation patterns (PR27817)
RKSimon Mar 23, 2020
3ba550a
[Alignment][NFC] Use TFL::getStackAlign()
gchatelet Mar 21, 2020
32851f8
[Alignment][NFC] Deprecate VectorUtils::getAlignment
gchatelet Mar 21, 2020
9adc7fc
[SystemZ] Perform instruction shortening for fused fp ops.
JonPsson Mar 18, 2020
fa0320d
Add ParsedAttrInfo::handleDeclAttribute
john-brawn-arm Feb 28, 2020
5eeea33
[VectorCombine] add more tests for extract-extract patterns; NFC
rotateright Mar 23, 2020
78e2a3c
[clang-format] Reflow long C# generic type constraints correctly
Mar 23, 2020
7693a9b
[clang-tidy] Fix RenamerClangTidy handling qualified TypeLocs
njames93 Mar 22, 2020
0eeee83
[VectorUtils] move x86's scaleShuffleMask to generic VectorUtils
rotateright Mar 23, 2020
533dffc
Merge from 'sycl' to 'sycl-web'
Mar 23, 2020
84f4398
Merge from 'master' to 'sycl-web' (#1)
bader Mar 23, 2020
33942d1
[SCCP] Precommit additional range propagation test.
fhahn Mar 23, 2020
24698e5
Implement wave32 DWARF register mapping
RamNalamothu Mar 23, 2020
6a4905a
[lldb] Mark expressions that couldn't be parsed or executed as failed…
Teemperor Mar 23, 2020
60bad94
[Analyzer] Iterator Modeling - Model `std::advance()`, `std::prev()` …
Feb 19, 2020
5e1a026
[clang-format] Do not indent C# array initialisers as continuations
Mar 23, 2020
fdcb271
[InstCombine] Limit CTPOP -> CTTZ simplifications to one use
RKSimon Mar 23, 2020
f383fb4
Remove legacy CMake targets for libcxx and libcxxabi
ldionne Mar 11, 2020
9228a9e
[lldb/Target] Initialize new targets environment variables from targe…
fredriss Mar 11, 2020
cd7b450
[lldb/API] Make Launch(Simple) use args and env from target properties
fredriss Mar 12, 2020
b4a6e63
[lldb/Target] Rework the way the inferior environment is created
fredriss Mar 20, 2020
04d4811
Revert "Remove legacy CMake targets for libcxx and libcxxabi"
ldionne Mar 23, 2020
db3f3f0
AMDGPU/GlobalISel: Add some oversized G_IMPLICIT_DEF tests
arsenm Mar 23, 2020
0444d16
[GlobalISel] Add generic opcodes for saturating add/subtract
jayfoad Feb 24, 2020
a711a3a
[Syntax] Build mapping from AST to syntax tree nodes
hlopko Mar 23, 2020
f3bf4b0
[Attributor][NFC] clang-format Attributor.{h,cpp}
jdoerfert Mar 23, 2020
0995001
[Attributor][NFC] Predetermine the module before verification
jdoerfert Mar 17, 2020
54ec9b5
[Attributor] Unify handling of must-tail calls
jdoerfert Mar 17, 2020
68fed27
[Attributor] Handle calls in AAValueConstantRange properly
jdoerfert Mar 20, 2020
c57689b
[Attributor][NFC] Copy llvm::function_ref, don't use references
jdoerfert Mar 23, 2020
ebf83c3
[Analysis] simplify code for scaleShuffleMask
rotateright Mar 23, 2020
5ff5ddd
[Win64] Insert int3 into trailing empty BBs
rnk Mar 20, 2020
596da62
Add support for custom op parser/printer hooks to know about result n…
Mar 16, 2020
278c00c
[libc++] [NFC] Test that correct value category is used in scoped_all…
zoecarver Mar 23, 2020
b670ab7
recommit 1b978ddba05c [CUDA][HIP][OpenMP] Emit deferred diagnostics b…
yxsamliu Feb 26, 2020
57b8a40
[analyzer][NFC] Tie CheckerRegistry to CheckerManager, allow CheckerM…
Szelethus Feb 28, 2020
0ca19ef
Add AMDGPU MC unittests only when AMDGPU target is being built
RamNalamothu Mar 23, 2020
7e10581
[lldb/testsuite] Skip part of TestSettings.py on windows
fredriss Mar 23, 2020
3c84aca
[libc++] Bump Clang support for Clang 4
ldionne Mar 23, 2020
e10af89
[ARM] Extra VMOVN and VMULL tests. NFC
davemgreen Mar 23, 2020
c1f8595
[Support] Silence warning in Path unittests when compiling with clang-cl
aganea Mar 23, 2020
ccc0d35
[Analyzer] IteratorRangeChecker verify `std::advance()`, `std::prev()…
Mar 18, 2020
0a076f2
[ELF][test] Clean text-section-prefix.s
MaskRay Mar 23, 2020
ff2f509
[Attributor] Fold single-use variable into assert
d0k Mar 23, 2020
3f51c5d
[OpenMPOpt][FIX] Resolve OpenMP runtime call type mismatches
jdoerfert Mar 23, 2020
9d38f98
[OpenMPOpt] Validate declaration types against the expected types
jdoerfert Mar 23, 2020
ae37e22
[lldb/Reproducers] Mark reproducer test directory as unsupported on W…
JDevlieghere Mar 23, 2020
552bd47
[gn build] Port 24698e526f619271705fe72bcaa928be9bc82484
MaskRay Mar 23, 2020
ae04446
[openmp][runtime] Fixed hang for explicit task inside a taskloop.
AndreyChurbanov Mar 23, 2020
63828a3
[OPENMP50]Bassic support for exclusive clause.
alexey-bataev Mar 23, 2020
04336ad
[clang-format] No space inserted between commas in C#
Mar 23, 2020
ff042de
[gn build] Port 24698e526f619271705fe72bcaa928be9bc82484. Fix AMDGPUT…
MaskRay Mar 23, 2020
9607a11
[gn build] Port 57b8a407493
llvmgnsyncbot Mar 23, 2020
9e33c09
[ELF] Keep orphan section names (.rodata.foo .text.foo) unchanged if …
MaskRay Feb 26, 2020
a1fe6be
[InstCombine] remove one-use check for ctpop -> cttz
rotateright Mar 23, 2020
42d8f48
Fix a warning building on my machine, NFC. warning: unused function '…
lattner Mar 23, 2020
1b9cd51
[CMake] Fix AMDGPUTests -DBUILD_SHARED_LIBS=on builds and trim depend…
MaskRay Mar 23, 2020
a567d68
[DataFormatters] Add formatter for libc++ std::unique_ptr
shafik Mar 23, 2020
04f2b71
[mlir] Fix unsafe create operation in GreedyPatternRewriter
Mar 19, 2020
328b72d
[Support] Fix clang warning in widenPath NFC
nga888 Mar 21, 2020
aa63eb6
GlobalISel: Add computeKnownBitsForTargetInstr
arsenm Jan 22, 2020
58f843a
GlobalISel: Prepare to allow other target unit tests
arsenm Mar 22, 2020
2ad5fc1
AMDGPU/GlobalISel: Implement computeNumSignBitsForTargetInstr
arsenm Mar 22, 2020
56abcfa
Revert "[analyzer][NFC] Tie CheckerRegistry to CheckerManager, allow …
JDevlieghere Mar 23, 2020
75add0b
[gn build] Port 56abcfad70e
llvmgnsyncbot Mar 23, 2020
896335b
Don't export symbols from clang/opt/llc if plugins are disabled.
efriedma-quic Mar 20, 2020
6b57d7f
[OpenMP][NFC] Reduce instantiation time with different data structure
jdoerfert Mar 14, 2020
55eca28
[OpenMP][NFC] Minimize memory usage and copying of `OMPTraitInfo`s
jdoerfert Mar 14, 2020
43d98a0
Allow replacing intrinsic operands with variables
arsenm Feb 13, 2019
cfaa84e
Fix "previously declared as a struct" warning
vitalybuka Mar 23, 2020
5f5fb56
[compiler-rt] Intercept the uname() function
iii-i Mar 23, 2020
67d67eb
Internal expressions shouldn't increment the result variable numbering.
jimingham Mar 20, 2020
a650d55
[Attributor][NFC] Refactorings and typos in doc
baziotis Mar 23, 2020
f2f96eb
[llvm-objcopy] Improve tool selection logic to recognize llvm-strip-$…
MaskRay Mar 22, 2020
7bf871c
[analyzer][NFC] Move the text output type to its own file, move code …
Szelethus Mar 19, 2020
b20a1d8
GVNSink: Allow handling addrspacecast
arsenm Mar 23, 2020
3f53300
AMDGPU: Emit llvm.fshr for __builtin_amdgcn_alignbit
arsenm Mar 20, 2020
5896e2d
[Clang] Fix HIP tests when running on Windows with the LLVM toolchain…
aganea Mar 23, 2020
6607395
AMDGPU: Allow vectorization of round intrinsic
arsenm Mar 20, 2020
1a4421a
[analyzer] ConstraintManager - use EXPENSIVE_CHECKS instead of (gcc s…
RKSimon Mar 23, 2020
defd96f
[gn build] Port 7bf871c39f7
llvmgnsyncbot Mar 23, 2020
f301806
[lld] Enabling loading LLVM pass plugins
efriedma-quic Mar 23, 2020
b6ae893
[lldb/PlatformDarwin] Always delete destination file first in PutFile
fredriss Mar 19, 2020
a208623
Improve module.pcm lock file performance on machines with high core c…
ladd Mar 23, 2020
502915c
PR45142: 'template ~X<T>' is ill-formed; reject it rather than crashing.
zygoloid Mar 23, 2020
f0990e1
[PowerPC]: e500 target can't use lwsync, use msync instead
Mar 23, 2020
1236eb6
[OPENMP50]Add 'default' modifier in reduction clauses.
alexey-bataev Mar 23, 2020
564ece9
[MLIR] Insert loop.yield to IfOp regions only if it's void.
pifon2a Mar 23, 2020
de0758e
[MLIR] Fixes for BUILD_SHARED_LIBS=on
stephenneuendorffer Mar 23, 2020
c5c4109
[examples] Fixes for BUILD_SHARED_LIBS=on
stephenneuendorffer Mar 23, 2020
bfa9ce1
[PowerPC] Improve handling of some BUILD_VECTOR nodes
nemanjai Mar 23, 2020
2b4027f
[analyzer] Delete unneeded headers and using after D76509 for layerin…
MaskRay Mar 23, 2020
987f153
[msan] Fix sigaltstack false positive.
eugenis Mar 23, 2020
5bd0611
Update documentation for __builtin_operator_new and
zygoloid Mar 23, 2020
2136d17
[compiler-rt] Add ConsumeRandomLengthString() version without arguments.
Dor1s Mar 19, 2020
edf6a19
[clangd] Rename theia-derived semantic highlighting protocol. NFC
sam-mccall Mar 23, 2020
02187ed
[GlobalISel] Combine G_SELECTs of the form (cond ? x : x) into x
Mar 20, 2020
f09f4b2
[OpenMPOpt] Initialize value to avoid use of uninitialized memory
jdoerfert Mar 24, 2020
4a219bf
Fix a bug in the .mlir lexer, where a \0 character in a file is treat…
lattner Mar 23, 2020
fd868f5
Create basic SBEnvironment class
Mar 21, 2020
318a0ca
Revert "Create basic SBEnvironment class"
Mar 24, 2020
8140f6b
scudo: Create a public include directory. NFCI.
pcc Mar 23, 2020
42df3e2
[VirtualFileSystem] Add unit test for vfs::YAMLVFSWriter
JDevlieghere Mar 24, 2020
8d46bfa
[mlir] [VectorOps] A "reference" lowering of vector.transpose to LLVM IR
aartbik Mar 23, 2020
78e6149
[MLIR][NFC] loop tiling - improve comments / naming
bondhugula Mar 23, 2020
ca69be2
Create basic SBEnvironment class
Mar 21, 2020
98fa615
[MLIR] move loopUnrollJamBy*Factor to loop transforms utils
bondhugula Mar 23, 2020
49e5a97
Add an algorithm for performing "optimal" layout of a struct.
rjmccall Mar 20, 2020
816ad48
[NFC][RUIP] Small debug output refine
Mar 24, 2020
dab219e
[libc] Enable llvmlibc clang-tidy checks
PaulkaToast Mar 24, 2020
20d704a
[objc_direct] also go through implementations when looking for clashes
MadCoder Mar 23, 2020
e79b1ab
Make test more flexible for when the variable is renamed in the gener…
dyung Mar 24, 2020
bec785a
[MLIR][NFC] flat affine constraints - refactor to share, renames
bondhugula Mar 24, 2020
b7cd291
[GlobalOpt] Treat null-check of loaded value as use of global (PR35760)
vedantk Mar 23, 2020
d0f4af8
[Coroutines] Insert lifetime intrinsics even O0 is used
junparser Mar 13, 2020
a44de12
[Coroutines] Also check lifetime intrinsic for local variable when build
junparser Mar 10, 2020
18e1a59
Fix another instance where a variable was renamed in the generated LL…
dyung Mar 24, 2020
9d07d91
[PowerPC] fix a typo in commit 3f85134d710c
Mar 24, 2020
e0279d7
[lldb-vscode] Add missing launchCommands entry in the package.json
Mar 21, 2020
733edf9
[AST] Add RecoveryExpr to retain expressions on semantic errors
hokein Mar 19, 2020
6f86e6b
[ARM][MVE] Add target flag for narrowing insts
sparker-arm Mar 24, 2020
94caceb
[ARM][LowOverheadLoops] Add checks for narrowing
sparker-arm Mar 24, 2020
1232cfa
[ARM] Don't split trunc stores that can be better handled as VMOVN
davemgreen Mar 24, 2020
080d046
[ARM][CMSE] Implement CMSE attributes
momchil-velikov Mar 24, 2020
180d211
tsan: Adding releaseAcquire() to ThreadClock
dvyukov Mar 24, 2020
8905617
[UpdateTestChecks] Use common ir function name matcher and extend to …
RKSimon Mar 24, 2020
ca21e60
[NFC][ARM] Add missing tests
sparker-arm Mar 24, 2020
68687e7
[lldb][NFC] Mark GetNextPersistentVariableName as overriden to silenc…
Teemperor Mar 24, 2020
b194e7d
[clangd] Change line break behaviour for hoverinfo
lolleko Mar 24, 2020
f282b6a
[ReleaseNotes,ARM] MVE intrinsics are all implemented!
statham-arm Mar 24, 2020
8fa322d
Increase DIAG_SIZE_DRIVER as we're close to hitting it
rgal Mar 24, 2020
896fa30
Fix unused variable warning
RKSimon Mar 24, 2020
b673205
Make helpers static. NFC.
d0k Mar 24, 2020
a2aa997
[AST] Use TypeDependence bitfield to calculate dependence on Types. NFC
sam-mccall Mar 19, 2020
0b59982
[CodeGen] Fix test attr-noreturn.c when run from my home directory
sam-mccall Mar 24, 2020
7caba33
[ConstantRange] Add initial support for binaryXor.
fhahn Mar 24, 2020
58cdb8b
[mlir][StandardToSPIRV] Add support for lowering unary ops
hanhanW Mar 24, 2020
865638f
[X86][SSE1] Add additional logic+movmsk patterns that scalarize (PR42…
RKSimon Mar 24, 2020
177dd63
Data formatters: fix detection of C strings
Mar 24, 2020
b91905a
[lld-link] Support /map option, matching link.exe 's /map output format
sylvain-audi Mar 23, 2020
58ec867
[InstSimplify] add more tests for freeze(constant); NFC
rotateright Mar 24, 2020
7802be4
[SelDag] Add FREEZE
aqjune Mar 23, 2020
d381b6a
[DWARF] Fix v5 debug_line parsing of prologues with many files
labath Mar 20, 2020
2ae2564
[CUDA][HIP] Add -Xarch_device and -Xarch_host options
yxsamliu Mar 23, 2020
ce36c5a
[libc++] Fix installation of cxx_experimental
ldionne Mar 24, 2020
386f95e
[Parser] Fix the assertion crash in ActOnStartOfSwitch stmt.
hokein Mar 21, 2020
10bd842
[ARM][CMSE] Fix clang/test/Driver/save-temps.c test.
pifon2a Mar 24, 2020
7144021
[X86][SSE1] Add support for logic+movmsk patterns (PR42870)
RKSimon Mar 24, 2020
4a6ebc0
[MachinePipeliner] Fix a bug in Output Dependency chains
lsaba Mar 24, 2020
6c3c7a0
[InstSimplify] add tests for freeze(constexpr); NFC
rotateright Mar 24, 2020
f8c79b9
[ARM] Fold VMOVrh VLDR to LDRH
davemgreen Mar 24, 2020
1f80e51
[lldb/Reproducers] Collect files imported by command script import
JDevlieghere Mar 24, 2020
5d29aeb
[gn build] Port 49e5a97ec36
nico Mar 24, 2020
e322108
[gn build] (manually) port 8140f6bcde4
nico Mar 24, 2020
9ca6334
[gn build] (manually) port 8140f6bcde4 better
nico Mar 24, 2020
c341759
Revert "Include static prof data when collecting loop BBs"
hjyamauchi Mar 24, 2020
26d4b55
[gn build] Port b91905a2637
llvmgnsyncbot Mar 24, 2020
b8dab9b
[lldb] Remove some debugging printfs from ITSession code
Teemperor Mar 24, 2020
88b493a
[ValueTracking] improve undef/poison analysis for constant vectors
rotateright Mar 24, 2020
26ebc51
AMDGPU/GlobalISel: Fix smrd loads of v4i64
arsenm Feb 9, 2020
2ea4605
AMDGPU/GlobalISel: Add some more tests for add3 folding
arsenm Mar 24, 2020
bb3aa09
AMDGPU/GlobalISel: Add more tests for add3 folding
arsenm Mar 24, 2020
0c24adc
[X86][AVX] Add some v32i16 to v32i8 style truncation shuffle tests
RKSimon Mar 24, 2020
0019c2f
[SelectionDAG] Don't crash when freezing illegal float types
d0k Mar 24, 2020
49f7513
[DivRemPairs] Freeze operands if they can be undef values
aqjune Mar 24, 2020
83346a4
[lit] NFC: Document missing result codes
ldionne Mar 24, 2020
0813f41
[libomptarget][nfc] Explicitly static function scope shared variables
JonChesterfield Mar 24, 2020
c5f4b72
NFC: Fix typos in TestingGuide documentation
ldionne Mar 24, 2020
f7052da
[DWARF] Emit DW_AT_call_pc for tail calls
vedantk Mar 18, 2020
6905394
[lldb/DWARF] Use DW_AT_call_pc to determine artificial frame address
vedantk Mar 18, 2020
8f64b02
[lit] Allow passing extra commands to executeShTest
ldionne Mar 19, 2020
597718a
Re-land "Avoid emitting unreachable SP adjustments after `throw`"
rnk Mar 24, 2020
1a083f0
[mlir] Revamp operation documentation generation
River707 Mar 24, 2020
aef982e
[lldb] Don't dump the frame in SBTarget::EvaluateExpression in LLDB_C…
Teemperor Mar 24, 2020
6b6a779
[lldb][NFC] Always update m_cache_{hits/misses} in FormatCache
Teemperor Mar 24, 2020
c84446f
[VectorCombine] add tests for bitcast (shuffle); NFC
rotateright Mar 24, 2020
0a9b91c
Revert "[lldb/DWARF] Use DW_AT_call_pc to determine artificial frame …
vedantk Mar 24, 2020
0ccc4de
[lldb] Always log if acquiring packet sequence mutex fails
Teemperor Mar 24, 2020
43a6d28
[libc++] NFC: Reuse the TEST_CONCAT macro instead of reimplementing one
ldionne Mar 24, 2020
de98cf9
[CodeGen] Add an alignment attribute to all sret parameters
epilk Mar 24, 2020
e8d67ad
[X86] Disable autoupgrade support for avx512.mask.broadcasti32x2.* an…
topperc Mar 24, 2020
03e29e2
[lldb/DWARF] Reland: Use DW_AT_call_pc to determine artificial frame …
vedantk Mar 18, 2020
57ce79f
[mlir] Clarify constraint on derived attribute
jpienaar Mar 24, 2020
3e11d84
[Darwin] Add another hint to find the kernel. NFC.
Mar 24, 2020
7339fca
Revert "Convert a reachable llvm_unreachable into an assert."
AaronBallman Mar 24, 2020
5699d08
[Attributor] Use knowledge retained in llvm.assume (operand bundles)
jdoerfert Feb 20, 2020
472d282
[AArch64][GlobalISel] Don't localize TLS G_GLOBAL_VALUEs on Darwin.
aemerson Mar 23, 2020
4f4e687
[test][clang][driver] Add required features.
darkbuck Mar 24, 2020
3f1defa
[clang codegen] Clean up handling of vectors with trivial-auto-var-init.
efriedma-quic Mar 20, 2020
a4e8d89
[GWP-ASan] Only pack frames that are stored.
hctim Mar 24, 2020
1ac403b
[libc++] Build the dylib with C++17 to allow aligned new/delete
ldionne Feb 27, 2020
7311b27
[libc++] Install a recent CMake in the Docker build bots
ldionne Mar 24, 2020
ec184dd
[LVI] Convert some checks to assertions; NFC
nikic Mar 24, 2020
b684c1a
Add a `Symbolizer::GetEnvP()` method that allows symbolizer implement…
delcypher Mar 24, 2020
46bb661
[mlir][GPU] Use StructAttr to drive lowering from loop.parallel to
Mar 24, 2020
39c55ce
GlobalISel: Introduce bitcast legalize action
arsenm Feb 13, 2020
ed8ad6e
Add an -object-path-prefix option to dsymutil
adrian-prantl Mar 18, 2020
dca920a
Allow remapping Clang module include paths
adrian-prantl Mar 18, 2020
01a337c
AMDGPU/GlobalISel: Add missing tests for G_FRINT selection
arsenm Mar 25, 2020
c9e0b44
AMDGPU/GlobalISel: Add load legalization tests
arsenm Mar 25, 2020
bba8c92
AMDGPU/GlobalISel: Add select patterns for v_and_or_b32
arsenm Mar 25, 2020
c025235
Revert "Allow remapping Clang module include paths"
adrian-prantl Mar 25, 2020
d16ee11
AMDGPU/GlobalISel: Add some end to end tests for fma selection
arsenm Mar 25, 2020
d6fb02b
[libc++] Update a bad documentation link
EricWF Mar 25, 2020
32bddad
[profile] Make atexit hook a no-op on Fuchsia
petrhosek Mar 21, 2020
baa7817
AMDGPU/GlobalISel: Add a testcase for G_UNMERGE_VALUES legalization
arsenm Mar 25, 2020
2488ea4
[NFC][Test][PowerPC] Add one test to verify the behavior of vector
Mar 25, 2020
64a9c94
Revert "[libc++] Build the dylib with C++17 to allow aligned new/delete"
ldionne Mar 25, 2020
ba1f440
[profile] Move RuntimeCounterRelocation and ProfileDumped into a sepa…
petrhosek Mar 25, 2020
c227388
[gn build] Port ba1f4405c68
llvmgnsyncbot Mar 25, 2020
8786cdb
[MLIR][NFC] std::is_same || -> llvm::is_one_of
bondhugula Mar 25, 2020
2c080a3
[libc] Generate math.h instead of the static file it is currently.
Mar 24, 2020
70f9f4d
[PowerPC] Pre-commit reduced test case for PR45297. NFC.
Mar 25, 2020
2093fdd
[X86] Split masked instruction tests to enable D60940.
topperc Mar 25, 2020
1262db1
[compiler-rt] Refactor FuzzedDataProvider for better readability.
Dor1s Mar 19, 2020
453eac3
Minor fixes to a comment in CodeGenPrepare
aqjune Mar 25, 2020
1e65209
[compiler-rt] FuzzedDataProvider: make linter happy.
Dor1s Mar 25, 2020
0788acb
[AST] Build recovery expressions by default for C++.
hokein Mar 24, 2020
28a42dd
[VE] Change name of enum to CondCode
kaz7 Mar 25, 2020
e951a48
Add freeze(and x, const) case to codegenprepare's freeze-cmp.ll
aqjune Mar 25, 2020
6538b43
[clang-apply-replacements] No longer deduplucates replacements from t…
njames93 Mar 23, 2020
8f1651c
[ARM,MVE] Add missing tests for vqdmlash intrinsics.
statham-arm Mar 25, 2020
578fb25
[Sema][SVE] Allow ?: to select between SVE types in C
rsandifo-arm Mar 2, 2020
856bdd0
[Sema][SVE] Allow casting SVE types to themselves in C
rsandifo-arm Mar 5, 2020
e872502
[ARM][MVE] Add HorizontalReduction flag
sparker-arm Mar 25, 2020
d82c1e8
Rename test name, add more tests for codegenprepare
aqjune Mar 25, 2020
0560632
[AArch64][SVE] Add SVE intrinsics for masked loads & stores
kmclaughlin-arm Mar 25, 2020
eed57dd
[libcxx] Allow tests to link with static libc++abi/libc++ even if the…
broadwaylamb Mar 25, 2020
7754b65
[lldb][NFC] lldb_assert->lldbassert in ClangExpressionParser
Teemperor Mar 25, 2020
b5a034e
[SYCL] Implement __builtin_unique_stable_name.
Mar 18, 2020
e4d1da9
Merge from 'master' to 'sycl-web' (#2)
bader Mar 30, 2020
d5b4c66
Merge from 'sycl' to 'sycl-web' (#47)
Mar 30, 2020
e4993fa
Merge from 'master' to 'sycl-web' (#59)
bader Mar 30, 2020
7d0ceb8
Merge from 'sycl' to 'sycl-web' (#1)
Mar 30, 2020
3423e0b
Merge from 'master' to 'sycl-web' (#37)
bader Mar 30, 2020
f5e5c6a
Merge from 'master' to 'sycl-web' (#13)
bader Mar 30, 2020
fbb678c
Merge from 'master' to 'sycl-web' (#86)
bader Mar 30, 2020
c153139
Merge remote-tracking branch 'origin/sycl-web' into private/vlazarev/…
vladimirlaz Mar 31, 2020
96dc6e9
Improve Intel FPGA Memory Attributes tests
mlychkov Mar 12, 2020
79a5038
Transform fabs and ceil llvm intrinsics into SPIRV extended instructions
asudarsa Feb 12, 2020
3e2a423
Implement -spirv-allow-unknown-intrinsics option
imashkov Mar 23, 2020
c9b637a
Initialize a TranslatorOpts field
svenvh Mar 25, 2020
73dd705
Translate Intel FPGA force_pow2_depth memory attribute
mlychkov Mar 31, 2020
467f5c2
Translate new set of Intel FPGA Loop Controls
vmaksimo Mar 13, 2020
1fa323d
Apply suggestions
vmaksimo Mar 24, 2020
cfa3a01
Apply more suggestions
vmaksimo Mar 26, 2020
061a2c6
[SYCL] Remove explicit sycl_device attribute requirement
vladimirlaz Mar 31, 2020
a28778c
[SYCL] XFAIL LIT test due to duplicate diagnostic
vladimirlaz Apr 1, 2020
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
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -143,18 +143,26 @@ groupReplacements(const TUReplacements &TUs, const TUDiagnostics &TUDs,
llvm::DenseMap<const FileEntry *, std::vector<tooling::Replacement>>
GroupedReplacements;

// Deduplicate identical replacements in diagnostics.
// Deduplicate identical replacements in diagnostics unless they are from the
// same TU.
// FIXME: Find an efficient way to deduplicate on diagnostics level.
llvm::DenseMap<const FileEntry *, std::set<tooling::Replacement>>
llvm::DenseMap<const FileEntry *,
std::map<tooling::Replacement,
const tooling::TranslationUnitDiagnostics *>>
DiagReplacements;

auto AddToGroup = [&](const tooling::Replacement &R, bool FromDiag) {
auto AddToGroup = [&](const tooling::Replacement &R,
const tooling::TranslationUnitDiagnostics *SourceTU) {
// Use the file manager to deduplicate paths. FileEntries are
// automatically canonicalized.
if (auto Entry = SM.getFileManager().getFile(R.getFilePath())) {
if (FromDiag) {
if (SourceTU) {
auto &Replaces = DiagReplacements[*Entry];
if (!Replaces.insert(R).second)
auto It = Replaces.find(R);
if (It == Replaces.end())
Replaces.emplace(R, SourceTU);
else if (It->second != SourceTU)
// This replacement is a duplicate of one suggested by another TU.
return;
}
GroupedReplacements[*Entry].push_back(R);
Expand All @@ -166,14 +174,14 @@ groupReplacements(const TUReplacements &TUs, const TUDiagnostics &TUDs,

for (const auto &TU : TUs)
for (const tooling::Replacement &R : TU.Replacements)
AddToGroup(R, false);
AddToGroup(R, nullptr);

for (const auto &TU : TUDs)
for (const auto &D : TU.Diagnostics)
if (const auto *ChoosenFix = tooling::selectFirstFix(D)) {
for (const auto &Fix : *ChoosenFix)
for (const tooling::Replacement &R : Fix.second)
AddToGroup(R, true);
AddToGroup(R, &TU);
}

// Sort replacements per file to keep consistent behavior when
Expand Down
66 changes: 33 additions & 33 deletions clang-tools-extra/clang-tidy/ClangTidyForceLinker.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@
namespace clang {
namespace tidy {

// This anchor is used to force the linker to link the CERTModule.
extern volatile int CERTModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
CERTModuleAnchorSource;

// This anchor is used to force the linker to link the AbseilModule.
extern volatile int AbseilModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AbseilModuleAnchorDestination =
AbseilModuleAnchorSource;

// This anchor is used to force the linker to link the AndroidModule.
extern volatile int AndroidModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
AndroidModuleAnchorSource;

// This anchor is used to force the linker to link the BoostModule.
extern volatile int BoostModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED BoostModuleAnchorDestination =
Expand All @@ -35,20 +35,10 @@ extern volatile int BugproneModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED BugproneModuleAnchorDestination =
BugproneModuleAnchorSource;

// This anchor is used to force the linker to link the LinuxKernelModule.
extern volatile int LinuxKernelModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LinuxKernelModuleAnchorDestination =
LinuxKernelModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMModule.
extern volatile int LLVMModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
LLVMModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMLibcModule.
extern volatile int LLVMLibcModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMLibcModuleAnchorDestination =
LLVMLibcModuleAnchorSource;
// This anchor is used to force the linker to link the CERTModule.
extern volatile int CERTModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED CERTModuleAnchorDestination =
CERTModuleAnchorSource;

// This anchor is used to force the linker to link the CppCoreGuidelinesModule.
extern volatile int CppCoreGuidelinesModuleAnchorSource;
Expand All @@ -70,10 +60,25 @@ extern volatile int GoogleModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED GoogleModuleAnchorDestination =
GoogleModuleAnchorSource;

// This anchor is used to force the linker to link the AndroidModule.
extern volatile int AndroidModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED AndroidModuleAnchorDestination =
AndroidModuleAnchorSource;
// This anchor is used to force the linker to link the HICPPModule.
extern volatile int HICPPModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
HICPPModuleAnchorSource;

// This anchor is used to force the linker to link the LinuxKernelModule.
extern volatile int LinuxKernelModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LinuxKernelModuleAnchorDestination =
LinuxKernelModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMModule.
extern volatile int LLVMModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMModuleAnchorDestination =
LLVMModuleAnchorSource;

// This anchor is used to force the linker to link the LLVMLibcModule.
extern volatile int LLVMLibcModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED LLVMLibcModuleAnchorDestination =
LLVMLibcModuleAnchorSource;

// This anchor is used to force the linker to link the MiscModule.
extern volatile int MiscModuleAnchorSource;
Expand All @@ -93,6 +98,11 @@ static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination =
MPIModuleAnchorSource;
#endif

// This anchor is used to force the linker to link the ObjCModule.
extern volatile int ObjCModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
ObjCModuleAnchorSource;

// This anchor is used to force the linker to link the OpenMPModule.
extern volatile int OpenMPModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED OpenMPModuleAnchorDestination =
Expand All @@ -113,16 +123,6 @@ extern volatile int ReadabilityModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ReadabilityModuleAnchorDestination =
ReadabilityModuleAnchorSource;

// This anchor is used to force the linker to link the ObjCModule.
extern volatile int ObjCModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ObjCModuleAnchorDestination =
ObjCModuleAnchorSource;

// This anchor is used to force the linker to link the HICPPModule.
extern volatile int HICPPModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED HICPPModuleAnchorDestination =
HICPPModuleAnchorSource;

// This anchor is used to force the linker to link the ZirconModule.
extern volatile int ZirconModuleAnchorSource;
static int LLVM_ATTRIBUTE_UNUSED ZirconModuleAnchorDestination =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
#include "SignedCharMisuseCheck.h"
#include "SizeofContainerCheck.h"
#include "SizeofExpressionCheck.h"
#include "SpuriouslyWakeUpFunctionsCheck.h"
#include "StringConstructorCheck.h"
#include "StringIntegerAssignmentCheck.h"
#include "StringLiteralWithEmbeddedNulCheck.h"
Expand Down Expand Up @@ -133,6 +134,8 @@ class BugproneModule : public ClangTidyModule {
"bugprone-sizeof-container");
CheckFactories.registerCheck<SizeofExpressionCheck>(
"bugprone-sizeof-expression");
CheckFactories.registerCheck<SpuriouslyWakeUpFunctionsCheck>(
"bugprone-spuriously-wake-up-functions");
CheckFactories.registerCheck<StringConstructorCheck>(
"bugprone-string-constructor");
CheckFactories.registerCheck<StringIntegerAssignmentCheck>(
Expand Down
1 change: 1 addition & 0 deletions clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ add_clang_library(clangTidyBugproneModule
SignedCharMisuseCheck.cpp
SizeofContainerCheck.cpp
SizeofExpressionCheck.cpp
SpuriouslyWakeUpFunctionsCheck.cpp
StringConstructorCheck.cpp
StringIntegerAssignmentCheck.cpp
StringLiteralWithEmbeddedNulCheck.cpp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
//===--- SpuriouslyWakeUpFunctionsCheck.cpp - clang-tidy ------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//

#include "SpuriouslyWakeUpFunctionsCheck.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"

using namespace clang::ast_matchers;

namespace clang {
namespace tidy {
namespace bugprone {

void SpuriouslyWakeUpFunctionsCheck::registerMatchers(MatchFinder *Finder) {

auto hasUniqueLock = hasDescendant(declRefExpr(
hasDeclaration(varDecl(hasType(recordDecl(classTemplateSpecializationDecl(
hasName("::std::unique_lock"),
hasTemplateArgument(
0, templateArgument(refersToType(qualType(hasDeclaration(
cxxRecordDecl(hasName("::std::mutex"))))))))))))));

auto hasWaitDescendantCPP = hasDescendant(
cxxMemberCallExpr(
anyOf(
allOf(hasDescendant(memberExpr(hasDeclaration(functionDecl(
allOf(hasName("::std::condition_variable::wait"),
parameterCountIs(1)))))),
onImplicitObjectArgument(
declRefExpr(to(varDecl(hasType(references(recordDecl(
hasName("::std::condition_variable")))))))),
hasUniqueLock),
allOf(hasDescendant(memberExpr(hasDeclaration(functionDecl(
allOf(hasName("::std::condition_variable::wait_for"),
parameterCountIs(2)))))),
onImplicitObjectArgument(
declRefExpr(to(varDecl(hasType(references(recordDecl(
hasName("::std::condition_variable")))))))),
hasUniqueLock),
allOf(hasDescendant(memberExpr(hasDeclaration(functionDecl(
allOf(hasName("::std::condition_variable::wait_until"),
parameterCountIs(2)))))),
onImplicitObjectArgument(
declRefExpr(to(varDecl(hasType(references(recordDecl(
hasName("::std::condition_variable")))))))),
hasUniqueLock)

))
.bind("wait"));

auto hasWaitDescendantC = hasDescendant(
callExpr(callee(functionDecl(
anyOf(hasName("cnd_wait"), hasName("cnd_timedwait")))))
.bind("wait"));
if (getLangOpts().CPlusPlus) {
// Check for `CON54-CPP`
Finder->addMatcher(
ifStmt(

allOf(hasWaitDescendantCPP,
unless(anyOf(hasDescendant(ifStmt(hasWaitDescendantCPP)),
hasDescendant(whileStmt(hasWaitDescendantCPP)),
hasDescendant(forStmt(hasWaitDescendantCPP)),
hasDescendant(doStmt(hasWaitDescendantCPP)))))

),
this);
} else {
// Check for `CON36-C`
Finder->addMatcher(

ifStmt(
allOf(hasWaitDescendantC,
unless(anyOf(hasDescendant(ifStmt(hasWaitDescendantC)),
hasDescendant(whileStmt(hasWaitDescendantC)),
hasDescendant(forStmt(hasWaitDescendantC)),
hasDescendant(doStmt(hasWaitDescendantC)),
hasParent(whileStmt()),
hasParent(compoundStmt(hasParent(whileStmt()))),
hasParent(forStmt()),
hasParent(compoundStmt(hasParent(forStmt()))),
hasParent(doStmt()),
hasParent(compoundStmt(hasParent(doStmt())))))

))

,
this);
}
}

void SpuriouslyWakeUpFunctionsCheck::check(
const MatchFinder::MatchResult &Result) {
const auto *MatchedWait = Result.Nodes.getNodeAs<CallExpr>("wait");
StringRef WaitName = MatchedWait->getDirectCallee()->getName();
diag(MatchedWait->getExprLoc(),
"'%0' should be placed inside a while statement %select{|or used with a "
"conditional parameter}1")
<< WaitName << (WaitName != "cnd_wait" && WaitName != "cnd_timedwait");
}
} // namespace bugprone
} // namespace tidy
} // namespace clang
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//===--- SpuriouslyWakeUpFunctionsCheck.h - clang-tidy ----------*- 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
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SPURIOUSLYWAKEUPFUNCTIONSCHECK_H
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SPURIOUSLYWAKEUPFUNCTIONSCHECK_H

#include "../ClangTidyCheck.h"

namespace clang {
namespace tidy {
namespace bugprone {

/// Finds ``cnd_wait``, ``cnd_timedwait``, ``wait``, ``wait_for``, or
/// ``wait_until`` function calls when the function is not invoked from a loop
/// that checks whether a condition predicate holds or the function has a
/// condition parameter.
///
/// For the user-facing documentation see:
/// http://clang.llvm.org/extra/clang-tidy/checks/bugprone-spuriously-wake-up-functions.html
class SpuriouslyWakeUpFunctionsCheck : public ClangTidyCheck {
public:
SpuriouslyWakeUpFunctionsCheck(StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context) {}
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
};

} // namespace bugprone
} // namespace tidy
} // namespace clang

#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_BUGPRONE_SPURIOUSLYWAKEUPFUNCTIONSCHECK_H
7 changes: 7 additions & 0 deletions clang-tools-extra/clang-tidy/cert/CERTTidyModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "../ClangTidyModuleRegistry.h"
#include "../bugprone/BadSignalToKillThreadCheck.h"
#include "../bugprone/ReservedIdentifierCheck.h"
#include "../bugprone/SpuriouslyWakeUpFunctionsCheck.h"
#include "../bugprone/UnhandledSelfAssignmentCheck.h"
#include "../google/UnnamedNamespaceInHeaderCheck.h"
#include "../misc/NewDeleteOverloadsCheck.h"
Expand Down Expand Up @@ -42,6 +43,9 @@ class CERTModule : public ClangTidyModule {
public:
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
// C++ checkers
// CON
CheckFactories.registerCheck<bugprone::SpuriouslyWakeUpFunctionsCheck>(
"cert-con54-cpp");
// DCL
CheckFactories.registerCheck<PostfixOperatorCheck>(
"cert-dcl21-cpp");
Expand Down Expand Up @@ -80,6 +84,9 @@ class CERTModule : public ClangTidyModule {
"cert-oop58-cpp");

// C checkers
// CON
CheckFactories.registerCheck<bugprone::SpuriouslyWakeUpFunctionsCheck>(
"cert-con36-c");
// DCL
CheckFactories.registerCheck<misc::StaticAssertCheck>("cert-dcl03-c");
CheckFactories.registerCheck<readability::UppercaseLiteralSuffixCheck>(
Expand Down
1 change: 1 addition & 0 deletions clang-tools-extra/clang-tidy/llvmlibc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ add_clang_library(clangTidyLLVMLibcModule
clangBasic
clangLex
clangTidy
clangTidyPortabilityModule
clangTidyUtils
clangTooling
)
Loading