| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 140478
|
| |
|
|
| |
llvm-svn: 137896
|
| |
|
|
| |
llvm-svn: 137539
|
| |
|
|
|
|
| |
Thanks to David Blaikie for pointing this out.
llvm-svn: 137051
|
| |
|
|
|
|
|
|
|
| |
information including the fully preprocessed source file(s) and command line
arguments. The developer is asked to attach this diagnostic information to a
bug report.
rdar://9575623
llvm-svn: 136702
|
| |
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
| |
|
|
| |
llvm-svn: 135621
|
| |
|
|
|
|
|
|
|
| |
information
including the fully preprocessed source file(s) and command line arguments. The
developer is asked to attach this diagnostic information to a bug report.
llvm-svn: 135614
|
| |
|
|
| |
llvm-svn: 134418
|
| |
|
|
|
|
|
| |
open them in fundamental-mode instead of c++-mode.
Also twiddle whitespace for consistency in ToolChains.cpp.
llvm-svn: 122646
|
| |
|
|
|
|
|
|
| |
agressive. Now we
don't warn if an argument is not used because it is shadowed by a subsequent argument.
llvm-svn: 122281
|
| |
|
|
|
|
| |
clarify that they are not modified, and to allow for string literals as arguments.
llvm-svn: 116200
|
| |
|
|
|
|
| |
are explicitly given.
llvm-svn: 108297
|
| |
|
|
| |
llvm-svn: 105958
|
| |
|
|
|
|
| |
are going to need this to handle things like -Xassembler, -Xpreprocessor, and -Xlinker which we might have to introspect.
llvm-svn: 105842
|
| |
|
|
| |
llvm-svn: 105841
|
| |
|
|
|
|
| |
over Arg*s.
llvm-svn: 105838
|
| |
|
|
| |
llvm-svn: 105762
|
| |
|
|
|
|
| |
deriving them from the Arg type.
llvm-svn: 105760
|
| |
|
|
|
|
| |
they can be independent of the exact option that created them.
llvm-svn: 105739
|
| |
|
|
| |
llvm-svn: 104432
|
| |
|
|
| |
llvm-svn: 104371
|
| |
|
|
| |
llvm-svn: 104237
|
| |
|
|
| |
llvm-svn: 98262
|
| |
|
|
| |
llvm-svn: 98174
|
| |
|
|
| |
llvm-svn: 89860
|
| |
|
|
| |
llvm-svn: 89310
|
| |
|
|
|
|
|
|
| |
of taking a Claim argument.
- Most driver code always claims, and bool arguments don't play nice with the overloads.
llvm-svn: 89308
|
| |
|
|
| |
llvm-svn: 81385
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
|
|
|
|
| |
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.
llvm-svn: 74405
|
| |
|
|
|
|
| |
should be joined or separate.
llvm-svn: 70101
|
| |
|
|
| |
llvm-svn: 68549
|
| |
|
|
|
|
| |
need to do anything special to support this.
llvm-svn: 68403
|
| |
|
|
|
|
|
| |
- <rdar://problem/6726511> [driver] clang does not have -msoft-float
hooked up.
llvm-svn: 68044
|
| |
|
|
|
|
|
| |
we can properly claim arguments, even if they have been translated by
the tool chain.
llvm-svn: 68020
|
| |
|
|
|
|
|
| |
tools with the name of the option replace, and arguments rendered
separately.
llvm-svn: 67753
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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).
llvm-svn: 67676
|
| |
|
|
|
|
|
| |
- <rdar://problem/6715818> clang doesn't honor gcc semantic that last
-O optimization option wins.
llvm-svn: 67628
|
| |
|
|
| |
llvm-svn: 67490
|
| |
|
|
| |
llvm-svn: 67377
|
| |
|
|
|
|
|
|
| |
- Support things like telling which -ffoo -fno-foo option won, and
forwarding all arguments matching a certain set of options to the
tool.
llvm-svn: 67189
|
| |
|
|
| |
llvm-svn: 67101
|
| |
|
|
| |
llvm-svn: 67090
|
| |
|
|
|
|
|
|
|
| |
- Slightly strange, but the idea is that the ArgList data structure
is primarily a list of arguments; we want to allow clients to still
add argument strings to an ArgList to avoid worrying about string
lifetimes (or unnecessary string copying).
llvm-svn: 67086
|
| |
|
|
|
|
| |
arguments if they exist.
llvm-svn: 67014
|
| |
|
|
| |
llvm-svn: 66908
|
| |
|
|
| |
llvm-svn: 66805
|
| |
|
|
| |
llvm-svn: 66794
|