Commit Graph

2383 Commits

Author SHA1 Message Date
Chris Lattner 3d3f4df710 Factor code out to the Transform Utils library
llvm-svn: 2519
2002-05-07 18:18:00 +00:00
Chris Lattner 9b55e5a2f4 Reduce dependance on TransformInternals.h, instead using the TransformUtils library
llvm-svn: 2518
2002-05-07 18:12:18 +00:00
Chris Lattner 3d86d49604 Add #include no longer included by llvm/Transforms/Scalar/ConstantProp.h
llvm-svn: 2517
2002-05-07 18:11:30 +00:00
Chris Lattner 560da70f8c Factor code out to the TransformUtils library
llvm-svn: 2516
2002-05-07 18:10:55 +00:00
Chris Lattner 6a51585155 Factor code out of TransformInternals into the Transform Utils library
llvm-svn: 2515
2002-05-07 18:09:15 +00:00
Chris Lattner 664d085cb3 Build Transforms Utils library
llvm-svn: 2514
2002-05-07 18:08:50 +00:00
Chris Lattner 28537dff72 Add code pulled out of TransformInternals.cpp, ConstProp.cpp, and DCE.cpp
llvm-svn: 2513
2002-05-07 18:07:59 +00:00
Chris Lattner d66a6e33e9 * Convert InstWorkList to vector instead of set, because on big programs it
is empirically faster by a noticable margin, even though duplicates can
  happen.

llvm-svn: 2511
2002-05-07 04:29:32 +00:00
Chris Lattner 87e8806f05 * Remove all cfg simplification stuff for a new cfg simplify pass (todo)
* Convert to worklist instead of iterative algorithm

llvm-svn: 2510
2002-05-07 04:24:11 +00:00
Chris Lattner a8292f31c8 Finish up the updates to the language reference
llvm-svn: 2509
2002-05-06 22:08:29 +00:00
Chris Lattner 86ed92af6d Mark analyses that only depend on the CFG of a function
llvm-svn: 2507
2002-05-06 19:32:07 +00:00
Chris Lattner 7e0dbe62e8 Make functions that preserve the CFG not invalidate analyses that only depend
on the CFG of a function

llvm-svn: 2506
2002-05-06 19:31:52 +00:00
Chris Lattner 3a7241c13e Add support for passes to announce that they only depend on the CFG of a
function.  This is crude but effective

llvm-svn: 2505
2002-05-06 19:31:16 +00:00
Chris Lattner a6e047a5d9 Only do masking for unsigned values!
llvm-svn: 2504
2002-05-06 18:54:59 +00:00
Chris Lattner cfa675c142 GCSE is faster than SCCP, and it makes SCCP's job easier, so run it first.
llvm-svn: 2503
2002-05-06 18:54:12 +00:00
Chris Lattner e548507e8c * Eliminate dead code that should have been removed in last revision
* Convert main constant propogation pass to be worklist driven instead of
  iterative.
* -constprop pass no longer "constant propogates" terminator instructions
   - CFG is now preserved!

llvm-svn: 2502
2002-05-06 18:21:31 +00:00
Chris Lattner bbbdd852b8 Handle X = phi Y --> X = Y
llvm-svn: 2501
2002-05-06 18:06:38 +00:00
Chris Lattner a9c099d1d2 Make the testcase more interesting so that DCE does not eliminate it.
Use DIE instead of DCE anyway

