Skip to content

LLVM and LLVM-SPIRV-Translator pulldown #1192

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 882 commits into from
Feb 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
882 commits
Select commit Hold shift + click to select a range
635034f
[VE][fix] missing include
Feb 22, 2020
31f2ad9
[yaml2obj] - Automatically assign sh_addr for allocatable sections.
Feb 18, 2020
a6370d5
[lldb][test] - Update basic-elf.yaml to fix build bot.
Feb 22, 2020
837d812
[NFC] Remove some GCC warning from c9e93c84f61400d1aac7d195a0578e80bc…
Ralender Feb 22, 2020
e48849a
[libcxx] [test] Suppress MSVC++ warning 4640 under /Zc:threadSafeInit-
BillyONeal Feb 22, 2020
7b44f04
Add a llvm::shuffle and use it in lld
espindola Feb 22, 2020
56eb15a
[Sema] Fix pointer-to-int-cast diagnostic for _Bool
mordante Feb 22, 2020
8172689
[ORC] Add errors for missing and extraneous symbol definitions.
lhames Feb 22, 2020
1df947a
[ORC] Update LLJIT to automatically run specially named initializer f…
lhames Feb 22, 2020
e7a184f
[X86] Use movlps for i64 atomic stores on 32-targets with sse1.
topperc Feb 23, 2020
bdb1729
[X86] Teach EltsFromConsecutiveLoads that it's ok to form a v4f32 VZE…
topperc Feb 23, 2020
84cd968
[X86] Add AddToWorklist(N) after calls to SimplifyDemandedBits/Simpli…
topperc Feb 23, 2020
5792361
[X86] Add sse2 command lines to sse-intrinsics-fast-isel.ll.
topperc Feb 23, 2020
21316f6
[NFC] Test commit access. Drop trivial braces.
Feb 23, 2020
98ac6e7
[NFC] fix test nan value
nunoplopes Feb 23, 2020
7d3f8b1
[clangd] Debounce rebuilds responsively to rebuild times.
sam-mccall Feb 4, 2020
a2ce807
[clangd] Reapply b60896fad926 Fall back to selecting token-before-cur…
sam-mccall Feb 23, 2020
b4b9706
Revert "[clangd] Reapply b60896fad926 Fall back to selecting token-be…
sam-mccall Feb 23, 2020
af69d5e
[DSE] Track overlapping stores.
fhahn Feb 23, 2020
a253a2a
[SDAG] fold fsub -0.0, undef to undef rather than NaN
rotateright Feb 23, 2020
31059ba
[X86] Regenerate some tests to show FMA4 comments. NFC
topperc Feb 23, 2020
7769030
Recommit "[PatternMatch] Match XOR variant of unsigned-add overflow c…
fhahn Feb 23, 2020
335e21f
[AArch64] Update new test.
fhahn Feb 23, 2020
be6d07c
[clangd] Reapply b60896fad926 Fall back to selecting token-before-cur…
sam-mccall Feb 23, 2020
86cda4c
Updating a comment to clarify that SkipUntil handles balanced delimit…
AaronBallman Feb 23, 2020
e9997cf
[clangd] Try to fix buildbots - copy elision not happening here?
sam-mccall Feb 23, 2020
82879c2
[SystemZ] Support the kernel back chain.
JonPsson Feb 19, 2020
2a10f80
[X86] Use FIST for i64 atomic stores on 32-bit targets without SSE.
topperc Feb 23, 2020
15b6aa7
[X86] Enable the use of movlps for i64 atomic load on 32-bit targets …
topperc Feb 23, 2020
5a70518
[X86] Remove most X86 specific subclasses of MemSDNode. Just use a Me…
topperc Feb 23, 2020
384d5e3
[SelectionDAG] Remove SelectionDAG::getTargetMemSDNode now that its n…
topperc Feb 23, 2020
bae33a7
IR printing for single function with the new pass manager.
Feb 23, 2020
8b3a62d
[NFC][PowerPC] Refactor the tryAndWithMask()
Feb 24, 2020
6a3506a
[Driver][X86] Add helptext for malign-branch*, mbranches-within-32B-b…
KanRobert Feb 23, 2020
4d812ac
[libc] Add a README to the sub-directories under the utils directory.
Feb 12, 2020
3a6bb32
[SelectionDAG] Remove ISD::LIFETIME_START/LIFETIME_END from assert in…
topperc Feb 23, 2020
f1b8ec3
[X86] Use custom isel for gather/scatter instructions.
topperc Feb 24, 2020
7a7146c
[X86] When creating X86ISD::MGATHER nodes from AVX2 gather intrinsics…
topperc Feb 24, 2020
27a79b7
[JITLink] Add a MachO x86-64 GOT and Stub bypass optimization.
lhames Feb 24, 2020
e657a1e
[lldb] Remove all the 'current_id' logging counters from the lookup …
Teemperor Feb 24, 2020
03756a4
[ARM][MVE] Combine more extending masked loads
sparker-arm Feb 21, 2020
0f7cfb2
[lldb/DWARF] Don't index dwp file multiple times
labath Feb 21, 2020
be3b448
[lldb/test] simplify basic-elf.yaml
labath Feb 24, 2020
c131dfe
[lldb] Disable auto fix-its when evaluating expressions in the test s…
Teemperor Feb 24, 2020
c3f36ac
[MC] Widen the functional unit type from 32 to 64 bits.
bevin-hansson Dec 9, 2019
9b23024
Use new FailedWithMessage matcher in DWARFDebugLineTest.cpp
labath Feb 20, 2020
8f46269
[profile] Don't dump counters when forking and don't reset when calli…
calixteman Feb 10, 2020
6e561d1
[Intrinsic] Add fixed point saturating division intrinsics.
bevin-hansson Dec 16, 2019
bc1947a
Add a basic tiling pass for parallel loops
d0k Feb 21, 2020
3ac37eb
Silence compiler warnings
d0k Feb 24, 2020
f2ff153
[AArch64][SVE] Add intrinsics for SVE2 cryptographic instructions
kmclaughlin-arm Feb 24, 2020
8c893ca
[ORC] Remove spammy debug print
d0k Feb 24, 2020
a4370b2
Use temporary directory for tests in D74346
kirillbobyrev Feb 24, 2020
eaa41e1
[CostModel][X86] Try to check against common prefixes before using ta…
RKSimon Feb 24, 2020
f287bb8
[ARM] FP16 bitcast test. NFC
davemgreen Feb 24, 2020
12fed51
[ARM,MVE] Remove 64-bit variants of vbrsrq* intrinsics
miyuki Feb 24, 2020
bd5b220
Fix TryParsePtrOperatorSeq.
michele-scandale Feb 24, 2020
a67eb22
[RDA][ARM][LowOverheadLoops] Iteration count IT blocks
sparker-arm Feb 24, 2020
f87f23c
[AArch64][SVE] Add the SVE dupq_lane intrinsic
kmclaughlin-arm Feb 24, 2020
7efabe5
[MIR][ARM] MachineOperand comments
Feb 24, 2020
b824388
[CostModel][X86] We don't need a scale factor for SLM extract costs
RKSimon Feb 24, 2020
c8dadac
add release notes for ffp-model and ffp-exception-behavior
Feb 24, 2020
8bee52b
[AIX][Frontend] C++ ABI customizations for AIX boilerplate
xling-liao Feb 24, 2020
d66d25f
[OpenMP] Refactor the analysis in checkMapClauseBaseExpression using …
chichunchen Feb 24, 2020
54fa9ec
[libc++] Implementation of C++20's P1135R6 for libcxx
ogiroux Feb 18, 2020
80e73f2
[libc++] Adapt a few things around the implementation of P1135R6
ldionne Feb 24, 2020
c008716
[libc++] Mark the C++03 version of std::function as deprecated
ldionne Feb 17, 2020
c9c09ef
[lldb/DWARF] Fix dwp search path in the separate-debug-file case
labath Feb 24, 2020
8efc2f5
[PowerPC][AIX] Spill/restore the callee-saved condition register bits.
mandlebug Feb 24, 2020
59d8d13
[X86] getTargetShuffleInputs - check that the source inputs are all t…
RKSimon Feb 24, 2020
406a54b
[gn build] (manually) merge 54fa9ecd308
nico Feb 24, 2020
b21405d
[libc++] Fix CI and Linux failures after landing D68480
ldionne Feb 24, 2020
453d548
[gn build] remove -std=c++11 in libcxx build pending discussion in 80…
nico Feb 24, 2020
0414c56
Revert "Rework go bindings so that validation works fine"
pcc Feb 24, 2020
400b6c0
[NFC] Fix typo in error message
Feb 24, 2020
a3d58fc
[libc++] Drop redundant check for -std=c++14
ldionne Feb 24, 2020
3d65dd1
[ReleaseNotes] Mention the `vector-function-abi-variant` attribute.
Feb 21, 2020
6369b9b
[CMake] Default to static linking for subprojects.
Meinersbur Feb 24, 2020
bee70bf
[XCOFF][AIX] Fix incorrect alignment for function descriptor csect
jasonliudev Feb 24, 2020
a5424de
[AVR] Use correct register class for mul instructions
aykevl Feb 24, 2020
d1af601
[AVR] Don't assert on an undefined operand
aykevl Feb 4, 2020
daac8db
[X86] combineX86ShuffleChain - select X86ISD::FAND/ISD::AND based on …
RKSimon Feb 24, 2020
5b2046c
[AVR] Disassemble register operands
aykevl Feb 5, 2020
00570c2
[bindings/go] Add RemoveFromParentAsInstruction
aykevl Feb 24, 2020
7b0a568
[MachO] Add cpu(sub)type tests and improve error handling
francisvm Feb 24, 2020
53b597c
[SelectionDAG] Merge constant SDNode arithmetic into foldConstantArit…
RKSimon Feb 24, 2020
2a7a989
[LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints
aykevl Feb 24, 2020
8358ddb
[mlir][spirv] NFC: Move test passes to test/lib
antiagainst Feb 24, 2020
b61e83e
[libc++] Give headers that require C++14 a cplusplus14 requires in th…
Teemperor Feb 24, 2020
4135077
[AMDGPU] use llvm_unreachable instead of default for rp set
rampitec Feb 24, 2020
7273284
[X86] Add back fmaddsub intrinsics to work towards fixing the strict …
topperc Feb 24, 2020
28e8695
[MLIR] NFC - Fix indentation in examples in LoopOps.td
nmostafa Feb 24, 2020
c2e272f
[ms] [llvm-ml] Improve data support, adding names and complex initial…
ericastor Feb 24, 2020
77a2744
[lldb/Debugger] Remove macros formerly used by property definitions
JDevlieghere Feb 24, 2020
c4093db
[lldb] Color the current PC marker
JDevlieghere Feb 24, 2020
9fe769a
Revert "[ms] [llvm-ml] Improve data support, adding names and complex…
ericastor Feb 24, 2020
a8a4f99
[Hexagon] Lower bitcast of a vector predicate
iajbar Jan 9, 2020
6f87b16
[MachineVerifier] Doing ::calcRegsPassed in RPO: ~35% faster MV, NFC
ramntry Feb 24, 2020
95291a0
Reland "[ms] [llvm-ml] Improve data support, adding names and complex…
ericastor Feb 24, 2020
820df6e
[Hexagon] Lower vector predicate store
iajbar Jan 28, 2020
7f9f027
[lldb/Test] Update TestDisassemblyFormat for new format
JDevlieghere Feb 24, 2020
df8dda6
Add methods to data extractor for extracting bytes and fixed length C…
clayborg Feb 21, 2020
c93112d
Validate argument passed to __builtin_frame_address and __builtin_ret…
zoecarver Feb 24, 2020
cf9dae1
[NFC] [DA] Refactoring getIndexExpressionsFromGEP
bmahjour Feb 24, 2020
6980782
Revert "Validate argument passed to __builtin_frame_address and __bui…
zoecarver Feb 24, 2020
eefda18
[lldb/Plugins] Move SBTarget::GetExtendedCrashInformation to SBProcess
medismailben Feb 24, 2020
0368997
[libc] [UnitTest] Create death tests
abrachet Feb 24, 2020
e0d64f5
Merge from 'sycl' to 'sycl-web'
Feb 24, 2020
0ed4744
AMDGPU/GlobalISel: Lower 64-bit uaddo/usubo
jayfoad Jan 24, 2020
a5fa778
[LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load an…
topperc Feb 24, 2020
841be98
[lldb] Color the line marker
JDevlieghere Feb 24, 2020
e6f9cb0
[docs] dump_ast_matchers strips internal::(Bindable)?Matcher from Res…
njames93 Feb 24, 2020
edc4f4c
Unwind past an interrupt handler correctly on arm or at pc==0
jasonmolenda Feb 25, 2020
915e769
[arcconfig] Default base to previous revision
smeenai Feb 21, 2020
e34ddc0
[arcconfig] Delete subproject arcconfigs
smeenai Feb 21, 2020
03dd205
Adjust max_align_t handling
jsonn Feb 4, 2020
4e45ef4
Prefer PATH_MAX to MAXPATHLEN
jsonn Feb 25, 2020
fe210a1
[MLIR] Add std.atomic_rmw op
Feb 25, 2020
888b12b
[polly] Don't count scops in a global variable.
efriedma-quic Feb 24, 2020
082f1a3
My prevous commit to RegisterContextLLDB is causing a test fail
jasonmolenda Feb 25, 2020
248eaff
[AArch64] SVE implies fullfp16
efriedma-quic Feb 21, 2020
5522e82
[NFC] Cleaned up ASTMatchersInternal Code
njames93 Feb 25, 2020
11e3dde
GlobalISel: Reimplement fewerElementsVectorBasic
arsenm Feb 4, 2020
0b46b07
AMDGPU/GlobalISel: Fix incorrect VOP3P fneg folding
arsenm Feb 19, 2020
226bddc
[DebugInfo]: Refactored Macinfo section consumption part to allow future
SouraVX Feb 24, 2020
23c2a5c
Allow "callbr" to return non-void values
bwendling Feb 25, 2020
50cac24
Support output constraints on "asm goto"
isanbard Feb 25, 2020
b3bce6a
[MachineVerifier] Doing ::calcRegsPassed over faster sets: ~15-20% fa…
ramntry Feb 24, 2020
d5a4fa0
Revert "My prevous commit to RegisterContextLLDB is causing a test fail"
jasonmolenda Feb 25, 2020
4fdd2ed
Revert "Unwind past an interrupt handler correctly on arm or at pc==0"
jasonmolenda Feb 25, 2020
fee4151
AMDGPU/GlobalISel: Introduce post-legalize combiner
arsenm Feb 17, 2020
1612d38
GlobalISel: Remove unneeded initialiation
arsenm Feb 24, 2020
2c0edbf
[Attributor] Use AssumptionCache in AANonNullFloating::initialize
uenoku Feb 25, 2020
35a0614
[lldb/Utility] Fix unspecified behavior.
JDevlieghere Feb 25, 2020
34dd7d2
Merge from 'master' to 'sycl-web' (#2)
bader Feb 25, 2020
84c3d3f
[Sparc][NFC] Remove trailing space
tclin914 Feb 25, 2020
c08a1c7
[lldb] Mark ObjectFileBreakpad test inputs as non-text
labath Feb 25, 2020
55d4b0d
[lldb] Fix that a crashing test is marked as unsupported when it prin…
Teemperor Feb 25, 2020
3e9a7b2
[ASTMatchers] Matcher macros with params move params instead of copying
njames93 Feb 25, 2020
6a0c066
[ASTMatchers] Adds a matcher called `hasAnyOperatorName`
njames93 Feb 25, 2020
9238dfb
[X86] Remove mask output from X86 gather/scatter ISD opcodes.
topperc Feb 25, 2020
89ba4ac
[X86] Pass parameters into selectVectorAddr to remove dependency on X…
topperc Feb 25, 2020
29e2cb8
[libc] [UnitTest] Give UnitTest gtest like colors
abrachet Feb 25, 2020
ea6b95d
[lldb][NFC] Make ArrayRef initialization more obvious in lldb-test.cpp
Teemperor Feb 25, 2020
eefbff0
[lldb] s/CHECK-NEXT/CHECK-DAG in dwp-debug-types.s
labath Feb 25, 2020
bd3a8ee
Merge from 'sycl' to 'sycl-web' (#2)
Feb 25, 2020
ee9ee55
Merge from 'master' to 'sycl-web' (#2)
bader Feb 25, 2020
27c89ce
[NFC][PowerPC] Add a new test case scalar_cmp.ll
zhangkangcool Feb 25, 2020
05d174d
[lldb][NFC] Move namespace lookup in ClangASTSource to own function.
Teemperor Feb 25, 2020
814fb65
libclc: cmake configure should depend on file list
jvesely Feb 15, 2020
dc78190
AMDGPU/GlobalISel: add legalize tests for s64 max/min
jayfoad Feb 24, 2020
ccee390
GlobalISel: NFC minor cleanup to avoid a couple of fixed size local a…
jayfoad Feb 25, 2020
62c7d84
[profile] gcov_mutex must be static
calixteman Feb 24, 2020
dcd89b3
Add llvm-cov to LLVM_TOOLCHAIN_TOOLS
zmodem Feb 25, 2020
bd2df13
[DebugInfo] Fix printing CIE offsets in EH FDEs.
igorkudrin Feb 13, 2020
9fd7ce7
[analyzer][MallocChecker][NFC] Communicate the allocation family to a…
Szelethus Sep 26, 2019
72848f2
[AArch64][SVE] Add predicate reinterpret intrinsics
c-rhodes Feb 11, 2020
157b3d5
[yaml2obj] - Address post commit comments for D74764
Feb 25, 2020
7a7eacc
[MLIR][GPU] Implement a simple greedy loop mapper.
Feb 21, 2020
decd021
Don't generate libcalls for wide shift on Windows ARM (PR42711)
zmodem Feb 25, 2020
00d4814
[mlir] Generalize intrinsic builders in the LLVM dialect definition
ftynse Feb 21, 2020
3a1b34f
[mlir] Intrinsics generator: use TableGen-defined builder function
ftynse Feb 21, 2020
5f9b543
[mlir] simplify affine maps and operands in affine.min/max
ftynse Feb 24, 2020
fc0d11c
[lldb][NFC] Modernize logging in ClangASTSource/ExpressionDeclMap
Teemperor Feb 25, 2020
cff90c9
[AArch64][SVE] Update names and comments for gathers/scatters (NFC)
banach-space Feb 19, 2020
e4e122a
[MLIR][GPU] Fix forward declaration of Region class.
Feb 25, 2020
4486aa0
build_llvm_package.bat: Produce zip files in addition to the installers
zmodem Feb 25, 2020
555d5ad
[clangd] Disable ExtractVariable for C
kadircet Feb 24, 2020
defd0e2
[lldb][NFC] Move NameSearchContext to own header/source files
Teemperor Feb 25, 2020
2ad7b6f
[lldb][NFC] Make NameSearchContext::m_found members bools instead of …
Teemperor Feb 25, 2020
60a2db5
Remove myself from CODE_OWNERS.
whitequark Feb 25, 2020
3950093
[gn build] (manually) merge fee41517fe0f
nico Feb 25, 2020
93b6e19
[lldb] Initialize NameSearchContext::m_namespace_map in constructor
Teemperor Feb 25, 2020
bdb24fa
[lldb][NFC] Move filling namespace map in ClangASTSource to own function
Teemperor Feb 25, 2020
0a3b083
[debuginfo-tests] Warn, not error, if we can't delete working directory
jmorse Feb 25, 2020
305320b
[mlir] NFC: move AffineOps tests from test/ to test/Dialect
ftynse Feb 25, 2020
5e6d724
[MLIR][GPU] Properly model step in parallel loop to gpu conversion.
Feb 24, 2020
b8d638d
[DSE,MSSA] Do not attempt to remove un-removable memdefs.
fhahn Feb 25, 2020
10ea01d
[VectorCombine] make cost calc consistent for binops and cmps
rotateright Feb 24, 2020
e0568ef
[VectorCombine] add tests for possible extract->shuffle; NFC
rotateright Feb 24, 2020
7b6168e
[ASTImporter] Improved variable template redecl chain handling.
balazske Feb 25, 2020
770ad9f
[Analyzer] Fix for iterator modeling and checkers: handle negative nu…
Feb 18, 2020
f452f7b
[PhaseOrdering] add test for missing vector/CSE transforms (PR45015);…
rotateright Feb 25, 2020
83f4372
[CodeGen] fix clang test that runs the optimizer pipeline; NFC
rotateright Feb 25, 2020
7d91fd2
[mlir] NFC: update documentation in ConvertLinalgToLLVM
ftynse Feb 25, 2020
91f7f0d
[RISCV] Fix sysroot tests without GCC on RISC-V hosts with GCC
luismarques Feb 25, 2020
edae4be
Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)
zmodem Feb 25, 2020
2bd6974
[clang-format] Wrap lines for C# property accessors
Feb 25, 2020
e16e267
[OpenMP][cmake] ignore warning on unknown CUDA version
kkwli Feb 24, 2020
dc383f0
Stop including sys/param.h from Unix.h
jsonn Feb 25, 2020
e09754c
[clangd] Migrate Lexer usages in TypeHierarchy to TokenBuffers
kadircet Feb 19, 2020
e551333
[analyzer][MallocChecker][NFC] Change the use of IdentifierInfo* to C…
Szelethus Sep 20, 2019
bcda126
clang-cl: Add a `/showIncludes:user` flag.
nico Feb 24, 2020
ab96ec4
[AMDGPU] Precommit some test updates for D68338 "Remove dubious logic…
jayfoad Feb 25, 2020
fc466f8
Make test not write to the source directory
d0k Feb 25, 2020
425ef99
[NFC][InstCombine] Add shift amount reassociation miscompile example …
LebedevRI Feb 25, 2020
781d077
[InstCombine] reassociateShiftAmtsOfTwoSameDirectionShifts(): fix mis…
LebedevRI Feb 25, 2020
6f807ca
[NFC][InstCombine] Add shift amount reassociation in bittest miscompi…
LebedevRI Feb 25, 2020
2855c8f
[InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): fix misco…
LebedevRI Feb 25, 2020
ec1efe7
[LLDB] Let DataExtractor deal with two-byte addresses
aykevl Feb 4, 2020
deb116e
[DWARFDebugLine] Avoid dumping prologue members we did not parse
labath Feb 24, 2020
a82ffe9
[analyzer] Add support for CXXInheritedCtorInitExpr.
haoNoQ Feb 17, 2020
e6d0bad
[clang-rename] Add the USR of incomplete decl to the USRSet.
hokein Feb 25, 2020
93331a1
[ELF] Support archive:file syntax in input section descriptions
MaskRay Feb 25, 2020
33cbd5e
AMDGPU/GlobalISel: Legalize s64 min/max by lowering
jayfoad Feb 25, 2020
7b65886
Make builtbot happy.
hokein Feb 25, 2020
fa755d3
[Sema][C++] Propagate conversion kind to specialize the diagnostics
Feb 25, 2020
11857d4
[remark][diagnostics] [codegen] Fix PR44896
xur-llvm Feb 25, 2020
86e13ec
AMDGPU/GlobalISel: Use packed for G_ADD/G_SUB/G_MUL v2s16
arsenm Feb 18, 2020
ab41129
[libc++] Proper fix for libc++'s modulemap after D68480
ldionne Feb 24, 2020
7c2f4a8
[libc++] Revert 03dd205c151 "Adjust max_align_t handling"
ldionne Feb 25, 2020
c66db21
AMDGPU/GlobalISel: Un-XFAIL a test
jayfoad Feb 25, 2020
69da400
Revert "[DWARFDebugLine] Avoid dumping prologue members we did not pa…
labath Feb 25, 2020
14845b2
Revert "[LICM] Support hosting of dynamic allocas out of loops"
preames Feb 25, 2020
bf6d94f
[libc++] Remove incorrect XFAIL in modules test
ldionne Feb 25, 2020
342eca2
[NFC][Codegen] Add miscompile test for constant store merging from PR…
LebedevRI Feb 25, 2020
d20907d
[Codegen] Revert rL354676/rL354677 and followups - introduced PR43446…
LebedevRI Feb 25, 2020
eb1c040
[PowerPC][NFC] Remove comments mentioning Darwin and VRSAVE from lit …
mandlebug Feb 25, 2020
a12f1d6
[MachineInstr] Add a dumpr method
Feb 25, 2020
eee22ec
[X86MCTargetDesc.h] Speculative fix for macro collision with sys/param.h
vedantk Feb 25, 2020
a57d965
Make __builtin_amdgcn_dispatch_ptr dereferenceable and align at 4
yxsamliu Feb 21, 2020
7f3afd4
Emit register names in cfi assembly directives
slinder1 Feb 25, 2020
915b4aa
Support emitting .cfi_undefined in CodeGen
slinder1 Feb 25, 2020
481b1c8
[AMDGPU] Implement wave64 DWARF register mapping
slinder1 Nov 8, 2019
3cd13c4
Fix a race between lldb's packet timeout and the profile thread's usl…
jimingham Feb 22, 2020
922558b
[PhaseOrdering] add tests for missed CSE; NFC
rotateright Feb 25, 2020
e3add3e
[libcxx] Fix building for windows after 54fa9ecd3088508
mstorsjo Feb 25, 2020
e11f9fb
Add 'l' constraint to goto label reference
isanbard Feb 25, 2020
0789f28
[NFC][SCEV] Piping to pass TTI into SCEVExpander::isHighCostExpansion…
LebedevRI Feb 25, 2020
b99c91a
[NFC][SCEV] Piping to pass new SCEVCheapExpansionBudget option into S…
LebedevRI Feb 25, 2020
1622f3e
[NFC][SCEV] SCEVExpander::isHighCostExpansionHelper(): check that we …
LebedevRI Feb 25, 2020
2d8275d
[SCEV] SCEVExpander::isHighCostExpansion(): assert if TTI is not prov…
LebedevRI Feb 25, 2020
f90973f
[SCEV] SCEVExpander::isHighCostExpansionHelper(): begin cost modellin…
LebedevRI Feb 25, 2020
b8793f0
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model UDiv by …
LebedevRI Feb 25, 2020
b8abdf9
[NFC][IndVarSimplify] Adjust value names in IndVarSimplify/exit_value…
LebedevRI Feb 25, 2020
cc29600
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model plain UDiv
LebedevRI Feb 25, 2020
756af2f
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model add/mul
LebedevRI Feb 25, 2020
0f3c9b5
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model polynomi…
LebedevRI Feb 25, 2020
d6f47ae
[SCEV] SCEVExpander::isHighCostExpansionHelper(): cost-model min/max …
LebedevRI Feb 25, 2020
44edc6f
[SCEV] rewriteLoopExitValues(): even if have hard uses, still rewrite…
LebedevRI Feb 25, 2020
400ceda
[SCEV][IndVars] Always provide insertion point to the SCEVExpander::i…
LebedevRI Feb 25, 2020
6d0d1a6
Use "nop" to avoid size warnings.
isanbard Feb 25, 2020
6201f66
Check args passed to __builtin_frame_address and __builtin_return_add…
zoecarver Feb 25, 2020
29a12d3
Merge from 'sycl' to 'sycl-web'
Feb 25, 2020
ff5b5cf
Merge from 'master' to 'sycl-web' (#1)
bader Feb 25, 2020
3c3fdf1
Translate llvm.sqrt.* intrinsics to SPIR-V
AlexeySotkin Feb 14, 2020
e85a959
Fix potential null pointer dereference
AlexeySotkin Feb 13, 2020
36d69c7
Handle non-zero values for llvm.memset
svenvh Feb 18, 2020
8280418
Translate atomicrmw LLVM instruction to SPIR-V
AlexeySotkin Feb 17, 2020
7aff55c
[SYCL] XFAIL LIT test to unblock pulldown
vladimirlaz Feb 26, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 2 additions & 1 deletion .arcconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"phabricator.uri" : "https://reviews.llvm.org/",
"repository.callsign" : "G",
"conduit_uri" : "https://reviews.llvm.org/"
"conduit_uri" : "https://reviews.llvm.org/",
"base": "git:HEAD^"
}
4 changes: 0 additions & 4 deletions clang-tools-extra/.arcconfig

This file was deleted.

10 changes: 5 additions & 5 deletions clang-tools-extra/clang-tidy/add_new_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ def add_release_notes(module_path, module, check_name):

lineMatcher = re.compile('New checks')
nextSectionMatcher = re.compile('New check aliases')
checkerMatcher = re.compile('- New :doc:`(.*)')
checkMatcher = re.compile('- New :doc:`(.*)')

print('Updating %s...' % filename)
with open(filename, 'w') as f:
Expand All @@ -234,10 +234,10 @@ def add_release_notes(module_path, module, check_name):
if not note_added:
match = lineMatcher.match(line)
match_next = nextSectionMatcher.match(line)
match_checker = checkerMatcher.match(line)
if match_checker:
last_checker = match_checker.group(1)
if last_checker > check_name_dashes:
match_check = checkMatcher.match(line)
if match_check:
last_check = match_check.group(1)
if last_check > check_name_dashes:
add_note_here = True

if match_next:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#include <algorithm>
#include <cctype>

// FixItHint

using namespace clang::ast_matchers;

namespace clang {
Expand Down
9 changes: 4 additions & 5 deletions clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,8 @@ void NoRecursionCheck::handleSCC(ArrayRef<CallGraphNode *> SCC) {

// First of all, call out every stongly connected function.
for (CallGraphNode *N : SCC) {
Decl *D = N->getDecl();
diag(D->getLocation(), "function %0 is within a recursive call chain")
<< cast<NamedDecl>(D);
FunctionDecl *D = N->getDefinition();
diag(D->getLocation(), "function %0 is within a recursive call chain") << D;
}

// Now, SCC only tells us about strongly connected function declarations in
Expand All @@ -228,13 +227,13 @@ void NoRecursionCheck::handleSCC(ArrayRef<CallGraphNode *> SCC) {
assert(CyclicCallStack.size() >= 2 && "Cycle requires at least 2 frames");

// Which function we decided to be the entry point that lead to the recursion?
Decl *CycleEntryFn = CyclicCallStack.front().Callee->getDecl();
FunctionDecl *CycleEntryFn = CyclicCallStack.front().Callee->getDefinition();
// And now, for ease of understanding, let's print the call sequence that
// forms the cycle in question.
diag(CycleEntryFn->getLocation(),
"example recursive call chain, starting from function %0",
DiagnosticIDs::Note)
<< cast<NamedDecl>(CycleEntryFn);
<< CycleEntryFn;
for (int CurFrame = 1, NumFrames = CyclicCallStack.size();
CurFrame != NumFrames; ++CurFrame) {
CallGraphNode::CallRecord PrevNode = CyclicCallStack[CurFrame - 1];
Expand Down
204 changes: 190 additions & 14 deletions clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/FormatVariadic.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
Expand Down Expand Up @@ -304,6 +306,132 @@ static void transformSubToCanonicalAddExpr(BinaryOperatorKind &Opcode,
}
}

// to use in the template below
static OverloadedOperatorKind getOp(const BinaryOperator *Op) {
return BinaryOperator::getOverloadedOperator(Op->getOpcode());
}

static OverloadedOperatorKind getOp(const CXXOperatorCallExpr *Op) {
if (Op->getNumArgs() != 2)
return OO_None;
return Op->getOperator();
}

static std::pair<const Expr *, const Expr *>
getOperands(const BinaryOperator *Op) {
return {Op->getLHS()->IgnoreParenImpCasts(),
Op->getRHS()->IgnoreParenImpCasts()};
}

static std::pair<const Expr *, const Expr *>
getOperands(const CXXOperatorCallExpr *Op) {
return {Op->getArg(0)->IgnoreParenImpCasts(),
Op->getArg(1)->IgnoreParenImpCasts()};
}

template <typename TExpr>
static const TExpr *checkOpKind(const Expr *TheExpr,
OverloadedOperatorKind OpKind) {
const auto *AsTExpr = dyn_cast_or_null<TExpr>(TheExpr);
if (AsTExpr && getOp(AsTExpr) == OpKind)
return AsTExpr;

return nullptr;
}

// returns true if a subexpression has two directly equivalent operands and
// is already handled by operands/parametersAreEquivalent
template <typename TExpr, unsigned N>
static bool collectOperands(const Expr *Part,
SmallVector<const Expr *, N> &AllOperands,
OverloadedOperatorKind OpKind) {
if (const auto *BinOp = checkOpKind<TExpr>(Part, OpKind)) {
const std::pair<const Expr *, const Expr *> Operands = getOperands(BinOp);
if (areEquivalentExpr(Operands.first, Operands.second))
return true;
return collectOperands<TExpr>(Operands.first, AllOperands, OpKind) ||
collectOperands<TExpr>(Operands.second, AllOperands, OpKind);
}

AllOperands.push_back(Part);
return false;
}

template <typename TExpr>
static bool hasSameOperatorParent(const Expr *TheExpr,
OverloadedOperatorKind OpKind,
ASTContext &Context) {
// IgnoreParenImpCasts logic in reverse: skip surrounding uninteresting nodes
const DynTypedNodeList Parents = Context.getParents(*TheExpr);
for (ast_type_traits::DynTypedNode DynParent : Parents) {
if (const auto *Parent = DynParent.get<Expr>()) {
bool Skip = isa<ParenExpr>(Parent) || isa<ImplicitCastExpr>(Parent) ||
isa<FullExpr>(Parent) ||
isa<MaterializeTemporaryExpr>(Parent);
if (Skip && hasSameOperatorParent<TExpr>(Parent, OpKind, Context))
return true;
if (checkOpKind<TExpr>(Parent, OpKind))
return true;
}
}

return false;
}

template <typename TExpr>
static bool
markDuplicateOperands(const TExpr *TheExpr,
ast_matchers::internal::BoundNodesTreeBuilder *Builder,
ASTContext &Context) {
const OverloadedOperatorKind OpKind = getOp(TheExpr);
if (OpKind == OO_None)
return false;
// if there are no nested operators of the same kind, it's handled by
// operands/parametersAreEquivalent
const std::pair<const Expr *, const Expr *> Operands = getOperands(TheExpr);
if (!(checkOpKind<TExpr>(Operands.first, OpKind) ||
checkOpKind<TExpr>(Operands.second, OpKind)))
return false;

// if parent is the same kind of operator, it's handled by a previous call to
// markDuplicateOperands
if (hasSameOperatorParent<TExpr>(TheExpr, OpKind, Context))
return false;

SmallVector<const Expr *, 4> AllOperands;
if (collectOperands<TExpr>(Operands.first, AllOperands, OpKind))
return false;
if (collectOperands<TExpr>(Operands.second, AllOperands, OpKind))
return false;
size_t NumOperands = AllOperands.size();
llvm::SmallBitVector Duplicates(NumOperands);
for (size_t I = 0; I < NumOperands; I++) {
if (Duplicates[I])
continue;
bool FoundDuplicates = false;

for (size_t J = I + 1; J < NumOperands; J++) {
if (AllOperands[J]->HasSideEffects(Context))
break;

if (areEquivalentExpr(AllOperands[I], AllOperands[J])) {
FoundDuplicates = true;
Duplicates.set(J);
Builder->setBinding(
SmallString<11>(llvm::formatv("duplicate{0}", J)),
ast_type_traits::DynTypedNode::create(*AllOperands[J]));
}
}

if (FoundDuplicates)
Builder->setBinding(
SmallString<11>(llvm::formatv("duplicate{0}", I)),
ast_type_traits::DynTypedNode::create(*AllOperands[I]));
}

return Duplicates.any();
}

AST_MATCHER(Expr, isIntegerConstantExpr) {
if (Node.isInstantiationDependent())
return false;
Expand All @@ -314,6 +442,10 @@ AST_MATCHER(BinaryOperator, operandsAreEquivalent) {
return areEquivalentExpr(Node.getLHS(), Node.getRHS());
}

AST_MATCHER(BinaryOperator, nestedOperandsAreEquivalent) {
return markDuplicateOperands(&Node, Builder, Finder->getASTContext());
}

AST_MATCHER(ConditionalOperator, expressionsAreEquivalent) {
return areEquivalentExpr(Node.getTrueExpr(), Node.getFalseExpr());
}
Expand All @@ -323,6 +455,10 @@ AST_MATCHER(CallExpr, parametersAreEquivalent) {
areEquivalentExpr(Node.getArg(0), Node.getArg(1));
}

AST_MATCHER(CXXOperatorCallExpr, nestedParametersAreEquivalent) {
return markDuplicateOperands(&Node, Builder, Finder->getASTContext());
}

AST_MATCHER(BinaryOperator, binaryOperatorIsInMacro) {
return Node.getOperatorLoc().isMacroID();
}
Expand Down Expand Up @@ -484,8 +620,15 @@ static bool isNonConstReferenceType(QualType ParamType) {
// is a temporary expression. Whether the second parameter is checked is
// controlled by the parameter `ParamsToCheckCount`.
static bool
canOverloadedOperatorArgsBeModified(const FunctionDecl *OperatorDecl,
canOverloadedOperatorArgsBeModified(const CXXOperatorCallExpr *OperatorCall,
bool checkSecondParam) {
const auto *OperatorDecl =
dyn_cast_or_null<FunctionDecl>(OperatorCall->getCalleeDecl());
// if we can't find the declaration, conservatively assume it can modify
// arguments
if (!OperatorDecl)
return true;

unsigned ParamCount = OperatorDecl->getNumParams();

// Overloaded operators declared inside a class have only one param.
Expand Down Expand Up @@ -527,14 +670,7 @@ static bool retrieveRelationalIntegerConstantExpr(
Value = APSInt(32, false);
} else if (const auto *OverloadedOperatorExpr =
Result.Nodes.getNodeAs<CXXOperatorCallExpr>(OverloadId)) {
const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(OverloadedOperatorExpr->getCalleeDecl());
if (!OverloadedFunctionDecl)
return false;

if (canOverloadedOperatorArgsBeModified(OverloadedFunctionDecl, false))
return false;

if (canOverloadedOperatorArgsBeModified(OverloadedFunctionDecl, false))
if (canOverloadedOperatorArgsBeModified(OverloadedOperatorExpr, false))
return false;

if (const auto *Arg = OverloadedOperatorExpr->getArg(1)) {
Expand Down Expand Up @@ -714,6 +850,21 @@ void RedundantExpressionCheck::registerMatchers(MatchFinder *Finder) {
.bind("binary"),
this);

// Logical or bitwise operator with equivalent nested operands, like (X && Y
// && X) or (X && (Y && X))
Finder->addMatcher(
binaryOperator(anyOf(hasOperatorName("|"), hasOperatorName("&"),
hasOperatorName("||"), hasOperatorName("&&"),
hasOperatorName("^")),
nestedOperandsAreEquivalent(),
// Filter noisy false positives.
unless(isInTemplateInstantiation()),
unless(binaryOperatorIsInMacro()),
// TODO: if the banned macros are themselves duplicated
unless(hasDescendant(BannedIntegerLiteral)))
.bind("nested-duplicates"),
this);

// Conditional (trenary) operator with equivalent operands, like (Y ? X : X).
Finder->addMatcher(conditionalOperator(expressionsAreEquivalent(),
// Filter noisy false positives.
Expand All @@ -740,6 +891,19 @@ void RedundantExpressionCheck::registerMatchers(MatchFinder *Finder) {
.bind("call"),
this);

// Overloaded operators with equivalent operands.
Finder->addMatcher(
cxxOperatorCallExpr(
anyOf(hasOverloadedOperatorName("|"), hasOverloadedOperatorName("&"),
hasOverloadedOperatorName("||"),
hasOverloadedOperatorName("&&"),
hasOverloadedOperatorName("^")),
nestedParametersAreEquivalent(), argumentCountIs(2),
// Filter noisy false positives.
unless(isMacro()), unless(isInTemplateInstantiation()))
.bind("nested-duplicates"),
this);

// Match expressions like: !(1 | 2 | 3)
Finder->addMatcher(
implicitCastExpr(
Expand Down Expand Up @@ -1061,17 +1225,29 @@ void RedundantExpressionCheck::check(const MatchFinder::MatchResult &Result) {
}

if (const auto *Call = Result.Nodes.getNodeAs<CXXOperatorCallExpr>("call")) {
const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl());
if (!OverloadedFunctionDecl)
return;

if (canOverloadedOperatorArgsBeModified(OverloadedFunctionDecl, true))
if (canOverloadedOperatorArgsBeModified(Call, true))
return;

diag(Call->getOperatorLoc(),
"both sides of overloaded operator are equivalent");
}

if (const auto *Op = Result.Nodes.getNodeAs<Expr>("nested-duplicates")) {
const auto *Call = dyn_cast<CXXOperatorCallExpr>(Op);
if (Call && canOverloadedOperatorArgsBeModified(Call, true))
return;

StringRef Message =
Call ? "overloaded operator has equivalent nested operands"
: "operator has equivalent nested operands";

const auto Diag = diag(Op->getExprLoc(), Message);
for (const auto &KeyValue : Result.Nodes.getMap()) {
if (StringRef(KeyValue.first).startswith("duplicate"))
Diag << KeyValue.second.getSourceRange();
}
}

if (const auto *NegateOperator =
Result.Nodes.getNodeAs<UnaryOperator>("logical-bitwise-confusion")) {
SourceLocation OperatorLoc = NegateOperator->getOperatorLoc();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,12 @@ void UnconventionalAssignOperatorCheck::registerMatchers(
anyOf(unaryOperator(hasOperatorName("*"), hasUnaryOperand(cxxThisExpr())),
cxxOperatorCallExpr(argumentCountIs(1),
callee(unresolvedLookupExpr()),
hasArgument(0, cxxThisExpr())))))));
hasArgument(0, cxxThisExpr())),
cxxOperatorCallExpr(
hasOverloadedOperatorName("="),
hasArgument(
0, unaryOperator(hasOperatorName("*"),
hasUnaryOperand(cxxThisExpr())))))))));
const auto IsGoodAssign = cxxMethodDecl(IsAssign, HasGoodReturnType);

Finder->addMatcher(returnStmt(IsBadReturnStatement, forFunction(IsGoodAssign))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@ namespace clang {
namespace tidy {
namespace modernize {

static const llvm::SmallVector<StringRef, 5> DeprecatedTypes = {
{"::std::ios_base::io_state"},
{"::std::ios_base::open_mode"},
{"::std::ios_base::seek_dir"},
{"::std::ios_base::streamoff"},
{"::std::ios_base::streampos"}};
static constexpr std::array<StringRef, 5> DeprecatedTypes = {
"::std::ios_base::io_state", "::std::ios_base::open_mode",
"::std::ios_base::seek_dir", "::std::ios_base::streamoff",
"::std::ios_base::streampos"};

static const llvm::StringMap<StringRef> ReplacementTypes = {
{"io_state", "iostate"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

#define DEBUG_TYPE "clang-tidy"

// FixItHint

using namespace clang::ast_matchers;

namespace clang {
Expand Down
Loading