Chris Lattner
b20ba0a83f
Implement Transforms/InstCombine/and.ll:test18, a case that occurs 20 times
...
in perlbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16504 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 21:46:38 +00:00
Chris Lattner
7502ae6640
New testcase for a pattern that occurs 20 times in perlbmk
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16503 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 21:42:49 +00:00
Reid Spencer
b40df56f26
Add a blurb about the use of class vs. struct keyword in class decls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16500 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 16:03:48 +00:00
Chris Lattner
684fe210a9
Implement select.ll:test16: fold load (select C, X, null) -> load X
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16499 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 15:46:00 +00:00
Chris Lattner
60a11f1970
load null is undefined behavior, this should fold
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16498 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 15:45:20 +00:00
Reid Spencer
530036b5e8
Change Value from a "struct" to a "class" so that VC 7.1 doesn't generate
...
missing symbols when its referenced as a class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16496 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 14:49:45 +00:00
Reid Spencer
f6cbc0fd64
Patch for MINGW. Patch provided by Henrik Bach.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16495 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 14:47:10 +00:00
Reid Spencer
ad9590e12c
Missed one $*.a -> $@ conversion for the Release build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16494 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 06:07:24 +00:00
Nate Begeman
645495d2e6
Fix the last of the major PPC GEP folding deficiencies. This will allow
...
the ISel to use indexed and non-zero immediate offsets for GEPs that have
more than one use. This is common for instruction sequences such as a load
followed by a modify and store to the same address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16493 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 05:31:33 +00:00
Alkis Evlogimenos
ab5948f242
Update email address
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16492 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 04:39:30 +00:00
Chris Lattner
4ce08a0a47
Grrr... I shouldn't have to do this one :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16491 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 04:36:01 +00:00
Chris Lattner
f69dcb15c3
Update credits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16490 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 04:30:05 +00:00
Reid Spencer
53a4b60a76
Correct the rules for making shared libraries per libtool 1.5.10
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16489 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-23 00:58:06 +00:00
Misha Brukman
c95759c2f5
Use the V8/V9 shared register file description
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16485 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:48:50 +00:00
Misha Brukman
c42077d371
Combine the F2 and F3 instruction classes into one file for simplicity
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16484 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:38:42 +00:00
Misha Brukman
31b5edd2e9
Fix file header path
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16483 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 21:29:12 +00:00
Misha Brukman
981eefd5f7
Prettify formatting of the file, adjust paths to making V8 a subdir of Sparc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16482 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 20:09:29 +00:00
Misha Brukman
2ec09e713e
V8 is now a subdirectory of Sparc; adjust paths accordingly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16481 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 20:08:52 +00:00
Reid Spencer
358e685597
Update to add the HAVE_UINT64_T test and the STACK_DIRECTION indicator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16480 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 15:32:08 +00:00
Reid Spencer
023f212f3c
The alloca function, strangely enough, is found in the malloc.h header file
...
on MINGW platform. Provide an #elseif case to #include malloc.h for this
platform if malloc.h is found.
Patch provided by Henrik Bach. Thanks Henrik!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16479 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 15:28:32 +00:00
Nate Begeman
a2de102a5b
add optimized code sequences for setcc x, 0
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16478 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-22 04:40:25 +00:00
Chris Lattner
3d834bf2c3
Do not fold (X + C1 != C2) if there are other users of the add. Doing
...
this transformation used to take a loop like this:
int Array[1000];
void test(int X) {
int i;
for (i = 0; i < 1000; ++i)
Array[i] += X;
}
Compiled to LLVM is:
no_exit: ; preds = %entry, %no_exit
%indvar = phi uint [ 0, %entry ], [ %indvar.next, %no_exit ] ; <uint> [#uses=2]
%tmp.4 = getelementptr [1000 x int]* %Array, int 0, uint %indvar ; <int*> [#uses=2]
%tmp.7 = load int* %tmp.4 ; <int> [#uses=1]
%tmp.9 = add int %tmp.7, %X ; <int> [#uses=1]
store int %tmp.9, int* %tmp.4
*** %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
*** %exitcond = seteq uint %indvar.next, 1000 ; <bool> [#uses=1]
br bool %exitcond, label %return, label %no_exit
and turn it into a loop like this:
no_exit: ; preds = %entry, %no_exit
%indvar = phi uint [ 0, %entry ], [ %indvar.next, %no_exit ] ; <uint> [#uses=3]
%tmp.4 = getelementptr [1000 x int]* %Array, int 0, uint %indvar ; <int*> [#uses=2]
%tmp.7 = load int* %tmp.4 ; <int> [#uses=1]
%tmp.9 = add int %tmp.7, %X ; <int> [#uses=1]
store int %tmp.9, int* %tmp.4
*** %indvar.next = add uint %indvar, 1 ; <uint> [#uses=1]
*** %exitcond = seteq uint %indvar, 999 ; <bool> [#uses=1]
br bool %exitcond, label %return, label %no_exit
Note that indvar.next and indvar can no longer be coallesced. In machine
code terms, this patch changes this code:
.LBBtest_1: # no_exit
mov %EDX, OFFSET Array
mov %ESI, %EAX
add %ESI, DWORD PTR [%EDX + 4*%ECX]
mov %EDX, OFFSET Array
mov DWORD PTR [%EDX + 4*%ECX], %ESI
mov %EDX, %ECX
inc %EDX
cmp %ECX, 999
mov %ECX, %EDX
jne .LBBtest_1 # no_exit
into this:
.LBBtest_1: # no_exit
mov %EDX, OFFSET Array
mov %ESI, %EAX
add %ESI, DWORD PTR [%EDX + 4*%ECX]
mov %EDX, OFFSET Array
mov DWORD PTR [%EDX + 4*%ECX], %ESI
inc %ECX
cmp %ECX, 1000
jne .LBBtest_1 # no_exit
We need better instruction selection to get this:
.LBBtest_1: # no_exit
add DWORD PTR [Array + 4*%ECX], EAX
inc %ECX
cmp %ECX, 1000
jne .LBBtest_1 # no_exit
... but at least there is less register juggling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16473 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 21:35:23 +00:00
Alkis Evlogimenos
65cbfa0f37
The real x87 floating point registers should not be allocatable. They
...
are only used by the stackifier when transforming FPn register
allocations to the real stack file x87 registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16472 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 21:22:11 +00:00
Misha Brukman
540c82a700
s/ISel/PPC64ISel/ to have unique class names for debugging via gdb because the
...
C++ front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16471 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:22:33 +00:00
Misha Brukman
a1dca55a3a
s/ISel/PPC32ISel/ to have unique class names for debugging via gdb because the
...
C++ front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16470 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:22:19 +00:00
Misha Brukman
eae1bf10ea
s/ISel/X86ISel/ to have unique class names for debugging via gdb because the C++
...
front-end in gcc does not mangle classes in anonymous namespaces correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16469 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 18:21:21 +00:00
Chris Lattner
8cbee4ea5b
Make sure to set the operand list
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16466 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:30:54 +00:00
Reid Spencer
8b93e7ae4a
Fix a problem where the mmap_file test was generating an incorrect test
...
program that always failed (wouldn't compile).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16465 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:14:44 +00:00
Reid Spencer
5d6c4a5581
Change the warning text so that NO warnings are permitted. This is now the
...
case since the AC_CONFIG_SUBDIRS problem has been fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16464 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:13:23 +00:00
Reid Spencer
c2186e23b6
Don't attempt to (illegally) configure a subdir if we don't recognize it.
...
Instead just create a warning message that says the directory cannot be
configured because it isn't recognized. This also gets rid of a bunch of
warning messages from the auto* tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16463 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:12:35 +00:00
Reid Spencer
91b538024a
Fix the program passed to AC_LANG_PROGRAM to be only the BODY of the main
...
function, not the whole main function. This problem resulted during
conversion of scripts to the new autoconf standard. The effect was that
the mmap_file test would fail and if it does there is currently an
#ifdef'd #error that causes compilation to fail. Bad, bad, bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16462 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 17:10:52 +00:00
Misha Brukman
323ed35e4f
Thanks to Brad Jones for packed type support!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16461 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 16:54:37 +00:00
Misha Brukman
39dccd8130
Thanks to Brad for documentation on adding a DerivedType
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16460 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 16:53:29 +00:00
Chris Lattner
e704e49ea7
This is an empty directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16459 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 16:26:13 +00:00
Chris Lattner
9c15698355
This is a dead directory now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16458 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-21 16:25:41 +00:00
Reid Spencer
641f7ef4fc
Change the name of the "known" module for Java from llvm-java to Java.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16453 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 22:14:56 +00:00
Alkis Evlogimenos
7e2315e987
Use the right directory for the Java frontend
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16448 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 15:45:36 +00:00
Chris Lattner
79f0c8e4ee
Fix potential miscompilations: InstCombine/2004-09-20-BadLoadCombine*.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16447 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 10:15:10 +00:00
Chris Lattner
c804d530c5
Two testcases for invalid transformations that instcombine is doing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16446 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 10:14:27 +00:00
Reid Spencer
181e65dff1
Documentation upgrade.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16445 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 08:09:36 +00:00
Reid Spencer
9610fc901a
Finish the documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16444 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 08:04:13 +00:00
Reid Spencer
33709e53e4
Tighten up the specification of what counts as a code file. The previous
...
specification was too liberal in some areas and missing things in others.
This specification is based on the actual extensions found in the source
tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16443 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 08:00:09 +00:00
Reid Spencer
b27b78f6a4
Base the implementation on the llvmdo script so that we only have to
...
maintain the logic for "what counts as a source file" in one place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16442 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 07:22:23 +00:00
Reid Spencer
8141e37109
Fixed to actually work correctly and be the basis for other tools by
...
allowing the set of directories searched to be specified either by the
LLVMDO_DIRS env var or by the -dirs "dirs..." command line option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16441 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 07:21:19 +00:00
Alkis Evlogimenos
7b6ec600c5
Fix loop condition so that we don't decrement off the beginning of the
...
list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16440 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 06:42:58 +00:00
Chris Lattner
2ac3f19e90
Don't count .lo files :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16439 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 05:01:04 +00:00
Chris Lattner
b12914bfc0
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:48:05 +00:00
Chris Lattner
bba61c07dd
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
Also, fix some undefined behavior, expecting | on booleans to evaluate
left-to-right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:47:19 +00:00
Chris Lattner
68d033cc94
Finegrainify namespacification
...
'Pass' should now not be derived from by clients. Instead, they should derive
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16434 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:44:31 +00:00
Chris Lattner
ded6d0c9fb
Prototype more accurately
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:43:57 +00:00