summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support
Commit message (Collapse)AuthorAgeFilesLines
* remove the dead removeArgument method, rename Options to OptionsMap.Chris Lattner2007-04-051-61/+30
| | | | llvm-svn: 35690
* stringmap memory managed with malloc nowChris Lattner2007-04-041-1/+1
| | | | llvm-svn: 35666
* use calloc instead of new/memset, it is more efficientChris Lattner2007-04-041-4/+2
| | | | llvm-svn: 35644
* Extend StringMap to support being initialized as completely empty. WhenChris Lattner2007-04-041-2/+22
| | | | | | initialized this way, they do not do a malloc to allocate their buckets. llvm-svn: 35642
* greatly reduce hte default size of stringmap.Chris Lattner2007-04-031-1/+1
| | | | llvm-svn: 35632
* Implement union of wrapped sets.Nick Lewycky2007-04-011-7/+65
| | | | llvm-svn: 35534
* For PR789:Reid Spencer2007-03-291-5/+6
| | | | | | | | Make the sys::Path::getFileStatus function more efficient by having it return a pointer to the FileStatus structure rather than copy it. Adjust uses of the function accordingly. Also, fix some memory issues in sys::Path. llvm-svn: 35476
* For PR789:Reid Spencer2007-03-291-2/+2
| | | | | | Updates for change in interface of getFileStatus method of sys::Path class. llvm-svn: 35458
* Fix a bug in getAllOnesValue() which brokeZhou Sheng2007-03-211-1/+1
| | | | | | some test cases for bitwidth > 64. llvm-svn: 35232
* Fix (and simplify) 48-bit byte swap.Jeff Cohen2007-03-201-9/+8
| | | | | | Get pos/neg infinity the correct way. llvm-svn: 35223
* Fix coding standards violation.Reid Spencer2007-03-191-1/+1
| | | | llvm-svn: 35189
* Implement extension of sign bits for negative values in the uint64_tReid Spencer2007-03-191-1/+5
| | | | | | constructor. This helps to fix test/Assembler/2007-03-19-NegValue.ll llvm-svn: 35180
* Revert the last patch as it violates the conditions of sext/zext.Reid Spencer2007-03-121-4/+0
| | | | llvm-svn: 35068
* For APInt::z/sext(width), if width == BitWidth, just return *this.Zhou Sheng2007-03-121-0/+4
| | | | llvm-svn: 35065
* Add getter methods for the extremes of a ConstantRange.Nick Lewycky2007-03-101-0/+64
| | | | llvm-svn: 35056
* Unbreak VC++ build.Jeff Cohen2007-03-051-1/+9
| | | | llvm-svn: 34917
* Fix ashr for bitwidths > 64. This is now validated up to 1024 bits.Reid Spencer2007-03-021-33/+49
| | | | llvm-svn: 34852
* Use a better algorithm for rounding sqrt results. Change the FIXME aboutReid Spencer2007-03-021-8/+12
| | | | | | | | | this to a NOTE: because pari/gp results start to get rounded incorrectly after 192 bits of precision. APInt and pari/gp never differ by more than 1, but APInt is more accurate because it does not lose precision after 192 bits as does pari/gp. llvm-svn: 34834
* Implement unionWith.Nick Lewycky2007-03-021-2/+11
| | | | llvm-svn: 34833
* Add a FIXMEReid Spencer2007-03-021-0/+3
| | | | llvm-svn: 34828
* Fix a problem where shifting by 64-bits leads to incorrect results on PPCReid Spencer2007-03-021-1/+4
| | | | | | but not on X86 becuase shift by word size is "undefined". llvm-svn: 34825
* Combine two lines that can be.Reid Spencer2007-03-011-2/+1
| | | | llvm-svn: 34818
* Make the static table of results in sqrt const.Reid Spencer2007-03-011-1/+1
| | | | llvm-svn: 34791
* Add methods for bit width modification: sextOrTrunc, zextOrTrunc.Reid Spencer2007-03-011-0/+16
| | | | llvm-svn: 34789
* Remove the "isSigned" parameters from ConstantRange. It turns out theyReid Spencer2007-03-011-37/+23
| | | | | | | | are not needed as the results are the same with or without it. Patch by Nicholas Lewycky. llvm-svn: 34782
* Use a real table in sqrt to shorten and quicken the code.Reid Spencer2007-03-011-14/+10
| | | | | | Thanks for the idea Chris. llvm-svn: 34779
* Add a square root function.Reid Spencer2007-03-011-6/+87
| | | | llvm-svn: 34775
* Move ConstantRange class to lib/Support from lib/Analysis and make itsReid Spencer2007-02-281-0/+259
| | | | | | interface not depend on Type or ICmpInst. llvm-svn: 34761
* Make the trunc/sext/zext methods return APInt& so that these operationsReid Spencer2007-02-281-7/+8
| | | | | | can be chained together with other operations. llvm-svn: 34743
* Fix a bug in RoundDoubleToAPInt where it would force the size to 64 bitsReid Spencer2007-02-281-1/+1
| | | | | | instead of honoring the client's requested bit width. llvm-svn: 34712
* Join two lines that can be joined.Reid Spencer2007-02-271-2/+1
| | | | llvm-svn: 34705
* Implement countLeadingOnes() and getMinSignedBits(). This helps to minimizeReid Spencer2007-02-271-1/+34
| | | | | | | the bit width of negative numbers by computing the minimum bit width for a negative value. E.g. 0x1800000000000000 could be just 0x8000000000000000 llvm-svn: 34695
* Improve APInt interface:Reid Spencer2007-02-271-34/+1
| | | | | | | | | | 1. Add unsigned and signed versions of methods so a "bool" argument doesn't need to be passed in. 2. Make the various getMin/getMax functions all be inline since they are so simple. 3. Simplify sdiv and srem code. llvm-svn: 34680
* Conform to single person attribution in file comment.Reid Spencer2007-02-271-3/+2
| | | | llvm-svn: 34678
* 1. Fix three serious bugs in the comparison code.Reid Spencer2007-02-271-18/+22
| | | | | | | 2. Change RoundDoubleToAPInt to take a bit width parameter. Use that parameter to limit the bit width of the result. llvm-svn: 34673
* Get rid of extraneous // in file comment.Reid Spencer2007-02-271-1/+1
| | | | llvm-svn: 34662
* Simplify and document RoundDoubleToAPInt.Reid Spencer2007-02-271-3/+15
| | | | llvm-svn: 34648
* 1. Make sure all delete operators of arrays use the array form of delete.Reid Spencer2007-02-261-19/+45
| | | | | | | | | | | | | | 2. Rewrite operator=(const APInt& RHS) to allow the RHS to be a different bit width than the LHS. This makes it possible to use APInt as the key of a DenseMap, as needed for the IntConstants map in Constants.cpp 3. Fix operator=(uint64_t) to clear unused bits in case the client assigns a value that has more bits than the APInt allows. 4. Assert that bit widths are equal in operator== 5. Revise getHashValue() to put the bit width in the low order six bits. This should help to make i1 0, i2 0, ... i64 0 all distinct in the IntConstants DenseMap. llvm-svn: 34646
* Implement the getHashValue method.Reid Spencer2007-02-261-1/+16
| | | | | | Fix toString use of getValue to use getZExtValue() llvm-svn: 34642
* Re-enable this. The header was committed.Reid Spencer2007-02-261-4/+0
| | | | llvm-svn: 34634
* another missing header :( :( :(Chris Lattner2007-02-261-0/+4
| | | | llvm-svn: 34632
* 1. Remove redundant calls to clearUsedBits().Reid Spencer2007-02-261-44/+79
| | | | | | | | | | 2. Fix countTrailingZeros to use a faster algorithm. 3. Simplify sext() slightly by using isNegative(). 4. Implement ashr using word-at-a-time logic instead of bit-at-a-time 5. Rename locals named isNegative so they don't clash with method name. 6. Fix fromString to compute negated value correctly. llvm-svn: 34629
* Rewrite lshr to not do bit by bit copy but to copy and shift whole words.Reid Spencer2007-02-261-15/+42
| | | | | | This makes it much more efficient. llvm-svn: 34618
* Fix sext operation. Shifting by zero would leave an incorrect mask.Reid Spencer2007-02-251-1/+1
| | | | llvm-svn: 34617
* 1. Fix the flip() method to correctly flip all words of the APInt.Reid Spencer2007-02-251-13/+89
| | | | | | | 2. Implement the trunc, sext, and zext operations. 3. Improve fromString to accept negative values as input. llvm-svn: 34616
* 1. Provide more detail in file comment.Reid Spencer2007-02-251-189/+145
| | | | | | | | | | | | | | 2. Move comments for methods to .h file, delete them in .cpp file. 3. All places that were doing manual clear of high order bits now call the clearUnusedBits() method in order to not depend on undefined behavior of the >> operator when the number of bits shifted equals the word size. 4. Reduced # of loc by using the new result of clearUnusedBits() method. 5. Simplified logic (decreased indentation) in a few places. 6. Added code comments to larger functions that needed them. 7. Added FIXME notes about weak implementations of things (e.g. bit-by-bit shift right is sub-optimal). llvm-svn: 34603
* Allow this to compile now that the header file is checked in.Reid Spencer2007-02-251-4/+0
| | | | llvm-svn: 34581
* this doesn't compile, disable itChris Lattner2007-02-251-0/+4
| | | | llvm-svn: 34571
* Clean up lshr and ashr to coding standards.Reid Spencer2007-02-251-53/+79
| | | | | | Handle the single word cases for shiftAmt == BitWidth. llvm-svn: 34569
* Whoops, last word with bits in large shift left wasn't correct.Reid Spencer2007-02-251-1/+1
| | | | llvm-svn: 34565
OpenPOWER on IntegriCloud