@@ -2108,10 +2108,9 @@ static llvm::Constant *getDeallocateBoxedOpaqueExistentialBufferFunction(
2108
2108
// Size = ((sizeof(HeapObject) + align) & ~align) + size
2109
2109
auto *heapHeaderSize = llvm::ConstantInt::get (
2110
2110
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);
2115
2114
2116
2115
// At least pointer aligned.
2117
2116
// AlignmentMask = alignmentMask | alignof(void*) - 1
@@ -2202,9 +2201,9 @@ getProjectBoxedOpaqueExistentialFunction(IRGenFunction &IGF,
2202
2201
// StartOffset = ((sizeof(HeapObject) + align) & ~align)
2203
2202
auto *heapHeaderSize = llvm::ConstantInt::get (
2204
2203
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 );
2208
2207
auto *addressInBox =
2209
2208
IGF.emitByteOffsetGEP (boxReference, startOffset, IGM.OpaqueTy );
2210
2209
IGF.Builder .CreateRet (addressInBox);
0 commit comments