Commit Graph

57 Commits

Author SHA1 Message Date
Rafael Espindola 4a9b18d07b Correctly merge available_externally and regular definitions when they have
different visibilities.

llvm-svn: 124650
2011-02-01 05:33:52 +00:00
Chris Lattner 23289c385a fix PR9015, a crash linking recursive metadata.
llvm-svn: 124099
2011-01-24 03:18:24 +00:00
Michael J. Spencer 4e51541319 Make everyone happy this time.
llvm-svn: 123599
2011-01-16 21:34:34 +00:00
Michael J. Spencer 12a620fd58 Try and fix this test. For some reason llvm-ar thinks that the file exists when
it shouldn't, but I have no way to verify that it doesn't actually exist on the
buildbot.

llvm-svn: 123594
2011-01-16 20:52:58 +00:00
Michael J. Spencer 2ff30b84f8 Revert "Archive: Replace all internal uses of PathV1 with PathV2. The external API still uses PathV1."
llvm-svn: 123557
2011-01-16 01:43:22 +00:00
Chris Lattner c703334ff1 one of michael's recent patches broke this, temporarily disable
it so the bots go green

llvm-svn: 123555
2011-01-16 01:04:49 +00:00
Rafael Espindola 489e505adf Allow unnamed_addr on declarations.
llvm-svn: 123529
2011-01-15 08:15:00 +00:00
Rafael Espindola 9ebe8ce68c Keep unnamed_addr when linking.
llvm-svn: 123364
2011-01-13 05:12:34 +00:00
Rafael Espindola e73bc89093 Fix PR8300 by remembering to keep the bitcast in all cases.
llvm-svn: 116788
2010-10-19 02:02:57 +00:00
Dan Gohman ca26f79051 Reapply r112091 and r111922, support for metadata linking, with a
fix: add a flag to MapValue and friends which indicates whether
any module-level mappings are being made. In the common case of
inlining, no module-level mappings are needed, so MapValue doesn't
need to examine non-function-local metadata, which can be very
expensive in the case of a large module with really deep metadata
(e.g. a large C++ program compiled with -g).

This flag is a little awkward; perhaps eventually it can be moved
into the ClonedCodeInfo class.

llvm-svn: 112190
2010-08-26 15:41:53 +00:00
Daniel Dunbar 95fe13c720 Revert r112091, "Remap metadata attached to instructions when remapping
individual ...", which depends on r111922, which I am reverting.

llvm-svn: 112157
2010-08-26 03:48:08 +00:00
Dan Gohman fd824487a3 Remap metadata attached to instructions when remapping individual
instructions, not when remapping modules.

llvm-svn: 112091
2010-08-25 21:36:50 +00:00
Dan Gohman e4532f30b1 When a constant's type is refined, update the constant in place
instead of cloning and RAUWing it.

 - Make AbstractTypeUser a friend of Value so that it can offer
   its subclasses a way to update a Value's type in place. This
   is better than a universally visible setType method on Value,
   and it's sufficient for the immediate need.

 - Eliminate the constant "convert" functions. This eliminates a
   lot of logic duplication, and fixes a complicated bug where a
   constant can't actually be cloned during the type refinement
   process because some of the types that its folder needs are
   half-destroyed, being in the middle of refinement themselves.

 - Move the getValType functions from being static overloaded
   functions in Constants.cpp to be members of class template
   specializations in ConstantsContext.h. This means that the
   code ends up getting instantiated twice, however it also
   makes it possible to eliminate all "convert" functions, so
   it's not a big net code size increase. And if desired, the
   duplicate instantiations could be eliminated with some
   reorganization.

llvm-svn: 81861
2009-09-15 15:58:07 +00:00
Dan Gohman f3a9e18dd6 Use llvm-link -S instead of using llvm-dis.
llvm-svn: 81860
2009-09-15 15:38:31 +00:00
Daniel Dunbar faa0fa5c83 Rename %S metavar to %M (clang uses %S for the basename of the test file).
llvm-svn: 81087
2009-09-05 12:38:35 +00:00
Devang Patel 794a40dd61 There is not any need to copy metadata while merging modules.
llvm-svn: 80941
2009-09-03 20:35:57 +00:00
Dan Gohman 0d4bbf2c4a Remove obsolete -f flags.
llvm-svn: 79992
2009-08-25 15:38:29 +00:00
Devang Patel 5c310be0ff Link NamedMDNodes.
llvm-svn: 78696
2009-08-11 18:01:24 +00:00
Devang Patel 4d4a2e09a9 Link metadata.
llvm-svn: 78652
2009-08-11 06:46:31 +00:00
Chris Lattner ac161bff07 Reimplement the old and horrible bison parser for .ll files with a nice
and clean recursive descent parser.

This change has a couple of ramifications:
1. The parser code is about 400 lines shorter (in what we maintain, not
   including what is autogenerated).
2. The code should be significantly faster than the old code because we 
   don't have to work around bison's poor handling of datatypes with 
   ctors/dtors.  This also makes the code much more resistant to memory 
   leaks.
3. We now get caret diagnostics from the .ll parser, woo.
4. The actual diagnostics emited from the parser are completely different
   so a bunch of testcases had to be updated.
5. I now disallow "%ty = type opaque %ty = type i32".  There was no good
   reason to support this, it was just an accident of the old 
   implementation.  I have no reason to think that anyone is actually using
   this.
6. The syntax for sticking a global variable has changed to make it 
   unambiguous.  I don't think anyone is depending on this since only clang
   supports this and it is not solid yet, so I'm not worried about anything
   breaking.
