#
f863ee29 |
| 25-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Store a DataLayout in Module.
Now that DataLayout is not a pass, store one in Module.
Since the C API expects to be able to get a char* to the datalayout description, we have to keep a std::string
Store a DataLayout in Module.
Now that DataLayout is not a pass, store one in Module.
Since the C API expects to be able to get a char* to the datalayout description, we have to keep a std::string somewhere. This patch keeps it in Module and also uses it to represent modules without a DataLayout.
Once DataLayout is mandatory, we should probably move the string to DataLayout itself since it won't be necessary anymore to represent the special case of a module without a DataLayout.
llvm-svn: 202190
show more ...
|
#
7da92ed8 |
| 20-Feb-2014 |
Eli Bendersky <eliben@google.com> |
Set the SuppressWarnings option on tool level and propagate to the library.
The SuppressWarnings flag, unfortunately, isn't very useful for custom tools that want to use the LLVM module linker. So I
Set the SuppressWarnings option on tool level and propagate to the library.
The SuppressWarnings flag, unfortunately, isn't very useful for custom tools that want to use the LLVM module linker. So I'm changing it to a parameter of the Linker, and the flag itself moves to the llvm-link tool.
For the time being as SuppressWarnings is pretty much the only "option" it seems reasonable to propagate it to Linker objects. If we end up with more options in the future, some sort of "struct collecting options" may be a better idea.
llvm-svn: 201819
show more ...
|
#
e17f3708 |
| 06-Feb-2014 |
Eli Bendersky <eliben@google.com> |
Add a -suppress-warnings option to bitcode linking.
llvm-svn: 200927
|
#
91686d6d |
| 16-Jan-2014 |
Bill Wendling <isanbard@gmail.com> |
Reapply r194218 with fix:
Move copying of global initializers below the cloning of functions.
The BlockAddress doesn't have access to the correct basic blocks until the functions have been cloned.
Reapply r194218 with fix:
Move copying of global initializers below the cloning of functions.
The BlockAddress doesn't have access to the correct basic blocks until the functions have been cloned. This causes the BlockAddress to point to the old values. Just wait until the functions have been cloned before copying the initializers. PR13163
llvm-svn: 199354
show more ...
|
#
7157bb76 |
| 14-Jan-2014 |
Nico Rieck <nico.rieck@gmail.com> |
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing furthe
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and weak ODR, the old import/export linkage types are replaced with a new separate visibility-like specifier:
define available_externally dllimport void @f() {} @Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage without dllexport. Imported globals and functions must be either declarations with external linkage, or definitions with AvailableExternallyLinkage.
llvm-svn: 199218
show more ...
|
#
9d2e0df0 |
| 14-Jan-2014 |
Nico Rieck <nico.rieck@gmail.com> |
Revert "Decouple dllexport/dllimport from linkage"
Revert this for now until I fix an issue in Clang with it.
This reverts commit r199204.
llvm-svn: 199207
|
#
e43aaf79 |
| 14-Jan-2014 |
Nico Rieck <nico.rieck@gmail.com> |
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing furthe
Decouple dllexport/dllimport from linkage
Representing dllexport/dllimport as distinct linkage types prevents using these attributes on templates and inline functions.
Instead of introducing further mixed linkage types to include linkonce and weak ODR, the old import/export linkage types are replaced with a new separate visibility-like specifier:
define available_externally dllimport void @f() {} @Var = dllexport global i32 1, align 4
Linkage for dllexported globals and functions is now equal to their linkage without dllexport. Imported globals and functions must be either declarations with external linkage, or definitions with AvailableExternallyLinkage.
llvm-svn: 199204
show more ...
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1 |
|
#
a473a2ba |
| 09-Nov-2013 |
Adrian Prantl <aprantl@apple.com> |
Revert "Move copying of global initializers below the cloning of functions."
This would cause internal symbols that are only referenced by global initializers to be removed.
This reverts commit 194
Revert "Move copying of global initializers below the cloning of functions."
This would cause internal symbols that are only referenced by global initializers to be removed.
This reverts commit 194219.
llvm-svn: 194304
show more ...
|
#
88904604 |
| 07-Nov-2013 |
Bill Wendling <isanbard@gmail.com> |
Move copying of global initializers below the cloning of functions.
The BlockAddress doesn't have access to the correct basic blocks until the functions have been cloned. This causes the BlockAddres
Move copying of global initializers below the cloning of functions.
The BlockAddress doesn't have access to the correct basic blocks until the functions have been cloned. This causes the BlockAddress to point to the old values. Just wait until the functions have been cloned before copying the initializers. PR13163
llvm-svn: 194218
show more ...
|
#
91e6f6e1 |
| 16-Oct-2013 |
Bill Wendling <isanbard@gmail.com> |
Add a 'deleteModule' method to the Linker class.
This deletes the Module ivar instead of having the LTO code generater do it. It also sets the pointer to 'NULL', so that if it's used again it will a
Add a 'deleteModule' method to the Linker class.
This deletes the Module ivar instead of having the LTO code generater do it. It also sets the pointer to 'NULL', so that if it's used again it will abort quickly.
llvm-svn: 192778
show more ...
|
#
981af002 |
| 12-Oct-2013 |
Will Dietz <wdietz2@illinois.edu> |
Add missing #include's to cctype when using isdigit/alpha/etc.
llvm-svn: 192519
|
#
3fa50f9b |
| 16-Sep-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement function prefix data as an IR feature.
Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html
Differential Revision: http://llvm-reviews.chandlerc.com/D1191
Implement function prefix data as an IR feature.
Previous discussion: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/063909.html
Differential Revision: http://llvm-reviews.chandlerc.com/D1191
llvm-svn: 190773
show more ...
|
#
fac3a018 |
| 04-Sep-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Error on linking appending globals with different unnamed_addr.
llvm-svn: 189950
|
#
fd9a9415 |
| 04-Sep-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix linking of unnamed_addr in functions.
llvm-svn: 189945
|
#
d4885dae |
| 04-Sep-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix linking of unnamed_addr.
This was regression from r134829. When linking we have to be conservative. If one of the symbols has a significant address, then the result should have it too.
llvm-svn
Fix linking of unnamed_addr.
This was regression from r134829. When linking we have to be conservative. If one of the symbols has a significant address, then the result should have it too.
llvm-svn: 189935
show more ...
|
Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3 |
|
#
f6f121e2 |
| 28-May-2013 |
James Molloy <james.molloy@arm.com> |
Extend RemapInstruction and friends to take an optional new parameter, a ValueMaterializer.
Extend LinkModules to pass a ValueMaterializer to RemapInstruction and friends to lazily create Functions
Extend RemapInstruction and friends to take an optional new parameter, a ValueMaterializer.
Extend LinkModules to pass a ValueMaterializer to RemapInstruction and friends to lazily create Functions for lazily linked globals. This is a big win when linking small modules with large (mostly unused) library modules.
llvm-svn: 182776
show more ...
|
Revision tags: llvmorg-3.3.0-rc2, llvmorg-3.3.0-rc1 |
|
#
aa9918aa |
| 04-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a performance bug in the Linker.
Now that we hava a convinient place to keep it, remeber the set of identified structs as we merge modules.
This speeds up the linking of all the bitcode files i
Fix a performance bug in the Linker.
Now that we hava a convinient place to keep it, remeber the set of identified structs as we merge modules.
This speeds up the linking of all the bitcode files in clang with the gold plugin and -plugin-opt=emit-llvm (i.e., link only, no codegen) from 5:25 minutes to 13.6 seconds!
Patch by Xiaofei Wan!
llvm-svn: 181104
show more ...
|
#
287f18b4 |
| 04-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Implement Linker::LinkModules with Linker::linkInModule.
Flipping which one is the implementation will let us optimize linkInModule.
llvm-svn: 181102
|
#
3df61b7b |
| 04-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Now that Linker.cpp is almost empty, merge it into LinkModules.cpp.
Also remove unused includes.
llvm-svn: 181100
|
#
dec20e43 |
| 01-May-2013 |
Filip Pizlo <fpizlo@apple.com> |
This patch breaks up Wrap.h so that it does not have to include all of the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/.
This new file just contains
This patch breaks up Wrap.h so that it does not have to include all of the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/.
This new file just contains the macros for defining different wrap/unwrap methods.
The calls to those macros, as well as any custom wrap/unwrap definitions (like for array of Values for example), are put into corresponding C++ headers.
Doing this required some #include surgery, since some .cpp files relied on the fact that including Wrap.h implicitly caused the inclusion of a bunch of other things.
This also now means that the C++ headers will include their corresponding C API headers; for example Value.h must include llvm-c/Core.h. I think this is harmless, since the C API headers contain just external function declarations and some C types, so I don't believe there should be any nasty dependency issues here.
llvm-svn: 180881
show more ...
|
#
04d4e931 |
| 22-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Move C++ code out of the C headers and into either C++ headers or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM.
llvm-svn: 180063
|
#
fa228782 |
| 27-Mar-2013 |
Bill Wendling <isanbard@gmail.com> |
Specutively revert r178130.
This may be causing a failure on some buildbots:
Referencing function in another module! tail call fastcc void @_ZL11EvaluateOpstPtRj(i16 zeroext %17, i16* %Vals, i32*
Specutively revert r178130.
This may be causing a failure on some buildbots:
Referencing function in another module! tail call fastcc void @_ZL11EvaluateOpstPtRj(i16 zeroext %17, i16* %Vals, i32* %NumVals), !dbg !219 Referencing function in another module! tail call fastcc void @_ZL11EvaluateOpstPtRj(i16 zeroext %19, i16* %Vals, i32* %NumVals), !dbg !221 Broken module found, compilation aborted! Stack dump: 0. Running pass 'Function Pass Manager' on module 'ld-temp.o'. 1. Running pass 'Module Verifier' on function '@_ZL11EvaluateOpstPtRj' clang: error: unable to execute command: Illegal instruction: 4 clang: error: linker command failed due to signal (use -v to see invocation)
<rdar://problem/13516485>
llvm-svn: 178156
show more ...
|
#
ec25de42 |
| 27-Mar-2013 |
James Molloy <james.molloy@arm.com> |
Improve performance of LinkModules when linking with modules with large numbers of functions which link lazily. Instead of creating and destroying function prototypes irrespective of if they are used
Improve performance of LinkModules when linking with modules with large numbers of functions which link lazily. Instead of creating and destroying function prototypes irrespective of if they are used, only create them if they are used.
llvm-svn: 178130
show more ...
|
#
0f7fd36f |
| 19-Mar-2013 |
Eli Bendersky <eliben@google.com> |
The Linker interface has some dead code after the cleanup in r172749 (and possibly others). The attached patch removes it, and tries to update comments accordingly.
llvm-svn: 177406
|
#
970cc634 |
| 08-Mar-2013 |
Eli Bendersky <eliben@google.com> |
Clean up out-of-date comments and some stray whitespace
llvm-svn: 176729
|