Skip to content
  1. Oct 06, 2010
  2. Sep 27, 2010
  3. Jan 05, 2010
    • David Greene's avatar
      · 297bfe6d
      David Greene authored
      Add an !eq() operator to TableGen.  It operates on strings only.
      Use !cast<string>() to compare other types of objects.
      
      llvm-svn: 92754
      297bfe6d
  4. Jul 03, 2009
  5. Jun 30, 2009
    • Daniel Dunbar's avatar
      Normalize SourceMgr messages. · c9dc78ae
      Daniel Dunbar authored
       - Don't print "Parsing" in front of every message.
      
       - Take additional "type" argument which is prepended to the message (with ": ")
         if given.
      
       - Update clients to print errors (warnings) as:
      <filename>:<line number>: error(warning): ...
      
      llvm-svn: 74489
      c9dc78ae
  6. Jun 21, 2009
  7. Jun 09, 2009
    • David Greene's avatar
      · 58a6b76c
      David Greene authored
      Revert 73074 and 73099 because Windows doesn't have POSIX
      regular expressions.  We will add an OpenBSD implementation
      and re-apply ASAP.
      
      llvm-svn: 73138
      58a6b76c
    • David Greene's avatar
      · 67c05bff
      David Greene authored
      Add a !patsubst operator.  Use on string types.
      
      llvm-svn: 73099
      67c05bff
  8. Jun 08, 2009
    • David Greene's avatar
      · 07eba05a
      David Greene authored
      Add a !regmatch operator to do pattern matching in TableGen.
      
      llvm-svn: 73074
      07eba05a
  9. May 15, 2009
    • David Greene's avatar
      · 3587eed2
      David Greene authored
      Implement !if, analogous to $(if) in GNU make.
      
      llvm-svn: 71815
      3587eed2
    • 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
  10. 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
  11. May 05, 2009
    • David Greene's avatar
      · 44f9d7a8
      David Greene authored
      Allow multiclass def names to contain "#NAME"" where TableGen replaces
      #NAME# with the name of the defm instantiating the multiclass.  This is
      useful for AVX instruction naming where a "V" prefix is standard
      throughout the ISA.  For example:
      
      multiclass SSE_AVX_Inst<...> {
         def SS : Instr<...>;
         def SD : Instr<...>;
         def PS : Instr<...>;
         def PD : Instr<...>;
      
         def V#NAME#SS : Instr<...>;
         def V#NAME#SD : Instr<...>;
         def V#NAME#PS : Instr<...>;
         def V#NAME#PD : Instr<...>;
      }
      
      defm ADD : SSE_AVX_Inst<...>;
      
      Results in 
      
      ADDSS
      ADDSD
      ADDPS
      ADDPD
      
      VADDSS
      VADDSD
      VADDPS
      VADDPD
      
      llvm-svn: 70979
      44f9d7a8
  12. 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
  13. Mar 13, 2009
  14. 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
  15. Oct 08, 2008
  16. Apr 01, 2008
  17. Feb 20, 2008
  18. Dec 29, 2007
  19. Nov 22, 2007
  20. Nov 21, 2007
    • Chuck Rose III's avatar
    • Chuck Rose III's avatar
      This change does a couple of things. First it gets the Visual Studio builds working. · 07b57d26
      Chuck Rose III authored
      I added the lexing files to the VStudio projects and removed the .l files from the 
      VStudio projects.  There was a problem with use of strtoll in TGLexer.cpp and Chris
      suggested switching to strtol, so that's included here.
      
      Additionally, this checkin adds minimal x64 builds to the VStudio builds.  Build issues
      related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc
      are worked around, but not ultimately solved.  Binaries used to be stored in
      
      ...\win32\{Debug|Release}
      
      but are now kept in
      
      ...\win32\bin\{win32|x64}\{Debug|Release}
      
      intermediate files will continue to be stored in the individual project directories under 
      win32.  
      
      Some names will likely change in the future to reflect that the vstudio projects
      are no longer 32-bit only, but I wanted to get things up and running today so kept away
      from bigger restructuring.
      
      llvm-svn: 44260
      07b57d26
  21. Nov 19, 2007
  22. Nov 18, 2007
Loading