Skip to content
  1. Apr 18, 2010
  2. Apr 15, 2010
  3. Apr 14, 2010
  4. 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
  5. Apr 09, 2010
  6. Apr 08, 2010
  7. Apr 07, 2010
  8. 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
  9. Apr 04, 2010
  10. Apr 03, 2010
  11. Mar 29, 2010
    • Chris Lattner's avatar
      Switch pattern sorting predicate from stable sort -> sort, it · f91869b6
      Chris Lattner authored
      doesn't need to be stable because the patterns are fully ordered.
      
      Add a first level sort predicate that orders patterns in this
      order:  1) scalar integer operations 2) scalar floating point 
      3) vector int 4) vector float.  This is a trivial sort on their
      top level pattern type so it is nice and transitive.  The
      benefit of doing this is that simple integer operations are
      much more common than insane vector things and isel was trying
      to match the big complex vector patterns before the simple
      ones because the complexity of the vector operations was much
      higher.  Since they can't both match, it is best (for compile
      time) to try the simple integer ones first.
      
      This cuts down the # failed match attempts on real code by
      quite a bit, for example, this reduces backtracks on crafty
      (as a random example) from 228285 -> 188369.
      
      llvm-svn: 99797
      f91869b6
    • Chris Lattner's avatar
      revert 99795, as mentioned, it is disabled anyway. · 41a15141
      Chris Lattner authored
      llvm-svn: 99796
      41a15141
    • Chris Lattner's avatar
      Check in a (disabled) failed attempt to improve the ordering of · a7926015
      Chris Lattner authored
      patterns within the generated matcher.  This works great except
      that the sort fails because the relation defined isn't 
      transitive.  I have a much simpler solution coming next, but want
      to archive the code.
      
      llvm-svn: 99795
      a7926015
    • Chris Lattner's avatar
      print the complexity of the pattern being matched in the · 05925fe1
      Chris Lattner authored
      comment in the generated table.
      
      llvm-svn: 99794
      05925fe1
  12. Mar 28, 2010
  13. Mar 27, 2010
Loading