Commit Graph

324 Commits

Author SHA1 Message Date
Chris Lattner 0639a72834 rename getValueName -> getMangledName
llvm-svn: 75616
2009-07-14 06:19:07 +00:00
Owen Anderson e4dcecd006 As Chris pointed out, this doesn't actually need an LLVMContext to operate.
llvm-svn: 75508
2009-07-13 21:27:19 +00:00
Owen Anderson 53a52215b5 Begin the painful process of tearing apart the rat'ss nest that is Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context.  This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.

llvm-svn: 75445
2009-07-13 04:09:18 +00:00
Nick Lewycky 0661b93de9 Don't create undefined symbols for aliases.
llvm-svn: 75111
2009-07-09 06:03:04 +00:00
Bruno Cardoso Lopes 5661ea68e7 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.

llvm-svn: 74813
2009-07-06 05:09:34 +00:00
Duncan Sands 31554aba47 Add newline at end of file.
llvm-svn: 74774
2009-07-03 15:38:01 +00:00
Owen Anderson 0ff993839c Maintain the old LTO API, by using the global context.
llvm-svn: 74678
2009-07-02 00:31:14 +00:00
John Mosby f4f2f14f57 fix ld error with -no-undefined switch, which is undefined on darwin8
llvm-svn: 74674
2009-07-02 00:10:23 +00:00
Owen Anderson 2a15443aa8 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.

llvm-svn: 74655
2009-07-01 23:13:44 +00:00
Owen Anderson 1cf085d558 Hold the LLVMContext by reference rather than by pointer.
llvm-svn: 74640
2009-07-01 21:22:36 +00:00
Owen Anderson 6773d388aa 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.

llvm-svn: 74614
2009-07-01 16:58:40 +00:00
Evan Cheng d6460965a5 Indentation.
llvm-svn: 74281
2009-06-26 06:57:16 +00:00
Chris Lattner 3912036c25 remove dead makefile flags.
llvm-svn: 74065
2009-06-24 05:29:56 +00:00
Bob Wilson b8b636d145 Recognize and handle ARM v7 target triples for Darwin.
llvm-svn: 73889
2009-06-22 18:01:28 +00:00
Chris Lattner 5dcc4f6999 switch to using llvm/Target/TargetSelect.h
llvm-svn: 73611
2009-06-17 16:42:19 +00:00
Nick Lewycky 510dae3051 Fix libLTO by #include'ing the initializers for all targets and all asm
printers.

While I'm here, alphabetize.

llvm-svn: 73606
2009-06-17 06:52:10 +00:00
Rafael Espindola dcf17e66c5 Bug fix:
string::find returns string::npos if the substring is not found.

llvm-svn: 73145
2009-06-09 21:14:25 +00:00
Nick Kledzik 820c62e447 <rdar://problem/6944342> libLTO for darwin should add -static when assembling .s
llvm-svn: 72881
2009-06-04 19:14:08 +00:00
Nick Kledzik cac8c8a9b3 <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.

llvm-svn: 72823
2009-06-04 00:28:45 +00:00
Nick Kledzik 9149ac729f <rdar://problem/6941517> C++ static constructors not preserved for static executable using LTO
Move setRelocationModel() to be called before TargetMachine is instantiated.

llvm-svn: 72816
2009-06-03 22:52:12 +00:00
Daniel Dunbar 3cd724e590 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.

llvm-svn: 72811
2009-06-03 21:51:32 +00:00
Daniel Dunbar c292601287 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.

llvm-svn: 72805
2009-06-03 21:06:14 +00:00
Nick Kledzik 94e2d973c8 update comments about .objc_ symbols being generated
llvm-svn: 72708
2009-06-01 23:41:09 +00:00
Nick Kledzik b481c2015a <rdar://problem/6927148> libLTO needs to handle i386 magic objc class symbols
Parse __OBJC data structures and synthesize magic .objc_ symbols.
Also, alter mangler so that objc method names are readable.

llvm-svn: 72700
2009-06-01 20:33:09 +00:00
Evan Cheng 9a75111bc6 Untabify.
llvm-svn: 72600
2009-05-30 00:48:34 +00:00
Nick Lewycky a303097de0 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.

