Skip to content
  1. May 18, 2010
  2. May 14, 2010
  3. May 13, 2010
  4. May 12, 2010
  5. May 11, 2010
  6. May 06, 2010
  7. May 05, 2010
  8. May 04, 2010
  9. 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
  10. Apr 24, 2010
  11. Apr 20, 2010
  12. Apr 18, 2010
  13. Apr 15, 2010
  14. Apr 14, 2010
  15. Apr 13, 2010
    • Sean Callanan's avatar
      Fixed a nasty layering violation in the edis source · 814e69b1
      Sean Callanan authored
      code.  It used to #include the enhanced disassembly
      information for the targets it supported straight
      out of lib/Target/{X86,ARM,...} but now it uses a
      new interface provided by MCDisassembler, and (so
      far) implemented by X86 and ARM.
      
      Also removed hacky #define-controlled initialization
      of targets in edis.  If clients only want edis to
      initialize a limited set of targets, they can set
      --enable-targets on the configure command line.
      
      llvm-svn: 101179
      814e69b1
  16. Apr 09, 2010
  17. Apr 08, 2010
  18. Apr 07, 2010
  19. Apr 05, 2010
    • Jakob Stoklund Olesen's avatar
      Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field. · b93331f3
      Jakob Stoklund Olesen authored
      When a target instruction wants to set target-specific flags, it should simply
      set bits in the TSFlags bit vector defined in the Instruction TableGen class.
      
      This works well because TableGen resolves member references late:
      
      class I : Instruction {
        AddrMode AM = AddrModeNone;
        let TSFlags{3-0} = AM.Value;
      }
      
      let AM = AddrMode4 in
      def ADD : I;
      
      TSFlags gets the expected bits from AddrMode4 in this example.
      
      llvm-svn: 100384
      b93331f3
  20. Apr 04, 2010
  21. Apr 03, 2010
Loading