@@ -220,6 +220,7 @@ class Value {
220
220
enum class ClassID : unsigned {
221
221
#define DEF_VALUE (ID, CLASS ) ID,
222
222
#define DEF_USER (ID, CLASS ) ID,
223
+ #define DEF_CONST (ID, CLASS ) ID,
223
224
#define DEF_INSTR (ID, OPC, CLASS ) ID,
224
225
#include " llvm/SandboxIR/SandboxIRValues.def"
225
226
};
@@ -233,6 +234,9 @@ class Value {
233
234
#define DEF_USER (ID, CLASS ) \
234
235
case ClassID::ID: \
235
236
return #ID;
237
+ #define DEF_CONST (ID, CLASS ) \
238
+ case ClassID::ID: \
239
+ return #ID;
236
240
#define DEF_INSTR (ID, OPC, CLASS ) \
237
241
case ClassID::ID: \
238
242
return #ID;
@@ -515,6 +519,7 @@ class User : public Value {
515
519
};
516
520
517
521
class Constant : public sandboxir ::User {
522
+ protected:
518
523
Constant (llvm::Constant *C, sandboxir::Context &SBCtx)
519
524
: sandboxir::User(ClassID::Constant, C, SBCtx) {}
520
525
Constant (ClassID ID, llvm::Constant *C, sandboxir::Context &SBCtx)
@@ -529,9 +534,13 @@ class Constant : public sandboxir::User {
529
534
public:
530
535
// / For isa/dyn_cast.
531
536
static bool classof (const sandboxir::Value *From) {
532
- return From->getSubclassID () == ClassID::Constant ||
533
- From->getSubclassID () == ClassID::ConstantInt ||
534
- From->getSubclassID () == ClassID::Function;
537
+ switch (From->getSubclassID ()) {
538
+ #define DEF_CONST (ID, CLASS ) case ClassID::ID:
539
+ #include " llvm/SandboxIR/SandboxIRValues.def"
540
+ return true ;
541
+ default :
542
+ return false ;
543
+ }
535
544
}
536
545
sandboxir::Context &getParent () const { return getContext (); }
537
546
unsigned getUseOperandNo (const Use &Use) const override {
0 commit comments