- Sep 27, 2004
-
-
Chris Lattner authored
triggers often, for example: 6x in povray, 1x in gzip, 279x in gcc, 1x in crafty, 8x in eon, 11x in perlbmk, 362x in gap, 4x in vortex, 14 in m88ksim, 211x in 126.gcc, 1x in compress, 11x in ijpeg, and 4x in 147.vortex. llvm-svn: 16521
-
Alkis Evlogimenos authored
llvm-svn: 16520
-
Nate Begeman authored
llvm-svn: 16519
-
- Sep 26, 2004
-
-
Misha Brukman authored
llvm-svn: 16518
-
- Sep 25, 2004
-
-
Reid Spencer authored
llvm-svn: 16517
-
Reid Spencer authored
llvm-svn: 16516
-
Reid Spencer authored
llvm-svn: 16515
-
Reid Spencer authored
- get rid of unneeded constructors - get rid of duplicate methods/constructors/operators - normalize to LLVM coding standards - wrap to 80 columns. Many thanks to Alkis Evlogimenos for his suggestions. llvm-svn: 16514
-
Reid Spencer authored
llvm-svn: 16513
-
Reid Spencer authored
llvm-svn: 16512
-
Reid Spencer authored
llvm-svn: 16511
-
- Sep 24, 2004
-
-
John Criswell authored
AC_CONFIG_HEADERS. This should prevent LLVM from needlessly re-compiling on a re-configure. llvm-svn: 16510
-
John Criswell authored
regenerated on every run of configure. llvm-svn: 16509
-
Chris Lattner authored
These combinations trigger 4 times in povray, 7x in gcc, 4x in gap, and 2x in bzip2. llvm-svn: 16508
-
Chris Lattner authored
llvm-svn: 16507
-
John Criswell authored
from being re-generated if the new version is identical to the old version. Hence, it should save us some recompiling after re-configures. llvm-svn: 16506
-
- Sep 23, 2004
-
-
Chris Lattner authored
No functionality changes here. llvm-svn: 16505
-
Chris Lattner authored
in perlbmk llvm-svn: 16504
-
Chris Lattner authored
llvm-svn: 16503
-
Reid Spencer authored
llvm-svn: 16500
-
Chris Lattner authored
llvm-svn: 16499
-
Chris Lattner authored
llvm-svn: 16498
-
Reid Spencer authored
missing symbols when its referenced as a class. llvm-svn: 16496
-
Reid Spencer authored
llvm-svn: 16495
-
Reid Spencer authored
llvm-svn: 16494
-
Nate Begeman authored
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. llvm-svn: 16493
-
Alkis Evlogimenos authored
llvm-svn: 16492
-
Chris Lattner authored
llvm-svn: 16491
-
Chris Lattner authored
llvm-svn: 16490
-
Reid Spencer authored
llvm-svn: 16489
-
- Sep 22, 2004
-
-
Misha Brukman authored
llvm-svn: 16485
-
Misha Brukman authored
llvm-svn: 16484
-
Misha Brukman authored
llvm-svn: 16483
-
Misha Brukman authored
llvm-svn: 16482
-
Misha Brukman authored
llvm-svn: 16481
-
Reid Spencer authored
llvm-svn: 16480
-
Reid Spencer authored
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! llvm-svn: 16479
-
Nate Begeman authored
llvm-svn: 16478
-
- Sep 21, 2004
-
-
Chris Lattner authored
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 llvm-svn: 16473
-
Alkis Evlogimenos authored
are only used by the stackifier when transforming FPn register allocations to the real stack file x87 registers. llvm-svn: 16472
-