Skip to content
  1. Mar 19, 2007
  2. Mar 18, 2007
  3. Mar 17, 2007
    • Evan Cheng's avatar
      Joining a live interval of a physical register with a virtual one can turn out · 7b2a0016
      Evan Cheng authored
      to be really bad. Once they are joined they are not broken apart. Also, physical
      intervals cannot be spilled!
      
      Added a heuristic as a workaround for this. Be careful coalescing with a
      physical register if the virtual register uses are "far". Check if there are
      uses in the same loop as the source (copy instruction). Check if it is in the
      loop preheader, etc.
      
      llvm-svn: 35134
      7b2a0016
  4. Mar 15, 2007
  5. Mar 03, 2007
    • Evan Cheng's avatar
      Watch out for cases like this: · 3fd72859
      Evan Cheng authored
      entry (0x8b056f0, LLVM BB @0x8b01b30, ID#0):
      Live Ins: %r0 %r1 %r2 %r3
              %reg1032 = tMOVrr %r3<kill>
              %reg1033 = tMOVri8 1
              %reg1034 = tMOVri8 0
              tCMPi8 %reg1029<kill>, 0
              tBcc mbb<entry,0x8b06a10>, 0
          Successors according to CFG: 0x8b06980 0x8b06a10
      
      entry (0x8b06980, LLVM BB @0x8b01b30, ID#12):
          Predecessors according to CFG: 0x8b056f0
              %reg1036 = tMOVrr %reg1034<kill>
          Successors according to CFG: 0x8b06a10
      
      entry (0x8b06a10, LLVM BB @0x8b01b30, ID#13):
          Predecessors according to CFG: 0x8b056f0 0x8b06980
              %reg1024<dead> = tMOVrr %reg1030<kill>
              ...
      
      reg1030 and r1 have already been joined. When reg1024 and reg1030 are joined,
      r1 live range from function entry to the tMOVrr instruction are dead. Eliminate
      r1 from the livein set of the entry BB, not the BB where the copy is.
      
      llvm-svn: 34866
      3fd72859
  6. Mar 02, 2007
  7. Mar 01, 2007
  8. Feb 26, 2007
  9. Feb 25, 2007
  10. Feb 23, 2007
  11. Feb 21, 2007
  12. Feb 19, 2007
  13. Feb 17, 2007
  14. Feb 15, 2007
  15. Feb 13, 2007
  16. Dec 19, 2006
  17. Dec 07, 2006
  18. Dec 06, 2006
  19. Dec 02, 2006
  20. Dec 01, 2006
  21. Nov 29, 2006
  22. Nov 16, 2006
  23. Nov 15, 2006
  24. Nov 10, 2006
  25. Nov 08, 2006
  26. Nov 07, 2006
  27. Nov 03, 2006
  28. Nov 02, 2006
    • Reid Spencer's avatar
      For PR786: · de46e484
      Reid Spencer authored
      Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
      fall out by removing unused variables. Remaining warnings have to do with
      unused functions (I didn't want to delete code without review) and unused
      variables in generated code. Maintainers should clean up the remaining
      issues when they see them. All changes pass DejaGnu tests and Olden.
      
      llvm-svn: 31380
      de46e484
  29. Sep 15, 2006
  30. Sep 05, 2006
    • Chris Lattner's avatar
      Fix a long-standing wart in the code generator: two-address instruction lowering · 13a5dcdd
      Chris Lattner authored
      actually *removes* one of the operands, instead of just assigning both operands
      the same register.  This make reasoning about instructions unnecessarily complex,
      because you need to know if you are before or after register allocation to match
      up operand #'s with the target description file.
      
      Changing this also gets rid of a bunch of hacky code in various places.
      
      This patch also includes changes to fold loads into cmp/test instructions in
      the X86 backend, along with a significant simplification to the X86 spill
      folding code.
      
      llvm-svn: 30108
      13a5dcdd
Loading