Skip to content

Commit 50ad1b5

Browse files
mmereckiigcbot
authored andcommitted
Add support for llvm::Type* in metadata framework
Allow creating metadata nodes with `llvm::Type*`.
1 parent 61671fc commit 50ad1b5

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

IGC/common/MDFrameWork.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ template <typename T, size_t s> void readNode(std::array<T, s> &arr, MDNode *nod
5858
template <typename T> void readNode(std::optional<T> &option, MDNode *node);
5959
void readNode(Function *&funcPtr, MDNode *node);
6060
void readNode(GlobalVariable *&globalVar, MDNode *node);
61+
void readNode(Type *&Ty, MDNode *node);
6162
void readNode(StructType *&Ty, MDNode *node);
6263

6364
template <typename Key, typename Value> void readNode(std::map<Key, Value> &funcMD, MDNode *node);
@@ -362,6 +363,12 @@ void readNode(GlobalVariable *&globalVar, MDNode *node) {
362363
globalVar = cast<GlobalVariable>(v);
363364
}
364365

366+
void readNode(Type *&Ty, MDNode *node) {
367+
ValueAsMetadata *pVal = cast<ValueAsMetadata>(node->getOperand(1));
368+
Value *v = pVal->getValue();
369+
Ty = cast<Type>(v->getType());
370+
}
371+
365372
void readNode(StructType *&Ty, MDNode *node) {
366373
ValueAsMetadata *pVal = cast<ValueAsMetadata>(node->getOperand(1));
367374
Value *v = pVal->getValue();

IGC/common/MDFrameWork.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ namespace llvm
3333
class Value;
3434
class GlobalVariable;
3535
class StructType;
36-
}
36+
class Type;
37+
}
3738

3839
const unsigned int INPUT_RESOURCE_SLOT_COUNT = 128;
3940
const unsigned int NUM_SHADER_RESOURCE_VIEW_SIZE = (INPUT_RESOURCE_SLOT_COUNT + 1) / 64;

0 commit comments

Comments
 (0)