llvm-svn: 70490
2009-04-30 15:24:09 +00:00
Bill Wendling 6598b95712 Remove LTO optimization level.
llvm-svn: 70445
2009-04-29 23:40:42 +00:00
Bill Wendling 026e5d7667 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.

llvm-svn: 70440
2009-04-29 23:29:43 +00:00
Bill Wendling e9037a97d1 Don't use 'false' for 'fast isel' here.
llvm-svn: 70411
2009-04-29 21:22:00 +00:00
Rafael Espindola 56548523f5 Add LTO_SYMBOL_DEFINITION_WEAKUNDEF, use that on the gold plugin.
llvm-svn: 69972
2009-04-24 16:55:21 +00:00
Evan Cheng 856e339241 Recognize arm triplets.
llvm-svn: 68229
2009-04-01 18:54:56 +00:00
Nick Lewycky 5eb3773b99 Force 'llvm-config' to go first, optionally followed by lto and gold mixed in
with the rest of the parallel directories.

Build lto when possible on all platforms. Make gold to explicitly depend on
libLTO.

llvm-svn: 65518
2009-02-26 07:56:49 +00:00
Nick Lewycky 64a6fe1bc0 Add the function attributes pass during LTO time.
llvm-svn: 65508
2009-02-26 06:56:16 +00:00
Nick Lewycky fc684c0c83 If nobody minds, I'm using LTO to produce faster binaries. Switch fast codegen
off in libLTO.

llvm-svn: 65310
2009-02-23 07:41:55 +00:00
Devang Patel d57a720d57 Remove changes that were accidently included in previous commit.
llvm-svn: 64835
2009-02-17 22:45:18 +00:00
Devang Patel 4d20395a5f 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.

llvm-svn: 64834
2009-02-17 22:43:44 +00:00
Duncan Sands 185fc29820 Revert r64299: it breaks the build when configured
without --enable-pic, like my nightly tester.

llvm-svn: 64302
2009-02-11 13:23:49 +00:00
Nick Lewycky 9dfffc6c9f Try this. Darwin -> LTO, PIC -> LTO + possibly gold too.
llvm-svn: 64299
2009-02-11 08:44:13 +00:00
Devang Patel 8a9ced15d4 62987 disables LTO build on darwin.
Revert 62987 for now. Nicolas please investigate.

llvm-svn: 64285
2009-02-11 02:34:33 +00:00
Nick Lewycky 8811ecdadf Correct strange whitespace.
llvm-svn: 63927
2009-02-06 07:01:00 +00:00
Nick Lewycky 5c8fc9d549 Build libLTO on any platform so long as PIC is enabled.
llvm-svn: 62987
2009-01-26 03:04:57 +00:00
Bill Wendling cbb401c1d6 Setting BUILD_ARCHIVE to 0 has the same effect as defining it to 1.
llvm-svn: 61599
2009-01-03 01:48:26 +00:00
Nick Lewycky 7450a7cbf5 Remove warning about declaration does not declare anything. This class was
already declared in the other headers.

llvm-svn: 60261
2008-11-30 00:36:34 +00:00
Nick Lewycky af67df5881 Add protected visibility to libLTO.
llvm-svn: 60257
2008-11-29 22:49:59 +00:00
Daniel Dunbar ed90e701f0 Add Binary flag to raw_fd_ostream constructor.
Document raw_fd_ostream's treatment of "-".

