• Christoph Mallon's avatar
    arm, sparc: Place the initial IncSP directly after Start to avoid problems with endless loops. · 127a6ad9
    Christoph Mallon authored
    In case of endless loops, there is no user of Start, so the missing keeps walker keeps Start's results.
    Then the be_keep_if_unused() workaround does not trigger, because after rewiring the initial SP's users (here the Keep) to the IncSP it has one user.
    But the IncSP is placed after the Keep in the schedule.
    This either makes the verifier unhappy (arm) or gets erroneously removed by the dead nodes walker (sparc).
    This solution is not entierly correct, but is consistent with what the ia32 backend does.
    The correct solution would be a memory output for IncSP.
    127a6ad9