Commit Graph

5475 Commits

Author SHA1 Message Date
Misha Brukman
c28e3c3880 Not only is this the first test case for ModuloScheduing, it's also the first
test case for the CVS commit-diffs.pl script which should show the entire
contents of this file below:


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5772 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-10 21:43:58 +00:00
Chris Lattner
d4bd3eba5d * Fix bug: Mem2Reg/2003-04-10-DFNotFound.ll
* Make Mem2Reg assign version numbers now for renamed variables instead of
  .mem2reg suffixes.  This produces what people think of as SSA.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5771 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-10 19:41:13 +00:00
Chris Lattner
228fd156f1 New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5770 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-10 19:21:07 +00:00
Misha Brukman
2c821cc06e Fixed compilation errors, command-line argument declarations, cleaned up code to
look nicer and removed useless stuff.

Also renamed a few variables, moved them into namespaces, converted outputting
to a file into a print to std::cerr with a DEBUG() guard, as all passes should
do anyway.

No functional changes have been made. However, this code now compiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5769 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-10 19:19:23 +00:00
Misha Brukman
8baa01c1d7 Made the code readable:
* Lines must be wrapped at 80 chars. This is a hard limit.
* Consistent style on functions, braces, if, for, etc. Code must be readable.

No functional changes have been made, even though I added a new typedef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5768 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-09 21:51:34 +00:00
Misha Brukman
4bd8b24470 Must use std::pair instead of just 'pair'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5767 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-07 00:25:09 +00:00
Guochun Shi
681220dc3c added a function and a member to the TargetSchedInfo class
which is used  by Modulo Scheduling pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5766 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-07 00:00:36 +00:00
Guochun Shi
105cb77d6f added some memory for clone function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5765 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-06 23:58:44 +00:00
Guochun Shi
6fbe5fbce1 change the include file names and some class names to make it compile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5764 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-06 23:56:19 +00:00
Chris Lattner
f9a88b684d Implement scanf and fix sscanf to actually endian swap the results correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5763 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 22:12:37 +00:00
Chris Lattner
88a9a3e6e3 Update to work with newer versions of bison
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5762 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 21:26:06 +00:00
Chris Lattner
7341178c5d Initial checkin of PRE test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5761 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 21:19:23 +00:00
Chris Lattner
7cd2fff2fd Initial checkin of PRE tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5760 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 19:57:36 +00:00
Chris Lattner
e941291a7a Initial checkin of PRE on LLVM. This implementation is still lacking in
several ways:

 * Load expressions are not PRE'd well.  Alias Analysis should be used to
   get accurate information when computing anticipatibility.
 * The expression collection implementation does not handle PHI nodes properly,
   thus the implementation misses many opportunities to PRE.
 * This code could be sped up quite a bit

Despite these flaws, the code seems to work well, and handles PR's as one
would expect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5759 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 19:55:43 +00:00
Chris Lattner
0e08e1beda Minor tweak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5758 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 17:30:35 +00:00
Chris Lattner
6c0e0496dc * We now preserve the no-critical-edge pass (because we cannot insert critical edges)
* Small modification to be more efficient


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5757 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 17:30:25 +00:00
Chris Lattner
d76370b306 Add getAnalysisUsage method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5756 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-31 17:29:18 +00:00
Guochun Shi
f1c154f5e6 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5755 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-27 17:57:44 +00:00
Chris Lattner
c277eaa41e Move BreakCriticalEdges pass to lib/Transforms/Utils
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5754 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-21 21:43:19 +00:00
Chris Lattner
f1ab454b71 Add helper method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5753 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-21 21:41:02 +00:00
Chris Lattner
6f2ec7f59d Update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5752 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-21 21:40:39 +00:00
Chris Lattner
e33b796851 Add more graph traits specializations for dominator tree nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5751 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-20 21:21:05 +00:00
Chris Lattner
3413d150dc * Change the order that globals and constants are processed in
* Add support for implicit zero initializers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5750 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-19 20:57:22 +00:00
Chris Lattner
186a1f71e6 Changes to the V2 bytecode format:
- Null values are implicitly encoded instead of explicitly, this makes
    things more compact!
  - More compactly represent ConstantPointerRefs
  - Bytecode files are represented as:
      Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
    instead of
      Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
    which makes a lot of things simpler.

