|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 116462 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | logic to use the new APInt methods.  Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457 | 
| | 
| 
| 
| | llvm-svn: 116455 | 
| | 
| 
| 
| 
| 
| | return an overflow flag.
llvm-svn: 116452 | 
| | 
| 
| 
| | llvm-svn: 111337 | 
| | 
| 
| 
| | llvm-svn: 108366 | 
| | 
| 
| 
| 
| 
| | Evzen Muller!
llvm-svn: 103877 | 
| | 
| 
| 
| 
| 
| | Kees van Reeuwijk for PR6704
llvm-svn: 99677 | 
| | 
| 
| 
| | llvm-svn: 99414 | 
| | 
| 
| 
| 
| 
| 
| 
| | payloads.  APFloat's internal folding routines always make QNaNs now,
instead of sometimes making QNaNs and sometimes SNaNs depending on the
type.
llvm-svn: 97364 | 
| | 
| 
| 
| | llvm-svn: 95781 | 
| | 
| 
| 
| 
| 
| | as undefined.  Fixes an assertion in APFloat::toString noticed by Dale.
llvm-svn: 95196 | 
| | 
| 
| 
| | llvm-svn: 92643 | 
| | 
| 
| 
| 
| 
| | order should be immune to such problems.
llvm-svn: 92124 | 
| | 
| 
| 
| | llvm-svn: 82355 | 
| | 
| 
| 
| 
| 
| | icc (#177, partial).  Patch by Erick Tryzelaar.
llvm-svn: 81106 | 
| | 
| 
| 
| | llvm-svn: 79875 | 
| | 
| 
| 
| | llvm-svn: 79602 | 
| | 
| 
| 
| 
| 
| | negative checks resemble each other.
llvm-svn: 79595 | 
| | 
| 
| 
| | llvm-svn: 79594 | 
| | 
| 
| 
| | llvm-svn: 79593 | 
| | 
| 
| 
| | llvm-svn: 79592 | 
| | 
| 
| 
| 
| 
| | SmallString::c_str.
llvm-svn: 79456 | 
| | 
| 
| 
| 
| 
| | - Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
llvm-svn: 78885 | 
| | 
| 
| 
| | llvm-svn: 78825 | 
| | 
| 
| 
| 
| 
| 
| 
| | when !isSingleWord() but getActiveBits() is small,
we were using the pointer value instead of the low
word of the integer value.
llvm-svn: 78821 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640 | 
| | 
| 
| 
| | llvm-svn: 75451 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379 | 
| | 
| 
| 
| 
| 
| | in APIntTest.cpp.
llvm-svn: 74550 | 
| | 
| 
| 
| | llvm-svn: 74515 | 
| | 
| 
| 
| 
| 
| 
| | This will allow it to be used in unittests that use gtest's
EXPECT_EQ.
llvm-svn: 74494 | 
| | 
| 
| 
| | llvm-svn: 72235 | 
| | 
| 
| 
| | llvm-svn: 71738 | 
| | 
| 
| 
| 
| 
| | class.
llvm-svn: 70488 | 
| | 
| 
| 
| 
| 
| | patch by Jeff Yasskin!
llvm-svn: 70058 | 
| | 
| 
| 
| 
| 
| 
| | is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
llvm-svn: 68227 | 
| | 
| 
| 
| | llvm-svn: 67302 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | large for the testsuite) took over six minutes to compile on my Mac.
The patched LLVM-GCC compiles that testcase in three seconds (GCC
takes less than one second).  This hash function is more complex
(about 35 instructions on x86) than what Chris wanted, but I expect it
will be well-behaved with arbitrary inputs.
Thank you to everyone who responded to my previous request for advice.
llvm-svn: 66962 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | causing assertion failures in getSExtValue().
Fix it by making highWordBits actually contain what its name says,
and add some more unit-tests for APInt.
This fixes PR3419.
llvm-svn: 63107 | 
| | 
| 
| 
| 
| 
| | compatibility with cygwin.  Patch by Jay Foad!
llvm-svn: 62695 | 
| | 
| 
| 
| | llvm-svn: 62512 | 
| | 
| 
| 
| | llvm-svn: 57384 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | use raw_ostream instead of std::ostream.  Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).
Other interesting changes:
 1) This makes Value::print be non-virtual.
 2) AP[S]Int and ConstantRange can no longer print to ostream directly, 
    use raw_ostream instead.
 3) This fixes a bug in raw_os_ostream where it didn't flush itself 
    when destroyed.
 4) This adds a new SDNode::print method, instead of only allowing "dump".
A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream 
versions.
This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.
llvm-svn: 55263 | 
| | 
| 
| 
| 
| 
| 
| | and the slow-path cases out of line.  This speeds up instcombine
a bit in real world cases.  Patch contributed by m-s.
llvm-svn: 55063 | 
| | 
| 
| 
| | llvm-svn: 55053 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | returning an std::string by value, it fills in a SmallString/SmallVector
passed in.  This significantly reduces string thrashing in some cases.
More specifically, this:
 - Adds an operator<< and a print method for APInt that allows you to 
   directly send them to an ostream.
 - Reimplements APInt::toString to be much simpler and more efficient
   algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter.  This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873 | 
| | 
| 
| 
| | llvm-svn: 54869 | 
| | 
| 
| 
| 
| 
| | count.
llvm-svn: 53810 | 
| | 
| 
| 
| 
| 
| 
| 
| | multiplicative inverse of a given number. Modify udivrem to allow input and 
output pairs of arguments to overlap. Patch is based on the work by Chandler
Carruth.
llvm-svn: 52638 |