summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
Commit message (Collapse)AuthorAgeFilesLines
* [Mips] Pass -mmsa option to the assembler.Simon Atanasyan2013-11-261-0/+7
| | | | llvm-svn: 195756
* [Mips] Replace explicit argument handling by the single ↵Simon Atanasyan2013-11-261-7/+1
| | | | | | ArgList::AddLastArg() call. llvm-svn: 195755
* [Mips] Add support for nan2008 libraries and headers look up for CodeSimon Atanasyan2013-11-261-0/+2
| | | | | | Sourcery MIPS toolchain. llvm-svn: 195753
* [Mips] Do not detect a used MIPS toolchain. Build a path suffix for FSFSimon Atanasyan2013-11-262-51/+47
| | | | | | | toolchain first and check the path existence. If the path does not exist build and check a path suffix for Code Sourcery toolchain. llvm-svn: 195751
* [Mips] Call findMIPSABIDirSuffix() for MIPS targets only.Simon Atanasyan2013-11-261-4/+2
| | | | llvm-svn: 195750
* Make the integrated assembler the default for cygwin/mingw too.Rafael Espindola2013-11-252-4/+9
| | | | | | | The integrated assembler was already the default for win32. It is now able to handle a clang bootstrap on mingw, so make it the default. llvm-svn: 195676
* remove gcc::PrecompileRafael Espindola2013-11-244-22/+0
| | | | | | | | | | | | | | | Clang still has support for running gcc for performing various stages of a build. Right now it looks like this is used for * Supporting Fortran in the clang driver * Running an assembler or linker in systems we don't yet know how to run them directly. It looks like the gcc::Precompile is a vestige from the days when we supported using clang for C and running gcc for c++. This patch removes it (yes, we have no tests for it). llvm-svn: 195586
* Remove the Darwin_Generic_GCC toolchain.Rafael Espindola2013-11-243-26/+1
| | | | | | | | | | | This is currently unused by any test. The code path would still be hit by clang on ppc, but * PPC has not been supported on current versions of OS X * A port of current clang to older OS X on ppc should be using toolchains::DarwinClang. llvm-svn: 195585
* Don't use the gcc driver for assembling.Rafael Espindola2013-11-233-17/+1
| | | | | | | | | Clang knows how to use the gnu assembler directly from doing so on linux and hurd. The existing support worked out of the box on cygwin and mingw and I was able to bootstrap clang with it in both systems (with pending patches for the new mingw abi, but that is independent of the assembler). llvm-svn: 195554
* Don't pass +soft-float, +soft-float-abi to the arm assembler.Rafael Espindola2013-11-231-14/+27
| | | | llvm-svn: 195551
* Tidy up the no-external-assembler diagAlp Toker2013-11-221-1/+1
| | | | | | | | Diags aren't usually in the first person, and 'windows' isn't the correct product spelling to use in prose. Sidestep issues completely by making this error message platform-neutral. llvm-svn: 195422
* [ARM] add basic support for Cortex-A7 and VFPv4 to ClangArtyom Skrobov2013-11-211-3/+10
| | | | llvm-svn: 195359
* Set default Dwarf Version for -gline-tables-only on Darwin to 2.Manman Ren2013-11-201-4/+9
| | | | | | | | | We are still using Dwarf Version 2 for Darwin systems, make it consistent with -gline-tables-only. This should fix an internal buildbot. llvm-svn: 195267
* [Mips] Take in account the -mfp64 command line option when build pathsSimon Atanasyan2013-11-202-2/+19
| | | | | | to the crt*.o files, libraries and headers for the MIPS FSFS toolchain. llvm-svn: 195249
* [Mips] Do not adjust float-abi flags in case of MIPS16 mode. This codeSimon Atanasyan2013-11-191-10/+2
| | | | | | | | | | should be isolated in the backend (r195123). From the frontend point of view in case of "-mhard-float -mips16" combination of flags the float ABI mode should remain unchanged. The patch reviewed by Reed Kotler. llvm-svn: 195124
* Change the clang driver with the use of -no-integrated-as for darwin to useKevin Enderby2013-11-181-0/+5
| | | | | | | | | | | | | | | the -Q flag to the as(1) assembler driver. We will soon be switching the darwin as(1) assembler driver to call clang(1) and use the intergated assembler by default. To do this and still support clang(1)'s -no-integrated-as flag, when clang(1) runs the as(1) assembler driver and -no-integrated-as is used it needs to pass the -Q flag to as(1) so it uses its GNU based assembler, and not turn around and call clag(1)'s integrated assembler. rdar://15495921 llvm-svn: 195054
* Remove method that always returns true.Rafael Espindola2013-11-171-2/+1
| | | | llvm-svn: 194984
* Remove two unused #ifdefs.Rafael Espindola2013-11-171-11/+0
| | | | llvm-svn: 194983
* Add -freroll-loops to enable loop rerollingHal Finkel2013-11-171-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | This adds -freroll-loops (and -fno-reroll-loops in the usual way) to enable loop rerolling as part of the optimization pass manager. This transformation can enable vectorization, reduce code size (or both). Briefly, loop rerolling can transform a loop like this: for (int i = 0; i < 3200; i += 5) { a[i] += alpha * b[i]; a[i + 1] += alpha * b[i + 1]; a[i + 2] += alpha * b[i + 2]; a[i + 3] += alpha * b[i + 3]; a[i + 4] += alpha * b[i + 4]; } into this: for (int i = 0; i < 3200; ++i) { a[i] += alpha * b[i]; } Loop rerolling is currently disabled by default at all optimization levels. llvm-svn: 194967
* X86: Make specifying avx2 simpler on Darwin with '-arch'Jim Grosbach2013-11-163-6/+45
| | | | | | | | Teach the '-arch' command line option to enable the compiler-friendly features of core-avx2 CPUs on Darwin. Pass the information along in the target triple like Darwin+ARM does. llvm-svn: 194907
* Revert "Using an invalid -O falls back on -O3 instead of an error"Alp Toker2013-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Trying to fix test failures since earlier today. One of the tests added in this commit is outputting test/Driver/clang_f_opts.s which the builders that build in-tree (eg. clang-native-arm-cortex-a9) are trying to run as a test case, causing failures. clang_f_opts.c: If -### doesn't emit the warning then this test probably shouldn't be in here in the first place. Frontend maybe? invalid-o-level.c: Running %clang_cc1 in the Driver tests doesn't make sense because -cc1 bypasses the driver. (I'm not reverting the commit that introduced this but please fix instead of keeping it this way.) Reverting to fix the build failures and also so that the tests can be thought out more thoroughly. This reverts commit r194817. llvm-svn: 194845
* [ASan] Link with libclang_rt.asan_iossim_dynamic.dylib when targeting the ↵Alexander Potapenko2013-11-151-2/+11
| | | | | | | | iOS simulator. Add a test. llvm-svn: 194820
* Using an invalid -O falls back on -O3 instead of an errorSylvestre Ledru2013-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently with clang: $ clang -O20 foo.c error: invalid value '20' in '-O20' With the patch: $ clang -O20 foo.c warning: optimization level '-O20' is unsupported; using '-O3' instead. 1 warning generated. This matches the gcc behavior (with a warning added) Pass all tests: Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. Testing Time: 94.14s Expected Passes : 6721 Expected Failures : 20 Unsupported Tests : 17 (which was not the case of http://llvm-reviews.chandlerc.com/D2125) Reviewers: chandlerc, rafael, rengolin, hfinkel Reviewed By: rengolin CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2152 llvm-svn: 194817
* Fix typoDavid Peixotto2013-11-141-1/+1
| | | | llvm-svn: 194744
* Pass -Wa,-I and -Xassembler -I args to integrated assemblerDavid Peixotto2013-11-141-0/+18
| | | | | | | This patch adds -I to the arguments that are passed to the integrated assembler from -Wa, and -Xassembler args. llvm-svn: 194743
* [objcmt] Introduce "objcmt-white-list-dir-path=" option.Argyrios Kyrtzidis2013-11-141-0/+1
| | | | | | | This options accepts a path to a directory, collects the filenames of the files it contains, and the migrator will only modify files with the same filename. llvm-svn: 194710
* [objcmt] Transfer the objcmt flags from the driver to cc1 invocation andArgyrios Kyrtzidis2013-11-131-0/+14
| | | | | | instantiate ObjCMigrateASTConsumer with the specific options that were enabled. llvm-svn: 194628
* Adds ARM backend options: -mrestrict-it and -mno-restrict-itWeiming Zhao2013-11-131-0/+11
| | | | | | | To support the generation of IT block in Thumbv7 way or Thumbv8 way llvm-svn: 194593
* Add -fprofile-sample-use to Clang's driver.Diego Novillo2013-11-131-0/+7
| | | | | | | | This adds a new option -fprofile-sample-use=filename to Clang. It tells the driver to schedule the SampleProfileLoader pass and passes on the name of the profile file to use. llvm-svn: 194567
* ObjectiveC. availability of Array/Dictionary subscriptingFariborz Jahanian2013-11-121-1/+4
| | | | | | | is further restricted in legacy runtime to deployment target of 10.7 and later. // rdar://15363492 llvm-svn: 194507
* ObjectiveC driver change. re-apply patch reverted inFariborz Jahanian2013-11-121-0/+7
| | | | | | r194450 with a modified test. // rdar://15363492 llvm-svn: 194489
* XCore target has -fno-use-cxa-atexit as default.Robert Lytton2013-11-121-1/+2
| | | | llvm-svn: 194460
* This reverts commit r194435 and r194434.Rafael Espindola2013-11-121-8/+1
| | | | | | Trying to get the bots green. llvm-svn: 194450
* ObjectiveC. By default allow array/dictionary subscripting inFariborz Jahanian2013-11-111-1/+8
| | | | | | ObjectiveC legacy runtime too. // rdar://15363492 llvm-svn: 194434
* Revert "Using an invalid -O falls back on -O3 instead of an error"Sylvestre Ledru2013-11-111-1/+1
| | | | | | | | This reverts commit r194403. Was breaking too many tests... llvm-svn: 194420
* Using an invalid -O falls back on -O3 instead of an errorSylvestre Ledru2013-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | Summary: Currently with clang: $ clang -O20 foo.c error: invalid value '20' in '-O20' With the patch: $ clang -O20 foo.c warning: invalid value '20' in '-O20'. Fall back on value '3' Reviewers: rengolin, hfinkel Reviewed By: rengolin CC: cfe-commits, hfinkel, rengolin Differential Revision: http://llvm-reviews.chandlerc.com/D2125 llvm-svn: 194403
* Add gold plugin support to the FreeBSD link driver.Roman Divacky2013-11-103-0/+25
| | | | llvm-svn: 194350
* This reverts commit r194330, r194329 and r194328.Rafael Espindola2013-11-092-30/+8
| | | | | | The test was still failing on OS X and mingw. llvm-svn: 194334
* Commit the changes to make libc++ the default on FreeBSD >= 10, rather thanDavid Chisnall2013-11-092-0/+43
| | | | | | just the test... llvm-svn: 194333
* Add support for -fuse-ld=.David Chisnall2013-11-092-8/+30
| | | | llvm-svn: 194328
* Ubuntu has published its Saucy release. 'Trusty Tahr' dev has just started. ↵Sylvestre Ledru2013-11-071-1/+3
| | | | | | Add its support in Clang llvm-svn: 194198
* Add a limit to the length of a sequence of 'operator->' functions we willRichard Smith2013-11-061-0/+5
| | | | | | | follow when building a class member access expression. Based on a patch by Rahul Jain! llvm-svn: 194161
* With this patch -Wwrite-strings is still implemented with the terribleRafael Espindola2013-11-051-7/+4
| | | | | | | | | | | hack of passing -fconst-strings to -cc1, but at least the driver uses the regular warning checking code path. Since we don't support a warning that is DefaultIgnore in one language but not in another, this patch creates a dummy C only warning in the same group as the existing one to get the desired effect. llvm-svn: 194097
* clang-format this if.Rafael Espindola2013-11-041-5/+5
| | | | llvm-svn: 193997
* Default to use libc++ on OS X 10.9+ and iOS 7+.Bob Wilson2013-11-021-0/+6
| | | | llvm-svn: 193934
* 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
OpenPOWER on IntegriCloud