llvm-svn: 59219
2008-11-13 05:01:07 +00:00
Devang Patel db9d785338 On darwin, 32-bit x86 target is i386-apple-darwin...
llvm-svn: 58731
2008-11-04 23:13:50 +00:00
Dan Gohman f3e13bbd4d Don't silently ignore errors when opening output streams.
llvm-svn: 55120
2008-08-21 15:33:45 +00:00
Owen Anderson 9371964f47 Use raw_ostream throughout the AsmPrinter.
llvm-svn: 55092
2008-08-21 00:14:44 +00:00
Owen Anderson affe0267f8 Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.
llvm-svn: 54822
2008-08-15 21:31:02 +00:00
Nick Kledzik 44831bcb8c tentative definitions are default visibility
llvm-svn: 53780
2008-07-19 00:58:07 +00:00
Devang Patel bf3a52a62c typo.
llvm-svn: 53778
2008-07-18 23:47:27 +00:00
Devang Patel 41cfed7e49 Name string length is end position marker - begin position marker.
llvm-svn: 53697
2008-07-16 19:49:09 +00:00
Devang Patel a59fe95be3 Do not forget global definitions from inline asm code block.
llvm-svn: 53693
2008-07-16 18:06:52 +00:00
Devang Patel 7688bed4ff LinkOnce definitions have default scope, like weak definitions. Otherwise, the linker may not be able to match LinkOnce definition from one module with an exteranl reference from other module.
llvm-svn: 53580
2008-07-15 00:00:11 +00:00
Nick Kledzik c232347cb8 fix dangling pointer and argv off by one errors. Add support for --disable-inlining
llvm-svn: 53249
2008-07-08 21:14:10 +00:00
Nick Kledzik 7c6f23fb9d add _lto_codegen_debug_options so that linker can use it
llvm-svn: 53213
2008-07-07 23:24:06 +00:00
Devang Patel a0e4fb8283 Provide a hook to set the code generation debug options to investigate lto failures.
llvm-svn: 53119
2008-07-03 22:53:14 +00:00
Devang Patel 4be1c150e4 Rename new lto2 tool as lto.
lto2->lto

llvm-svn: 52912
2008-06-30 18:15:01 +00:00
Devang Patel a1e5413983 Remove old LTO interface.
llvm-svn: 52909
2008-06-30 18:04:55 +00:00
Dale Johannesen 829dab0221 Add CommonLinkage to lto (treated same as weak AFAICT)
and llvm-nm (prints as C).

llvm-svn: 51209
2008-05-16 22:44:18 +00:00
Owen Anderson 7432cbd048 Move MemCpyOpt after GVN.
llvm-svn: 50097
2008-04-22 07:12:26 +00:00
Owen Anderson a5030c3017 Add MemCpyOpt to LTO.
llvm-svn: 50081
2008-04-22 03:57:36 +00:00
Owen Anderson 2988ccad6a Use GVN in LTO instead of GCSE+LoadVN.
llvm-svn: 50036
2008-04-21 07:51:07 +00:00
Dale Johannesen 491557712a Make EH work with unnamed functions. Reenable running
StripSymbols when EH is on.

llvm-svn: 49110
2008-04-02 20:10:52 +00:00
Devang Patel eef348687e Begin setting features for target based on target triple string.
llvm-svn: 46863
2008-02-07 22:32:50 +00:00
Devang Patel 623df7620d Do not set time out, lets assume assembler will do its job in reasonable amount of time.
llvm-svn: 46718
2008-02-04 21:16:10 +00:00
Devang Patel 1a06334403 Do not strip symbols when EH is ON.
llvm-svn: 46657
2008-02-02 01:32:38 +00:00
Devang Patel 540d03bda9 Supply appropriate arch info to darwin assembler.
llvm-svn: 46567
2008-01-30 19:19:31 +00:00
Devang Patel b432c9e866 Enable exception handling if it is supported.
llvm-svn: 46560
2008-01-30 17:43:03 +00:00
Devang Patel 41f375a45c - Introduces versioning macro LLVM_LTO_VERSION
- Communicate symbol visibility
- Communicate code generation model

llvm-svn: 46033
2008-01-15 23:52:34 +00:00
Chris Lattner 345353d6b4 remove attributions from tools.
llvm-svn: 45421
2007-12-29 20:44:31 +00:00
Chris Lattner 8fa21acd25 remove attributions from tools/utils makefiles.
llvm-svn: 45414
2007-12-29 20:07:17 +00:00
Devang Patel c006744c38 Revert my previous check-in.
llvm-svn: 45249
2007-12-20 01:46:01 +00:00
Devang Patel 6d279d484a Add lto version check mechanism.
llvm-svn: 45238
2007-12-20 00:24:01 +00:00
Gordon Henriksen ef5d08f4ea Switching TargetMachineRegistry to use the new generic Registry.
llvm-svn: 43094
2007-10-17 21:28:48 +00:00
Reid Spencer c49a5b9952 Fix a sys::Path API error caught by a gcc 4.2 warning.
llvm-svn: 39995
2007-07-18 05:27:33 +00:00
Gabor Greif e16561cd5d Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated.

