Skip to content

Commit 8136393

Browse files
authored
Merge pull request swiftlang#22298 from compnerd/order-in-the-court
IRGen: ensure ordering of instructions (NFC)
2 parents f9338f7 + 9f113d0 commit 8136393

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

lib/IRGen/GenExistential.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,10 +2108,9 @@ static llvm::Constant *getDeallocateBoxedOpaqueExistentialBufferFunction(
21082108
// Size = ((sizeof(HeapObject) + align) & ~align) + size
21092109
auto *heapHeaderSize = llvm::ConstantInt::get(
21102110
IGF.IGM.SizeTy, IGM.RefCountedStructSize.getValue());
2111-
size = Builder.CreateAdd(
2112-
Builder.CreateAnd(Builder.CreateAdd(heapHeaderSize, alignmentMask),
2113-
Builder.CreateNot(alignmentMask)),
2114-
size);
2111+
auto *Add = Builder.CreateAdd(heapHeaderSize, alignmentMask);
2112+
auto *Not = Builder.CreateNot(alignmentMask);
2113+
size = Builder.CreateAdd(Builder.CreateAnd(Add, Not), size);
21152114

21162115
// At least pointer aligned.
21172116
// AlignmentMask = alignmentMask | alignof(void*) - 1
@@ -2202,9 +2201,9 @@ getProjectBoxedOpaqueExistentialFunction(IRGenFunction &IGF,
22022201
// StartOffset = ((sizeof(HeapObject) + align) & ~align)
22032202
auto *heapHeaderSize = llvm::ConstantInt::get(
22042203
IGF.IGM.SizeTy, IGM.RefCountedStructSize.getValue());
2205-
auto *startOffset = Builder.CreateAnd(
2206-
Builder.CreateAdd(heapHeaderSize, alignmentMask),
2207-
Builder.CreateNot(alignmentMask));
2204+
auto *Add = Builder.CreateAdd(heapHeaderSize, alignmentMask);
2205+
auto *Not = Builder.CreateNot(alignmentMask);
2206+
auto *startOffset = Builder.CreateAnd(Add, Not);
22082207
auto *addressInBox =
22092208
IGF.emitByteOffsetGEP(boxReference, startOffset, IGM.OpaqueTy);
22102209
IGF.Builder.CreateRet(addressInBox);

0 commit comments

Comments
 (0)