History log of /llvm-project/llvm/lib/Linker/LinkModules.cpp (Results 251 – 275 of 515)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1...<<1112131415161718192021