From: Jonas Paulsson Date: Wed, 6 Dec 2017 17:01:08 +0000 (+0000) Subject: [SystemZ] Add IntrWriteMem flag to int_s390_tabort intrinsic X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=30480eca8294f671e0ba7d1966849136469473d9;p=llvm [SystemZ] Add IntrWriteMem flag to int_s390_tabort intrinsic Tabort (transaction abort) does not load from memory. mayLoad flag removed from corresponding TABORT machine instruction. Review: Ulrich Weigand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319905 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/IntrinsicsSystemZ.td b/include/llvm/IR/IntrinsicsSystemZ.td index 8c078a629e1..caa2ec209a3 100644 --- a/include/llvm/IR/IntrinsicsSystemZ.td +++ b/include/llvm/IR/IntrinsicsSystemZ.td @@ -208,7 +208,7 @@ let TargetPrefix = "s390" in { [IntrNoDuplicate, IntrWriteMem]>; def int_s390_tabort : Intrinsic<[], [llvm_i64_ty], - [IntrNoReturn, Throws]>; + [IntrNoReturn, Throws, IntrWriteMem]>; def int_s390_tend : GCCBuiltin<"__builtin_tend">, Intrinsic<[llvm_i32_ty], []>; diff --git a/lib/Target/SystemZ/SystemZInstrInfo.td b/lib/Target/SystemZ/SystemZInstrInfo.td index 87462c1d681..abb804597f4 100644 --- a/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/lib/Target/SystemZ/SystemZInstrInfo.td @@ -1944,8 +1944,7 @@ let hasSideEffects = 1, Predicates = [FeatureTransactionalExecution] in { def TEND : SideEffectInherentS<"tend", 0xB2F8, z_tend>; // Transaction Abort - // TODO: Shouldn't be mayLoad or mayStore. - let isTerminator = 1, isBarrier = 1, mayLoad = 1, mayStore = 1, + let isTerminator = 1, isBarrier = 1, mayStore = 1, hasSideEffects = 1 in def TABORT : SideEffectAddressS<"tabort", 0xB2FC, int_s390_tabort>;