summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* [HIP] Add GPU arch gfx1010, gfx1011, and gfx1012Yaxun Liu2019-07-114-0/+30
| | | | | | Differential Revision: https://reviews.llvm.org/D64364 llvm-svn: 365799
* [CodeGen] NVPTX: Switch from atomic.load.add.f32 to atomicrmw faddBenjamin Kramer2019-07-113-17/+5
| | | | llvm-svn: 365798
* [Docs] Add standardized header links to analyzer docNathan Huckleberry2019-07-111-0/+268
| | | | | | | | | | | | | | | | | | | | | | | Summary: Header links should have some standard form so clang tidy docs can easily reference them. The form is as follows. Start with the analyzer full name including packages. Replace all periods with dashes and lowercase everything. Ex: core.CallAndMessage -> core-callandmessage Reviewers: JonasToth, aaron.ballman, NoQ, Szelethus Reviewed By: aaron.ballman, Szelethus Subscribers: nickdesaulniers, lebedev.ri, baloghadamsoftware, mgrang, a.sidorin, Szelethus, jfb, donat.nagy, dkrupp, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64543 llvm-svn: 365797
* Fix a few 'no newline at end of file' warnings that Xcode emitsNico Weber2019-07-111-1/+1
| | | | | | | (Xcode even has a snazzy "Fix" button, but clicking that inserts two newlines. So close!) llvm-svn: 365789
* [OPENMP]Initial fix PR42392: Improve -Wuninitialized warnings for OpenMP ↵Alexey Bataev2019-07-1141-1/+1100
| | | | | | | | | | | | | | | | | | | | | | | programs. Summary: Some OpenMP clauses rely on the values of the variables. If the variable is not initialized and used in OpenMP clauses that depend on the variables values, it should be reported that the uninitialized variable is used in the OpenMP clause expression. This patch adds initial processing for uninitialized variables in OpenMP constructs. Currently, it checks for use of the uninitialized variables in the structured blocks. Reviewers: NoQ, Szelethus, dcoughlin, xazax.hun, a.sidorin, george.karpenkov, szepet Subscribers: rnkovacs, guansong, jfb, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64356 llvm-svn: 365786
* Added mapping for pointers captured in Lambdas in OpenMP target regions,Alexey Bataev2019-07-112-9/+144
| | | | | | | | | | | | | | | | | | | by David Truby. Summary: This adds a zero length array section mapping for each pointer captured by a lambda that is used in a target region, as per section 2.19.7.1 of the OpenMP 5 specification. Reviewers: ABataev Reviewed By: ABataev Subscribers: guansong, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64558 llvm-svn: 365777
* Revert Recommit "[CommandLine] Remove OptionCategory and SubCommand caches ↵Haojian Wu2019-07-111-1/+3
| | | | | | | | | | from the Option class." This reverts r365675 (git commit 43d75f977853c3ec891a440c362b2df183a211b5) The patch causes a crash in SupportTests (CommandLineTest.AliasesWithArguments). llvm-svn: 365742
* Increase the number of parser diagnostics.Richard Trieu2019-07-111-1/+1
| | | | | | | The reserved range for parser diagnostics is getting close to being filled, so increase the space for them. llvm-svn: 365727
* clang-cl: Remove -O0 optionNico Weber2019-07-111-2/+0
| | | | | | | | | | | | cl.exe doesn't understand it; there's /Od instead. See also the review thread for r229575. Update lots of compiler-rt tests to use -Od instead of -O0. Ran `rg -l 'clang_cl.*O0' compiler-rt/test/ | xargs sed -i -c 's/-O0/-Od/'` Differential Revision: https://reviews.llvm.org/D64506 llvm-svn: 365724
* Various minor tweaks to CLCompatOptions.tdNico Weber2019-07-111-43/+47
| | | | | | | | | | | | | | | | | | | - Add back indentation I accidentally removed in r364901 - Wrap two lines to 80 cols - Slightly tighten up help text for several flags - Consistently use "Do not" instead of "Don't" - Make every option description start with a verb - Use "Set" instead of "Specify" - Mark default values of options more consistently - Remove text about "/Zi" not producing PDBs since it's confusing for people not intimately familiar with the implementation of the normal PDB pipeline. /Zi lets the linker produce PDBs, which is what most users want. - Consistently use "file" over "filename" in meta var names, consistently use "file name" over "filename" in text - Make all output setting options have consistent language llvm-svn: 365721
* [CGDebugInfo] Fix -femit-debug-entry-values crash on os_log_helpersVedant Kumar2019-07-112-5/+17
| | | | | | | | | | | | An os_log_helper FunctionDecl may not have a body. Ignore these for the purposes of debug entry value emission. Fixes an assertion failure seen in a stage2 build of clang: Assertion failed: (FD->hasBody() && "Functions must have body here"), function analyzeParametersModification llvm-svn: 365716
* Attempt to fix bots after r365703Nico Weber2019-07-101-3/+15
| | | | llvm-svn: 365714
* NFC: Pass DataLayout into isBytewiseValueVitaly Buka2019-07-101-3/+5
| | | | | | | | | | | | | | | | | | Summary: We will need to handle IntToPtr which I will submit in a separate patch as it's not going to be NFC. Reviewers: eugenis, pcc Reviewed By: eugenis Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63940 llvm-svn: 365709
* NFC: Convert large lambda into methodVitaly Buka2019-07-102-79/+87
| | | | | | | | | | | | | | Reviewers: pcc, eugenis Reviewed By: eugenis Subscribers: cfe-commits, lldb-commits Tags: #clang, #lldb Differential Revision: https://reviews.llvm.org/D63854 llvm-svn: 365708
* GodeGen, NFC: Add test to track emitStoresForConstant behaviorVitaly Buka2019-07-101-0/+66
| | | | | | | | | | | | | | Reviewers: eugenis, pcc Reviewed By: eugenis Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64385 llvm-svn: 365706
* driver: Don't warn about assembler flags being unused when not assemblingNico Weber2019-07-102-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang currently warns when passing flags for the assembler (e.g. -Wa,-mbig-obj) to an invocation that doesn't run the assembler (e.g. -E). At first sight, that makes sense -- the flag really is unused. But many other flags don't have an effect if no assembler runs (e.g. -fno-integrated-as, -ffunction-sections, and many others), and those currently don't warn. So this seems more like a side effect of how CollectArgsForIntegratedAssembler() is implemented than like an intentional feature. Since it's a bit inconvenient when debugging builds and adding -E, always call CollectArgsForIntegratedAssembler() to make sure assembler args always get claimed. Currently, this affects only these flags: -mincremental-linker-compatible, -mimplicit-it= (on ARM), -Wa, -Xassembler It does have the side effect that assembler options now need to be valid even if -E is passed. Previously, `-Wa,-mbig-obj` would error for non-coff output only if the assembler ran, now it always errors. This too makes assembler flags more consistent with all the other flags and seems like a progression. Fixes PR42066. Differential Revision: https://reviews.llvm.org/D64527 llvm-svn: 365703
* [clang-scan-deps] Dependency directives source minimizer:Alex Lorenz2019-07-102-1/+45
| | | | | | | | | | | | single quotes are not digit separators after a valid character literal prefix The single quote character can act as a c++ digit separator. However, the minimizer shouldn't treat it as such when it's actually following a valid character literal prefix, like L, U, u, or u8. Differential Revision: https://reviews.llvm.org/D64525 llvm-svn: 365700
* [Concepts] Concept definitions (D40381)Saar Raz2019-07-1032-47/+450
| | | | | | | First in a series of patches to land C++2a Concepts support. This patch adds AST and parsing support for concept-declarations. llvm-svn: 365699
* My first test commit.Saar Raz2019-07-101-0/+1
| | | | llvm-svn: 365695
* [OPENMP]Remove not used check line from the test, NFC.Alexey Bataev2019-07-101-1/+0
| | | | llvm-svn: 365691
* Update libc++ include path detection to use VFS on LinuxJulie Hockett2019-07-101-6/+7
| | | | | | | | | | The DetectLibcxxIncludePath function had been using llvm::sys::fs::directory_iterator, and this updates it to use llvm::vfs::directory_iterator. Differential Revision: https://reviews.llvm.org/D64381 llvm-svn: 365682
* Recommit "[CommandLine] Remove OptionCategory and SubCommand caches from the ↵Don Hinton2019-07-101-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Option class." Previously reverted in 364141 due to buildbot breakage, and fixed here by making GeneralCategory global a ManagedStatic. Summary: This change processes `OptionCategory`s and `SubCommand`s as they are seen instead of caching them in the Option class and processing them later. Doing so simplifies the work needed to be done by the Global parser and significantly reduces the size of the Option class to a mere 64 bytes. Removing the `OptionCategory` cache saved 24 bytes, and removing the `SubCommand` cache saved an additional 48 bytes, for a total of a 72 byte reduction. Reviewed By: serge-sans-paille Tags: #llvm, #clang Differential Revision: https://reviews.llvm.org/D62105 llvm-svn: 365675
* [X86] Change the IR sequence for _mm_storeh_pi and _mm_storel_pi to perform ↵Craig Topper2019-07-105-28/+14
| | | | | | | | the store as a <2 x float> instead of i64. This is similar to what we do for loadl_pi and loadh_pi. llvm-svn: 365669
* [X86] Add guards to some of the x86 intrinsic tests to skip 64-bit mode only ↵Craig Topper2019-07-1010-0/+58
| | | | | | | | | | intrinsics when compiled for 32-bit mode. All the command lines are for 64-bit mode, but sometimes I compile the tests in 32-bit mode to see what assembly we get and we need to skip these to do that. llvm-svn: 365668
* [clang] Preserve names of addrspacecast'ed values.Vyacheslav Zakharin2019-07-108-47/+63
| | | | | | Differential Revision: https://reviews.llvm.org/D63846 llvm-svn: 365666
* [AMDGPU] Increased the number of implicit argument bytes for both OpenCL and ↵Christudasan Devadasan2019-07-103-27/+27
| | | | | | | | | | | | | HIP (CLANG). To enable a new implicit kernel argument, increased the number of argument bytes from 48 to 56. Reviewed By: yaxunl Differential Revision: https://reviews.llvm.org/D63756 llvm-svn: 365643
* [analyzer]Add user docs rstGabor Marton2019-07-102-3/+8
| | | | | | | | | | | | | | | | Summary: Add user documentation page. This is an empty page atm, later patches will add the specific user documentatoins. Reviewers: dkrupp Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, gamesh411, Charusso, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64494 llvm-svn: 365639
* Remove two unused member variables.Nico Weber2019-07-101-3/+0
| | | | | | | | | They were added over 10 years ago in r66575 and have never been used as far as I can tell. (r67087 added similar fields to Compilation, and those are used.) llvm-svn: 365638
* Loop pragma parsing. NFC.Sjoerd Meijer2019-07-101-40/+30
| | | | | | | | | I would like to add some pragma handling here, but couldn't resist a little NFC and tidy up first. Differential Revision: https://reviews.llvm.org/D64471 llvm-svn: 365629
* [AArch64] Fix vector vuqadd intrinsics operandsDiogo N. Sampaio2019-07-102-1/+52
| | | | | | | | | | | | | | | | | | Summary: Change the vuqadd vector instrinsics to have the second argument as unsigned values, not signed, accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics Reviewers: LukeCheeseman, ostannard Reviewed By: ostannard Subscribers: javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64211 llvm-svn: 365609
* [NFC][AArch64] Fix vector vsqadd intrinsics operandsDiogo N. Sampaio2019-07-101-1/+1
| | | | | | | | | | | | | | | | | | Summary: Change the vsqadd vector instrinsics to have the second argument as signed values, not unsigned, accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics Reviewers: LukeCheeseman, ostannard Reviewed By: ostannard Subscribers: javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64210 llvm-svn: 365608
* [Syntax] Add assertion to catch invalid tokens early. NFCIlya Biryukov2019-07-102-2/+7
| | | | | | To help with identifiying root cause of a crash we are seeing. llvm-svn: 365599
* [NFC][AArch64] Fix vector vqtb[lx][1-4]_s8 operandDiogo N. Sampaio2019-07-102-17/+17
| | | | | | | | | | | | | | | | | | Summary: Change the vqtb[lx][1-4]_s8 instrinsics to have the last argument as vector of unsigned valuse, not signed, accordingly to https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics Reviewers: LukeCheeseman, DavidSpickett Reviewed By: DavidSpickett Subscribers: DavidSpickett, javed.absar, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64243 llvm-svn: 365598
* [analyzer] CastValueChecker: Remove a dump()Csaba Dabis2019-07-101-1/+0
| | | | | Summary: Fix a nit. llvm-svn: 365590
* [Driver] Add float-divide-by-zero back to supported sanitizers after ↵Fangrui Song2019-07-108-9/+33
| | | | | | | | | | | | | | | | | | D63793/rC365272 D63793 removed float-divide-by-zero from the "undefined" set but it failed to add it to getSupportedSanitizers(), thus the sanitizer is rejected by the driver: clang-9: error: unsupported option '-fsanitize=float-divide-by-zero' for target 'x86_64-unknown-linux-gnu' Also, add SanitizerMask::FloatDivideByZero to a few other masks to make -fsanitize-trap, -fsanitize-recover, -fsanitize-minimal-runtime and -fsanitize-coverage work. Reviewed By: rsmith, vitalybuka Differential Revision: https://reviews.llvm.org/D64317 llvm-svn: 365587
* [analyzer] CastValueChecker: Model castsCsaba Dabis2019-07-106-5/+354
| | | | | | | | | | | | | | | | | | | | | Summary: It models the LLVM casts: - `cast<>` - `dyn_cast<>` - `cast_or_null<>` - `dyn_cast_or_null<>` It has a very basic support without checking the `classof()` function. (It reapplies the reverted 'llvm-svn: 365582' patch with proper test file.) Reviewed By: NoQ Tags: #clang Differential Revision: https://reviews.llvm.org/D64374 llvm-svn: 365585
* Revert "[analyzer] CastValueChecker: Model casts"Csaba Dabis2019-07-096-349/+5
| | | | | | This reverts commit 27cf6664437efd640bb6db5594bafcce68fa2854. llvm-svn: 365584
* [analyzer] CastValueChecker: Model castsCsaba Dabis2019-07-096-5/+349
| | | | | | | | | | | | | | | | | | | Summary: It models the LLVM casts: - `cast<>` - `dyn_cast<>` - `cast_or_null<>` - `dyn_cast_or_null<>` It has a very basic support without checking the `classof()` function. Reviewed By: NoQ Tags: #clang Differential Revision: https://reviews.llvm.org/D64374 llvm-svn: 365582
* Revert [clang] DirectoryWatcherReid Kleckner2019-07-0910-1252/+0
| | | | | | This reverts r365574 (git commit 31babea94a3ed38a140540f2252cf043dacec1f7) llvm-svn: 365581
* [MS] Treat ignored explicit calling conventions as an explicit __cdeclReid Kleckner2019-07-092-4/+63
| | | | | | | | | | | | | | | The CCCR_Ignore action is only used for Microsoft calling conventions, mainly because MSVC does not warn when a calling convention would be ignored by the current target. This behavior is actually somewhat important, since windows.h uses WINAPI (which expands to __stdcall) widely. This distinction didn't matter much before the introduction of __vectorcall to x64 and the ability to make that the default calling convention with /Gv. Now, we can't just ignore __stdcall for x64, we have to treat it as an explicit __cdecl annotation. Fixes PR42531 llvm-svn: 365579
* [clang] DirectoryWatcherJan Korous2019-07-0910-0/+1252
| | | | | | | | | | Asynchronously monitors specified directory for changes and passes notifications to provided callback. Dependency for index-while-building. Differential Revision: https://reviews.llvm.org/D58418 llvm-svn: 365574
* XFAIL clang/test/Headers/max_align.c on i686Andus Yu2019-07-091-1/+1
| | | | llvm-svn: 365558
* Use the Itanium C++ ABI for the pipe_builtin.cl testReid Kleckner2019-07-091-1/+3
| | | | | | | Certain OpenCL constructs cannot yet be mangled in the MS C++ ABI. Add a FIXME for it if anyone cares to implement it. llvm-svn: 365557
* De-templatize non-dependent VS macro logic, NFCReid Kleckner2019-07-098-90/+85
| | | | | | | These macro definitions don't depend on the template parameter, so they don't need to be part of the template. Move them to a .cpp file. llvm-svn: 365556
* [CXX] Exercise all paths through these tests.Paul Robinson2019-07-093-1/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D63894 llvm-svn: 365555
* hwasan: Improve precision of checks using short granule tags.Peter Collingbourne2019-07-091-12/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A short granule is a granule of size between 1 and `TG-1` bytes. The size of a short granule is stored at the location in shadow memory where the granule's tag is normally stored, while the granule's actual tag is stored in the last byte of the granule. This means that in order to verify that a pointer tag matches a memory tag, HWASAN must check for two possibilities: * the pointer tag is equal to the memory tag in shadow memory, or * the shadow memory tag is actually a short granule size, the value being loaded is in bounds of the granule and the pointer tag is equal to the last byte of the granule. Pointer tags between 1 to `TG-1` are possible and are as likely as any other tag. This means that these tags in memory have two interpretations: the full tag interpretation (where the pointer tag is between 1 and `TG-1` and the last byte of the granule is ordinary data) and the short tag interpretation (where the pointer tag is stored in the granule). When HWASAN detects an error near a memory tag between 1 and `TG-1`, it will show both the memory tag and the last byte of the granule. Currently, it is up to the user to disambiguate the two possibilities. Because this functionality obsoletes the right aligned heap feature of the HWASAN memory allocator (and because we can no longer easily test it), the feature is removed. Also update the documentation to cover both short granule tags and outlined checks. Differential Revision: https://reviews.llvm.org/D63908 llvm-svn: 365551
* [OpenMP] Simplify getFloatTypeSemanticsFangrui Song2019-07-091-4/+2
| | | | | | | | | | | | When the float point representations are the same on the host and on the target device, (`&Target->getLongDoubleFormat() == &AuxTarget->getLongDoubleFormat()`), we can just use `AuxTarget->getLongDoubleFormat()`. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D64423 llvm-svn: 365545
* [AMDGPU] gfx908 clang targetStanislav Mekhanoshin2019-07-099-0/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D64430 llvm-svn: 365528
* [ObjC] Add a warning for implicit conversions of a constant non-boolean ↵Erik Pilkington2019-07-095-2/+114
| | | | | | | | | | value to BOOL rdar://51954400 Differential revision: https://reviews.llvm.org/D63912 llvm-svn: 365518
* Revert Revert Devirtualize destructor of final class.Hiroshi Yamauchi2019-07-092-3/+50
| | | | | | | | | Revert r364359 and recommit r364100. r364100 was reverted as r364359 due to an internal test failure, but it was a false alarm. llvm-svn: 365509
OpenPOWER on IntegriCloud