summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* [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
* [test] Follow-up for r243343, also add a test case using an enum for ↵Argyrios Kyrtzidis2015-07-281-0/+8
| | | | | | designated enum. llvm-svn: 243355
* [ARM] Implement -Wa,-mfpu and friends for assemblersRenato Golin2015-07-272-62/+179
| | | | | | | | | | | This patch allows Clang to pass on -Wa,-mfpu, -Wa,-mhwdiv and -Wa,-mcpu to the integrated assembler (via target-features), but -march is still not being passed, but validated. In case the command line has both -mxxx and -Wa,-mxxx, we warn that the naked one will not be used in assembler mode. llvm-svn: 243353
* [ARM] Changes to Arch/CPU handling to help with -Wa,-mfpu etc. (nfc)Renato Golin2015-07-273-43/+87
| | | | | | | | | | | | To be able to handle -Wa, options in the assembler (ClangAs), we need to make the handling of options based on the value of the options, not direct Arguments from the list, since the list is immutable. No functional change in this patch, but this allows validating of -Wa,-mfpu and friends in the same way we validate -mfpu and friends, *just* for the assembler. llvm-svn: 243352
* [sema] Fix infinite loop when using a boolean value as designated initializer.Argyrios Kyrtzidis2015-07-272-8/+42
| | | | | | | For designated indices use the max array size type bitwidth, not the bitwidth of the index value itself. rdar://21942503 llvm-svn: 243343
* Use CGLoopInfo to emit metadata for loop hint pragmas.Tyler Nowicki2015-07-277-184/+205
| | | | | | | | When ‘#pragma clang loop vectorize(assume_safety)’ was specified on a loop other loop hints were lost. The problem is that CGLoopInfo attaches metadata differently than EmitCondBrHints in CGStmt. For do-loops CGLoopInfo attaches metadata to the br in the body block and for while and for loops, the inc block. EmitCondBrHints on the other hand always attaches data to the br in the cond block. When specifying assume_safety CGLoopInfo emits an empty llvm.loop metadata shadowing the metadata in the cond block. Loop transformations like rotate and unswitch would then eliminate the cond block and its non-empty metadata. This patch unifies both approaches for adding metadata and modifies the existing safety tests to include non-assume_safety loop hints. llvm-svn: 243315
* Fixed test in rL243305Simon Pilgrim2015-07-271-3/+3
| | | | llvm-svn: 243314
* Removing unused function declaration with no definition; NFC.Aaron Ballman2015-07-271-1/+0
| | | | llvm-svn: 243311
* [AArch64] Unconditionally pass subtarget feature reserve-x18 on Darwin.Akira Hatanaka2015-07-272-3/+10
| | | | | | | After r243308, the front-end is responsible for checking the target OS and passing reserve-x18 if the target is Darwin. llvm-svn: 243310
* [X86] Add missing _m_prefetch intrinsicSimon Pilgrim2015-07-272-2/+14
| | | | | | | | | | | | The 3DNOW/PRFCHW cpu targets define both the PREFETCHW (set cache line modified) and PREFETCH (set cache line exclusive) instructions but only the _m_prefetchw (PREFETCHW) intrinsic is included in the header. This patch adds the missing _m_prefetch intrinsic. I'm basing this off AMD documentation - the intel docs on the support for PREFETCHW isn't clear whether Silvermont/Broadwell properly support PREFETCH but given that the intrinsic implementation is a default __builtin_prefetch call, it is safe whatever. Fix for PR23648 Differential Revision: http://reviews.llvm.org/D11338 llvm-svn: 243305
* Correcting a typo in a comment; NFC.Aaron Ballman2015-07-271-1/+1
| | | | llvm-svn: 243292
* [OpenMP] Fix copyin codegen test regression in order used in compareSamuel Antao2015-07-271-3/+3
| | | | | | instruction. llvm-svn: 243289
* [OpenMP] Fix copyin clause codegen regression caused by r243277. Samuel Antao2015-07-271-13/+13
| | | | llvm-svn: 243285
* [OpenMP] Add TLS requirement for the copyin clause codegen test. This is anSamuel Antao2015-07-271-1/+1
| | | | | | attempt to fix regressions triggered by r243277. llvm-svn: 243280
* Rename {Hexagon,NaCl}_TC to {Hexagon,NaCl}ToolChain respectively. NFCDouglas Katzman2015-07-274-93/+98
| | | | | | | | | Also rename XCore (the toolchain) to XCoreToolChain since XCore is also a namespace for its tools. Differential Revision: http://reviews.llvm.org/D10609 llvm-svn: 243279
* [OpenMP] Add capture for threadprivate variables used in copyin clauseSamuel Antao2015-07-273-9/+287
| | | | | | if TLS is enabled in OpenMP code generation. llvm-svn: 243277
* Analysis: Fix example usage comment in CFG.cpp. NFCJonathan Roelofs2015-07-271-1/+1
| | | | | | Patch by Vedant Kumar! llvm-svn: 243275
* Setting ARM dynamic linker name from commandlineRenato Golin2015-07-272-2/+11
| | | | | | | | | | Currently trigger to select hard-float linker is only based of -gnueabihf appearing in target triplet, but we should also select it when hardfloat is requested via cmdline. Patch by Khem Raj. llvm-svn: 243262
* [clang-cl] Handle -O correctlyDavid Majnemer2015-07-276-15/+145
| | | | | | | | | | | | | | | We had multiple bugs here: - We didn't support multiple optimization options in one argument. e.g. -O2y- - We didn't correctly expand -O[12dx] to their respective options. - We treated -O1 as clang -O1 instead of clang -Os. - We treated -Ox as clang -O3 instead of clang -O2. In fact, cl's -Ox option is *less* powerful than cl's -O2 option despite -Ox described as "Full Optimization". This fixes PR24003. llvm-svn: 243261
* Rename highly-confusing isWhitespace that returns false on \n toYaron Keren2015-07-271-17/+13
| | | | | | | | | isWhitespaceExceptNL. If that's wasn't bad enough, we have an identically named function in Basic/CharInfo.h. While at it, remove unnecessary includes, .str() calls and #ifdef. llvm-svn: 243260
* [modules] Add an assert for redeclarations that we never added to their redeclRichard Smith2015-07-278-71/+74
| | | | | | | | | | | | | | | chain and fix the cases where it fires. * Handle the __va_list_tag as a predefined decl. Previously we failed to merge sometimes it because it's not visible to name lookup. (In passing, remove redundant __va_list_tag typedefs that we were creating for some ABIs. These didn't affect the mangling or representation of the type.) * For Decls derived from Redeclarable that are not in fact redeclarable (implicit params, function params, ObjC type parameters), remove them from the list of expected redeclarable decls. llvm-svn: 243259
* [Targets] Define _M_AMD64 and _M_X64 to a more appropriate valueDavid Majnemer2015-07-262-4/+4
| | | | | | We used to define them to 1, we should have defined them to 100. llvm-svn: 243255
* [AST] It should be impossible to get Int128 or UInt128 into VisitIntegerLiteralDavid Majnemer2015-07-261-2/+0
| | | | | | These cases should now be impossible as of r243243. llvm-svn: 243252
* [MS Extensions] Remove support for the i128 integer literal suffixDavid Majnemer2015-07-265-40/+4
| | | | | | | | | | | | | There is currently no support in MSVC for using i128 as an integer literal suffix. In fact, there appears to be no evidence that they have ever supported this feature in any of their compilers. This was an over generalization of their actual feature and is a nasty source of bugs. Why is it a source of bugs? Because most code in clang expects that evaluation of an integer constant expression won't give them something that 'long long' can't represent. Instead of providing a meaningful feature, i128 gives us cute ways of exploding the compiler. llvm-svn: 243243
* [Sema] Refactor AddAlignedAttr to reduce indentationDavid Majnemer2015-07-261-19/+19
| | | | | | No functionality change intended, just a tidy-up. llvm-svn: 243242
* This test failed on ninja-x64-msvc-RA-centos6.Yaron Keren2015-07-261-1/+5
| | | | | | | We could probably get this and the previous three disabled in r243237 working on these builders if MSYS was updated to current MSYS2. llvm-svn: 243238
* Revert three tests enabled on r243236, they fail on clang-x86-win2008-selfhost.Yaron Keren2015-07-263-0/+9
| | | | llvm-svn: 243237
* Enable passing clang tests on Windows/MSYS.Yaron Keren2015-07-268-21/+3
| | | | llvm-svn: 243236
* Fix test running under mingw.Yaron Keren2015-07-261-3/+3
| | | | llvm-svn: 243235
* Try to make the buildbots happyDavid Majnemer2015-07-261-1/+1
| | | | | | | This test was missing a triple causing it to error out on windows targets. They accept a much smaller alignment value. llvm-svn: 243234
* [Sema] The alignment of an object has an upper bound from the object file formatDavid Majnemer2015-07-262-3/+5
| | | | | | | Don't use the spelling of the alignment attribute to determine whether or not an alignment amount makes sense. llvm-svn: 243233
* [libclang] Use lambdas instead of explicit structs when storing arguments.Benjamin Kramer2015-07-254-251/+134
| | | | | | | This boilerplate code was necessary to move arguments between threads in C++98, lambdas make this much easier. No functionality change intended. llvm-svn: 243227
* [AST] Rename RecordLayoutBuilder to ItaniumRecordLayoutBuilderDavid Majnemer2015-07-252-142/+119
| | | | | | | RecordLayoutBuilder is an inaccruate name because it does not build all records. It only builds layouts for targets using the Itanium C++ ABI. llvm-svn: 243225
* Enable clang tests requiring "clang-driver" on mingw.Yaron Keren2015-07-251-1/+1
| | | | | | At least on my mingw system they do pass, let's see what the bots think. llvm-svn: 243224
* [VTableBuilder] Use range-based for loops. No functional change intendedBenjamin Kramer2015-07-251-146/+96
| | | | llvm-svn: 243222
* [VTableBuilder] Turn functors into lambdasBenjamin Kramer2015-07-251-34/+24
| | | | | | No functional change intended. llvm-svn: 243221
* Capture 'this' so GCC 4.7 can find a static members.Benjamin Kramer2015-07-251-4/+6
| | | | llvm-svn: 243218
* [AST] Turn the callbacks of lookupInBases and forallBases into a function_refBenjamin Kramer2015-07-2512-256/+211
| | | | | | | | | This lets us pass functors (and lambdas) without void * tricks. On the downside we can't pass CXXRecordDecl's Find* members (which are now type safe) to lookupInBases directly, but a lambda trampoline is a small price to pay. No functionality change intended. llvm-svn: 243217
OpenPOWER on IntegriCloud