Chris Lattner
b4d7e35dde
add a way to register an arbitrary cleanup function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34442 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 06:08:37 +00:00
Chris Lattner
eb41bddfdf
Clean up the internals of the ConstantInt machinery
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34441 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:55:46 +00:00
Chris Lattner
0963ad5271
remove some dead passes and stuff specific to the reoptimizer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34438 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:31:35 +00:00
Chris Lattner
a9a23d8faf
remove some passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34437 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 05:31:04 +00:00
Reid Spencer
f734ea21a3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34431 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 22:35:00 +00:00
Evan Cheng
b371f457b0
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 21:49:54 +00:00
Chris Lattner
f9021ff740
llvm-gcc issue fixed, revert reversal :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 20:01:23 +00:00
Evan Cheng
e02e5e465b
Temporarily reverting the patch. It's breaking llvm-gcc build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 19:23:41 +00:00
Chris Lattner
32980699c0
remove dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34419 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 07:44:24 +00:00
Chris Lattner
df7490a273
add alternate version of constant ctors that don't take a vector. For now
...
this offers no performance advantage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 07:23:24 +00:00
Reid Spencer
a284cbf667
For PR1207:
...
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 03:20:00 +00:00
Reid Spencer
d81b065950
Add some new constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 03:18:22 +00:00
Reid Spencer
a932e3f799
1. "unsigned" -> "uint32_t" to gaurantee its bit width on all platforms.
...
Size matters in this case.
2. Remove the unused whichByte private function, which was also broken.
3. Remove the non-const overload of the getWord function, getWord() is
never used as an lvalue.
4. Rename some local variables for clarity (e.g. API -> Result).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34390 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-18 18:42:35 +00:00
Reid Spencer
443b570149
Implement signed output for toString.
...
Fix bugs in countLeadingZeros and countTrailingZeros.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34386 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-18 00:44:22 +00:00
Chris Lattner
63925c831a
temporarily revert Devang's most recent patch, which caused a large
...
compile-time regression in LLC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34385 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 23:14:24 +00:00
Evan Cheng
aa7976199c
- Changes how function livein's are handled, they now have a start index of 0.
...
- When coalescing a copy MI, if its destination is "dead", propagate the
property to the source MI's destination if there are no intervening uses.
- Detect dead function live-in's and remove them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:15:40 +00:00
Evan Cheng
094e3e553f
Added findRegisterDefOperand().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34380 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:10:18 +00:00
Evan Cheng
9e66eb6046
Added removeLiveIn and more livein iterators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34378 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:07:41 +00:00
Evan Cheng
64ff3c349b
Allow LiveVariables to track liveness of more registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34377 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:07:08 +00:00
Evan Cheng
efdcb839f2
- Added regsOverlap() to test if two registers overlap. Or in case they are
...
virtual registers, test if they the same.
- Added a virtual method to return target specific reserved registers, e.g. SP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:04:35 +00:00
Devang Patel
62b20023eb
Use inverted map to speedup collectLastUses().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 03:53:44 +00:00
Chris Lattner
affeb56480
Do not dereference invalid ranges. Generalize targetdata alignment model.
...
This fixes the UnitTests/Vector/sumarray-dbl regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34358 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 00:41:42 +00:00
Reid Spencer
cd6f2bfc26
Fix bugs introduced by constructor parameter order change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 00:18:01 +00:00
Reid Spencer
e81d2dad2c
Review changes:
...
1. Function style changes.
2. 80-col violations.
3. Better names for things.
4. Arrange constructors so they all take bit width first.
5. Add named signed and unsigned comparison functions and remove the
corresponding operators.
6. Remove operator&& and operator|| but provide a getBoolValue function which
converts to bool as comparison against 0. This allows the normal && and
|| operators to be used as if (X.getBoolValue() && Y.getBoolValue())
Note: this still doesn't function 100% yet. I'm working on the bugs now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-16 22:36:51 +00:00
Anton Korobeynikov
9ba8a76f8b
Add possibility to set memory limit for binaries run via libSystem. This
...
is especially needed for bugpoint. This partly implements PR688
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-16 19:11:07 +00:00
Chris Lattner
bb5493d9fa
make mayWriteToMemory a non-virtual function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34334 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 23:15:00 +00:00
Reid Spencer
1f43787bf0
For PR1195:
...
PACKED_ALIGN -> VECTOR_ALIGN
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34330 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 22:07:05 +00:00
Evan Cheng
b5aabee330
Proper fix for the off-by-one bug in clear_unused_bits().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 21:38:15 +00:00
Reid Spencer
f1f007d2ff
Fix an off-by-one bug in computing the index of the word to clear.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 20:49:10 +00:00
Reid Spencer
9d1597b086
Make sure Capacity gets initialized too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34325 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 20:14:06 +00:00
Evan Cheng
852b4baf47
Missing a ;
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34322 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:29:05 +00:00
Evan Cheng
e01ad2d129
BitVector::reference operator=(const reference& rhs) is unnecessary thanks to autoconvert to bool.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34320 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:21:44 +00:00
Evan Cheng
1f46998b3f
Remove unnecessary checks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34319 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:18:12 +00:00
Evan Cheng
638417f788
operator== returns false when two bitvectors have different sizes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34317 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:16:21 +00:00
Evan Cheng
c761df18ae
Merges two resize() variants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:12:39 +00:00
Evan Cheng
ccae61c5da
Clear no longer deleting the bits to avoid mallocs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34315 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:10:34 +00:00
Evan Cheng
7bf26c1d68
BitVector::count() bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34314 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:09:36 +00:00
Evan Cheng
334df9d83f
Eliminate a redundent ctor; eliminate one more potential new [0].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34313 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:05:25 +00:00
Evan Cheng
057f8e0845
1 -> 1L since BitWord has type unsigned long.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:03:23 +00:00
Evan Cheng
5f92ce4696
Eliminate new[0], just set Bits to NULL.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:59:15 +00:00
Chris Lattner
924b1ca9ee
Add a new Value::getNameStr method, which is preferred over getName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34310 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:53:54 +00:00
Evan Cheng
c48aafe6c6
Inverted the condition by accident.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:48:41 +00:00
Evan Cheng
506e899490
Bug fixes: assignment operator forgot to copy over size; copy ctor forgot to clear unused top bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34305 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 08:15:58 +00:00
Zhou Sheng
b04973edfa
Fix some buges:
...
1. Make getMinValue() returns the right value.
2. Fix the ByteSwap() crash problem.
3. Make Postfix increment work correctly.
4. Fix some bugs in LogBase2, Hi/LoBits and UDiv.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34304 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 06:36:31 +00:00
Evan Cheng
61de82d885
Use BitVector instead of vector<bool> which can be extremely slow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 05:59:24 +00:00
Evan Cheng
ad1d5c3bc5
Add a BitVector class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34301 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 05:56:11 +00:00
Reid Spencer
ac9dcb94dd
For PR1195:
...
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 03:39:18 +00:00
Evan Cheng
3cd4c892d9
isPhysRegUsed should be const.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34295 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:55:51 +00:00
Evan Cheng
d1172cc056
Should pass isKill and isDead to addRegOperand() as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34294 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:52:40 +00:00
Reid Spencer
9d6565a5b1
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:26:10 +00:00
Reid Spencer
b7d61101b1
Fixed packed structure breakage from earlier TargetData patch; applied
...
Chris Lattner's code style suggestions.
Patch by Scott Michel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34292 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:11:06 +00:00
Chris Lattner
d2b7cec527
Generalize TargetData strings, to support more interesting forms of data.
...
Patch by Scott Michel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34266 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-14 05:52:17 +00:00
Reid Spencer
db3faa64ee
Make some minor improvements to APInt:
...
1. Make all the operators use uppercase
2. Rename APIntRoundToDouble method just RoundToDouble, the APInt is
redundant.
3. Turn the class on for compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34253 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 22:41:58 +00:00
Lauro Ramos Venancio
13a3cee131
Add comment about original function argument alignment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34243 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 17:57:38 +00:00
Reid Spencer
9964d75d83
Fix a compilation error that caused the nightly test to fail.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34239 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 09:26:04 +00:00
Chris Lattner
f00042a999
Switch UnaryOperators to default to passing names up by const char* when possible.
...
This speeds up bcreading by 1.5%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34233 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:54:42 +00:00
Chris Lattner
ec79b3da13
add a setName variant that takes a null-terminated string. This can be
...
used to avoid std::string allocations in common cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34232 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:53:34 +00:00
Chris Lattner
8c06509f95
fix a critical bug in smallvector, where it would destroy elements that are
...
not in its range (!).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34230 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:25:36 +00:00
Chris Lattner
133bab0606
eliminate instruction ctors that take vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34228 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 06:22:32 +00:00
Chris Lattner
d2dd1508aa
Add invokeinst and callinst ctors that don't take vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34214 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 01:04:01 +00:00
Chris Lattner
d54f432006
remove some dead methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34213 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 00:58:44 +00:00
Andrew Lenharth
f7e804b683
I love non-deturminism. Returning objects with references to stack objects is a bad idea (TM).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34210 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 00:37:50 +00:00
Zhou Sheng
d93f00c35d
1. Make APInt::shl work correctly and more efficiently.
...
2. Add functions to support the numberical conversion between APInt and
double/float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34201 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 20:02:55 +00:00
Jim Laskey
21ba3d7c2b
Wrong value type.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34199 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 19:05:51 +00:00
Chris Lattner
dd8cec59fc
avoid creating a temporary string when reading the symbol table for a
...
module. This speeds up the bcreader 11%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34198 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 18:53:43 +00:00
Chris Lattner
042ad36871
Add new setName accessor which doesn't require creating a string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34197 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 18:52:59 +00:00
Chris Lattner
dec628eead
Switch ValueSymbolTable to use StringMap<Value*> instead of std::map<std::string, Value*>
...
as its main datastructure. There are many improvements yet to be made, but
this speeds up opt --std-compile-opts on 447.dealII by 7.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34193 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 05:18:08 +00:00
Chris Lattner
36f78c8935
add #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34190 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 05:00:35 +00:00
Chris Lattner
a96b4ee7ff
add new ShouldRehash method to factor out common code. Fix the dtor to not
...
delete tombstones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34189 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 21:46:36 +00:00
Chris Lattner
65033ffc29
do not allow hash table to be filled with tombstones.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34186 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 21:07:36 +00:00
Chris Lattner
44dcd01cb3
Add support for removing elements out of StringMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34185 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 20:58:00 +00:00
Chris Lattner
b5bb9f5b5c
Replace the ugly FindValue method with STL-like find methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34183 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 19:49:41 +00:00
Chris Lattner
360cac8fef
remove support for stringmap visitors now that iterators exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34180 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 08:22:15 +00:00
Chris Lattner
6ccadf6f7f
add iterator support, plus support for size() and empty().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34178 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 08:12:13 +00:00
Nick Lewycky
3e051647c0
Fix comments to match names of functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34173 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 00:58:49 +00:00
Chris Lattner
7216811ea2
add a helper method: Value::takeName
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34171 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 00:37:27 +00:00
Chris Lattner
9cc2d3dce8
Split StringMapEntry construction out of StringMap, into StringMapEntry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34170 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 00:10:26 +00:00
Chris Lattner
4e9f579028
remove dead method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34164 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 20:37:40 +00:00
Chris Lattner
9182e3f205
eliminate the std::vector from StructLayout, allocating the elements immediately
...
after the StructLayout object in memory. This marginally improves locality,
speeding up -load-vn -gcse by ~0.8%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34158 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 20:15:41 +00:00
Chris Lattner
b0c39a3b4d
encapsulate the rest of the StructLayout members.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34157 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 19:59:22 +00:00
Chris Lattner
b1919e2f08
Privatize StructLayout::MemberOffsets, adding an accessor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34156 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 19:55:17 +00:00
Chris Lattner
68ce9ba666
add helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34155 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 19:54:24 +00:00
Chris Lattner
ddce8d21ea
Change TargetData::getIndexedOffset interface to not require indices
...
in a vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34153 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 19:33:15 +00:00
Reid Spencer
91c4af242a
Compaction tables don't exist any more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34148 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 14:07:56 +00:00
Chris Lattner
569b935e6b
Make find return the appropriate iterator/const_iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34137 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 06:58:17 +00:00
Chris Lattner
a76b1febd4
Allow DenseMAp to take an explicit DenseMapKeyInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34134 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 06:34:58 +00:00
Evan Cheng
13d8285678
Add live-ins to MachineBasicBlock.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34111 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 02:38:19 +00:00
Zhou Sheng
ff4304f824
Eliminates friend function declaration inside APInt, instead, adds public
...
methods as those global function's internal implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34083 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-09 07:48:24 +00:00
Evan Cheng
fa1eb27b76
Move SimplifySetCC to TargetLowering and allow it to be shared with legalizer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34065 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 22:13:59 +00:00
Chris Lattner
bb28a81ba3
Rename CStringMap -> StringMap, since it now supports nul characters in the
...
strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 19:20:57 +00:00
Chris Lattner
ee182422ff
Allow cstringmap to contain strings with nul characters in them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 19:08:37 +00:00
Zhou Sheng
0b706b18bd
As Chris and Reid suggested, remove "isSigned" field from APInt, instead,
...
add some signed/unsigned arithmetic operation functions into APInt.h to
handle the signed/unsigned issue. These functions will be defined inside a
namespace "APIntOps" which is inside llvm namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 14:35:19 +00:00
Bill Wendling
2f5bcb5f38
Fixed comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 06:05:08 +00:00
Bill Wendling
d25f933c0d
Added new method to finish up the addition of passes to emit files. This
...
allows us to split that method into two so that we can optionally call a
concrete function to add a writer. Removed moribund addObjectWriter()
method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34030 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:34:45 +00:00
Bill Wendling
529f0690d5
Declarations for functions that create different file writers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34028 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:31:38 +00:00
Bill Wendling
4b2ca1a3c4
Moved from include/llvm/CodeGen to lib/CodeGen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:30:50 +00:00
Chris Lattner
f36c7b860d
move archive-specific stuff out of bcreader into archive library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34022 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 23:53:17 +00:00
Chris Lattner
7cf7c2b703
move an llvmc-specific function out of the bcreader into llvmc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34021 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 23:48:32 +00:00
Chris Lattner
f2e292ce58
push bytecode decompressor out through APIs. Now the bytecode reader
...
api's look like this:
ModuleProvider *getBytecodeModuleProvider(
const std::string &Filename, ///< Name of file to be read
BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer,
std::string* ErrMsg = 0, ///< Optional error message holder
BytecodeHandler* H = 0 ///< Optional handler for reader events
);
This is ugly, but allows a client to say:
getBytecodeModuleProvider("foo", 0);
If they do this, there is no dependency on the compression libraries, saving
codesize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34012 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 21:41:02 +00:00
Jim Laskey
95af592a63
Automatically generating intrinsic declarations from Dan Gohman. Modified
...
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34008 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 20:38:26 +00:00
Lauro Ramos Venancio
58a0d64fae
Fix build error.
...
include/llvm/ADT/APInt.h:326: error: âassertâ was not declared in this scope
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34002 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 16:59:17 +00:00
Chris Lattner
e14639ac3d
remove dead ivars.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33996 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 07:33:02 +00:00
Chris Lattner
7b6040b417
remove the handleVBR32/handleVBR64 callbacks. They are very fine-grained.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33994 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:53:02 +00:00
Chris Lattner
7f1444bc0a
shrink vmcore by moving symbol table stripping support out of VMCore into
...
the one IPO pass that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33990 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:22:45 +00:00
Chris Lattner
56920a0ecc
eliminate ValueSymbolTable::rename, it has no advantage over using remove+insert.
...
Make insert/remove assert if used incorrectly instead of returning a bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33988 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:13:49 +00:00
Chris Lattner
1e348549d9
Make SymbolTable::insert, SymbolTable::remove and SymbolTable::rename private.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33987 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 06:06:24 +00:00
Zhou Sheng
f29a09d627
As Chris suggested, fixed some problems. (This is the first part.)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33986 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:58:38 +00:00
Chris Lattner
58f84d4b2d
Eliminate the O(n) version of TypeSymbolTable::remove, it is dead. When
...
inserting a type into the type symbol table, only compute unique name if not
in symtab already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:35:58 +00:00
Chris Lattner
67408dab1b
TypeSymbolTable::rename is dead, remove it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33982 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:29:34 +00:00
Chris Lattner
1b1c95c9bf
eliminate std::vector's from the bchandler interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33979 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:09:50 +00:00
Chris Lattner
e237cf934f
do not let the table fill up with tombstones.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33973 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 01:11:25 +00:00
Chris Lattner
04a3115e61
Fix a really subtle bug where the entire hash table could fill with
...
tombstones, causing subsequent insertions to infinitely loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33972 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 00:55:59 +00:00
Jim Laskey
81a21eae3e
Deemed too cute to live.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33964 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:19:44 +00:00
Jim Laskey
ba4cc09f51
Support var arg intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33962 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 18:02:54 +00:00
Lauro Ramos Venancio
53a58106d4
Fix build error.
...
UniqueVector.h:66: error: âassertâ was not declared in this scope
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33961 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 14:59:28 +00:00
Zhou Sheng
7406dcdc29
As Reid suggested, fixed some problems.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33954 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 05:59:47 +00:00
Chris Lattner
c04a1ce623
Simplify this a bit, add an assertion
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:24:48 +00:00
Chris Lattner
ae6eb5bfbe
StableBasicBlockNumbering is conceptually just a wrapper around UniqueVector,
...
so we should actually use a UniqueVector to implement it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33935 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:19:24 +00:00
Chris Lattner
7b13624b32
Const method must use const_iterator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:18:32 +00:00
Reid Spencer
60ea274c70
For PR411:
...
Clean up the Module::getFunction interface. getMainFunction and
getNamedFunction are now gone. Just use getFunction instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33920 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 21:17:06 +00:00
Reid Spencer
ef9b9a7939
For PR411:
...
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 20:47:22 +00:00
Zhou Sheng
d0f285e212
Add a class APInt to represent arbitrary precision constant integral values.
...
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33913 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 17:29:16 +00:00
Bill Wendling
05c0b9ad79
Use unsigned char& instead of std::vector<>::reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33896 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 02:37:07 +00:00
Chris Lattner
831e0374a7
switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This
...
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33879 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:47:20 +00:00
Chris Lattner
3f97eb449b
Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
...
their operands with the node itself. This reduces malloc traffic for operand
lists. This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33878 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:35:21 +00:00
Chris Lattner
bc2e26241d
Add a new SDNode ctor and InitOperands method. This allows the operands for
...
an SDNode to be allocated as part of the node itself, instead of being a
separate new[]'d object. Switch HandleSDNode, LoadSDNode, and StoreSDNode
to use this mechanism. This saves one heap allocation and free for each node
of this type that is allocated. This reduces isel time from 2.7638 to 2.6164s
on kc++, which is a 5.6% speedup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:13:53 +00:00
Chris Lattner
ab4ed59538
eliminate the SDNode::setValueTypes method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33876 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:37:24 +00:00
Chris Lattner
63e3f14df6
eliminate a bunch of duplicate ctors and helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:28:00 +00:00
Chris Lattner
d429bcd4ac
move MorphNode to out of line and merge setNodeOperands into it. There is
...
no behavior or performance change here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33869 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:49:29 +00:00
Chris Lattner
48b8592652
simplify MorphNodeTo to take a VTList operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33868 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:41:42 +00:00
Chris Lattner
67612a1188
eliminate some extraneous methods in SDNode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:32:44 +00:00
Chris Lattner
c76e3c8602
Give each selectiondag node class a home for it's vtable and rtti info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33866 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:23:32 +00:00
Chris Lattner
28f72279f5
add a version of insert that takes the key and value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:42:41 +00:00
Reid Spencer
6734b57d1b
For PR1163:
...
Make the Module's dependent library use a std::vector instead of SetVector
adjust #includes in .cpp files because SetVector.h is no longer included.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33855 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:40:42 +00:00
Chris Lattner
5fcaf3ed14
Make SmallSetVector useful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33854 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:30:40 +00:00
Chris Lattner
7235928b45
Various bugfixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33848 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:12:12 +00:00
Chris Lattner
337cde0d5a
Convert SetVector to be a true adapter class and add SmallSetVector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33846 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 23:56:03 +00:00
Reid Spencer
7ba98a9000
For PR1072:
...
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33844 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 23:15:56 +00:00
Chris Lattner
5a5f6b6e38
8 buckets is way too small to start out with. This was only for testing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33835 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 19:30:48 +00:00
Chris Lattner
32dc7fd0aa
remove a dead header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33820 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 03:02:10 +00:00
Bill Wendling
3da9981e16
Added GetTargetRelocation method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33815 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:38:57 +00:00
Bill Wendling
18e84b55a4
Added some accessor methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33814 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:38:15 +00:00
Bill Wendling
0f43b22320
Moved MachORelocation to its own header file. Have a call through the
...
TargetMachOInfo object to the GetTargetRelocation method. Pass into it
non-Mach-O-specific parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:37:51 +00:00
Bill Wendling
db6b60c78e
New file for the MachORelocation structure. It doesn't have to be tied to the
...
MachOWriter.h file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33812 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:36:17 +00:00
Chris Lattner
2ba528b3a7
switch the sched unit map over to use a DenseMap instead of std::map. This
...
speeds up isel as a whole time by 2.6%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 01:34:13 +00:00
Chris Lattner
5e665f5594
Switch inliner over to use DenseMap instead of std::map for ValueMap. This
...
speeds up the inliner 16%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 00:08:31 +00:00
Chris Lattner
137d4b2533
silence annoying warning in release-asserts build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33797 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 21:19:18 +00:00
Chris Lattner
70a76a633e
add find/erase, add const iterators, fix bugs in iterators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33791 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 20:34:32 +00:00
Chris Lattner
f6390f48e6
add iterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33790 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 19:27:13 +00:00
Reid Spencer
832254e1c2
Changes to support making the shift instructions be true BinaryOperators.
...
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 02:16:23 +00:00