[all-commits] [llvm/llvm-project] b0f0dd: [LLVM][Uniformity] Propagate temporal divergence e...

Sameer Sahasrabuddhe via All-commits all-commits at lists.llvm.org
Mon May 15 07:48:53 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b0f0dd2554c726e5192ad8c98fb7a2f08c37994c
      https://github.com/llvm/llvm-project/commit/b0f0dd2554c726e5192ad8c98fb7a2f08c37994c
  Author: Sameer Sahasrabuddhe <sameer.sahasrabuddhe at amd.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M llvm/include/llvm/ADT/GenericUniformityImpl.h
    M llvm/lib/Analysis/UniformityAnalysis.cpp
    M llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/temporal_diverge.ll

  Log Message:
  -----------
  [LLVM][Uniformity] Propagate temporal divergence explicitly

At a cycle C with divergent exits, UA was using a naive traversal of the exiting
edges to locate blocks that may use values defined inside C. But this traversal
fails when it encounters a cycle. This is now replaced with a much simpler
propagation that iterates over every instruction in C and checks any uses that
are outside C. But such an iteration can be expensive when C is very large; the
original strategy may need to be reconsidered if there is a regression in
compilation times.

Also fixed lit tests that should have originally caught the missed propagation
of temporal divergence.

Reviewed By: foad

Differential Revision: https://reviews.llvm.org/D149646




More information about the All-commits mailing list