Commit Graph

32742 Commits

Author SHA1 Message Date
Dale Johannesen a69ebdbebc Make stable_sort in tail merging actually be stable (it never was, but didn't
matter until my last change).  Reenable tail merging by default.

llvm-svn: 37354
2007-05-29 23:47:50 +00:00
Evan Cheng 20f7d30f92 Don't merge in tail block of a diamond if it has more than one predecessors after if-conversion.
llvm-svn: 37353
2007-05-29 23:37:20 +00:00
Owen Anderson 9429cd1a61 Put GVN-PRE in all the right places.
llvm-svn: 37352
2007-05-29 23:36:32 +00:00
Evan Cheng 19eeee41ca For VFP2 fldm, fstm instructions, the condition code is printed after the address mode and size specifier. e.g. fstmiaseq, not fstmeqias.
llvm-svn: 37351
2007-05-29 23:34:19 +00:00
Owen Anderson 4b0c1859fd Fix a typo
llvm-svn: 37350
2007-05-29 23:34:14 +00:00
Evan Cheng a6e9a4ce07 For ldrb, strh, etc., the condition code is before the width specifier. e.g. streqh, not strheq.
llvm-svn: 37349
2007-05-29 23:32:06 +00:00
Owen Anderson 0c4230724c Re-fix a bug, where I was now being too aggressive.
llvm-svn: 37348
2007-05-29 23:26:30 +00:00
Owen Anderson 4a6ec8fb57 Use proper debugging facilities so other people don't have to look at my commented-out
debugging lines.

llvm-svn: 37347
2007-05-29 23:15:21 +00:00
Owen Anderson f11bdc7637 Comment debug code out that I accidentally uncommented last time.
llvm-svn: 37346
2007-05-29 22:43:03 +00:00
Owen Anderson ac83a3e4ff Add a place where I missed using the maximal set. Note that using the maximal
set this way is _SLOW_.  Somewhere down the line, I'll look at speeding it up.

llvm-svn: 37345
2007-05-29 22:35:41 +00:00
Evan Cheng c2237ce217 If there is an empty block between a source and its successor block, it still requires a unconditional branch.
llvm-svn: 37344
2007-05-29 22:31:16 +00:00
Owen Anderson 5fba6c19b2 Very first part of a GVN-PRE implementation. It currently performs a bunch of analysis, and nothing more. It is also quite slow for the moment. However,
it should give a sense of what's going on.

llvm-svn: 37343
2007-05-29 21:53:49 +00:00
Evan Cheng 2d91a4fd6a Add missing const qualifiers.
llvm-svn: 37342
2007-05-29 18:42:18 +00:00
Evan Cheng 5983bdbb2c Add missing const qualifiers.
llvm-svn: 37341
2007-05-29 18:35:22 +00:00
Nicolas Geoffray cff3e122b0 Implementation of compilation callback in PPC ELF32
llvm-svn: 37340
2007-05-29 16:33:18 +00:00
Chris Lattner a446f1b46b more fixes to C code.
llvm-svn: 37339
2007-05-29 15:43:56 +00:00
Bill Wendling 2d8b9a8834 Fixed some formatting.
llvm-svn: 37338
2007-05-29 09:42:13 +00:00
Bill Wendling 0a303eb474 Added "llvmc" to the FAQ.
llvm-svn: 37337
2007-05-29 09:35:34 +00:00
Bill Wendling 2c22fcb11c Added "doc_class" div tags to code segments.
llvm-svn: 37336
2007-05-29 09:24:33 +00:00
Bill Wendling 3716c5df29 Fix for PR1452. Removed "define" keyword from the C code. Added "<div
class="doc_code">" to code examples.

llvm-svn: 37335
2007-05-29 09:04:49 +00:00
Chris Lattner 8deaba7622 Add a new LLVMBuilder class, which makes it simpler and more uniform to
create large amounts of instructions by separating the insertion point
logic from the logic of what to create.

