[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
llvm-svn: 319905
This commit is contained in:
Jonas Paulsson 2017-12-06 17:01:08 +00:00
parent cebac48bf7
commit a74ff71a37
2 changed files with 2 additions and 3 deletions

View File

@ -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], []>;

View File

@ -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>;