Skip to content
  • Dan Gohman's avatar
    Fix a bug in LoopStrengthReduce that caused it to emit IR with · 0a0fa7cf
    Dan Gohman authored
    use-before-def. The problem comes up in code with multiple PHIs where
    one PHI is being rewritten in terms of the other, but the other needs
    to be casted first. LLVM rules requre the cast instruction to be
    inserted after any PHI instructions, but when instructions were
    inserted to replace the second PHI value with a function of the first,
    they were ended up going before the cast instruction. Avoid this
    problem by remembering the location of the cast instruction, when one
    is needed, and inserting the expansion of the new value after it.
    
    This fixes a bug that surfaced in 255.vortex on x86-64 when
    instcombine was removed from the middle of the loop optimization
    passes. 
    
    llvm-svn: 51169
    0a0fa7cf
Loading