llvm-svn: 37913
2007-07-05 17:07:56 +00:00
Chris Lattner f5599efb00 switch tools to bitcode from bytecode
llvm-svn: 36872
2007-05-06 09:32:02 +00:00
Chris Lattner 6147489a09 bitcodify
llvm-svn: 36838
2007-05-06 04:49:55 +00:00
Devang Patel 69730c96db Now LICM is a LoopPass.
llvm-svn: 35001
2007-03-07 04:41:30 +00:00
Anton Korobeynikov d01defedf6 Add possibility to set memory limit for binaries run via libSystem. This
is especially needed for bugpoint. This partly implements PR688

llvm-svn: 34349
2007-02-16 19:11:07 +00:00
Bill Wendling 1fef06db82 Avoid assert() in lto. Let linker handle all failures. Use LTO_WRITE_FAILURE
instead of LTO_UNKNOWN.

llvm-svn: 34036
2007-02-08 01:48:28 +00:00
Bill Wendling fe5ee14bdf The new version of how to add passes to emit files. We explicitly call a
function to add the file writers between calls to add the passes.

llvm-svn: 34035
2007-02-08 01:41:07 +00:00
Reid Spencer 3aaaa0b2bd For PR411:
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.

llvm-svn: 33918
2007-02-05 20:47:22 +00:00
Devang Patel df4e992af8 Add printVersion(). Linker can use it to print LLVM version number.
llvm-svn: 33738
2007-02-01 01:46:06 +00:00
Devang Patel ea0568392e Include Makefile.config before testing OS.
llvm-svn: 33735
2007-02-01 01:18:57 +00:00
Reid Spencer 5301e7c605 For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
confusion with external linkage types.

llvm-svn: 33663
2007-01-30 20:08:39 +00:00
Chris Lattner 19bb6b996b default to emiting an uncompressed .bc file
llvm-svn: 33420
2007-01-21 06:34:18 +00:00
Devang Patel 73d40ac101 Modules are consumed when they are merged together by Linker.
Clear modules vector so that destructure does not try to
delete these modules again. Patch by Chandler Carruth.

llvm-svn: 33017
2007-01-08 18:42:27 +00:00
Chandler Carruth b2d4caaaa8 Build libLLVMlto on non-Darwin architectures. Resolves PR1055: http://llvm.org/PR1055
llvm-svn: 33006
2007-01-08 06:25:29 +00:00
Chris Lattner 7fab842b1f Add C wrappers for the LTO library (PR1081). Patch by Chandler Carruth!
llvm-svn: 32966
2007-01-06 23:53:43 +00:00
Chris Lattner 350563eba7 fix typo
llvm-svn: 32965
2007-01-06 23:51:31 +00:00
Bill Wendling f3baad3ee1 Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.

llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Bill Wendling afd54eb8b6 Replacing std::iostreams with llvm iostreams. Some of these changes involve
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.

llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Devang Patel a9abd62ede Save temp. bc files when saveTemps flag is true. Use final output file
name supplied by linker to construct temp bc file names.

Remove tabs.

llvm-svn: 31205
2006-10-26 20:46:22 +00:00
Devang Patel 07631698ac Supply alignment info to linker through LLVMSymbol.
llvm-svn: 31181
2006-10-25 18:10:07 +00:00
Devang Patel b0a5e39b26 Instead of hard coding global prefix, use TargetAsmInfo.
Add LTO destructor.

llvm-svn: 31168
2006-10-24 18:41:02 +00:00
Devang Patel fdf6144168 Fix typo. Add more comment. Avoid extra hash_map search.
llvm-svn: 31144
2006-10-23 23:57:53 +00:00
Devang Patel 6c01383118 Add removeModule().
llvm-svn: 31142
2006-10-23 23:12:26 +00:00
Devang Patel d90c2d7386 Use FindProgramByName instead of FindExecutable.
llvm-svn: 30846
2006-10-09 21:16:05 +00:00
Devang Patel 060c4857ca Do error checking.
llvm-svn: 30842
2006-10-09 20:20:13 +00:00
Devang Patel dacaf1e375 Use GetTemporaryDirectory. Fix http://llvm.org/bugs/show_bug.cgi?id=894
llvm-svn: 30838
2006-10-09 19:04:51 +00:00
Devang Patel 5af1651f7d Use abstract class to facilitate dlopen() interface.
llvm-svn: 30569
2006-09-21 17:22:55 +00:00
Devang Patel dd53fd41cd Add comment.
llvm-svn: 30315
2006-09-14 05:49:10 +00:00
Devang Patel e480d2a2d7 GlobalValue with InternalLinkage may have operands with ExternalLinkage
type. Do not ignore these operands while finding external references.

