Skip to content
  1. Nov 06, 2010
  2. Oct 11, 2010
  3. Oct 09, 2010
  4. Sep 08, 2010
    • Jakob Stoklund Olesen's avatar
      Don't add <imp-def> operands during register rewriting. · 4d19d265
      Jakob Stoklund Olesen authored
      LiveIntervals already adds <imp-def> operands for super-registers when a subreg
      def defines the whole register. Thus, it is not necessary to do it again when
      rewriting.
      
      In fact, the super-register imp-defs caused miscompilations because the late
      scheduler couldn't see that the super-register was read.
      
      We still add super-reg <imp-use,kill> operands when rewriting virtuals to
      physicals.
      
      llvm-svn: 113299
      4d19d265
  5. Sep 03, 2010
  6. Aug 05, 2010
  7. Jul 27, 2010
  8. Jul 16, 2010
  9. Jul 12, 2010
  10. Jul 11, 2010
  11. Jul 09, 2010
  12. Jul 08, 2010
  13. Jun 25, 2010
  14. Jun 03, 2010
    • Jakob Stoklund Olesen's avatar
      Slightly change the meaning of the reMaterialize target hook when the original · a8ad9774
      Jakob Stoklund Olesen authored
      instruction defines subregisters.
      
      Any existing subreg indices on the original instruction are preserved or
      composed with the new subreg index.
      
      Also substitute multiple operands mentioning the original register by using the
      new MachineInstr::substituteRegister() function. This is necessary because there
      will soon be <imp-def> operands added to non read-modify-write partial
      definitions. This instruction:
      
        %reg1234:foo = FLAP %reg1234<imp-def>
      
      will reMaterialize(%reg3333, bar) like this:
      
        %reg3333:bar-foo = FLAP %reg333:bar<imp-def>
      
      Finally, replace the TargetRegisterInfo pointer argument with a reference to
      indicate that it cannot be NULL.
      
      llvm-svn: 105358
      a8ad9774
  15. May 21, 2010
    • Jakob Stoklund Olesen's avatar
      Teach VirtRegRewriter to handle spilling in instructions that have multiple · a648c6a7
      Jakob Stoklund Olesen authored
      definitions of the virtual register.
      
      This happens when spilling the registers produced by REG_SEQUENCE:
      
      %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0
      
      The rewriter would spill the register multiple times, dead store elimination
      tried to keep up, but ended up cutting the branch it was sitting on.
      
      llvm-svn: 104321
      a648c6a7
  16. May 11, 2010
  17. May 06, 2010
  18. Apr 29, 2010
  19. Apr 07, 2010
  20. Apr 06, 2010
  21. Mar 30, 2010
  22. Mar 26, 2010
  23. Mar 12, 2010
  24. Mar 11, 2010
  25. Feb 18, 2010
  26. Feb 13, 2010
    • Jakob Stoklund Olesen's avatar
      Fix PR6283. · b659c76c
      Jakob Stoklund Olesen authored
      When coalescing with a physreg, remember to add imp-def and imp-kill when
      dealing with sub-registers.
      
      Also fix a related bug in VirtRegRewriter where substitutePhysReg may
      reallocate the operand list on an instruction and invalidate the reg_iterator.
      This can happen when a register is mentioned twice on the same instruction.
      
      llvm-svn: 96072
      b659c76c
  27. Feb 10, 2010
  28. Feb 09, 2010
  29. Jan 06, 2010
  30. Jan 05, 2010
  31. Dec 03, 2009
  32. Nov 20, 2009
  33. Nov 18, 2009
Loading