Skip to content
  • Chris Lattner's avatar
    fix a really nasty bug that Evan was tracking in SCCP. When resolving · adca6082
    Chris Lattner authored
    undefs in branches/switches, we have two cases: a branch on a literal
    undef or a branch on a symbolic value which is undef.  If we have a
    literal undef, the code was correct: forcing it to a constant is the
    right thing to do.
    
    If we have a branch on a symbolic value that is undef, we should force
    the symbolic value to a constant, which then makes the successor block
    live.  Forcing the condition of the branch to being a constant isn't 
    safe if later paths become live and the value becomes overdefined.  This
    is the case that 'forcedconstant' is designed to handle, so just use it.
    
    This fixes rdar://7765019 but there is no good testcase for this, the
    one I have is too insane to be useful in the future.
    
    llvm-svn: 100478
    adca6082
Loading