summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
Commit message (Collapse)AuthorAgeFilesLines
...
* SanitizerArgs: add ability to filter/diagnose unsupported sanitizers.Peter Collingbourne2013-11-015-59/+121
| | | | | | | | | | | | The thread, memory, dataflow and function sanitizers are now diagnosed if enabled explicitly on an unsupported platform. Unsupported sanitizers which are enabled implicitly (as part of a larger group) are silently disabled. As a side effect, this makes SanitizerArgs parsing toolchain-dependent (and thus essentially reverts r188058), and moves SanitizerArgs ownership to ToolChain. Differential Revision: http://llvm-reviews.chandlerc.com/D1990 llvm-svn: 193875
* [AArch64] Add some CPU targets for "generic", A-53 and A-57.Amara Emerson2013-10-312-0/+25
| | | | | | | | | | Enables the clang driver to begin targeting specific CPUs. Introduced a "generic" CPU which will ensure that the optional FP feature is enabled by default when it gets to LLVM, without needing any extra arguments. Cortex-A53 and A-57 are also introduced with tests, although backend handling of them does not yet exist. llvm-svn: 193740
* Add -lm to sanitizer link arguments.Evgeniy Stepanov2013-10-291-0/+1
| | | | | | We'll need to intercept a few function in libm. llvm-svn: 193644
* Teach the driver to not try to use 'lib32' multilib spellings on ARMChandler Carruth2013-10-291-6/+19
| | | | | | | | | | | | | | | | | | | | | | | which doesn't use that multilib. As a consequence, fix Clang's support for cross compiling environments that were relying on this quirk to ensure the correct library search path ordering. This also re-instates the new test cases from Rafael's r193528 for cross-compiling to ARM on Ubuntu 13.10 without any of the changes to the existing test cases (they were no longer needed). This solution was the result of a lot of IRC debugging and trying to understand *exactly* what quirk was being relied upon. It took some time for me to figure out that it was the use of 'lib32' is a multilib that was throwing a wrench in the works. In case you are thinking that its silly to use a multilib of 'lib' at all, entertainingly, GCC does so as well (you can see it with the .../lib/../lib/crt1.o pattern it uses), and the 2-phase sequence of search paths (multilib followed by non-multilib) has observable (if dubious) consequences. =/ Yuck. llvm-svn: 193601
* ARM: Add -m[no-]crc to dis/enable CRC subtargetfeature from clangBernard Ogden2013-10-291-0/+9
| | | | | | | | Allow users to disable or enable CRC subtarget feature. Differential Revision: http://llvm-reviews.chandlerc.com/D2037 llvm-svn: 193600
* Doh, got this turned around. This is in fact the consistent ordering.Chandler Carruth2013-10-291-4/+0
| | | | llvm-svn: 193596
* Clean up the deeply misleading name of the "MultiLibSuffix". This isChandler Carruth2013-10-292-44/+50
| | | | | | | | actually a MIPS-only hack to shim in random ABI directory suffixes in numerous places throughout the toolchain's path search. It shouldn't appear to be anything more general or useful. llvm-svn: 193595
* Cleanup comments and braces. No functionality changed, just trying toChandler Carruth2013-10-291-4/+15
| | | | | | | | | record what is *actually* going on here as the comments existing in the code are confusing at best, and in places outright misleading. The API is even more misleading. Yay. llvm-svn: 193577
* Revert "Support cross linking to arm on ubuntu."Rafael Espindola2013-10-281-23/+11
| | | | | | | | This reverts commit r193528 (and fixes). It broke Chandler's setup. llvm-svn: 193554
* Support cross linking to arm on ubuntu.Rafael Espindola2013-10-281-11/+23
| | | | | | | | | | With this patch we correctly determine that ubuntu's ARM tree is not biarch and use "lib" istead of "lib32". Without this patch the search inside the arm tree for the crt files was failing and we would end up trying to use the i686 ones in lib32. llvm-svn: 193528
* Just detect a distro as being fedora or not.Rafael Espindola2013-10-251-18/+4
| | | | | | | We don't have any checks that depend on the version of fedora, so we can simplify. llvm-svn: 193423
* Merge two adjacent ifs.Rafael Espindola2013-10-251-3/+2
| | | | llvm-svn: 193419
* Add driver support for FP, SIMD and crypto defaults.Bernard Ogden2013-10-241-1/+5
| | | | | | | | | Although we wire up a bit for v8fp for macro setting purposes, we don't set a macro yet. Need to ask list about that. Change-Id: Ic9819593ce00882fbec72757ffccc6f0b18160a0 llvm-svn: 193367
* Set appropriate FPU default for Linux on v8Bernard Ogden2013-10-241-0/+2
| | | | | Change-Id: If9b649c92e7196e3e791948545dc80901a0761eb llvm-svn: 193365
* Teach clang driver about Cortex-A53 and Cortex-A57.Bernard Ogden2013-10-243-2/+2
| | | | | | | | | | | Adds some Cortex-A53 strings where they were missing before. Cortex-A57 is entirely new to clang. Doesn't touch code only used by Darwin, in consequence of which one of the A53 lines has been removed. Change-Id: I5edb58f6eae93947334787e26a8772c736de6483 llvm-svn: 193364
* ARM-Darwin: Use the *-*-darwin-eabi triple for v6m & v7m archsTim Northover2013-10-241-4/+12
| | | | | | | These arch arguments are used for embedded targets (obviously) which need a different calling convention to iOS. llvm-svn: 193328
* Split -fsanitize=bounds to -fsanitize=array-bounds (for the frontend-insertedRichard Smith2013-10-221-2/+2
| | | | | | | | | | | | | | check using the ubsan runtime) and -fsanitize=local-bounds (for the middle-end check which inserts traps). Remove -fsanitize=local-bounds from -fsanitize=undefined. It does not produce useful diagnostics and has false positives (PR17635), and is not a good compromise position between UBSan's checks and ASan's checks. Map -fbounds-checking to -fsanitize=local-bounds to restore Clang's historical behavior for that flag. llvm-svn: 193205
* Driver: Various string-related cleanups.Benjamin Kramer2013-10-211-50/+45
| | | | | | Also fixes some funky formatting. llvm-svn: 193079
* Add the __ARM_ARCH_EXT_IDIV__ predefine. It is set to 1 if we have hardware ↵Silviu Baranga2013-10-211-0/+23
| | | | | | divide in the mode that we are compiling in (depending on the target features), not defined if we don't. Should be compatible with the GCC conterpart. Also adding a -hwdiv option to overide the default behavior. llvm-svn: 193074
* Expose -fmodule-name and -fmodule-map-file as driver options.Daniel Jasper2013-10-211-1/+16
| | | | | Review: http://llvm-reviews.chandlerc.com/D1974 llvm-svn: 193069
* Revert r193022 and r193048. They broke the ubsan test suite.Peter Collingbourne2013-10-201-16/+13
| | | | llvm-svn: 193057
* Driver: libubsan_cxx depends on libubsan. Preserve the topological ordering, ↵Benjamin Kramer2013-10-201-2/+3
| | | | | | some linkers depend on it. llvm-svn: 193048
* When building ubsan, link in ubsan parts first and sanitizer-common second, toNick Lewycky2013-10-191-12/+14
| | | | | | | pick up the common bits ubsan actually needs. Also remove whole-archive when we aren't trying to re-export the symbols. llvm-svn: 193022
* clang-cl: diagnose setting asm listing filename with multiple inputsHans Wennborg2013-10-181-1/+12
| | | | llvm-svn: 193006
* Make .asm a valid extension for assembly filesHans Wennborg2013-10-171-0/+1
| | | | | | | | This is a common extension on Windows, and now clang will assemble them instead of treating them as linker input which is the default for unknown file types. llvm-svn: 192919
* clang-cl: Add support for asm listings (/FA and /Fa)Hans Wennborg2013-10-172-2/+19
| | | | | | | | | | This adds support for outputing the assembly to a file during compilation. It does this by changing the compilation pipeling to not use the integrated assembler, and keep the intermediate assembler file. Differential Revision: http://llvm-reviews.chandlerc.com/D1946 llvm-svn: 192902
* [mips] Added -mfp64 and -mfp32 options.Daniel Sanders2013-10-171-0/+2
| | | | | | | | | | | | | | | | These options specify 64-bit FP registers and 32-bit FP registers respectively. When using -mfp32, the FPU has 16x double-precision registers overlapping with the 32x single-precision registers (each double-precision register overlaps two single-precision registers). When using -mfp64, the FPU has 32x double-precision registers overlapping with the 32x single-precision registers (each double-precision register overlaps with one single-precision register and has an additional 32-bits). MSA requires -mfp64. llvm-svn: 192899
* Rework ppc options handling into a features group.Eric Christopher2013-10-161-14/+23
| | | | | | This should have no functional behavior. llvm-svn: 192838
* Driver: Factor duplicated code.Benjamin Kramer2013-10-161-36/+25
| | | | llvm-svn: 192817
* [mips] Enable frame-pointer elimination for -O1 and above.Akira Hatanaka2013-10-161-2/+10
| | | | llvm-svn: 192815
* ObjectiveC driver. Scrap -fno-objc-legacy-dispatch for NeXTFariborz Jahanian2013-10-151-2/+3
| | | | | | | runtime. It will be silently ignored and regardless of deployment target. // rdar://14803286 llvm-svn: 192719
* For NetBSD/current on X86 do not use libgcc and default to libc++.Joerg Sonnenberger2013-10-142-18/+29
| | | | | | Adjust linkage to make more sense for older releases. llvm-svn: 192615
* Turn struct-path aware TBAA on by default.Manman Ren2013-10-111-2/+3
| | | | | | | | Use -no-struct-path-tbaa to turn it off. This is the same as r191695, which was reverted because it depends on a commit that has issues. llvm-svn: 192497
* XCore target: add an xcore toolchain implementationRobert Lytton2013-10-115-0/+190
| | | | llvm-svn: 192437
* Fix typo in comment. No functionality change.Nick Lewycky2013-10-111-2/+2
| | | | llvm-svn: 192412
* Locate VS InstallDir in the presence of newer runtimeHans Wennborg2013-10-101-20/+19
| | | | | | | | | | | This fixes getSystemRegistryString() in WindowsToolChain.cpp to make sure that the VS version that it picks has an InstallDir. Previously we would look for the highest version os VS and check for InstallDir afterwards. Patch by Yaron Keren! llvm-svn: 192374
* [Mips] Support FSF Mips toolchain directories tree in the Clang driver.Simon Atanasyan2013-10-102-25/+134
| | | | | | | The patch reviewed by Rafael Espindola. http://llvm-reviews.chandlerc.com/D1843 llvm-svn: 192343
* Use KEY_WOW64_32KEY when reading the registry in WindowsToolChain.cpp (PR17033)Hans Wennborg2013-10-091-3/+6
| | | | | | | | This exposes a 32-bit view of the registry even when Clang is built as a 64-bit program. Since Visual Studio is a 32-bit application, this is necessary for us to find it. llvm-svn: 192331
* [Mips] Group MIPS-related options checking function in one place.Simon Atanasyan2013-10-091-8/+8
| | | | llvm-svn: 192293
* [Mips] Make the isMipsR2Arch() function simpler - remove checking forSimon Atanasyan2013-10-091-7/+2
| | | | | | MIPS-arch. llvm-svn: 192292
* [Mips] Do not check for options from the OPT_mips_CPUs_Group. All theseSimon Atanasyan2013-10-092-30/+4
| | | | | | options are aliases now. llvm-svn: 192290
* Remove unused param from Linux::computeSysRoot().Simon Atanasyan2013-10-052-4/+4
| | | | llvm-svn: 192034
* Revert r191947. The problem is not MIPS-specific and requires moreSimon Atanasyan2013-10-041-7/+1
| | | | | | general solution. llvm-svn: 191951
* [Mips] For MIPS '-fPIC -static' means to compile as -fPIC but link withSimon Atanasyan2013-10-041-1/+7
| | | | | | | | | -static. So do not turn off the PIC flag if -static passed to the driver in case of MIPS target. http://llvm.org/bugs/show_bug.cgi?id=14693 llvm-svn: 191947
* ARM: *-*-darwin-eabi triples should use AAPCS.Tim Northover2013-10-031-1/+2
| | | | llvm-svn: 191900
* [ARM] Add -mfpu=none option to the driver.Amara Emerson2013-10-011-4/+39
| | | | llvm-svn: 191736
* Revert r191586 and r191695. They cause crashes when building withRichard Smith2013-10-011-3/+2
| | | | | | -relaxed-aliasing. llvm-svn: 191725
* Turn struct-path aware TBAA on by default.Manman Ren2013-09-301-2/+3
| | | | | | Use -no-struct-path-tbaa to turn it off. llvm-svn: 191695
* Fix misspelling of -fmodules-decluse.Daniel Jasper2013-09-291-2/+2
| | | | llvm-svn: 191640
* Separate construction of bi-arch path suffix from construction ofSimon Atanasyan2013-09-282-67/+61
| | | | | | | | | | | | | | multi-library path suffix. The code calculates MIPS toolchain specific multi-lib path suffixes like mips16/soft-float/el is moved to the separate function findMultiLibSuffix(). This function called during GCC installation detection and result is stored for the future using. The patch reviewed by Rafael Espindola. http://llvm-reviews.chandlerc.com/D1738 llvm-svn: 191612
OpenPOWER on IntegriCloud