Commit Graph

38836 Commits

Author SHA1 Message Date
Chris Lattner
98f41d2ce7 remove empty file?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51225 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-18 04:10:18 +00:00
Nick Lewycky
08de1e476c Revert constant-folding change that will miscompile in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51223 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 19:00:05 +00:00
Chris Lattner
b5783106c4 trip count computation deficiency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51222 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 15:37:38 +00:00
Bill Wendling
fbaa37937f On Darwin, the string header file isn't 64-bit clean. The use of
"-Wshorten-64-to-32 -Werror" will cause a failure when compiling this complex
program:

#include <string>

class Path {
  mutable std::string path;
public:
  bool operator == (const Path &that) {
    return path == that.path;
  }
};

Using strcmp gets us past this annoying error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51218 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 09:10:40 +00:00
Nick Lewycky
6cccce3e58 Unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51217 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 09:05:22 +00:00
Nick Lewycky
d24ae8703f Constant fold inttoptr and ptrtoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51216 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 09:03:26 +00:00
Nick Lewycky
fc1efbbfbc Move isTrueWhenEqual to ICmpInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51215 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-17 07:33:39 +00:00
Dale Johannesen
1f7580c5eb Less conservative verison of previous patch,
suggested by Duncan.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51211 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 23:18:52 +00:00
Dale Johannesen
6a6f2dda36 Add CommonLinkage, in a way that preserves the
behavior on old .bc files.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51210 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 22:46:40 +00:00
Dale Johannesen
7d5633e907 Add CommonLinkage to lto (treated same as weak AFAICT)
and llvm-nm (prints as C).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51209 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 22:44:18 +00:00
Dale Johannesen
c9b0aa788f Add CommonLinkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51208 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 22:42:11 +00:00
Dale Johannesen
6796629611 Weak functions not declared non-throwing might be
replaced at linktime with a body that throws, even
if the body in this file does not.  Make PruneEH
be more conservative in this case.
g++.dg/eh/weak1.C



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51207 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 21:31:48 +00:00
Eric Christopher
0bf7b414ae Add functions to enable adding a single attribute to a function and
its associated call site.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51204 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 20:39:43 +00:00
Dale Johannesen
ea7dd40714 Record weak external linkage in a case where we were
missing it. gcc.dg/darwin-weakimport-2.c.
Handle common and weak differently for darwin ppc32.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51201 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 20:09:25 +00:00
Gabor Greif
7cbd8a3e92 API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51200 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 19:29:10 +00:00
Evan Cheng
446efddfcd If the result of a BIT_CONVERT is a v1* vector, it doesn't mean its source is a v1* vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51192 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 17:19:05 +00:00
Evan Cheng
62df5c9599 Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51191 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 17:08:51 +00:00
Duncan Sands
1a2d667d6f Bill pointed out that system headers should be
included after local headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51187 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 09:30:00 +00:00
Duncan Sands
419cafb9fb Silence the compiler warning differently. The
original method caused gcc-4.2 to complain.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51186 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 09:19:16 +00:00
Evan Cheng
df0457241d Re-enable tail duplication pass (now with default threshold down to 1 instruction).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51184 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 07:57:10 +00:00
Evan Cheng
66ae104cd1 Do not dup malloc, vector instructions, etc. Throttle the default theshold way down.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51183 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 07:55:50 +00:00
Owen Anderson
62849be80d Remove ADCE's ability to delete loops. This ability is now implemented in a
safer manner by loop deletion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51182 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:34:51 +00:00
Owen Anderson
3dc73d398c Move this test from ADCE to loop deletion, where it is more appropriate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51181 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:34:19 +00:00
Owen Anderson
ce12a2b71a Use loop deletion instead of ADCE in these tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51180 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:33:37 +00:00
Owen Anderson
0db198d758 Clean ups for loop deletion based on Chris' feedback.
Also, use SCEV to determine the trip count of the loop, which is more powerful
and accurate that Loop::getTripCount.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:32:45 +00:00
Owen Anderson
d870b9a4e3 Use loop deletion instead of ADCE for removing loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51178 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:27:38 +00:00
Owen Anderson
90d2736540 Fix this test. It was testing broken behavior in that it required ADCE to eliminate
a potentially infinite loop, which is undesirable.  Instead, test the LICM behavior
that we're really interested in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 04:25:09 +00:00
Chris Lattner
b2ae9e34db implement PR2328.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51176 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 02:59:42 +00:00
Dale Johannesen
e44b1bd3dc Use common where we mean common, not weak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51173 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 00:52:30 +00:00
Dale Johannesen
f88c81e332 Treat common as distinct from weak global on Darwin x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51172 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 00:52:06 +00:00
Dan Gohman
eedff319dc Revert the change from r51157 in
test/Verifier/2002-11-05-GetelementptrPointers.ll, which was incorrect.
Instead, fix getIndexedType to not follow pointer types, as
PointerType is a subclass of CompositeType.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51171 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-16 00:16:32 +00:00
Dan Gohman
e2d896fab3 Update comments based on Duncan's feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51170 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 23:35:32 +00:00
Dan Gohman
f20d70d57e Fix a bug in LoopStrengthReduce that caused it to emit IR with
use-before-def. The problem comes up in code with multiple PHIs where
one PHI is being rewritten in terms of the other, but the other needs
to be casted first. LLVM rules requre the cast instruction to be
inserted after any PHI instructions, but when instructions were
inserted to replace the second PHI value with a function of the first,
they were ended up going before the cast instruction. Avoid this
problem by remembering the location of the cast instruction, when one
is needed, and inserting the expansion of the new value after it.

