[PATCH] D28351: AMDGPU: Remove spurious out branches after a kill
    Nicolai Hähnle via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Fri Jan 13 06:15:06 PST 2017
    
    
  
nhaehnle added a comment.
The approach is unfortunately not correct in general as far as I can tell. Say you have
  SI_KILL_TERMINATOR ...
  S_BRANCH BB#other
BB#next:
To be honest, it looks to me like this is a bug (or at least a serious brittleness) in the code anyway, and we're probably getting lucky because the block ordering code lays blocks out in a way that works well for us. What I mean is that AFAIU, this will first become:
  V_CMPX
  S_CBRANCH_EXECNZ BB#next
  S_BRANCH BB#other
skip_block:
  EXP
  S_ENDPGM
BB#next:
... and then your change would remove the branch to BB#other.
https://reviews.llvm.org/D28351
    
    
More information about the llvm-commits
mailing list