llvm-svn: 30310
2006-09-14 01:35:13 +00:00
Devang Patel 5606dd8a45 Using addPassesToEmitWholeFile is not a good idea here.
Use FunctionPassManager to do the job.

llvm-svn: 30160
2006-09-07 21:41:11 +00:00
Devang Patel ce2c1eb154 Add linker into list of LINK_COMPONENTS.
llvm-svn: 30159
2006-09-07 21:36:55 +00:00
Devang Patel 5b3510abd3 Use addPassesToEmitWholeFile() instead of addPassesToEmitFile()
llvm-svn: 30153
2006-09-07 20:20:56 +00:00
Devang Patel 5561aa7271 Add getTargetTriple() that linker can use to query target architecture.
llvm-svn: 30132
2006-09-06 20:16:28 +00:00
Devang Patel ee9f617cff Keep track of all modules crated using a name to module map.
Add private member function getMoudle().

llvm-svn: 30130
2006-09-06 18:50:26 +00:00
Devang Patel 95b7c7af2e Instead of demangling symbol name by hand, use original name, which was
used to mangle symbol name, directly.

llvm-svn: 30124
2006-09-06 00:45:52 +00:00
Devang Patel e3b9490b05 Extract target triplet from optimized module.
Untabify.

llvm-svn: 30123
2006-09-06 00:28:22 +00:00
Chris Lattner 28689ff2d0 Use LINK_COMPONENTS to specify *components* to link against instead of
using USED_LIBS to specify *libraries* to link against.

llvm-svn: 30090
2006-09-04 05:59:09 +00:00
Devang Patel 663a005fba If unable to create tmp. file on disk then return LTO_WRITE_FAILURE status.
llvm-svn: 29844
2006-08-23 16:59:25 +00:00
Reid Spencer 8db844241b For PR797:
Remove exceptions from the Path::create*OnDisk methods. Update their users
to handle error messages via arguments and result codes.

llvm-svn: 29840
2006-08-23 00:39:35 +00:00
Reid Spencer c295914b7a For PR797:
Make sys::Program::ExecuteAndWait not throw exceptions and update any
affected code. It now return -9999 to signal that the program couldn't be
executed. Only one case (in bugpoint) actually examines the result code.

llvm-svn: 29785
2006-08-21 02:04:43 +00:00
Devang Patel 151c3969b1 untabify
llvm-svn: 29686
2006-08-14 23:37:18 +00:00
Devang Patel 4500688cc7 Use mangler, instead of addUnderscore(), to get mangled name.
Now, LLVMSymbol keeps symbol original name and mangled name.

llvm-svn: 29679
2006-08-14 22:36:16 +00:00
Devang Patel 308f033e59 Collect references from globals.
llvm-svn: 29530
2006-08-04 19:10:26 +00:00
Devang Patel a108423475 Make it fit into 80-columns.
llvm-svn: 29503
2006-08-03 17:26:30 +00:00
Devang Patel 27672ee821 Fix typo.
llvm-svn: 29502
2006-08-03 17:25:36 +00:00
Devang Patel acd4b07075 Simplify. Use addprefix.
llvm-svn: 29501
2006-08-03 17:18:45 +00:00
Devang Patel d615e20ef3 Remove ARM for the moment since it is a work in progress.
llvm-svn: 29495
2006-08-03 16:14:09 +00:00
Devang Patel 36839b8637 Add new tool, lto, to do link time optimization. This tool installs
dynamic library that linker can use to optimize llvm byte codes at
link time.

llvm-svn: 29494
2006-08-03 15:44:57 +00:00