Reid Spencer
74cf82e522
Fix countLeadingZeros to actually return the correct number.
...
Fix toString to correctly return "0" for zero valued APInts over 128 bits.
llvm-svn: 34459
2007-02-21 00:29:48 +00:00
Reid Spencer
7a6a8d5116
Make long addition and subtraction work. Speed things up by using internal
...
functions more.
llvm-svn: 34458
2007-02-20 23:40:25 +00:00
Evan Cheng
71b8723f07
This cast broke lots of tests.
...
llvm-svn: 34457
2007-02-20 21:30:56 +00:00
Dan Gohman
8c8597c4d9
Fix typos in comments.
...
llvm-svn: 34456
2007-02-20 20:52:03 +00:00
Reid Spencer
4bb430c4b4
Clean up variable names in operator*.
...
Attempt #3 for getting a portable INFINITY value.
llvm-svn: 34454
2007-02-20 20:42:10 +00:00
Reid Spencer
a83af6e1fc
Use INFINITY macro from math.h instead of constructing hex floating point
...
constants (avoids warnings).
llvm-svn: 34452
2007-02-20 18:29:12 +00:00
Reid Spencer
fb77b2ba13
First version that can process arith.cpp test case up to 1024 bits:
...
1. Ensure pVal is set to 0 in each constructor.
2. Fix roundToDouble to make correct calculations and not read beyond the
end of allocated memory.
3. Implement Knuth's "classical algorithm" for division from scratch and
eliminate buffer overflows and uninitialized mememory reads. Document
it properly too.
4. Implement a wrapper function for KnuthDiv which handles the 64-bit to
32-bit conversion and back. It also implement short division for the
n == 1 case that Knuth's algorithm can't handle.
5. Simplify the logic of udiv and urem a little, make them exit early, and
have them use the "divide" wrapper function to perform the division
or remainder operation.
6. Move the toString function to the end of the file, closer to where
the division functions are located.
Note: division is still broken for some > 64 bit values, but at least it
doesn't crash any more.
llvm-svn: 34449
2007-02-20 08:51:03 +00:00
Reid Spencer
1bed091776
Add an internal convenience method for division that urem and udiv use.
...
llvm-svn: 34448
2007-02-20 08:43:42 +00:00
Chris Lattner
2db2c526a5
eliminate some dead friends.
...
llvm-svn: 34447
2007-02-20 07:18:01 +00:00
Chris Lattner
c6ee77d1b0
switch ConstantFP's from ValueMap to DenseMap, which is much faster to query
...
and is more memory efficient.
llvm-svn: 34446
2007-02-20 07:17:17 +00:00
Chris Lattner
a80bf0b2a6
cleanup ConstantInt to use a single DenseMap for uniquing instead of the
...
heavy-weight ValueMap class. This reduces mem usage bc reading kc++ by 29K,
even though it only creates 2955 constant ints!
llvm-svn: 34445
2007-02-20 06:39:57 +00:00
Chris Lattner
4510c99a57
Not all managedstatics need object pointers.
...
llvm-svn: 34444
2007-02-20 06:18:57 +00:00
Chris Lattner
281735098a
Make ConstantInt::getTrue/getFalse be llvm_shutdown safe.
...
llvm-svn: 34443
2007-02-20 06:11:36 +00:00
Chris Lattner
94524b335f
add a way to register an arbitrary cleanup function.
...
llvm-svn: 34442
2007-02-20 06:08:37 +00:00
Chris Lattner
5db2f47364
Clean up the internals of the ConstantInt machinery
...
llvm-svn: 34441
2007-02-20 05:55:46 +00:00
Chris Lattner
dbcb0d3ffe
simplify some code that was not llvm_shutdown safe
...
llvm-svn: 34440
2007-02-20 05:46:39 +00:00
Chris Lattner
c35fe713ff
remove reoptimizer-specific passes
...
llvm-svn: 34439
2007-02-20 05:31:49 +00:00
Chris Lattner
3f9accd62d
remove some dead passes and stuff specific to the reoptimizer.
...
llvm-svn: 34438
2007-02-20 05:31:35 +00:00
Chris Lattner
ffbe511d9e
remove some passes
...
llvm-svn: 34437
2007-02-20 05:31:04 +00:00
Chris Lattner
62b2842b6f
remove dead method
...
llvm-svn: 34436
2007-02-20 05:29:47 +00:00
Evan Cheng
61cd0914ed
Dead code.
...
llvm-svn: 34435
2007-02-20 01:29:10 +00:00
Evan Cheng
b68a774fd9
How the heck did I forget patterns for llvm.x86.sse2.cmp.sd?
...
llvm-svn: 34434
2007-02-20 00:39:09 +00:00
Reid Spencer
50c723ae72
Add a section on the target datalayout syntax and describe the defaults
...
and rules used by LLVM to construct the target's layout rules.
llvm-svn: 34433
2007-02-19 23:54:10 +00:00
Reid Spencer
b6d01caf22
Simplify some code by moving variable declarations into the only block that
...
uses them.
llvm-svn: 34432
2007-02-19 23:30:10 +00:00
Reid Spencer
421bad0dc5
Implement support for non-standard integer bit widths of any size. The
...
rules alignment is to pick the alignment that corresponds to the smallest
specified alignment that is larger than the bit width of the type or the
largest specified integer alignment if none are larger than the bitwidth
of the type. For the byte size, the size returned is the next larger
multiple of the alignment for that type (using the above rule). This patch
also changes bit widths from "short" to "uint32_t" to ensure there are
enough bits to specify any bit width that LLVM can handle (currently 2^23);
16-bits isn't enough.
llvm-svn: 34431
2007-02-19 22:35:00 +00:00
Evan Cheng
0c99b096c5
Added test case for PR1207.
...
llvm-svn: 34429
2007-02-19 21:53:59 +00:00
Evan Cheng
f7ed82da10
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
...
llvm-svn: 34428
2007-02-19 21:49:54 +00:00
Evan Cheng
d5cfe7d004
Fix test case.
...
llvm-svn: 34427
2007-02-19 21:47:02 +00:00
Chris Lattner
8982e3b063
this passes now
...
llvm-svn: 34426
2007-02-19 20:20:04 +00:00
Chris Lattner
b5d703018b
llvm-gcc issue fixed, revert reversal :)
...
llvm-svn: 34425
2007-02-19 20:01:23 +00:00
Chris Lattner
86358635e5
remove warning
...
llvm-svn: 34424
2007-02-19 19:46:17 +00:00
Evan Cheng
0a02f82767
Temporarily reverting the patch. It's breaking llvm-gcc build.
...
llvm-svn: 34423
2007-02-19 19:23:41 +00:00
Reid Spencer
887ae70af5
Add a FIXME for unwritten code.
...
llvm-svn: 34422
2007-02-19 19:00:29 +00:00
Bill Wendling
0ae16357ca
Corrected typo.
...
llvm-svn: 34421
2007-02-19 18:32:40 +00:00
Reid Spencer
68812c7024
Some minor tweaks and grammar cleanup.
...
llvm-svn: 34420
2007-02-19 17:38:38 +00:00
Chris Lattner
4669b0bf54
remove dead methods
...
llvm-svn: 34419
2007-02-19 07:44:24 +00:00
Chris Lattner
86e36db1bf
remove use of deprecated apis
...
llvm-svn: 34418
2007-02-19 07:41:31 +00:00
Chris Lattner
b5f6d0c15a
eliminate use of deprecated apis
...
llvm-svn: 34417
2007-02-19 07:34:47 +00:00
Chris Lattner
80b65db862
remove use of deprecated api
...
llvm-svn: 34416
2007-02-19 07:34:02 +00:00
Chris Lattner
544a633656
add alternate version of constant ctors that don't take a vector. For now
...
this offers no performance advantage.
llvm-svn: 34415
2007-02-19 07:23:24 +00:00
Chris Lattner
8d033d1163
fix validation
...
llvm-svn: 34414
2007-02-19 06:57:46 +00:00
Chris Lattner
78914c3d5e
more wording changes and some minor additions
...
llvm-svn: 34413
2007-02-19 06:57:16 +00:00
Chris Lattner
f54ba986b2
add the definite article
...
llvm-svn: 34412
2007-02-19 06:24:23 +00:00
Chris Lattner
83967801fd
rename section to Copyright, License, and Patents
...
llvm-svn: 34411
2007-02-19 06:19:16 +00:00
Chris Lattner
30ff8f8b20
wording changes
...
llvm-svn: 34410
2007-02-19 06:15:33 +00:00
Chris Lattner
a65670e2e5
add strong words about patents
...
llvm-svn: 34409
2007-02-19 06:13:50 +00:00
Chris Lattner
76fa27f757
incremental changes to own section, protosection on patents
...
llvm-svn: 34408
2007-02-19 06:05:58 +00:00
Chris Lattner
4d67b16416
fix TOC, clarify bullet in incremental dev
...
llvm-svn: 34407
2007-02-19 05:59:30 +00:00
Chris Lattner
a333819d63
refactor the top-level 'patches' section into a subsection of General Policies.
...
Much of its content is now in other parts of the doc, and this brings it up
immediately after 'stay informed' and right before 'code reviews'.
llvm-svn: 34406
2007-02-19 05:57:29 +00:00
Chris Lattner
10f1514b07
minor changes
...
llvm-svn: 34405
2007-02-19 05:49:11 +00:00