llvm-svn: 2500
2002-05-06 17:59:23 +00:00
Chris Lattner 5576a2caff Move a bunch of code to a .cpp file, don't #include Instruction.h
llvm-svn: 2499
2002-05-06 17:54:50 +00:00
Chris Lattner 9f3077342b Move code out of header file
llvm-svn: 2498
2002-05-06 17:54:27 +00:00
Chris Lattner 4c3366405a * Use simplified interface to constant propogation stuff.
* Remove dead PHI case (which could not work due to getNumOperands rather than
  getNumIncomingValues.  This really belongs in InstCombine, anyway so we'll
  move it there.

llvm-svn: 2497
2002-05-06 17:54:10 +00:00
Chris Lattner 4b0cac3b0f Add #include removed from ConstantHandling.h
llvm-svn: 2496
2002-05-06 17:53:10 +00:00
Chris Lattner 5ff36750e7 New testcase for PHI folding
llvm-svn: 2495
2002-05-06 17:43:38 +00:00
Chris Lattner 019f3649bd Clean up ADCE by removing extraneous wrapper class
llvm-svn: 2494
2002-05-06 17:27:57 +00:00
Chris Lattner 5d6bec5e26 Combine not (not X) -> X
llvm-svn: 2493
2002-05-06 17:03:21 +00:00
Chris Lattner 679da03275 New testcase to make sure not instructions get combined
llvm-svn: 2492
2002-05-06 17:00:47 +00:00
Chris Lattner dcb7ff00b1 Instruction Combination can create a ton of trivially dead instructions. Remove
them with an DIE pass before more expensive optimizations are run.

llvm-svn: 2491
2002-05-06 16:52:15 +00:00
Chris Lattner 9fa53de7e9 Support more cases...
llvm-svn: 2490
2002-05-06 16:49:18 +00:00
Chris Lattner e0c3fbb559 More tests
llvm-svn: 2489
2002-05-06 16:44:53 +00:00
Chris Lattner 973db87308 Add testcase for -(-A)
llvm-svn: 2488
2002-05-06 16:19:16 +00:00
Chris Lattner 3ad34b9c3c Change usage of isPointerType to use isa
llvm-svn: 2487
2002-05-06 16:15:49 +00:00
Chris Lattner 181cc32365 Replace all usages of Type::isPointerType with isa<PointerType>
llvm-svn: 2486
2002-05-06 16:15:30 +00:00
Chris Lattner 398a86f14e Implement getPrimitiveSize()
don't use isPointerType()

llvm-svn: 2485
2002-05-06 16:14:39 +00:00
Chris Lattner f4cdbf34e5 Add many more instruction combination simplifications
llvm-svn: 2484
2002-05-06 16:14:14 +00:00
Chris Lattner feede662ad * Add getPrimitiveSize method
* Remove isPointerType, isMethodType, etc... methods.  Use isa<> instead
* Added specialization of isa for pointer types so that DerivedTypes.h doesn't
  have to be #included to use isa<PointerType>(..)

llvm-svn: 2483
2002-05-06 16:12:53 +00:00
Chris Lattner bcb8138e08 Fix testcase, the 'shift out all bits' doesn't apply to signed types.
llvm-svn: 2482
2002-05-06 16:11:31 +00:00
Chris Lattner 08b2c3638d Void and Label values cannot be acted on directly so they have zero size
llvm-svn: 2481
2002-05-06 15:10:15 +00:00
Chris Lattner 6022ad064c More testcases I don't want to forget about
llvm-svn: 2480
2002-05-06 05:51:26 +00:00
Chris Lattner 74e95476d4 New testcases so I don't forget about these algebraic simplifications
llvm-svn: 2479
2002-05-06 05:43:36 +00:00
Chris Lattner 8170e8f397 New testcase so I don't forget about this.
llvm-svn: 2478
2002-05-06 05:35:20 +00:00
Chris Lattner 5fc509b008 Testcase for missed merge opportunity
llvm-svn: 2477
2002-05-06 03:11:32 +00:00
Chris Lattner 878bbb2f1c Run DCE AFTER SCCP and GCSE!
llvm-svn: 2476
2002-05-06 03:04:17 +00:00
Chris Lattner fed6d77c43 Build CFGsimplify directory
llvm-svn: 2475
2002-05-06 03:03:55 +00:00
Chris Lattner 095735d42e Updated documentation a _LOT_
llvm-svn: 2474
2002-05-06 03:03:22 +00:00
Chris Lattner 638fa9385d Remove dead code
llvm-svn: 2473
2002-05-06 03:03:09 +00:00
Chris Lattner 66e25b8b62 Merge blocks like this:
void "test3"(bool %T) {
        br bool %T, label %BB1, label %BB1
BB1:
        ret void
}

llvm-svn: 2472
2002-05-06 03:02:02 +00:00
Chris Lattner 940daedc22 Implement constant propogation of shift instructions
llvm-svn: 2471
2002-05-06 03:01:37 +00:00
Chris Lattner 6670d86b0b Implement constant propogation of shifts
llvm-svn: 2470
2002-05-06 03:00:54 +00:00
Chris Lattner b2f02e5952 Print functions with curly braces instead of begin/end
llvm-svn: 2469
2002-05-06 03:00:40 +00:00
Chris Lattner 94121c9409 Add a range remove method
llvm-svn: 2468
2002-05-06 02:59:52 +00:00