Cameron McInally via llvm-dev
2016-Feb-05 16:16 UTC
[llvm-dev] [AVX512] KNL 1-byte mask spills/reloads are too wide
Hey guys, I'm working off an older post LLVM 3.7 snapshot and noticed that KNL 1-byte mask spills+reloads are spilling too wide. The spiller reserves 1-byte for the stack slot, but the move instruction is moving 2-bytes of data around. This obviously clobbers neighboring stack slots. kmovw %k1, 767(%rsp) # [scrubbed]:[scrubbed] # 1-byte Folded Spill We only have the KMOVW instruction on KNL to load/store mask registers, which is why we're moving 2-bytes of data. Seems like the spilling code should be updated to compensate for the extra byte. Is this a known problem in 3.7? Has a fix been submitted already? Thanks guys, Cameron
Demikhovsky, Elena via llvm-dev
2016-Feb-10 14:14 UTC
[llvm-dev] [AVX512] KNL 1-byte mask spills/reloads are too wide
Hi Cameron, Send me, please, the whole test case, if you can. Or open a bug in Bugzilla with attachment.> Is this a known problem in 3.7?Nobody complained yet. I suppose that we don't have too many clients for AVX-512 right now.> Has a fix been submitted already?No, the bug is still there. We'll fix it. Thank you. - Elena -----Original Message----- From: Cameron McInally [mailto:cameron.mcinally at nyu.edu] Sent: Friday, February 05, 2016 18:17 To: llvm-dev at lists.llvm.org Cc: Demikhovsky, Elena <elena.demikhovsky at intel.com>; Badouh, Asaf <asaf.badouh at intel.com>; Breger, Igor <igor.breger at intel.com>; Zuckerman, Michael <michael.zuckerman at intel.com> Subject: [AVX512] KNL 1-byte mask spills/reloads are too wide Hey guys, I'm working off an older post LLVM 3.7 snapshot and noticed that KNL 1-byte mask spills+reloads are spilling too wide. The spiller reserves 1-byte for the stack slot, but the move instruction is moving 2-bytes of data around. This obviously clobbers neighboring stack slots. kmovw %k1, 767(%rsp) # [scrubbed]:[scrubbed] # 1-byte Folded Spill We only have the KMOVW instruction on KNL to load/store mask registers, which is why we're moving 2-bytes of data. Seems like the spilling code should be updated to compensate for the extra byte. Is this a known problem in 3.7? Has a fix been submitted already? Thanks guys, Cameron --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.