History log of /external/llvm/tools/lto/LTOCodeGenerator.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
235089bdaefabcef9e9cde28eb3b0d8937b12a0d 07-Aug-2013 Shuxin Yang <shuxin.llvm@gmail.com> Change public functions of LTOCodeGenerator from ret-false-on-succ to ret-true-on-succ.

As of this revision, all functions of LTOCodeGenerator are consistent in
ret-true-on-succ.

Tested on multiple OSes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0880939a590abab124c8520aaa4ac5a46f1937c6 06-Aug-2013 Shuxin Yang <shuxin.llvm@gmail.com> Change private functions of LTOCodeGenerator from ret-false-on-succ to ret-true-on-succ.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
01d7203ef8316fdd71c3cec59f8e68fb869e0dbf 06-Aug-2013 Tom Stellard <thomas.stellard@amd.com> Factor FlattenCFG out from SimplifyCFG

Patch by: Mei Ye

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
57e6b2d1f3de0bf459e96f7038e692d624f7e580 27-Jul-2013 Tom Stellard <thomas.stellard@amd.com> SimplifyCFG: Use parallel-and and parallel-or mode to consolidate branch conditions

Merge consecutive if-regions if they contain identical statements.
Both transformations reduce number of branches. The transformation
is guarded by a target-hook, and is currently enabled only for +R600,
but the correctness has been tested on X86 target using a variety of
CPU benchmarks.

Patch by: Mei Ye

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c679d6b461932966eb99b218845fd69df2257e82 23-Jul-2013 Shuxin Yang <shuxin.llvm@gmail.com> remove unnecessary space

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
8945f753edf14b998fe57fd0a8b675b61aeb0164 22-Jul-2013 Shuxin Yang <shuxin.llvm@gmail.com> Initialize/Register LTO passes to enable flags like -print-after=<lto-pass>

There already have two "dead" functions, initialize{IPO|IPA}, defined for
similar purpose. I decide not to call these two functions for two reasons:
o. they don't cover all LTO passes (which will soon be separated into IPO
and post-IPO passes)
o. We have not yet figured out the right passes and the ordering for IPO
and post-IPO stages, meaning this change is only for the time being.

Since LTO passes are registered, we are now able to print IR before and
after particular point.

For OSX users:
--------------
"...-Wl,-mllvm -Wl,-print-after=<pass-name>" will print IR after the
specified pass.

For Other UNIX with GNU gold linker:
------------------------------------
"-Wl,-plugin-opt=-print-after=<pass-name>" should work.
(NOTE: no need for "-Wl,-mllvm")

Strip "-Wl," if flags are fed directly to linker instead of clang/clang++.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c1b49b56d4132efa2e06deb8f23508d0de4c8800 16-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a wrapper for open.

This centralizes the handling of O_BINARY and opens the way for hiding more
differences (like how open behaves with directories).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c6fbaa97016beb90a7508dd6442c83565c27c241 09-Jul-2013 Bill Wendling <isanbard@gmail.com> Don't run internalize if we're outputing bit-code and not an object file.

The problem with running internalize before we're ready to output an object file
is that it may change a 'weak' symbol into an internal one, but that symbol
could be needed by an external object file --- e.g. with arclite.

<rdar://problem/14334895>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1276b396130a0cdbbb8e6c05a6e43123df18ed60 05-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> Use sys::fs::createTemporaryFile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
99cb622041a0839c7dfcf0263c5102a305a0fdb5 18-Jun-2013 Bill Wendling <isanbard@gmail.com> Use pointers to the MCAsmInfo and MCRegInfo.

Someone may want to do something crazy, like replace these objects if they
change or something.

No functionality change intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
68c0efac35021516bf46b2793e56e0d9d804c9e8 17-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use PathV1.h in LTOCodeGenerator.cpp

This patch also adds a simpler version of sys::fs::remove and a tool_output_file
constructor for when we already have an open file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b7e2188f7fb9a1c1cb6dbd32b206e44b11b4a157 13-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't use PathV1.h in Signals.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
cc5a882c96af6e36bc029b7ff69f62f94e2d041d 29-May-2013 Bill Wendling <isanbard@gmail.com> Don't reach into the middle of TargetMachine and cache one of its ivars.
Not only does this break encapsulation, it's gross.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
8c18a6fe370f7f1fb3208a12434e862fc5e9b2e6 23-May-2013 Bill Wendling <isanbard@gmail.com> The command line options need to be processed before we create the TargetMachine.

Move the processing of the command line options to right before we create the
TargetMachine instead of after.
<rdar://problem/13468287>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
fca88631650af3e862f7df012f34d9c724a9ed7c 04-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Last batch of cleanups to Linker.h.

Update comments, fix * placement, fix method names that are not
used in clang, add a linkInModule that takes a Mode and put it
in Linker.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
105193772d84057493968310c1d1c6dd0f1ae735 04-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't construct or delete a module on the Linker.

The linker is now responsible only for actually linking the modules, it
is up to the clients to create and destroy them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ae8f1f3fde1d9618bfcf8f629ffd68c26015f921 04-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove unused members and constructor arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d4ee3920c928f51e4c4d70b4fae97f4d99be2583 24-Apr-2013 Rafael Espindola <rafael.espindola@gmail.com> Don't produce an empty llvm.compiler.used in LTO.

LTO was always creating an empty llvm.compiler.used. With this patch we
now first check if there is anything to be added first.

Unfortunately, there is no good way to test libLTO in isolation as it needs gold
or ld64, but there are bots doing LTO builds that found this problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d696544eacbab22277924bc5f5acd85f615f31ea 30-Mar-2013 Bob Wilson <bob.wilson@apple.com> Run the ObjCARCContract pass for LTO. <rdar://problem/13538084>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a991b254f71173f3911be3b313b5304dd9b3b862 13-Mar-2013 Lang Hames <lhames@gmail.com> Make LTO codegen use a PassManager, rather than a FunctionPassManager, for the
codegen passes. This brings it in to line with clang and llc's codegen setup,
and tidies up the code.

If I understand correctly, adding ModulePasses to a FunctionPassManager is
bogus. It only seems to explode if an added ModulePass depends on a
FunctionPass though, which might be why this code has survived so long.

Fixes <rdar://problem/13386816>.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
6303b661b390ef37185f7e5f5cdd352287caf1fc 28-Feb-2013 Bill Wendling <isanbard@gmail.com> Add the -disable-opt option to LTO. This adds:

- Consistency with opt (which supports the same option with the same meaning and
description).
- Debugging gold plugin-based linking without optimizations getting in the way.
- Debugging programs linked with the gold plugin while preserving the original
debug info.
- Fine-grained control over LTO passes using the gold plugin in combination with
opt (or clang/dragonegg).

