Commit Graph

739 Commits

Author SHA1 Message Date
Daniel Dunbar 3648ba756f Driver: Support -Wp,-MMD,FOO, which I found an instance of. :(
llvm-svn: 106039
2010-06-15 20:30:18 +00:00
Douglas Gregor 0832963acd Implement -fvisibility-inlines-hidden. <rdar://problem/7819834>
llvm-svn: 106003
2010-06-15 17:05:35 +00:00
Daniel Dunbar e9c5e2cc71 Driver/FreeBSD: Add libexec to program search paths, to workaround some build
problem; patch by Ed Schouten.

llvm-svn: 105996
2010-06-15 15:03:31 +00:00
Daniel Dunbar 5a9d1835be Driver: Fix PR4062 by dissecting one particular -Wp, form.
llvm-svn: 105966
2010-06-14 21:37:09 +00:00
Daniel Dunbar fb3d747fc6 Driver: Dissect -Wl, and -Xlinker arguments to remove --no-demangle, which was a
collect2 option that is passed by some projects (notably WebKit).

llvm-svn: 105964
2010-06-14 21:23:12 +00:00
Daniel Dunbar 3f1a1ffd95 Driver: Eliminate uses of Arg::getIndex.
Also, fix a memory leak.

llvm-svn: 105963
2010-06-14 21:23:08 +00:00
Daniel Dunbar 5714fc5e8b Driver: Fix refacto in DerivedArgList::MakeSeparateArg.
llvm-svn: 105958
2010-06-14 20:20:44 +00:00
Daniel Dunbar 2d6e9ee033 Driver: Add DerivedArgList::AddFOOArg helper functions, and switch to using them.
llvm-svn: 105957
2010-06-14 20:20:41 +00:00
Daniel Dunbar af8decbde0 Driver: Switch Compilation to return the translated arguments by default.
llvm-svn: 105844
2010-06-11 22:43:38 +00:00
Daniel Dunbar 775d406043 Driver: Add an explicit argument translation phase to the driver itself. We are going to need this to handle things like -Xassembler, -Xpreprocessor, and -Xlinker which we might have to introspect.
llvm-svn: 105842
2010-06-11 22:00:26 +00:00
Daniel Dunbar 5c5d30b03a Driver: Get rid of the proxy support in DerivedArgList.
llvm-svn: 105841
2010-06-11 22:00:22 +00:00
Daniel Dunbar 18974bdc68 Fix a couple comments.
llvm-svn: 105840
2010-06-11 22:00:19 +00:00
Daniel Dunbar 7c9e4306af Driver: Change OptTable::ParseArg to take any ArgList.
llvm-svn: 105839
2010-06-11 22:00:17 +00:00
Daniel Dunbar a442fd5da6 Driver: Fix arg_iterator typing to reflect that it is really an iterator over Arg*s.
llvm-svn: 105838
2010-06-11 22:00:13 +00:00
Jeffrey Yasskin 2b99c6fc4f Add an option -fshow-overloads=best|all to limit the number of overload
candidates printed.  We default to 'all'.  At the moment, 'best' prints only
the first 4 overloads, but we'll improve that over time.

llvm-svn: 105815
2010-06-11 05:57:47 +00:00
Daniel Dunbar bfe71f2416 Driver: Change Option parsing to always create arguments referring to unaliased
options.
 - This matches the intent of the .td files, and will simplify alias handling.
 - PR7321.

llvm-svn: 105763
2010-06-09 22:44:34 +00:00
Daniel Dunbar 35cbfeba8f Driver: Eliminate Arg subclasses, which are now unnecessary.
llvm-svn: 105762
2010-06-09 22:31:08 +00:00
Daniel Dunbar 8b77f73314 Driver: Keep the rendering style in the option, instead of as part of the Arg.
llvm-svn: 105761
2010-06-09 22:31:04 +00:00
Daniel Dunbar 8f1ebabaf7 Driver: Change Arg to just hold the values directly, instead of implicitly
deriving them from the Arg type.

llvm-svn: 105760
2010-06-09 22:31:00 +00:00
Daniel Dunbar c656d3e111 Revert "Driver: Change Option parsing to always create arguments referring to
unaliased", this isn't quite right yet.

llvm-svn: 105747
2010-06-09 19:27:07 +00:00
Daniel Dunbar aea0620b89 Driver: Change Option parsing to always create arguments referring to unaliased
options.
 - This matches the intent of the .td files, and will simplify alias handling.
 - PR7321.

llvm-svn: 105744
2010-06-09 19:19:01 +00:00
Daniel Dunbar 26a95c6717 Driver: Add an explicit offset to JoinedArg and JoinedAndSeparateArg, so that
they can be independent of the exact option that created them.

llvm-svn: 105739
2010-06-09 18:49:38 +00:00
Daniel Dunbar d96e279f02 Driver: Change Arg::render methods to use option name instead of string where
possible.

llvm-svn: 105738
2010-06-09 18:49:31 +00:00
Daniel Dunbar ee6b692551 Makefiles: Set Clang CPP compiler flags in a single location, instead of scattered throughout the project Makefiles.
llvm-svn: 105638
2010-06-08 20:44:43 +00:00
Daniel Dunbar e6c1daa8fd Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
- This eliminates most dependencies on how Clang is installed relative to LLVM.

llvm-svn: 105637
2010-06-08 20:34:18 +00:00
Jeffrey Yasskin 460aa54d0a Implement -fcaret-diagnostics to undo -fno-caret-diagnostics.
llvm-svn: 105597
2010-06-08 04:56:20 +00:00
Daniel Dunbar 24e52992c0 Driver: Support invoking Clang on .ll or .bc inputs.
- We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o').

It is now possible to do something like:
  $ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ...
  $ clang -c t.ll -o t.o ... assorted other compile flags ...
and expect that the output will be almost* identical to:
  $ clang -c t.c -o t.o ... assorted other compile flags ...
because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend.

*: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally.

llvm-svn: 105584
2010-06-07 23:28:45 +00:00
Daniel Dunbar 7f3d95054b Driver: Change -dwarf-debug-flags option to pass the original command line
arguments after translation, instead of the -cc1 level arguments.

llvm-svn: 105476
2010-06-04 18:47:06 +00:00
Daniel Dunbar 6beaf5110f Driver/Darwin: Model dsymutil properly, as a separate action/tool kind which is
added as the last output step, instead of just hacking it into the link step.
 - Among other things, this fixes dSYM generation when using multiple -arch options.

llvm-svn: 105475
2010-06-04 18:28:41 +00:00
Daniel Dunbar 8829962030 Driver: Add an explicit dsymutil action.
llvm-svn: 105474
2010-06-04 18:28:36 +00:00
Daniel Dunbar 99ca8b71cd Driver: Spell -relax-all correctly when calling the cc1as tool.
llvm-svn: 104955
2010-05-28 16:43:21 +00:00
Daniel Dunbar 9296f63ff0 Driver: Update -O -> -O2 replacement for addition of -O0 option.
llvm-svn: 104823
2010-05-27 06:51:08 +00:00
Daniel Dunbar 06e2cc3f86 Driver: Add support for -m[no-]relax-all, and make it the default at -O0.
llvm-svn: 104815
2010-05-27 06:18:05 +00:00
Daniel Dunbar bd3b1d40da Attempt to make MSVC happy.
llvm-svn: 104432
2010-05-22 05:05:12 +00:00
Chandler Carruth e039148801 Daniel re-educated me about what Alias does and does not do. Turn that off for
'-fasm' and explicitly map from that flag to -fgnu-keywords in the driver. Turn
off the driver in the lexer test for this madness and add a test to the driver
that the translation actually works.

llvm-svn: 104428
2010-05-22 02:21:53 +00:00
Daniel Dunbar 07494795e5 Driver: When printing a "command was signalled" type of diagnostic, use the
short name of the tool in use, instead of the name of the action that created
the command. The practical impact is we now get:
  clang: error: clang frontend command failed due to signal 6 (use -v to see invocation)
instead of:
  clang: error: assembler command failed due to signal 6 (use -v to see invocation)
when clang crashes on a job that uses the integrated assembler.

llvm-svn: 104417
2010-05-22 00:37:20 +00:00
Daniel Dunbar 1cb532ca28 Driver: Add Tool::ShortName, intended to be a human readable name for the tool.
llvm-svn: 104416
2010-05-22 00:37:18 +00:00
Benjamin Kramer 71b0bb9922 Try to fix MSVC build.
llvm-svn: 104371
2010-05-21 19:58:44 +00:00
Daniel Dunbar 6232d347bc Driver: Switch to using the integrated assembler for standalone assembly jobs
(or -save-temps), when the integrated assembler is enabled.

llvm-svn: 104282
2010-05-20 21:48:38 +00:00
Daniel Dunbar 4f5e79c67d Driver: Add a tool definition for the Clang integrated assembler.
llvm-svn: 104280
2010-05-20 21:30:13 +00:00
Daniel Dunbar 2fcaa549a8 Driver/MC: Add 'clang -cc1as' integrated assembler tool, currently accepts approximately the same interface as 'llvm-mc'.
llvm-svn: 104239
2010-05-20 17:49:16 +00:00
Daniel Dunbar 3730048129 Driver: Move some argument lookup utilities into driver::ArgList.
llvm-svn: 104237
2010-05-20 16:54:55 +00:00
Ted Kremenek bd7b3ccbf8 Expose -fobjc-nonfragile-abi2 as a top-level clang driver option. Fixes <rdar://problem/8007063>.
llvm-svn: 104205
2010-05-20 02:12:37 +00:00
Daniel Dunbar 0d8ca9e91a Driver: Make -fverbose-asm the default for platforms where the integrated
assembler defaults to on.

llvm-svn: 103825
2010-05-14 22:00:22 +00:00
Daniel Dunbar f9ff35010c Driver: Enable -integrated-as by default, at least for Darwin/x86 without -static.
- How else will we figure out what is broken, eh?

llvm-svn: 103759
2010-05-14 02:03:00 +00:00
Daniel Dunbar fcc49a8f1f Driver/Darwin/i386: Don't allow compiling C++ with -fapple-kext, we don't support the necessary ABI yet.
llvm-svn: 103632
2010-05-12 18:19:58 +00:00
Daniel Dunbar 4083d044e1 Simplify.
llvm-svn: 103631
2010-05-12 18:19:55 +00:00
Duncan Sands af260b9945 VISIBILITY_HIDDEN was renamed LLVM_LIBRARY_VISIBILITY.
llvm-svn: 103494
2010-05-11 20:16:05 +00:00
Rafael Espindola 66bfb27545 Handle -ffunction-sections and -fdata-sections in the driver.
llvm-svn: 103197
2010-05-06 21:06:04 +00:00
Chandler Carruth a77a72734c Remove a dependency on Frontend headers in the Driver library. Also saves
building and passing arguments to cc1 layer when setting values to their
defaults.

llvm-svn: 103162
2010-05-06 04:55:18 +00:00