@@ -88,6 +88,8 @@ class AIETargetModel {
8888private:
8989 const TargetModelKind kind;
9090
91+ uint32_t ModelProperties = 0 ;
92+
9193public:
9294 TargetModelKind getKind () const { return kind; }
9395
@@ -246,10 +248,11 @@ class AIETargetModel {
246248 // Run consistency checks on the target model.
247249 void validate () const ;
248250
251+ uint32_t getModelProperties () const { return ModelProperties; }
252+ void addModelProperty (uint32_t prop) { ModelProperties |= prop; }
249253 // Return true if this device has a given property.
250- uint32_t ModelProperties = 0 ;
251254 bool hasProperty (ModelProperty Prop) const {
252- return (ModelProperties & Prop) == Prop;
255+ return (getModelProperties () & Prop) == Prop;
253256 }
254257
255258 // Return the bit offset of the column within a tile address.
@@ -336,8 +339,8 @@ class AIE2TargetModel : public AIETargetModel {
336339public:
337340 AIE2TargetModel (TargetModelKind k) : AIETargetModel(k) {
338341 // Device properties initialization
339- ModelProperties |= AIETargetModel::UsesSemaphoreLocks;
340- ModelProperties |= AIETargetModel::UsesMultiDimensionalBDs;
342+ addModelProperty ( AIETargetModel::UsesSemaphoreLocks) ;
343+ addModelProperty ( AIETargetModel::UsesMultiDimensionalBDs) ;
341344 }
342345
343346 AIEArch getTargetArch () const override ;
@@ -524,7 +527,7 @@ class BaseNPUTargetModel : public AIE2TargetModel {
524527public:
525528 BaseNPUTargetModel (TargetModelKind k) : AIE2TargetModel(k) {
526529 // Device properties initialization
527- ModelProperties |= AIETargetModel::IsNPU;
530+ addModelProperty ( AIETargetModel::IsNPU) ;
528531 }
529532
530533 int rows () const override {
@@ -582,7 +585,7 @@ class VirtualizedNPUTargetModel : public BaseNPUTargetModel {
582585 _cols)),
583586 cols (_cols) {
584587 // Device properties initialization
585- ModelProperties |= AIETargetModel::IsVirtualized;
588+ addModelProperty ( AIETargetModel::IsVirtualized) ;
586589 }
587590
588591 uint32_t getAddressGenGranularity () const override { return 32 ; }
0 commit comments