Skip to content

Commit 0de3016

Browse files
committed
Use Explicit Alignment in CmpXchg Functions
Adapt to https://reviews.llvm.org/D97223
1 parent 2dfe355 commit 0de3016

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/IRGen/GenBuiltin.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -647,7 +647,8 @@ if (Builtin.ID == BuiltinValueKind::id) { \
647647
pointer = IGF.Builder.CreateBitCast(pointer,
648648
llvm::PointerType::getUnqual(cmp->getType()));
649649
llvm::Value *value = IGF.Builder.CreateAtomicCmpXchg(
650-
pointer, cmp, newval, successOrdering, failureOrdering,
650+
pointer, cmp, newval, llvm::MaybeAlign(),
651+
successOrdering, failureOrdering,
651652
isSingleThread ? llvm::SyncScope::SingleThread
652653
: llvm::SyncScope::System);
653654
cast<llvm::AtomicCmpXchgInst>(value)->setVolatile(isVolatile);
@@ -715,7 +716,7 @@ if (Builtin.ID == BuiltinValueKind::id) { \
715716
pointer = IGF.Builder.CreateBitCast(pointer,
716717
llvm::PointerType::getUnqual(val->getType()));
717718
llvm::Value *value = IGF.Builder.CreateAtomicRMW(
718-
SubOpcode, pointer, val, ordering,
719+
SubOpcode, pointer, val, llvm::MaybeAlign(), ordering,
719720
isSingleThread ? llvm::SyncScope::SingleThread
720721
: llvm::SyncScope::System);
721722
cast<AtomicRMWInst>(value)->setVolatile(isVolatile);

lib/IRGen/IRGenFunction.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -668,6 +668,7 @@ void IRGenFunction::emitAwaitAsyncContinuation(
668668
contAwaitSyncAddr->getType()->getPointerElementType(), 1);
669669
auto results = Builder.CreateAtomicCmpXchg(
670670
contAwaitSyncAddr, null, one,
671+
llvm::MaybeAlign(),
671672
llvm::AtomicOrdering::Release /*success ordering*/,
672673
llvm::AtomicOrdering::Acquire /* failure ordering */,
673674
llvm::SyncScope::System);
@@ -710,6 +711,7 @@ void IRGenFunction::emitAwaitAsyncContinuation(
710711

711712
auto results = Builder.CreateAtomicCmpXchg(
712713
contAwaitSyncAddr, null, one,
714+
llvm::MaybeAlign(),
713715
llvm::AtomicOrdering::Release /*success ordering*/,
714716
llvm::AtomicOrdering::Acquire /* failure ordering */,
715717
llvm::SyncScope::System);

0 commit comments

Comments
 (0)