Skip to content

Commit

Permalink
Unify IR variable names (#761)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcauberer authored Feb 5, 2025
1 parent 697b6ff commit b2f80ac
Show file tree
Hide file tree
Showing 44 changed files with 358 additions and 358 deletions.
6 changes: 3 additions & 3 deletions src/irgenerator/GenControlStructures.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,20 +166,20 @@ std::any IRGenerator::visitForeachLoop(const ForeachLoopNode *node) {
if (hasIdx) {
// Allocate space to save pair
llvm::Type *pairTy = node->getIdxFct->returnType.toLLVMType(sourceFile);
llvm::Value *pairPtr = insertAlloca(pairTy, "pair_addr");
llvm::Value *pairPtr = insertAlloca(pairTy, "pair.addr");
// Call .getIdx() on iterator
assert(node->getIdxFct);
llvm::Function *getIdxFct = stdFunctionManager.getIteratorGetIdxFct(node->getIdxFct);
llvm::Value *pair = builder.CreateCall(getIdxFct, iteratorPtr);
pair->setName("pair");
insertStore(pair, pairPtr);
// Store idx to idx var
llvm::Value *idxAddrInPair = insertStructGEP(pairTy, pairPtr, 0, "idx_addr");
llvm::Value *idxAddrInPair = insertStructGEP(pairTy, pairPtr, 0, "idx.addr");
LLVMExprResult idxResult = {.ptr = idxAddrInPair};
assert(idxAddress != nullptr && idxEntry != nullptr);
doAssignment(idxAddress, idxEntry, idxResult, QualType(TY_LONG), node, true);
// Store item to item var
llvm::Value *itemAddrInPair = insertStructGEP(pairTy, pairPtr, 1, "item_addr");
llvm::Value *itemAddrInPair = insertStructGEP(pairTy, pairPtr, 1, "item.addr");
LLVMExprResult itemResult = {.refPtr = itemAddrInPair};
doAssignment(itemAddress, itemEntry, itemResult, itemRefSTy, node, true);
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/irgenerator/GenExpressions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ std::any IRGenerator::visitPostfixUnaryExpr(const PostfixUnaryExprNode *node) {
std::vector<llvm::Value *> indices = {builder.getInt64(0)};
for (const size_t index : indexPath)
indices.push_back(builder.getInt32(index));
const std::string name = fieldName + "_addr";
const std::string name = fieldName + ".addr";
llvm::Value *memberAddr = insertInBoundsGEP(lhsSTy.toLLVMType(sourceFile), lhs.ptr, indices, name);

// Set as ptr or refPtr, depending on the type
Expand Down
16 changes: 8 additions & 8 deletions src/irgenerator/GenValues.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -960,24 +960,24 @@ llvm::Type *IRGenerator::buildCapturesContainerType(const CaptureMap &captures)
void IRGenerator::unpackCapturesToLocalVariables(const CaptureMap &captures, llvm::Value *val, llvm::Type *structType) {
assert(!captures.empty());
// If we have only one capture that is a ptr, we can just load the ptr
const Capture &capture = captures.begin()->second;
if (captures.size() == 1 && (capture.capturedSymbol->getQualType().isPtr() || capture.getMode() == BY_REFERENCE)) {
const Capture &firstCapture = captures.begin()->second;
if (captures.size() == 1 && (firstCapture.capturedSymbol->getQualType().isPtr() || firstCapture.getMode() == BY_REFERENCE)) {
// Interpret capturesPtr as ptr to the first and only capture
llvm::Value *captureAddress = val;
capture.capturedSymbol->pushAddress(captureAddress);
firstCapture.capturedSymbol->pushAddress(captureAddress);
// Generate debug info
diGenerator.generateLocalVarDebugInfo(capture.getName(), captureAddress);
diGenerator.generateLocalVarDebugInfo(firstCapture.getName(), captureAddress);
} else {
// Interpret capturesPtr as ptr to the captures struct
llvm::Value *capturesPtr = insertLoad(builder.getPtrTy(), val);

size_t captureIdx = 0;
for (const auto &[name, c] : captures) {
const std::string valueName = c.getMode() == BY_REFERENCE ? name + ".addr" : name;
for (const auto &[name, capture] : captures) {
const std::string valueName = capture.getMode() == BY_REFERENCE ? name + ".addr" : name;
llvm::Value *captureAddress = insertStructGEP(structType, capturesPtr, captureIdx, valueName);
c.capturedSymbol->pushAddress(captureAddress);
capture.capturedSymbol->pushAddress(captureAddress);
// Generate debug info
diGenerator.generateLocalVarDebugInfo(c.getName(), captureAddress);
diGenerator.generateLocalVarDebugInfo(capture.getName(), captureAddress);
captureIdx++;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ define dso_local i32 @main(i32 %0, ptr %1) #0 !dbg !14 {
%11 = alloca %struct.VectorIterator, align 8
%idx = alloca i64, align 8
%item2 = alloca ptr, align 8
%pair_addr = alloca %struct.Pair, align 8
%pair.addr = alloca %struct.Pair, align 8
%12 = alloca ptr, align 8
store i32 0, ptr %result, align 4, !dbg !23
#dbg_declare(ptr %_argc, !24, !DIExpression(), !23)
Expand Down Expand Up @@ -381,11 +381,11 @@ foreach.head.L61: ; preds = %foreach.tail.L61, %

foreach.body.L61: ; preds = %foreach.head.L61
%pair3 = call %struct.Pair @_ZN14VectorIteratorIiE6getIdxEv(ptr %11), !dbg !122
store %struct.Pair %pair3, ptr %pair_addr, align 8, !dbg !122
%108 = load i64, ptr %pair_addr, align 8, !dbg !122
store %struct.Pair %pair3, ptr %pair.addr, align 8, !dbg !122
%108 = load i64, ptr %pair.addr, align 8, !dbg !122
store i64 %108, ptr %idx, align 8, !dbg !122
%item_addr = getelementptr inbounds nuw %struct.Pair, ptr %pair_addr, i32 0, i32 1, !dbg !122
%109 = load ptr, ptr %item_addr, align 8, !dbg !122
%item.addr = getelementptr inbounds nuw %struct.Pair, ptr %pair.addr, i32 0, i32 1, !dbg !122
%109 = load ptr, ptr %item.addr, align 8, !dbg !122
store ptr %109, ptr %12, align 8, !dbg !122
%110 = load i64, ptr %idx, align 8, !dbg !123
%111 = trunc i64 %110 to i32, !dbg !123
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@ define dso_local i32 @main() #1 !dbg !60 {
%1 = call %struct.TestStruct @_Z3fctRi(ptr %test), !dbg !68
#dbg_declare(ptr %res, !69, !DIExpression(), !70)
store %struct.TestStruct %1, ptr %res, align 8, !dbg !68
%lng_addr = getelementptr inbounds %struct.TestStruct, ptr %res, i64 0, i32 0, !dbg !71
%2 = load i64, ptr %lng_addr, align 8, !dbg !71
%lng.addr = getelementptr inbounds %struct.TestStruct, ptr %res, i64 0, i32 0, !dbg !71
%2 = load i64, ptr %lng.addr, align 8, !dbg !71
%3 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.0, i64 %2), !dbg !71
%4 = getelementptr inbounds %struct.TestStruct, ptr %res, i64 0, i32 1, !dbg !72
%5 = call ptr @_ZN6String6getRawEv(ptr noundef nonnull align 8 dereferenceable(24) %4), !dbg !72
%6 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.1, ptr %5), !dbg !72
%i_addr = getelementptr inbounds %struct.TestStruct, ptr %res, i64 0, i32 2, !dbg !73
%7 = load i32, ptr %i_addr, align 4, !dbg !73
%i.addr = getelementptr inbounds %struct.TestStruct, ptr %res, i64 0, i32 2, !dbg !73
%7 = load i32, ptr %i.addr, align 4, !dbg !73
%8 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.2, i32 %7), !dbg !73
call void @_ZN10TestStruct4dtorEv(ptr %res), !dbg !74
%9 = load i32, ptr %result, align 4, !dbg !74
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ define dso_local i32 @main() #0 {
%1 = alloca %struct.ArrayIterator, align 8
%index = alloca i64, align 8
%item = alloca i32, align 4
%pair_addr = alloca %struct.Pair, align 8
%pair.addr = alloca %struct.Pair, align 8
store i32 0, ptr %result, align 4
store [7 x i32] [i32 1, i32 5, i32 4, i32 0, i32 12, i32 12345, i32 9], ptr %intArray, align 4
%2 = getelementptr inbounds [7 x i32], ptr %intArray, i64 0, i32 0
Expand All @@ -30,11 +30,11 @@ foreach.head.L5: ; preds = %foreach.tail.L5, %0

foreach.body.L5: ; preds = %foreach.head.L5
%pair = call %struct.Pair @_ZN13ArrayIteratorIiE6getIdxEv(ptr %1)
store %struct.Pair %pair, ptr %pair_addr, align 8
%5 = load i64, ptr %pair_addr, align 8
store %struct.Pair %pair, ptr %pair.addr, align 8
%5 = load i64, ptr %pair.addr, align 8
store i64 %5, ptr %index, align 8
%item_addr = getelementptr inbounds nuw %struct.Pair, ptr %pair_addr, i32 0, i32 1
%6 = load ptr, ptr %item_addr, align 8
%item.addr = getelementptr inbounds nuw %struct.Pair, ptr %pair.addr, i32 0, i32 1
%6 = load ptr, ptr %item.addr, align 8
%7 = load i64, ptr %index, align 8
%8 = load i32, ptr %6, align 4
%9 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.0, i64 %7, i32 %8)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ define private ptr @_ZN4Test8getFieldEv(ptr noundef nonnull align 4 dereferencea
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%field_addr = getelementptr inbounds %struct.Test, ptr %2, i64 0, i32 0
store ptr %field_addr, ptr %result, align 8
%field.addr = getelementptr inbounds %struct.Test, ptr %2, i64 0, i32 0
store ptr %field.addr, ptr %result, align 8
%3 = load ptr, ptr %result, align 8
ret ptr %3
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ define dso_local i32 @main() #0 {
store ptr %dbl, ptr %doubleVec, align 8
%1 = getelementptr inbounds nuw %struct.Vector, ptr %doubleVec, i32 0, i32 1
store i32 1, ptr %1, align 4
%cap_addr = getelementptr inbounds %struct.Vector, ptr %doubleVec, i64 0, i32 1
%2 = load i32, ptr %cap_addr, align 4
%cap.addr = getelementptr inbounds %struct.Vector, ptr %doubleVec, i64 0, i32 1
%2 = load i32, ptr %cap.addr, align 4
%3 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.0, i32 %2)
%4 = load i32, ptr %result, align 4
ret i32 %4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ define private void @_ZN4TestI6NestedE8testFuncEv(ptr noundef nonnull align 1 %0
%t = alloca %struct.Nested, align 8
store ptr %0, ptr %this, align 8
call void @_ZN6Nested4ctorEv(ptr noundef nonnull align 4 dereferenceable(4) %t)
%i_addr = getelementptr inbounds %struct.Nested, ptr %t, i64 0, i32 0
%2 = load i32, ptr %i_addr, align 4
%i.addr = getelementptr inbounds %struct.Nested, ptr %t, i64 0, i32 0
%2 = load i32, ptr %i.addr, align 4
%3 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.0, i32 %2)
ret void
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ define private void @_ZN3Car4ctorEv(ptr noundef nonnull align 8 dereferenceable(
%3 = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
store i1 false, ptr %3, align 1
%4 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %4, i64 0, i32 1
store i1 false, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %4, i64 0, i32 1
store i1 false, ptr %driving.addr, align 1
ret void
}

Expand All @@ -44,8 +44,8 @@ define private void @_ZN3Car5driveEi(ptr noundef nonnull align 8 dereferenceable
store ptr %0, ptr %this, align 8
store i32 %1, ptr %param, align 4
%3 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %3, i64 0, i32 1
store i1 true, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %3, i64 0, i32 1
store i1 true, ptr %driving.addr, align 1
ret void
}

Expand All @@ -54,8 +54,8 @@ define private i1 @_ZN3Car9isDrivingEv(ptr noundef nonnull align 8 dereferenceab
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
%3 = load i1, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
%3 = load i1, ptr %driving.addr, align 1
ret i1 %3
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@ define private fastcc void @_ZN3Car4ctorEv(ptr nocapture noundef nonnull writeon

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write)
define private void @_ZN3Car5driveEi(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(16) initializes((8, 9)) %0, i32 %1) #0 {
%driving_addr = getelementptr inbounds nuw i8, ptr %0, i64 8
store i1 true, ptr %driving_addr, align 8
%driving.addr = getelementptr inbounds nuw i8, ptr %0, i64 8
store i1 true, ptr %driving.addr, align 8
ret void
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read)
define private i1 @_ZN3Car9isDrivingEv(ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %0) #1 {
%driving_addr = getelementptr inbounds nuw i8, ptr %0, i64 8
%2 = load i1, ptr %driving_addr, align 8
%driving.addr = getelementptr inbounds nuw i8, ptr %0, i64 8
%2 = load i1, ptr %driving.addr, align 8
ret i1 %2
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ define private void @_ZN3Car4ctorEv(ptr noundef nonnull align 8 dereferenceable(
%3 = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
store i1 false, ptr %3, align 1
%4 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %4, i64 0, i32 1
store i1 false, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %4, i64 0, i32 1
store i1 false, ptr %driving.addr, align 1
ret void
}

Expand All @@ -36,8 +36,8 @@ define private void @_ZN3Car5driveEi(ptr noundef nonnull align 8 dereferenceable
store ptr %0, ptr %this, align 8
store i32 %1, ptr %param, align 4
%3 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %3, i64 0, i32 1
store i1 true, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %3, i64 0, i32 1
store i1 true, ptr %driving.addr, align 1
ret void
}

Expand All @@ -46,8 +46,8 @@ define private i1 @_ZN3Car9isDrivingEv(ptr noundef nonnull align 8 dereferenceab
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%driving_addr = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
%3 = load i1, ptr %driving_addr, align 1
%driving.addr = getelementptr inbounds %struct.Car, ptr %2, i64 0, i32 1
%3 = load i1, ptr %driving.addr, align 1
ret i1 %3
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ define private void @_ZN6Person4ctorEPKcPKcj(ptr noundef nonnull align 8 derefer
%8 = getelementptr inbounds %struct.Person, ptr %5, i64 0, i32 3
store i32 0, ptr %8, align 4
%9 = load ptr, ptr %this, align 8
%firstName_addr = getelementptr inbounds %struct.Person, ptr %9, i64 0, i32 1
%firstName.addr = getelementptr inbounds %struct.Person, ptr %9, i64 0, i32 1
%10 = load ptr, ptr %firstName, align 8
store ptr %10, ptr %firstName_addr, align 8
store ptr %10, ptr %firstName.addr, align 8
%11 = load ptr, ptr %this, align 8
%lastName_addr = getelementptr inbounds %struct.Person, ptr %11, i64 0, i32 2
%lastName.addr = getelementptr inbounds %struct.Person, ptr %11, i64 0, i32 2
%12 = load ptr, ptr %lastName, align 8
store ptr %12, ptr %lastName_addr, align 8
store ptr %12, ptr %lastName.addr, align 8
%13 = load ptr, ptr %this, align 8
%age_addr = getelementptr inbounds %struct.Person, ptr %13, i64 0, i32 3
%age.addr = getelementptr inbounds %struct.Person, ptr %13, i64 0, i32 3
%14 = load i32, ptr %age, align 4
store i32 %14, ptr %age_addr, align 4
store i32 %14, ptr %age.addr, align 4
ret void
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ define private void @_ZN9InnerTest4ctorEv(ptr noundef nonnull align 8 dereferenc
%3 = getelementptr inbounds %struct.InnerTest, ptr %2, i64 0, i32 1
store i32 0, ptr %3, align 4
%4 = load ptr, ptr %this, align 8
%a_addr = getelementptr inbounds %struct.InnerTest, ptr %4, i64 0, i32 1
store i32 0, ptr %a_addr, align 4
%a.addr = getelementptr inbounds %struct.InnerTest, ptr %4, i64 0, i32 1
store i32 0, ptr %a.addr, align 4
ret void
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ define private void @_ZN5Stamp5printEv(ptr noundef nonnull align 8 dereferenceab
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%value_addr = getelementptr inbounds %struct.Stamp, ptr %2, i64 0, i32 0
%3 = load double, ptr %value_addr, align 8
%value.addr = getelementptr inbounds %struct.Stamp, ptr %2, i64 0, i32 0
%3 = load double, ptr %value.addr, align 8
%4 = load ptr, ptr %this, align 8
%glued_addr = getelementptr inbounds %struct.Stamp, ptr %4, i64 0, i32 1
%5 = load i1, ptr %glued_addr, align 1
%glued.addr = getelementptr inbounds %struct.Stamp, ptr %4, i64 0, i32 1
%5 = load i1, ptr %glued.addr, align 1
%6 = zext i1 %5 to i32
%7 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.0, double %3, i32 %6)
ret void
Expand All @@ -30,8 +30,8 @@ define private %struct.Stamp @_ZN6Letter8getStampEv(ptr noundef nonnull align 8
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%stamp_addr = getelementptr inbounds %struct.Letter, ptr %2, i64 0, i32 1
%3 = load %struct.Stamp, ptr %stamp_addr, align 8
%stamp.addr = getelementptr inbounds %struct.Letter, ptr %2, i64 0, i32 1
%3 = load %struct.Stamp, ptr %stamp.addr, align 8
ret %struct.Stamp %3
}

Expand All @@ -42,9 +42,9 @@ define dso_local i32 @main() #1 {
%stamp = alloca %struct.Stamp, align 8
store i32 0, ptr %result, align 4
store %struct.Letter { ptr @anon.string.0, %struct.Stamp { double 3.400000e+00, i1 true } }, ptr %letter, align 8
%stamp_addr = getelementptr inbounds %struct.Letter, ptr %letter, i64 0, i32 1
%glued_addr = getelementptr inbounds %struct.Stamp, ptr %stamp_addr, i64 0, i32 1
%1 = load i1, ptr %glued_addr, align 1
%stamp.addr = getelementptr inbounds %struct.Letter, ptr %letter, i64 0, i32 1
%glued.addr = getelementptr inbounds %struct.Stamp, ptr %stamp.addr, i64 0, i32 1
%1 = load i1, ptr %glued.addr, align 1
%2 = zext i1 %1 to i32
%3 = call i32 (ptr, ...) @printf(ptr noundef @printf.str.1, i32 %2)
%4 = call %struct.Stamp @_ZN6Letter8getStampEv(ptr noundef nonnull align 8 dereferenceable(24) %letter)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,25 +33,25 @@ define private i32 @_ZN10TestStructIhE7getTestEv(ptr noundef nonnull align 4 der
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%test_addr = getelementptr inbounds %struct.TestStruct, ptr %2, i64 0, i32 1
%3 = load i32, ptr %test_addr, align 4
%test.addr = getelementptr inbounds %struct.TestStruct, ptr %2, i64 0, i32 1
%3 = load i32, ptr %test.addr, align 4
%4 = icmp eq i32 %3, 1
br i1 %4, label %if.then.L18, label %if.exit.L18

if.then.L18: ; preds = %1
%5 = load ptr, ptr %this, align 8
%test_addr1 = getelementptr inbounds %struct.TestStruct, ptr %5, i64 0, i32 1
%6 = load i32, ptr %test_addr1, align 4
%test.addr1 = getelementptr inbounds %struct.TestStruct, ptr %5, i64 0, i32 1
%6 = load i32, ptr %test.addr1, align 4
%7 = add nsw i32 %6, 1
store i32 %7, ptr %test_addr1, align 4
store i32 %7, ptr %test.addr1, align 4
%8 = load ptr, ptr %this, align 8
call void @_ZN10TestStructIhE9printTestEv(ptr noundef nonnull align 8 dereferenceable(8) %8)
br label %if.exit.L18

if.exit.L18: ; preds = %if.then.L18, %1
%9 = load ptr, ptr %this, align 8
%test_addr2 = getelementptr inbounds %struct.TestStruct, ptr %9, i64 0, i32 1
%10 = load i32, ptr %test_addr2, align 4
%test.addr2 = getelementptr inbounds %struct.TestStruct, ptr %9, i64 0, i32 1
%10 = load i32, ptr %test.addr2, align 4
ret i32 %10
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ define private ptr @_ZN6Letter10getContentEv(ptr noundef nonnull align 8 derefer
%this = alloca ptr, align 8
store ptr %0, ptr %this, align 8
%2 = load ptr, ptr %this, align 8
%content_addr = getelementptr inbounds %struct.Letter, ptr %2, i64 0, i32 0
%3 = load ptr, ptr %content_addr, align 8
%content.addr = getelementptr inbounds %struct.Letter, ptr %2, i64 0, i32 0
%3 = load ptr, ptr %content.addr, align 8
ret ptr %3
}

Expand All @@ -23,9 +23,9 @@ define private void @_ZN6Letter10setContentEPKc(ptr noundef nonnull align 8 dere
store ptr %0, ptr %this, align 8
store ptr %1, ptr %text, align 8
%3 = load ptr, ptr %this, align 8
%content_addr = getelementptr inbounds %struct.Letter, ptr %3, i64 0, i32 0
%content.addr = getelementptr inbounds %struct.Letter, ptr %3, i64 0, i32 0
%4 = load ptr, ptr %text, align 8
store ptr %4, ptr %content_addr, align 8
store ptr %4, ptr %content.addr, align 8
ret void
}

Expand Down
Loading

0 comments on commit b2f80ac

Please sign in to comment.