- Dec 25, 2013
-
-
NAKAMURA Takumi authored
llvm-svn: 197997
-
- Dec 02, 2013
-
-
Alp Toker authored
This file hasn't been updated in years. Remove old information and point to the current documentation at GoldPlugin.rst. llvm-svn: 196100
-
- Oct 31, 2013
-
-
Rafael Espindola authored
There are two ways one could implement hiding of linkonce_odr symbols in LTO: * LLVM tells the linker which symbols can be hidden if not used from native files. * The linker tells LLVM which symbols are not used from other object files, but will be put in the dso symbol table if present. GOLD's API is the second option. It was implemented almost 1:1 in llvm by passing the list down to internalize. LLVM already had partial support for the first option. It is also very similar to how ld64 handles hiding these symbols when *not* doing LTO. This patch then * removes the APIs for the DSO list. * marks LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN all linkonce_odr unnamed_addr global values and other linkonce_odr whose address is not used. * makes the gold plugin responsible for handling the API mismatch. llvm-svn: 193800
-
- Oct 18, 2013
-
-
Rafael Espindola authored
Thanks to Milan Lenčo for noticing it. llvm-svn: 192996
-
- Oct 16, 2013
-
-
Rafael Espindola authored
Destroying the codegen also frees the path of the created object. Copy the path to a std::string. llvm-svn: 192787
-
- Oct 03, 2013
-
-
Rafael Espindola authored
Generalize the API so we can distinguish symbols that are needed just for a DSO symbol table from those that are used from some native .o. The symbols that are only wanted for the dso symbol table can be dropped if llvm can prove every other dso has a copy (linkonce_odr) and the address is not important (unnamed_addr). llvm-svn: 191922
-
Rafael Espindola authored
This makes it possible to add timers to the code generator and still use them with -plugin-opt=emit-llvm. llvm-svn: 191866
-
- Aug 12, 2013
-
-
Shuxin Yang authored
In order to appease people (in Apple) who accuse me for committing "huge change" (?) without proper review. Thank Eric for fixing a compile-warning. llvm-svn: 188204
-
Shuxin Yang authored
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
-
- Jul 23, 2013
-
-
Rafael Espindola authored
The main observation is that we never need both the filesize and the map size. When mapping a slice of a file, it doesn't make sense to request a null terminator and that would be the only case where the filesize would be used. There are other cleanups that should be done in this area: * A client should not have to pass the size (even an explicit -1) to say if it wants a null terminator or not, so we should probably swap the argument order. * The default should be to not require a null terminator. Very few clients require this, but many end up asking for it just because it is the default. llvm-svn: 186984
-
Rafael Espindola authored
The gold plugin was passing the desired map size as the file size. This was working for two reasons: * Recent version of gold provide the get_view callback, so this code was not used. * In older versions, getOpenFile was called, but the file size is never used if we don't require null terminated buffers and map size defaults to the file size. Thanks to Eli Bendersky for noticing this. I will try to make this api a bit less error prone. llvm-svn: 186978
-
- Jun 18, 2013
-
-
Rafael Espindola authored
The error message was: /home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp: In function ‘ld_plugin_status cleanup_hook()’: /home/espindola/llvm/llvm/tools/gold/gold-plugin.cpp:461:30: error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string<char>}’ through ‘...’ I will check if this was a clang or gcc issue. llvm-svn: 184138
-
- Jun 17, 2013
-
-
Rafael Espindola authored
llvm-svn: 184099
-
- Jun 13, 2013
-
-
Rafael Espindola authored
llvm-svn: 183940
-
- Dec 04, 2012
-
-
Chandler Carruth authored
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
-
- Oct 26, 2012
-
-
Rafael Espindola authored
to hack around this in the gold plugin by deleting a module if no symbol was needed. Unfortunately, the hack is wrong in the case of o module having no visible symbols but still having side effects via static constructors. The bug will have to be fixed in libLTO itself. llvm-svn: 166745
-
- Aug 27, 2012
-
-
Rafael Espindola authored
--as-needed. Patch by Felix Geyer. Fixes pr13262. llvm-svn: 162652
-
- Jun 13, 2012
-
-
Rafael Espindola authored
gold to work. Since the enum value LDPO_PIE has just been added to plugin-api.h, use a numeric constant for now so that we don't require an unreleased version of gold to build. llvm-svn: 158402
-
- Dec 23, 2011
-
-
Dylan Noblesmith authored
llvm-svn: 147197
-
- Nov 23, 2011
-
-
Rafael Espindola authored
directory. Patch by Markus Trippelsdorf. llvm-svn: 145095
-
- Nov 05, 2011
-
-
Peter Collingbourne authored
(Ninja generator requirement.) llvm-svn: 143783
-
- Oct 18, 2011
-
-
Daniel Dunbar authored
new all-targets pseudo-component. llvm-svn: 142401
-
- Sep 16, 2011
-
-
Ivan Krasin authored
gold plugin is built with Large File Support (sizeof(off_t) == 64 on i686) and the rest of LLVM is built w/o Large File Support (sizeof(off_t) == 32 on i686) which corrupts the stack. llvm-svn: 139873
-
- Sep 12, 2011
-
-
Ivan Krasin authored
llvm-svn: 139544
-
- Sep 09, 2011
-
-
Ivan Krasin authored
llvm-svn: 139340
-
- Jul 26, 2011
-
-
Nick Lewycky authored
and Jeffrey Bosboom! llvm-svn: 136066
-
- May 31, 2011
-
-
Nick Lewycky authored
from David Meyer's patch! llvm-svn: 132352
-
Nick Lewycky authored
llvm-svn: 132349
-
- May 12, 2011
-
-
Oscar Fuentes authored
inconsistent with autoconf, which by default set BINUTILS_INCDIR to empty and exclude gold from target list. Based on a patch by Haitao Li! llvm-svn: 131229
-
- May 04, 2011
-
-
Duncan Sands authored
llvm-svn: 130860
-
- Apr 07, 2011
-
-
Rafael Espindola authored
to map the file both in the linker and in the plugin. llvm-svn: 129109
-
- Mar 22, 2011
-
-
Rafael Espindola authored
memory and writing it back to disk. llvm-svn: 128108
-
- Mar 17, 2011
-
-
Rafael Espindola authored
of an file. llvm-svn: 127781
-
- Mar 11, 2011
-
-
Oscar Fuentes authored
llvm-svn: 127473
-
Oscar Fuentes authored
llvm-svn: 127471
-
Oscar Fuentes authored
other systems pending. PR9456. llvm-svn: 127466
-
- Feb 27, 2011
-
-
Rafael Espindola authored
necessary anymore. llvm-svn: 126580
-
Rafael Espindola authored
llvm-svn: 126579
-
- Feb 26, 2011
-
-
Rafael Espindola authored
llvm-svn: 126546
-
- Feb 20, 2011
-
-
Rafael Espindola authored
used by the linker and not by nm or ar. llvm-svn: 126089
-