summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [Driver][Mips] Add function-wrapper so simplify creation of `Multilib` objects.Simon Atanasyan2014-07-301-74/+27
| | | | | | No functional changes. llvm-svn: 214294
* Now that PIC generation on PPC32 is supported, hook up linking supportJoerg Sonnenberger2014-07-251-1/+2
| | | | | | for NetBSD. llvm-svn: 213972
* [Driver][Mips] Remove "fp64" directories from the mips-mti-linux-gnu toolchainSimon Atanasyan2014-07-251-15/+0
| | | | | | | directories description. Released version of this toolchain has not separate libraries for -mfp64 command line option. llvm-svn: 213937
* AArch64: update Clang for merged arm64/aarch64 triples.Tim Northover2014-07-231-19/+6
| | | | | | | | | | | | | | 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
* For i386, gcc 4.9 under Debian (at least) updated its paths to i586-linux-gnuSylvestre Ledru2014-07-181-1/+1
| | | | | | | | | | | (i486-linux-gnu previously). Adding this triple to the list of search. Also impacts clang 3.4.2 Reported on the Debian bug tracking system here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=754963 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755183 llvm-svn: 213388
* [AArch64] Implement Clang CLI interface proposal about "-march".Kevin Qin2014-07-181-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Revert "Add default feature for CPUs on AArch64 target in Clang" at r210625. Then, all enabled feature will by passed explicitly by -target-feature in -cc1 option. 2. Get "-mfpu" deprecated. 3. Implement support of "-march". Usage is: -march=armv8-a+[no]feature For instance, "-march=armv8-a+neon+crc+nocrypto". Here "armv8-a" is necessary, and CPU names are not acceptable. Candidate features are fp, neon, crc and crypto. Where conflicting feature modifiers are specified, the right-most feature is used. 4. Implement support of "-mtune". Usage is: -march=CPU_NAME For instance, "-march=cortex-a57". This option will ONLY get micro-architectural feature enabled specifying to target CPU, like "+zcm" and "+zcz" for cyclone. Any architectural features WON'T be modified. 5. Change usage of "-mcpu" to "-mcpu=CPU_NAME+[no]feature", which is an alias to "-march={feature of CPU_NAME}+[no]feature" and "-mtune=CPU_NAME" together. Where this option is used in conjunction with -march or -mtune, those options take precedence over the appropriate part of this option. llvm-svn: 213353
* [Driver][Mips] If CPU name is not provided to the driver explicitly useSimon Atanasyan2014-07-161-19/+7
| | | | | | multilibs from the FSFS toolchain corresponding to the mips32r2/mips64r2 CPUs. llvm-svn: 213175
* [Driver][Mips] Reduce code duplication - use existing functionSimon Atanasyan2014-07-161-14/+10
| | | | | | | | getMipsCPUAndABI() to get MIPS ABI name during multi-library selection. No functional changes. llvm-svn: 213143
* [Driver][Mips] Remove flags which is not used in multi-library selection.Simon Atanasyan2014-07-161-2/+0
| | | | | | No functional changes. llvm-svn: 213142
* [Driver][Mips] Reduce code duplication. Remove static isMipsNan2008() function.Simon Atanasyan2014-07-161-6/+2
| | | | | | Use the tools::mips::isNaN2008() routine instead. llvm-svn: 213141
* Remove use of uniform initialization ({}) introduced in r212725 since this ↵David Blaikie2014-07-101-1/+1
| | | | | | isn't supported in MSVC. llvm-svn: 212754
* [Codestyle][x32] Cosmetic codestyle fix.Zinovy Nis2014-07-101-6/+6
| | | | llvm-svn: 212728
* [x32] Adding X32 target support to driver, including ↵Zinovy Nis2014-07-101-22/+55
| | | | | | | | | | TargetInfo,DescriptionString, flags, paths lookup, etc. Cover changes with new tests. The author of the patch is Pavel Chupin (@pavel.v.chupin). The changes enable "hello world" on x32 target (x86_64-*-linux-gnux32). s/isX32/IsX32/ also fixed. Differential Revision: http://reviews.llvm.org/D4180 llvm-svn: 212725
* [mips][mips64r6] Add support for mips-img-linux-gnu GCC toolchainsDaniel Sanders2014-07-101-2/+44
| | | | | | | | | | | | | | Summary: * Support the multilib layout used by the mips-img-linux-gnu * Recognize mips{,64}{,el}-img-linux-gnu as being aliases of mips-img-linux-gnu * Use the correct dynamic linker for mips-img-linux-gnu * Make mips32r6/mips64r6 the default CPU for mips-img-linux-gnu Subscribers: mpf Differential Revision: http://reviews.llvm.org/D4436 llvm-svn: 212719
* Update for llvm api change.Rafael Espindola2014-07-061-4/+7
| | | | llvm-svn: 212408
* [Driver][Mips] Support one more MIPS CPU name - octeon.Simon Atanasyan2014-07-041-1/+2
| | | | llvm-svn: 212339
* Revert r211866, r211895 and r211995, "Driver: use GNU::Link for the ↵NAKAMURA Takumi2014-06-291-12/+1
| | | | | | | | | | | Generic_GCC toolchain". It broke users of Generic_GCC, cygwin and mingw32. It reverts commits as follows: r211866: "Driver: use GNU::Link for the Generic_GCC toolchain" r211895: "Replace GetProgramPath("ld") with GetLinkerPath()." r211995: "Driver: add a cygwin linker tool" llvm-svn: 211998
* Driver: add a cygwin linker toolSaleem Abdulrasool2014-06-291-0/+11
| | | | | | | | | This adds a linker tool for the Windows cygwin environment. This linker invocation is significantly different from the generic ld invocation. It requires additional parameters as well as does not accept some normal parameters. This should fix self-hosting on Cygwin. llvm-svn: 211995
* Driver: use GNU::Link for the Generic_GCC toolchainSaleem Abdulrasool2014-06-271-1/+1
| | | | | | | | | | | | | | | | | This changes the behaviour of the driver for linking to match that of the Generic_GCC::Assemble. The default link should use "ld" rather than "gcc" for the linker as gcc does. This avoids the unnecessary round-tripping through gcc. It also is much more reasonable behaviour from the user's perspective. This should have been updated with SVN r195554 which changed the behaviour of Generic_GCC::Assemble. The gcc_forward test needs to be updated to mark the fact that -march is a flag for GCC not ld. This was updated as a typo fix, but added a check for a flag that is not a link flag. The bindings test covers the change for testing, and thus no new test was added. llvm-svn: 211866
* Implement the -fuse-ld= option.Logan Chien2014-06-261-1/+1
| | | | | | | | | | | | | | This commit implements the -fuse-ld= option, so that the user can specify -fuse-ld=bfd to use ld.bfd. This commit re-applies r194328 with some test case changes. It seems that r194328 was breaking macosx or mingw build because clang can't find ld.bfd or ld.gold in the given sysroot. We should use -B to specify the executable search path instead. Patch originally by David Chisnall. llvm-svn: 211785
* [Driver][Mips] Support mips64-linux-gnuabi64 / mips64el-linux-gnuabi64 ↵Simon Atanasyan2014-06-241-2/+40
| | | | | | | | | target triples. The patch fixes the bug #19869. http://llvm.org/bugs/show_bug.cgi?id=19869 llvm-svn: 211619
* [PowerPC] Add MultiarchIncludeDirs for powerpc64leUlrich Weigand2014-06-201-0/+5
| | | | | | | | | | There was already partial support for multi-arch on powerpc64le, but the MultiarchIncludeDirs setting was missing. This patch adds the appropriate definition, and also extends the linux-header-search.cpp test case to verify an Ubuntu 14.04 powerpc64le tree. llvm-svn: 211359
* Include system_error directly.Rafael Espindola2014-06-121-2/+1
| | | | llvm-svn: 210802
* Replace llvm::error_code with std::error_code.Rafael Espindola2014-06-121-2/+2
| | | | llvm-svn: 210780
* Remove the last remaining llvm/Config/config.h includesAlp Toker2014-06-041-4/+1
| | | | | | | | | | | | This corrects long-standing misuses of LLVM's internal config.h. In most cases the public llvm-config.h header was intended and we can now remove the old hacks thanks to LLVM r210144. The config.h header is private, won't be installed and should no longer be included by clang or other modules. llvm-svn: 210145
* AArch64/ARM64: rename ARM64 components to AArch64Tim Northover2014-05-241-4/+10
| | | | | | This keeps Clang consistent with backend naming conventions. llvm-svn: 209579
* MachO: look for nearby tools on all MachO platforms.Tim Northover2014-05-221-8/+8
| | | | | | | | | | | | | This brings "-arch armv7m" (etc) behaviour more in line with what's expected for developers on OS X, and allows Clang to find an "ld" (for example) in the same directory instead of using the default /usr/bin/ld. Unfortunately no test because it relies on the specific place Clang is running from. rdar://problem/16427320 llvm-svn: 209437
* Revert "TMP"Tim Northover2014-05-221-8/+8
| | | | | | This reverts r209433. Sorry about that, it needs a test & better message. llvm-svn: 209435
* TMPTim Northover2014-05-221-8/+8
| | | | llvm-svn: 209433
* [C++11] Use 'nullptr'. Driver edition.Craig Topper2014-05-171-43/+45
| | | | llvm-svn: 209069
* [Driver] Do not lose already detected set of toolchain's multilibs whileSimon Atanasyan2014-05-121-26/+41
| | | | | | | | | | | | | | | | | iterating over different library path suffixes and different library versions. To find the most appropriate library for the given command line flags we iterate over a set of disk paths. Before probe each path the already detected set of multilibs are cleared. If the set of paths contains existing paths which do not satisfy command line flags or do not contain necessary libraries and object files at all we might lose found multilibs. The patch updates variables which hold detected multilibs if we really find a new multilib matches command line flags. The patch reviewed by Jon Roelofs. llvm-svn: 208523
* Driver: Don't leak the -Xarch argument when its use is incorrect.Nico Weber2014-05-111-2/+2
| | | | | | | (LLVM's lib/Option looks like it might appreciate being hit with the std::unique_ptr stick.) llvm-svn: 208505
* [Driver] Range-based loop simplification.Simon Atanasyan2014-05-081-29/+16
| | | | llvm-svn: 208354
* Drop libgcc and default to libc++ for NetBSD/ARM on 6.99.40+.Joerg Sonnenberger2014-05-071-1/+5
| | | | | | | Don't bother with keeping the old support for x86_64 in 6.99.23+, just use a single range. Update test cases for the always-on --eh-frame-hdr. llvm-svn: 208170
* Also recognize Big Endian ARM variants.Joerg Sonnenberger2014-05-071-0/+2
| | | | llvm-svn: 208169
* Add driver support for AArch64 Fedora.Tilmann Scheller2014-05-061-2/+3
| | | | | | Reviewed by Eric Christopher. llvm-svn: 208105
* Driver: Recognize CentOS 6 as RHEL 6.Benjamin Kramer2014-05-051-11/+9
| | | | | | Patch by Dimitry Andric! llvm-svn: 207963
* Bitrig's standard C++ standard library changed from libstdc++ to libc++.Richard Smith2014-05-011-4/+18
| | | | | | | Also, it uses libc++abi and needs pthread. While there, fix the libc++ include path. Patch by Patrick Wildt! llvm-svn: 207813
* Add aarch64-linux-android triple for Android.Logan Chien2014-04-231-1/+2
| | | | llvm-svn: 206979
* [ARM64] Plumb in big-endian - add arm64_be to the many switches where it was ↵James Molloy2014-04-171-1/+6
| | | | | | missing. llvm-svn: 206462
* Handle -m32 for NetBSD/sparc64 correctly. Extend test case to also checkJoerg Sonnenberger2014-04-161-0/+3
| | | | | | ARM, MIPS and i386 ABIs. llvm-svn: 206416
* ARM64: initial clang support commit.Tim Northover2014-03-291-11/+28
| | | | | | | | | | | This adds Clang support for the ARM64 backend. There are definitely still some rough edges, so please bring up any issues you see with this patch. As with the LLVM commit though, we think it'll be more useful for merging with AArch64 from within the tree. llvm-svn: 205100
* Driver: implement addClangWarningOptionsTim Northover2014-03-291-0/+14
| | | | | | | This function allows certain platforms to enable or disable diagnostics by default. llvm-svn: 205095
* InstrProf: Emit runtime hook directly in IRGenDuncan P. N. Exon Smith2014-03-281-7/+0
| | | | | | | | | | | | | | | | | | -u behaviour is apparently not portable between linkers (see cfe-commits discussions for r204379 and r205012). I've moved the logic to IRGen, where it should have been in the first place. I don't have a Linux system to test this on, so it's possible this logic *still* doesn't pull in the instrumented profiling runtime on Linux. I'm in the process of getting tests going on the compiler-rt side (llvm-commits "[PATCH] InstrProf: Add initial compiler-rt test"). Once we have tests for the full flow there, the runtime logic should get a whole lot less brittle. <rdar://problem/16458307> llvm-svn: 205023
* Add ARM big endian Target (armeb, thumbeb)Christian Pirker2014-03-281-1/+29
| | | | | | Reviewed at http://llvm-reviews.chandlerc.com/D3096 llvm-svn: 205008
* PGO: Change runtime prefix from pgo to profileDuncan P. N. Exon Smith2014-03-201-1/+1
| | | | | | | | | | | These functions are in the profile runtime. PGO comes later. Unfortunately, there's only room for 16 characters in a Darwin section, so use __llvm_prf_ instead of __llvm_profile_ for section names. <rdar://problem/15943240> llvm-svn: 204390
* PGO: Remove explicit static initializationDuncan P. N. Exon Smith2014-03-201-0/+7
| | | | | | | | | | | | | | Remove the remaining explicit static initialization from translation units, at least on Darwin. Instead, create a use of __llvm_pgo_runtime, which will pull in required code from compiler-rt. After this commit (and its pair in compiler-rt), a user can define their own __llvm_pgo_runtime to satisfy this undefined symbol and call the functions in compiler-rt directly. <rdar://problem/15943240> llvm-svn: 204379
* Coding style fixup; no functionality changeDuncan P. N. Exon Smith2014-03-201-3/+2
| | | | llvm-svn: 204371
* AArch64_be specific clang target settingsChristian Pirker2014-03-141-2/+17
| | | | llvm-svn: 203918
* Replace OwningPtr with std::unique_ptr.Ahmed Charles2014-03-071-1/+1
| | | | | | This compiles cleanly with lldb/lld/clang-tools-extra/llvm. llvm-svn: 203279
OpenPOWER on IntegriCloud