Skip to content
  1. May 15, 2009
    • David Greene's avatar
      · d571b3c9
      David Greene authored
      Graduate LLVM to the big leagues by embedding a LISP processor into TableGen.
      
      Ok, not really, but do support some common LISP functions:
      
      * car
      * cdr
      * null
      
      llvm-svn: 71805
      d571b3c9
    • David Greene's avatar
      · e917fff3
      David Greene authored
      Implement a !foreach operator analogous to GNU make's $(foreach).
      Use it on dags and lists like this:
      
      class decls {
        string name;
      }
      
      def Decls : decls;
      
      class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>;
      
      llvm-svn: 71803
      e917fff3
  2. May 14, 2009
    • David Greene's avatar
      · 98ed3c72
      David Greene authored
      Implement a !subst operation simmilar to $(subst) in GNU make to do
      def/var/string substitution on generic pattern templates.  For example:
      
      def Type;
      def v4f32 : Type;
      def TYPE : Type;
      
      class GenType<Type t> {
        let type = !(subst TYPE, v4f32, t);
      }
      
      def TheType : GenType<TYPE>;
      
      llvm-svn: 71801
      98ed3c72
    • David Greene's avatar
      · e8f3b27e
      David Greene authored
      Implement !cast.
      
      llvm-svn: 71794
      e8f3b27e
    • David Greene's avatar
      · 5d0c051e
      David Greene authored
      Operation Enhancements
      
      Create an OpInit class to serve as a base for all operation Inits.
      
      Move parsing of operation constructs to separate functions and reference
      from multiple places.
      
      Add some commented out new operations.  Coming soon.
      
      llvm-svn: 71789
      5d0c051e
  3. Apr 30, 2009
  4. Apr 24, 2009
    • David Greene's avatar
      · 7049e79e
      David Greene authored
      Fix multiclass inheritance to limit value resolution to new defs added
      by base multiclasses.  Do not attempt to alter defs from previous base
      multiclasses.  This fixes multiple multiclass inheritance.
      
      llvm-svn: 69974
      7049e79e
  5. Apr 23, 2009
    • David Greene's avatar
      · 196ac3c6
      David Greene authored
      Make BinOps typed and require a type specifier for !nameconcat.  This
      allows binops to be used in typed contexts such as when passing
      arguments to classes.
      
      llvm-svn: 69921
      196ac3c6
  6. Apr 22, 2009
    • David Greene's avatar
      · a9c6c5d3
      David Greene authored
      Implement !nameconcat to concatenate strings and look up the resulting
      name in the symbol table, returning an object.
      
      llvm-svn: 69822
      a9c6c5d3
  7. Mar 19, 2009
  8. Mar 13, 2009
    • Ted Kremenek's avatar
      Further constify Record::isSubClassOf. · 58e32877
      Ted Kremenek authored
      llvm-svn: 66970
      58e32877
    • Chris Lattner's avatar
      add a new TGError class and use it to propagate location info with · ba42e49c
      Chris Lattner authored
      errors when thrown.  This gets us nice errors like this from tblgen:
      
      CMOVL32rr: 	(set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
      /Users/sabre/llvm/Debug/bin/tblgen: error:
      Included from X86.td:116:
      Parsing X86InstrInfo.td:922: In CMOVL32rr: X86cmov node requires exactly 4 operands!
      def CMOVL32rr : I<0x4C, MRMSrcReg,       // if <s, GR32 = GR32
      ^
      
      instead of just:
      
      CMOVL32rr: 	(set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2))
      /Users/sabre/llvm/Debug/bin/tblgen: In CMOVL32rr: X86cmov node requires exactly 4 operands!
      
      This is all I plan to do with this, but it should be easy enough to improve if anyone 
      cares (e.g. keeping more loc info in "dag" expr records in tblgen.
      
      llvm-svn: 66898
      ba42e49c
    • Chris Lattner's avatar
      give each Record a location. · bd9b9210
      Chris Lattner authored
      llvm-svn: 66897
      bd9b9210
  9. Oct 22, 2008
  10. Oct 17, 2008
    • Dan Gohman's avatar
      Fun x86 encoding tricks: when adding an immediate value of 128, · ca0546fa
      Dan Gohman authored
      use a SUB instruction instead of an ADD, because -128 can be
      encoded in an 8-bit signed immediate field, while +128 can't be.
      This avoids the need for a 32-bit immediate field in this case.
      
      A similar optimization applies to 64-bit adds with 0x80000000,
      with the 32-bit signed immediate field.
      
      To support this, teach tablegen how to handle 64-bit constants.
      
      llvm-svn: 57663
      ca0546fa
  11. Sep 11, 2008
  12. Aug 26, 2008
  13. Jul 07, 2008
  14. Mar 25, 2008
  15. Jan 22, 2008
  16. Jan 21, 2008
  17. Dec 29, 2007
  18. Nov 22, 2007
  19. Nov 20, 2007
  20. Nov 11, 2007
  21. May 15, 2007
  22. Feb 27, 2007
  23. Dec 07, 2006
  24. Aug 28, 2006
  25. Mar 31, 2006
  26. Jan 31, 2006
  27. Oct 29, 2005
  28. Oct 28, 2005
  29. Sep 13, 2005
  30. Aug 19, 2005
Loading