Commit Graph

16821 Commits

Author SHA1 Message Date
Jeff Cohen
0f7745f2e5 Improve TableGen dependencies
Move TableGen generated files out of the src tree
Add descriptions to the custom build steps


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19223 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 18:17:40 +00:00
Reid Spencer
9d9c19cf96 Add HAVE_SBRK
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19222 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 18:16:16 +00:00
Reid Spencer
90b3b7162a Ignore some files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19221 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 18:14:18 +00:00
Chris Lattner
6e7ba45460 This is a bulk commit that implements the following primary improvements:
* We can now fold cast instructions into select instructions that
    have at least one constant operand.
  * We now optimize expressions more aggressively based on bits that are
    known to be zero.  These optimizations occur a lot in code that uses
    bitfields even in simple ways.
  * We now turn more cast-cast sequences into AND instructions.  Before we
    would only do this if it if all types were unsigned.  Now only the
    middle type needs to be unsigned (guaranteeing a zero extend).
  * We transform sign extensions into zero extensions in several cases.

This corresponds to these test/Regression/Transforms/InstCombine testcases:
  2004-11-22-Missed-and-fold.ll
  and.ll: test28-29
  cast.ll: test21-24
  and-or-and.ll
  cast-cast-to-and.ll
  zeroext-and-reduce.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19220 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:22:27 +00:00
Chris Lattner
0f75849116 New testcases that we should combine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19219 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:14:46 +00:00
Chris Lattner
095b51ee36 New testcase for common bitfield manipulation instruction sequences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19218 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:14:18 +00:00
Chris Lattner
296fcbaf2c Add a bunch of tests for cases that should be eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19217 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:13:43 +00:00
Chris Lattner
e768ff2cdc Add a bunch of tests for ANDs that should be eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19216 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:13:19 +00:00
Chris Lattner
05b402ce9f This now works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19215 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:12:52 +00:00
Chris Lattner
6dec0b09d5 Fix a FIXME: Select instructions on longs were miscompiled.
While we're at it, improve codegen of select instructions.  For this
testcase:

int %test(bool %C, int %A, int %B) {
  %D = select bool %C, int %A, int %B
  ret int %D
}

We used to generate this code:

_test:
        cmpwi cr0, r3, 0
        bne .LBB_test_2 ;
.LBB_test_1:    ;
        b .LBB_test_3   ;
.LBB_test_2:    ;
        or r5, r4, r4
.LBB_test_3:    ;
        or r3, r5, r5
        blr

Now we emit:

_test:
        cmpwi cr0, r3, 0
        bne .LBB_test_2 ;
.LBB_test_1:    ;
        or r4, r5, r5
.LBB_test_2:    ;
        or r3, r4, r4
        blr

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19214 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:10:12 +00:00
Chris Lattner
e7f96c515e Substantially improve the code generated by non-folded setcc instructions.
In particular, instead of compiling this:

bool %test(int %A, int %B) {
  %C = setlt int %A, %B
  ret bool %C
}

to this:

test:
        save %sp, -96, %sp
        subcc %i0, %i1, %g0
        bl .LBBtest_1   !
        nop
        ba .LBBtest_2   !
        nop
.LBBtest_1:     !
        or %g0, 1, %i0
        ba .LBBtest_3   !
        nop
.LBBtest_2:     !
        or %g0, 0, %i0
        ba .LBBtest_3   !
        nop
.LBBtest_3:     !
        restore %g0, %g0, %g0
        retl
        nop

We now compile it to this:

test:
        save %sp, -96, %sp
        subcc %i0, %i1, %g0
        or %g0, 1, %i0
        bl .LBBtest_2   !
        nop
.LBBtest_1:     !
        or %g0, %g0, %i0
.LBBtest_2:     !
        restore %g0, %g0, %g0
        retl
        nop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19213 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:06:57 +00:00
