Skip to content

Commit e9dc98c

Browse files
krystian-andrzejewskiigcbot
authored andcommitted
IGC intrinsic refactor - new input file format
This change is to support yaml files decoding and replace python files with yaml files which define IGC intrinsics. This simplifies the generator.
1 parent 4ccc798 commit e9dc98c

11 files changed

+700
-128
lines changed

IGC/GenISAIntrinsics/CMakeLists.txt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@ set(IGC_BUILD__PROJ_LABEL__GenISAIntrinsics "${IGC_BUILD__PROJ__GenISAIntrinsics
1313

1414
include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
1515

16-
set(IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_MODULES
16+
set(IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_FILES
1717
"${CMAKE_CURRENT_SOURCE_DIR}/Intrinsic_definitions.py"
1818
)
1919

2020
set(IGC_BUILD__GenISAIntrinsics_GENERATOR_SCRIPTS
21-
"${CMAKE_CURRENT_SOURCE_DIR}/generator/generate_intrinsic_files.py"
2221
"${CMAKE_CURRENT_SOURCE_DIR}/generator/Intrinsic_definition_objects.py"
2322
"${CMAKE_CURRENT_SOURCE_DIR}/generator/Intrinsic_definition_translation.py"
2423
"${CMAKE_CURRENT_SOURCE_DIR}/generator/Intrinsic_generator.py"
@@ -50,11 +49,11 @@ OUTPUT
5049
${IGC_BUILD__GenISAIntrinsics_GENERATOR_OUTPUT_SOURCES}
5150
COMMAND
5251
${CMAKE_COMMAND} -E env "PYTHONPATH=${BS_DIR_EXTERNAL_COMPONENTS}/build-tools/python-site-packages"
53-
${PYTHON_EXECUTABLE} generate_intrinsic_files.py
54-
"${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_MODULES}" --output ${IGC_OPTION__OUTPUT_DIR}/${IGC_CMAKE_CFG_INTDIR}
52+
${PYTHON_EXECUTABLE} Intrinsic_generator.py
53+
"${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_FILES}" --output ${IGC_OPTION__OUTPUT_DIR}/${IGC_CMAKE_CFG_INTDIR}
5554
$<$<NOT:$<CONFIG:Release>>:"--use_comments">
5655
DEPENDS
57-
${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_MODULES}
56+
${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_FILES}
5857
${IGC_BUILD__GenISAIntrinsics_GENERATOR_SCRIPTS}
5958
${IGC_BUILD__GenISAIntrinsics_GENERATOR_TEMPLATES}
6059
WORKING_DIRECTORY
@@ -67,7 +66,7 @@ DEPENDS
6766
${IGC_BUILD__GenISAIntrinsics_GENERATOR_OUTPUT_HEADERS}
6867
${IGC_BUILD__GenISAIntrinsics_GENERATOR_OUTPUT_SOURCES}
6968
SOURCES
70-
${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_MODULES}
69+
${IGC_BUILD__GenISAIntrinsics_GENERATOR_INPUT_FILES}
7170
${IGC_BUILD__GenISAIntrinsics_GENERATOR_SCRIPTS}
7271
${IGC_BUILD__GenISAIntrinsics_GENERATOR_TEMPLATES}
7372
)

IGC/GenISAIntrinsics/GenIntrinsicFunctions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class IntrinsicFunctionImp : public llvm::Function
174174
{
175175
case TypeID::ArgumentReference:
176176
{
177-
uint8_t argIndex = typeDef.m_ArgumentReference.m_Index;
177+
uint8_t argIndex = typeDef.m_Reference.m_Index;
178178
IGC_ASSERT_MESSAGE(argIndex < overloadedTypes.size(), "Argument reference index must point out one of the overloaded types");
179179
pDest = overloadedTypes[argIndex];
180180
break;

IGC/GenISAIntrinsics/LlvmTypesMapping.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,11 @@ struct TypeDescriptionTraits<TypeID::ArgumentReference>
256256
};
257257

258258

259-
struct ArgumentReferenceType
259+
struct ReferenceType
260260
{
261261
using Traits = TypeDescriptionTraits<TypeID::ArgumentReference>;
262262

263-
constexpr ArgumentReferenceType(uint8_t index = 0) :
263+
constexpr ReferenceType(uint8_t index = 0) :
264264
m_Index(index)
265265
{
266266

@@ -322,9 +322,9 @@ struct TypeDescription
322322
{
323323
}
324324

325-
constexpr TypeDescription(const ArgumentReferenceType& def) :
325+
constexpr TypeDescription(const ReferenceType& def) :
326326
m_ID(std::decay_t<decltype(def)>::Traits::scTypeID),
327-
m_ArgumentReference{ def }
327+
m_Reference{ def }
328328
{
329329
}
330330

@@ -355,7 +355,7 @@ struct TypeDescription
355355
func(m_Struct);
356356
break;
357357
case TypeID::ArgumentReference:
358-
func(m_ArgumentReference);
358+
func(m_Reference);
359359
break;
360360
default:
361361
break;
@@ -403,7 +403,7 @@ struct TypeDescription
403403
AnyType m_Any;
404404
PointerType m_Pointer;
405405
StructType m_Struct;
406-
ArgumentReferenceType m_ArgumentReference;
406+
ReferenceType m_Reference;
407407
};
408408

409409
const TypeID m_ID;
@@ -420,9 +420,9 @@ struct EmptyTypeHolderT
420420
};
421421

422422
template<uint8_t index>
423-
struct ArgumentReferenceTypeHolderT
423+
struct ReferenceTypeHolderT
424424
{
425-
static constexpr TypeDescription scType = ArgumentReferenceType(index);
425+
static constexpr TypeDescription scType = ReferenceType(index);
426426
};
427427

428428
template<typename TypeHolderT = EmptyTypeHolderT>

0 commit comments

Comments
 (0)