aboutsummaryrefslogtreecommitdiff
path: root/lib/Driver
AgeCommit message (Collapse)Author
2009-03-25Driver: Fix typo in JoinedAndSeparateArg::render.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67677 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-25Driver: Prep for tool chain specific argument translation.Daniel Dunbar
- Lift ArgList to a base class for InputArgList and DerivedArgList. - This is not a great decomposition, but it does embed the translation into the type system, and keep things efficient for tool chains that don't want to do any translation. - No intended functionality change. Eventually I hope to get rid of tool chain specific translation and have each tool do the right thing, but for now this is the easiest way to match gcc precisely (which is good for testing). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67676 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-25gcc 4.3 finds my use of ^ suspicious.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67673 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-25Turn on -analyzer-eagerly-assume by default when using 'clang-cc' to performTed Kremenek
static analysis. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67665 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Handle -flto, -O4, and tweak -emit-llvm to match llvm-gcc.Daniel Dunbar
- -emit-llvm no longer changes what compilation steps are done. - -emit-llvm and -emit-llvm -S write output files with .o and .s suffixes, respectively. - <rdar://problem/6714125> clang-driver should support -O4 and -flto, like llvm-gcc git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67645 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Warn when 'clang' is used to compile a source file we couldDaniel Dunbar
conceivably handle, but are defaulting to not using clang for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67641 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Change default use of "clang" compiler.Daniel Dunbar
- Don't default to using clang for C++ (use -ccc-clang-cxx to override). - Default to only using clang on i386 and x86_64 (use -ccc-clang-archs "" to override). - <rdar://problem/6712350> [driver] clang should not be used on powerpc by default - <rdar://problem/6705767> driver should default to -ccc-no-clang-cxx I plan to add a warning that we are not using the clang compiler for the given compilation so that users do not think clang is being used in situations it isn't. This change is motivated by the desire to be able to drop clang into a build and have things "just work", even if it happens to get used to compile C++ code or code for an architecture we don't support yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Move ToolChain::ShouldUseClangCompiler toDaniel Dunbar
Driver::ShouldUseClangCompiler. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67639 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Translate -fverbose-asm for LLVM backend.Daniel Dunbar
- <rdar://problem/6715707> driver should translate -fverbose-asm into -asm-verbose git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Really fix cmake style builds.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Result files shouldn't be removed on failure when -save-tempsDaniel Dunbar
is specified. - No easy way to make a safe test case for this (given where the driver is supposed to put temp files). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67632 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: ArgList::getLastArg was in fact returning the first matching arg.Daniel Dunbar
- <rdar://problem/6715818> clang doesn't honor gcc semantic that last -O optimization option wins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67628 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: Forward -MMD (not -MM) to clang-cc; this got lost inDaniel Dunbar
translation, the former we support, the later we don't (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Install clang-cc to libexec/clang-cc (instead of bin/clang-cc).Daniel Dunbar
- Updated ccc & driver to look in libexec/ for tools. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Rename clang to clang-cc.Daniel Dunbar
Tests and drivers updated, still need to shuffle dirs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Driver: lipo wasn't being called correctly (translation failure fromDaniel Dunbar
ccc due to the different way we handle output arguments). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67583 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-23Driver: Make argument parsing fast.Daniel Dunbar
On a synthetic command line consisting of almost all defined options, this drops wall time from .00494 to .00336 and user time from .00258 to .00105. On the same benchmark, clang-driver is about 15% faster than the primary gcc driver and almost twice as fast as the gcc driver driver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-23Driver: Fix off by one in computation of first searchable option.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67552 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-23Driver: Add two special groups of "whitelisted" options which we knowDaniel Dunbar
clang doesn't support, and don't want to warn are unused. Eventually these should disappear. Here is a more readable list than is in the diff: W options: -Wall, -Wcast-align, -Wchar-align, -Wchar-subscripts, -Werror, -Wextra, -Winline, -Wint-to-pointer-cast, -Wmissing-braces, -Wmost, -Wnested-externs, -Wno-format-y2k, -Wno-four-char-constants, -Wno-missing-field-initializers, -Wno-trigraphs, -Wno-unknown-pragmas, -Wno-unused-parameter, -Wparentheses, -Wpointer-arith, -Wpointer-to-int-cast, -Wreturn-type, -Wshorten-64-to-32, -Wswitch, -Wunused-function, -Wunused-label, -Wunused-value, -Wunused-variable, -Wwrite-strings. f options: -fasm-blocks, -fmessage-length=. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-23Driver: Check that options are ordered properly (outside ofDaniel Dunbar
Release-Asserts mode). Also, avoid searching through option groups (which will never match). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-23Driver: Setup file and program search paths in tool chains.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-22Driver: Drop code for checking bounds in SeparateArg::render, thisDaniel Dunbar
situation should never occur now that arguments are parsed correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-22Driver: Implement 'missing argument' error.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67490 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-22fix PR3859: crash with 'cc -V'Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-21Driver: Give Compilation::Execute total control over the Driver resultDaniel Dunbar
code; and don't return an error code when -### is present, even if errors occur. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67425 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20ccc/Driver: .s defaults to 'assembler-with-cpp' on Darwin.Daniel Dunbar
- <rdar://problem/6669441> ccc doesn't handle assembler-with-cpp semantics correctly (but clang supports it) - This is sad, because it requires a fairly useless target hook. C'est la vie. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67418 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Switch to using -include-pth.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Parse Darwin version out of target triple.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Add and use darwin::Assemble tool.Daniel Dunbar
- Based on patch from Pieter de Bie; thanks! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Add two option overload for AddAllArgValues.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67377 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Add Arg::getAsString and use when dumping arguments toDaniel Dunbar
diagnostics. - This ensures that the whole argument and values are printed, instead of just the option name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67366 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20strictly evaluate SVN_REVISION so that svnversion is run once instead of 4 ↵Chris Lattner
times. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67365 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Implement -print-search-dirs.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Sketch Darwin tool chains.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67356 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Add darwin::Lipo tool.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Move tool chain implementations into ToolChains.cpp.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67350 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20Driver: Temporary hack to allow -ccc-print-bindings to work (forDaniel Dunbar
testing) even with -pipe on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67348 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver/clang: -mattr strings were not comma separated.Daniel Dunbar
- Apologies for commits w/o test cases; they are coming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67310 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Compilation::Execute wasn't returning result code correctly.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67296 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Executing piped jobs with a single command is easy.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67295 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Claim unused input arguments when emitting "input file unused"Daniel Dunbar
diagnostic (to suppress more generic unused warning). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Claim -arch options when pipelining, and claim arguments thatDaniel Dunbar
are forwarded to GCC. - The later is unfortunate, as it prevents us from generally warning about anything interesting on platforms that use a generic toolchain. However, we can't do much better without significantly complicating things, and generally we should have proper tool chain definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67293 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Handle "linker input" arguments.Daniel Dunbar
- Make InputInfo a variant of filename, pipe, input argument, nothing. - Leave a FIXME in InputInfo that this should be revisited. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67292 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19Driver: Add Arg::renderAsInput; this is a messy area and something IDaniel Dunbar
was hoping to clean up in the rewrite, but I don't see it yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67291 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Driver: Fix bug in translating -O to clang, add clang-translation testDaniel Dunbar
case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67257 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Driver: Resolve program path for "cp" (used as part of transparent gccDaniel Dunbar
PCH support). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67256 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Driver: Forcibly disable pipe support until we can execute them, theDaniel Dunbar
driver is functional without them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Driver: Delete the temporary files llvm::sys::Path::makeUniqueDaniel Dunbar
sometimes leaves around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67253 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Make -j8 safe.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-18Driver: Execute jobs; no pipe support yet.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67250 91177308-0d34-0410-b5e6-96231b3b80d8