31724 Commits

Author SHA1 Message Date
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
Chris Lattner
4ba780d26e Implement two iterator remove method
llvm-svn: 2467
2002-05-06 02:59:34 +00:00
Chris Lattner
dac95a012b Initial testcases for CFG simplify (which is part of DCE for now)
llvm-svn: 2466
2002-05-06 02:37:38 +00:00
Chris Lattner
1890ef5cd7 Test moved to SCCP test directory
llvm-svn: 2465
2002-05-06 00:52:06 +00:00
Chris Lattner
0a144ad555 Implement remainder
Fix implementation of Not

llvm-svn: 2464
2002-05-03 21:41:07 +00:00
Chris Lattner
fcc96e582f Implement remainder
llvm-svn: 2463
2002-05-03 21:40:37 +00:00
Chris Lattner
37c4d69860 New testcase for bugs in the constant propogator
llvm-svn: 2462
2002-05-03 20:25:40 +00:00
Chris Lattner
7ad7bf0071 Add tests for floating point remainder elimination
llvm-svn: 2461
2002-05-03 20:16:29 +00:00
Chris Lattner
f91d56355f New testcase to see if constant propogation of remainder is implemented
llvm-svn: 2460
2002-05-03 20:14:21 +00:00
Chris Lattner
177dac4d92 This testcase is a sanity check
llvm-svn: 2459
2002-05-03 20:12:31 +00:00