Skip to content
  1. Nov 02, 2010
  2. Nov 01, 2010
  3. Sep 21, 2010
    • Chris Lattner's avatar
      fix a long standing wart: all the ComplexPattern's were being · 0e023ea0
      Chris Lattner authored
      passed the root of the match, even though only a few patterns
      actually needed this (one in X86, several in ARM [which should
      be refactored anyway], and some in CellSPU that I don't feel 
      like detangling).   Instead of requiring all ComplexPatterns to
      take the dead root, have targets opt into getting the root by
      putting SDNPWantRoot on the ComplexPattern.
      
      llvm-svn: 114471
      0e023ea0
  4. Sep 07, 2010
  5. Aug 06, 2010
  6. Jul 17, 2010
  7. Jul 03, 2010
  8. Jul 02, 2010
  9. May 26, 2010
  10. May 24, 2010
  11. May 14, 2010
  12. May 01, 2010
    • Evan Cheng's avatar
      Add a pseudo instruction REG_SEQUENCE that takes a list of registers and · 66561537
      Evan Cheng authored
      sub-register indices and outputs a single super register which is formed from
      a consecutive sequence of registers.
      
      This is used as register allocation / coalescing aid and it is useful to
      represent instructions that output register pairs / quads. For example,
      v1024, v1025 = vload <address>
      where v1024 and v1025 forms a register pair.
      
      This really should be modelled as
      v1024<3>, v1025<4> = vload <address>
      but it would violate SSA property before register allocation is done.
      
      Currently we use insert_subreg to form the super register:
      v1026 = implicit_def
      v1027 - insert_subreg v1026, v1024, 3
      v1028 = insert_subreg v1027, v1025, 4
      ...
            = use v1024
            = use v1028
      
      But this adds pseudo live interval overlap between v1024 and v1025.
      
      We can now modeled it as
      v1024, v1025 = vload <address>
      v1026 = REG_SEQUENCE v1024, 3, v1025, 4
      ...
            = use v1024
            = use v1026
      
      After coalescing, it will be
      v1026<3>, v1025<4> = vload <address>
      ...
            = use v1026<3>
            = use v1026
      
      llvm-svn: 102815
      66561537
  13. Mar 27, 2010
  14. Mar 24, 2010
  15. Mar 22, 2010
  16. Mar 20, 2010
  17. Mar 19, 2010
  18. Mar 15, 2010
    • Chris Lattner's avatar
      Completely rewrite tblgen's type inference mechanism, · cabe037b
      Chris Lattner authored
      changing the primary datastructure from being a 
      "std::vector<unsigned char>" to being a new TypeSet class
      that actually has (gasp) invariants!
      
      This changes more things than I remember, but one major
      innovation here is that it enforces that named input 
      values agree in type with their output values.
      
      This also eliminates code that transparently assumes (in 
      some cases) that SDNodeXForm input/output types are the
      same, because this is wrong in many case.
      
      This also eliminates a bug which caused a lot of ambiguous
      patterns to go undetected, where a register class would
      sometimes pick the first possible type, causing an
      ambiguous pattern to get arbitrary results.
      
      With all the recent target changes, this causes no 
      functionality change!
      
      llvm-svn: 98534
      cabe037b
  19. Feb 09, 2010
  20. Jan 15, 2010
  21. Jan 09, 2010
  22. Jan 04, 2010
  23. Sep 28, 2009
  24. Aug 11, 2009
  25. Jul 29, 2009
  26. Jul 15, 2009
  27. Jul 14, 2009
Loading