[PATCH] D19985: [Kryo] Use immediate #0 to zero a register

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 11 16:29:21 PDT 2016


> On Jul 11, 2016, at 4:09 PM, Haicheng Wu <haicheng at codeaurora.org> wrote:
> 
> haicheng added a comment.
> 
> Thank you, Matthias.
> 
> Another thing about Cyclone's ZCZeroing feature is AArch64InstrInfo::isGPRZero() which I believe is only used by Cyclone.  This function returns true for COPY WZR but not COPY XZR.  I don't know if it is intentional or a mistake.
As far as I can see this function is only used in the cyclone scheduling model. I believe that contrary to its name it is not supposed to recognize all instructions producing zero but just the ones that the cyclone decoder recognizes as such. I currently can't find a section in the cyclone manual that mentions the And/Copy cases handled by isGPRZero() but I may be missing something or have an old version.

In any case you shouldn't worry about this function, longer term it would probably be good to find a way to implement a new class per scheduling model so we can have a custom isCheapAsAMove, isGPRZero(), etc. functions per scheduling model.

- Matthias



More information about the llvm-commits mailing list