[llvm-bugs] [Bug 37568] New: [llvm-exegesis] Latency test code breaking register dependencies

via llvm-bugs llvm-bugs at lists.llvm.org
Wed May 23 10:28:41 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37568

            Bug ID: 37568
           Summary: [llvm-exegesis] Latency test code breaking register
                    dependencies
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: llvm-dev at redking.me.uk
                CC: andrea.dibiagio at gmail.com, clement.courbet at gmail.com,
                    craig.topper at gmail.com, gchatelet at google.com,
                    greg.bedwell at sony.com, llvm-bugs at lists.llvm.org,
                    matthew.davis at sony.com

I'm seeing llvm-exegesis report a number of instructions give far too fast
latency values as they are repeating source registers, which permits breaking
register dependencies in the frontend, this is most commonly for cases that are
guaranteed to generate zero/allbits results.

Search Agner (http://www.agner.org/optimize/microarchitecture.pdf) for
"Breaking dependency chains" and "Dependency-breaking instructions", these
instruction types include:

X86 Instructions:
XOR
SUB
SBB(depends on carry flag only) 
CMP

MMX/SSE/AVX Instructions:
PXOR/XORPS/XORPD
PANDN/ANDNPS/ANDNPD
PSUBx
PCMPEQx/PCMPGTx

Depending on the CPU this might include MMX/AVX1/AVX2 variants as well.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180523/3bbc1b48/attachment.html>


More information about the llvm-bugs mailing list