https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104933

            Bug ID: 104933
           Summary: [nvptx] muniform-simt optimization: determine
                    inside/outside SIMT region at compile time
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

The switch -muniform-simt attempts to deal with a problem outside simt regions
by rewriting the instruction stream.

In the general case we don't know for an insn whether it's inside or outside an
simt region, so the reorg pass nvptx_reorg_uniform_simt rewrites all insns.

However, inside the simt regions, the rewrite should have no effect, and this
is done by maintaining predicates in some registers which have different values
inside and outside an simt region.

But for a function that contains SIMT entry/exit markers, we do known whether
an insn is inside or outside and SIMT region, and we could evaluate these
predicates at compile time, which might be more optimal, and might make the
code more readable.

Reply via email to