summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename the command-line option for mapping #include/#import over toDouglas Gregor2012-01-031-1/+1
| | | | | | | | module imports from -fauto-module-import to -fmodules. The new name will eventually be used to enable modules, and the #include/#import mapping is a crucial part of the feature. llvm-svn: 147447
* Fix PR11685 by implementing -ffast-math and its various friends in theChandler Carruth2012-01-021-18/+84
| | | | | | | | | | | | | | | | | | | | | | | | | Clang driver. This involves a bunch of silly option parsing code to try to carefully emulate GCC's options. Currently, this takes a conservative approach, and unless all of the unsafe optimizations are enabled, none of them are. The fine grained control doesn't seem particularly useful. If it ever becomes useful, we can add that to LLVM first, and then expose it here. This also fixes a few tiny bugs in the flag management around -fhonor-infinities and -fhonor-nans; the flags now form proper sets both for enabling and disabling, with the last flag winning. I've also implemented a moderately terrifying GCC feature where a language change is also provided by the '-ffast-math' flag by defining the __FAST_MATH__ preprocessor macro. This feature is tracked and serialized in the frontend but it isn't used yet. A subsequent patch will add the preprocessor macro and tests for it. I've manually tested that codegen appears to respect this, but I've not dug in enough to see if there is an easy way to test codegen options w/o relying on the particulars of LLVM's optimizations. llvm-svn: 147434
* Fix potential use after free.Benjamin Kramer2011-12-261-2/+1
| | | | llvm-svn: 147277
* fix for PR11634Anton Yartsev2011-12-231-0/+1
| | | | llvm-svn: 147224
* Last part of support for generating dwarf for assembly source files. This getsKevin Enderby2011-12-221-1/+26
| | | | | | the clang driver to enable this when assembling a .s file. rdar://9275556 llvm-svn: 147167
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+4
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146959
* Fix an abiguous-else warning from GCC. I have no idea why Clang doesn'tChandler Carruth2011-12-171-1/+2
| | | | | | have this warning. llvm-svn: 146839
* C++11 constexpr: Add note stacks containing backtraces if constant evaluationRichard Smith2011-12-161-0/+5
| | | | | | | | | | fails within a call to a constexpr function. Add -fconstexpr-backtrace-limit argument to driver and frontend, to control the maximum number of notes so produced (default 10). Fix APValue printing to be able to pretty-print all APValue types, and move the testing for this functionality from a unittest to a -verify test now that it's visible in clang's output. llvm-svn: 146749
* gcov-style profiling support for OpenBSD. Patch by Jonathan Gray.Eli Friedman2011-12-151-4/+14
| | | | llvm-svn: 146631
* Fix typos.Rafael Espindola2011-12-141-1/+1
| | | | llvm-svn: 146595
* Don't use the frame pointer on linux x86 and x86_64 if optimizing. ThisRafael Espindola2011-12-141-2/+19
| | | | | | | | matches gcc's behavior. Fixes PR8186. llvm-svn: 146586
* Fix "control may reach end of non-void function" warning.Nick Lewycky2011-12-121-2/+1
| | | | llvm-svn: 146448
* Hexagon backend supportTony Linthicum2011-12-121-4/+252
| | | | llvm-svn: 146413
* Driver: Handle -f{no-}honor-infinities, -f{no-}honor-nans, andDaniel Dunbar2011-12-091-0/+12
| | | | | | | | -ffinite-math-only. - No test case yet, I don't know how to construct a situation where this matters. llvm-svn: 146297
* Misc Minix-specific changes to clang:Eli Friedman2011-12-081-19/+17
| | | | | | | | | | | . move compiler-rt to a separate directory so the -L argument only includes compiler-rt (thanks joerg) . build all clang subdirs . switches the Minix platform to ELF . normalizes toolchain invocation Patch by Ben Gras. llvm-svn: 146206
* Minor cleanup. Avoid redundant getTriple() calls.Bob Wilson2011-12-081-2/+1
| | | | llvm-svn: 146122
* Driver/Linux: Fix the ASAN library path to match current compiler-rtDaniel Dunbar2011-12-071-5/+7
| | | | | | integration. llvm-svn: 146098
* [asan] Mac: do not link dynamic libs with the asan-rt, use -undefined ↵Kostya Serebryany2011-12-061-2/+14
| | | | | | dynamic_lookup for dynamic libs. Style fixes. Patch by glider@google.com llvm-svn: 145955
* Stack realignment is a tristate. Add -mno-stackrealign to turn off all stackNick Lewycky2011-12-061-2/+11
| | | | | | realignment, even with locals with alignment exceeding the ABI guarantee. llvm-svn: 145909
* Add -mstack-alignment=X and fix -mstackrealign handling now that theJoerg Sonnenberger2011-12-051-4/+5
| | | | | | backend options are gone. llvm-svn: 145868
* [asan] don't require libstdc++ for asan on linux. Mac fix will go separatelyKostya Serebryany2011-12-051-1/+0
| | | | llvm-svn: 145823
* Get the -march argument based on the target MIPS architecture or cpu and passAkira Hatanaka2011-11-301-7/+32
| | | | | | | | | it to GNU assembler. In addition, change function getMipsArchFromCPU() so that it can be reused in ConstructJob(). Patch by Simon Atanasyan. llvm-svn: 145509
* when -faddress-sanitizer is present, add required flags to the linker ↵Kostya Serebryany2011-11-301-0/+24
| | | | | | command (linux-only) llvm-svn: 145467
* Change processor names. Patch by Simon Atanasyan.Akira Hatanaka2011-11-291-4/+4
| | | | llvm-svn: 145453
* A couple driver fixes for PPC Linux. Patches by Michael Kostylev. ↵Eli Friedman2011-11-281-0/+8
| | | | | | PR11444/PR11445. llvm-svn: 145321
* Add driver arguments -ftemplate-depth=N and -fconstexpr-depth=N, with the sameRichard Smith2011-11-211-1/+7
| | | | | | | | | | | | | semantics and defaults as the corresponding g++ arguments. The historical g++ argument -ftemplate-depth-N is kept for compatibility, but modern g++ versions no longer document that option. Add -cc1 argument -fconstexpr-depth N to implement the corresponding functionality. The -ftemplate-depth=N part of this fixes PR9890. llvm-svn: 145045
* Change the linker emulation name for FreeBSD/PPC32.Roman Divacky2011-11-211-1/+1
| | | | | | Submitted by Andreas Tobler! llvm-svn: 145041
* Teach the driver about failure result files, which are compilationPeter Collingbourne2011-11-211-0/+2
| | | | | | | | output files that are valid regardless of whether the compilation succeeded or failed (but not if we crash). Add depfiles to the failure result file list. llvm-svn: 145018
* clang/Darwin: Use the compiler-rt provided profile library.Daniel Dunbar2011-11-171-9/+0
| | | | llvm-svn: 144869
* Add -f[no-]address-sanitizer flagKostya Serebryany2011-11-161-0/+4
| | | | llvm-svn: 144800
* Don't track depfiles as result files which need to be cleaned up on failure.Matt Beaumont-Gay2011-11-141-2/+0
| | | | | | | | | This is a partial revert of r143846. While cleaning up after a crash is probably a good idea, we were also deleting .d files if the compilation failed due to invalid input, which is not the desired behavior. The test is XFAIL'd until the cleanup code can be reworked to do the right thing. llvm-svn: 144590
* Add top-level driver option '--serialize-diagnostics' for serialize compiler ↵Ted Kremenek2011-11-111-0/+6
| | | | | | diagnostics to a file. llvm-svn: 144339
* Misc fixes for clang driver on Mips Linux. Patch by Simon Atanasyan.Eli Friedman2011-11-081-0/+11
| | | | llvm-svn: 144108
* Whitespace.Chad Rosier2011-11-071-1/+1
| | | | llvm-svn: 144002
* Tablegenify -g options.Chad Rosier2011-11-071-15/+0
| | | | llvm-svn: 144001
* Fix an unsafe use of Twine.Benjamin Kramer2011-11-071-5/+4
| | | | llvm-svn: 143962
* Fixing -g break caused by a dead reference to a temporary introduced in r143732.David Blaikie2011-11-061-1/+1
| | | | llvm-svn: 143856
* Add the depfile as a result file so that it is deleted if we crash,Peter Collingbourne2011-11-061-2/+5
| | | | | | and prevent the diagnostic preprocessor run from writing a depfile. llvm-svn: 143846
* Move the Linux header searching from the Frontend to the Driver. This isChandler Carruth2011-11-051-3/+3
| | | | | | | | | | | | | | | | the first (and diff-noisiest) step to making Linux header searching tremendously more principled and less brittle. Note that this step should have essentially no functional impact. We still search the exact same set of paths in the exact same order. The only change here is where the code implementing such a search lives. This has one obvious negative impact -- we now pass a ludicrous number of flags to the CC1 layer. That should go away as I re-base this logic on the logic to detect a GCC installation. I want to do this in two phases so the bots can tell me if this step alone breaks something, and so that the diffs of the refactoring make more sense. llvm-svn: 143822
* On Linux, enable the gold plugin if we are using LTO.Peter Collingbourne2011-11-051-1/+1
| | | | llvm-svn: 143778
* Enable -flimit-debug-info by default. Now, clang lazily emits debug info for ↵Devang Patel2011-11-041-0/+1
| | | | | | structs. Original behavior can be restored using -fno-limit-debug-info. llvm-svn: 143733
* [driver] Don't blindly accept all -g options.Chad Rosier2011-11-041-2/+18
| | | | | | rdar://10383444 llvm-svn: 143732
* Sink the strange '-stdlib=...' flag handling into the C++ includeChandler Carruth2011-11-041-4/+1
| | | | | | | | | | | | | | | | | | | | handling logic of the generic ToolChain. This flag, despite its name, has *nothing* to do with the GCC flag '-nostdlib' that relates (exclusively) to the linking behavior. It is a most unfortunate name in that regard... It is used to tell InitHeaderSearch.cpp *which* set of C++ standard library header search paths to use -- those for libstdc++ from GCC's installation, or those from a libc++ installation. As this logic is hoisted out of the Frontend, and into the Driver as part of this ToolChain, the generic method will be overridden for the platform, where it can implement this logic directly. As such, hiding the CC1 option passing in the generic space is a natural fit despite the odd naming. Also, expand on the comments to clarify whats going on, and tidy up the Tools.cpp code now that its simpler. llvm-svn: 143687
* Sink the handling of -fobjc-arc-cxxlib to live with the other -fobjc-arcChandler Carruth2011-11-041-4/+11
| | | | | | | | implementation in the driver. This cleans up the signature and semantics of the include flag adding component of the toolchain. Another step to ready it for holding all the InitHeaderSearch logic. llvm-svn: 143686
* Add a FIXME to cleanup the CPATH handling. It's currently burried withChandler Carruth2011-11-041-0/+2
| | | | | | | | the rest of the mess in InitHeaderSearch.cpp. We could hoist it into the driver profitably, removing more noise from the driver -> frontend communication. llvm-svn: 143685
* Add a system include management interface to the toolchain, and call itChandler Carruth2011-11-041-10/+13
| | | | | | | | | | | and the C++ include management routine from the proper place when forming preprocessor options in the driver. This is the first step to teaching the driver to manage all of the header search paths. Currently, these methods remain just stubs in the abstract toolchain. Subsequent patches will flesh them out with implementations for various toolchains based on the current code in InitHeaderSearch.cpp. llvm-svn: 143684
* Invoke the Darwin assembler with -g instead of --gdwarf2.Bob Wilson2011-11-021-1/+1
| | | | | | | | | The -g and --gdwarf2 options are currently synonyms to the Darwin assembler. But clang itself does not recognize --gdwarf2, so if we want to experiment with using clang, with its integrated assembler, to replace the default assembler, it is necessary to use -g. <rdar://problem/10349486> llvm-svn: 143533
* Add an option to emulate the strange Apple gcc behavior of #pragma pack.Eli Friedman2011-11-021-0/+4
| | | | | | <rdar://problem/10374763> llvm-svn: 143527
* Stop disabling integrated assembler with -static. <rdar://problem/10175391>Bob Wilson2011-10-301-9/+1
| | | | | | | The integrated assembler seems to be working pretty well for -static code now, so remove the hacks to disable it. llvm-svn: 143304
* Allow the -fno-operator-names option to be passed down to the restEric Christopher2011-10-251-0/+1
| | | | | | | | | of the compiler. Fixes PR10198 Patch by Brian Foley! llvm-svn: 142913
OpenPOWER on IntegriCloud