================
@@ -4869,6 +4872,46 @@ class FunctionType : public Type {
ARM_InOut = 4,
};
+ /// RISC-V type attributes for states.
+ enum RISCVTypeAttributes : uint8_t {
+ RISCVNormalFunction = 0,
+
+ // Describes the value of the xsfmm tile state using RISCVStateValue.
+ // Each tile gets 3 bits to store its state.
+ RISCVXsfmmShift = 0,
+ RISCVXsfmmMask = 0b111 << RISCVXsfmmShift,
+
+ // Currently using 3 bits for xsfmm
+ RISCVAttributeMask = 0b111
+ };
+
+ enum RISCVStateValue : unsigned {
+ RISCVNone = 0,
+ RISCVIn = 1,
+ RISCVOut = 2,
+ RISCVInOut = 3,
+ RISCVPreserves = 4,
+ RISCVNew = 5,
+ };
+
+ static const char *ToRISCVStateString(RISCVStateValue St) {
+ switch (St) {
+ case RISCVNone:
+ return "none";
+ case RISCVIn:
+ return "__riscv_in";
+ case RISCVOut:
+ return "__riscv_out";
+ case RISCVInOut:
+ return "__riscv_inout";
+ case RISCVPreserves:
+ return "__riscv_preserves";
+ case RISCVNew:
+ return "__riscv_new";
+ }
+ llvm_unreachable("Invalid RISCV state value");
----------------
topperc wrote:
```suggestion
llvm_unreachable("Invalid RISC-V state value");
```
https://github.com/llvm/llvm-project/pull/206260
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits