Skip to content

Commit d90ef22

Browse files
bokrzesiigcbot
authored andcommitted
[LLVM16] Fixing memory issue during TargetExtensionType resolution
When calling `NewF->setName(OriginalName);` setName under the hood performs `destroyValueName();` which invalidates OriginalName. It resulted in such IR: `define spir_kernel void @"\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD"(ptr addrspace(1)...)` or `%14 = call <2 x i32> @"\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD\DD"(ptr addrspace(1) %input...)`
1 parent 06bdb48 commit d90ef22

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

IGC/common/BuiltinTypes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ void retypeOpenCLTargetExtTyArgs(Module *M) {
219219
[&](Function *A, Function *B) { return idxOf(A) < idxOf(B); });
220220

221221
for (Function *NewF : RetypedFuncs) {
222-
StringRef OriginalName = NewF->getName().drop_back(TempSuffix.size());
222+
std::string OriginalName = NewF->getName().drop_back(TempSuffix.size()).str();
223223
Function *OldF = M->getFunction(OriginalName);
224224

225225
replaceFunctionAtCallsites(*OldF, *NewF);

0 commit comments

Comments
 (0)