llvm-svn: 37332
2007-05-27 15:09:34 +00:00
Zhou Sheng d7dc1ed64c Correct the logic in LowerPartSet which cleared the bits from 0 to low-1.
llvm-svn: 37331
2007-05-26 03:43:13 +00:00
Chris Lattner 4698083b96 tighten up recursion depth again
llvm-svn: 37330
2007-05-25 02:19:06 +00:00
Devang Patel 1b63e7a4b8 Disable Tail Merging for now.
llvm-svn: 37329
2007-05-25 01:00:24 +00:00
Evan Cheng 13f5f7df95 Silly boog.
llvm-svn: 37328
2007-05-25 00:59:01 +00:00
Chris Lattner c87f3dff51 remove contradiction owen noticed
llvm-svn: 37327
2007-05-24 19:13:27 +00:00
Chris Lattner 80c94a4a04 Fix PR1446 by not scalarrepl'ing giant structures.
llvm-svn: 37326
2007-05-24 18:43:04 +00:00
Chris Lattner 49a34fcca7 testcase for PR1446
llvm-svn: 37325
2007-05-24 18:42:47 +00:00
Dale Johannesen 1409b6a59b Blocks that cond-br and uncond-br/fallthrough to same block should have
only one successor.

llvm-svn: 37324
2007-05-24 18:31:55 +00:00
Dale Johannesen 1af8c870c7 Fix for PR1444: do not create two successors to the same block.
Temporarily, this breaks CodeGen/Generic/2006-02-12-InsertLibraryCall.ll
by exposing an unrelated latent problem; working on that.

llvm-svn: 37323
2007-05-24 17:39:32 +00:00
Zhou Sheng 8ff9ff7975 Compute the correct word number.
llvm-svn: 37322
2007-05-24 15:03:18 +00:00
Dan Gohman 30978078bf Minor comment cleanups.
llvm-svn: 37321
2007-05-24 14:36:04 +00:00
Dan Gohman 703e0f8608 Add explicit qualification for namespace MVT members.
llvm-svn: 37320
2007-05-24 14:33:05 +00:00
Dan Gohman 5d4bb4f230 Add cases for v2f32.
llvm-svn: 37319
2007-05-24 14:29:12 +00:00
Evan Cheng a4d187b8ce Fix a typo that caused combiner to create mal-formed pre-indexed store where value store is the same as the base pointer.
llvm-svn: 37318
2007-05-24 02:35:39 +00:00
Evan Cheng b58bf97603 Add a new test case.
llvm-svn: 37317
2007-05-24 02:31:15 +00:00
Dale Johannesen d750b46f8b tail merging shrinks this code a bit. Could do more in future.
llvm-svn: 37316
2007-05-23 21:09:26 +00:00
Dale Johannesen f4a77d2481 Two tail merging improvements:
When considering blocks with more than 2 predecessors, merge the block with
the largest number of matching insns, rather than the first block found.
Considering that 1 matching insn is enough to show a win for candidates that
already end with a branch.

llvm-svn: 37315
2007-05-23 21:07:20 +00:00
Devang Patel d50859e87b Add dump() routines for debugging assistance.
llvm-svn: 37314
2007-05-23 19:55:36 +00:00
Anton Korobeynikov 3b327826db Mark all calls as "could throw", when exceptions are enabled. Emit necessary LP info too. This fixes PR1439
llvm-svn: 37311
2007-05-23 11:08:31 +00:00
Chris Lattner 6509c0673f prevent exponential recursion in isNegatibleForFree
llvm-svn: 37310
2007-05-23 07:35:22 +00:00
Evan Cheng d0e669199b Preliminary iterative if-conversion support.
llvm-svn: 37309
2007-05-23 07:23:16 +00:00
Evan Cheng 1d764eca98 Hooks for predication support.
llvm-svn: 37308
2007-05-23 07:22:05 +00:00
Evan Cheng c972de8c8b Rename a parameter.
llvm-svn: 37307
2007-05-23 07:21:11 +00:00
Evan Cheng 1e25f56508 Add a couple of target hooks for predication.
llvm-svn: 37306
2007-05-23 07:19:12 +00:00
Chris Lattner 688b2807df when merging two alias sets together, be sure to propagate the volatility of
the inner set.  This fixes PR1435 and Transforms/LICM/2007-05-22-VolatileSink.ll

llvm-svn: 37305
2007-05-23 06:36:35 +00:00
Chris Lattner e44b6a6aaf new testcase for PR1435
llvm-svn: 37304
2007-05-23 06:35:52 +00:00
Chris Lattner c7e60517ed make these accessors private.
llvm-svn: 37302
2007-05-23 05:46:04 +00:00
Devang Patel 4d01a7b1b5 If user wants to run instcombine twice, do not block it.
llvm-svn: 37301
2007-05-23 05:08:52 +00:00
Chris Lattner bee7b32ef8 final updates
llvm-svn: 37299
2007-05-23 04:39:32 +00:00