[NFC] Delete some dead/unreachable code in CGCall (#5069)

This code is all unreachable. Reverting this strips out some cascading
changes adding an unused parameter to a few functions.
This commit is contained in:
Chris B 2023-02-28 21:10:39 -06:00 коммит произвёл GitHub
Родитель 129024cd18
Коммит 44ba911a05
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 11 добавлений и 30 удалений

Просмотреть файл

@ -988,17 +988,13 @@ static llvm::Value *CreateCoercedLoad(llvm::Value *SrcPtr,
// FIXME: Do we need to recurse here?
static void BuildAggStore(CodeGenFunction &CGF, llvm::Value *Val,
llvm::Value *DestPtr, bool DestIsVolatile,
CharUnits DestAlign,
QualType QTy // HLSL Change
) {
CharUnits DestAlign) {
// Prefer scalar stores to first-class aggregate stores.
if (llvm::StructType *STy =
dyn_cast<llvm::StructType>(Val->getType())) {
// HLSL Change Begins
if (CGF.getLangOpts().HLSL) {
CGF.CGM.getHLSLRuntime().EmitHLSLAggregateStore(CGF, Val, DestPtr, QTy);
return;
}
assert(!CGF.getLangOpts().HLSL &&
"HLSL uses SRet so this should not be possible to reach.");
// HLSL Change Ends
const llvm::StructLayout *Layout =
CGF.CGM.getDataLayout().getStructLayout(STy);
@ -1028,9 +1024,7 @@ static void CreateCoercedStore(llvm::Value *Src,
llvm::Value *DstPtr,
bool DstIsVolatile,
CharUnits DstAlign,
CodeGenFunction &CGF,
QualType QTy // HLSL Change
) {
CodeGenFunction &CGF) {
llvm::Type *SrcTy = Src->getType();
llvm::Type *DstTy =
cast<llvm::PointerType>(DstPtr->getType())->getElementType();
@ -1063,7 +1057,7 @@ static void CreateCoercedStore(llvm::Value *Src,
if (SrcSize <= DstSize) {
llvm::Value *Casted =
CGF.Builder.CreateBitCast(DstPtr, llvm::PointerType::getUnqual(SrcTy));
BuildAggStore(CGF, Src, Casted, DstIsVolatile, DstAlign, QTy); // HLSL Change - Add QTy
BuildAggStore(CGF, Src, Casted, DstIsVolatile, DstAlign);
} else {
// Otherwise do coercion through memory. This is stupid, but
// simple.
@ -2082,7 +2076,7 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI,
assert(NumIRArgs == 1);
auto AI = FnArgs[FirstIRArg];
AI->setName(Arg->getName() + ".coerce");
CreateCoercedStore(AI, Ptr, /*DestIsVolatile=*/false, PtrAlign, *this, Ty); // HLSL Change - Add Ty.
CreateCoercedStore(AI, Ptr, /*DestIsVolatile=*/false, PtrAlign, *this);
}
@ -3724,7 +3718,7 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
DestPtr = CreateMemTemp(RetTy, "agg.tmp");
DestIsVolatile = false;
}
BuildAggStore(*this, CI, DestPtr, DestIsVolatile, DestAlign, RetTy); // HLSL Change - Add QualTy.
BuildAggStore(*this, CI, DestPtr, DestIsVolatile, DestAlign);
return RValue::getAggregate(DestPtr);
}
case TEK_Scalar: {
@ -3760,7 +3754,7 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,
StoreAlign =
StoreAlign.alignmentAtOffset(CharUnits::fromQuantity(Offs));
}
CreateCoercedStore(CI, StorePtr, DestIsVolatile, StoreAlign, *this, RetTy); // HLSL Change - Add QTy.
CreateCoercedStore(CI, StorePtr, DestIsVolatile, StoreAlign, *this);
return convertTempToRValue(DestPtr, RetTy, SourceLocation());
}

Просмотреть файл

@ -270,10 +270,6 @@ public:
llvm::Value *DestPtr,
clang::QualType Ty) override;
void EmitHLSLAggregateStore(CodeGenFunction &CGF, llvm::Value *Val,
llvm::Value *DestPtr,
clang::QualType Ty) override;
void EmitHLSLFlatConversion(CodeGenFunction &CGF, Value *Val,
Value *DestPtr,
QualType Ty,
@ -5691,9 +5687,9 @@ void CGMSHLSLRuntime::EmitHLSLFlatConversionAggregateCopy(CodeGenFunction &CGF,
}
}
// It is possible to implement EmitHLSLAggregateCopy, EmitHLSLAggregateStore
// the same way. But split value to scalar will generate many instruction when
// src type is same as dest type.
// It is possible to implement EmitHLSLAggregateCopy, the same way. But split
// value to scalar will generate many instruction when src type is same as
// dest type.
SmallVector<Value *, 4> GEPIdxStack;
SmallVector<Value *, 4> SrcPtrs;
SmallVector<QualType, 4> SrcQualTys;
@ -5712,12 +5708,6 @@ void CGMSHLSLRuntime::EmitHLSLFlatConversionAggregateCopy(CodeGenFunction &CGF,
ConvertAndStoreElements(CGF, SrcVals, SrcQualTys, DstPtrs, DstQualTys);
}
void CGMSHLSLRuntime::EmitHLSLAggregateStore(CodeGenFunction &CGF, llvm::Value *SrcVal,
llvm::Value *DestPtr,
clang::QualType Ty) {
DXASSERT(0, "aggregate return type will use SRet, no aggregate store should exist");
}
// Either copies a scalar to a scalar, a scalar to a vector, or splats a scalar to a vector
static void SimpleFlatValCopy(CodeGenFunction &CGF,
Value *SrcVal, QualType SrcQualTy, Value *DstPtr, QualType DstQualTy) {

Просмотреть файл

@ -114,9 +114,6 @@ public:
virtual void EmitHLSLAggregateCopy(CodeGenFunction &CGF, llvm::Value *SrcPtr,
llvm::Value *DestPtr,
clang::QualType Ty) = 0;
virtual void EmitHLSLAggregateStore(CodeGenFunction &CGF, llvm::Value *Val,
llvm::Value *DestPtr,
clang::QualType Ty) = 0;
virtual void EmitHLSLFlatConversion(CodeGenFunction &CGF, llvm::Value *Val,
llvm::Value *DestPtr,
clang::QualType Ty, clang::QualType SrcTy) = 0;