Skip to content

LLVM and SPIRV-LLVM-Translator pull down #1140

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 1,082 commits into from
Feb 18, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1082 commits
Select commit Hold shift + click to select a range
5adbf7d
AMDGPU/GlobalISel: Make G_TRUNC legal
arsenm Jan 22, 2020
1d48493
Fix handling of --version in lit
Feb 13, 2020
49bffa5
[clang-tidy] misc-no-recursion: a new check
LebedevRI Feb 13, 2020
d68c7b8
[clang][Analysis] CallGraph: store the actual call `Expr*` in the Cal…
LebedevRI Feb 13, 2020
7ecf066
[OPENMP][DOCS]Fix misprint, NFC.
alexey-bataev Feb 13, 2020
f888ae7
[gn build] Port 49bffa5f8b7
llvmgnsyncbot Feb 13, 2020
f8b8a1c
Fix lit version test
Feb 13, 2020
e3548e2
Remove unnecessary typedef that GCC doesn't like
rnk Feb 13, 2020
c6e8bfe
[llvm][TextAPI/MachO] Extend TBD_V4 unittest to verify writing
JDevlieghere Feb 13, 2020
5810ed5
[llvm][TextAPI/MachO] Extract common code into unittest helper (NFC)
JDevlieghere Feb 13, 2020
2169571
[scudo][standalone] Workaround for full regions on Android
Feb 13, 2020
1287977
Document third option to python synthetic type summary
jasonmolenda Feb 13, 2020
14d6863
Small reformat to avoid tripping up possible formatting.
jasonmolenda Feb 13, 2020
ef7488e
[GWP-ASan] Silence gcc error
Feb 13, 2020
fa0118e
[clang-format] Add new option BeforeLambdaBody in Allman style.
Wawha Feb 13, 2020
e252293
[WebAssembly] Add cbrt function signatures
tlively Feb 7, 2020
0dce409
[AsmPrinter] De-capitalize Emit{Function,BasicBlock]* and Emit{Start,…
MaskRay Feb 13, 2020
c2e8a42
[X86] Don't widen 128/256-bit strict compares with vXi1 result to 512…
topperc Feb 13, 2020
0bc77a0
[AsmPrinter] De-capitalize some AsmPrinter::Emit* functions
MaskRay Feb 13, 2020
f7e2227
[clang] Fix bad line ending (DOS instead of Unix) inside the release …
Wawha Feb 13, 2020
fe36127
[build] Fix shared lib builds.
Feb 13, 2020
19b62b7
[VectorCombine] try to form vector binop to eliminate an extract element
rotateright Feb 13, 2020
8e77b33
[Local] Do not move around dbg.declares during replaceDbgDeclare
vedantk Feb 10, 2020
3091049
Add dbgs() output to help track down missing DW_AT_location bugs, NFC
vedantk Feb 13, 2020
88ec01c
Revert "Revert "Revert "Change clang option -ffp-model=precise to sel…
Feb 13, 2020
b21c799
[mlir] [VectorOps] Initial framework for progressively lowering vecto…
aartbik Feb 13, 2020
4570f2c
Add a test for debugserver handling threads suspended from within a p…
jimingham Feb 13, 2020
b23ec43
[AArch64][NFC] Update test checks.
ilinpv Feb 12, 2020
0a1123e
Reland D74436 "Change clang option -ffp-model=precise to select ffp-c…
MaskRay Feb 14, 2020
918e905
[WebAssembly] Make stack pointer args inhibit tail calls
tlively Feb 4, 2020
1d49eb0
[AsmPrinter] De-capitalize all AsmPrinter::Emit* but EmitInstruction
MaskRay Feb 14, 2020
5756bc4
[mlir][DeclarativeParser] Add support for formatting enum attributes …
River707 Feb 14, 2020
e635e48
Reinstate llvm-go to test the go bindings.
echristo Feb 13, 2020
f3b9332
Remove unused lambda argument.
echristo Feb 14, 2020
ec89335
[X86] Fix the bug that _mm_mask_cvtsepi64_epi32 generates result without
MoringLiu Feb 13, 2020
5feb80e
[dsymutil] Fix double relocation of DW_AT_call_return_pc
JDevlieghere Feb 14, 2020
105a270
[ELF][AArch64] Rename pacPlt to zPacPlt and forceBti to zForceIbt aft…
MaskRay Feb 14, 2020
5573abc
[DependenceAnalysis] Dependecies for loads marked with "ivnariant.loa…
ebrevnov Jan 16, 2020
f10e2df
[lldb/Plugins] Have one initializer per ABI plugin
JDevlieghere Feb 14, 2020
16bf892
[lldb/Test] Partially revert assertTrue change
JDevlieghere Feb 14, 2020
bcd24b2
[AsmPrinter][MCStreamer] De-capitalize EmitInstruction and EmitCFI*
MaskRay Feb 14, 2020
65e843c
[lldb] Add a test for launch failure and its error message
labath Feb 14, 2020
b7d6640
[NFC][clang-tidy] Move recently newly-added tests into checkers/ subdir
LebedevRI Feb 14, 2020
fd01b2f
[NFC][ARM] Convert some pointers to references.
sparker-arm Feb 14, 2020
1674f77
[VecotrCombine] Fix unused variable for assertion disabled builds
kadircet Feb 14, 2020
60431bd
[VE] Support for PIC (global data and calls)
kaz7 Feb 14, 2020
189c701
[lldb] Remove accidentally checked-in debugging code
labath Feb 14, 2020
39cb2a8
[mlir] Fix argument attribute attribute reassignment in ConvertStanda…
ftynse Feb 14, 2020
07211d9
[lldb/dotest] Remove the "exclusive test subdir" concept
labath Feb 13, 2020
850cb13
Do not build the CUBIN conversion pass when NVPTX Backend isn't confi…
Feb 14, 2020
4e1c49c
[doc] Clarify responsibility for fixing experimental target problems
jh7370 Feb 13, 2020
a82f35e
[OpenMP] Lower taskwait using OpenMP IR Builder
rofirrim Dec 12, 2019
9dc84e9
[lldb/DWARF] Don't hold a unique SymbolFileDWARFDwo in a DWARFUnit
labath Feb 6, 2020
6336283
Merge from 'sycl' to 'sycl-web' (#4)
Feb 14, 2020
390d485
Merge from 'master' to 'sycl-web' (#121)
bader Feb 14, 2020
fe6983a
[DebugInfo] Error if unsupported address size detected in line table
jh7370 Feb 3, 2020
430fc53
[llvm-ar] Simplify Windows comparePaths NFCI
nga888 Feb 11, 2020
2bef1c0
[OpenMP] Lower taskyield using OpenMP IR Builder
rofirrim Dec 12, 2019
de1c287
llvm/cmake/config.guess: add support for riscv32 and riscv64
luismarques Feb 14, 2020
2492075
[X86][SSE] lowerShuffleAsBitRotate - lower to vXi8 shuffles to ROTL o…
RKSimon Feb 14, 2020
a57ad00
[lldb] Print result when expect_expr unexpectedly succeeds
Teemperor Feb 14, 2020
84240e0
[clang][Index] Introduce a TemplateParm SymbolKind
kadircet Jan 30, 2020
c45fb35
[clang][DeclPrinter] Implement visitors for {TemplateType,NonTypeTemp…
kadircet Jan 30, 2020
0a0e0af
[libc++] span: Fix incorrect static asserts
ldionne Feb 14, 2020
a55dec7
[test][DebugInfo] Fix signed/unsigned comparison problem in test
jh7370 Feb 14, 2020
9816e72
[Driver][RISCV] Add RedHat Linux RISC-V triple
luismarques Feb 14, 2020
1d40c41
[clang-tools-extra] fix the check for if '-latomic' is necessary
gktrk Feb 14, 2020
b6a9fe2
[AArch64] Add BIT/BIF support.
ilinpv Feb 4, 2020
2102ef8
Reenable "Always import constants" after compile time fixes
teresajohnson Feb 12, 2020
74c97ca
[clangd] Add tracer to the rename workflow, NFC
hokein Feb 11, 2020
61dd060
Move update_cc_test_checks.py tests to clang
arichardson Feb 14, 2020
5dc2314
[clangd] Update the CompletionItemKind.
hokein Feb 14, 2020
13700c3
Revert "[clang-tools-extra] fix the check for if '-latomic' is necess…
luismarques Feb 14, 2020
f54e7b4
[libc++] Remove unnecessary typenames from std/numerics/c.math/abs.pa…
ldionne Feb 14, 2020
c293107
Fix line endings produced by update_cc_test_checks.py
arichardson Feb 14, 2020
d110c3a
[ADT] Support BitVector as a key in DenseSet/Map
aganea Feb 13, 2020
d9049e8
[clang-scan-deps] Switch to using a ThreadPool
aganea Feb 13, 2020
8404aeb
[Support] On Windows, ensure hardware_concurrency() extends to all CP…
aganea Feb 14, 2020
9122b92
Revert "Reland D74436 "Change clang option -ffp-model=precise to sele…
Feb 14, 2020
e337fb0
add type_traits include as required for std::integral_constant
EricWF Feb 14, 2020
cae643d
Reverting D73027 [DependenceAnalysis] Dependecies for loads marked wi…
ebrevnov Feb 14, 2020
597dfb3
[Driver] Rename AddGoldPlugin to addLTOOptions. NFC
MaskRay Feb 14, 2020
0d2ba65
Fix compilation breakage introduced by 8404aeb56a73ab24f9b295111de3b3…
aganea Feb 14, 2020
cccf1ef
[libc++] Remove cycle between <type_traits> and <cstddef>
EricWF Feb 14, 2020
a257bde
AMDGPU/GlobalISel: Handle G_BSWAP
arsenm Feb 13, 2020
0c785d3
Merge from 'sycl' to 'sycl-web' (#1)
Feb 14, 2020
daad034
Merge from 'master' to 'sycl-web' (#57)
bader Feb 14, 2020
e0fd2d6
AMDGPU: Add baseline tests for 16-bit bswap
arsenm Feb 14, 2020
7badb38
[X86] Fix copy/paste mistake in comment. NFC
topperc Feb 13, 2020
8c2c0b3
AMDGPU: Improve i16/v2i16 bswap
arsenm Feb 14, 2020
e835845
[libc++] Add missing include for is_same in test
EricWF Feb 14, 2020
bba9ba8
[lldb/Plugin] s/LLDB_PLUGIN/LLDB_PLUGIN_DEFINE/ (NFC)
JDevlieghere Feb 14, 2020
b38940d
TTI: Fix vectorization cost for bswap
arsenm Feb 14, 2020
f0181cc
[APInt] Add some basic APInt::byteSwap unit tests
RKSimon Feb 14, 2020
2f26bc5
Warn about zero-parameter K&R definitions in -Wstrict-prototypes
aaronpuchert Feb 14, 2020
7053065
Fix tests after previous commit
aaronpuchert Feb 14, 2020
bf3b86b
[Hexagon] v67+ HVX register pairs should support either direction
androm3da Aug 14, 2018
187686a
[GlobalISel] LegalizationArtifactCombiner: Fix a bug in tryCombineMerges
Feb 14, 2020
bfbfa18
GlobalISel: Lower s64->s16 G_FPTRUNC
arsenm Jan 18, 2020
1326a5a
[LoopRotate] Get and update MSSA only if available in legacy pass man…
alinas Feb 13, 2020
fc0c72b
[X86] Add AVX512 support to the fast isel code for Intrinsic::convert…
topperc Feb 14, 2020
391cc4d
[X86] Use ZERO_EXTEND instead of SIGN_EXTEND in the fast isel handlin…
topperc Feb 14, 2020
34d9a16
AMDGPU: Add option to expand 64-bit integer division in IR
arsenm Jan 19, 2020
6071fc5
[x86] regenerate complete test checks for sqrt{est}; NFC
rotateright Feb 14, 2020
63ed0ec
[x86] remove stray test assertions; NFC
rotateright Feb 14, 2020
9ec6686
AMDGPU: Add option to disable CGP division expansion
arsenm Feb 11, 2020
4af3be7
[docs] Add note on using cmake to perform the build
Feb 14, 2020
07824e6
[AMDGPU] Always enable XNACK feature when support is explicitly reque…
kerbowa Feb 14, 2020
09153ab
[windows] Add /Gw to compiler flags
nico Feb 14, 2020
87e80e5
fix some comment typos to cycle bots
nico Feb 14, 2020
b75692c
[AsmPrinter] Use the McASMInfo to determine if we need descriptors.
mandlebug Feb 14, 2020
5f91c7b
[scudo][standalone] Allow setting release to OS
cferris1000 Feb 14, 2020
d7058ac
[mlir] Add MemRef filter to affine data copy optimization
dcaballe Feb 14, 2020
8dc659c
[Hexagon] Add an explicit makeArrayRef to pacify gcc 5.5
topperc Feb 14, 2020
1fe6e6f
[llvm-exegesis] Rename range based for loop variable in a unit test s…
topperc Feb 14, 2020
86dceb9
[compiler-rt] Use the correct minimum version flag for simulators on …
delcypher Feb 14, 2020
8337fb0
[compiler-rt] Add `DARWIN_osx_MIN_VER_FLAG` variable to match the oth…
delcypher Feb 14, 2020
f5951bd
[compiler-rt] Provide a lit config variable that defines the minimum …
delcypher Feb 14, 2020
a7018e8
[compiler-rt] Disable building LibFuzzer for WatchOS and the correspo…
delcypher Feb 14, 2020
f414136
[compiler-rt] Make various Apple lit substitutions work correctly for…
delcypher Feb 14, 2020
baf9837
[NFC][llvm-exegesis] CombinationGenerator::performGeneration(): pull …
LebedevRI Feb 14, 2020
4f2cccc
[lldb/Editline] Fix mistake in HistoryOperation mapping
JDevlieghere Feb 14, 2020
1228d42
[OpenMP][Part 2] Use reusable OpenMP context/traits handling
jdoerfert Dec 20, 2019
b7be6b4
[lli] Add a '-dlopen <library-path>' option to lli.
lhames Feb 14, 2020
01b02a7
Don't call computeHostNumPhysicalCores when LLVM_ENABLE_THREADS is off
amykhuang Feb 14, 2020
7cbb107
[Attributor][FIX] Validate the type for AAValueConstantRange as needed
jdoerfert Feb 13, 2020
859654c
[FIX] Add missing InGroup to warning introduced as part of D71830
jdoerfert Feb 14, 2020
1a93285
Fix -Wstring-compare warnings in new OpenMP code
rnk Feb 14, 2020
fd438ca
Merge from 'sycl' to 'sycl-web' (#1)
Feb 14, 2020
2504f14
[WebAssembly] Add section names for some DWARF5 sections
dschuff Feb 14, 2020
922197d
[TBLGEN] Allow to override RC weight
rampitec Feb 12, 2020
3bb0ff8
GlobalISel: Remove unused function argument
arsenm Feb 7, 2020
60fea27
AMDGPU/GlobalISel: Improve 16-bit bswap
arsenm Feb 14, 2020
630b47e
AMDGPU: Use generated checks for memcpy expansion
arsenm Feb 14, 2020
dc3e499
AMDGPU/GlobalISel: Fix G_EXTRACT of 96-bit results
arsenm Feb 7, 2020
cb36bfa
Fix 01b02a73de78 to use correct macro spelling and fix unit tests.
amykhuang Feb 14, 2020
65dbdc3
AMDGPU: Don't preserve analyses with div64 IR expansion
arsenm Feb 15, 2020
282f5d7
[Attributor] Derive memory location attributes (argmemonly, ...)
jdoerfert Jan 26, 2020
1cae2f9
[RISCV] Correct the CallPreservedMask for the function call in an int…
ShivaChen Feb 14, 2020
83bea6d
Remove 'process launch failed:' message prefix in Target::Launch
jasonmolenda Feb 15, 2020
ead0b76
[gn build] Make build locally deterministic
nico Feb 15, 2020
a55daa1
[MC] De-capitalize some MCStreamer::Emit* functions
MaskRay Feb 15, 2020
6d2d589
[MC] De-capitalize another set of MCStreamer::Emit* functions
MaskRay Feb 15, 2020
8d8d46b
AMDGPU/GlobalISel: Fix missing impdef of scc on boolean bit ops
arsenm Feb 15, 2020
89fa653
[llvm-ranlib][test] Fix rwx- after a4f3847f3d5742cfab7acdc614e7ca5464…
MaskRay Feb 15, 2020
b4352e4
[Attributor][FIX] Do not RAUW void values
jdoerfert Feb 14, 2020
32e98a7
[Attributor][FIX] Carefully strip casts in AANoAlias
jdoerfert Feb 15, 2020
40b3067
[Attributor][NFC] Add check lines for tests
jdoerfert Feb 15, 2020
137c99a
[Attributor][FIX] Restrict cross-SCC call deletion
jdoerfert Feb 15, 2020
b53af0e
[Attributor][FIX] Collapse `undef` to a proper value
jdoerfert Feb 15, 2020
ad121ea
[Attributor] Manifest simplified (return) values properly
jdoerfert Feb 15, 2020
b70297a
[Attributor][FIX] Ensure abstract attributes are existing before mani…
jdoerfert Feb 14, 2020
0fbe221
[MC][ELF] Make linked-to symbol name part of ELFSectionKey
MaskRay Feb 4, 2020
7517d36
Merge from 'master' to 'sycl-web' (#59)
bader Feb 15, 2020
1dc16c7
[MC] Add MCSection::NonUniqueID and delete one MCContext::getELFSecti…
MaskRay Feb 15, 2020
f554e27
[AsmPrinter] Omit unique ID for __patchable_function_entries sections
MaskRay Feb 15, 2020
8bc790f
[AArch64][FPenv] Update chain of int to fp conversion
Feb 15, 2020
895cad1
[AsmPrinter][XRay] Omit unique ID for xray_instr_map and xray_fn_idx
MaskRay Feb 15, 2020
6b14814
[AsmPrinter] Omit unique ID for .stack_sizes
MaskRay Feb 15, 2020
fd5665a
[Attributor] Fix -Wunused-variable for -DLLVM_ENABLE_ASSERTIONS=off b…
MaskRay Feb 15, 2020
577c9b0
[OpenMP][NFCI] Use the libFrontend DefaultKind in Clang
atmnpatel Feb 15, 2020
5313abd
[OpenMP][NFC] Update OpenMPSupport table
jdoerfert Feb 15, 2020
2101590
NFC: add indexing operator for ArrayAttr
bondhugula Feb 15, 2020
7749710
[MCStreamer] De-capitalize EmitValue EmitIntValue{,InHex}
MaskRay Feb 15, 2020
7438059
[OpenMP][OMPIRBuilder] Add Directives (master and critical) to OMPBui…
fghanim Feb 15, 2020
803ad31
[FIX] Repair clang-tidy check after D72304
jdoerfert Feb 15, 2020
b91c267
[FIX] Remove warnings and UB after 1228d42ddab8
jdoerfert Feb 15, 2020
a0236de
[FIX] Order macros after D72304
jdoerfert Feb 15, 2020
a8f0396
[NFC] Revert unnecessary parts of b91c267380
jdoerfert Feb 15, 2020
ef746aa
[Attributor] Collect memory accesses with their respective kind and l…
jdoerfert Jan 28, 2020
c187364
[Debuginfo][NFC] Create common error handlers for DWARFContext.
avl-llvm Feb 11, 2020
87dac7d
Fix standalone build interaction with compiler extension
Feb 14, 2020
b74a381
[cxx_status] New papers from Prague 2020 WG21 meeting.
zygoloid Feb 15, 2020
34bd51f
PR44890: Inherit explicitly-specified template arguments into base class
zygoloid Feb 15, 2020
98e3f19
[Debuginfo][NFC] Remove usages of WithColor::error and WithColor::war…
avl-llvm Feb 14, 2020
37d1120
[gn build] unbreak win build by removing flags that only work with a …
nico Feb 15, 2020
da147ef
[AArch64] Fixup kill flags on BSL generation
davemgreen Feb 15, 2020
4d5c3ad
[APInt] Add some procedural APInt::byteSwap unit tests
RKSimon Feb 15, 2020
34ad4cc
[APInt] byteSwap - simplify sub 64-bits cases to match general implem…
RKSimon Feb 15, 2020
dc0b815
[AArch64][FIX] Correct register live range during pseudo expansion.
ilinpv Feb 15, 2020
366ae9c
[APInt] byteSwap - handle any whole byte bitwidth greater than 16-bits
RKSimon Feb 15, 2020
8a48c4a
Fix boolean/bitwise operator precedence warnings. NFCI.
RKSimon Feb 15, 2020
b25fc41
[Support] In tests, fix warning: variable ‘Threads’ set but not used
aganea Feb 15, 2020
b7c8a8e
[obj2yaml] - Fix a -Wsign-compare warning gived by GCC 9.2
Feb 15, 2020
ce2b5f1
Fix gcc9.2 -Winit-list-lifetime warning. NFCI.
RKSimon Feb 15, 2020
549b436
[MC] De-capitalize MCStreamer::Emit{Bundle,Addrsig}* etc
MaskRay Feb 15, 2020
f8045b2
Recommit "[SCCP] Remove forcedconstant, go to overdefined instead"
fhahn Feb 13, 2020
3f76497
[X86] Move combineIncDecVector logic from Select to PreprocessISelDAG.
topperc Feb 15, 2020
4abbace
[X86] Add test showing failure to combine shuffle to bit rotation
RKSimon Feb 15, 2020
aa5ebfd
[ValueLattice] Make mark* functions public, return if value changed.
fhahn Feb 15, 2020
34a054c
[X86] combineX86ShuffleChain - add support for combining to X86ISD::R…
RKSimon Feb 15, 2020
c3c20c8
[X86] Fix typo in comment. NFC
topperc Feb 15, 2020
e5b3ae4
[X86] Merge two switches together to simplify some code. NFC
topperc Feb 15, 2020
c1943b4
[ValueLattice] Update markConstantRange to return false equal ranges.
fhahn Feb 15, 2020
46788a2
[X86][AsmPrinter] PrintSymbolOperand: prefer to lower ELF MO_GlobalAd…
MaskRay Feb 15, 2020
c1186d5
[X86][AVX512] Split AVX512F and AVX512BW shuffle combining tests
RKSimon Feb 15, 2020
7406c8d
Fix Wdocumentation unknown parameter warnings. NFCI.
RKSimon Feb 15, 2020
5d22b6a
[X86] Add test cases showing failure to simplify target shuffles to b…
RKSimon Feb 15, 2020
99382e4
[libc++] Add utility to generate and display libc++'s header dependency
EricWF Feb 15, 2020
82b47b2
[libc++] Move abs and div into stdlib.h to fix header cycle.
EricWF Feb 15, 2020
b86bf83
[FIX] Remove pointer in attribute to eliminate leaks (see D71830)
jdoerfert Feb 16, 2020
5e13e0c
[NFC] Move ValidTextRanges out of DwarfTransformer and into GsymCreat…
clayborg Feb 16, 2020
62654ca
Restore functionality of --sysroot on FreeBSD after b18cb9c47
DimitryAndric Feb 16, 2020
1d5da8c
[Attributor][FIX] Use pointer not reference as it can be null
jdoerfert Feb 16, 2020
857bf5d
[FIX] Do not copy an llvm::function_ref if it has to be reused
jdoerfert Feb 16, 2020
9b07512
[mlir][Parser][NFC] Remove several usages of getEncodedSourceLocation
River707 Feb 16, 2020
857b655
[mlir] Allow adding extra class declarations to interfaces.
River707 Feb 16, 2020
22ebf08
[llvm-readobj] - Refactor the code that dumps relocations.
Feb 13, 2020
0765d38
[IRBuilder] Virtualize IRBuilder
nikic Feb 1, 2020
1b04866
[IRBuilder] Try to fix warnings
nikic Feb 16, 2020
9658d89
[Sema] Adds the pointer-to-int-cast diagnostic
mordante Feb 16, 2020
6cdc36a
[InstCombine] Add multiuse tests for cttz transform; NFC
nikic Feb 16, 2020
893c630
[InstCombine] Create new log2 intrinsic; NFCI
nikic Feb 16, 2020
e48b536
[x86] form broadcast of scalar memop even with >1 use
rotateright Feb 16, 2020
62dd44d
[VectorCombine] fix cost calc for extract-cmp
rotateright Feb 16, 2020
af480e8
Revert "[IRBuilder] Virtualize IRBuilder"
nikic Feb 16, 2020
c9c1c2b
[X86] combineX86ShuffleChain - add support for combining 512-bit shuf…
RKSimon Feb 16, 2020
b85df2e
[X86] combineX86ShuffleChain - add support for combining 512-bit shuf…
RKSimon Feb 16, 2020
7c362b2
[IRBuilder] Fix unnecessary IRBuilder copies; NFC
nikic Feb 16, 2020
5f7b92b
[IRBuilder] Prefer InsertPointGuard over full copy; NFC
nikic Feb 16, 2020
ee2c0f7
[ms] [llvm-ml] Add a draft MASM parser
ericastor Feb 16, 2020
c7c42b4
[gn build] Port ee2c0f76d74
llvmgnsyncbot Feb 16, 2020
1a07084
Updated with list of papers and issues adopted in Prague
mclow Feb 16, 2020
8424789
Update last-mod date for libcxx status page
mclow Feb 16, 2020
af20211
[Sema] Fix pointer-to-int-cast for MSVC build bot
mordante Feb 16, 2020
d26f111
[X86] Split X86ISD::CMP into an integer and FP opcode.
topperc Feb 15, 2020
272d35a
[X86] Separate floating point handling out of EmitCmp and emitFlagsFo…
topperc Feb 16, 2020
43874c3
[SCCP] Re-generate check lines using --function-signature. (NFC)
fhahn Feb 16, 2020
a35b728
[IR] Change maybeSetDSOLocal to isImplicitDSOLocal
MaskRay Feb 16, 2020
3adcc78
[objc_direct] Small updates to help with adoption.
MadCoder Jan 31, 2020
c636f69
[X86] Add more avx512 instrutions to llvm-mca resource tests
topperc Feb 16, 2020
20c5968
[X86] Increase latency of port5 masked compares and kshift/kadd/kunpc…
topperc Feb 16, 2020
fb44b9d
[OpenCL][CUDA][HIP][SYCL] Add norecurse
yxsamliu Jan 29, 2020
04377a8
[Powerpc] set instruction count as lsr first priority of lsr.
Feb 14, 2020
e8e078c
[gn build] use -Xclang form for fdebug-comp-dir for now
nico Feb 17, 2020
1b978dd
[CUDA][HIP][OpenMP] Emit deferred diagnostics by a post-parsing AST t…
yxsamliu Feb 17, 2020
044d40e
AMDGPU/GlobalISel: Move lambdas to normal function
arsenm Feb 16, 2020
24c1561
AMDGPU/GlobalISel: Add some missing tests for non-power-of-2 cases
arsenm Feb 16, 2020
295bbea
AMDGPU/GlobalISel: Fix non-power-of-2 G_SITOFP/G_UITOFP
arsenm Feb 16, 2020
464729c
[X86] Remove unnecessary check for null SDValue. NFC
topperc Feb 17, 2020
c7fa409
[CUDA][HIP][OpenMP] Add lib/Sema/UsedDeclVisitor.h after D70172
MaskRay Feb 17, 2020
8c779b7
Merge from 'master' to 'sycl-web' (#2)
bader Feb 17, 2020
0b61f04
Merge commit 'c7fa409bcad' into sycl-web
bader Feb 17, 2020
37e7a78
Enable NoGlobalOffsetINTEL execution mode translation
vmaksimo Jan 16, 2020
e6c2b59
Set ModFlagBehavior=Max for the "Dwarf Version" metadata
AlexeySotkin Feb 11, 2020
771ac92
Update DebugInfo test after LLVM change 9f6ff07f8a
svenvh Feb 12, 2020
7df0e1f
Fix -Wunused-variable warnings
svenvh Feb 11, 2020
f8cb9a5
Add volatile qualifier for atom_ builtins
svenvh Feb 12, 2020
c78bbd0
Translate LLVM's cmpxchg instruction to SPIR-V
AlexeySotkin Feb 4, 2020
793895c
[SYCL] Fix LIT after LLVM change in community
vladimirlaz Feb 18, 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.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
## SYCL Extension Proposal Documents

See [sycl/doc/extensions](sycl/doc/extensions)

3 changes: 1 addition & 2 deletions clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,7 @@ int main(int argc, const char **argv) {
Error = false;
llvm::sys::Mutex IndexMutex;
// ExecutorConcurrency is a flag exposed by AllTUsExecution.h
llvm::ThreadPool Pool(ExecutorConcurrency == 0 ? llvm::hardware_concurrency()
: ExecutorConcurrency);
llvm::ThreadPool Pool(llvm::hardware_concurrency(ExecutorConcurrency));
for (auto &Group : USRToBitcode) {
Pool.async([&]() {
std::vector<std::unique_ptr<doc::Info>> Infos;
Expand Down
4 changes: 2 additions & 2 deletions clang-tools-extra/clang-move/HelperDeclRefGraph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ void HelperDeclRefGraph::print(raw_ostream &OS) const {
OS << " (" << N << ") ";
OS << " calls: ";
for (auto CI = N->begin(), CE = N->end(); CI != CE; ++CI) {
(*CI)->print(OS);
CI->Callee->print(OS);
OS << " (" << CI << ") ";
}
OS << '\n';
Expand All @@ -48,7 +48,7 @@ void HelperDeclRefGraph::addEdge(const Decl *Caller, const Decl *Callee) {
// Allocate a new node, mark it as root, and process it's calls.
CallGraphNode *CallerNode = getOrInsertNode(const_cast<Decl *>(Caller));
CallGraphNode *CalleeNode = getOrInsertNode(const_cast<Decl *>(Callee));
CallerNode->addCallee(CalleeNode);
CallerNode->addCallee({CalleeNode, /*CallExpr=*/nullptr});
}

void HelperDeclRefGraph::dump() const { print(llvm::errs()); }
Expand Down
6 changes: 3 additions & 3 deletions clang-tools-extra/clang-tidy/ClangTidyCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback {
/// ``CheckOptions``. If the corresponding key is not present, returns
/// \p Default.
template <typename T>
typename std::enable_if<std::is_integral<T>::value, T>::type
get(StringRef LocalName, T Default) const {
std::enable_if_t<std::is_integral<T>::value, T> get(StringRef LocalName,
T Default) const {
std::string Value = get(LocalName, "");
T Result = Default;
if (!Value.empty())
Expand All @@ -150,7 +150,7 @@ class ClangTidyCheck : public ast_matchers::MatchFinder::MatchCallback {
/// present, falls back to get global option. If global option is not
/// present either, returns Default.
template <typename T>
typename std::enable_if<std::is_integral<T>::value, T>::type
std::enable_if_t<std::is_integral<T>::value, T>
getLocalOrGlobal(StringRef LocalName, T Default) const {
std::string Value = getLocalOrGlobal(LocalName, "");
T Result = Default;
Expand Down
12 changes: 12 additions & 0 deletions clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,15 @@ static std::string getCondVarNames(const Stmt *Cond) {
return Result;
}

static bool isKnownFalse(const Expr &Cond, const ASTContext &Ctx) {
if (Cond.isValueDependent())
return false;
bool Result = false;
if (Cond.EvaluateAsBooleanCondition(Result, Ctx))
return !Result;
return false;
}

void InfiniteLoopCheck::registerMatchers(MatchFinder *Finder) {
const auto LoopCondition = allOf(
hasCondition(
Expand All @@ -170,6 +179,9 @@ void InfiniteLoopCheck::check(const MatchFinder::MatchResult &Result) {
const auto *LoopStmt = Result.Nodes.getNodeAs<Stmt>("loop-stmt");
const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");

if (isKnownFalse(*Cond, *Result.Context))
return;

bool ShouldHaveConditionVariables = true;
if (const auto *While = dyn_cast<WhileStmt>(LoopStmt)) {
if (const VarDecl *LoopVarDecl = While->getConditionVariable()) {
Expand Down
1 change: 1 addition & 0 deletions clang-tools-extra/clang-tidy/misc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ add_clang_library(clangTidyMiscModule
MiscTidyModule.cpp
MisplacedConstCheck.cpp
NewDeleteOverloadsCheck.cpp
NoRecursionCheck.cpp
NonCopyableObjects.cpp
NonPrivateMemberVariablesInClassesCheck.cpp
RedundantExpressionCheck.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,9 @@ void DefinitionsInHeadersCheck::check(const MatchFinder::MatchResult &Result) {
DiagnosticIDs::Note)
<< FixItHint::CreateInsertion(FD->getInnerLocStart(), "inline ");
} else if (const auto *VD = dyn_cast<VarDecl>(ND)) {
// C++14 variable templates are allowed.
if (VD->getDescribedVarTemplate())
return;
// Static data members of a class template are allowed.
if (VD->getDeclContext()->isDependentContext() && VD->isStaticDataMember())
return;
Expand Down
2 changes: 2 additions & 0 deletions clang-tools-extra/clang-tidy/misc/MiscTidyModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "DefinitionsInHeadersCheck.h"
#include "MisplacedConstCheck.h"
#include "NewDeleteOverloadsCheck.h"
#include "NoRecursionCheck.h"
#include "NonCopyableObjects.h"
#include "NonPrivateMemberVariablesInClassesCheck.h"
#include "RedundantExpressionCheck.h"
Expand All @@ -35,6 +36,7 @@ class MiscModule : public ClangTidyModule {
CheckFactories.registerCheck<MisplacedConstCheck>("misc-misplaced-const");
CheckFactories.registerCheck<NewDeleteOverloadsCheck>(
"misc-new-delete-overloads");
CheckFactories.registerCheck<NoRecursionCheck>("misc-no-recursion");
CheckFactories.registerCheck<NonCopyableObjectsCheck>(
"misc-non-copyable-objects");
CheckFactories.registerCheck<NonPrivateMemberVariablesInClassesCheck>(
Expand Down
276 changes: 276 additions & 0 deletions clang-tools-extra/clang-tidy/misc/NoRecursionCheck.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
//===--- NoRecursionCheck.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 "NoRecursionCheck.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "clang/Analysis/CallGraph.h"
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/SCCIterator.h"

using namespace clang::ast_matchers;

namespace clang {
namespace tidy {
namespace misc {

namespace {

/// Much like SmallSet, with two differences:
/// 1. It can *only* be constructed from an ArrayRef<>. If the element count
/// is small, there is no copy and said storage *must* outlive us.
/// 2. it is immutable, the way it was constructed it will stay.
template <typename T, unsigned SmallSize> class ImmutableSmallSet {
ArrayRef<T> Vector;
llvm::DenseSet<T> Set;

static_assert(SmallSize <= 32, "N should be small");

bool isSmall() const { return Set.empty(); }

public:
using size_type = size_t;

ImmutableSmallSet() = delete;
ImmutableSmallSet(const ImmutableSmallSet &) = delete;
ImmutableSmallSet(ImmutableSmallSet &&) = delete;
T &operator=(const ImmutableSmallSet &) = delete;
T &operator=(ImmutableSmallSet &&) = delete;

// WARNING: Storage *must* outlive us if we decide that the size is small.
ImmutableSmallSet(ArrayRef<T> Storage) {
// Is size small-enough to just keep using the existing storage?
if (Storage.size() <= SmallSize) {
Vector = Storage;
return;
}

// We've decided that it isn't performant to keep using vector.
// Let's migrate the data into Set.
Set.reserve(Storage.size());
Set.insert(Storage.begin(), Storage.end());
}

/// count - Return 1 if the element is in the set, 0 otherwise.
size_type count(const T &V) const {
if (isSmall()) {
// Since the collection is small, just do a linear search.
return llvm::find(Vector, V) == Vector.end() ? 0 : 1;
}

return Set.count(V);
}
};

/// Much like SmallSetVector, but with one difference:
/// when the size is \p SmallSize or less, when checking whether an element is
/// already in the set or not, we perform linear search over the vector,
/// but if the size is larger than \p SmallSize, we look in set.
/// FIXME: upstream this into SetVector/SmallSetVector itself.
template <typename T, unsigned SmallSize> class SmartSmallSetVector {
public:
using size_type = size_t;

private:
SmallVector<T, SmallSize> Vector;
llvm::DenseSet<T> Set;

static_assert(SmallSize <= 32, "N should be small");

// Are we still using Vector for uniqness tracking?
bool isSmall() const { return Set.empty(); }

// Will one more entry cause Vector to switch away from small-size storage?
bool entiretyOfVectorSmallSizeIsOccupied() const {
assert(isSmall() && Vector.size() <= SmallSize &&
"Shouldn't ask if we have already [should have] migrated into Set.");
return Vector.size() == SmallSize;
}

void populateSet() {
assert(Set.empty() && "Should not have already utilized the Set.");
// Magical growth factor prediction - to how many elements do we expect to
// sanely grow after switching away from small-size storage?
const size_t NewMaxElts = 4 * Vector.size();
Vector.reserve(NewMaxElts);
Set.reserve(NewMaxElts);
Set.insert(Vector.begin(), Vector.end());
}

/// count - Return 1 if the element is in the set, 0 otherwise.
size_type count(const T &V) const {
if (isSmall()) {
// Since the collection is small, just do a linear search.
return llvm::find(Vector, V) == Vector.end() ? 0 : 1;
}
// Look-up in the Set.
return Set.count(V);
}

bool setInsert(const T &V) {
if (count(V) != 0)
return false; // Already exists.
// Does not exist, Can/need to record it.
if (isSmall()) { // Are we still using Vector for uniqness tracking?
// Will one more entry fit within small-sized Vector?
if (!entiretyOfVectorSmallSizeIsOccupied())
return true; // We'll insert into vector right afterwards anyway.
// Time to switch to Set.
populateSet();
}
// Set time!
// Note that this must be after `populateSet()` might have been called.
bool SetInsertionSucceeded = Set.insert(V).second;
(void)SetInsertionSucceeded;
assert(SetInsertionSucceeded && "We did check that no such value existed");
return true;
}

public:
/// Insert a new element into the SmartSmallSetVector.
/// \returns true if the element was inserted into the SmartSmallSetVector.
bool insert(const T &X) {
bool result = setInsert(X);
if (result)
Vector.push_back(X);
return result;
}

/// Clear the SmartSmallSetVector and return the underlying vector.
decltype(Vector) takeVector() {
Set.clear();
return std::move(Vector);
}
};

constexpr unsigned SmallCallStackSize = 16;
constexpr unsigned SmallSCCSize = 32;

using CallStackTy =
llvm::SmallVector<CallGraphNode::CallRecord, SmallCallStackSize>;

// In given SCC, find *some* call stack that will be cyclic.
// This will only find *one* such stack, it might not be the smallest one,
// and there may be other loops.
CallStackTy PathfindSomeCycle(ArrayRef<CallGraphNode *> SCC) {
// We'll need to be able to performantly look up whether some CallGraphNode
// is in SCC or not, so cache all the SCC elements in a set.
const ImmutableSmallSet<CallGraphNode *, SmallSCCSize> SCCElts(SCC);

// Is node N part if the current SCC?
auto NodeIsPartOfSCC = [&SCCElts](CallGraphNode *N) {
return SCCElts.count(N) != 0;
};

// Track the call stack that will cause a cycle.
SmartSmallSetVector<CallGraphNode::CallRecord, SmallCallStackSize>
CallStackSet;

// Arbitrairly take the first element of SCC as entry point.
CallGraphNode::CallRecord EntryNode(SCC.front(), /*CallExpr=*/nullptr);
// Continue recursing into subsequent callees that are part of this SCC,
// and are thus known to be part of the call graph loop, until loop forms.
CallGraphNode::CallRecord *Node = &EntryNode;
while (true) {
// Did we see this node before?
if (!CallStackSet.insert(*Node))
break; // Cycle completed! Note that didn't insert the node into stack!
// Else, perform depth-first traversal: out of all callees, pick first one
// that is part of this SCC. This is not guaranteed to yield shortest cycle.
Node = llvm::find_if(Node->Callee->callees(), NodeIsPartOfSCC);
}

// Note that we failed to insert the last node, that completes the cycle.
// But we really want to have it. So insert it manually into stack only.
CallStackTy CallStack = CallStackSet.takeVector();
CallStack.emplace_back(*Node);

return CallStack;
}

} // namespace

void NoRecursionCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(translationUnitDecl().bind("TUDecl"), this);
}

void NoRecursionCheck::handleSCC(ArrayRef<CallGraphNode *> SCC) {
assert(!SCC.empty() && "Empty SCC does not make sense.");

// 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);
}

// Now, SCC only tells us about strongly connected function declarations in
// the call graph. It doesn't *really* tell us about the cycles they form.
// And there may be more than one cycle in SCC.
// So let's form a call stack that eventually exposes *some* cycle.
const CallStackTy EventuallyCyclicCallStack = PathfindSomeCycle(SCC);
assert(!EventuallyCyclicCallStack.empty() && "We should've found the cycle");

// While last node of the call stack does cause a loop, due to the way we
// pathfind the cycle, the loop does not nessesairly begin at the first node
// of the call stack, so drop front nodes of the call stack until it does.
const auto CyclicCallStack =
ArrayRef<CallGraphNode::CallRecord>(EventuallyCyclicCallStack)
.drop_until([LastNode = EventuallyCyclicCallStack.back()](
CallGraphNode::CallRecord FrontNode) {
return FrontNode == LastNode;
});
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();
// 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);
for (int CurFrame = 1, NumFrames = CyclicCallStack.size();
CurFrame != NumFrames; ++CurFrame) {
CallGraphNode::CallRecord PrevNode = CyclicCallStack[CurFrame - 1];
CallGraphNode::CallRecord CurrNode = CyclicCallStack[CurFrame];

Decl *PrevDecl = PrevNode.Callee->getDecl();
Decl *CurrDecl = CurrNode.Callee->getDecl();

diag(CurrNode.CallExpr->getBeginLoc(),
"Frame #%0: function %1 calls function %2 here:", DiagnosticIDs::Note)
<< CurFrame << cast<NamedDecl>(PrevDecl) << cast<NamedDecl>(CurrDecl);
}

diag(CyclicCallStack.back().CallExpr->getBeginLoc(),
"... which was the starting point of the recursive call chain; there "
"may be other cycles",
DiagnosticIDs::Note);
}

void NoRecursionCheck::check(const MatchFinder::MatchResult &Result) {
// Build call graph for the entire translation unit.
const auto *TU = Result.Nodes.getNodeAs<TranslationUnitDecl>("TUDecl");
CallGraph CG;
CG.addToCallGraph(const_cast<TranslationUnitDecl *>(TU));

// Look for cycles in call graph,
// by looking for Strongly Connected Comonents (SCC's)
for (llvm::scc_iterator<CallGraph *> SCCI = llvm::scc_begin(&CG),
SCCE = llvm::scc_end(&CG);
SCCI != SCCE; ++SCCI) {
if (!SCCI.hasLoop()) // We only care about cycles, not standalone nodes.
continue;
handleSCC(*SCCI);
}
}

} // namespace misc
} // namespace tidy
} // namespace clang
Loading