summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement scanf and fix sscanf to actually endian swap the results correctlyChris Lattner2003-03-311-2/+97
| | | | llvm-svn: 5763
* Update to work with newer versions of bisonChris Lattner2003-03-311-22/+22
| | | | llvm-svn: 5762
* Initial checkin of PRE testChris Lattner2003-03-311-0/+194
| | | | llvm-svn: 5761
* Initial checkin of PRE testsChris Lattner2003-03-311-0/+10
| | | | llvm-svn: 5760
* Initial checkin of PRE on LLVM. This implementation is still lacking inChris Lattner2003-03-311-0/+614
| | | | | | | | | | | | | | | 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. llvm-svn: 5759
* Minor tweakChris Lattner2003-03-311-1/+1
| | | | llvm-svn: 5758
* * We now preserve the no-critical-edge pass (because we cannot insert ↵Chris Lattner2003-03-311-11/+17
| | | | | | | | critical edges) * Small modification to be more efficient llvm-svn: 5757
* Add getAnalysisUsage methodChris Lattner2003-03-311-2/+5
| | | | llvm-svn: 5756
* *** empty log message ***Guochun Shi2003-03-275-0/+2726
| | | | llvm-svn: 5755
* Move BreakCriticalEdges pass to lib/Transforms/UtilsChris Lattner2003-03-211-155/+0
| | | | llvm-svn: 5754
* Add helper methodChris Lattner2003-03-212-0/+12
| | | | llvm-svn: 5753
* Update commentChris Lattner2003-03-211-1/+1
| | | | llvm-svn: 5752
* Add more graph traits specializations for dominator tree nodesChris Lattner2003-03-201-3/+10
| | | | llvm-svn: 5751
* * Change the order that globals and constants are processed inChris Lattner2003-03-191-36/+45
| | | | | | * Add support for implicit zero initializers llvm-svn: 5750
* Changes to the V2 bytecode format:Chris Lattner2003-03-193-48/+54
| | | | | | | | | | | | | | | | | | | | - 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. llvm-svn: 5749
* * Bug fixes:Chris Lattner2003-03-193-172/+207
| | | | | | | | | | | | | | | | | | | | | - 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. llvm-svn: 5748
* Add new chunk typeChris Lattner2003-03-191-0/+1
| | | | llvm-svn: 5747
* Fix testcaseChris Lattner2003-03-181-6/+6
| | | | llvm-svn: 5746
* Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95Chris Lattner2003-03-171-6/+6
| | | | llvm-svn: 5745
* Fix several bugs in the build system, including the use of the Debug version ↵Chris Lattner2003-03-142-104/+50
| | | | | | of Burg no matter what configuration is currently configured. llvm-svn: 5744
* Add the following instcombine xforms:Chris Lattner2003-03-111-29/+74
| | | | | | | | - 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 llvm-svn: 5743
* Test limited reassociationChris Lattner2003-03-112-0/+7
| | | | llvm-svn: 5742
* Add optimizations:Chris Lattner2003-03-103-1/+16
| | | | | | | - (A & C1)+(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0 - (A & C1)^(B & C2) -> (A & C1)|(B & C2) iff C1&C2 == 0 llvm-svn: 5741
* Implement: -A*-B == A*BChris Lattner2003-03-101-0/+4
| | | | llvm-svn: 5740
* Add testcases for negated multipliesChris Lattner2003-03-101-0/+13
| | | | llvm-svn: 5739
* Add new transformation: // (~A | ~B) == (~(A & B))Chris Lattner2003-03-101-8/+19
| | | | llvm-svn: 5738
* Add test for demorgans law with constantsChris Lattner2003-03-101-0/+17
| | | | | | Add test for other form of demorgans llvm-svn: 5737
* Generalize not and neg comparison testers to allow constant to be considered ↵Chris Lattner2003-03-101-27/+41
| | | | | | | | | | | | | | | | | | | | 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 } llvm-svn: 5736
* * Add testcases for associative operatorsChris Lattner2003-03-103-1/+29
| | | | | | * Add testcase for or ubyte, 255 which was broken before llvm-svn: 5735
* Fix ConstantUInt::isAllOnesValueChris Lattner2003-03-102-1/+10
| | | | llvm-svn: 5734
* Generalize (A+c1)+c2 optimization to work with all associative operatorsChris Lattner2003-03-101-35/+50
| | | | llvm-svn: 5733
* Modernize testcaseChris Lattner2003-03-101-9/+6
| | | | llvm-svn: 5732
* Minor change, no functionality diffChris Lattner2003-03-101-3/+3
| | | | llvm-svn: 5731
* Add a bunch of new testsChris Lattner2003-03-101-0/+30
| | | | llvm-svn: 5730
* Fix bug: (x << 100) wasn't folded to 0, but (x >> 100) was (when x is unsigned)Chris Lattner2003-03-101-7/+48
| | | | | | Implement new shift optimizations for shifting the result of a shift. llvm-svn: 5729
* Implement: (A|B)^B == A & (~B)Chris Lattner2003-03-101-0/+25
| | | | llvm-svn: 5728
* Add test for: (A|B)^B == A & (~B)Chris Lattner2003-03-101-0/+6
| | | | llvm-svn: 5727
* Modernize testcaseChris Lattner2003-03-101-5/+5
| | | | llvm-svn: 5726
* The word 'independent' has no 'a'.Misha Brukman2003-03-081-1/+1
| | | | llvm-svn: 5724
* Make sure that intermediate code is verifier clean to avoid wierd problems.Chris Lattner2003-03-071-0/+5
| | | | llvm-svn: 5723
* Fix bug: SimplifyCFG/2003-03-07-DominateProblem.llChris Lattner2003-03-071-2/+19
| | | | llvm-svn: 5722
* New testcaseChris Lattner2003-03-071-0/+22
| | | | llvm-svn: 5721
* Clean up cruftChris Lattner2003-03-061-4/+1
| | | | llvm-svn: 5720
* Extend struct and array constants to support isNullValueChris Lattner2003-03-061-2/+16
| | | | llvm-svn: 5719
* Remove #includeChris Lattner2003-03-061-1/+18
| | | | | | Extend getNullValue to work with struct and array types llvm-svn: 5718
* Update testcases to use long to index gepChris Lattner2003-03-063-8/+6
| | | | llvm-svn: 5717
* Infrastructure for more compact bytecode files and REAL support for versioningChris Lattner2003-03-062-9/+47
| | | | llvm-svn: 5716
* s/Method/Function in variable and method namesChris Lattner2003-03-063-16/+16
| | | | llvm-svn: 5715
* Continue simplifying error handling, s/method/functionChris Lattner2003-03-062-60/+48
| | | | llvm-svn: 5714
* Cleanup error handling constructsChris Lattner2003-03-061-37/+47
| | | | llvm-svn: 5713
OpenPOWER on IntegriCloud