Patch by Cristiano Giuffrida!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1c1ff3b7ff3b473acd1b92970ceeed3c62fbee5a 15-Jan-2013 Nadav Rotem <nrotem@apple.com> LTO: Also init TTI for codegen passes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
aeef83c6afa1e18d1cf9d359cc678ca0ad556175 07-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Switch TargetTransformInfo from an immutable analysis pass that requires
a TargetMachine to construct (and thus isn't always available), to an
analysis group that supports layered implementations much like
AliasAnalysis does. This is a pretty massive change, with a few parts
that I was unable to easily separate (sorry), so I'll walk through it.

The first step of this conversion was to make TargetTransformInfo an
analysis group, and to sink the nonce implementations in
ScalarTargetTransformInfo and VectorTargetTranformInfo into
a NoTargetTransformInfo pass. This allows other passes to add a hard
requirement on TTI, and assume they will always get at least on
implementation.

The TargetTransformInfo analysis group leverages the delegation chaining
trick that AliasAnalysis uses, where the base class for the analysis
group delegates to the previous analysis *pass*, allowing all but tho
NoFoo analysis passes to only implement the parts of the interfaces they
support. It also introduces a new trick where each pass in the group
retains a pointer to the top-most pass that has been initialized. This
allows passes to implement one API in terms of another API and benefit
when some other pass above them in the stack has more precise results
for the second API.

The second step of this conversion is to create a pass that implements
the TargetTransformInfo analysis using the target-independent
abstractions in the code generator. This replaces the
ScalarTargetTransformImpl and VectorTargetTransformImpl classes in
lib/Target with a single pass in lib/CodeGen called
BasicTargetTransformInfo. This class actually provides most of the TTI
functionality, basing it upon the TargetLowering abstraction and other
information in the target independent code generator.

The third step of the conversion adds support to all TargetMachines to
register custom analysis passes. This allows building those passes with
access to TargetLowering or other target-specific classes, and it also
allows each target to customize the set of analysis passes desired in
the pass manager. The baseline LLVMTargetMachine implements this
interface to add the BasicTTI pass to the pass manager, and all of the
tools that want to support target-aware TTI passes call this routine on
whatever target machine they end up with to add the appropriate passes.

The fourth step of the conversion created target-specific TTI analysis
passes for the X86 and ARM backends. These passes contain the custom
logic that was previously in their extensions of the
ScalarTargetTransformInfo and VectorTargetTransformInfo interfaces.
I separated them into their own file, as now all of the interface bits
are private and they just expose a function to create the pass itself.
Then I extended these target machines to set up a custom set of analysis
passes, first adding BasicTTI as a fallback, and then adding their
customized TTI implementations.

The fourth step required logic that was shared between the target
independent layer and the specific targets to move to a different
interface, as they no longer derive from each other. As a consequence,
a helper functions were added to TargetLowering representing the common
logic needed both in the target implementation and the codegen
implementation of the TTI pass. While technically this is the only
change that could have been committed separately, it would have been
a nightmare to extract.

The final step of the conversion was just to delete all the old
boilerplate. This got rid of the ScalarTargetTransformInfo and
VectorTargetTransformInfo classes, all of the support in all of the
targets for producing instances of them, and all of the support in the
tools for manually constructing a pass based around them.

Now that TTI is a relatively normal analysis group, two things become
straightforward. First, we can sink it into lib/Analysis which is a more
natural layer for it to live. Second, clients of this interface can
depend on it *always* being available which will simplify their code and
behavior. These (and other) simplifications will follow in subsequent
commits, this one is clearly big enough.

Finally, I'm very aware that much of the comments and documentation
needs to be updated. As soon as I had this working, and plausibly well
commented, I wanted to get it committed and in front of the build bots.
I'll be doing a few passes over documentation later if it sticks.

Commits to update DragonEgg and Clang will be made presently.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b24ce3ec45be18dda4dd5d1d848871ef680b7f72 05-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Fix another place where we build the TTI pass to the new interface.

Sorry for the noise here, 'make check' doesn't build this code. =/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
7f00f87767036e74445aad0164eea13cf2642610 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Sort a few more #include lines in tools/... unittests/... and utils/...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f2a68db4264690b0ccb197e54af3414054b42e51 11-Dec-2012 NAKAMURA Takumi <geek4civic@gmail.com> llvm/tools: Add #include "llvm/TargetTransformInfo.h"

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
50f318384c4db1419f9c48d85af350260c4976b8 10-Dec-2012 Bill Wendling <isanbard@gmail.com> Revert r169656.

The linker will call `lto_codegen_add_must_preserve_symbol' on all globals that
should be kept around. The linker will pretend that a dylib is being created.
<rdar://problem/12528059>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
12a38adc58fe16217f194dc151970c89de0e73b4 10-Dec-2012 Bill Wendling <isanbard@gmail.com> Revert to old behavior until linker can pass export-dynamic option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f62b9cd8905fd04e78775e29a01f41667286e67c 08-Dec-2012 Bill Wendling <isanbard@gmail.com> Add the `lto_codegen_set_export_dynamic' function.

This function sets the `_exportDynamic' ivar. When that's set, we export all
symbols (e.g. we don't run the internalize pass). This is equivalent to the
`--export-dynamic' linker flag in GNU land:

--export-dynamic
When creating a dynamically linked executable, add all symbols to the dynamic
symbol table. The dynamic symbol table is the set of symbols which are visible
from dynamic objects at run time. If you do not use this option, the dynamic
symbol table will normally contain only those symbols which are referenced by
some dynamic object mentioned in the link. If you use dlopen to load a dynamic
object which needs to refer back to the symbols defined by the program, rather
than some other dynamic object, then you will probably need to use this option
when linking the program itself.

The Darwin linker will support this via the `-export_dynamic' flag. We should
modify clang to support this via the `-rdynamic' flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f010c464a11444733ec67e31aace8bcebeaf2588 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort the #include lines for tools/...

Again, tools are trickier to pick the main module header for than
library source files. I've started to follow the pattern of using
LLVMContext.h when it is included as a stub for program source files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
6eda0813459547fe8094dd5d31f7dd2214b5ca7a 29-Nov-2012 Pedro Artigas <partigas@apple.com> One more step towards making doInitialization and doFinalization useful for
start up and clean up module passes, now that ASAN and TSAN are fixed the
tests pass



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
9780d352b9108d49097970f6686fd61aba58d7fc 27-Nov-2012 Owen Anderson <resistor@mac.com> Revert r168635 "Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model".
It appears to have broken at least one buildbot.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0d30d30d58253de6b8836a11effcfc38d7566841 27-Nov-2012 Owen Anderson <resistor@mac.com> Step towards implementation of pass manager with doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model

Patch by Pedro Artigas, with feedback from by Chandler Carruth.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
40b6fdb81e12b40dd41c9f9f07befb60ec7291c3 15-Nov-2012 Owen Anderson <resistor@mac.com> Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's.

Patch by Pedro Artigas.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
cbd9a19b5d6ff93efa82c467508ede78b8af3bac 19-Oct-2012 Nadav Rotem <nrotem@apple.com> Reapply the TargerTransformInfo changes, minus the changes to LSR and Lowerinvoke.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3b9a911efcf280950f878a050728450423875639 18-Oct-2012 Bob Wilson <bob.wilson@apple.com> Temporarily revert the TargetTransform changes.

The TargetTransform changes are breaking LTO bootstraps of clang. I am
working with Nadav to figure out the problem, but I am reverting it for now
to get our buildbots working.

This reverts svn commits: 165665 165669 165670 165786 165787 165997
and I have also reverted clang svn 165741

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
88bcf797abebb941fe9ace6de50eb7ede80d5ea7 16-Oct-2012 Nadav Rotem <nrotem@apple.com> LTO also needs to initialize the TargetTransform infrastructure.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
47ed8a161caa898cc00c85c8f8a063a0e18d8915 12-Oct-2012 Bob Wilson <bob.wilson@apple.com> Set default CPU for Darwin targets with LTO. <rdar://problem/12457841>

This is a temporary hack until Bill's project to record command line options
in the LLVM IR is ready. Clang currently sets a default CPU but that isn't
recorded anywhere and it doesn't get used in the final LTO compilation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
791cfc211a9801002bfda6b3eb4de7e041f04f53 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0b95a9949ba6d9823be202c384c60ab9ef9404d8 06-Sep-2012 Bill Wendling <isanbard@gmail.com> Explicitly erase the file from disk if something bad happened. <rdar://problem/12184899>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0ca36afc9d30aa2fe550750b2c3f1d3acf8c9fed 09-Aug-2012 Bill Wendling <isanbard@gmail.com> Remove some coding violations. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
eda3fc673450552808edfbf076d6bf26798acc64 07-Aug-2012 Bill Wendling <isanbard@gmail.com> Reduce indentation by early exiting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
9ac0aaa6afe4162b4db32833f9f176ac05ce6f8f 06-Aug-2012 Bill Wendling <isanbard@gmail.com> Add a way to grab the target options from the LTO command line.

When the command line target options were removed from the LLVM libraries, LTO
lost its ability to specify things like `-disable-fp-elim'. Add this back by
adding the command line variables to the `lto' project.
<rdar://problem/12038729>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4f56a30e0d604a3081c1e696467e57784267bc20 30-May-2012 David Blaikie <dblaikie@gmail.com> Reinstate -O3 for LTO.

This broke in r144788 when the CodeGenOpt option was moved from everywhere else
(specifically, from addPassesToEmitFile) to createTargetMachine. Since
LTOCodeGenerator wasn't passing the 4th argument, when the 4th parameter became
the 3rd, it silently continued to compile (int->bool conversion) but meant
something completely different.

This change preserves the existing (accidental) and previous (default)
semantics of the addPassesToEmitFile and restores the previous/intended
CodeGenOpt argument by passing it appropriately to createTargetMachine.

(discovered by pending changes to -Wconversion to catch constant->bool
conversions)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4d2e9d9a1c213db144785f386ce661914d17afb6 16-Apr-2012 Rafael Espindola <rafael.espindola@gmail.com> Remove lto_codegen_set_whole_program_optimization. It is a work in progress,
so we don't want it to show up in the stable 3.1 interface.

While at it, add a comment about why LTOCodeGenerator manually creates the
internalize pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
64fae7587ad7cb8082ca5615fd061a4e4d3f711e 10-Apr-2012 Bill Wendling <isanbard@gmail.com> Revert the 'EnableInitializing' flag. There is debate on whether we should run that pass by default in LTO.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
64d5b282c92b3599c56ef987d6f6971611d716e6 10-Apr-2012 Bill Wendling <isanbard@gmail.com> Apply the scope restrictions after parsing the command line options. There may be some which are used in that function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3029a0c56a1e4249746ff6b54d825e88fee6cddf 09-Apr-2012 Bill Wendling <isanbard@gmail.com> Add a hook to turn on the internalize pass through the LTO interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
97d990323607d6eb50a84f672b2169ac4ba1697d 05-Apr-2012 Bill Wendling <isanbard@gmail.com> The internalize pass can be dangerous for LTO.

Consider the following program:

$ cat main.c
void foo(void) { }

int main(int argc, char *argv[]) {
foo();
return 0;
}
$ cat bundle.c
extern void foo(void);

void bar(void) {
foo();
}
$ clang -o main main.c
$ clang -o bundle.so bundle.c -bundle -bundle_loader ./main
$ nm -m bundle.so
0000000000000f40 (__TEXT,__text) external _bar
(undefined) external _foo (from executable)
(undefined) external dyld_stub_binder (from libSystem)
$ clang -o main main.c -O4
$ clang -o bundle.so bundle.c -bundle -bundle_loader ./main
Undefined symbols for architecture x86_64:
"_foo", referenced from:
_bar in bundle-elQN6d.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The linker was told that the 'foo' in 'main' was 'internal' and had no uses, so
it was dead stripped.

Another situation is something like:

define void @foo() {
ret void
}

define void @bar() {
call asm volatile "call _foo" ...
ret void
}

The only use of 'foo' is inside of an inline ASM call. Since we don't look
inside those for uses of functions, we don't specify this as a "use."

Get around this by not invoking the 'internalize' pass by default. This is an
admitted hack for LTO correctness.
<rdar://problem/11185386>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3197b4453d214aa96de3a42da8f8fe189fff2077 03-Apr-2012 Bill Wendling <isanbard@gmail.com> Add an option to turn off the expensive GVN load PRE part of GVN.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
7baa27d3b331c9388bc81995c819c289a3c6fe7e 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Move trivial functions into the class definition.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
deee238128ac2c2ddda1aa942127f9f378030306 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Trim headers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c94c5626926161a9258f6af7e4243ca13b3bc988 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Indent according to LLVM's style guide.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ab53bc76fd0f4863c9bdccf666fe8eed3d6bf702 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Cleanup whitespace and trim some of the #includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f2cc2ee449bf5756a10959d130414e087a16555d 31-Mar-2012 Bill Wendling <isanbard@gmail.com> These strings aren't 'const char *' but 'char *'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
76b13ed403ccda3ccbe7d17096e314ae83709b7f 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Cleanup whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
caf71d41851fa9f3efb04123de893c1f7961eed5 31-Mar-2012 Bill Wendling <isanbard@gmail.com> Free the codegen options when deleting LTO code generator object.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 20-Jan-2012 David Blaikie <dblaikie@gmail.com> More dead code removal (using -Wunreachable-code)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 02-Dec-2011 Nick Lewycky <nicholas@mxc.ca> Move global variables in TargetMachine into new TargetOptions class. As an API
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.

One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
988fdc5f28692a0c4ee9f1b5f85f51f19272d63f 05-Nov-2011 Peter Collingbourne <peter@pcc.me.uk> Now that the linker supports lazily materialising globals, don't
materialise them in LTO.

I observed a ~0.5-1% speedup for an LTO link of opt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0173864d8a87d9243d304fbf91b556e20b5a32fc 01-Nov-2011 Sebastian Pop <spop@codeaurora.org> rename getHostTriple into getDefaultTargetTriple



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3e74d6fdd248e20a280f1dff3da9a6c689c2c4c3 24-Aug-2011 Evan Cheng <evan.cheng@apple.com> Move TargetRegistry and TargetSelect from Target to Support where they belong.
These are strictly utilities for registering targets and components.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3f0e2377609e916d77e192fff2badc7f6c05be4f 18-Aug-2011 John Criswell <criswell@uiuc.edu> Fixed compilation warning on Linux by fixing the type of a return value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c684e83e4554bfaf6180426f86b9253b65dd46ec 02-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com> Move methods in PassManagerBuilder offline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3d453ac1317f910b0589d87c061f056be29e36cd 02-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com> move PassManagerBuilder.h to IPO. This is a non intuitive place to put it,
but it solves a layering violation since things in Support are not supposed to
use things in Transforms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
fce6b5058afd20dff33da1a1cc7bc14f0a230f82 25-Jul-2011 Nick Lewycky <nicholas@mxc.ca> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
e78085a3c03de648a481e9751c3094c517bd7123 22-Jul-2011 Evan Cheng <evan.cheng@apple.com> Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,
InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.

There is still a bit more refactoring left to do in Targets. But we are now very
close to fixing all the layering issues in MC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
e76a33b9567d78a5744dc52fcec3a6056d6fb576 20-Jul-2011 Evan Cheng <evan.cheng@apple.com> Add MCObjectFileInfo and sink the MCSections initialization code from
TargetLoweringObjectFileImpl down to MCObjectFileInfo.

TargetAsmInfo is done to one last method. It's *almost* gone!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135569 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
439661395fd2a2a832dba01c65bc88718528313c 19-Jul-2011 Evan Cheng <evan.cheng@apple.com> Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from
TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0e6a052331f674dd70e28af41f654a7874405eab 18-Jul-2011 Evan Cheng <evan.cheng@apple.com> Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down
to MCRegisterInfo. Also initialize the mapping at construction time.

This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1abf2cb59b8d63415780a03329307c0997b2670c 15-Jul-2011 Evan Cheng <evan.cheng@apple.com> Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
bf843e6974007a9a125453a61a2c4a64ee3a6186 12-Jul-2011 Cameron Zwarich <zwarich@apple.com> Fix LTO after the recent MC subtarget refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
276365dd4bc0c2160f91fd8062ae1fc90c86c324 30-Jun-2011 Evan Cheng <evan.cheng@apple.com> Fix the ridiculous SubtargetFeatures API where it implicitly expects CPU name to
be the first encoded as the first feature. It then uses the CPU name to look up
features / scheduling itineray even though clients know full well the CPU name
being used to query these properties.

The fix is to just have the clients explictly pass the CPU name!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ab8be96fd30ca9396e6b84fdddf1ac6208984cad 29-Jun-2011 Evan Cheng <evan.cheng@apple.com> Sink SubtargetFeature and TargetInstrItineraries (renamed MCInstrItineraries) into MC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
817a01ffb24504f5b00fdac9d79aa034c918f28b 22-May-2011 Chris Lattner <sabre@nondot.org> switch bugpoint and liblto to PassManagerBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
6421a8815e14189121a5e20731fd005ea08793e1 22-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> Add a lto_codegen_compile_to_file to avoid producing a file, reading it to
memory and writing it back to disk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
11d1803770f54dad441007a6ebafc70cb9395695 22-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> We don't need a null terminator for the output file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f19d7a7af3f10b6d43f9e8b0271f0f836a33d52c 18-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> Use lazy parsing in LTO. Unfortunately this is only a 3% time saving for
'ar'. Have to figure out how to make libLTO even lazier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
38c4e535493363b96eac47af9e7c056530137bea 02-Mar-2011 Rafael Espindola <rafael.espindola@gmail.com> Add a special streamer to libLTO that just records symbols definitions and
uses.

The result produced by the streamer is used to give the linker more accurate
information and to add to llvm.compiler.used. The second improvement removes
the need for the user to add __attribute__((used)) to functions only used in
inline asm. The first one lets us build firefox with LTO on Darwin :-)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
e9efea1194691580c74520aad48887d95fd0ce1b 24-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Switch LTO to use MC. This takes the linking of libxul.so from about 7m to
6m30.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
cd6c93ec48937ab4f76dfd3bf5dc7e68ed781508 20-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix some memory leaks and avoid looking in the hash tables twice.
libxul links in 7m0.403s.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
2e3066b319866fbc8798bd0e56b535ba1f82620d 12-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Preserve aliases if needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d7401b35e3a4d08e43b4ab81dffd58099a37c90d 12-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix a silly bug I introduced when dropping std::string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ef1860a117b4a35918eb9793a7b94715e12a3a42 11-Feb-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove std::string version of getNameWithPrefix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3ff9563c3e391954b2e224afcf8b2b0fcc3888aa 16-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
89b9372605db2ce3b0085c84089e389f7bc1fbdd 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Fixed version of 121434 with no new memory leaks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f7fd4aa2610f46467369de07f3ec669561d79be0 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Revert my previous patch to make the valgrind bots happy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1c952b9cc98e84b28f68f0f6cf11197263f89863 10-Dec-2010 Rafael Espindola <rafael.espindola@gmail.com> Initial support for the cfi directives. This is just enough to get

