Bill Wendling
4a8fc8f271
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>
llvm-svn: 169770
2012-12-10 21:33:45 +00:00
Bill Wendling
65a6ee11dd
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.
llvm-svn: 169656
2012-12-08 00:18:16 +00:00
Chandler Carruth
4d88a1c233
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.
llvm-svn: 169252
2012-12-04 10:44:52 +00:00
Rafael Espindola
0ecb8faa7c
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.
llvm-svn: 154807
2012-04-16 10:58:38 +00:00
Bill Wendling
deffc42d63
s/lto_codegen_whole_program_optimization/lto_codegen_set_whole_program_optimization/
...
llvm-svn: 154312
2012-04-09 08:32:21 +00:00
Bill Wendling
8a49d049e1
Add a hook to turn on the internalize pass through the LTO interface.
...
llvm-svn: 154306
2012-04-09 05:26:48 +00:00
Bill Wendling
152e4739a2
Cleanup whitespace and remove unneeded 'extern' keyword on function definitions.
...
llvm-svn: 153802
2012-03-31 10:44:20 +00:00
Bill Wendling
36cbf03b9b
Cleanup whitespace. Doxygenize comments. And indent to llvm coding standards.
...
llvm-svn: 153740
2012-03-30 10:29:38 +00:00
Chris Lattner
0ab5e2cded
Fix a ton of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Rafael Espindola
26b57ffa27
Add a lto_codegen_compile_to_file to avoid producing a file, reading it to
...
memory and writing it back to disk.
llvm-svn: 128108
2011-03-22 20:57:13 +00:00
Rafael Espindola
b39c7c7b17
Add support in the LTO library for loading an object from the middle
...
of an file.
llvm-svn: 127781
2011-03-17 00:36:11 +00:00
Rafael Espindola
fac373cacb
Switch LTO to use MC. This takes the linking of libxul.so from about 7m to
...
6m30.
llvm-svn: 126426
2011-02-24 21:04:06 +00:00
Rafael Espindola
56e41f7f0b
Don't open the file again in the gold plugin. To be able to do this, update
...
MemoryBuffer::getOpenFile to not close the file descriptor.
llvm-svn: 125128
2011-02-08 22:40:47 +00:00
Devang Patel
39bd6cebcd
Do not include DataTypes.h in llvm-c/lto.h.
...
This means avoid using uint32_t. This patch reverts r112200 and fixes original problem by fixing argument type in lto.cpp.
llvm-svn: 123038
2011-01-07 22:26:25 +00:00
Devang Patel
7b888fbd91
Fix prototypes.
...
llvm-svn: 112200
2010-08-26 17:47:45 +00:00
Rafael Espindola
ccab1dddd1
Make it possible to set the cpu used for codegen.
...
llvm-svn: 110759
2010-08-11 00:15:13 +00:00
Rafael Espindola
0045646633
Make it possible to set the flags passed to the assembler.
...
Nick, please review.
llvm-svn: 110705
2010-08-10 18:55:09 +00:00
Rafael Espindola
4ef89f5200
Make it possible to set the target triple and expose that with an option in the
...
gold plugin.
llvm-svn: 110604
2010-08-09 21:09:46 +00:00
Nick Lewycky
129bb4165f
Remove the GCC path from libLTO. This has been superceded by setAssemblerPath.
...
llvm-svn: 77960
2009-08-03 07:16:42 +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
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
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 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
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
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
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