Torok Edwin
c25e7581b9
assert(0) -> LLVM_UNREACHABLE.
...
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11 20:10:48 +00:00
Owen Anderson
e9b11b4313
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:03:57 +00:00
Owen Anderson
3d29df3e8a
Push LLVMContext through GlobalVariables and IRBuilder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 01:26:06 +00:00
Owen Anderson
c9ab7bf98f
LLVM Context-ification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74948 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 21:07:14 +00:00
Owen Anderson
4434ed44c4
Make the use of const with respect to LLVMContext sane. Hopefully this is the last time, for the
...
moment, that I will need to make far-reaching changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74655 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 23:13:44 +00:00
Owen Anderson
31895e7359
Hold the LLVMContext by reference rather than by pointer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 21:22:36 +00:00
Owen Anderson
8b477ed579
Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
...
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 16:58:40 +00:00
Chris Lattner
266c7bbbbc
Add a new "available_externally" linkage type. This is intended
...
to support C99 inline, GNU extern inline, etc. Related bugzilla's
include PR3517, PR3100, & PR2933. Nothing uses this yet, but it
appears to work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-13 05:44:34 +00:00
Duncan Sands
a05ef5e107
Apply ODR linkage changes accidentally dropped during
...
final cleaning. This fixes a bunch of testsuite failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66380 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-08 13:35:23 +00:00
Duncan Sands
667d4b8de6
Introduce new linkage types linkonce_odr, weak_odr, common_odr
...
and extern_weak_odr. These are the same as the non-odr versions,
except that they indicate that the global will only be overridden
by an *equivalent* global. In C, a function with weak linkage can
be overridden by a function which behaves completely differently.
This means that IP passes have to skip weak functions, since any
deductions made from the function definition might be wrong, since
the definition could be replaced by something completely different
at link time. This is not allowed in C++, thanks to the ODR
(One-Definition-Rule): if a function is replaced by another at
link-time, then the new function must be the same as the original
function. If a language knows that a function or other global can
only be overridden by an equivalent global, it can give it the
weak_odr linkage type, and the optimizers will understand that it
is alright to make deductions based on the function body. The
code generators on the other hand map weak and weak_odr linkage
to the same thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66339 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-07 15:45:40 +00:00
Mikhail Glushenkov
c834bbf558
Oops.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65942 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 10:04:23 +00:00
Mikhail Glushenkov
eba2cb0d5a
80-column violation + trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65936 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-03 07:22:23 +00:00
Rafael Espindola
bb46f52027
Add the private linkage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62279 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-15 20:18:42 +00:00
Misha Brukman
9b8f542e27
Removed trailing whitespace from Makefiles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-09 16:44:42 +00:00
Dan Gohman
5d9759bd04
Make comments and code for QuietWarnings and QuietErrors
...
actually correspond to what their names suggest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 17:57:20 +00:00
Anton Korobeynikov
d13726f1e9
Also properly handle linking of strong alias and weak global
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57595 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 20:10:50 +00:00
Anton Korobeynikov
e655e37032
Properly handle linking of strong alias with weak function, this fixes PR2883
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57594 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15 20:10:08 +00:00
Duncan Sands
5df3186f59
Rename isWeakForLinker to mayBeOverridden. Use it
...
instead of hasWeakLinkage in a bunch of optimization
passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56782 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-29 11:25:42 +00:00
Oscar Fuentes
3d01fc7de8
Initial support for the CMake build system.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-22 01:08:49 +00:00
Anton Korobeynikov
19e861a4ff
Make safer variant of alias resolution routine to be default
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09 20:05:04 +00:00
Anton Korobeynikov
832b2a9cd8
Fix incorrect linker behaviour: we shouldn't resolve weak aliases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-09 18:23:48 +00:00
Chris Lattner
6157e383c4
Reimplement LinkFunctionProtos in terms of GetLinkageResult. This fixes
...
the second half of link-global-to-func.ll and causes some minor changes in
messages.
There are two TODOs here. First, this causes a regression in
2008-07-06-AliasWeakDest.ll, which is now failing (so I xfailed it). Anton,
I would really appreciate it if you could take a look at this. It should be
a matter of adding proper alias support to GetLinkageResult, and was probably
already a latent bug that would manifest with globals.
The second todo is to reimplement LinkAlias in the same pattern as
function and global linking. This should be pretty straight-forward for
someone who knows aliases, but isn't a requirement for correctness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53548 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 07:23:24 +00:00
Chris Lattner
ae1132d2b8
don't do any linkage, not even type resolution, of symbols that have
...
internal linkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53547 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 06:52:19 +00:00
Chris Lattner
d1ec48c641
implement linking of globals to functions, in one direction
...
(replacing a function with a global). This is needed when building
llvm itself with LTO on darwin, because of the EXPLICIT_SYMBOL hack
in lib/system/DynamicLibrary.cpp.
Implementation of linking the other way will need to wait for a
cleanup of LinkFunctionProtos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53546 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 06:49:45 +00:00
Chris Lattner
0bb8757997
wrap long lines, remove some code from a non-assert build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53545 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-14 05:52:33 +00:00
Chris Lattner
5ed2ba2668
The source and dest of an alias are *not* required to have the same type,
...
though that would be nice and make sense :). Patch by Nathan Keynes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53387 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 01:09:33 +00:00
Dan Gohman
6b345ee9b2
Make DenseMap's insert return a pair, to more closely resemble std::map.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-07 17:46:23 +00:00
Anton Korobeynikov
80585f1daa
Add convenient helper for checking whether global is weak in linker sense
...
having weak or linkonce or common or extweak LLVM linkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53158 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-05 23:48:30 +00:00
Anton Korobeynikov
f88bc65932
Override weak stuff during linking of aliases. This fixes PR2463.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53156 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-05 23:33:22 +00:00
Anton Korobeynikov
194c2cef8a
Properly link alias and function decls. This fixes PR2146
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53154 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-05 23:03:21 +00:00
Chris Lattner
a534b0f7bf
when linking globals, make sure to preserve the address space of the global.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52810 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-27 03:10:24 +00:00
Chris Lattner
ec91ccba3c
Fix an error handling redefinition of linkonce functions where the
...
types differ. Patch by Nathan Keynes!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52527 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-20 05:29:39 +00:00
Chris Lattner
fc196f9ee9
Add a missing ~ (dtor became ctor) which caused crashes on a bunch of stuff.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52374 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 23:06:51 +00:00
Chris Lattner
a4477f9b31
stop making PATypeHolder's so crazily.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52364 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 21:17:12 +00:00
Chris Lattner
62a81a1eba
use a real associative container for type association instead of using
...
a vector with a linear search. This speeds up the linking testcase
in PR1860 from 0.965s to 0.385s on my system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52357 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 21:00:18 +00:00
Chris Lattner
56539659eb
bail out sooner if we have two concrete but different types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52351 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 20:03:01 +00:00
Chris Lattner
9ddf2c898f
simplify some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52350 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 19:55:40 +00:00
Chris Lattner
849dcd928a
Apply a patch from Nathan Keynes, which speeds up llvm-link on
...
the testcases in PR1860 from taking more than 1 hour (when I killed it)
to taking 1s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52347 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 19:48:08 +00:00
Chris Lattner
f6f4f7a149
handle vectors. Any integers that got here would necessarily be different already.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52341 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:27:53 +00:00
Chris Lattner
bc1c82a0f7
Simplify ResolveTypes by pulling the null case out into the one
...
client that cares and simplifying its control flow.
Remove the DestST argument to ResolveTypes and RecursiveResolveTypes*
which are dead now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52340 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:19:05 +00:00
Chris Lattner
371ca83d8b
simplify RecursiveResolveTypes and ResolveTypes by pulling the naming out of
...
ResolveTypes into the one place that needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52338 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-16 18:11:40 +00:00
Chris Lattner
822143e6f7
use 'continue' to make the function linker simpler. When linking a strong
...
function into a weak function, zap the weak function body so that the
strong one overrides it. This fixes PR2410
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52135 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09 07:47:34 +00:00
Chris Lattner
8246849829
minor changes to short circuit the 'no linkage' case earlier for
...
function bodies. We now don't try to unify types or handling type
mismatches if when linking an internal foo to an external foo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52134 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09 07:36:11 +00:00
Chris Lattner
bc3d1c7e4c
simplify function visibility handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52133 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-09 07:25:28 +00:00
Duncan Sands
28c3cff825
Factor code to copy global value attributes like
...
the section or the visibility from one global
value to another: copyAttributesFrom. This is
particularly useful for duplicating functions:
previously this was done by explicitly copying
each attribute in turn at each place where a
new function was created out of an old one, with
the result that obscure attributes were regularly
forgotten (like the collector or the section).
Hopefully now everything is uniform and nothing
is forgotten.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51567 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-26 19:58:59 +00:00
Gabor Greif
b1dbcd886a
Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51143 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 10:04:30 +00:00
Dale Johannesen
aafce77b17
Add CommonLinkage; currently tentative definitions
...
are represented as "weak", but there are subtle differences
in some cases on Darwin, so we need both. The intent
is that "common" will behave identically to "weak" unless
somebody changes their target to do something else.
No functional change as yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51118 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-14 20:12:51 +00:00
Anton Korobeynikov
caa8ae8125
Fix linking of internal aliases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50950 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-10 14:41:43 +00:00
Anton Korobeynikov
0b12ecf6ff
Turn StripPointerCast() into a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50836 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-07 22:54:15 +00:00
Anton Korobeynikov
149a315369
If weak GlobalVariable was bitcast'ed to different type during linking
...
we will need to strip all casts for intializer lookup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50776 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06 22:52:54 +00:00
Owen Anderson
6bc41e8a74
Revert r49614. As Dan pointed out, some of these aren't correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49657 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14 17:38:21 +00:00
Owen Anderson
386ea355e7
Replace calls of the form V1->setName(V2->getName()) with V1->takeName(V2),
...
which is significantly more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49614 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-13 19:15:17 +00:00
Gabor Greif
051a950000
API changes for class Use size reduction, wave 1.
...
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06 20:25:17 +00:00
Chris Lattner
038112a4e0
Change the MemoryBuffer::getFile* methods to take just a pointer to the
...
start of a filename, not a filename+length. All clients can produce a
null terminated name, and the system api's require null terminated
strings anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49041 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01 18:04:03 +00:00
Anton Korobeynikov
5241957b1f
Ultimately resolve aliases during linking, if possible
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48259 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 22:51:09 +00:00
Anton Korobeynikov
7fcb6b65c9
Fix thinko: alias always defines new symbol. Even is aliasee itself is undefined.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48203 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-11 00:24:53 +00:00
Anton Korobeynikov
ed61c0bc76
Add sanity checks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48184 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:36:53 +00:00
Anton Korobeynikov
b8cdaf7099
Typo: 'function' => 'alias'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48183 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:36:35 +00:00
Anton Korobeynikov
817bf2aeb2
Syntactic sugar'ify stuff :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48182 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:36:08 +00:00
Anton Korobeynikov
aeb09967fd
Always run 'make check' :) Fix fallout from prev. commit: query for possible
...
alias destination only if we don't have anything to link to
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48181 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:35:31 +00:00
Anton Korobeynikov
1438b9dd82
Make error messages to have common style
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48180 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:34:46 +00:00
Anton Korobeynikov
01f6939935
Properly link globals with aliases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:34:28 +00:00
Anton Korobeynikov
968e39a5ab
Remove the LinkGlobal weirderness in common linking phase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:33:53 +00:00
Anton Korobeynikov
2b48ef0450
Typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48176 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 22:33:22 +00:00
Ted Kremenek
58d5e05157
Fix some compilation errors on msvc:
...
- "Redefinition of I" (iterator masks previous definition)
- include missing header file
Patch by Argiris Kirtzidis!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48115 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-09 18:32:50 +00:00
Anton Korobeynikov
75c7915c3a
Clarify some important bits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48010 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 18:34:50 +00:00
Anton Korobeynikov
e20c814518
Small cleanup: propagate thread-localness via generic routine.
...
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07 18:32:18 +00:00
Anton Korobeynikov
9f2ee70366
Missed patch from my last commit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47977 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 23:21:39 +00:00
Anton Korobeynikov
3db9191baf
Resolve aliases to aliasees, where possible
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47975 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 23:08:47 +00:00
Anton Korobeynikov
b5a4bd86df
Handle functions as targets during linking of aliases as well
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47974 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 23:08:16 +00:00
Anton Korobeynikov
58887bc593
Try hard to link aliases. Checks can be too strict by now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47968 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 22:22:46 +00:00
Anton Korobeynikov
4fb2873bb4
Remember the source->dest mapping when copying aliases. This fixes PR2054
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 15:27:21 +00:00
Anton Korobeynikov
1c01a72d4d
Clarify the state-of-the-art
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47944 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-05 15:11:00 +00:00
Anton Korobeynikov
eba0415600
Properly populate lists of defined/undefined symbols in presence of aliases
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47900 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-04 20:16:11 +00:00
Lauro Ramos Venancio
6b0f14b96a
Emit an error when a library is not found. It is the GNU ld behavior and it is expected by the configure scripts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47674 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-27 17:20:32 +00:00
Anton Korobeynikov
a27694d7aa
And final pack of warnings silencing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47372 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-20 11:27:04 +00:00
Chris Lattner
f27dfcb210
random cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47334 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-19 18:49:08 +00:00
Chris Lattner
4ee451de36
Remove attribution from file headers, per discussion on llvmdev.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:36:04 +00:00
Chris Lattner
fc643c5e88
remove attribution from lib Makefiles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:09:26 +00:00
Anton Korobeynikov
650d5053bf
Ignore functions with internal linkages during linking. This snipped mimics the
...
behaviour of LinkGlobals() function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-27 23:21:57 +00:00
Gordon Henriksen
194c90ed2a
Fixing several transforms which would drop the collector attribute
...
when copying functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-25 22:16:06 +00:00
Duncan Sands
dc024674ff
Fix PR1146: parameter attributes are longer part of
...
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-27 13:23:08 +00:00
Dan Gohman
c318329a10
Use correct parentheses with the '&& "..."' idiom in an assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42750 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 15:13:30 +00:00
Chris Lattner
97f8b0900a
Fix PR1611 - Visibility should be ignored for a declaration
...
when a definition's visibility is different. Likewise, the
visibility of two declarations mismatching is not an error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41174 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-19 22:22:54 +00:00
Reid Spencer
49068bf311
Improve error handling in the linker by:
...
1. Eliminate redundant error messages. LinkInFile and LinkInArchive
already call the error() method in each case so there's no use
telling the user again that an item couldn't be linked in.
2. Improve the formatting of error messages (separating content).
3. Change the wording for the warning about unrecognized files. Make
it clear that the file is being ignored.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41121 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 07:47:30 +00:00
Reid Spencer
af11dc00a0
Ensure that error messages a propagated from calls to LinkInModule so they get
...
reported to the end user.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41117 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 07:23:37 +00:00
Reid Spencer
53424ad141
Allow the filename "-" to be a place holder for stdin. This allows directing
...
stdin through llvm-ld and llvm-link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40938 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-08 19:52:29 +00:00
Reid Spencer
858dd546bb
Report an error if one occurs in releaseModule.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-22 21:39:37 +00:00
Gabor Greif
e75ca3d809
eliminate residual cruft related to recognizing bytecode
...
files.
bitcode files are the only LLVM format left.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37945 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-06 13:38:17 +00:00
Gabor Greif
a99be51bf5
Here is the bulk of the sanitizing.
...
Almost all occurrences of "bytecode" in the sources have been eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-05 17:07:56 +00:00
Lauro Ramos Venancio
00d8a84b44
Fix a bug in my previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37778 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-28 20:06:38 +00:00
Lauro Ramos Venancio
31ed0fb804
When linking two modules, we should copy the alias.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-28 19:02:54 +00:00
Lauro Ramos Venancio
9613e871d2
Propagate alignment, section name and visibility when linking "appending
...
global values".
Fix noinline linkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37482 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-06 22:01:12 +00:00
Chris Lattner
4bcca0f2ac
switch this to bitcode instead of bytecode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 09:29:13 +00:00
Chris Lattner
1a019e5ffd
add bitcode support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36855 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 06:02:13 +00:00
Reid Spencer
c9a83e4f19
If an archive is not recognized as an LLVM bytecode archive then declare
...
that it is native so that the linker will pass it on downstream. This avoids
a problem where the native link line fails because there is both a .so and
a .a file. The .a file gets processed as bytecode and then dropped from the
command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:29:39 +00:00
Reid Spencer
126b1b8683
Dependent libraries could be native too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36582 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:00:10 +00:00
Anton Korobeynikov
9cd3ccf506
Implement visibility checking during linking. Also implement protected
...
visibility support for bitcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 20:56:48 +00:00
Lauro Ramos Venancio
c763552299
Implement the "thread_local" keyword.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35950 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-12 18:32:50 +00:00
Reid Spencer
18da072088
For PR1146:
...
Put the parameter attributes in their own ParamAttr name space. Adjust the
rest of llvm as a result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-11 02:44:20 +00:00