mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type
inferencing. As far as I can tell, these are equivalent to the existing MVT::fAny, iAny and vAny types, and having both of them makes it harder to reason about and modify the type inferencing code. The specific problem in PR4795 occurs when updating a vAny type to be fAny or iAny, or vice versa. Both iAny and fAny include vector types -- they intersect with the set of types represented by vAny. When merging them, choose fAny/iAny to represent the intersection. This is not perfect, since fAny/iAny also include scalar types, but it is good enough for TableGen's type inferencing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80423 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -35,24 +35,24 @@ namespace llvm {
|
||||
|
||||
/// EEVT::DAGISelGenValueType - These are some extended forms of
|
||||
/// MVT::SimpleValueType that we use as lattice values during type inference.
|
||||
/// The existing MVT iAny, fAny and vAny types suffice to represent
|
||||
/// arbitrary integer, floating-point, and vector types, so only an unknown
|
||||
/// value is needed.
|
||||
namespace EEVT {
|
||||
enum DAGISelGenValueType {
|
||||
isFP = MVT::LAST_VALUETYPE,
|
||||
isInt,
|
||||
isVec,
|
||||
isUnknown
|
||||
isUnknown = MVT::LAST_VALUETYPE
|
||||
};
|
||||
|
||||
/// isExtIntegerInVTs - Return true if the specified extended value type
|
||||
/// vector contains isInt or an integer value type.
|
||||
/// vector contains iAny or an integer value type.
|
||||
bool isExtIntegerInVTs(const std::vector<unsigned char> &EVTs);
|
||||
|
||||
/// isExtFloatingPointInVTs - Return true if the specified extended value
|
||||
/// type vector contains isFP or a FP value type.
|
||||
/// type vector contains fAny or a FP value type.
|
||||
bool isExtFloatingPointInVTs(const std::vector<unsigned char> &EVTs);
|
||||
|
||||
/// isExtVectorinVTs - Return true if the specified extended value type
|
||||
/// vector contains isVec or a vector value type.
|
||||
/// vector contains vAny or a vector value type.
|
||||
bool isExtVectorInVTs(const std::vector<unsigned char> &EVTs);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user