mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
code. Patch contributed by Vladimir Prus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14280 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
+11
-12
@@ -37,9 +37,18 @@ struct ConvertConstantType;
|
||||
///
|
||||
class ConstantIntegral : public Constant {
|
||||
protected:
|
||||
ConstantIntegral(const Type *Ty) : Constant(Ty) {}
|
||||
union {
|
||||
int64_t Signed;
|
||||
uint64_t Unsigned;
|
||||
} Val;
|
||||
ConstantIntegral(const Type *Ty, uint64_t V);
|
||||
public:
|
||||
|
||||
/// getRawValue - return the underlying value of this constant as a 64-bit
|
||||
/// unsigned integer value.
|
||||
///
|
||||
inline uint64_t getRawValue() const { return Val.Unsigned; }
|
||||
|
||||
/// isNullValue - Return true if this is the value that would be returned by
|
||||
/// getNullValue.
|
||||
///
|
||||
@@ -79,7 +88,6 @@ public:
|
||||
/// ConstantBool - Boolean Values
|
||||
///
|
||||
class ConstantBool : public ConstantIntegral {
|
||||
bool Val;
|
||||
ConstantBool(bool V);
|
||||
public:
|
||||
static ConstantBool *True, *False; // The True & False values
|
||||
@@ -93,7 +101,7 @@ public:
|
||||
|
||||
/// getValue - return the boolean value of this constant.
|
||||
///
|
||||
inline bool getValue() const { return Val; }
|
||||
inline bool getValue() const { return static_cast<bool>(getRawValue()); }
|
||||
|
||||
/// isNullValue - Return true if this is the value that would be returned by
|
||||
/// getNullValue.
|
||||
@@ -120,10 +128,6 @@ public:
|
||||
///
|
||||
class ConstantInt : public ConstantIntegral {
|
||||
protected:
|
||||
union {
|
||||
int64_t Signed;
|
||||
uint64_t Unsigned;
|
||||
} Val;
|
||||
ConstantInt(const ConstantInt &); // DO NOT IMPLEMENT
|
||||
ConstantInt(const Type *Ty, uint64_t V);
|
||||
public:
|
||||
@@ -143,11 +147,6 @@ public:
|
||||
///
|
||||
static ConstantInt *get(const Type *Ty, unsigned char V);
|
||||
|
||||
/// getRawValue - return the underlying value of this constant as a 64-bit
|
||||
/// unsigned integer value.
|
||||
///
|
||||
inline uint64_t getRawValue() const { return Val.Unsigned; }
|
||||
|
||||
/// isNullValue - Return true if this is the value that would be returned by
|
||||
/// getNullValue.
|
||||
virtual bool isNullValue() const { return Val.Unsigned == 0; }
|
||||
|
||||
Reference in New Issue
Block a user