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.