summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm-c/lto.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Misc enhancements to LTO:Shuxin Yang2013-08-121-0/+12
| | | | | | | | | | | | | | | | | | | | | 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
* Fix include guards so they exactly match file names.Jakub Staszak2013-01-101-2/+2
| | | | llvm-svn: 172025
* Revert r169656.Bill Wendling2012-12-101-7/+0
| | | | | | | | 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
* Add the `lto_codegen_set_export_dynamic' function.Bill Wendling2012-12-081-0/+7
| | | | | | | | | | | | | | | | | | | | | 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
* libLTO: Add a utility method to initialize the disassemblers.Benjamin Kramer2012-11-241-0/+7
| | | | | | | | | | | | 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
* Remove lto_codegen_set_whole_program_optimization. It is a work in progress,Rafael Espindola2012-04-161-6/+0
| | | | | | | | | 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
* s/lto_codegen_whole_program_optimization/lto_codegen_set_whole_program_optim ↵Bill Wendling2012-04-091-1/+1
| | | | | | ization/ llvm-svn: 154312
* Add a hook to turn on the internalize pass through the LTO interface.Bill Wendling2012-04-091-2/+6
| | | | llvm-svn: 154306
* Cleanup whitespace and remove unneeded 'extern' keyword on function definitions.Bill Wendling2012-03-311-16/+17
| | | | llvm-svn: 153802
* Organize LLVM C API docs into doxygen modules; add docsGregory Szorc2012-03-211-0/+10
| | | | | | | | | | | | | | | | 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
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-2/+2
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Add a lto_codegen_compile_to_file to avoid producing a file, reading it toRafael Espindola2011-03-221-0/+7
| | | | | | memory and writing it back to disk. llvm-svn: 128108
* Add support in the LTO library for loading an object from the middleRafael Espindola2011-03-171-1/+9
| | | | | | of an file. llvm-svn: 127781
* Don't open the file again in the gold plugin. To be able to do this, updateRafael Espindola2011-02-081-0/+8
| | | | | | MemoryBuffer::getOpenFile to not close the file descriptor. llvm-svn: 125128
* Do not include DataTypes.h in llvm-c/lto.h.Devang Patel2011-01-071-4/+3
| | | | | | This means avoid using uint32_t. This patch reverts r112200 and fixes original problem by fixing argument type in lto.cpp. llvm-svn: 123038
* I swear I did a make clean and make before committing all this...Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120304
* Add a new scope type "LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN" for theBill Wendling2010-09-271-17/+18
| | | | | | "linker_private_weak_auto_def" linkage type for LTO. llvm-svn: 114868
* Fix prototypes.Devang Patel2010-08-261-3/+4
| | | | llvm-svn: 112200
* lto_codegen_set_gcc_path was removed.Dan Gohman2010-08-251-8/+0
| | | | llvm-svn: 112069
* Make it possible to set the cpu used for codegen.Rafael Espindola2010-08-111-0/+7
| | | | llvm-svn: 110759
* Make it possible to set the flags passed to the assembler.Rafael Espindola2010-08-101-0/+6
| | | | | | Nick, please review. llvm-svn: 110705
* Make it possible to set the target triple and expose that with an option in theRafael Espindola2010-08-091-0/+6
| | | | | | gold plugin. llvm-svn: 110604
* 80 columns.Eric Christopher2010-07-121-1/+1
| | | | llvm-svn: 108126
* llvm-c/Core.h is no longer needed in lto.h, and it brings inDan Gohman2009-07-151-1/+0
| | | | | | several unwanted dependencies. llvm-svn: 75717
* Maintain the old LTO API, by using the global context.Owen Anderson2009-07-021-6/+3
| | | | llvm-svn: 74678
* Fix the LTO header for LLVMContext changes.Owen Anderson2009-07-011-3/+5
| | | | llvm-svn: 74663
* Hold the LLVMContext by reference rather than by pointer.Owen Anderson2009-07-011-1/+1
| | | | llvm-svn: 74640
* <rdar://problem/6940611> libLTO.dylib needs to let linker specify path to ↵Nick Kledzik2009-06-041-0/+10
| | | | | | | | | | | 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
* Oops! Missed a file in my last commit.Nick Lewycky2009-04-301-0/+8
| | | | llvm-svn: 70491
* Add LTO_SYMBOL_DEFINITION_WEAKUNDEF, use that on the gold plugin.Rafael Espindola2009-04-241-0/+1
| | | | llvm-svn: 69972
* Correct strange whitespace.Nick Lewycky2009-02-061-1/+1
| | | | llvm-svn: 63927
* Add protected visibility to libLTO.Nick Lewycky2008-11-291-1/+2
| | | | llvm-svn: 60257
* Provide a hook to set the code generation debug options to investigate lto ↵Devang Patel2008-07-031-0/+5
| | | | | | failures. llvm-svn: 53119
* Use (void) instead of () in C code.Gordon Henriksen2008-05-041-3/+3
| | | | llvm-svn: 50620
* fixes from review of first commitNick Kledzik2008-02-271-3/+4
| | | | llvm-svn: 47695
* first commit of new LTO system. It is not hooked up in the ↵Nick Kledzik2008-02-261-0/+234
llvm/tools/Makefile, so no one will build it be default yet llvm-svn: 47621
OpenPOWER on IntegriCloud