| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
did anything. The two big pieces of functionality it tried to provide
was to cache the ToolChain objects for each target, and to figure out
the exact target based on the flag set coming in to an invocation.
However, it had a lot of flaws even with those goals:
- Neither of these have anything to do with the host, or its info.
- The HostInfo class was setup as a full blown class *hierarchy* with
a separate implementation for each "host" OS. This required
dispatching just to create the objects in the first place.
- The hierarchy claimed to represent the host, when in fact it was
based on the target OS.
- Each leaf in the hierarchy was responsible for implementing the flag
processing and caching, resulting in a *lot* of copy-paste code and
quite a few bugs.
- The caching was consistently done based on architecture alone, even
though *any* aspect of the targeted triple might change the behavior
of the configured toolchain.
- Flag processing was already being done in the Driver proper,
separating the flag handling even more than it already is.
Instead of this, we can simply have the dispatch logic in the Driver
which previously created a HostInfo object create the ToolChain objects.
Adding caching in the Driver layer is a tiny amount of code. Finally,
pulling the flag processing into the Driver puts it where it belongs and
consolidates it in one location.
The result is that two functions, and maybe 100 lines of new code
replace over 10 classes and 800 lines of code. Woot.
This also paves the way to introduce more detailed ToolChain objects for
various OSes without threading through a new HostInfo type as well, and
the accompanying boiler plate. That, of course, was the yak I started to
shave that began this entire refactoring escapade. Wheee!
llvm-svn: 148950
|
|
|
|
|
|
|
|
|
|
| |
a HostInfo reference. Nothing about the HostInfo was used by any
toolchain except digging out the driver from it. This just makes that
a lot more direct. The change was accomplished entirely mechanically.
It's one step closer to removing the shim full of buggy copy/paste code
that is HostInfo.
llvm-svn: 148945
|
|
|
|
|
|
|
|
|
|
|
|
| |
inside the innards of the Driver implementation, and only ever
implemented to return 'true' for the Darwin OSes. Instead use a more
direct query on the target triple and a comment to document why the
target matters here.
If anyone is worried about this predicate getting wider use or improper
use, I can make it a local or private predicate in the driver.
llvm-svn: 148797
|
|
|
|
| |
llvm-svn: 146413
|
|
|
|
| |
llvm-svn: 138200
|
|
|
|
|
|
|
|
|
|
| |
Preserve the original triple in the NetBSD toolchain when using -m32 or
-m64 and the resulting effective target is different from the triple it
started with. This allows -m32 to use the same assembler/linking in
cross-compiling mode and avoids confusion about passing down target
specific flags in that case like --32.
llvm-svn: 131404
|
|
|
|
| |
llvm-svn: 127896
|
|
|
|
| |
llvm-svn: 124736
|
|
|
|
| |
llvm-svn: 120554
|
|
|
|
|
|
| |
now that eprintf symbol issue is resolved.
llvm-svn: 114166
|
|
|
|
|
|
| |
toolchain.", while I investigate the totally non-surprising ensuing breakage.
llvm-svn: 114164
|
|
|
|
| |
llvm-svn: 114149
|
|
|
|
|
|
| |
ready yet.
llvm-svn: 112138
|
|
|
|
|
|
| |
of always using the new toolchain.
llvm-svn: 112125
|
|
|
|
|
|
| |
way to see what will break! :)
llvm-svn: 111840
|
|
|
|
| |
llvm-svn: 111748
|
|
|
|
|
|
|
| |
cases we care about.
- This is eventually going to be unified outside the host specific code.
llvm-svn: 110693
|
|
|
|
|
|
| |
chain construction.
llvm-svn: 110028
|
|
|
|
| |
llvm-svn: 110026
|
|
|
|
|
|
| |
chain construction.
llvm-svn: 110025
|
|
|
|
|
|
| |
ToolChain::LookupTypeForExtension.
llvm-svn: 110024
|
|
|
|
|
|
| |
from PR7583
llvm-svn: 107788
|
|
|
|
|
|
|
| |
override to enable use of the DarwinClang tool chain on all platforms (not just
ARM).
llvm-svn: 99660
|
|
|
|
| |
llvm-svn: 97930
|
|
|
|
| |
llvm-svn: 97746
|
|
|
|
|
|
| |
just indicating whether the default target should be iPhoneOS.
llvm-svn: 94638
|
|
|
|
|
|
|
| |
this should just be part of the tool chain itself once we have eliminated
argument translation.
llvm-svn: 94635
|
|
|
|
| |
llvm-svn: 89305
|
|
|
|
| |
llvm-svn: 83451
|
|
|
|
| |
llvm-svn: 83443
|
|
|
|
| |
llvm-svn: 82213
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
| |
- -2+1 FIXMEs.
llvm-svn: 81282
|
|
|
|
|
|
| |
the default tool chain when binding the default architecture.
llvm-svn: 81279
|
|
|
|
| |
llvm-svn: 81278
|
|
|
|
| |
llvm-svn: 81019
|
|
|
|
| |
llvm-svn: 81016
|
|
|
|
| |
llvm-svn: 79713
|
|
|
|
|
|
| |
- Patch by Jonathan Gray!
llvm-svn: 74453
|
|
|
|
| |
llvm-svn: 73556
|
|
|
|
|
|
| |
tool chain.
llvm-svn: 73555
|
|
|
|
|
|
| |
I'll look into cleaning this up a bit as a followup.
llvm-svn: 72794
|
|
|
|
| |
llvm-svn: 72538
|
|
|
|
|
|
| |
barely enough to get the given usage of -print-file-name working).
llvm-svn: 72412
|
|
|
|
| |
llvm-svn: 72333
|
|
|
|
|
|
|
| |
- This commit has some messy stuff in it to extend string lifetimes, but that
will go away once we switch to using the enum'd Triple interfaces.
llvm-svn: 72243
|
|
|
|
|
|
| |
- Patch by Alex Hornung!
llvm-svn: 70635
|
|
|
|
|
|
|
|
|
| |
- PR3922
- I have a clean solution for this in flight, but it may take a while
to come to fruition so we'll take a quick fix for now.
llvm-svn: 68241
|
|
|
|
| |
llvm-svn: 68069
|
|
|
|
|
|
| |
- Patch by Ed Schouten!
llvm-svn: 68061
|