Skip to content
  1. Jun 25, 2012
    • Jakob Stoklund Olesen's avatar
      Teach PHIElimination to handle <undef> operands. · 70ed924e
      Jakob Stoklund Olesen authored
      When a PHI use is <undef>, don't emit a copy in the predecessor block,
      but insert an IMPLICIT_DEF instruction instead. This ensures that
      virtual register uses are always jointly dominated by defs, even if some
      of them are IMPLICIT_DEF.
      
      llvm-svn: 159121
      70ed924e
    • Jakob Stoklund Olesen's avatar
      Handle <undef> operands in TwoAddressInstructionPass. · 6b556f82
      Jakob Stoklund Olesen authored
      When the source register to a 2-addr instruction is undefined, there is
      no need to attempt any transformations - simply replace the source
      register with the destination register.
      
      This also comes up when lowering IMPLICIT_DEF instructions - make sure
      the <undef> flag is moved to the new partial register def operand:
      
        %vreg8<def> = INSERT_SUBREG %vreg9<undef>, %vreg0<kill>, sub_16bit
      rewrite undef:
        %vreg8<def> = INSERT_SUBREG %vreg8<undef>, %vreg0<kill>, sub_16bit
      convert to:
        %vreg8:sub_16bit<def,read-undef> = COPY %vreg0<kill>
      
      llvm-svn: 159120
      6b556f82
  2. Jun 24, 2012
  3. Jun 23, 2012
Loading