Commit Graph

4939 Commits

Author SHA1 Message Date
Evan Cheng
bb6fb3357d RegScavenger interface change to make it more flexible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34690 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 21:09:48 +00:00
Evan Cheng
171eed5334 Let MRegisterInfo owns RegScavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34689 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 21:08:07 +00:00
Evan Cheng
659ba970e3 Pass IsImp, IsKill, and IsDead to ChangeToRegister.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34688 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 21:06:57 +00:00
Reid Spencer
66ed1099ff Improve APInt interface:
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34680 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 20:24:31 +00:00
Reid Spencer
409f092766 Allow the RoundDoubleToAPInt function to specify a width to use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34672 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 18:22:31 +00:00
Devang Patel
84da80d10b Make getPassManagerType() const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34669 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 15:00:39 +00:00
Chris Lattner
13513b7a50 Minor refactoring of CC Lowering interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34656 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 05:13:54 +00:00
Chris Lattner
362e98a5f5 move CC Lowering stuff to its own public interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34655 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 04:43:02 +00:00
Evan Cheng
ed570dedad forward() should not increment internal iterator. Its client may insert instruction between now and next forward() call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34649 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 01:58:48 +00:00
Reid Spencer
532d0ce208 For PR1205:
Implement the first step towards arbitrary precision integer support in
LLVM. The APInt class provides arbitrary precision arithmetic and value
representation. This patch changes ConstantInt to use APInt as its value
representation without supporting bit widths > 64 yet. That change will
come after ConstantFolding handles bit widths > 64 bits.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34647 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 23:54:03 +00:00
Evan Cheng
edeffb37dc Joining an interval with a dead copy instruction. Shorten the live range to the last use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34645 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 21:37:37 +00:00
Reid Spencer
946bca5bae Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 21:06:05 +00:00
Reid Spencer
31a81f0190 1. Split getValue() into getSExtValue() and getZExtValue() to match
ConstantInt better.
2. Add a getHashValue() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 20:57:12 +00:00
Reid Spencer
f99705e898 Implement inline methods that make transition of ConstantInt to use APInt
easier to comprehend and might be useful elsewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34635 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 17:50:32 +00:00
Reid Spencer
ebf4ebd691 Make isNegative() a const function since it doesn't modify the APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 07:45:40 +00:00
Reid Spencer
dcffd5c3d9 Add an isNegative method to determine if the APInt's value is negative.
This is much less expensive than a test against zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 01:20:59 +00:00
Chris Lattner
1cf5574636 Rework GlobalValue::removeDeadConstantUsers to always remove dead constant
exprs hanging off a global, even if the global is not otherwise dead.  This
requires some tricky iterator gymnastics.

This implements Transforms/GlobalOpt/constantexpr-dangle.ll by deleting a
constantexpr that made it appear that the address of the function was taken.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 21:06:13 +00:00
Reid Spencer
c68c2243dc Fix clearUnusedBits to not depend on "undefined behavior" of >> operator
when the bit size is equal to the word size. This happens to work out okay
on x86, but might not on other platforms. The change just detects when
there are no bits to clear (because BitWidth is a multiple of the word size)
and returns early.

Also, move some comments from .cpp file into header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 19:26:01 +00:00
Reid Spencer
20b1f5db1e Add a private constructor for efficiency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 07:29:03 +00:00
Reid Spencer
d03d012ad9 Improve documentation.
Make divide function internal (it was briefly external for testing).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34557 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24 09:50:13 +00:00
Chris Lattner
910c80a075 Refactor the setName stuff, moving it down the inheritance hierarchy, to
solve a crash in -instcombine -debug that was hit while investigating PR1217


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34544 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24 00:55:48 +00:00
Devang Patel
4b2646326b Loop passes are set up to accept pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34527 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 17:53:17 +00:00
Evan Cheng
5b7d5964c2 Temporay hook to enable register scavening for specific targets only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34513 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 01:07:04 +00:00
Evan Cheng
76d7e76c15 Use findRegisterUseOperand to find a kill of particular register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34512 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 01:04:26 +00:00
Evan Cheng
96fa612373 Initial check in of register scavenger. Its only current functionality is tracking live registers per MBB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34511 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 01:01:19 +00:00
Devang Patel
bfd5905584 Teach LoopPass to assign itself one Loop Pass Manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 00:36:57 +00:00
Devang Patel
8ded5852fe Add facility that allows LoopPass to re-insert a loop into
Loop Pass Manager's queue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34509 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 00:16:44 +00:00
Devang Patel
5afdc7d785 Add LPPassManager interface that LoopPass can use to skip
rest of the passes in the queue for a loop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34508 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-23 00:10:16 +00:00
Evan Cheng
7d35c0e2b9 Copy and paste silliness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34507 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 23:52:23 +00:00
Devang Patel
d0e6e33043 Add LoopQueue. This is used by loop pass manager to manage loop nest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34504 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 23:30:07 +00:00
Evan Cheng
30cac02a92 Remove unnecessary isKill properties if a live range has been lengthened due to coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34503 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 23:03:39 +00:00
Jim Laskey
f033833109 Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 16:40:10 +00:00
Jim Laskey
033c9715d9 Remove isAccessable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34497 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 16:39:03 +00:00
Jim Laskey
2bc210d99f Simplify lowering and selection of exception ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34491 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 15:37:19 +00:00
Jim Laskey
2ad9f17fee Simplify lowering and selection of exception ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34488 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 14:56:36 +00:00
Devang Patel
16a31c4ebf Add Loop Pass Manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34487 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 08:56:17 +00:00
Jim Laskey
62819f3144 Support to provide exception and selector registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34482 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:54:50 +00:00
Jim Laskey
bda9b0ec7b Add support for changes in DwarfWriter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34478 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:47:38 +00:00
Jim Laskey
a15be8ce3a Add TAI field for exception table section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34477 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:43:40 +00:00
Jim Laskey
9b25b8ca24 Allow for live in registers for eh landing pads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34475 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:41:17 +00:00
Jim Laskey
30b8e51add Add a flag to MBBs to indicate whether it is an eh landing pad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:39:52 +00:00
Jim Laskey
59667fe203 Add structures used for collecting eh information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34473 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:38:31 +00:00
Jim Laskey
f09f2e304d Add new instructions for handling data passed into eh landing pad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:37:22 +00:00
Jim Laskey
9cf8927a7b Add new intrinsics for eh support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34471 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:35:57 +00:00
Devang Patel
07d49acbf9 Simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34469 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 19:57:33 +00:00
Reid Spencer
f31c784f27 Add a dump() method for debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34464 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 03:56:12 +00:00
Devang Patel
ffee0d4dfe Fix memory leak (PR 775).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34462 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 02:36:31 +00:00
Reid Spencer
e91f7847e6 Add an internal convenience method for division that urem and udiv use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34448 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 08:43:42 +00:00
Chris Lattner
f543f748c3 eliminate some dead friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34447 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 07:18:01 +00:00
Chris Lattner
6b6f6ba66c 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!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34445 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 06:39:57 +00:00
Chris Lattner
d1afbd02ef Make ConstantInt::getTrue/getFalse be llvm_shutdown safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34443 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 06:11:36 +00:00
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