Commit Graph

9388 Commits

Author SHA1 Message Date
Chris Lattner 6d760d7cb3 Add an option to enable the SSA based peephole optimizer.
Eventually this pass will provide substantially better code in the interim between when we
have a crappy isel and nice isel.  Unfortunately doing so requires fixing the backend to
actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE
pass for machine code.  Each of these is a fairly substantial job, so this will remain disabled
for the immediate future.  :(

llvm-svn: 10276
2003-12-01 05:18:30 +00:00
Chris Lattner a913723309 Add a new SSA-based peephole optimizer which includes copy propagation and
folding of instructions into addressing modes.  This creates lots of dead
instructions, which are currently not deleted.  It also creates a lot of
instructions that the X86 backend currently cannot handle.  :(

llvm-svn: 10275
2003-12-01 05:15:28 +00:00
Chris Lattner 128937bbe2 generalize the instruction types permitted a bit
llvm-svn: 10274
2003-12-01 05:13:56 +00:00
Chris Lattner 6cf03df531 fix broken link
llvm-svn: 10273
2003-12-01 05:12:09 +00:00
Alkis Evlogimenos 26f17e73eb Print instructions before register allocation is performed. Also fix
bug where spill instructions were added to the next basic block
instead of the end of the current one if the instruction that required
the spill was the last in the block.

llvm-svn: 10272
2003-11-30 23:40:39 +00:00
Chris Lattner 0fcba7f6b3 add missing dependency
llvm-svn: 10271
2003-11-30 09:22:42 +00:00
Chris Lattner d8218923ae Finegrainify namespacification
llvm-svn: 10270
2003-11-30 06:13:25 +00:00
Chris Lattner 121d04d1ae A line was missing
llvm-svn: 10269
2003-11-30 05:46:14 +00:00
Alkis Evlogimenos 0aa40f8db0 Remove "numReloaded" statistic.
llvm-svn: 10268
2003-11-30 05:15:36 +00:00
Chris Lattner 98e72b4bb3 Emit constants to one contiguous block, but this time, respect alignment constraints.
If this doesn't work Misha, feel free to revert it.

llvm-svn: 10267
2003-11-30 04:23:21 +00:00
Misha Brukman 873cf93b6e Go back to allocating memory for each constant separately. Since SPARCs do not
allow unaligned loads, that is probably the problem I've been seeing in numerous
SPARC test cases failing. X86, on the other hand, just slows down unaligned
accesses, since it must make 2 aligned accesses for each unaligned one.

llvm-svn: 10266
2003-11-30 00:50:53 +00:00
Chris Lattner 58efc9e0fe be 3.4 happy
llvm-svn: 10265
2003-11-29 20:04:13 +00:00
Chris Lattner 839030b3a8 be GCC 3.4 clean
llvm-svn: 10264
2003-11-29 19:55:12 +00:00
Chris Lattner 594654f17d Hrm, how could this compile?
llvm-svn: 10263
2003-11-29 19:55:02 +00:00
Chris Lattner 982b285232 Fix compatibility with gcc 3.4
llvm-svn: 10262
2003-11-29 19:45:47 +00:00
Chris Lattner 3edb8478a4 Build _lib_crtend.a, not crtend.a
llvm-svn: 10260
2003-11-29 10:24:57 +00:00
Chris Lattner d52319f54e Don't print out tons of crap
llvm-svn: 10259
2003-11-29 10:14:17 +00:00
Chris Lattner 910c8d834e Rewrite makefile logic to build an archive instead of a .o file. This is
intended to address PR142

llvm-svn: 10257
2003-11-29 10:05:30 +00:00
Chris Lattner fe8f8b4947 Simplify some rules
Move LGCCLDPROG from test/Makefile.tests

llvm-svn: 10256
2003-11-29 09:50:15 +00:00
Chris Lattner 462444e1ea Move rule to top-level makefile
llvm-svn: 10255
2003-11-29 09:49:14 +00:00
Chris Lattner 46c6693781 Add readme and spiff up makefile header
llvm-svn: 10254
2003-11-29 09:22:53 +00:00
Chris Lattner 212e596ede Testcase for duplicated cleanup work (PR11). Note that this testcase is not actually
tested automatically, so it is practically useless.  However, it seemed silly to throw
away my testcase, so here it is.

llvm-svn: 10253
2003-11-29 09:10:50 +00:00
Chris Lattner 8384f97ee4 Fix test: Transforms/LevelRaise/2003-11-28-IllegalTypeConversion.ll
Some gep generalization changes

llvm-svn: 10252
2003-11-29 05:31:25 +00:00
Chris Lattner 6d94d10377 new testcase for problem causing 2003-10-12-GlobalVarInitializers failures
llvm-svn: 10251
2003-11-29 05:19:15 +00:00
Chris Lattner 8abd7dca76 The function resolving pass must be run, even if -disable-opt is specified
llvm-svn: 10250
2003-11-28 09:44:03 +00:00
Chris Lattner fcaa6fbbd8 * The return value of LinkLibraries is ignored, so remove it.
* Finegrainify namespacification of Linker.cpp
* If linking a library in fails, do not STOP LINKING IN LIBRARIES AND
  CONTINUE ANYWAY!  Instead, just output the warning, and keep going. :)

llvm-svn: 10249
2003-11-28 07:44:09 +00:00
Chris Lattner 1fdd8a45c3 fix gcc 3.4 compatibility problem
llvm-svn: 10248
2003-11-28 01:46:06 +00:00
Chris Lattner 68ac670086 Testcase for PR160
llvm-svn: 10247
2003-11-28 01:32:03 +00:00
Chris Lattner 9201586a98 New testcase for PR158
llvm-svn: 10246
2003-11-27 21:25:07 +00:00
Chris Lattner 40487e450b Fix grammaro
llvm-svn: 10245
2003-11-27 21:17:48 +00:00
Chris Lattner ff4aa6dbe2 testcase for PR159
llvm-svn: 10244
2003-11-27 20:47:16 +00:00
Chris Lattner a24a54d2f4 PR11 is now fixed for 1.1!
llvm-svn: 10243
2003-11-27 09:52:03 +00:00
Chris Lattner 8139b78c03 PR11 is now fixed for 1.1
llvm-svn: 10242
2003-11-27 09:51:54 +00:00
Chris Lattner 2a7033255e * Squelch warning on Sun
* stdlib and friends are system headers
* 'long long' is the type that consistently turns into the LLVM 'long' type.

llvm-svn: 10241
2003-11-27 07:48:45 +00:00
John Criswell f1387a59bf Makefiles are now copies over to the object root directory dynamically.
llvm-svn: 10240
2003-11-26 20:09:49 +00:00
John Criswell 96be650984 Renamed intermediate values that used the same type and name as previous
values.  All of these files should assemble now.

llvm-svn: 10239
2003-11-26 14:45:37 +00:00
Chris Lattner 0548bc2472 Bugz die!
llvm-svn: 10238
2003-11-26 08:20:34 +00:00
Chris Lattner 9192f90865 Testcase for PR157
llvm-svn: 10237
2003-11-26 07:35:52 +00:00
Chris Lattner 6789a0b1d4 To not barf when an error occurs.
llvm-svn: 10236
2003-11-26 07:24:58 +00:00
Chris Lattner b27353c892 Boogs
llvm-svn: 10235
2003-11-26 02:48:00 +00:00
Chris Lattner 86d5c1ca2b More dead boogers
llvm-svn: 10233
2003-11-26 01:18:49 +00:00
Chris Lattner eb64b6a922 output foo(void) as appropriate
llvm-svn: 10232
2003-11-26 00:09:17 +00:00
Chris Lattner 883b73f0a8 Fix bug in previous checkin
llvm-svn: 10231
2003-11-25 23:44:40 +00:00
John Criswell a0d50d2ebc Fixed a small grammatical error.
Explained that function return types cannot be aggregate types.
Explained that functions with the same name but different type signatures
are considered to be different functions.

llvm-svn: 10230
2003-11-25 21:45:46 +00:00
Chris Lattner f5569bb9a5 Fix const correctness
llvm-svn: 10229
2003-11-25 21:28:00 +00:00
Chris Lattner ad70d4a15b Relax constrains on GEP type indexes
llvm-svn: 10228
2003-11-25 21:21:46 +00:00
Chris Lattner 1c45d5185f It is legal to index into sequential types with any integer
llvm-svn: 10227
2003-11-25 21:20:19 +00:00
Chris Lattner 52310702a1 Do not use index type to determine what it is indexing into!
llvm-svn: 10226
2003-11-25 21:09:18 +00:00
Chris Lattner 637ee39933 Do not depend on the gep index types to determine what flavor of index it is
llvm-svn: 10225
2003-11-25 20:49:55 +00:00
Chris Lattner f078808a2b Do not depend on structure elements being of type UByteTy
llvm-svn: 10224
2003-11-25 20:44:56 +00:00