From 3939b690f6b47860140292e89f1c6f506c20cb19 Mon Sep 17 00:00:00 2001 From: Jonas Paulsson Date: Thu, 7 Jan 2016 07:20:55 +0000 Subject: [PATCH] [SystemZ] Add hasSideEffects flag on Serialize instruction. Serialize will perform a hardware serialization operation, and is acting as a memory barrier. Therefore it must have the hasSideEffects flag set so it will be treated as a global memory object. Reviewed by Ulrich Weigand llvm-svn: 257036 --- llvm/lib/Target/SystemZ/SystemZInstrInfo.td | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td index b9f2eb5514a5..d5dabc2cd6ab 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.td @@ -1219,6 +1219,9 @@ def PFDRL : PrefetchRILPC<"pfdrl", 0xC62, z_prefetch>; // Atomic operations //===----------------------------------------------------------------------===// +// A serialization instruction that acts as a barrier for all memory +// accesses, which expands to "bcr 14, 0". +let hasSideEffects = 1 in def Serialize : Alias<2, (outs), (ins), [(z_serialize)]>; let Predicates = [FeatureInterlockedAccess1], Defs = [CC] in {