[llvm] [DXIL] Add DXIL version-specific TableGen specification and implementation of DXIL Ops (PR #97593)
Chris B via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 26 14:30:10 PDT 2024
================
@@ -282,40 +420,18 @@ Type *DXILOpBuilder::getOverloadTy(dxil::OpCode OpCode, FunctionType *FT) {
// If DXIL Op has no overload parameter, just return the
// precise return type specified.
if (Prop->OverloadParamIndex < 0) {
- auto &Ctx = FT->getContext();
- switch (Prop->OverloadTys) {
- case OverloadKind::VOID:
- return Type::getVoidTy(Ctx);
- case OverloadKind::HALF:
- return Type::getHalfTy(Ctx);
- case OverloadKind::FLOAT:
- return Type::getFloatTy(Ctx);
- case OverloadKind::DOUBLE:
- return Type::getDoubleTy(Ctx);
- case OverloadKind::I1:
- return Type::getInt1Ty(Ctx);
- case OverloadKind::I8:
- return Type::getInt8Ty(Ctx);
- case OverloadKind::I16:
- return Type::getInt16Ty(Ctx);
- case OverloadKind::I32:
- return Type::getInt32Ty(Ctx);
- case OverloadKind::I64:
- return Type::getInt64Ty(Ctx);
- default:
- llvm_unreachable("invalid overload type");
- return nullptr;
- }
+ return FT->getReturnType();
}
- // Prop->OverloadParamIndex is 0, overload type is FT->getReturnType().
+ // Consider FT->getReturnType() as default overload type, unless
+ // Prop->OverloadParamIndex != 0.
Type *OverloadType = FT->getReturnType();
if (Prop->OverloadParamIndex != 0) {
// Skip Return Type.
OverloadType = FT->getParamType(Prop->OverloadParamIndex - 1);
}
- auto ParamKinds = getOpCodeParameterKind(*Prop);
+ const auto *ParamKinds = getOpCodeParameterKind(*Prop);
----------------
llvm-beanz wrote:
I don't know what this type is from the context here which makes me think it shouldn't be `auto` (https://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable).
https://github.com/llvm/llvm-project/pull/97593
More information about the llvm-commits
mailing list