- Nov 29, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120298
-
- Oct 06, 2010
-
-
Chris Lattner authored
where !cast is just as short. llvm-svn: 115722
-
- Sep 03, 2010
-
-
David Greene authored
Generalize getFieldType to work on all TypedInits. Add a couple of testcases from Amaury Pouly. llvm-svn: 113010
-
- Jun 23, 2010
-
-
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
-
- Jun 18, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 106246
-
- Jun 17, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 106201
-
Bruno Cardoso Lopes authored
be evaluated for 'bit' operators llvm-svn: 106185
-
Bruno Cardoso Lopes authored
llvm-svn: 106171
-
- Apr 05, 2010
-
-
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
-
- Mar 25, 2010
-
-
Jakob Stoklund Olesen authored
Remove much horribleness from X86InstrFormats as a result. Similar simplifications are probably possible for other targets. llvm-svn: 99539
-
Jakob Stoklund Olesen authored
If a TableGen class has an initializer expression containing an X.Y subexpression, AND X depends on template parameters, AND those template parameters have defaults, AND some parameters with defaults are beyond position 1, THEN parts of the initializer expression are evaluated prematurely with the default values when the first explicit template parameter is substituted, before the remaining explicit template parameters have been substituted. llvm-svn: 99492
-
- Mar 18, 2010
-
-
Chris Lattner authored
llvm-svn: 98871
-
- Jan 05, 2010
-
-
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
-
- Dec 21, 2009
-
-
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
-
- Nov 24, 2009
-
-
Dan Gohman authored
llvm-svn: 89729
-
- Nov 22, 2009
-
-
Bob Wilson authored
llvm-svn: 89582
-
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
-
- Nov 21, 2009
-
-
Bob Wilson authored
llvm-svn: 89566
-
- Oct 26, 2009
-
-
Chandler Carruth authored
direct inclusion edge from System to Support. llvm-svn: 85086
-
- Sep 18, 2009
-
-
Chris Lattner authored
llvm-svn: 82244
-
- Aug 23, 2009
-
-
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
-
- Jul 03, 2009
-
-
Daniel Dunbar authored
- Sorry, I can't help myself. - No intended functionality change. llvm-svn: 74742
-
- Jun 30, 2009
-
-
David Greene authored
Remove commented code. llvm-svn: 74471
-
- Jun 29, 2009
-
-
David Greene authored
Implement !cast<string>. llvm-svn: 74444
-
- Jun 09, 2009
-
-
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
-
David Greene authored
Add a !patsubst operator. Use on string types. llvm-svn: 73099
-
- Jun 08, 2009
-
-
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
-
David Greene authored
Make !if short-circuit when possible. llvm-svn: 73076
-
David Greene authored
Add a !regmatch operator to do pattern matching in TableGen. llvm-svn: 73074
-
- May 15, 2009
-
-
Nick Lewycky authored
llvm-svn: 71834
-
David Greene authored
Implement !if, analogous to $(if) in GNU make. llvm-svn: 71815
-
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
-
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
-
- May 14, 2009
-
-
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
-
David Greene authored
Implement !cast. llvm-svn: 71794
-
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
-
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
-
- Apr 24, 2009
-
-
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
-
- Apr 23, 2009
-
-
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
-
- Apr 22, 2009
-
-
David Greene authored
Implement !nameconcat to concatenate strings and look up the resulting name in the symbol table, returning an object. llvm-svn: 69822
-