f:
.cfi_startproc
nop
.cfi_endproc

assembled (on ELF).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f2f516fc2680168caac9981a4dd17cc37c639c71 09-Dec-2010 Michael J. Spencer <bigcheesegs@gmail.com> More code not compiled by CMake. :(.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
9267d140dead8feec68f8503076fb9c743cce0f1 06-Dec-2010 Devang Patel <dpatel@apple.com> Do not try luck by using given name to create temporary file. In parallel builds it may not work.

This time for .s file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b7bbd461223924e7fa05d98dbeadfc4b4a0093d1 04-Dec-2010 Devang Patel <dpatel@apple.com> Do not try luck by using given name to create temporary file. In parallel builds it may not work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3cc52ea33c0b96d1682f14fc45c45b57df0f39b6 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> I swear I did a make clean and make before committing all this...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
9f36c4e1562c3ad6bf9faac496446970d86f7cc4 07-Oct-2010 Dan Gohman <gohman@apple.com> This file needs ToolOutputFile.h too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d4c454317a38d65957edebe62bfc69fc8d9885e8 01-Sep-2010 Dan Gohman <gohman@apple.com> Make tool_output_file's raw_ostream instance a member variable instead
of a base class.

This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f29140106f74d15ba357aa0a7f109adc939c3104 20-Aug-2010 Dan Gohman <gohman@apple.com> Convert tools to use tool_output_file, and introduce error
checking to places which previously lacked it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
2d643ef32891859ec73b6eea2959748f5ebc3af7 11-Aug-2010 Rafael Espindola <rafael.espindola@gmail.com> Make it possible to set the cpu used for codegen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
98197e55c10176c3ef9100f7d852abbd2347225f 10-Aug-2010 Rafael Espindola <rafael.espindola@gmail.com> Make it possible to set the flags passed to the assembler.

Nick, please review.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d27047f87dae7c6eb59069b1e5d1368a0b2db5ff 27-May-2010 Dan Gohman <gohman@apple.com> Eliminate some unnessary Path::exists() calls.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4b7416b75db2a4b80ccffe6e15c0d7b6996a8201 27-May-2010 Dan Gohman <gohman@apple.com> When handling raw_ostream errors manually, use clear_error() so that
raw_ostream doesn't try to do its own error handling.

Also, close the raw_ostream before checking for errors so that any
errors that occur during closing are caught by the manual check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
81043ee5dc4cca470db8d45e080ba0a38efbffc2 11-May-2010 Bill Wendling <isanbard@gmail.com> The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a
string of features for that target. However LTO was using that string to pass
into the "create target machine" stuff. That stuff needed the feature string to
be in a particular form. In particular, it needed the CPU specified first and
then the attributes. If there isn't a CPU specified, it required it to be blank
-- e.g., ",+altivec". Yuck.

Modify the getDefaultSubtargetFeatures method to be a non-static member
function. For all attributes for a specific subtarget, it will add them in like
normal. It will also take a CPU string so that it can satisfy this horrible
syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
57b6e9eb6ccb757b74beeb377c7c16d08468d3e8 02-May-2010 Duncan Sands <baldrick@free.fr> Remove the -enable-sjlj-eh option, which doesn't do anything.
Remove the -enable-eh option which is only used by the JIT,
and replace it with -jit-enable-eh.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c3d0e0c8efad3277433f81b415d441f758467871 27-Apr-2010 Bill Wendling <isanbard@gmail.com> r98363 deleted a '!' when cleaning up whitespace. This caused globals which are
*not* declarations to *not* be placed in the "preserve" list.
<rdar://problem/7870735>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
43bc70ebef7faafbe986dbc5950db0e56e9f05b4 17-Apr-2010 Dan Gohman <gohman@apple.com> Fix more -Wcast-qual warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
51ecc389a9b6ae82ff799a62cde882629fad53b0 24-Mar-2010 Dan Gohman <gohman@apple.com> Trim #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b87c305fa77650ee581d4a8c65a0757f88002441 12-Mar-2010 Chris Lattner <sabre@nondot.org> give Mangler access to TargetData.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
5ef31a039dbb9c36cfd78442b3554d1b6974ec4c 12-Mar-2010 Chris Lattner <sabre@nondot.org> make the mangler take an MCContext instead of an MAI.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
5669e3009761dff20b67e18a382c334041887928 03-Feb-2010 Chris Lattner <sabre@nondot.org> change addPassesToEmitFile to return true on failure instead of its input,
add -filetype=null for performance testing and remove -filetype=dynlib,
which isn't planned to be implemented.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3813d8adf3788dd01a4cb9db01c122cd5e6a13b9 02-Feb-2010 Chris Lattner <sabre@nondot.org> Remove a bunch of stuff around the edges of the ELF writer.
Now the only use of the ELF writer is the JIT, which won't be
easy to fix in the short term. :( :(



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
211edae4843f5c2ee9c376e88e4cf0ecc8745f03 02-Feb-2010 Chris Lattner <sabre@nondot.org> eliminate FileModel::Model, just use CodeGenFileType. The client
of the code generator shouldn't care what object format a target
uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b5c5160a554cb0debeb7913287d9c099a753a59e 02-Feb-2010 Chris Lattner <sabre@nondot.org> eliminate all forms of addPassesToEmitMachineCode except
the one used by the JIT. Remove all forms of
addPassesToEmitFileFinish except the one used by the static
code generator. Inline the remaining version of
addPassesToEmitFileFinish into its only caller.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
390444a704499a24ed61487edb67bcdad3e8078e 02-Feb-2010 Chris Lattner <sabre@nondot.org> remove dead code, we're requesting TargetMachine::AssemblyFile here.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f0356fe140af1a30587b9a86bcfb1b2c51b8ce20 27-Jan-2010 Jeffrey Yasskin <jyasskin@google.com> Kill ModuleProvider and ghost linkage by inverting the relationship between
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.

Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.

Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c0dba723d119adc8c7b49c6d0e97d10eac4428fc 17-Jan-2010 Chris Lattner <sabre@nondot.org> now that mangler is in libtarget, it can use MCAsmInfo instead of clients
having to pass various fields from it in. Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
45111d160cf0910030eeb6a949c69273502e5ad5 16-Jan-2010 Chris Lattner <sabre@nondot.org> move the mangler into libtarget from vmcore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
c5451065e03a47a43f61d579eec2721cb68b1b04 16-Jan-2010 Chris Lattner <sabre@nondot.org> remove use of getMangledName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
469340493c48eb22b630bbd311db867c9d7953d6 16-Jan-2010 Chris Lattner <sabre@nondot.org> switch liblto to use the new getNameWithPrefix() method instead of getMangledName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3fe980b127a61608bd6d44c0939ba716ca21625c 15-Jan-2010 Nate Begeman <natebegeman@mac.com> Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available.
Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer

Further refactoring to completely remove MachOWriter and drive the object file
writer with the AsmPrinter MCInst/MCSection logic is forthcoming.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d4f195999a7774611e5f9e457a86f14d5e257324 11-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> Reimplement getToken and SplitString as "StringRef helper functions"

- getToken is modeled after StringRef::split but it can split on multiple
separator chars and skips leading seperators.
- SplitString is a StringRef::split variant for more than 2 elements with the
same behaviour as getToken.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
308f6630a3f413ab32763bc78ab7802df372751d 25-Nov-2009 Viktor Kutuzov <vkutuzov@accesssoftek.com> Rollback changes r89516: Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
054b52c366256e7cde9c937006df944372e09acc 21-Nov-2009 Viktor Kutuzov <vkutuzov@accesssoftek.com> Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
e823db8bae7fe42cd4f1fa861bec8c36a636702b 18-Nov-2009 Viktor Kutuzov <vkutuzov@accesssoftek.com> Added getDefaultSubtargetFeatures method to SubtargetFeatures class which returns a correct feature string for given triple.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
51cdac02c4125b8545728eb30ab5f54e437d6377 17-Nov-2009 Viktor Kutuzov <vkutuzov@accesssoftek.com> Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
de05902114950a181c439aa4c3b9b06170256a61 25-Aug-2009 Dan Gohman <gohman@apple.com> Delete some unnecessary flushes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
baa26395ccf17fc988bb9cf62d6659ca8415ece9 25-Aug-2009 Dan Gohman <gohman@apple.com> Make LLVM command-line tools overwrite their output files without -f.
This is conventional command-line tool behavior. -f now just means
"enable binary output on terminals".

Add a -f option to llvm-extract and llvm-link, for consistency.

Remove F_Force from raw_fd_ostream and enable overwriting and
truncating by default. Introduce an F_Excl flag to permit users to
enable a failure when the file already exists. This flag is
currently unused.

Update Makefiles and documentation accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
74382b7c699120fbec5cb5603c9cf4212eb37f06 24-Aug-2009 Chris Lattner <sabre@nondot.org> Prune #includes from llvm/Linker.h and llvm/System/Path.h,
forcing them down into various .cpp files.

This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>

sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b683ea4712836e22b98d24bf8e40e599224d024e 23-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate the ostream version of CheckBitcodeOutputToConsole,
change the raw_ostream one to take the raw_ostream byref instead
of byptr. Prune #includes, eliminate a use of Streams.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b515d75856f58a8b3b71d782eb00916d686329ad 23-Aug-2009 Chris Lattner <sabre@nondot.org> eliminate the std::ostream forms of the bitcode writing APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
17e9edc4a7bbeadf756494cf39fcacc9eff72202 23-Aug-2009 Chris Lattner <sabre@nondot.org> Change raw_fd_ostream to take flags as an optional bitmask
instead of as two bools. Use this to add a F_Append flag
which has the obvious behavior.

Other unrelated changes conflated into this patch:

1. REmove EH stuff from llvm-dis and llvm-as, the try blocks
are dead.
2. Simplify the filename inference code in llvm-as/llvm-dis,
because raw_fd_ostream does the right thing with '-'.
3. Switch machine verifier to use raw_ostream instead of ostream
(Which is the thing that needed append in the first place).




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
af76e592c7f9deff0e55c13dbb4a34f07f1c7f64 22-Aug-2009 Chris Lattner <sabre@nondot.org> Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
815944d923345f6c327da1d23ae3078b3a4cdffd 13-Aug-2009 Dan Gohman <gohman@apple.com> Simplify this code so that it doesn't depend on raw_ostream being copyable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3 11-Aug-2009 Jim Grosbach <grosbach@apple.com> SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.

The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.

Built on Darwin and verified no llvm-core "make check" regressions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4b3d57228cae1cba0897b80a73fddd4b8a61894a 04-Aug-2009 Daniel Dunbar <daniel@zuster.org> No really, it's unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3e4c41a84a2c0f055e2bfef48a66b5890bcfd5e5 03-Aug-2009 Nick Lewycky <nicholas@mxc.ca> Remove the GCC path from libLTO. This has been superceded by setAssemblerPath.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4bd03abe593222b26e84066223feb321bf738625 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove now unused arguments from TargetRegistry::lookupTarget.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3c2d4bf97fa96fe171883cd80e4ea93fc43563e6 03-Aug-2009 Daniel Dunbar <daniel@zuster.org> Pass target triple string in to TargetMachine constructor.

This is not just a matter of passing in the target triple from the module;
currently backends are making decisions based on the build and host
architecture. The goal is to migrate to making these decisions based off of the
triple (in conjunction with the feature string). Thus most clients pass in the
target triple, or the host triple if that is empty.

This has one important change in the way behavior of the JIT and llc.

For the JIT, it was previously selecting the Target based on the host
(naturally), but it was setting the target machine features based on the triple
from the module. Now it is setting the target machine features based on the
triple of the host.

For LLC, -march was previously only used to select the target, the target
machine features were initialized from the module's triple (which may have been
empty). Now the target triple is taken from the module, or the host's triple is
used if that is empty. Then the triple is adjusted to match -march.

The take away is that -march for llc is now used in conjunction with the host
triple to initialize the subtarget. If users want more deterministic behavior
from llc, they should use -mtriple, or set the triple in the input module.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d42b58b61cd773e9f798d02c42652488d67d38df 27-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Fix libLTO:
* Call InitializeAllTargets on every path where we might query the
TargetRegistry. This fixes PR4604.
* flush the formatted_raw_ostream& or else not all of the assembly will make
it to the .s file. (It doesn't do this in its destructor?!)
* Due to a reversed conditional, libLTO was reporting many symbols as both
defined and undefined, including two definitions of the same symbol name
in its symbol list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a5881e3060aee9f82aef3747a97650e5eafe893a 26-Jul-2009 Daniel Dunbar <daniel@zuster.org> Add TargetRegistry::lookupTarget.
- This is a simplified mechanism which just looks up a target based on the
target triple, with a few additional flags.

- Remove getClosestStaticTargetForModule, the moral equivalent is now:
lookupTarget(Mod->getTargetTriple, true, false, ...);

- This no longer does the fuzzy matching with target data (based on endianness
and pointer width) that getClosestStaticTargetForModule was doing, but this
was deemed unnecessary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3d5126fbad17647088b7335cd5fea178407211e2 22-Jul-2009 Daniel Dunbar <daniel@zuster.org> Switch some clients to Value::getName(), and other getName() user
simplification.
- NFC


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ff9834ab9daeee25dbb67ae5e2341930cde46c86 16-Jul-2009 Daniel Dunbar <daniel@zuster.org> Kill off last uses of TargetMachineRegistry class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
51b198af83cb0080c2709b04c129a3d774c07765 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Reapply TargetRegistry refactoring commits.

--- Reverse-merging r75799 into '.':
U test/Analysis/PointerTracking
U include/llvm/Target/TargetMachineRegistry.h
U include/llvm/Target/TargetMachine.h
U include/llvm/Target/TargetRegistry.h
U include/llvm/Target/TargetSelect.h
U tools/lto/LTOCodeGenerator.cpp
U tools/lto/LTOModule.cpp
U tools/llc/llc.cpp
U lib/Target/PowerPC/PPCTargetMachine.h
U lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U lib/Target/PowerPC/PPCTargetMachine.cpp
U lib/Target/PowerPC/PPC.h
U lib/Target/ARM/ARMTargetMachine.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/ARM/ARMTargetMachine.h
U lib/Target/ARM/ARM.h
U lib/Target/XCore/XCoreTargetMachine.cpp
U lib/Target/XCore/XCoreTargetMachine.h
U lib/Target/PIC16/PIC16TargetMachine.cpp
U lib/Target/PIC16/PIC16TargetMachine.h
U lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U lib/Target/Alpha/AlphaTargetMachine.cpp
U lib/Target/Alpha/AlphaTargetMachine.h
U lib/Target/X86/X86TargetMachine.h
U lib/Target/X86/X86.h
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
U lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
U lib/Target/X86/X86TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.cpp
U lib/Target/MSP430/MSP430TargetMachine.h
U lib/Target/CppBackend/CPPTargetMachine.h
U lib/Target/CppBackend/CPPBackend.cpp
U lib/Target/CBackend/CTargetMachine.h
U lib/Target/CBackend/CBackend.cpp
U lib/Target/TargetMachine.cpp
U lib/Target/IA64/IA64TargetMachine.cpp
U lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U lib/Target/IA64/IA64TargetMachine.h
U lib/Target/IA64/IA64.h
U lib/Target/MSIL/MSILWriter.cpp
U lib/Target/CellSPU/SPUTargetMachine.h
U lib/Target/CellSPU/SPU.h
U lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U lib/Target/CellSPU/SPUTargetMachine.cpp
U lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
U lib/Target/Mips/MipsTargetMachine.cpp
U lib/Target/Mips/MipsTargetMachine.h
U lib/Target/Mips/Mips.h
U lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U lib/Target/Sparc/SparcTargetMachine.cpp
U lib/Target/Sparc/SparcTargetMachine.h
U lib/ExecutionEngine/JIT/TargetSelect.cpp
U lib/Support/TargetRegistry.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a1bdcedc3879510a874d24c450e07feb170d9cd6 15-Jul-2009 Dan Gohman <gohman@apple.com> Add a Force option to raw_fd_ostream to specify whether opening
an existing file is considered an error. Convert several tools
to use raw_fd_ostream instead of std::ostream, and to use this
new option instead of doing a manual check.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
2286f8dc4cec0625f7d7a14e2570926cf8599646 15-Jul-2009 Stuart Hastings <stuart@apple.com> Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair broken LLVM-GCC build.
Will revert 75770 in the llvm-gcc trunk.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
dec9803b69ad6dcae9f6f1902e461214a26bd7e7 15-Jul-2009 Daniel Dunbar <daniel@zuster.org> Switch some obvious clients to using the new TargetRegistry.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
71847813bc419f7a0667468136a07429c6d9f164 14-Jul-2009 David Greene <greened@obbligato.org> Have asm printers use formatted_raw_ostream directly to avoid a
dynamic_cast<>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b8158acc23f5f0bf235fb1c6a8182a38ec9b00b2 14-Jul-2009 Chris Lattner <sabre@nondot.org> Reapply my previous asmprinter changes now with more testing and two
additional bug fixes:

1. The bug that everyone hit was a problem in the asmprinter where it
would remove $stub but keep the L prefix on a name when emitting the
indirect symbol. This is easy to fix by keeping the name of the stub
and the name of the symbol in a StringMap instead of just keeping a
StringSet and trying to reconstruct it late.

2. There was a problem printing the personality function. The current
logic to print out the personality function from the DWARF information
is a bit of a cesspool right now that duplicates a bunch of other
logic in the asm printer. The short version of it is that it depends
on emitting both the L and _ prefix for symbols (at least on darwin)
and until I can untangle it, it is best to switch the mangler back to
emitting both prefixes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
1f316e321a8f2fa0e193c5444584a67a8aabe9a8 14-Jul-2009 Daniel Dunbar <daniel@zuster.org> Revert r7561{9,8,7,6}, which depend on r75610.

--- Reverse-merging r75619 into '.':
U lib/Target/DarwinTargetAsmInfo.cpp
U lib/CodeGen/AsmPrinter/AsmPrinter.cpp
--- Reverse-merging r75618 into '.':
U lib/CodeGen/ELFWriter.cpp
U lib/CodeGen/MachOCodeEmitter.cpp
U lib/CodeGen/MachOWriter.cpp
--- Reverse-merging r75617 into '.':
U lib/Target/CBackend/CBackend.cpp
--- Reverse-merging r75616 into '.':
U tools/bugpoint/Miscompilation.cpp
U tools/lto/LTOCodeGenerator.cpp
U tools/lto/LTOModule.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b5851462d08bc4d5c3f8348faac9fd2f6387d078 14-Jul-2009 Chris Lattner <sabre@nondot.org> rename getValueName -> getMangledName


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ac57e6e498abccb117e0d61c2fa0f733845e50cb 06-Jul-2009 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add the Object Code Emitter class. Original patch by Aaron Gray, I did some
cleanup, removed some #includes and moved Object Code Emitter out-of-line.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0e7a54672cf346ee7c4aae10822c74f7c74f3fed 02-Jul-2009 Owen Anderson <resistor@mac.com> Maintain the old LTO API, by using the global context.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
4434ed44c45c87a72b7a0bf2f91211f895022b91 02-Jul-2009 Owen Anderson <resistor@mac.com> Make the use of const with respect to LLVMContext sane. Hopefully this is the last time, for the
moment, that I will need to make far-reaching changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
31895e73591d3c9ceae731a1274c8f56194b9616 01-Jul-2009 Owen Anderson <resistor@mac.com> Hold the LLVMContext by reference rather than by pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
8b477ed579794ba6d76915d56b3f448a7dd20120 01-Jul-2009 Owen Anderson <resistor@mac.com> Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.

Patches for Clang and LLVM-GCC to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
855a168dbeddfb905ca4cb1e9402a2ec2eab27ea 26-Jun-2009 Evan Cheng <evan.cheng@apple.com> Indentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
75d6ffd53fcee04edfb961cca8b37122867fa660 22-Jun-2009 Bob Wilson <bob.wilson@apple.com> Recognize and handle ARM v7 target triples for Darwin.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
2deb58f72ec6547a2f760fc48f86b4d95d0a4a02 17-Jun-2009 Chris Lattner <sabre@nondot.org> switch to using llvm/Target/TargetSelect.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
8189d40a8d92daf81492c28276f152db71082445 17-Jun-2009 Nick Lewycky <nicholas@mxc.ca> Fix libLTO by #include'ing the initializers for all targets and all asm
printers.

While I'm here, alphabetize.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f403cd7838aefaacef11bbc1398f165b76ba131f 09-Jun-2009 Rafael Espindola <rafael.espindola@gmail.com> Bug fix:

string::find returns string::npos if the substring is not found.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
d8b4711a16a38f446f2d0e902d13790e03196dee 04-Jun-2009 Nick Kledzik <kledzik@apple.com> <rdar://problem/6944342> libLTO for darwin should add -static when assembling .s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
cbad58624090933cb8fb85587e03be613a481309 04-Jun-2009 Nick Kledzik <kledzik@apple.com> <rdar://problem/6940611> libLTO.dylib needs to let linker specify path to assembler
Add lto_codegen_set_assembler_path() API which allows the linker to specify the
path to the assembler tool to run. When assembler is used (instead of compiler)
different command line options are used.
Add LTO_API_VERSION #define so clients (linkers) can conditionalize use of new APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f5a1c35f1b62556d31b95e874863b262ef46f974 04-Jun-2009 Nick Kledzik <kledzik@apple.com> <rdar://problem/6941517> C++ static constructors not preserved for static executable using LTO
Move setRelocationModel() to be called before TargetMachine is instantiated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
e0f0e0be1c5f6f80cd866d84643509ef399eec96 03-Jun-2009 Daniel Dunbar <daniel@zuster.org> Change LTO to run the global opt pass twice.
- This matches llvm-ld.

It took a bit of archeology to figure out what the right thing to do was
(whether this was intentionally added or intentionally removed). My final
conclusion is that Chris added this intentionally here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=16913
but the changes weren't propogated to llvm-ld until here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=34058
which was after lto.cpp had been cloned off (of llvm-ld), here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=29494

From the commit message, it looks like the motivation for running global opt
again is because we ran it prior to inlining. Based on that I updated the
comment and also only run the pass if we actually ran the inliner.

Chris, please review.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
006a03482880a5b614dfbb8601e0ae92593a595c 03-Jun-2009 Daniel Dunbar <daniel@zuster.org> Add createStandardLTOPasses to StandardPasses.h, and move lto and llvm-ld over.
- I know it sounds crazy, but I think all the pass lists are now coalesced into
StandardPasses.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
195bea3498a7de1d84ace6d4685f02d4d7485468 30-Apr-2009 Nick Lewycky <nicholas@mxc.ca> Allow a user of libLTO to specify the full pathname of the gcc executable to
run when assembling.

Wire this up to the gold plugin. You can now pass --plugin-opt gcc=/foo/bar/gcc
and it will run that gcc instead of looking for it on the path.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
b8cb0bb08c7f9f2dfcdfa5f7d72a4c56a9c93228 30-Apr-2009 Bill Wendling <isanbard@gmail.com> Remove LTO optimization level.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
98a366d547772010e94609e4584489b3e5ce0043 30-Apr-2009 Bill Wendling <isanbard@gmail.com> Instead of passing in an unsigned value for the optimization level, use an enum,
which better identifies what the optimization is doing. And is more flexible for
future uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a7e326b0a95b7e672248c686c54c3b4fbb222259 29-Apr-2009 Bill Wendling <isanbard@gmail.com> Don't use 'false' for 'fast isel' here.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
9f777c64c51f45a5e0a6773d99a4fd031076db56 01-Apr-2009 Evan Cheng <evan.cheng@apple.com> Recognize arm triplets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
677c2c2a6257657d85f16871addc93f37cd40454 26-Feb-2009 Nick Lewycky <nicholas@mxc.ca> Add the function attributes pass during LTO time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a9183c8020c3203f7597d1fbfe4244dd99c7981e 23-Feb-2009 Nick Lewycky <nicholas@mxc.ca> If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
off in libLTO.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
38ed388fb3b30c30cb46a40704fefb1d2485a45b 17-Feb-2009 Devang Patel <dpatel@apple.com> Remove changes that were accidently included in previous commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
13319ceffdd99d153e62011c5dda08b95e3279e3 17-Feb-2009 Devang Patel <dpatel@apple.com> The debugger sometimes lookup dynamically in the runtime to find ivar info of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF.

Add support for two additional DWARF attributes to encode Objective-C runtime version number.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
0d9eb9b4917340acbfc831890655b8e9724959f6 13-Nov-2008 Daniel Dunbar <daniel@zuster.org> Add Binary flag to raw_fd_ostream constructor.

Document raw_fd_ostream's treatment of "-".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
f75e78900cec3500c01938f0a89bf5a3f7ae8dca 05-Nov-2008 Devang Patel <dpatel@apple.com> On darwin, 32-bit x86 target is i386-apple-darwin...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ed3e8b4ed2a3ab44d316e16a54d963f8927c6783 21-Aug-2008 Dan Gohman <gohman@apple.com> Don't silently ignore errors when opening output streams.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
cb3718832375a581c5ea23f15918f3ea447a446c 21-Aug-2008 Owen Anderson <resistor@mac.com> Use raw_ostream throughout the AsmPrinter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
3688f268cb31dbfb5b36131d96af668fa2fc6a8d 15-Aug-2008 Owen Anderson <resistor@mac.com> Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
920ae9863b51ce1e33a1bf702e672e0483c04cd8 08-Jul-2008 Nick Kledzik <kledzik@apple.com> fix dangling pointer and argv off by one errors. Add support for --disable-inlining

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
a93ae711a91dd151ca4d28e4172e0de89d1594f3 04-Jul-2008 Devang Patel <dpatel@apple.com> Provide a hook to set the code generation debug options to investigate lto failures.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp
ebd69421a2acf0c64f368de87d0795451060ed34 30-Jun-2008 Devang Patel <dpatel@apple.com> Rename new lto2 tool as lto.
lto2->lto


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/tools/lto/LTOCodeGenerator.cpp