7. This gets rid of the last use of bison, and along with it the .cvs files.
   I'll prune this from the makefiles as a subsequent commit.

There are a few minor cleanups that can be done after this commit (suggestions
welcome!) but this passes dejagnu testing and is ready for its time in the
limelight.

llvm-svn: 61558
2009-01-02 07:01:27 +00:00
Anton Korobeynikov ba13e8db17 Add global variable to test for consistency
llvm-svn: 57597
2008-10-15 20:22:44 +00:00
Anton Korobeynikov 99ed98ab40 This is not failing anymore
llvm-svn: 57596
2008-10-15 20:13:10 +00:00
Chris Lattner 0ead7a50b2 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.

llvm-svn: 53548
2008-07-14 07:23:24 +00:00
Chris Lattner 34fc5a0eaa 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.

llvm-svn: 53546
2008-07-14 06:49:45 +00:00
Anton Korobeynikov 6ef6af2cec Testcase for PR2463
llvm-svn: 53157
2008-07-05 23:33:40 +00:00
Anton Korobeynikov 62117b7296 Testcase for PR2146
llvm-svn: 53155
2008-07-05 23:03:46 +00:00
Duncan Sands 8269d5ca0a Use the c modifier to tell llvm-ar not to issue a
warning when creating the archive (the warning
causes the test to fail).

llvm-svn: 52824
2008-06-27 10:52:12 +00:00
Chris Lattner b32a9ef00f when linking globals, make sure to preserve the address space of the global.
llvm-svn: 52810
2008-06-27 03:10:24 +00:00
Chris Lattner d53bd2da98 Fix an error handling redefinition of linkonce functions where the
types differ.  Patch by Nathan Keynes!

llvm-svn: 52527
2008-06-20 05:29:39 +00:00
Evan Cheng 2d788ce3fb Fix some tests.
llvm-svn: 52245
2008-06-12 21:23:38 +00:00
Matthijs Kooijman a2f743eaff Fix some escaping and quoting in RUN lines, mainly involving { and <. In two
cases quoting of <{ didn't work out, so I changed the grep to check for }>
instead.

This fixes 7 testcases that were not properly running before.

llvm-svn: 52182
2008-06-10 16:04:47 +00:00
Gabor Greif d01c562e48 Eliminate questionable syntax for stdin redirection. This probably also speeds things up a bit.
llvm-svn: 51357
2008-05-20 22:07:21 +00:00
Gabor Greif 1e427c3264 sabre brings to my attention that the 'tr' suffix is also obsolete
llvm-svn: 51349
2008-05-20 21:00:03 +00:00
Gabor Greif f45ff35bfe Rename the last test with .llx extension to .ll, resolve duplicate test by renaming to isnan2. Now that no test has llx ending there is no need to search for them from dg.exp too.
llvm-svn: 51328
2008-05-20 19:52:04 +00:00
Dan Gohman 2cdcf2bd5f Update old-style syntax in some "not grep" tests.
llvm-svn: 50560
2008-05-01 23:50:07 +00:00
Anton Korobeynikov 1d9848e391 This passes now
llvm-svn: 48178
2008-03-10 22:34:11 +00:00
Tanya Lattner 5f4b355f20 Remove llvm-upgrade and update tests.
llvm-svn: 48137
2008-03-10 07:21:50 +00:00
Anton Korobeynikov 971a4660a0 Temporary XFAIL the test, until I'll commit a fix
llvm-svn: 48110
2008-03-09 16:24:04 +00:00
Tanya Lattner aa6f5c9ddd Remove llvm-upgrade and update tests.
llvm-svn: 48103
2008-03-09 08:16:40 +00:00
Andrew Lenharth e2e69ff426 much simpler test case
llvm-svn: 48045
2008-03-08 02:05:22 +00:00
Andrew Lenharth b04bde94c1 add dropped section test case for PR2123
llvm-svn: 48033
2008-03-07 21:19:43 +00:00
Anton Korobeynikov 6be42d2e23 Fix test not to emit junk into source directory
llvm-svn: 47947
2008-03-05 15:44:25 +00:00
Anton Korobeynikov f8e03a9b3b Testcase for PR2054
llvm-svn: 47946
2008-03-05 15:43:58 +00:00
Dan Gohman b582867567 Use not instead of ignore when an exit status is expected to always
be non-zero.

llvm-svn: 44866
2007-12-11 15:50:23 +00:00
Reid Spencer 789eb6ce87 Add a test to ensure that obvious link messages are actually produced on
the standard error.

llvm-svn: 41116
2007-08-16 07:22:43 +00:00
John Criswell 2660cef6d7 Convert .cvsignore files
llvm-svn: 37801
2007-06-29 16:35:07 +00:00
Reid Spencer 7aed8fccfd Add a test case for PR1434
llvm-svn: 37203
2007-05-18 03:46:50 +00:00
Reid Spencer 6e87ec4351 For PR1319:
Remove && from the end of the lines to prevent tests from throwing run
lines into the background. Also, clean up places where the same command
is run multiple times by using a temporary file.

llvm-svn: 36142
2007-04-16 17:36:08 +00:00
Reid Spencer 6c38d94201 For PR1319: Upgrade to new test harness
llvm-svn: 36073
2007-04-15 18:11:57 +00:00
Reid Spencer d029c7e666 Make the llvm-runtest function much more amenable by eliminating all the
global variables that needed to be passed in. This makes it possible to
add new global variables with only a couple changes (Makefile and llvm-dg.exp)
instead of touching every single dg.exp file.

llvm-svn: 35918
2007-04-11 19:56:59 +00:00