summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Add fmodules-cache-path to 2 tests which were missing it.Pete Cooper2015-07-302-1/+11
| | | | | | | | | | These tests were creating a modules.idx file in my clang checkout, not the build directory or temp. All the other tests in this directory use -fmodules-cache-path=%t so updated these to match. llvm-svn: 243657
* [ARM] Allow setting the generic features for native cpusRenato Golin2015-07-301-23/+32
| | | | | | | | | | | | | | | | | Copying the already existing code for x86 to ARM to set the correct CPU features when using -mcpu=native. We can already detect the CPU name but we were not setting the correct feature bits. Moving fpu/hwdiv down to make sure they override whatever we set the default to be. No tests because this is native detection, and not all ARM-enabled builds will hapen at a specific CPU, or even ARM. I have tested locally and it works as expected. Fixes PR12794. llvm-svn: 243656
* Fix sanitizer fallout from r243642Ulrich Weigand2015-07-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | The memory-sanitizer build bot reported: ==5574== WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x7f03089e15f6 in clang::Parser::TryAltiVecTokenOutOfLine(clang::DeclSpec&, clang::SourceLocation, char const*&, unsigned int&, bool&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6290:11 This is because the "Ident_pixel" variable was uninitialized in the getLangOpts().ZVector case, but we'd still call into clang::Parser::TryAltiVecTokenOutOfLine, which uses the variable. The simplest fix for this without sprinkling !getLangOpts().ZVector checks all over the code seems to be to just initialize the variable to nullptr; this will then do the right thing on ZVector. Checked in to unbreak the build bots. llvm-svn: 243644
* [SystemZ] Add support for vecintrin.h vector built-in functionsUlrich Weigand2015-07-306-0/+12499
| | | | | | | | | | | | | | | | | | | This patch adds support for the System Z vector built-in functions. The API-defined header file has the name vecintrin.h. The user-level functions are defined in the same style as the clang version of altivec.h, making heavy use of the __overloadable__ and __always_inline__ attributes. Where possible the functions expand to generic operations rather than specific built-in functions, in the hope that that form can be optimised better. Where a built-in routine is specified to require an immediate integer argument, the __enable_if__ attribute is used to verify the argument is in fact constant and in the appropriate range. Based on a patch by Richard Sandiford. llvm-svn: 243643
* Add support for System z vector language extensionsUlrich Weigand2015-07-3019-46/+3983
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The z13 vector facility has an associated language extension, closely modeled on AltiVec/VSX. The main differences are: - vector long, vector float and vector pixel are not supported - vector long long and vector double are supported (like VSX) - comparison operators return a vector rather than a scalar integer - shift operators behave like the OpenCL shift operators - vector bool is only supported as argument to certain operators; some operators allow mixing a bool with a non-bool vector This patch adds clang support for the extension. It is closely modelled on the AltiVec support. Similarly to the -faltivec option, there's a new -fzvector option to enable the extensions (as well as an -mzvector alias for compatibility with GCC). There's also a separate LangOpt. The extension as implemented here is intended to be compatible with the -mzvector extension recently implemented by GCC. Based on a patch by Richard Sandiford. Differential Revision: http://reviews.llvm.org/D11001 llvm-svn: 243642
* [OPENMP 4.1] Initial support for extended 'ordered' clause.Alexey Bataev2015-07-3017-75/+424
| | | | | | | | OpenMP 4.1 introduces optional argument '(n)' for 'ordered' clause, where 'n' is a number of loops that immediately follow the directive. 'n' must be constant positive integer expressions and it must be less or equal than the number of the loops in the resulting loop nest. Patch adds parsing and semantic analysis for this optional argument. llvm-svn: 243635
* [X86] Recognize "flags" as an identifier, not a register in Intel-syntax ↵Michael Kuperstein2015-07-301-0/+8
| | | | | | | | | | | inline asm This contains the test-case for r243630. Patch by: marina.yatsina@intel.com Differential Revision: http://reviews.llvm.org/D11513 llvm-svn: 243632
* Add a comment explaining differing Windows behavior.Sean Silva2015-07-301-1/+7
| | | | llvm-svn: 243625
* Enable accidentally-disabled tests.Sean Silva2015-07-301-2/+2
| | | | | | | I think I was isolating the failure in the last RUN: line during development, and forgot to re-enable the others. llvm-svn: 243624
* [X86][AVX512BW] Remove whitespaces Asaf Badouh2015-07-301-68/+53
| | | | llvm-svn: 243623
* Remove some noise "this->"s left behind by r243213.Richard Smith2015-07-301-38/+37
| | | | llvm-svn: 243614
* [modules] Remove redundant information written into DeclContext name lookup ↵Richard Smith2015-07-302-7/+6
| | | | | | tables. We don't need to store the data length twice. llvm-svn: 243612
* Remove bad test.Sean Silva2015-07-302-15/+0
| | | | | | | | | | | | | We currently don't canonicalize paths in the preprocessed files. But we do when writing to PCH. This causes a discrepancy on Windows with the test below. This test fails even on unix if you change the test to use `%S//preprocess.h`. I am led to conclude that the invariant that this test was intending to test has not been upheld for a while (and may never have been). llvm-svn: 243602
* Attempt to make clang-x64-ninja-win7 happy.Sean Silva2015-07-302-7/+9
| | | | | | | It looks like we were somehow relying somewhere on removing 'foo/./bar' but *not* 'foo/../foo/bar'. Currently investigating. llvm-svn: 243600
* Avoid failure to canonicalize '..'.Sean Silva2015-07-304-8/+25
| | | | | | | | | | | | | | Also fix completely broken and untested code which was hiding the primary bug. The !LLVM_ON_UNIX branch of the ifdef was actually a no-op. I ran into this in the wild. It was causing failures in our SDK build. Ideally we'd have a perfect llvm::sys::fs::canonical, but at least this is a step in the right direction, and fixes an obviously broken case. In some sense the test case I've added here is an integration test. We should have these routines thoroughly unit tested in llvm::sys::fs. llvm-svn: 243597
* Fix -Wredundant-move warning.Richard Trieu2015-07-293-113/+19
| | | | | | | | | Without DR1579 implemented, the only case for -Wredundant-move is for a parameter being returned with the same type as the function return type. Also include a check to verify that the move constructor will be used by matching nodes in the AST dump. llvm-svn: 243594
* [modules] When performing redeclaration lookup for a using declaration, preferRichard Smith2015-07-297-26/+85
| | | | | | | | | | UsingShadowDecls over other declarations of the same entity in the lookup results. This ensures that we build correct redeclaration chains for the UsingShadowDecls (otherwise we could see assertions and other misbehavior in modules builds, when merging combines multiple redeclaration chains for the same entity from the same module into one chain). llvm-svn: 243592
* [SemaAccess] Provide meaningful message when we hit llvm_unreachable().Davide Italiano2015-07-291-1/+1
| | | | llvm-svn: 243571
* Use the AddAllArgs overload which accepts an ArrayRef of OptSpecifier.Douglas Katzman2015-07-294-49/+32
| | | | | | Differential Revision: http://reviews.llvm.org/D11599 llvm-svn: 243552
* Disable -Wpessimizing-move and -Wredundant-move in template instantiations.Richard Trieu2015-07-293-0/+77
| | | | | | | | | Dependent types can throw off the analysis for these warnings, possibly giving conflicting warnings and fix-its. Disabling the warning in template instantiations will prevent this problem, and will still catch the non-dependent cases in templates. llvm-svn: 243538
* In case of an existing GlobalVariable, the comdat is created using the name ↵Yaron Keren2015-07-292-3/+28
| | | | | | | | | | | | | of the new GV (usually NAME.1) instead of the correct NAME of the old GV. Moving comdat creation after GV replacement solves this. Patch + testcase. Reviewed by Reid Kleckner. http://reviews.llvm.org/D11594 llvm-svn: 243525
* Make this test target x86_64-pc-windows-gnu as well.Yaron Keren2015-07-291-0/+3
| | | | llvm-svn: 243523
* [AArch64] Pass subtarget feature "+strict-align".Akira Hatanaka2015-07-292-11/+7
| | | | | | | | | | This commit changes the driver to save subtarget feature "+strict-align" to the IR instead of using backend option "aarch64-strict-align". This is needed for LTO. rdar://problem/21529937 llvm-svn: 243518
* Remove unnecessary variable.Yaron Keren2015-07-291-12/+8
| | | | llvm-svn: 243517
* [X86][AVX512BW] add convert i16 to i8 and unpack intrinsicsAsaf Badouh2015-07-293-0/+297
| | | | | | Differential Revision: http://reviews.llvm.org/D11564 llvm-svn: 243514
* [X86][AVX512BW] Replace attributes with __DEFAULT_FN_ATTRSAsaf Badouh2015-07-291-6/+6
| | | | llvm-svn: 243512
* [ARM] Pass subtarget feature "+strict-align".Akira Hatanaka2015-07-283-25/+67
| | | | | | | | | | | | | | This commit changes the driver to save subtarget feature "+strict-align" to the IR instead of using backend option "arm-strict-align". This is needed for LTO. Also, move the logic in ARM backend that was deciding whether strict alignment should be forced to the front-end. rdar://problem/21529937 http://reviews.llvm.org/D11472 llvm-svn: 243489
* Silence unused argument warning for --cuda-host-only.Artem Belevich2015-07-282-0/+22
| | | | | | Differential Revision: http://reviews.llvm.org/D11575 llvm-svn: 243479
* --cuda-host-only should not disable linking phase.Artem Belevich2015-07-282-6/+4
| | | | | | | | | | | | Host-only cuda compilation does produce valid host object file and in some cases users do want to proceed on to the linking phase. The change removes special case that stopped compilation pipeline at the Assembly phase. Device-side compilation is still stopped early by the types::getCompilationPhases(). Differential Revision: http://reviews.llvm.org/D11573 llvm-svn: 243478
* Use an iterative method instead of recursion for printing macro backtraces.Richard Trieu2015-07-282-57/+68
| | | | | | | | | | | | Store the locations for a macro expansion in a vector, then iterate over them instead of using recursion. This simplifies the logic around the backtrace limit and gives easier access to the source locations. No functionality change. Patch by Zhengkai Wu. Differential Revision: http://reviews.llvm.org/D11542 llvm-svn: 243477
* Do not give a -Wredundant-move warning when removing the move will result in anRichard Trieu2015-07-282-2/+48
| | | | | | | | | error. If the object being moved has a move constructor and a deleted copy constructor, std::move is required, otherwise Clang will give a deleted constructor error. llvm-svn: 243463
* [test] Follow-up for r243119, also add a test case using property methods.Argyrios Kyrtzidis2015-07-281-2/+8
| | | | llvm-svn: 243455
* Rename -Wmsvc-include to -Wmicrosoft-include, now that -Wmicrosoft is split up.Nico Weber2015-07-287-15/+19
| | | | | | | | | (Keep -Wmsvc-include around as an alias.) While here, also replace the one other mention of "MSVC" in diagnostics with "Microsoft", for consistency. llvm-svn: 243444
* Add -femulated-tls flag to select the emulated TLS model.Chih-Hung Hsieh2015-07-288-0/+39
| | | | | | | | | This will be used for old targets like Android that do not support ELF TLS models. Differential Revision: http://reviews.llvm.org/D10524 llvm-svn: 243441
* [CodeGen] Simplify creation of shuffle masks.Benjamin Kramer2015-07-284-41/+12
| | | | | | No functional change intended. llvm-svn: 243439
* Getting rid of old iterator loopsPiotr Padlewski2015-07-282-15/+11
| | | | llvm-svn: 243431
* Do not force linebreaks when MaxEmptyLinesToKeep is 0.Manuel Klimek2015-07-282-1/+8
| | | | | | | | | | | | | | | | Previously we would format call( p); as call( p); with MaxEmptyLinesToKeep == 0. Now we format it as: call(p); llvm-svn: 243429
* [CodeGen] Clean up CGBuiltin a bit.Benjamin Kramer2015-07-281-272/+176
| | | | | | | | | | - Use cached LLVM types - Turn SmallVectors into Arrays/ArrayRef if the size is static - Use ConstantInt::get's implicit splatting for vector types No functionality change intended. llvm-svn: 243425
* RegParmMax must be 0 for AArch64, as the regparm function attribute is not ↵Kristof Beyls2015-07-282-1/+1
| | | | | | supported on AArch64. llvm-svn: 243417
* [AArch64] Implement __builtin_thread_pointerAdhemerval Zanella2015-07-283-0/+11
| | | | | | | This path add the aarch64 __builtin_thread_pointer support. It will be lowered to llvm.aarch64.thread.pointer. llvm-svn: 243413
* [X86][AVX512VL] add AVX512VL intrinsics 4 out of 4Asaf Badouh2015-07-283-0/+728
| | | | | | Differential Revision: http://reviews.llvm.org/D11526 llvm-svn: 243409
* [X86][AVX512VL] add AVX512VL intrinsics 3 out of 4Asaf Badouh2015-07-283-0/+1175
| | | | | | http://reviews.llvm.org/D11526 llvm-svn: 243406
* [X86][AVX512VL] add AVX512VL intrinsics 2 out of 4Asaf Badouh2015-07-283-0/+1169
| | | | | | http://reviews.llvm.org/D11526 llvm-svn: 243402
* Use TargetParser to parse -mhwdiv command line option in Driver.Alexandros Lamprineas2015-07-281-13/+2
| | | | | | Change-Id: I2ebc40f77af75ec6b43ce8364d6d5a1d29988bd6 Phabricator: http://reviews.llvm.org/D11501 llvm-svn: 243398
* [X86][AVX512VL] add AVX512VL intrinsics 1 out of 4Asaf Badouh2015-07-283-0/+1412
| | | | | | http://reviews.llvm.org/D11526 llvm-svn: 243394
* [sema] Fix crash when typo-transforming an expression containing an ObjC ↵Argyrios Kyrtzidis2015-07-282-8/+17
| | | | | | | | super message expression. rdar://21427916 llvm-svn: 243387
* Make local function isWhitespaceExceptNL static instead of in anonymous ↵Yaron Keren2015-07-281-3/+1
| | | | | | | | namespace per the coding standard. Thanks Craig Tooper for noticing this. llvm-svn: 243381
* Fix what looks like accidentally repeated file contents. No behavior change.Nico Weber2015-07-282-6/+0
| | | | llvm-svn: 243376
* Split -Wmicrosoft into many specific warnings.Nico Weber2015-07-284-44/+89
| | | | | | | | | | | | | | | | | | | | | | | Also move "pragma comment" warning from -Wmicrosoft to -Wignored-pragmas. -Wmicrosoft currently covers many different areas, some more useful than others. Split it into many targeted flags, so that projects can choose to enable only a subset of these warnings. This is also useful for incrementally fixing and turning on these warnings. -Wno-microsoft still disables all these warnings, and -Wmicrosoft still enables them all. After this change, it's possible to pass `-Wno-microsoft -Wmicrosoft-unqualified-friend` to only enable -Wmicrosoft-unqualified-friend, and `-Wmicrosoft -Wno-microsoft-unqualified-friend` to enable all other Microsoft warnings. I put all the template-related warnings behind -Wmicrosoft-template; if that turns out to be too coarse we can make that finer later on. (In practice, I haven't seen the template-related warnings fire frequently.) Reviewed at http://reviews.llvm.org/D11504 llvm-svn: 243371
* InstrProf: Fix a misuse of the FunctionDecl API when generating coverageJustin Bogner2015-07-282-1/+16
| | | | | | | | | | | This was calling FD->hasBody(), meaning "Does the function that this decl refers to have a body?", rather than FD->doesThisDeclarationHaveABody(), meaning "Is this decl a non-deleted definition?". We might want to consider renaming these APIs :/ llvm-svn: 243360
OpenPOWER on IntegriCloud