summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [OPENMP] Improved codegen for outlined functions for 'parallel' directives.Alexey Bataev2014-07-251-6/+25
| | | | llvm-svn: 213927
* [OPENMP] Improved DSA processing of the loop control variables for loop ↵Alexey Bataev2014-07-251-12/+24
| | | | | | directives. llvm-svn: 213925
* [modules] Substantially improve handling of #undef:Richard Smith2014-07-254-149/+215
| | | | | | | | | | * Track override set across module load and save * Track originating module to allow proper re-export of #undef * Make override set properly transitive when it picks up a #undef This fixes nearly all of the remaining macro issues with self-host. llvm-svn: 213922
* clang-cl: Merge adjacent single-line __asm blocksEhsan Akhgari2014-07-251-9/+20
| | | | | | | | | | | | | | | | | Summary: This patch extends the __asm parser to make it keep parsing input tokens as inline assembly if a single-line __asm line is followed by another line starting with __asm too. It also makes sure that we correctly keep matching braces in such situations by separating the notions of how many braces we are matching and whether we are in single-line asm block mode. Reviewers: rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4598 llvm-svn: 213916
* PR20445: Properly transform the initializer in a CXXNewExpr rather than runningRichard Smith2014-07-252-18/+9
| | | | | | | it through the normal TreeTransform logic for Exprs (which will strip off implicit parts of the initialization and never re-create them). llvm-svn: 213913
* Pass the PrintingPolicy when converting types to strings in template typeRichard Trieu2014-07-251-5/+6
| | | | | | | diffing. This removes extra "struct"/"class" in the type names and gives "bool" instead of "_Bool" for booleans. llvm-svn: 213912
* Print "(default)" for default template template arguments to match theRichard Trieu2014-07-241-0/+1
| | | | | | printing of other types. llvm-svn: 213902
* Add support for #pragma nounroll.Mark Heffernan2014-07-242-12/+33
| | | | llvm-svn: 213885
* Improving the "integer constant too large" diagnostics based on post-commit ↵Aaron Ballman2014-07-243-11/+10
| | | | | | feedback from Richard Smith. Amends r213657. llvm-svn: 213865
* MachO: use "arm64" as the triple name in modules.Tim Northover2014-07-241-0/+11
| | | | | | | | | Current versions of ld64 can't cope with "aarch64" being stored. I'm fixing that, but in the transitionary period we'll need to still emit "arm64". rdar://problem/17783765 llvm-svn: 213852
* [OPENMP] Initial parsing and sema analysis for clause 'seq_cst' of 'atomic' ↵Alexey Bataev2014-07-248-1/+36
| | | | | | directive. llvm-svn: 213846
* [OPENMP] Initial parsing and sema analysis for clause 'capture' in 'atomic' ↵Alexey Bataev2014-07-248-8/+55
| | | | | | directive. llvm-svn: 213842
* MS ABI: -fno-rtti-data wasn't data-free enoughDavid Majnemer2014-07-241-1/+3
| | | | | | | While -fno-rtti-data would correctly avoid referencing the RTTI complete object locator in the VFTable itself, it would emit them anyway. llvm-svn: 213841
* Add support for nullptr template arguments to template type diffing.Richard Trieu2014-07-241-31/+107
| | | | llvm-svn: 213840
* Simplify MacroInfo lifetime management. We don't need three different functionsRichard Smith2014-07-242-8/+13
| | | | | | to destroy one of these. llvm-svn: 213837
* [OPENMP] Fixed DSA detecting for function parameters: by default they must ↵Alexey Bataev2014-07-241-3/+5
| | | | | | be private. llvm-svn: 213835
* Take the canonical type when forming a canonical template argument withRichard Smith2014-07-241-3/+6
| | | | | | | 'nullptr' value. Fixes profiling of such template arguments to always give the same value. llvm-svn: 213834
* Remove unused Prev pointer from MacroInfo chain.Richard Smith2014-07-242-31/+4
| | | | | | | | Remove pointless MICache: it only ever contained up to 1 object, and was only non-empty when recovering from an error. There's no performance or memory win from maintaining this cache. llvm-svn: 213825
* Replace r213816's fix with a different one. It's not meaningful to callRichard Smith2014-07-231-3/+2
| | | | | | | isOnePastTheEnd on an invalid designator, so assert and push the check into the one caller that wasn't already checking. llvm-svn: 213820
* Add a missing Invalid check to SubobjectDesignator::isOnePastEnd()Reid Kleckner2014-07-231-0/+2
| | | | | | | | | | | The class seems to have an invariant that Entries is non-empty if Invalid is false. It appears this method was previously private, and all internal uses checked Invalid. Now there is an external caller, so check Invalid to avoid array OOB underflow. Fixes PR20420. llvm-svn: 213816
* PR20228: don't retain a pointer to a vector element after the container has ↵Richard Smith2014-07-231-3/+4
| | | | | | been resized. llvm-svn: 213790
* In unroll pragma syntax and loop hint metadata, change "enable" forms to a ↵Mark Heffernan2014-07-233-31/+45
| | | | | | new form using the string "full". llvm-svn: 213771
* Add stopgap option -fmodule-implementation-of <name>Ben Langmuir2014-07-235-3/+23
| | | | | | | | | | | | | | | | | | This flag specifies that we are building an implementation file of the module <name>, preventing importing <name> as a module. This does not consider this to be the 'current module' for the purposes of doing modular checks like decluse or non-modular-include warnings, unlike -fmodule-name. This is needed as a stopgap until: 1) we can resolve relative includes to a VFS-mapped module (or can safely import a header textually and as part of a module) and ideally 2) we can safely do incremental rebuilding when implementation files import submodules. llvm-svn: 213767
* Prevent assert in ASTMatchFinder.Daniel Jasper2014-07-231-1/+1
| | | | | | | | | | | | If nodes without memoization data (e.g. TypeLocs) are bound to specific names, that effectively prevents memoization as those elements cannot be compared effectively. If it is tried anyway, this can lead to an assert as demonstrated in the new test. In the long term, the better solution will be to enable DynTypedNodes without memoization data. For now, simply skip memoization instead. llvm-svn: 213751
* AArch64: update Clang for merged arm64/aarch64 triples.Tim Northover2014-07-2312-72/+20
| | | | | | | | | | | | | | The main subtlety here is that the Darwin tools still need to be given "-arch arm64" rather than "-arch aarch64". Fortunately this already goes via a custom function to handle weird edge-cases in other architectures, and it tested. I removed a few arm64_be tests because that really isn't an interesting thing to worry about. No-one using big-endian is also referring to the target as arm64 (at least as far as toolchains go). Mostly they date from when arm64 was a separate target and we *did* need a parallel name simply to test it at all. Now aarch64_be is sufficient. llvm-svn: 213744
* [mips] -mno-shared should only be given to the assembler when ↵Daniel Sanders2014-07-231-2/+16
| | | | | | | | -fPIC/-fpic/-fPIE/-fpie is not in effect. This fixes compiler recursion on MIPS32r2. llvm-svn: 213741
* [OPENMP] Initial parsing and sema analysis for 'update' clause of 'atomic' ↵Alexey Bataev2014-07-238-2/+46
| | | | | | directive. llvm-svn: 213735
* [Driver][Mips] Restore FIXME comment was removed accidentally.Simon Atanasyan2014-07-231-0/+2
| | | | llvm-svn: 213734
* Add module map entry for ARM ACLE header fileYi Kong2014-07-231-0/+5
| | | | llvm-svn: 213731
* [OPENMP] Initial parsing an sema analysis for 'write' clause of 'atomic' ↵Alexey Bataev2014-07-238-27/+64
| | | | | | directive. llvm-svn: 213728
* Improve diagnostic on default-initializing const variables (PR20208).Nico Weber2014-07-231-1/+22
| | | | | | | | This tweaks the diagnostic wording slighly, and adds a fixit on a note. An alternative would be to add the fixit directly on the diagnostic, see the review thread linked to from the bug for a few notes on that approach. llvm-svn: 213725
* AST printer: fix double space before base class with no access specifier.Richard Smith2014-07-231-2/+4
| | | | llvm-svn: 213719
* When pretty-printing a declaration of a pack, put the ellipsis before the nameRichard Smith2014-07-231-12/+18
| | | | | | | | being declared, not at the end. When pretty-printing a non-type template parameter, put the name of the parameter in the middle of the type, not at the end. llvm-svn: 213718
* [OPENMP] Initial parsing and sema analysis for 'read' clause in 'atomic' ↵Alexey Bataev2014-07-238-5/+66
| | | | | | directive. llvm-svn: 213717
* Use the correct from type in a SCSEhsan Akhgari2014-07-221-0/+1
| | | | | | | | | | | | | | | | | | Summary: If during constructing a standard conversion sequence, we resolve an overload, we need to adjust the from type in the SCS according to the resolved operator. I found this bug when debugging PR20218. This doesn't seem to be observable, so there is no good way of testing it. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4402 llvm-svn: 213680
* Improve the checkUInt32Argument() helper function so that it diagnoses ↵Aaron Ballman2014-07-221-0/+6
| | | | | | integer constants larger than 32-bits. llvm-svn: 213658
* Provide extra information in the "integer constant is too large" diagnostic. ↵Aaron Ballman2014-07-222-5/+11
| | | | | | This will be used to improve other diagnostics. llvm-svn: 213657
* Disallowing GNU-style attributes in new expressions, since they are ↵Aaron Ballman2014-07-222-19/+28
| | | | | | prohibited by GCC as well. llvm-svn: 213650
* AVX-512: I added new headers to makefiles. It should resolve tests fail.Elena Demikhovsky2014-07-222-0/+13
| | | | | | If it will not, I'm reverting the both commits. llvm-svn: 213645
* AVX-512: Added intrinsics to clang.Elena Demikhovsky2014-07-223-0/+836
| | | | | | | The set is small, that what I have right now. Everybody is welcome to add more. llvm-svn: 213641
* [OPENMP] Initial parsing and sema analysis for 'atomic' directive.Alexey Bataev2014-07-2213-6/+138
| | | | llvm-svn: 213639
* [OPENMP] Initial parsing and sema analysis for 'ordered' directive.Alexey Bataev2014-07-2213-19/+169
| | | | llvm-svn: 213616
* Fix '&' printing for template arguments in parentheses in template diffing.Richard Trieu2014-07-221-3/+6
| | | | llvm-svn: 213613
* More gracefully handle parentheses in templare arguments in template diffing.Richard Trieu2014-07-221-1/+2
| | | | llvm-svn: 213611
* Fix a template diffing problem were an '&' is unexpectedly printed inRichard Trieu2014-07-221-6/+26
| | | | | | a template argument. llvm-svn: 213609
* Sema: correct handling for __va_start for WoASaleem Abdulrasool2014-07-221-1/+66
| | | | | | | | | | | | | | | | | | Windows ARM indicates __va_start as a variadic function. However, the function itself is treated as having 4 formal arguments: - (out) pointer to the va_list - (in) address of the last named argument - (in) slot size for the type of the last argument - address of the last named argument The last argument does not seem to have any bearing on codegen, and thus is not explicitly type checked at this point. Unlike the previous handling for __va_start, it does not currently validate if the parameter is the last named parameter (it seems that MSVC currently accepts this). llvm-svn: 213595
* Avoid crash if default argument parsed with errors.Serge Pavlov2014-07-223-4/+8
| | | | | | | | | | | | | | If function parameters have default values, and that of the second parameter is parsed with errors, function declaration would have a parameter without default value that follows a parameter with that. Such declaration breaks logic of selecting overloaded function. As a solution, put opaque object as default value in such case. This patch fixes PR20055. Differential Revision: http://reviews.llvm.org/D4378 llvm-svn: 213594
* -fms-extensions: Implement half of #pragma init_segReid Kleckner2014-07-227-8/+105
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This pragma is very rare. We could *hypothetically* lower some uses of it down to @llvm.global_ctors, but given that GlobalOpt isn't able to optimize prioritized global ctors today, there's really no point. If we wanted to do this in the future, I would check if the section used in the pragma started with ".CRT$XC" and had up to two characters after it. Those two characters could form the 16-bit initialization priority that we support in @llvm.global_ctors. We would have to teach LLVM to lower prioritized global ctors on COFF as well. This should let us compile some silly uses of this pragma in WebKit / Blink. Reviewers: rsmith, majnemer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4549 llvm-svn: 213593
* clang-cl: ignore /showIncludes when combined with /E (PR20336)Hans Wennborg2014-07-211-2/+5
| | | | | | | | Both /showIncludes and /E write to stdout. Allowing both results in interleaved output and an error when double-closing the file descriptor, intended to catch issues like this. llvm-svn: 213589
* Rename metadata llvm.loop.vectorize.unroll to llvm.loop.vectorize.interleave.Mark Heffernan2014-07-213-3/+3
| | | | llvm-svn: 213587
OpenPOWER on IntegriCloud