- MVT::SimpleValueType getType() const { return Type.getConcrete(); }
- const EEVT::TypeSet &getExtType() const { return Type; }
- EEVT::TypeSet &getExtType() { return Type; }
- void setType(const EEVT::TypeSet &T) { Type = T; }
-
- bool hasTypeSet() const { return Type.isConcrete(); }
- bool isTypeCompletelyUnknown() const { return Type.isCompletelyUnknown(); }
- bool isTypeDynamicallyResolved() const { return Type.isDynamicallyResolved();}
-
+ unsigned getNumTypes() const { return Types.size(); }
+ MVT::SimpleValueType getType(unsigned ResNo) const {
+ return Types[ResNo].getConcrete();
+ }
+ const SmallVectorImpl<EEVT::TypeSet> &getExtTypes() const { return Types; }
+ const EEVT::TypeSet &getExtType(unsigned ResNo) const { return Types[ResNo]; }
+ EEVT::TypeSet &getExtType(unsigned ResNo) { return Types[ResNo]; }
+ void setType(unsigned ResNo, const EEVT::TypeSet &T) { Types[ResNo] = T; }
+
+ bool hasTypeSet(unsigned ResNo) const {
+ return Types[ResNo].isConcrete();
+ }
+ bool isTypeCompletelyUnknown(unsigned ResNo) const {
+ return Types[ResNo].isCompletelyUnknown();
+ }
+ bool isTypeDynamicallyResolved(unsigned ResNo) const {
+ return Types[ResNo].isDynamicallyResolved();
+ }
+