| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that SmallString is a first-class citizen, most SmallString::str()
calls are not required. This patch removes a whole bunch of them, yet
there are lots more.
There are two use cases where str() is really needed:
1) To use one of StringRef member functions which is not available in
SmallString.
2) To convert to std::string, as StringRef implicitly converts while
SmallString do not. We may wish to change this, but it may introduce
ambiguity.
llvm-svn: 232622
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Saves adding .str() call to any raw_ostream << SmallString usage
and a small step towards making .str() consistent in the ADTs by
removing one of the SmallString::str() use cases, discussion at
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141013/240026.html
I'll update the Phabricator patch http://reviews.llvm.org/D6372
for review of the Twine SmallString support, it's more complex
than this one.
llvm-svn: 231763
|
|
|
|
|
|
| |
All supported platforms have half-way decent C99 support.
llvm-svn: 231679
|
|
|
|
|
|
|
|
| |
with countTrailingZeros
Update all callers.
llvm-svn: 228930
|
|
|
|
|
|
|
|
| |
This mirrors the behavior of APInt::udiv and APInt::urem. Some
architectures, like X86, have a single instruction which can compute
both division and remainder.
llvm-svn: 224217
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have a transform that changes:
(x lshr C1) udiv C2
into:
x udiv (C2 << C1)
However, it is unsafe to do so if C2 << C1 discards any of C2's bits.
This fixes PR21255.
llvm-svn: 219634
|
|
|
|
| |
llvm-svn: 219588
|
|
|
|
|
|
| |
Saves a couple of expensive deep copies. NFC.
llvm-svn: 219487
|
|
|
|
| |
llvm-svn: 217597
|
|
|
|
|
|
| |
definition below all of the header #include lines, lib/Support edition.
llvm-svn: 206847
|
|
|
|
| |
llvm-svn: 205697
|
|
|
|
|
|
|
| |
Sweep the codebase for common typos. Includes some changes to visible function
names that were misspelt.
llvm-svn: 200018
|
|
|
|
|
|
| |
Change tests for extractBit to test operator[].
llvm-svn: 197277
|
|
|
|
| |
llvm-svn: 197271
|
|
|
|
| |
llvm-svn: 183073
|
|
|
|
|
|
|
|
| |
use in APFloat IEEE-754R 2008 nextUp/nextDown function.
rdar://13852078
llvm-svn: 182801
|
|
|
|
| |
llvm-svn: 182680
|
|
|
|
|
|
| |
They are generally faster (at least not slower) than post-inc, post-dec.
llvm-svn: 177608
|
|
|
|
|
|
|
| |
require call cpp file anyway, so we wouldn't gain anything by keeping them
inline.
llvm-svn: 175579
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.
Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]
llvm-svn: 169131
|
|
|
|
|
|
| |
See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767
llvm-svn: 164768
|
|
|
|
| |
llvm-svn: 164767
|
|
|
|
|
|
| |
This caused 6 of 65k possible 8 bit udivs to be wrong.
llvm-svn: 160058
|
|
|
|
|
|
| |
Patch by James Benton <jbenton@vmware.com>.
llvm-svn: 158213
|
|
|
|
| |
llvm-svn: 152692
|
|
|
|
|
|
| |
code when inlined.
llvm-svn: 152688
|
|
|
|
| |
llvm-svn: 152577
|
|
|
|
| |
llvm-svn: 152545
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new hash_value infrastructure, and replace their implementations using
hash_combine. This removes a complete copy of Jenkin's lookup3 hash
function (which is both significantly slower and lower quality than the
one implemented in hash_combine) along with a somewhat scary xor-only
hash function.
Now that APInt and APFloat can be passed directly to hash_combine,
simplify the rest of the LLVMContextImpl hashing to use the new
infrastructure.
llvm-svn: 152004
|
|
|
|
| |
llvm-svn: 151385
|
|
|
|
|
|
| |
width.
llvm-svn: 149151
|
|
|
|
|
|
| |
writing some code that tried to use them.
llvm-svn: 147134
|
|
|
|
|
|
|
|
| |
Hexatridecimal was added in r139695.
And fix the unittest that now triggers the assert.
llvm-svn: 146754
|
|
|
|
| |
llvm-svn: 145627
|
|
|
|
| |
llvm-svn: 145111
|
|
|
|
|
|
| |
integers where there is unsigned overflow. Fix APFloat::toString so that it doesn't depend on the incorrect behavior in common cases (and computes the correct result in some rare cases). Fixes PR11086.
llvm-svn: 141441
|
|
|
|
| |
llvm-svn: 140166
|
|
|
|
| |
llvm-svn: 140158
|
|
|
|
| |
llvm-svn: 140043
|
|
|
|
| |
llvm-svn: 139695
|
|
|
|
|
|
|
|
|
| |
ambiguity
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
llvm-svn: 135431
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
toString() now takes an optional bool argument that,
depending on the radix, adds the appropriate prefix
to the integer's string representation that makes it into a
meaningful C literal, e.g.:
hexademical: '-f' becomes '-0xf'
octal: '77' becomes '077'
binary: '110' becomes '0b110'
Patch by nobled@dreamwidth.org!
llvm-svn: 133032
|
|
|
|
| |
llvm-svn: 131842
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
|
|
| |
identical to the smul.with.overflow() code.
llvm-svn: 128379
|
|
|
|
|
|
|
|
| |
bits that are known zero in the divided number.
This will come in handy soon.
llvm-svn: 127828
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
approximation
of a constant had a minor typo introduced when copying it from the book, which
caused it to favor negative approximations over positive approximations in many
cases. Positive approximations require fewer operations beyond the multiplication.
In the case of division by 3, we still generate code that is a single instruction
larger than GCC's code.
llvm-svn: 126097
|
|
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
|
|
|
|
| |
llvm-svn: 120912
|
|
|
|
|
|
| |
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
|