Skip to content
  1. Nov 29, 2010
  2. Oct 06, 2010
  3. Sep 03, 2010
    • David Greene's avatar
      · 2a9de4d8
      David Greene authored
      Generalize getFieldType to work on all TypedInits.  Add a couple of testcases from 
      Amaury Pouly.
      
      llvm-svn: 113010
      2a9de4d8
  4. Jun 23, 2010
    • Bruno Cardoso Lopes's avatar
      Fix a tblgen bug. · 30a28d65
      Bruno Cardoso Lopes authored
      Given the pattern below as an example:
      list<dag> Pattern = [(set RC:$dst, (v4f32 (shufp:src3 RC:$src1,
                                  (mem_frag addr:$src2))))];
      
      The right reference resolving should lead to:
      list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp:src3 VR128:$src1,
                                  (mem_frag addr:$src2))))];
      But was yielding:
      list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp VR128:$src1,
                                  (mem_frag addr:$src2))))];
      
      Fix this by passing the right name when creating a new DagInit node.
      
      llvm-svn: 106670
      30a28d65
  5. Jun 18, 2010
  6. Jun 17, 2010
  7. 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
  8. Mar 25, 2010
  9. Mar 18, 2010
  10. 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
  11. Dec 21, 2009
    • David Greene's avatar
      · dbf70742
      David Greene authored
      Fix a bug in !subst where TableGen would go and resubstitute text it had
      just substituted.  This could cause infinite looping in certain
      pathological cases.
      
      llvm-svn: 91843
      dbf70742
  12. Nov 24, 2009
  13. Nov 22, 2009
    • Bob Wilson's avatar
      Fix whitespace. · 7248f864
      Bob Wilson authored
      llvm-svn: 89582
      7248f864
    • Bob Wilson's avatar
      Fix pr5470. Tablegen handles template arguments by temporarily setting their · 67e6cab4
      Bob Wilson authored
      values, resolving references to them, and then removing the definitions.
      If a template argument is set to an undefined value, we need to resolve
      references to that argument to an explicit undefined value.  The current code
      leaves the reference to the template argument as it is, which causes an
      assertion failure later when the definition of the template argument is
      removed.
      
      llvm-svn: 89581
      67e6cab4
  14. Nov 21, 2009
  15. Oct 26, 2009
  16. Sep 18, 2009
  17. Aug 23, 2009
    • Daniel Dunbar's avatar
      Fix non-determinism in DAGISel emitter. · ced00815
      Daniel Dunbar authored
       - This manifested as non-determinism in the .inc output in rare cases (when two
         distinct patterns ended up being equivalent, which is rather rare). That
         meant the pattern matching was non-deterministic, which could eventually mean
         the code generator selected different instructions based on the arch.
      
       - It's probably worth making the DAGISel ensure a total ordering (or force the
         user to), but the simple fix here is to totally order the Record* maps based
         on a unique ID.
      
       - PR4672, PR4711.
      
      Yay:
      --
      ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum
      d1099ff34b21459a5a3e7021c225c080e6017ece  -
      --
      
      llvm-svn: 79846
      ced00815
  18. Jul 03, 2009
  19. Jun 30, 2009
    • David Greene's avatar
      · 371ca49b
      David Greene authored
      Remove commented code.
      
      llvm-svn: 74471
      371ca49b
  20. Jun 29, 2009
    • David Greene's avatar
      · efa19619
      David Greene authored
      Implement !cast<string>.
      
      llvm-svn: 74444
      efa19619
  21. 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
  22. Jun 08, 2009
    • David Greene's avatar
      · 8618f95c
      David Greene authored
      Make IntInits and ListInits typed.  This helps deduce types of !if and
      other operators.  For the rare cases where a list type cannot be
      deduced, provide a []<type> syntax, where <type> is the list element
      type.
      
      llvm-svn: 73078
      8618f95c
    • David Greene's avatar
      · b0354455
      David Greene authored
      Make !if short-circuit when possible.
      
      llvm-svn: 73076
      b0354455
    • David Greene's avatar
      · 07eba05a
      David Greene authored
      Add a !regmatch operator to do pattern matching in TableGen.
      
      llvm-svn: 73074
      07eba05a
  23. May 15, 2009
    • Nick Lewycky's avatar
      Fix warning. · 94298227
      Nick Lewycky authored
      llvm-svn: 71834
      94298227
    • 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
  24. 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
    • David Greene's avatar
      · 9d3febea
      David Greene authored
      Fix PR4207.
      
      If we're resolving a list element access and we're given a VarInit,
      return a new VarListElementInit referencing the VarInit.
      
      llvm-svn: 71787
      9d3febea
  25. 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
  26. 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
  27. 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
Loading