Skip to content
  1. Jun 23, 2010
  2. Jun 17, 2010
  3. May 28, 2010
  4. May 05, 2010
  5. Apr 03, 2010
  6. Feb 24, 2010
  7. Feb 15, 2010
    • Chris Lattner's avatar
      Check in the first big step of rewriting DAGISelEmitter to · b02cdaaa
      Chris Lattner authored
      produce a table based matcher instead of gobs of C++ Code.
      
      Though it's not done yet, the shrinkage seems promising,
      the table for the X86 ISel is 75K and still has a lot of 
      optimization to come (compare to the ~1.5M of .o generated
      the old way, much of which will go away).
      
      The code is currently disabled by default (the #if 0 in
      DAGISelEmitter.cpp).  When enabled it generates a dead
      SelectCode2 function in the DAGISel Header which will
      eventually replace SelectCode.
      
      There is still a lot of stuff left to do, which are
      documented with a trail of FIXMEs.
      
      llvm-svn: 96215
      b02cdaaa
  8. Feb 09, 2010
  9. Jan 29, 2010
  10. Dec 19, 2009
    • Sean Callanan's avatar
      Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit · 04cc307e
      Sean Callanan authored
      incarnations), integrated into the MC framework.  
      
      The disassembler is table-driven, using a custom TableGen backend to 
      generate hierarchical tables optimized for fast decode.  The disassembler 
      consumes MemoryObjects and produces arrays of MCInsts, adhering to the 
      abstract base class MCDisassembler (llvm/MC/MCDisassembler.h).
      
      The disassembler is documented in detail in
      
      - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime)
      - utils/TableGen/DisassemblerEmitter.cpp (table emitter)
      
      You can test the disassembler by running llvm-mc -disassemble for i386
      or x86_64 targets.  Please let me know if you encounter any problems
      with it.
      
      llvm-svn: 91749
      04cc307e
  11. Nov 25, 2009
  12. Nov 19, 2009
  13. Jul 11, 2009
  14. Jun 21, 2009
  15. May 22, 2009
  16. Mar 16, 2009
  17. Mar 13, 2009
  18. Nov 03, 2008
    • Dan Gohman's avatar
      Change how extended types are represented in MVTs. Instead of fiddling · d7546abb
      Dan Gohman authored
      bits, use a union of a SimpleValueType enum and a regular Type*.
      
      This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits.
      In most cases, this doesn't add significant overhead. There are places
      in codegen that use arrays of MVTs, so these are now larger, but
      they're small in common cases.
      
      This eliminates restrictions on the size of integer types and vector
      types that can be represented in codegen. As the included testcase
      demonstrates, it's now possible to codegen very large add operations.
      There are still some complications with using very large types. PR2880
      is still open so they can't be used as return values on normal targets,
      there are no libcalls defined for very large integers so operations
      like multiply and divide aren't supported.
      
      This also introduces a minimal tablgen Type library, capable of
      handling IntegerType and VectorType. This will allow parts of
      TableGen that don't depend on using SimpleValueType values to handle
      arbitrary integer and vector types.
      
      llvm-svn: 58623
      d7546abb
  19. Sep 22, 2008
Loading