Skip to content

Commit 458f1dd

Browse files
committed
Fix assertion failure
1 parent c38738c commit 458f1dd

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

llvm/lib/Transforms/Utils/BuildLibCalls.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2043,7 +2043,7 @@ Value *llvm::emitCalloc(Type *RetTy, Value *Num, Value *Size, IRBuilderBase &B,
20432043
return CI;
20442044
}
20452045

2046-
Value *llvm::emitHotColdSizeReturningNew(Type *RetTy, Value *Num,
2046+
Value *llvm::emitHotColdSizeReturningNew(Type *RetPtrTy, Value *Num,
20472047
IRBuilderBase &B,
20482048
const TargetLibraryInfo *TLI,
20492049
LibFunc SizeFeedbackNewFunc,
@@ -2056,7 +2056,7 @@ Value *llvm::emitHotColdSizeReturningNew(Type *RetTy, Value *Num,
20562056

20572057
// __sized_ptr_t struct return type { void*, size_t }
20582058
StructType *SizedPtrT =
2059-
StructType::get(M->getContext(), {RetTy, Num->getType()});
2059+
StructType::get(M->getContext(), {RetPtrTy, Num->getType()});
20602060
FunctionCallee Func =
20612061
M->getOrInsertFunction(Name, SizedPtrT, Num->getType(), B.getInt8Ty());
20622062
inferNonMandatoryLibFuncAttrs(M, Name, *TLI);
@@ -2068,7 +2068,7 @@ Value *llvm::emitHotColdSizeReturningNew(Type *RetTy, Value *Num,
20682068
return CI;
20692069
}
20702070

2071-
Value *llvm::emitHotColdSizeReturningNewAligned(Type *RetTy, Value *Num,
2071+
Value *llvm::emitHotColdSizeReturningNewAligned(Type *RetPtrTy, Value *Num,
20722072
Value *Align, IRBuilderBase &B,
20732073
const TargetLibraryInfo *TLI,
20742074
LibFunc SizeFeedbackNewFunc,
@@ -2081,7 +2081,7 @@ Value *llvm::emitHotColdSizeReturningNewAligned(Type *RetTy, Value *Num,
20812081

20822082
// __sized_ptr_t struct return type { void*, size_t }
20832083
StructType *SizedPtrT =
2084-
StructType::get(M->getContext(), {RetTy, Num->getType()});
2084+
StructType::get(M->getContext(), {RetPtrTy, Num->getType()});
20852085
FunctionCallee Func = M->getOrInsertFunction(Name, SizedPtrT, Num->getType(),
20862086
Align->getType(), B.getInt8Ty());
20872087
inferNonMandatoryLibFuncAttrs(M, Name, *TLI);

llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1857,25 +1857,27 @@ Value *LibCallSimplifier::optimizeNew(CallInst *CI, IRBuilderBase &B,
18571857
case LibFunc_size_returning_new:
18581858
if (HotCold != NotColdNewHintValue)
18591859
return emitHotColdSizeReturningNew(
1860-
CI->getType(), CI->getArgOperand(0), B, TLI,
1860+
CI->getType()->getStructElementType(0), CI->getArgOperand(0), B, TLI,
18611861
LibFunc_size_returning_new_hot_cold, HotCold);
18621862
break;
18631863
case LibFunc_size_returning_new_hot_cold:
18641864
if (OptimizeExistingHotColdNew)
18651865
return emitHotColdSizeReturningNew(
1866-
CI->getType(), CI->getArgOperand(0), B, TLI,
1866+
CI->getType()->getStructElementType(0), CI->getArgOperand(0), B, TLI,
18671867
LibFunc_size_returning_new_hot_cold, HotCold);
18681868
break;
18691869
case LibFunc_size_returning_new_aligned:
18701870
if (HotCold != NotColdNewHintValue)
18711871
return emitHotColdSizeReturningNewAligned(
1872-
CI->getType(), CI->getArgOperand(0), CI->getArgOperand(1), B, TLI,
1872+
CI->getType()->getStructElementType(0), CI->getArgOperand(0),
1873+
CI->getArgOperand(1), B, TLI,
18731874
LibFunc_size_returning_new_aligned_hot_cold, HotCold);
18741875
break;
18751876
case LibFunc_size_returning_new_aligned_hot_cold:
18761877
if (OptimizeExistingHotColdNew)
18771878
return emitHotColdSizeReturningNewAligned(
1878-
CI->getType(), CI->getArgOperand(0), CI->getArgOperand(1), B, TLI,
1879+
CI->getType()->getStructElementType(0), CI->getArgOperand(0),
1880+
CI->getArgOperand(1), B, TLI,
18791881
LibFunc_size_returning_new_aligned_hot_cold, HotCold);
18801882
break;
18811883
default:

0 commit comments

Comments
 (0)