summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-06-22 03:09:10 +0000
committerChris Lattner <sabre@nondot.org>2003-06-22 03:09:10 +0000
commit680a7c2d1a60880c9ba4b123fb721a6c6fe8b016 (patch)
tree386c5ea5173a63cae1efde22adce884ab70b4576 /include
parent3889a2cb05c36f30050941679d5fd55d45e6a3ed (diff)
downloadllvm-680a7c2d1a60880c9ba4b123fb721a6c6fe8b016.tar.gz
llvm-680a7c2d1a60880c9ba4b123fb721a6c6fe8b016.tar.bz2
llvm-680a7c2d1a60880c9ba4b123fb721a6c6fe8b016.tar.xz
Get rid of WORDSIZE macro which can pollute untold numbers of translation units
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6843 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/Support/BitSetVector.h30
-rw-r--r--include/llvm/ADT/BitSetVector.h30
2 files changed, 24 insertions, 36 deletions
diff --git a/include/Support/BitSetVector.h b/include/Support/BitSetVector.h
index 2200df746f..898ea53f65 100644
--- a/include/Support/BitSetVector.h
+++ b/include/Support/BitSetVector.h
@@ -9,12 +9,6 @@
// We therefore use a vector of bitsets. The maxmimum size of our sets
// (i.e., the size of the universal set) can be chosen at creation time.
//
-// The size of each Bitset is defined by the macro WORDSIZE.
-//
-// NOTE: The WORDSIZE macro should be made machine-dependent, in order to use
-// 64-bit words or whatever gives most efficient Bitsets on each platform.
-//
-//
// External functions:
//
// bool Disjoint(const BitSetVector& set1, const BitSetVector& set2):
@@ -30,15 +24,13 @@
#include <vector>
#include <functional>
#include <iostream>
-
#include <assert.h>
-#define WORDSIZE (32U)
-
-
class BitSetVector {
+ enum { BITSET_WORDSIZE = sizeof(long)*8 };
+
// Types used internal to the representation
- typedef std::bitset<WORDSIZE> bitword;
+ typedef std::bitset<BITSET_WORDSIZE> bitword;
typedef bitword::reference reference;
class iterator;
@@ -48,11 +40,13 @@ class BitSetVector {
private:
// Utility functions for the representation
- static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;}
- static unsigned LastWordSize(unsigned Size) { return Size % WORDSIZE; }
+ static unsigned NumWords(unsigned Size) {
+ return (Size+BITSET_WORDSIZE-1)/BITSET_WORDSIZE;
+ }
+ static unsigned LastWordSize(unsigned Size) { return Size % BITSET_WORDSIZE; }
// Clear the unused bits in the last word.
- // The unused bits are the high (WORDSIZE - LastWordSize()) bits
+ // The unused bits are the high (BITSET_WORDSIZE - LastWordSize()) bits
void ClearUnusedBits() {
unsigned long usedBits = (1U << LastWordSize(size())) - 1;
bitsetVec.back() &= bitword(usedBits);
@@ -91,7 +85,7 @@ public:
}
reference operator[](unsigned n) {
assert(n < size() && "BitSetVector: Bit number out of range");
- unsigned ndiv = n / WORDSIZE, nmod = n % WORDSIZE;
+ unsigned ndiv = n / BITSET_WORDSIZE, nmod = n % BITSET_WORDSIZE;
return bitsetVec[ndiv][nmod];
}
iterator begin() { return iterator::begin(*this); }
@@ -116,7 +110,7 @@ public:
///
bool test(unsigned n) const {
assert(n < size() && "BitSetVector: Bit number out of range");
- unsigned ndiv = n / WORDSIZE, nmod = n % WORDSIZE;
+ unsigned ndiv = n / BITSET_WORDSIZE, nmod = n % BITSET_WORDSIZE;
return bitsetVec[ndiv].test(nmod);
}
bool any() const {
@@ -203,13 +197,13 @@ public:
// Increment and decrement operators (pre and post)
iterator& operator++() {
- if (++currentBit == WORDSIZE)
+ if (++currentBit == BITSET_WORDSIZE)
{ currentBit = 0; if (currentWord < bitvec->size()) ++currentWord; }
return *this;
}
iterator& operator--() {
if (currentBit == 0) {
- currentBit = WORDSIZE-1;
+ currentBit = BITSET_WORDSIZE-1;
currentWord = (currentWord == 0)? bitvec->size() : --currentWord;
}
else
diff --git a/include/llvm/ADT/BitSetVector.h b/include/llvm/ADT/BitSetVector.h
index 2200df746f..898ea53f65 100644
--- a/include/llvm/ADT/BitSetVector.h
+++ b/include/llvm/ADT/BitSetVector.h
@@ -9,12 +9,6 @@
// We therefore use a vector of bitsets. The maxmimum size of our sets
// (i.e., the size of the universal set) can be chosen at creation time.
//
-// The size of each Bitset is defined by the macro WORDSIZE.
-//
-// NOTE: The WORDSIZE macro should be made machine-dependent, in order to use
-// 64-bit words or whatever gives most efficient Bitsets on each platform.
-//
-//
// External functions:
//
// bool Disjoint(const BitSetVector& set1, const BitSetVector& set2):
@@ -30,15 +24,13 @@
#include <vector>
#include <functional>
#include <iostream>
-
#include <assert.h>
-#define WORDSIZE (32U)
-
-
class BitSetVector {
+ enum { BITSET_WORDSIZE = sizeof(long)*8 };
+
// Types used internal to the representation
- typedef std::bitset<WORDSIZE> bitword;
+ typedef std::bitset<BITSET_WORDSIZE> bitword;
typedef bitword::reference reference;
class iterator;
@@ -48,11 +40,13 @@ class BitSetVector {
private:
// Utility functions for the representation
- static unsigned NumWords(unsigned Size) { return (Size+WORDSIZE-1)/WORDSIZE;}
- static unsigned LastWordSize(unsigned Size) { return Size % WORDSIZE; }
+ static unsigned NumWords(unsigned Size) {
+ return (Size+BITSET_WORDSIZE-1)/BITSET_WORDSIZE;
+ }
+ static unsigned LastWordSize(unsigned Size) { return Size % BITSET_WORDSIZE; }
// Clear the unused bits in the last word.
- // The unused bits are the high (WORDSIZE - LastWordSize()) bits
+ // The unused bits are the high (BITSET_WORDSIZE - LastWordSize()) bits
void ClearUnusedBits() {
unsigned long usedBits = (1U << LastWordSize(size())) - 1;
bitsetVec.back() &= bitword(usedBits);
@@ -91,7 +85,7 @@ public:
}
reference operator[](unsigned n) {
assert(n < size() && "BitSetVector: Bit number out of range");
- unsigned ndiv = n / WORDSIZE, nmod = n % WORDSIZE;
+ unsigned ndiv = n / BITSET_WORDSIZE, nmod = n % BITSET_WORDSIZE;
return bitsetVec[ndiv][nmod];
}
iterator begin() { return iterator::begin(*this); }
@@ -116,7 +110,7 @@ public:
///
bool test(unsigned n) const {
assert(n < size() && "BitSetVector: Bit number out of range");
- unsigned ndiv = n / WORDSIZE, nmod = n % WORDSIZE;
+ unsigned ndiv = n / BITSET_WORDSIZE, nmod = n % BITSET_WORDSIZE;
return bitsetVec[ndiv].test(nmod);
}
bool any() const {
@@ -203,13 +197,13 @@ public:
// Increment and decrement operators (pre and post)
iterator& operator++() {
- if (++currentBit == WORDSIZE)
+ if (++currentBit == BITSET_WORDSIZE)
{ currentBit = 0; if (currentWord < bitvec->size()) ++currentWord; }
return *this;
}
iterator& operator--() {
if (currentBit == 0) {
- currentBit = WORDSIZE-1;
+ currentBit = BITSET_WORDSIZE-1;
currentWord = (currentWord == 0)? bitvec->size() : --currentWord;
}
else