summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
Commit message (Collapse)AuthorAgeFilesLines
...
* Parse inferred submodules in module maps, track their contents inDouglas Gregor2011-12-051-9/+22
| | | | | | | Module, and (de-)serialize this information. Semantics of inferred submodules to follow. llvm-svn: 145864
* Fix printing of wildcard exports.Douglas Gregor2011-12-051-5/+14
| | | | llvm-svn: 145812
* Implement support for wildcard exports in modules, allowing a moduleDouglas Gregor2011-12-051-0/+12
| | | | | | | | to re-export anything that it imports. This opt-in feature makes a module behave more like a header, because it can be used to re-export the transitive closure of a (sub)module's dependencies. llvm-svn: 145811
* Implement (de-)serialization of the set of exported modules in aDouglas Gregor2011-12-021-0/+25
| | | | | | module map. llvm-svn: 145695
* Add support for AVX registers to clang inline asm. Add a small testcaseEric Christopher2011-12-021-0/+2
| | | | | | | | | and update the Sema testcase with a register that we won't hit for a while I hope. Fixes rdar://10510405 llvm-svn: 145671
* When we're passing a vector with an illegal type through memory on x86-64, ↵Eli Friedman2011-12-021-1/+5
| | | | | | use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors. llvm-svn: 145652
* Add support for AMD's bulldozer.Benjamin Kramer2011-12-011-0/+26
| | | | llvm-svn: 145606
* Promote ModuleMap::Module to a namespace-scope class in the BasicDouglas Gregor2011-11-302-0/+92
| | | | | | | | | library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). llvm-svn: 145538
* Fix some possible gcc-4.2 may be used uninitialized warnings.Daniel Dunbar2011-11-281-1/+1
| | | | llvm-svn: 145293
* Make our handling of MMX x SSE closer to what gcc does:Rafael Espindola2011-11-271-11/+34
| | | | | | | | * Enabling sse enables mmx. * Disabling (-mno-mmx) mmx, doesn't disable sse (we got this right already). * The order in not important. -msse -mno-mmx is the same as -mno-mmx -msse. llvm-svn: 145194
* AAPCS compliance - 32-bit wchar_t should be unsigned for both aapcs and ↵James Molloy2011-11-231-0/+5
| | | | | | | | aapcs-linux. Original behaviour of defining wchar_t as signed int has been kept for apcs-gnu as I don't have any spec for this to validate against. llvm-svn: 145102
* Revert r132539 for now, "My testing shows that function stat has no problem ↵NAKAMURA Takumi2011-11-171-0/+6
| | | | | | | | with trailing separators. (tested on Windows and Darwin)." It caused PR10331. MSVCRT stat() cannot strip trailing '/'. (can '\') llvm-svn: 144884
* Implement (de-)serialization of the buffer contents for an overriddenDouglas Gregor2011-11-161-0/+1
| | | | | | | | | | file in the source manager. This allows us to properly create and use modules described by module map files without umbrella headers (or with incompletely umbrella headers). More generally, we can actually build a PCH file that makes use of file -> buffer remappings, which could be useful in libclang in the future. llvm-svn: 144830
* Add a -cc1-level option -fmodule-name=<name>, which will be used whenDouglas Gregor2011-11-151-0/+2
| | | | | | building modules. llvm-svn: 144680
* Warning option typo correction: When two options have the same edit_distance ↵Benjamin Kramer2011-11-151-4/+6
| | | | | | | | don't display either. Also add a maximum edit distance threshold, so we don't correct "-Wx" to "-W#pragma-messages". llvm-svn: 144644
* Print a typo correction hint for unknown warning flags.Benjamin Kramer2011-11-141-0/+21
| | | | | | | $ clang -Wololo t.c warning: unknown warning option '-Wololo'; did you mean '-Wall'? [-Wunknown-warning-option] llvm-svn: 144591
* Define some built-ins macros on mips32 platform, from Simon Atanasyan!Douglas Gregor2011-11-091-0/+4
| | | | llvm-svn: 144189
* [PCH] Fix reading from PCH of diagnostic pragmas.Argyrios Kyrtzidis2011-11-091-10/+1
| | | | | | | | | | | In certain cases ASTReader would call the normal DiagnosticsEngine API to initialize the state of diagnostic pragmas but DiagnosticsEngine would try to compare source locations leading to crash because the main FileID was not yet initialized. Yet another case of the ASTReader trying to use the normal APIs and inadvertently breaking invariants. Fix this by having the ASTReader set up the internal state directly. llvm-svn: 144153
* Use StringRef's case transformation methods.Benjamin Kramer2011-11-061-3/+2
| | | | llvm-svn: 143889
* Move definitions of SizeType and PtrDiffType to Mips32TargetInfoBase.Akira Hatanaka2011-11-051-5/+5
| | | | llvm-svn: 143775
* Fix various minor issues find via unreachable code warnings, fromDouglas Gregor2011-11-021-0/+2
| | | | | | Ahmed Charles! llvm-svn: 143569
* Move ConvertUTF8toUTF32 out of #if 0, in preparation for a patch which needs it.Eli Friedman2011-11-011-61/+62
| | | | llvm-svn: 143415
* In x86_64, when calling an Objective-C method that returns a _Complex long ↵Anders Carlsson2011-10-312-0/+6
| | | | | | double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil. llvm-svn: 143350
* Add support for sse4a and enable it for amdfam10 cpu.Roman Divacky2011-10-301-3/+9
| | | | llvm-svn: 143312
* Add support for amdfam10 cpu.Roman Divacky2011-10-301-0/+9
| | | | llvm-svn: 143305
* Make the loading of information attached to an IdentifierInfo from anDouglas Gregor2011-10-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AST file more lazy, so that we don't eagerly load that information for all known identifiers each time a new AST file is loaded. The eager reloading made some sense in the context of precompiled headers, since very few identifiers were defined before PCH load time. With modules, however, a huge amount of code can get parsed before we see an @import, so laziness becomes important here. The approach taken to make this information lazy is fairly simple: when we load a new AST file, we mark all of the existing identifiers as being out-of-date. Whenever we want to access information that may come from an AST (e.g., whether the identifier has a macro definition, or what top-level declarations have that name), we check the out-of-date bit and, if it's set, ask the AST reader to update the IdentifierInfo from the AST files. The update is a merge, and we now take care to merge declarations before/after imports with declarations from multiple imports. The results of this optimization are fairly dramatic. On a small application that brings in 14 non-trivial modules, this takes modules from being > 3x slower than a "perfect" PCH file down to 30% slower for a full rebuild. A partial rebuild (where the PCH file or modules can be re-used) is down to 7% slower. Making the PCH file just a little imperfect (e.g., adding two smallish modules used by a bunch of .m files that aren't in the PCH file) tips the scales in favor of the modules approach, with 24% faster partial rebuilds. This is just a first step; the lazy scheme could possibly be improved by adding versioning, so we don't search into modules we already searched. Moreover, we'll need similar lazy schemes for all of the other lookup data structures, such as DeclContexts. llvm-svn: 143100
* Use assert(0) instead of duplicating the check, suggestion by Anna.Argyrios Kyrtzidis2011-10-251-3/+3
| | | | llvm-svn: 142886
* Remove the Blackfin backend.Dan Gohman2011-10-251-79/+0
| | | | llvm-svn: 142881
* Remove the SystemZ backend.Dan Gohman2011-10-241-63/+0
| | | | llvm-svn: 142879
* Make changes necessary for N32/64 ABI conformance.Akira Hatanaka2011-10-221-9/+25
| | | | | | | - Size of long double is 16 bytes for both N32 and N64. - Size of pointers and long is 8 bytes for N64. llvm-svn: 142705
* Further refine the diagnostic categories for ARC diagnostics. Addresses ↵Ted Kremenek2011-10-201-2/+7
| | | | | | <rdar://problem/10245086>. llvm-svn: 142571
* Use llvm::Triple's methods to parse FreeBSD version numbers.Benjamin Kramer2011-10-181-4/+5
| | | | | | | Who could've thought that FreeBSD would ever reach version 10! Patch from Dimitry Andric. llvm-svn: 142349
* For modules, all macros that aren't include guards are implicitlyDouglas Gregor2011-10-171-0/+2
| | | | | | | public. Add a __private_macro__ directive to hide a macro, similar to the __module_private__ declaration specifier. llvm-svn: 142188
* Place static initializers on linux into the ".text.startup" section, so the ↵Benjamin Kramer2011-10-151-0/+4
| | | | | | | | linker can group them together for performance. This only has an effect with fairly new binutils (2.21.51 or later). Other ELF targets probably want this as well, but on BSDs binutils is usually old so it doesn't matter. llvm-svn: 142076
* Provide half floating point support as a storage only type.Anton Korobeynikov2011-10-141-0/+3
| | | | | | Lack of half FP was a regression compared to llvm-gcc. llvm-svn: 142016
* Misc fixes for atomics. Biggest fix is doing alignment correctly for ↵Eli Friedman2011-10-142-0/+19
| | | | | | _Atomic types. llvm-svn: 142002
* Change __extension__ to disable only diagnostics controlled by -pedantic.Bob Wilson2011-10-121-3/+6
| | | | | | | | | | | | This changes clang to match GCC's behavior for __extension__, which temporarily disables the -pedantic flag. Warnings that are enabled without -pedantic are not affected. Besides the general goodness of matching GCC's precedent, my motivation for this is that macros in the arm_neon.h header need to use __extension__ to avoid pedantic complaints about their use of statement expressions, yet we still want to warn about incompatible pointer arguments for those macros. llvm-svn: 141804
* Add target info for Linux on PPC & Sparc.Anton Korobeynikov2011-10-121-0/+6
| | | | | | Patch by Hal Finkel! llvm-svn: 141772
* Introduce SourceManager::getFileLoc which returns a file locationArgyrios Kyrtzidis2011-10-121-0/+10
| | | | | | taking into account macro arguments. llvm-svn: 141771
* Add a -Wc++0x-compat warning for C++11 keywords used as identifiers when inRichard Smith2011-10-111-7/+10
| | | | | | C++98 mode. Only the first occurrence of each keyword will produce a warning. llvm-svn: 141700
* Allow regparm attribute for PNaCl targetDavid Meyer2011-10-111-0/+1
| | | | llvm-svn: 141638
* Fixed natural stack alignment for Linux x86-32. Thanks Eli.Lang Hames2011-10-111-1/+1
| | | | llvm-svn: 141617
* Update target data strings for ARM and X86 to include the natural stackLang Hames2011-10-101-9/+9
| | | | | | alignment parameter "S<size>" that was introduced in r141599. llvm-svn: 141601
* Add address spaces for TCE target. Patch by Pekka Jääskeläinen.Eli Friedman2011-10-071-0/+7
| | | | llvm-svn: 141390
* Basic/Diagnostics: Apparently, #pragma ... diagnostic is intended to overrideDaniel Dunbar2011-10-041-0/+7
| | | | | | | | the command line options (at least according to GCC's documentation). GCC 4.2 didn't appear to actually do this, but it seems like that has been fixed in later release, so we will follow the docs. llvm-svn: 141119
* Make sure SourceManager::getFileIDLoaded doesn't hang in release build ↵Argyrios Kyrtzidis2011-10-031-0/+4
| | | | | | | | because of invalid passed parameter. rdar://10210140 llvm-svn: 141048
* PTX: Add some basic support for OpenCL address spacesJustin Holewinski2011-10-031-0/+6
| | | | llvm-svn: 141008
* Basic/Diagnostic: Kill off a few unnecessary functions now that refactoring ↵Daniel Dunbar2011-09-292-8/+6
| | | | | | is done, and add a note that the new setDiagnosticGroup{...} methods only operate on the current diagnostic state. llvm-svn: 140771
* Basic/Diagnostics: Rewrite DiagnosticIDs::getDiagnosticLevel completely to ↵Daniel Dunbar2011-09-292-69/+55
| | | | | | | | be straighter line code, use the new DiagnosticMappingInfo flags, and eliminate the odd MAP_WARNING_NO_WERROR and friend mappings. - This fixes a host of obscure bugs with regards to how warning mapping options composed with one another, and I believe makes the code substantially easier to read and reason about. llvm-svn: 140770
* Basic/Diagnostics: Add three explicit bits to DiagnosticMappingInfo to track ↵Daniel Dunbar2011-09-292-21/+66
| | | | | | | | "no-warning-as-error", "no-error-as-fatal", and "show-in-system-header", and update DiagnosticsEngine::setDiagnosticGroup{WarningAsError,ErrorAsFatal} and GetDefaultDiagMappingInfo to set them appropriately. - No actual functionality change for now, we still also use the diag::Mapping::{MAP_WARNING_NO_ERROR,MAP_ERROR_NO_FATAL,MAP_WARNING_SHOW_IN_SYSTEM_HEADER} for a little while longer. llvm-svn: 140768
OpenPOWER on IntegriCloud