This fixes a bug that surfaced in 255.vortex on x86-64 when
instcombine was removed from the middle of the loop optimization
passes. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51169 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 23:26:57 +00:00
Dale Johannesen
7d75b3a281 Remove the S92 code, which really has nothing to do
with what the test is testing; makes it pass again on ppc32.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51167 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 22:23:54 +00:00
Dale Johannesen
e31d87495a Evan has implemented this on ppc, so run the test there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51166 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 22:22:37 +00:00
Evan Cheng
0ef8de30fa Fix typos and comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51165 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 22:13:02 +00:00
Dale Johannesen
6667646a56 Allow an extra bit for CommonLinkage.
This changes the .bc file format, but if I understand
how it works correctly, old .bc files continue to
be readable.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51161 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 20:49:28 +00:00
Nate Begeman
b434513a20 Actually scalarize the operand to BIT_CONVERT instead of asking someone to do
something with a v1 type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51160 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 20:40:58 +00:00
Steve Naroff
20a3ca6155 Reverting r51100...I need to use VC++ 2005.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51159 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 20:09:48 +00:00
Dan Gohman
041e2eb517 IR support for extractvalue and insertvalue instructions. Also, begin
moving toward making structs and arrays first-class types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51157 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 19:50:34 +00:00
Dan Gohman
d208a803a6 Use static and anonymous namespaces consistently with other passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51156 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 19:43:55 +00:00
Devang Patel
0c87f2d824 Revert 51067 check-in for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51155 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 18:46:28 +00:00
Devang Patel
8dbd9ada30 Remove useless check.
Patch by Matthijs Kooijman.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51154 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 18:04:29 +00:00
Evan Cheng
bdb6ca178c Disable JIT symbol table for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51152 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 17:31:35 +00:00
Duncan Sands
9c0d50ecae Use of UINT_MAX requires climits, at least when
compiling with gcc 4.3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51145 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 11:22:50 +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
Gabor Greif
4054ae0b25 ignore generated files and product directories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51142 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 09:38:32 +00:00
Evan Cheng
f0df03134e Make use of vector load and store operations to implement memcpy, memmove, and memset. Currently only X86 target is taking advantage of these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51140 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 08:39:06 +00:00
Evan Cheng
38503d4046 Remove tail duplication pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51139 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 07:43:15 +00:00
Nate Begeman
ff155f03bd Move the operator new and operator delete out of line. This fixes an issue with
operator new() referring to the static initTags function, which has to be in the 
same linkage unit as any file including User.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51136 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-15 01:23:11 +00:00