Writer changes:
  - We now explictly encode versioning information in the bytecode files.
  - This allows new code to read bytecode files produced by old code, but
    new bytecode files can have enhancements such as the above.  Although this
    makes the reader a bit more complex (having to deal with old formats), the
    writer only needs to be able to produce the most recent version.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5749 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-19 20:56:46 +00:00
Chris Lattner
52e20b0977 * Bug fixes:
- Fix problems where the constant table would not get updated when
    resolving constants causes other constants to change.

Changes to the V2 bytecode format
  - Null values are implicitly encoded instead of explicitly, this makes
    things more compact!
  - More compactly represent ConstantPointerRefs
  - Bytecode files are represented as:
      Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
    instead of
      Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
    which makes a lot of things simpler.

Changes to the reader:
  - Function loading code is much simpler.  We now no longer make function
    PlaceHolderHelper objects to be replaced with real functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5748 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-19 20:54:26 +00:00
Chris Lattner
1b079f9685 Add new chunk type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5747 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-19 20:48:27 +00:00
Chris Lattner
056e84c5b6 Fix testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5746 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-18 22:53:19 +00:00
Chris Lattner
8fb1fe16b7 Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5745 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-17 18:11:27 +00:00
Chris Lattner
760da06489 Fix several bugs in the build system, including the use of the Debug version of Burg no matter what configuration is currently configured.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5744 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-14 20:25:22 +00:00
Chris Lattner
c8802d2c16 Add the following instcombine xforms:
- Implement simple reassociation: (A|c1)|(B|c2) == (A|B)|(c1|c2)
  - (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
  - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5743 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-11 00:12:48 +00:00
Chris Lattner
be0fe12f72 Test limited reassociation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5742 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-11 00:10:59 +00:00
Chris Lattner
8408add00a Add optimizations:
- (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0
 - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5741 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:52:54 +00:00
Chris Lattner
a4f445b28c Implement: -A*-B == A*B
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5740 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:23:04 +00:00
Chris Lattner
533741a764 Add testcases for negated multiplies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5739 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:22:50 +00:00
Chris Lattner
a27231acc0 Add new transformation: // (~A | ~B) == (~(A & B))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5738 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:13:59 +00:00
Chris Lattner
0cec701eb2 Add test for demorgans law with constants
Add test for other form of demorgans


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5737 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:13:32 +00:00
Chris Lattner
8d96964e29 Generalize not and neg comparison testers to allow constant to be considered not'able and neg'able. This
allows optimization of this:
int %test4(int %A, int %B) {
        %a = xor int %A, -1
        %c = and int %a, 5    ; 5 = ~c2
        %d = xor int %c, -1
        ret int %d
}

into this:
int %test4(int %A, int %B) {            ; No predecessors!
        %c.demorgan = or int %A, -6             ; <int> [#uses=1]
        ret int %c.demorgan
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5736 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 23:06:50 +00:00
Chris Lattner
1b77300154 * Add testcases for associative operators
* Add testcase for or ubyte, 255 which was broken before


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5735 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:43:56 +00:00
Chris Lattner
1680312867 Fix ConstantUInt::isAllOnesValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5734 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 22:39:02 +00:00
Chris Lattner
4f98c56936 Generalize (A+c1)+c2 optimization to work with all associative operators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5733 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 21:43:22 +00:00
Chris Lattner
2bd37807d0 Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5732 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:44:01 +00:00
Chris Lattner
28ba1aad99 Minor change, no functionality diff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5731 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:20:30 +00:00
Chris Lattner
c232870b6f Add a bunch of new tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5730 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:16:20 +00:00
Chris Lattner
ea34005404 Fix bug: (x << 100) wasn't folded to 0, but (x >> 100) was (when x is unsigned)
Implement new shift optimizations for shifting the result of a shift.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5729 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 19:16:08 +00:00
Chris Lattner
cb40a3749a Implement: (A|B)^B == A & (~B)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5728 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:24:17 +00:00
Chris Lattner
63a9548591 Add test for: (A|B)^B == A & (~B)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5727 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:24:04 +00:00
Chris Lattner
a66e2fa195 Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5726 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-10 18:20:53 +00:00
Misha Brukman
3d87b42bf9 The word 'independent' has no 'a'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5724 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-08 23:59:05 +00:00
Chris Lattner
10f22cb1a0 Make sure that intermediate code is verifier clean to avoid wierd problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5723 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 18:17:13 +00:00
Chris Lattner
3a43837d85 Fix bug: SimplifyCFG/2003-03-07-DominateProblem.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5722 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-07 18:13:41 +00:00