Skip to content
  • Eric Anholt's avatar
    glsl2: Do ir_if_return on the way out, not the way in. · 0cf545ec
    Eric Anholt authored
    The problem with doing it on the way in is that for a function with
    multiple early returns, we'll move an outer block in, then restart the
    pass, then move the two inside returns out, then never move outer
    blocks in again because the remaining early returns are inside an else
    block and they don't know that there's a return just after their
    block.  By going inside-out, we get the early returns stacked up so
    that they all move out with a series of
    move_returns_after_block().
    
    Fixes (on i965):
    glsl-fs-raytrace-bug27060
    glsl-vs-raytrace-bug26691
    0cf545ec