[llvm] r319905 - [SystemZ] Add IntrWriteMem flag to int_s390_tabort intrinsic

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 09:01:08 PST 2017


Author: jonpa
Date: Wed Dec  6 09:01:08 2017
New Revision: 319905

URL: http://llvm.org/viewvc/llvm-project?rev=319905&view=rev
Log:
[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

Modified:
    llvm/trunk/include/llvm/IR/IntrinsicsSystemZ.td
    llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td

Modified: llvm/trunk/include/llvm/IR/IntrinsicsSystemZ.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IntrinsicsSystemZ.td?rev=319905&r1=319904&r2=319905&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/IntrinsicsSystemZ.td (original)
+++ llvm/trunk/include/llvm/IR/IntrinsicsSystemZ.td Wed Dec  6 09:01:08 2017
@@ -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], []>;

Modified: llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td?rev=319905&r1=319904&r2=319905&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZInstrInfo.td Wed Dec  6 09:01:08 2017
@@ -1944,8 +1944,7 @@ let hasSideEffects = 1, Predicates = [Fe
     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>;
 




More information about the llvm-commits mailing list