PKGBUILDs/community/ldc/keep-default-alignment-for-atomic-instructions.patch
2021-11-13 16:28:02 +00:00

32 lines
1.3 KiB
Diff

From 7e80c26eded0326e18aad2c9f906844eb0f46dc0 Mon Sep 17 00:00:00 2001
From: Martin Kinkelin <noone@nowhere.com>
Date: Wed, 6 Oct 2021 18:47:28 +0200
Subject: [PATCH] Keep default alignment for atomic instructions, for LLVM 13+
too
---
gen/tocall.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gen/tocall.cpp b/gen/tocall.cpp
index 385133015b..28967a64c3 100644
--- a/gen/tocall.cpp
+++ b/gen/tocall.cpp
@@ -511,7 +511,7 @@ bool DtoLowerMagicIntrinsic(IRState *p, FuncDeclaration *fndecl, CallExp *e,
auto ret =
p->ir->CreateAtomicCmpXchg(ptr, cmp, val,
#if LDC_LLVM_VER >= 1300
- LLMaybeAlign(getABITypeAlign(val->getType())),
+ llvm::MaybeAlign(), // default alignment
#endif
successOrdering, failureOrdering);
ret->setWeak(isWeak);
@@ -559,7 +559,7 @@ bool DtoLowerMagicIntrinsic(IRState *p, FuncDeclaration *fndecl, CallExp *e,
LLValue *ret =
p->ir->CreateAtomicRMW(llvm::AtomicRMWInst::BinOp(op), ptr, val,
#if LDC_LLVM_VER >= 1300
- LLMaybeAlign(getABITypeAlign(val->getType())),
+ llvm::MaybeAlign(), // default alignment
#endif
llvm::AtomicOrdering(atomicOrdering));
result = new DImValue(exp2->type, ret);