[Bug 80037] New: i965: Figure out how to remove copy-propagated MOV x, (abs)x

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Jun 14 14:28:22 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=80037

          Priority: medium
            Bug ID: 80037
          Assignee: idr at freedesktop.org
            Blocks: 77547
           Summary: i965: Figure out how to remove copy-propagated MOV x,
                    (abs)x
        QA Contact: intel-3d-bugs at lists.freedesktop.org
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: mattst88 at gmail.com
          Hardware: Other
            Status: NEW
           Version: unspecified
         Component: Drivers/DRI/i965
           Product: Mesa

Some psychonauts shaders do pow(abs(x), y), which generates

mov vgrf10:F, |vgrf10|:F
pow vgrf53:F, vgrf10:F, vgrf55:F

We copy propagate from the MOV into the POW:

mov vgrf10:F, |vgrf10|:F
pow vgrf53:F, |vgrf10|:F, vgrf55:F

but since vgrf10 is used after the MOV, dead code elimination isn't able to
recognize that it's no longer used and so we can't remove it.

We could probably handle this in copy-propagation. After copy-propagating a MOV
x, (abs)x instruction we'd check if its value has been propagated into all uses
of the MOV's destination, and if so remove the MOV.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20140614/afe74f90/attachment.html>


More information about the intel-3d-bugs mailing list