Chris Lattner
13b2f764c0 Implement SimplifyCFG/DeadSetCC.ll
SimplifyCFG is one of those passes that we use for final cleanup: it should
not rely on other passes to clean up its garbage.  This fixes the "why are
trivially dead setcc's in the output of gccas" problem.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19212 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:02:12 +00:00
Chris Lattner
72a406eb14 Add new test to make sure simplifycfg doesn't leave around trivially
dead instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19211 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 16:00:56 +00:00
Chris Lattner
f5ac6c27ac Allow getZeroExtend and getSignExtend to work with boolean inputs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19210 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 15:59:57 +00:00
Chris Lattner
801abe663f Add a useful accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19209 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 15:58:55 +00:00
Chris Lattner
fd1cbc095a Add two helper functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19208 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 15:58:41 +00:00
Reid Spencer
9964cd8e9a Update to autoconf 2.59 standards.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19207 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-01 09:26:55 +00:00
Reid Spencer
bb4fe3d677 Correct the conditional test for non-portable tools so that it will
correctly omit them for non-Unix operating systems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19206 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 22:56:14 +00:00
Reid Spencer
bbf7a8af5a For PR351:
Make LLVM_ON_UNIX and LLVM_ON_WIN32 available in the makefiles


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19205 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 22:54:28 +00:00
Reid Spencer
e0a7dddf39 Describe both objdir==srcdir and objdir!=srcdir methods of building LLVM
libraries and tools. Thanks to Henrik Bach for this suggestion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19204 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 19:48:59 +00:00
Jeff Cohen
45e88d68b3 Where do these tabs keep coming from???
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19203 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 19:03:31 +00:00
Jeff Cohen
51b8d211f6 Mostly cleanup, but also some bug fixes, for win32/Path.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19202 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 19:01:08 +00:00
Reid Spencer
92ced2f16a Fix a compilation error for the case where mallinfo() is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19201 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 05:53:27 +00:00
Reid Spencer
ba46ca3a3b For PR351:
* lib/System depends on sbrk(3), make sure we check for it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19200 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 05:49:15 +00:00
Jeff Cohen
d40a7de229 Get rid of those nasty tabs...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19199 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 05:07:26 +00:00
Jeff Cohen
ebcb9b3807 Bring win32/Path.cpp up to date with respect to Unix/Path.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19198 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 04:39:07 +00:00
Reid Spencer
139e1663a6 * Add missing libraries: Linker, Archive, SparcV8
* Make library descriptions consistently lower case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19197 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-31 00:13:14 +00:00
Reid Spencer
b7e65b8a6a * Don't include weak definitions as a definition
* Make subordinate libraries presented with a vertical list instead of all
  listed on a single line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19196 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 23:13:12 +00:00
Reid Spencer
e0f33aea9a Add a section on library dependencies now that GenLibDeps.html is written.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19195 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 23:12:04 +00:00
Reid Spencer
579b8de1c2 A Perl script to generate an HTML definition list containing the LLVM
library dependencies, for documentation purposes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19194 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 23:07:56 +00:00
Reid Spencer
3d1cc28e7c Fix the help documentation to not imply multiple archive files can be
processed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19193 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 17:51:57 +00:00
Reid Spencer
1ef8bdaedb For PR351:
* Place a try/catch block around the entire tool to Make sure std::string
  exceptions are caught and printed before exiting the tool.
* Make sure we catch unhandled exceptions at the top level so that we don't
  abort with a useless message but indicate than an unhandled exception was
  generated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19192 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 05:36:08 +00:00
Jeff Cohen
c18671cdcd Fix MINGW compilation errors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19190 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-30 03:02:31 +00:00
Reid Spencer
582a23c686 * Fix a bug in an m4 macro that used an incorrect test operator
* Add CAN_DLOPEN_SELF so we can determine if dlopen(0) will open the
  program or not.
* Correct a warning messages to be a little more specific on what it checks


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19184 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 07:07:57 +00:00
Reid Spencer
b09a68ef4b Fix a Bourne Shell syntax error in a test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19183 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 06:59:36 +00:00
Reid Spencer
6da9142a6f Fix one of the names to not have a . in front of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19182 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 05:47:04 +00:00
Chris Lattner
bfd2468347 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19181 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:39:50 +00:00
Chris Lattner
da16d8c00b Fix PR491 and testcase Transforms/DeadStoreElimination/2004-12-28-PartialStore.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19180 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:36:02 +00:00
Chris Lattner
d0137cd0f4 Add a comment, add a new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19179 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:35:30 +00:00
Chris Lattner
1d078167a9 New testcase for PR491
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:27:26 +00:00
Chris Lattner
e936771e79 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:03:23 +00:00
Chris Lattner
f376e5e5f6 Fix PR490
Fix testcase CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19176 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 04:00:09 +00:00
Chris Lattner
5a23c8bbdb new testcase for PR490
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19175 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 03:57:25 +00:00
Reid Spencer
96e5436e9b XFAIL this test everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19174 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 03:17:30 +00:00
Reid Spencer
2fcd29acea XFAIL this everywhere, the CFE doesn't support bitfield initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19173 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 03:16:40 +00:00
Reid Spencer
56127624e7 Remove potential platform portability issue with size of "int".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19172 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-29 01:20:24 +00:00
Reid Spencer
775bf890e1 Correct the name of the variable for the LLVM examples directory so that
parallel builds don't attempt to create it twice.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19171 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-28 07:59:22 +00:00
Reid Spencer
2dc6586073 Make the x86_64 target names match between def and use. Thanks Misha.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19170 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-28 07:56:14 +00:00
Reid Spencer
be41b250e0 Make the 64-bit x86 target named "x86_64" instead of "AMD64".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19169 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-28 06:34:11 +00:00
Misha Brukman
93d416f060 Add a note about registering the backend so it's available in LLC and LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19168 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-27 19:05:16 +00:00