| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Add some helper classes for partitions. They are designed in a
way such that the top-level LTO driver will not see much difference
with or without partitioning.
2. Introduce work-dir. Now all intermediate files generated during
LTO phases will be saved under work-dir. User can specify the workdir
via -lto-workdir=/path/to/dir. By default the work-dir will be
erased before linker exit. To keep the workdir, do -lto-keep, or -lto-keep=1.
TODO: Erase the workdir, if the linker exit prematurely.
We are currently not able to remove directory on signal. The support
routines simply ignore directory.
3. Add one new API lto_codegen_get_files_need_remove().
Linker and LTO plugin will communicate via this API about which files
(including directories) need to removed before linker exit.
llvm-svn: 188188
|
|
|
|
| |
llvm-svn: 172025
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
Necessary to give disassembler users (like darwin's otool) a possibility to
dlopen libLTO and still initialize the required LLVM bits. This used to go
through libMCDisassembler but that's a gross layering violation, the MC layer
can't pull in functions from the targets. Adding a function to libLTO is a bit
of a hack but not worse than exposing other disassembler bits from libLTO.
Fixes PR14362.
llvm-svn: 168545
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
ization/
llvm-svn: 154312
|
|
|
|
| |
llvm-svn: 154306
|
|
|
|
| |
llvm-svn: 153802
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gives a lot of love to the docs for the C API. Like Clang's
documentation, the C API is now organized into a Doxygen "module"
(LLVMC). Each C header file is a child of the main module. Some modules
(like Core) have a hierarchy of there own. The produced documentation is
thus better organized (before everything was in one monolithic list).
This patch also includes a lot of new documentation for APIs in Core.h.
It doesn't document them all, but is better than none. Function docs are
missing @param and @return annotation, but the documentation body now
commonly provides help details (like the expected llvm::Value sub-type
to expect).
llvm-svn: 153157
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
|
|
| |
memory and writing it back to disk.
llvm-svn: 128108
|
|
|
|
|
|
| |
of an file.
llvm-svn: 127781
|
|
|
|
|
|
| |
MemoryBuffer::getOpenFile to not close the file descriptor.
llvm-svn: 125128
|
|
|
|
|
|
| |
This means avoid using uint32_t. This patch reverts r112200 and fixes original problem by fixing argument type in lto.cpp.
llvm-svn: 123038
|
|
|
|
| |
llvm-svn: 120304
|
|
|
|
|
|
| |
"linker_private_weak_auto_def" linkage type for LTO.
llvm-svn: 114868
|
|
|
|
| |
llvm-svn: 112200
|
|
|
|
| |
llvm-svn: 112069
|
|
|
|
| |
llvm-svn: 110759
|
|
|
|
|
|
| |
Nick, please review.
llvm-svn: 110705
|
|
|
|
|
|
| |
gold plugin.
llvm-svn: 110604
|
|
|
|
| |
llvm-svn: 108126
|
|
|
|
|
|
| |
several unwanted dependencies.
llvm-svn: 75717
|
|
|
|
| |
llvm-svn: 74678
|
|
|
|
| |
llvm-svn: 74663
|
|
|
|
| |
llvm-svn: 74640
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 70491
|
|
|
|
| |
llvm-svn: 69972
|
|
|
|
| |
llvm-svn: 63927
|
|
|
|
| |
llvm-svn: 60257
|
|
|
|
|
|
| |
failures.
llvm-svn: 53119
|
|
|
|
| |
llvm-svn: 50620
|
|
|
|
| |
llvm-svn: 47695
|
|
llvm/tools/Makefile, so no one will build it be default yet
llvm-svn: 47621
|