[llvm-dev] [RFC] [X86] Emit unaligned vector moves on avx machine with option control.

via llvm-dev llvm-dev at lists.llvm.org
Thu Apr 15 08:54:44 PDT 2021


I’ve debated whether to chime in, and decided it can’t hurt.

Sony had to do a similar downstream patch for PS4.  Our use-case is pretty constrained, though.  There’s only one toolchain, there’s only one target chip, so we don’t have any portability considerations to think about.  What we do have are games shipping on DVD that can’t be re-released and can’t even necessarily be patched, and a strict backward compatibility requirement.  So, if there’s a game out there that didn’t happen to follow all the alignment requirements, and it worked on console version 1.00, it still has to be working on version 100.00.  (FTR, we’re currently on about 8.00.)

I don’t think we ever seriously considered upstreaming our patch.  The circumstances where it’s really necessary do exist, but are pretty limited.

I don’t think arguments of the form “it’s okay because X Y and Z” are going to be persuasive.  “We have this situation in the following circumstances” might help people understand.
--paulr

From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Luo, Yuanke via llvm-dev
Sent: Thursday, April 15, 2021 10:07 AM
To: James Y Knight <jyknight at google.com>; Liu, Chen3 <chen3.liu at intel.com>
Cc: llvm-dev at lists.llvm.org; Maslov, Sergey V <sergey.v.maslov at intel.com>
Subject: Re: [llvm-dev] [RFC] [X86] Emit unaligned vector moves on avx machine with option control.

Yes, replacing aligned move instruction with unaligned move instruction doesn’t solve all the issue that happens in optimization pipeline, but it doesn’t make things worse. One advantage for unaligned move is that it makes the behavior the same no matter the mov instruction is folded or not. Do you think it is worth to support this feature if compiler can help users avoid changing their complex legacy code?

Thanks
Yuanke


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210415/d7dda98c/attachment.html>


More information about the llvm-dev mailing list