Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
777 commits
Select commit Hold shift + click to select a range
9adf746
[X86] Add test case for PR46455.
topperc Jul 16, 2020
f0f9787
[WebAssembly] Lower vselect to v128.bitselect
tlively Jul 16, 2020
f7868f8
[WebAssembly] Autogenerate tests for simd-select.ll
tlively Jul 16, 2020
9adbb5c
[SCEV] Fix ScalarEvolution tests under NPM
aeubanks Jul 16, 2020
0afe172
[Driver] Make -B take precedence over COMPILER_PATH
MaskRay Jul 16, 2020
1912ace
AMDGPU: Move handling of AGPR copies to a separate function
arsenm Jul 1, 2020
b3417d8
[TableGen] Change std::vector to SmallVector
nadavrot Jul 16, 2020
ecb2e5b
[WebAssembly] Implement v128.select
tlively Jul 16, 2020
a394aa1
[LiveVariables] Replace std::vector with SmallVector.
nadavrot Jul 16, 2020
294d1ea
[RISCV] Add support for -mcpu option.
zakk0610 Jul 16, 2020
5d2be1a
[compiler-rt][asan][hwasan] Refactor shadow setup into sanitizer_comm…
teresajohnson Jul 6, 2020
bd88991
Revert "[Darwin] Fix OS version checks inside simulators"
Jul 16, 2020
a59d4ae
[Analyzer] Hotfix for various crashes in iterator checkers
Jul 7, 2020
8f0a8ed
[InjectTLIMappings] Use StringRef instead of std::string for FN name.
nadavrot Jul 14, 2020
7bfaa40
Temporarily Revert "[AssumeBundles] Use operand bundles to encode ali…
echristo Jul 16, 2020
29f8c9f
[WebAssembly] Triple::wasm64 related cleanup
aardappel Jul 6, 2020
5e8b4be
[AST][NFC] Simplify a regression test
jkorous-apple Jul 16, 2020
4e2f72c
[gn build] Port 5e8b4be9f85
llvmgnsyncbot Jul 16, 2020
9785f7b
[libc++] Improve how we report the testing configuration
ldionne Jul 16, 2020
4c5d523
[intel-pt] Fix building due to CMake + python changes
Jul 16, 2020
9870f77
[llvm] Moved InlineSizeEstimatorAnalysis test to .ll
mtrofin Jul 15, 2020
1038228
AMDGPU: Add missing tests for copyPhysReg AGPR tuples
arsenm Jul 16, 2020
2659663
[libc++] Remove shortcut Lit features for Apple backdeployment
ldionne Jul 16, 2020
fc9865c
[libc++abi] Temporarily disable test on Apple to fix the CI
ldionne Jul 16, 2020
4fd91b0
Remove an unused variable in Clang.
nadavrot Jul 14, 2020
ad171d2
[X86] Change the tuning settings for pentium4 to be more modern since…
topperc Jul 16, 2020
6c5b635
AMDGPU: Add a few more missing test for AGPR tuple copying
arsenm Jul 16, 2020
a2a3adc
Fix incorrect file path in documentation
arsenm Jul 16, 2020
515bc8c
Harmonize Python shebang
Jul 15, 2020
e04fe9a
[Statepoint] Fix bug found by sanitaizer.
dantrushin Jul 16, 2020
f78d9fc
[libFuzzer] Link libFuzzer's own interceptors when other compiler run…
dokyungs Jul 16, 2020
5408024
[X86] Move integer hadd/hsub formation into a helper function shared …
topperc Jul 16, 2020
b636e7d
[NFC][PhaseOrdering] Add a test demonstrating pitfails of common code…
LebedevRI Jul 16, 2020
cc1b9b6
[WebAssembly] 64-bit (function) pointer fixes.
aardappel Jul 10, 2020
2dd9e43
[spirv] Use owning module ref to avoid leaks and fix ASAN tests
antiagainst Jul 16, 2020
a0537fc
[SimplifyCFG] Fix crash in the EXPENSIVE_CHECKS build
jroelofs Jul 16, 2020
72958c9
[lldb] Eliminated unused local variable
amccarth-google Jul 16, 2020
0e940d5
[ORC] Add TargetProcessControl and TPCIndirectionUtils APIs.
lhames Jul 16, 2020
c489ae2
[compiler-rt][asan][hwasan] Fix Android bots
teresajohnson Jul 16, 2020
15b37e1
[builtins] Omit 80-bit builtins on Android and MSVC
rprichard Jul 16, 2020
c273563
[PowerPC][Power10] Add 128-bit Binary Integer Operation instruction d…
Jul 16, 2020
669b070
cmake list formatting fix
nico Jul 16, 2020
121302a
[ORC] Add explicit cast to fix a narrowing conversion error.
lhames Jul 16, 2020
b0bc773
[ORC] Add more explicit casts to fix a narrowing conversion errors.
lhames Jul 16, 2020
2f99059
[lldb/Test] Skip TestMacABImacOSFramework.py with reproducers
JDevlieghere Jul 16, 2020
12d1124
[libFuzzer] Disable implicit builtin knowledge about memcmp-like func…
dokyungs Jul 16, 2020
1005623
[ORC] Switch from initializer lists to named arguments to work around…
lhames Jul 16, 2020
2cf3458
[tsan][go] Fix for missing symbols needed by GotsanRuntimeCheck
jroelofs Jul 16, 2020
0f6220d
[profile] Move __llvm_profile_raw_version into a separate file
mshockwave Jul 10, 2020
0beac5b
[gn build] (manually) merge 9870f77441c
nico Jul 16, 2020
c1cc3a8
[gn build] Port 0e940d55f8a
llvmgnsyncbot Jul 16, 2020
75e2040
[gn build] Port 0f6220ddd6c
llvmgnsyncbot Jul 16, 2020
f6275ca
[gn build] Port 9870f77441c
llvmgnsyncbot Jul 16, 2020
8ef9e2b
Revert "[libFuzzer] Link libFuzzer's own interceptors when other comp…
zygoloid Jul 17, 2020
147a608
[sanitizer] Fix symbolizer build broken by D82702
vitalybuka Jul 17, 2020
b128f71
[profile] Disable new failing test from D83967
vitalybuka Jul 17, 2020
3a18665
[AMDGPU] Translate s_and/s_andn2 to s_mov in vcc optimisation
perlfu Jul 17, 2020
fd1f807
[LangRef] Mention that freeze does not consider aggregate's paddings
aqjune Jul 17, 2020
947bf0f
[compiler-rt][NFC] Add missing 'override's
kepler-5 Jul 17, 2020
5d31d09
[polly][NFC] Add missing 'override's
kepler-5 Jul 17, 2020
dc65f57
[DWARFYAML] Merge forms that use same encodings. NFC.
higuoxing Jul 17, 2020
cd49532
Add a test for D83752
aqjune Jul 17, 2020
582901d
[ValueTracking] Let isGuaranteedNotToBeUndefOrPoison consider noundef
aqjune Jul 17, 2020
1b3c25e
[llvm] Add RISCVTargetParser.def to the module map
JDevlieghere Jul 17, 2020
addbf73
[X86] Reorder how the subtarget map key is created.
topperc Jul 17, 2020
6bba958
[X86] Change the scheduler model for 'pentium4' to SandyBridgeModel.
topperc Jul 17, 2020
1692611
[lldb] Only set the executable module for a target once
Teemperor Jul 17, 2020
f76a0cd
[DebugInfo] Fix a misleading usage of DWARF forms with DIEExpr. NFCI.
igorkudrin Jul 17, 2020
4905536
Revert "[AMDGPU/MemOpsCluster] Implement new heuristic for computing …
hsmahesha Jul 17, 2020
c989881
[InstCombine] Fix replace select with Phis when branch has the same l…
xortator Jul 17, 2020
1cb8cc1
[profile] Enabled test on windows
vitalybuka Jul 17, 2020
dbf39e5
[sanitizer] Revert accidentally committed file
vitalybuka Jul 17, 2020
f5db241
[libc][Obvious] Cleanup of include lines and target listings in FPUtil.
Jul 17, 2020
1b7c9ea
[lldb] Store StackFrameRecognizers in the target instead of a global …
Teemperor Jul 17, 2020
3e0ccf9
[ARM] halfword store hits llvm_unreachable with big-endian
simonwallis2 Jul 17, 2020
0db3ac3
[compiler-rt][asan] Define MemToShadowSize for sparc64
rorth Jul 17, 2020
785d41a
[TSan] Add option for emitting compound read-write instrumentation
melver Jul 17, 2020
817767a
[PowerPC] Precommit test case for PR46759. NFC.
Jul 17, 2020
40a073e
[sanitizer] Fix protoent without network
vitalybuka Jul 17, 2020
05fe069
[gwp-asan] Fix check-all with LIT_FILTER
vitalybuka Jul 17, 2020
02c7490
[lsan] Fix SyntaxWarning: "is" with a literal
vitalybuka Jul 17, 2020
650baf2
[msan] Fix strxfrm test
vitalybuka Jul 17, 2020
e297006
[ScheduleDAG] Move DBG_VALUEs after first term forward.
fhahn Jul 17, 2020
e412cc4
[asan] Dedup MemToShadowSize
vitalybuka Jul 17, 2020
f3fab39
[lldb/DWARF] Don't get confused by line sequences with tombstone values
labath Jul 16, 2020
62fd7f7
[MachineScheduler] Fix the TopDepth/BotHeightReduce latency heuristics
jayfoad Jan 7, 2020
bb160e7
[Sema][AArch64] Add parsing support for arm_sve_vector_bits attribute
c-rhodes May 29, 2020
df6e185
[InstCombine][Test] Test for fix of replacing select with Phis when b…
xortator Jul 17, 2020
1cfb207
[TableGen] Report an error instead of asserting
jayfoad Apr 16, 2020
760af7a
[AMDGPU] Avoid splitting FLAT offsets in unsafe ways
jayfoad Jul 8, 2020
6c348e4
[HWLoops] Stop converting to a while loop when it would be unsafe to
SamTebbs33 Jul 16, 2020
ede7c02
[lldb/COFF] Remove strtab zeroing hack
labath Jul 15, 2020
033ef84
Add -flang flag to the test-release.sh script
zmodem Jul 17, 2020
9a0689e
Make helpers static. NFC.
d0k Jul 17, 2020
4fc752b
[CUDA][HIP] Always defer diagnostics for wrong-sided reference
yxsamliu Jul 15, 2020
7598ad3
[x86] add tests for FMA with FMF; NFC
rotateright Jul 16, 2020
2dc3d1b
[AMDGPU] Add some missing check prefixes
jayfoad Jul 17, 2020
f05bce8
[AMDGPU] Add some missing check prefixes and tweak test
jayfoad Jul 17, 2020
a46ef7d
Revert "[CUDA][HIP] Always defer diagnostics for wrong-sided reference"
yxsamliu Jul 17, 2020
de0c6bd
Add -o /dev/null to make it explicit that we don't care about the
akuegel Jul 17, 2020
6227f04
[llvm-readobj] - Add proper testing for the SHT_MIPS_ABIFLAGS section.
Jul 16, 2020
23c9534
[LV] Enable the LoopVectorizer to create pointer inductions
Jul 17, 2020
fd02a86
[analyzer] Add system header simulator a symmetric random access iter…
Jul 6, 2020
16a4350
[MSP430] Actualize the toolchain description
atrosinenko Jul 17, 2020
47a3b85
[ms] [llvm-ml] Remove unused function
ericastor Jul 15, 2020
ed48e6f
[NFC][ARM] Add SimplifyCFG test
sparker-arm Jul 17, 2020
9275e14
recommit 4fc752b30b9a [CUDA][HIP] Always defer diagnostics for wrong-…
yxsamliu Jul 15, 2020
11e879d
[Loop Simplify] Resolve an issue where metadata is not applied to a l…
Jul 17, 2020
8dea7f3
[z/OS][AIX] Move lambda definition to fix build problem
daltenty Jul 16, 2020
079b49b
[flang][OpenMP] Added support for lowering OpenMP taskwait construct
SouraVX Jul 16, 2020
c7562e7
[OpenMP][NFC] Generalize CGOpenMPRuntimeNVPTX as CGOpenMPRuntimeGPU
saiislam Jul 17, 2020
8475981
[gn build] Port c7562e77b3a
llvmgnsyncbot Jul 17, 2020
31d71c6
[Matrix] Only run matrix lowering early with -O0.
fhahn Jul 17, 2020
7ebc6be
[ARM][MVE] Reorg of the LV tail-folding tests
Jul 17, 2020
6bddd09
Revert "[llvm-exegesis] Add benchmark latency option on X86 that uses…
legrosbuffle Jul 17, 2020
6831f8a
[gn build] Port 6bddd099ac1
llvmgnsyncbot Jul 17, 2020
6c43ed6
Introducing llvm-libtool-darwin
sammy-1234 Jul 1, 2020
08521ab
[mlir][EDSC] Allow conditionBuilder to capture the IfOp
nicolasvasilache Jul 17, 2020
63f0b10
[gn format] (manually) merge 6bddd099ac
nico Jul 17, 2020
994fb86
AMDGPU: Fix promoting f16 fpowi with legal f16
arsenm Jul 17, 2020
acbc688
[InstSimplify] add tests for fcmp with infinity; NFC
rotateright Jul 17, 2020
1afd889
[gn build] Make sync_source_lists_from_cmake handle one-line sources …
nico Jul 17, 2020
ec62e37
[mlir] [vector] Add an optional filter to vector contract lowering pa…
poechsel Jul 17, 2020
16458b5
[gn build] (manually) merge 6c43ed608
nico Jul 17, 2020
f7dce88
[IR] Fix MSVC warning (NFC)
nikic Jul 17, 2020
9551ae2
[gn build] Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.…
nico Jul 17, 2020
f8a29b1
[OptTable] Support grouped short options
MaskRay Jul 17, 2020
14dde43
With MSVC, file needs to be compiled with /BIGOBJ
amccarth-google Jul 16, 2020
0e347c0
BPF: generate .rodata BTF datasec for certain initialized local var's
yonghong-song Jul 16, 2020
d19f066
[clang][Tooling] Try to avoid file system access if there is no recor…
ArcsinX Jul 17, 2020
2e87aca
[AMDGPU] Removed s_mov_regrd and mov_fed opcodes
dpreobra Jul 17, 2020
cc0a58d
[mlir][Vector] Fix masking logic in VectorToSCF
nicolasvasilache Jul 17, 2020
04713f8
Added missing API call to OpenMP test
Jul 16, 2020
0fbbf3a
[lldb] Unify sleep and time outs in GDB remote testcases
JDevlieghere Jul 17, 2020
efb5040
Fixed warning about signed/unsigned comparison
rampitec Jul 15, 2020
62d88a1
[OpenMP] libomp: add itt notifications for teams construct on host
AndreyChurbanov Jul 17, 2020
d3ce3dc
[llvm] Add contains(KeyType) -> bool methods to DenseSet
dwblaikie Jul 17, 2020
1d8eef4
[llvm] Add contains(KeyType) -> bool methods to SetVector
dwblaikie Jul 17, 2020
a0385bd
[llvm] Add contains(KeyType) -> bool methods to SmallPtrSet
dwblaikie Jul 17, 2020
dd4426b
[llvm] Add contains(KeyType) -> bool methods to SmallSet
dwblaikie Jul 17, 2020
39000aa
[llvm] Add contains(KeyType) -> bool methods to SparseSet
dwblaikie Jul 17, 2020
645bb8e
[llvm] Add contains(KeyType) -> bool methods to StringSet
dwblaikie Jul 17, 2020
5d06e8b
Pass -rtlib=libgcc in tests conditioned on the default.
Jul 17, 2020
7738c03
[libc][NFC] Use RemoveCVType to implement IsIntegral and IsPointerType.
Jul 16, 2020
fda901a
[Clang] Fix building with Clang < 3.9.
Bigcheese Jul 17, 2020
b30fa1c
[flang] Add entry points for internal scalar list-directed I/O
klausler Jul 17, 2020
66b6698
[NFC][InstCombine] Add some tests with sdiv-by-negative-power-of-two
LebedevRI Jul 17, 2020
0fdcca0
[InstCombine] Fold X sdiv (-1 << C) -> -(X u>> Y) iff X is non-nega…
LebedevRI Jul 17, 2020
d8e0baf
[InstCombine] Fix typo in comment.
xinan-jiang Jul 17, 2020
502f0cc
[GWP-ASan] Split the unwinder into segv/non-segv.
hctim Jul 17, 2020
ec6ada6
[AIX] report_fatal_error on `-fregister_global_dtors_with_atexit` for…
xling-liao Jul 16, 2020
029946b
[InlineAdvisor] New inliner advisor to replay inlining from optimizat…
WenleiHe Jul 14, 2020
c2d69d8
Remove clang matrix lowering test for now as it is still failing unde…
Jul 17, 2020
ea4758a
[flang] Rework read/write permission management for runtime file opening
klausler Jul 17, 2020
db15b8a
[compiler-rt][asan][hwasan] Fix Fuchsia build
teresajohnson Jul 17, 2020
09fe0c5
[OpenMP] Add Additional Function Attribute Information to OMPKinds.def
jhuber6 Jul 17, 2020
ae08dbc
Temporarily Revert "[InlineAdvisor] New inliner advisor to replay inl…
echristo Jul 17, 2020
020545d
Temporarily Revert "[OpenMP] Add Additional Function Attribute Inform…
echristo Jul 17, 2020
7fcc1bb
[clangd] Fix the build with clang <3.9.
Bigcheese Jul 17, 2020
86fb2db
[OpenMP] libomp cleanup: check presence of hwloc objects CORE, PACKAGE
AndreyChurbanov Jul 17, 2020
cf2274b
[flang] Allow ! and // comments after some preprocessing directives
klausler Jul 17, 2020
cf5df40
Revert "[AddressSanitizer] Don't use weak linkage for __{start,stop}_…
PiJoules Jul 17, 2020
63c081e
[GISel: Add support for CSEing SrcOps which are immediates
Jul 17, 2020
53880b8
[CMake] Make `intrinsics_gen` dependency unconditional.
michele-scandale Jul 17, 2020
0dfa4a8
Revert "[PGO][PGSO] Add profile guided size optimization to loop vect…
aeubanks Jul 17, 2020
8e2b4e5
[flang] Support <name>=<integer> syntax in compiler directives
klausler Jul 17, 2020
8305a92
[flang] Treat tabs like spaces in formatted input.
klausler Jul 17, 2020
b0a971d
[flang] Prevent bogus runtime I/O error message
klausler Jul 18, 2020
1bbed69
[sanitizer] Another attempt to fix protoent test
vitalybuka Jul 18, 2020
31eb834
[llvm][NFC] Add missing 'override's in unittests/
kepler-5 Jul 17, 2020
3ee7fe4
[llvm][NFC] Add missing 'override's
kepler-5 Jul 17, 2020
1050560
[clang][NFC] Add a missing 'override'
kepler-5 Jul 17, 2020
176a6e7
[asan] Use dynamic shadow memory position on Apple Silicon macOS
kubamracek Jul 18, 2020
3b55bfa
[llvm-jitlink] Add suppport for testing GOT entries and stubs for ELF.
lhames Jul 17, 2020
7c2f276
[NewPM][ASan] Make ASan tests work under NPM
aeubanks Jul 18, 2020
c12f111
Corrected __libfuzzer_is_present symbol inclusion for MSVC x86 32-bit
vitalybuka Jul 18, 2020
cbf64b5
[OpenMP] Fix map clause for unused var: don't ignore it
jdenny-ornl Jul 18, 2020
6d247f9
[SCEV][IndVarSimplify] insert point should not be block front.
Jul 15, 2020
bb07eb9
[PowerPC]add testcase for adding store (load float*) pattern, nfc
Jul 18, 2020
780528d
sanitizers: Implement sig{and,or}set interceptors
archshift Jul 18, 2020
c425094
[LLVM] Add libatomic load/store functions to TargetLibraryInfo
archshift Jul 18, 2020
1f29171
update libatomic instrumentation
archshift Jul 18, 2020
951584d
Revert "update libatomic instrumentation"
archshift Jul 18, 2020
65936fe
[MSAN tests] Require android for sigandorset.cpp
archshift Jul 18, 2020
b922004
[RelocationResolver] Support R_PPC_REL32 & R_PPC64_REL{32,64}
MaskRay Jul 18, 2020
3073a3a
[RelocationResolver] Support R_AARCH64_PREL32
MaskRay Jul 18, 2020
3382b71
[MLIR] Add lowering for affine.parallel to scf.parallel
yashjain1129 Jul 18, 2020
1fe0705
[sanitizer] Disable test on incompatible platforms
vitalybuka Jul 18, 2020
2408992
[CodeGen][TargetPassConfig] Add TargetTransformInfo pass correctly
Jul 18, 2020
2f4c3e8
[LV] Add additional InLoop redution tests. NFC
davemgreen Jul 17, 2020
918f3fc
AMDGPU/GlobalISel: Fix test copy paste error
arsenm Jul 18, 2020
c73df56
AMDGPU/GlobalISel: Address some test fixmes that don't fail now
arsenm Jul 18, 2020
7b16fd8
[NFC][CVP] Add tests for possible sdiv->udiv where operands are not n…
LebedevRI Jul 18, 2020
2cde698
[NFC][CVP] Refactor isPositive() out of hasPositiveOperands()
LebedevRI Jul 18, 2020
45b7388
[NFC][CVP] Rename predicates - s/positive/non negative/ to better not…
LebedevRI Jul 18, 2020
8d48766
[CVP] Soften SDiv into a UDiv as long as we know domains of both of t…
LebedevRI Jul 18, 2020
4b19ccc
[PredicateInfo] Fold PredicateWithCondition into PredicateBase (NFC).
fhahn Jul 18, 2020
3ab0f53
[DebugInfo] Respect relocations when decoding DW_EH_PE_sdata4 & DW_EH…
MaskRay Jul 18, 2020
6d7ec54
[clang-format] Make sure rst documentation matches comments
wanders Jul 18, 2020
7099a4b
[ELF][test] Update test after DW_EH_PE_sdata4/DW_EH_PE_sdata8 change
MaskRay Jul 18, 2020
9548697
Fix Markdown format for lists in the Standard Dialect documentation
joker-eph Jul 18, 2020
570a397
Fix dead link on MLIR website
joker-eph Jul 18, 2020
9dceb32
[NFC][CVP] processSDiv(): pacify gcc compilers
LebedevRI Jul 18, 2020
3bbbe4c
[OpenMP] Add Additional Function Attribute Information to OMPKinds.def
jhuber6 Jul 18, 2020
0b2a922
[analyzer] scan-build: Fix silencing multiple core checkers.
haoNoQ Jul 18, 2020
e79a86e
[flang] Insert leading blanks in LOGICAL formatted output fields
klausler Jul 17, 2020
ca1cc5c
[gcov][test] Call wait() to make gcov-fork.c reliable
MaskRay Jul 18, 2020
cbff0c7
[flang] Improve output from a STOP statement
klausler Jul 17, 2020
32db24a
[clang] Provide a more specific diagnostic for a misplaced lambda cap…
riccibruno Jul 18, 2020
be8e5fe
[clang][NFC] Tests showing the problems with some uses of NamedDecl::…
riccibruno Jul 18, 2020
acf3bdc
[clang][NFC] Tests showing the problems with some uses of NamedDecl::…
riccibruno Jul 18, 2020
13ae440
[InstCombine] Add test for PR46680 (NFC)
nikic Jul 18, 2020
6a25838
[gcov][test] Simplify instrprof-dlopen-dlclose-gcov.test
MaskRay Jul 12, 2020
5809a32
[gcov] Add __gcov_dump/__gcov_reset and delete __gcov_flush
MaskRay Jul 18, 2020
1ee88e6
Fix invalid link in the MLIR Standard Dialect www page (2nd attempt)
joker-eph Jul 18, 2020
3452a0d
[Driver] -B: don't search for target triple prefixes
MaskRay Jul 19, 2020
b2b39c5
[Driver] --print-search-dirs: print -B options and COMPILER_PATH
MaskRay Jul 19, 2020
606e756
[NewPM] make parsePassPipeline parse adaptor-wrapped user passes
Jul 19, 2020
af4c873
[NewPM] Allow passes to never be skipped
Jul 19, 2020
d37befd
[PowerPC] Remove the redundant implicit operands in ppc-early-ret pass
zhangkangcool Jul 19, 2020
2e74b6d
[llvm-cov gcov] Don't require NUL terminator when reading files
MaskRay Jul 19, 2020
3504acc
[ARM] Don't mark vctp as having sideeffects
davemgreen Jul 16, 2020
d12ec0f
[InstCombine] Fix store merge worklist management (PR46680)
nikic Jul 18, 2020
7393d75
[InstSimplify] fold fcmp with infinity constant using isKnownNeverInf…
rotateright Jul 19, 2020
fb5577d
[NFCI][GVN] Make IsValueFullyAvailableInBlock() readable - use enum c…
LebedevRI Jul 19, 2020
c6e1366
[PredicateInfo] Add a method to interpret predicate as cmp constraint
nikic Jul 9, 2020
2f3862e
Reland "[InstCombine] Lower infinite combine loop detection thresholds"
LebedevRI Jul 19, 2020
50afa18
[x86] split FMA with fast-math-flags to avoid libcall
rotateright Jul 19, 2020
7dfff42
Silencing some 'logical operation on address of string constant diagn…
AaronBallman Jul 19, 2020
b79ca34
Revert 7dfff42f019583076c55993d30a63889613922dd as it broke non-Windo…
AaronBallman Jul 19, 2020
9791416
Silence a "logical operation on address of string constant" via CMake…
AaronBallman Jul 19, 2020
2d6ecfa
[InlineAdvisor] New inliner advisor to replay inlining from optimizat…
WenleiHe Jul 17, 2020
d41d952
Revert "[InlineAdvisor] New inliner advisor to replay inlining from o…
WenleiHe Jul 19, 2020
13316a7
[clang] Disable a few formatting options for test/
riccibruno Jul 19, 2020
89ff9bf
[clang] Fix the warning for a non-void consteval function without a r…
riccibruno Jul 19, 2020
0a6aee5
[ValueTracking] Add canCreateUndefOrPoison & let canCreatePoison use …
aqjune Jul 19, 2020
19dd371
[llvm][NFC] Add missing 'override'
kepler-5 Jul 19, 2020
6187eeb
[llvm-reduce] Fix incorrect indices in argument reduction pass
arichardson Jul 19, 2020
8b354cc
[ConstantFolding] check applicability of AllOnes constant creation first
vtjnash Jul 15, 2020
ef66e3d
Fix ValueTrackingTest.cpp to use pair instead of tuple
aqjune Jul 19, 2020
f7a5715
[JITLink][MachO] Fix handling of non-extern UNSIGNED pair of SUBTRACT…
lhames Jul 19, 2020
b0e2396
Merge remote-tracking branch sycl-web into private/vlazarev/llvmspirv…
vladimirlaz Jul 20, 2020
5dbc95b
Merge commit master into private/vlazarev/llvmspirv_pulldown
vladimirlaz Jul 20, 2020
fcc607a
Move SPIRVMap initializations out of OCLUtil.h
svenvh Jul 10, 2020
68d4c4c
Move SPIRVAllowUnknownIntrinsics option to TranslatorOpts class
NikitaRudenkoIntel Jul 9, 2020
d35a1ad
Extend LLVMSPIRVOpts.h interface allowing pass options to spirv passes
NikitaRudenkoIntel Jul 9, 2020
a2d863f
Drop unused CLVer member
svenvh Jul 15, 2020
326f12d
Fix type mapping for pointers with Device/HostOnlyINTEL storage classes
MrSidims Jul 13, 2020
6f47dbd
Add SIMTCallINTEL decoration of SPV_INTEL_vector_compute extension
NikitaRudenkoIntel Jul 9, 2020
5b18de1
[SYCL] Fix LIT test
vladimirlaz Jul 20, 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
  •  
  •  
  •  
41 changes: 25 additions & 16 deletions clang-tools-extra/clang-tidy/ClangTidyCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -155,17 +155,26 @@ void ClangTidyCheck::OptionsView::store(ClangTidyOptions::OptionMap &Options,
Options[NamePrefix + LocalName.str()] = Value;
}

void ClangTidyCheck::OptionsView::store(ClangTidyOptions::OptionMap &Options,
StringRef LocalName,
int64_t Value) const {
void ClangTidyCheck::OptionsView::storeInt(ClangTidyOptions::OptionMap &Options,
StringRef LocalName,
int64_t Value) const {
store(Options, LocalName, llvm::itostr(Value));
}

llvm::Expected<int64_t> ClangTidyCheck::OptionsView::getEnumInt(
StringRef LocalName, ArrayRef<std::pair<StringRef, int64_t>> Mapping,
bool CheckGlobal, bool IgnoreCase) {
auto Iter = CheckGlobal ? findPriorityOption(CheckOptions, NamePrefix, LocalName)
: CheckOptions.find((NamePrefix + LocalName).str());
template <>
void ClangTidyCheck::OptionsView::store<bool>(
ClangTidyOptions::OptionMap &Options, StringRef LocalName,
bool Value) const {
store(Options, LocalName, Value ? StringRef("true") : StringRef("false"));
}

llvm::Expected<int64_t>
ClangTidyCheck::OptionsView::getEnumInt(StringRef LocalName,
ArrayRef<NameAndValue> Mapping,
bool CheckGlobal, bool IgnoreCase) {
auto Iter = CheckGlobal
? findPriorityOption(CheckOptions, NamePrefix, LocalName)
: CheckOptions.find((NamePrefix + LocalName).str());
if (Iter == CheckOptions.end())
return llvm::make_error<MissingOptionError>((NamePrefix + LocalName).str());

Expand All @@ -174,19 +183,19 @@ llvm::Expected<int64_t> ClangTidyCheck::OptionsView::getEnumInt(
unsigned EditDistance = -1;
for (const auto &NameAndEnum : Mapping) {
if (IgnoreCase) {
if (Value.equals_lower(NameAndEnum.first))
return NameAndEnum.second;
} else if (Value.equals(NameAndEnum.first)) {
return NameAndEnum.second;
} else if (Value.equals_lower(NameAndEnum.first)) {
Closest = NameAndEnum.first;
if (Value.equals_lower(NameAndEnum.second))
return NameAndEnum.first;
} else if (Value.equals(NameAndEnum.second)) {
return NameAndEnum.first;
} else if (Value.equals_lower(NameAndEnum.second)) {
Closest = NameAndEnum.second;
EditDistance = 0;
continue;
}
unsigned Distance = Value.edit_distance(NameAndEnum.first);
unsigned Distance = Value.edit_distance(NameAndEnum.second);
if (Distance < EditDistance) {
EditDistance = Distance;
Closest = NameAndEnum.first;
Closest = NameAndEnum.second;
}
}
if (EditDistance < 3)
Expand Down
100 changes: 65 additions & 35 deletions clang-tools-extra/clang-tidy/ClangTidyCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,13 @@ class SourceManager;

namespace tidy {

/// This class should be specialized by any enum type that needs to be converted
/// to and from an \ref llvm::StringRef.
template <class T> struct OptionEnumMapping {
// Specializations of this struct must implement this function.
static ArrayRef<std::pair<T, StringRef>> getEnumMapping() = delete;
};

template <typename T> class OptionError : public llvm::ErrorInfo<T> {
std::error_code convertToErrorCode() const override {
return llvm::inconvertibleErrorCode();
Expand Down Expand Up @@ -312,77 +319,80 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback {
}

/// Read a named option from the ``Context`` and parse it as an
/// enum type ``T`` using the \p Mapping provided. If \p IgnoreCase is set,
/// it will search the mapping ignoring the case.
/// enum type ``T``.
///
/// Reads the option with the check-local name \p LocalName from the
/// ``CheckOptions``. If the corresponding key is not present, returns a
/// ``MissingOptionError``. If the key can't be parsed as a ``T`` returns a
/// ``UnparseableEnumOptionError``.
///
/// \ref clang::tidy::OptionEnumMapping must be specialized for ``T`` to
/// supply the mapping required to convert between ``T`` and a string.
template <typename T>
std::enable_if_t<std::is_enum<T>::value, llvm::Expected<T>>
get(StringRef LocalName, ArrayRef<std::pair<StringRef, T>> Mapping,
bool IgnoreCase = false) {
if (llvm::Expected<int64_t> ValueOr = getEnumInt(
LocalName, typeEraseMapping(Mapping), false, IgnoreCase))
get(StringRef LocalName, bool IgnoreCase = false) {
if (llvm::Expected<int64_t> ValueOr =
getEnumInt(LocalName, typeEraseMapping<T>(), false, IgnoreCase))
return static_cast<T>(*ValueOr);
else
return std::move(ValueOr.takeError());
}

/// Read a named option from the ``Context`` and parse it as an
/// enum type ``T`` using the \p Mapping provided. If \p IgnoreCase is set,
/// it will search the mapping ignoring the case.
/// enum type ``T``.
///
/// Reads the option with the check-local name \p LocalName from the
/// ``CheckOptions``. If the corresponding key is not present or it can't be
/// parsed as a ``T``, returns \p Default.
///
/// \ref clang::tidy::OptionEnumMapping must be specialized for ``T`` to
/// supply the mapping required to convert between ``T`` and a string.
template <typename T>
std::enable_if_t<std::is_enum<T>::value, T>
get(StringRef LocalName, ArrayRef<std::pair<StringRef, T>> Mapping,
T Default, bool IgnoreCase = false) {
if (auto ValueOr = get(LocalName, Mapping, IgnoreCase))
get(StringRef LocalName, T Default, bool IgnoreCase = false) {
if (auto ValueOr = get<T>(LocalName, IgnoreCase))
return *ValueOr;
else
logErrToStdErr(ValueOr.takeError());
return Default;
}

/// Read a named option from the ``Context`` and parse it as an
/// enum type ``T`` using the \p Mapping provided. If \p IgnoreCase is set,
/// it will search the mapping ignoring the case.
/// enum type ``T``.
///
/// Reads the option with the check-local name \p LocalName from local or
/// global ``CheckOptions``. Gets local option first. If local is not
/// present, falls back to get global option. If global option is not
/// present either, returns a ``MissingOptionError``. If the key can't be
/// parsed as a ``T`` returns a ``UnparseableEnumOptionError``.
///
/// \ref clang::tidy::OptionEnumMapping must be specialized for ``T`` to
/// supply the mapping required to convert between ``T`` and a string.
template <typename T>
std::enable_if_t<std::is_enum<T>::value, llvm::Expected<T>>
getLocalOrGlobal(StringRef LocalName,
ArrayRef<std::pair<StringRef, T>> Mapping,
bool IgnoreCase = false) {
if (llvm::Expected<int64_t> ValueOr = getEnumInt(
LocalName, typeEraseMapping(Mapping), true, IgnoreCase))
if (llvm::Expected<int64_t> ValueOr =
getEnumInt(LocalName, typeEraseMapping<T>(), true, IgnoreCase))
return static_cast<T>(*ValueOr);
else
return std::move(ValueOr.takeError());
}

/// Read a named option from the ``Context`` and parse it as an
/// enum type ``T`` using the \p Mapping provided. If \p IgnoreCase is set,
/// it will search the mapping ignoring the case.
/// enum type ``T``.
///
/// Reads the option with the check-local name \p LocalName from local or
/// global ``CheckOptions``. Gets local option first. If local is not
/// present, falls back to get global option. If global option is not
/// present either or it can't be parsed as a ``T``, returns \p Default.
///
/// \ref clang::tidy::OptionEnumMapping must be specialized for ``T`` to
/// supply the mapping required to convert between ``T`` and a string.
template <typename T>
std::enable_if_t<std::is_enum<T>::value, T>
getLocalOrGlobal(StringRef LocalName,
ArrayRef<std::pair<StringRef, T>> Mapping, T Default,
bool IgnoreCase = false) {
if (auto ValueOr = getLocalOrGlobal(LocalName, Mapping, IgnoreCase))
getLocalOrGlobal(StringRef LocalName, T Default, bool IgnoreCase = false) {
if (auto ValueOr = getLocalOrGlobal<T>(LocalName, IgnoreCase))
return *ValueOr;
else
logErrToStdErr(ValueOr.takeError());
Expand All @@ -395,43 +405,56 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback {
StringRef Value) const;

/// Stores an option with the check-local name \p LocalName with
/// ``int64_t`` value \p Value to \p Options.
void store(ClangTidyOptions::OptionMap &Options, StringRef LocalName,
int64_t Value) const;
/// integer value \p Value to \p Options.
template <typename T>
std::enable_if_t<std::is_integral<T>::value>
store(ClangTidyOptions::OptionMap &Options, StringRef LocalName,
T Value) const {
storeInt(Options, LocalName, Value);
}

/// Stores an option with the check-local name \p LocalName as the string
/// representation of the Enum \p Value using the \p Mapping to \p Options.
/// representation of the Enum \p Value to \p Options.
///
/// \ref clang::tidy::OptionEnumMapping must be specialized for ``T`` to
/// supply the mapping required to convert between ``T`` and a string.
template <typename T>
std::enable_if_t<std::is_enum<T>::value>
store(ClangTidyOptions::OptionMap &Options, StringRef LocalName, T Value,
ArrayRef<std::pair<StringRef, T>> Mapping) {
store(ClangTidyOptions::OptionMap &Options, StringRef LocalName, T Value) {
ArrayRef<std::pair<T, StringRef>> Mapping =
OptionEnumMapping<T>::getEnumMapping();
auto Iter = llvm::find_if(
Mapping, [&](const std::pair<StringRef, T> &NameAndEnum) {
return NameAndEnum.second == Value;
Mapping, [&](const std::pair<T, StringRef> &NameAndEnum) {
return NameAndEnum.first == Value;
});
assert(Iter != Mapping.end() && "Unknown Case Value");
store(Options, LocalName, Iter->first);
store(Options, LocalName, Iter->second);
}

private:
using NameAndValue = std::pair<StringRef, int64_t>;
using NameAndValue = std::pair<int64_t, StringRef>;

llvm::Expected<int64_t> getEnumInt(StringRef LocalName,
ArrayRef<NameAndValue> Mapping,
bool CheckGlobal, bool IgnoreCase);

template <typename T>
std::enable_if_t<std::is_enum<T>::value, std::vector<NameAndValue>>
typeEraseMapping(ArrayRef<std::pair<StringRef, T>> Mapping) {
typeEraseMapping() {
ArrayRef<std::pair<T, StringRef>> Mapping =
OptionEnumMapping<T>::getEnumMapping();
std::vector<NameAndValue> Result;
Result.reserve(Mapping.size());
for (auto &MappedItem : Mapping) {
Result.emplace_back(MappedItem.first,
static_cast<int64_t>(MappedItem.second));
Result.emplace_back(static_cast<int64_t>(MappedItem.first),
MappedItem.second);
}
return Result;
}

void storeInt(ClangTidyOptions::OptionMap &Options, StringRef LocalName,
int64_t Value) const;

static void logErrToStdErr(llvm::Error &&Err);

std::string NamePrefix;
Expand Down Expand Up @@ -493,6 +516,13 @@ template <>
bool ClangTidyCheck::OptionsView::getLocalOrGlobal<bool>(StringRef LocalName,
bool Default) const;

/// Stores an option with the check-local name \p LocalName with
/// bool value \p Value to \p Options.
template <>
void ClangTidyCheck::OptionsView::store<bool>(
ClangTidyOptions::OptionMap &Options, StringRef LocalName,
bool Value) const;

} // namespace tidy
} // namespace clang

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ StringFindStartswithCheck::StringFindStartswithCheck(StringRef Name,
StringLikeClasses(utils::options::parseStringList(
Options.get("StringLikeClasses", "::std::basic_string"))),
IncludeStyle(Options.getLocalOrGlobal("IncludeStyle",
utils::IncludeSorter::getMapping(),
utils::IncludeSorter::IS_LLVM)),
AbseilStringsMatchHeader(
Options.get("AbseilStringsMatchHeader", "absl/strings/match.h")) {}
Expand Down Expand Up @@ -122,8 +121,7 @@ void StringFindStartswithCheck::storeOptions(
ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "StringLikeClasses",
utils::options::serializeStringList(StringLikeClasses));
Options.store(Opts, "IncludeStyle", IncludeStyle,
utils::IncludeSorter::getMapping());
Options.store(Opts, "IncludeStyle", IncludeStyle);
Options.store(Opts, "AbseilStringsMatchHeader", AbseilStringsMatchHeader);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,11 @@ InitVariablesCheck::InitVariablesCheck(StringRef Name,
ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
IncludeStyle(Options.getLocalOrGlobal("IncludeStyle",
utils::IncludeSorter::getMapping(),
utils::IncludeSorter::IS_LLVM)),
MathHeader(Options.get("MathHeader", "math.h")) {}

void InitVariablesCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "IncludeStyle", IncludeStyle,
utils::IncludeSorter::getMapping());
Options.store(Opts, "IncludeStyle", IncludeStyle);
Options.store(Opts, "MathHeader", MathHeader);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ ProBoundsConstantArrayIndexCheck::ProBoundsConstantArrayIndexCheck(
StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context), GslHeader(Options.get("GslHeader", "")),
IncludeStyle(Options.getLocalOrGlobal("IncludeStyle",
utils::IncludeSorter::getMapping(),
utils::IncludeSorter::IS_LLVM)) {}

void ProBoundsConstantArrayIndexCheck::storeOptions(
Expand Down
54 changes: 29 additions & 25 deletions clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,31 @@ using namespace llvm;

namespace clang {
namespace tidy {

template <> struct OptionEnumMapping<modernize::Confidence::Level> {
static llvm::ArrayRef<std::pair<modernize::Confidence::Level, StringRef>>
getEnumMapping() {
static constexpr std::pair<modernize::Confidence::Level, StringRef>
Mapping[] = {{modernize::Confidence::CL_Reasonable, "reasonable"},
{modernize::Confidence::CL_Safe, "safe"},
{modernize::Confidence::CL_Risky, "risky"}};
return makeArrayRef(Mapping);
}
};

template <> struct OptionEnumMapping<modernize::VariableNamer::NamingStyle> {
static llvm::ArrayRef<
std::pair<modernize::VariableNamer::NamingStyle, StringRef>>
getEnumMapping() {
static constexpr std::pair<modernize::VariableNamer::NamingStyle, StringRef>
Mapping[] = {{modernize::VariableNamer::NS_CamelCase, "CamelCase"},
{modernize::VariableNamer::NS_CamelBack, "camelBack"},
{modernize::VariableNamer::NS_LowerCase, "lower_case"},
{modernize::VariableNamer::NS_UpperCase, "UPPER_CASE"}};
return makeArrayRef(Mapping);
}
};

namespace modernize {

static const char LoopNameArray[] = "forLoopArray";
Expand All @@ -44,25 +69,6 @@ static const char EndVarName[] = "endVar";
static const char DerefByValueResultName[] = "derefByValueResult";
static const char DerefByRefResultName[] = "derefByRefResult";

static ArrayRef<std::pair<StringRef, Confidence::Level>>
getConfidenceMapping() {
static constexpr std::pair<StringRef, Confidence::Level> Mapping[] = {
{"reasonable", Confidence::CL_Reasonable},
{"safe", Confidence::CL_Safe},
{"risky", Confidence::CL_Risky}};
return makeArrayRef(Mapping);
}

static ArrayRef<std::pair<StringRef, VariableNamer::NamingStyle>>
getStyleMapping() {
static constexpr std::pair<StringRef, VariableNamer::NamingStyle> Mapping[] =
{{"CamelCase", VariableNamer::NS_CamelCase},
{"camelBack", VariableNamer::NS_CamelBack},
{"lower_case", VariableNamer::NS_LowerCase},
{"UPPER_CASE", VariableNamer::NS_UpperCase}};
return makeArrayRef(Mapping);
}

// shared matchers
static const TypeMatcher AnyType() { return anything(); }

Expand Down Expand Up @@ -474,15 +480,13 @@ LoopConvertCheck::RangeDescriptor::RangeDescriptor()
LoopConvertCheck::LoopConvertCheck(StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context), TUInfo(new TUTrackingInfo),
MaxCopySize(Options.get("MaxCopySize", 16ULL)),
MinConfidence(Options.get("MinConfidence", getConfidenceMapping(),
Confidence::CL_Reasonable)),
NamingStyle(Options.get("NamingStyle", getStyleMapping(),
VariableNamer::NS_CamelCase)) {}
MinConfidence(Options.get("MinConfidence", Confidence::CL_Reasonable)),
NamingStyle(Options.get("NamingStyle", VariableNamer::NS_CamelCase)) {}

void LoopConvertCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "MaxCopySize", std::to_string(MaxCopySize));
Options.store(Opts, "MinConfidence", MinConfidence, getConfidenceMapping());
Options.store(Opts, "NamingStyle", NamingStyle, getStyleMapping());
Options.store(Opts, "MinConfidence", MinConfidence);
Options.store(Opts, "NamingStyle", NamingStyle);
}

void LoopConvertCheck::registerMatchers(MatchFinder *Finder) {
Expand Down
Loading