Skip to content

Commit 73fc8f3

Browse files
committed
[Offload] Don't partition error code enum into categories
1 parent cc27f3a commit 73fc8f3

File tree

8 files changed

+54
-69
lines changed

8 files changed

+54
-69
lines changed

offload/liboffload/API/APIDefs.td

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,9 @@ class Function : APIObject {
152152
AddHandleChecksToReturns<params, returns_with_def>.returns_out>.returns_out;
153153
}
154154

155-
class Etor<string Name, string Desc, int Value=-1> {
155+
class Etor<string Name, string Desc> {
156156
string name = Name;
157157
string desc = Desc;
158-
int value = Value;
159158
string tagged_type;
160159
}
161160

offload/liboffload/API/Common.td

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,26 +87,25 @@ def ErrorCode : Enum {
8787
let name = "ol_errc_t";
8888
let desc = "Defines Return/Error codes";
8989
let etors =[
90-
Etor<"SUCCESS", "Success", 0>,
90+
Etor<"SUCCESS", "Success">,
9191

9292
// Universal errors
93+
Etor<"UNKNOWN", "Unknown or internal error">,
9394
Etor<"INVALID_NULL_POINTER", "A pointer argument is null when it should not be">,
9495
Etor<"INVALID_ARGUMENT", "An argument is invalid">,
9596
Etor<"OUT_OF_RESOURCES", "Out of resources">,
9697
Etor<"UNSUPPORTED", "generic error code for unsupported features and enums">,
98+
Etor<"INVALID_SIZE", "invalid size or dimensions (e.g., must not be zero, or is out of bounds)">,
99+
Etor<"INVALID_ENUMERATION", "enumerator argument is not valid">,
100+
Etor<"INVALID_KERNEL_NAME", "Named kernel not found in the program binary">,
97101

98-
// Liboffload specific errors
99-
Etor<"INVALID_VALUE", "Invalid Value", 0x1000>,
102+
// Handle related errors - only makes sense for liboffload
103+
Etor<"INVALID_VALUE", "Invalid Value">,
100104
Etor<"INVALID_PLATFORM", "Invalid platform">,
101105
Etor<"INVALID_DEVICE", "Invalid device">,
102106
Etor<"INVALID_QUEUE", "Invalid queue">,
103107
Etor<"INVALID_EVENT", "Invalid event">,
104-
Etor<"INVALID_KERNEL_NAME", "Named kernel not found in the program binary">,
105-
Etor<"INVALID_NULL_HANDLE", "handle argument is not valid">,
106-
Etor<"INVALID_SIZE", "invalid size or dimensions (e.g., must not be zero, or is out of bounds)">,
107-
Etor<"INVALID_ENUMERATION", "enumerator argument is not valid">,
108-
109-
Etor<"UNKNOWN", "Unknown or internal error", 0x10000>
108+
Etor<"INVALID_NULL_HANDLE", "handle argument is not valid">
110109
];
111110
}
112111

offload/liboffload/include/generated/OffloadAPI.h

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,34 @@ extern "C" {
2222
typedef enum ol_errc_t {
2323
/// Success
2424
OL_ERRC_SUCCESS = 0,
25+
/// Unknown or internal error
26+
OL_ERRC_UNKNOWN = 1,
2527
/// A pointer argument is null when it should not be
26-
OL_ERRC_INVALID_NULL_POINTER = 1,
28+
OL_ERRC_INVALID_NULL_POINTER = 2,
2729
/// An argument is invalid
28-
OL_ERRC_INVALID_ARGUMENT = 2,
30+
OL_ERRC_INVALID_ARGUMENT = 3,
2931
/// Out of resources
30-
OL_ERRC_OUT_OF_RESOURCES = 3,
32+
OL_ERRC_OUT_OF_RESOURCES = 4,
3133
/// generic error code for unsupported features and enums
32-
OL_ERRC_UNSUPPORTED = 4,
34+
OL_ERRC_UNSUPPORTED = 5,
35+
/// invalid size or dimensions (e.g., must not be zero, or is out of bounds)
36+
OL_ERRC_INVALID_SIZE = 6,
37+
/// enumerator argument is not valid
38+
OL_ERRC_INVALID_ENUMERATION = 7,
39+
/// Named kernel not found in the program binary
40+
OL_ERRC_INVALID_KERNEL_NAME = 8,
3341
/// Invalid Value
34-
OL_ERRC_INVALID_VALUE = 4096,
42+
OL_ERRC_INVALID_VALUE = 9,
3543
/// Invalid platform
36-
OL_ERRC_INVALID_PLATFORM = 4097,
44+
OL_ERRC_INVALID_PLATFORM = 10,
3745
/// Invalid device
38-
OL_ERRC_INVALID_DEVICE = 4098,
46+
OL_ERRC_INVALID_DEVICE = 11,
3947
/// Invalid queue
40-
OL_ERRC_INVALID_QUEUE = 4099,
48+
OL_ERRC_INVALID_QUEUE = 12,
4149
/// Invalid event
42-
OL_ERRC_INVALID_EVENT = 4100,
43-
/// Named kernel not found in the program binary
44-
OL_ERRC_INVALID_KERNEL_NAME = 4101,
50+
OL_ERRC_INVALID_EVENT = 13,
4551
/// handle argument is not valid
46-
OL_ERRC_INVALID_NULL_HANDLE = 4102,
47-
/// invalid size or dimensions (e.g., must not be zero, or is out of bounds)
48-
OL_ERRC_INVALID_SIZE = 4103,
49-
/// enumerator argument is not valid
50-
OL_ERRC_INVALID_ENUMERATION = 4104,
51-
/// Unknown or internal error
52-
OL_ERRC_UNKNOWN = 65536,
52+
OL_ERRC_INVALID_NULL_HANDLE = 14,
5353
/// @cond
5454
OL_ERRC_FORCE_UINT32 = 0x7fffffff
5555
/// @endcond

offload/liboffload/include/generated/OffloadPrint.hpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os,
4949
case OL_ERRC_SUCCESS:
5050
os << "OL_ERRC_SUCCESS";
5151
break;
52+
case OL_ERRC_UNKNOWN:
53+
os << "OL_ERRC_UNKNOWN";
54+
break;
5255
case OL_ERRC_INVALID_NULL_POINTER:
5356
os << "OL_ERRC_INVALID_NULL_POINTER";
5457
break;
@@ -61,6 +64,15 @@ inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os,
6164
case OL_ERRC_UNSUPPORTED:
6265
os << "OL_ERRC_UNSUPPORTED";
6366
break;
67+
case OL_ERRC_INVALID_SIZE:
68+
os << "OL_ERRC_INVALID_SIZE";
69+
break;
70+
case OL_ERRC_INVALID_ENUMERATION:
71+
os << "OL_ERRC_INVALID_ENUMERATION";
72+
break;
73+
case OL_ERRC_INVALID_KERNEL_NAME:
74+
os << "OL_ERRC_INVALID_KERNEL_NAME";
75+
break;
6476
case OL_ERRC_INVALID_VALUE:
6577
os << "OL_ERRC_INVALID_VALUE";
6678
break;
@@ -76,21 +88,9 @@ inline llvm::raw_ostream &operator<<(llvm::raw_ostream &os,
7688
case OL_ERRC_INVALID_EVENT:
7789
os << "OL_ERRC_INVALID_EVENT";
7890
break;
79-
case OL_ERRC_INVALID_KERNEL_NAME:
80-
os << "OL_ERRC_INVALID_KERNEL_NAME";
81-
break;
8291
case OL_ERRC_INVALID_NULL_HANDLE:
8392
os << "OL_ERRC_INVALID_NULL_HANDLE";
8493
break;
85-
case OL_ERRC_INVALID_SIZE:
86-
os << "OL_ERRC_INVALID_SIZE";
87-
break;
88-
case OL_ERRC_INVALID_ENUMERATION:
89-
os << "OL_ERRC_INVALID_ENUMERATION";
90-
break;
91-
case OL_ERRC_UNKNOWN:
92-
os << "OL_ERRC_UNKNOWN";
93-
break;
9494
default:
9595
os << "unknown enumerator";
9696
break;

offload/plugins-nextgen/common/include/OffloadErrcodes.inc

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,23 @@
1515
// the GenerateOffload target.
1616

1717
OFFLOAD_ERRC(SUCCESS, "Success", 0)
18+
OFFLOAD_ERRC(UNKNOWN, "Unknown or internal error", 1)
1819
OFFLOAD_ERRC(INVALID_NULL_POINTER,
19-
"A pointer argument is null when it should not be", 1)
20-
OFFLOAD_ERRC(INVALID_ARGUMENT, "An argument is invalid", 2)
21-
OFFLOAD_ERRC(OUT_OF_RESOURCES, "Out of resources", 3)
20+
"A pointer argument is null when it should not be", 2)
21+
OFFLOAD_ERRC(INVALID_ARGUMENT, "An argument is invalid", 3)
22+
OFFLOAD_ERRC(OUT_OF_RESOURCES, "Out of resources", 4)
2223
OFFLOAD_ERRC(UNSUPPORTED,
23-
"generic error code for unsupported features and enums", 4)
24-
OFFLOAD_ERRC(INVALID_VALUE, "Invalid Value", 4096)
25-
OFFLOAD_ERRC(INVALID_PLATFORM, "Invalid platform", 4097)
26-
OFFLOAD_ERRC(INVALID_DEVICE, "Invalid device", 4098)
27-
OFFLOAD_ERRC(INVALID_QUEUE, "Invalid queue", 4099)
28-
OFFLOAD_ERRC(INVALID_EVENT, "Invalid event", 4100)
29-
OFFLOAD_ERRC(INVALID_KERNEL_NAME,
30-
"Named kernel not found in the program binary", 4101)
31-
OFFLOAD_ERRC(INVALID_NULL_HANDLE, "handle argument is not valid", 4102)
24+
"generic error code for unsupported features and enums", 5)
3225
OFFLOAD_ERRC(
3326
INVALID_SIZE,
3427
"invalid size or dimensions (e.g., must not be zero, or is out of bounds)",
35-
4103)
36-
OFFLOAD_ERRC(INVALID_ENUMERATION, "enumerator argument is not valid", 4104)
37-
OFFLOAD_ERRC(UNKNOWN, "Unknown or internal error", 65536)
28+
6)
29+
OFFLOAD_ERRC(INVALID_ENUMERATION, "enumerator argument is not valid", 7)
30+
OFFLOAD_ERRC(INVALID_KERNEL_NAME,
31+
"Named kernel not found in the program binary", 8)
32+
OFFLOAD_ERRC(INVALID_VALUE, "Invalid Value", 9)
33+
OFFLOAD_ERRC(INVALID_PLATFORM, "Invalid platform", 10)
34+
OFFLOAD_ERRC(INVALID_DEVICE, "Invalid device", 11)
35+
OFFLOAD_ERRC(INVALID_QUEUE, "Invalid queue", 12)
36+
OFFLOAD_ERRC(INVALID_EVENT, "Invalid event", 13)
37+
OFFLOAD_ERRC(INVALID_NULL_HANDLE, "handle argument is not valid", 14)

offload/tools/offload-tblgen/APIGen.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,6 @@ static void ProcessEnum(const EnumRec &Enum, raw_ostream &OS) {
132132

133133
uint32_t EtorVal = 0;
134134
for (const auto &EnumVal : Enum.getValues()) {
135-
if (auto NewVal = EnumVal.getEnumValue()) {
136-
EtorVal = *NewVal;
137-
}
138135
if (Enum.isTyped()) {
139136
OS << MakeComment(
140137
formatv("[{0}] {1}", EnumVal.getTaggedType(), EnumVal.getDesc())

offload/tools/offload-tblgen/MiscGen.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,6 @@ void EmitOffloadErrcodes(const RecordKeeper &Records, raw_ostream &OS) {
8989
auto ErrorCodeEnum = EnumRec{Records.getDef("ErrorCode")};
9090
uint32_t EtorVal = 0;
9191
for (const auto &EnumVal : ErrorCodeEnum.getValues()) {
92-
if (auto NewVal = EnumVal.getEnumValue()) {
93-
EtorVal = *NewVal;
94-
}
9592
OS << formatv(TAB_1 "OFFLOAD_ERRC({0}, \"{1}\", {2})\n", EnumVal.getName(),
9693
EnumVal.getDesc(), EtorVal++);
9794
}

offload/tools/offload-tblgen/RecordTypes.hpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,6 @@ class EnumValueRec {
6969
StringRef getTaggedType() const {
7070
return rec->getValueAsString("tagged_type");
7171
}
72-
std::optional<uint32_t> getEnumValue() const {
73-
if (rec->getValueAsInt("value") == -1) {
74-
return std::nullopt;
75-
} else {
76-
return rec->getValueAsInt("value");
77-
}
78-
}
7972

8073
private:
8174
const Record *rec;

0 commit comments

Comments
 (0)