Skip to content
  1. May 20, 2010
  2. May 18, 2010
  3. May 14, 2010
  4. May 13, 2010
  5. May 12, 2010
  6. May 11, 2010
  7. May 06, 2010
  8. May 05, 2010
  9. May 04, 2010
  10. May 03, 2010
  11. 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
  12. Apr 29, 2010
  13. Apr 28, 2010
  14. Apr 24, 2010
  15. Apr 20, 2010
  16. Apr 18, 2010
  17. Apr 15, 2010
Loading