| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
the diagnostic.
llvm-svn: 127480
|
| |
|
|
|
|
| |
ago. This is both easier to learn and easier to read.
llvm-svn: 123001
|
| |
|
|
| |
llvm-svn: 121837
|
| |
|
|
|
|
|
|
|
|
|
| |
class A<bit a, bits<3> x, bits<3> y> {
bits<3> z;
let z = !if(a, x, y);
}
The variable z will get the value of x when 'a' is 1 and 'y' when a is '0'.
llvm-svn: 121666
|
| |
|
|
| |
llvm-svn: 121659
|
| |
|
|
|
|
|
|
|
|
|
|
| |
let Constraints = "$val = $dst", Defs = [EFLAGS] in, isCodeGenOnly = 1 {
we now get:
X86InstrCompiler.td:653:52: error: Expected class, def, defm, multiclass or let definition
let Constraints = "$val = $dst", Defs = [EFLAGS] in, isCodeGenOnly = 1 {
^
llvm-svn: 117863
|
| |
|
|
|
|
|
|
| |
Use this to make the X86 and ARM targets set isCodeGenOnly=1
automatically for their instructions that have Format=Pseudo,
resolving a hack in tblgen.
llvm-svn: 117862
|
| |
|
|
| |
llvm-svn: 117197
|
| |
|
|
| |
llvm-svn: 117195
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
as the operator of the dag. Specifically, this allows parsing things
like (F.x 4) in addition to just (a 4).
Unfortunately, this runs afoul of an idiom being used by llvmc. It
is using dags like (foo [1,2,3]) to represent a list of stuff being
passed into foo. With this change, this is parsed as a [1,2,3]
subscript on foo instead of being the first argument to the dag.
Cope with this in the short term by requiring a "-llvmc-temp-hack"
argument to tblgen to get the old parsing behavior.
llvm-svn: 115742
|
| |
|
|
| |
llvm-svn: 115739
|
| |
|
|
|
|
| |
where !cast is just as short.
llvm-svn: 115722
|
| |
|
|
|
|
|
|
| |
!strconcat(!strconcat(!strconcat(!strconcat
Simplify some x86 td files to use it.
llvm-svn: 115719
|
| |
|
|
|
|
| |
simplify the X86 CMOVmr's.
llvm-svn: 115702
|
| |
|
|
|
|
| |
a toplevel 'defm', make sure to properly resolve references.
llvm-svn: 106570
|
| |
|
|
|
|
|
| |
The rule is simple: only inherit from a class list if they come
in the end, after the last multiclass.
llvm-svn: 106305
|
| |
|
|
|
|
| |
providing more ways to factor out commonality from the records.
llvm-svn: 105776
|
| |
|
|
| |
llvm-svn: 105519
|
| |
|
|
|
|
| |
Use !cast<string>() to compare other types of objects.
llvm-svn: 92754
|
| |
|
|
| |
llvm-svn: 89582
|
| |
|
|
| |
llvm-svn: 78848
|
| |
|
|
|
|
|
|
| |
- Sorry, I can't help myself.
- No intended functionality change.
llvm-svn: 74742
|
| |
|
|
| |
llvm-svn: 74443
|
| |
|
|
| |
llvm-svn: 73843
|
| |
|
|
|
|
|
| |
regular expressions. We will add an OpenBSD implementation
and re-apply ASAP.
llvm-svn: 73138
|
| |
|
|
| |
llvm-svn: 73099
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 73074
|
| |
|
|
| |
llvm-svn: 71815
|
| |
|
|
|
|
|
|
|
|
| |
Ok, not really, but do support some common LISP functions:
* car
* cdr
* null
llvm-svn: 71805
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 71794
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#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
|
| |
|
|
|
|
|
| |
so that it doesn't shadow the instance variable of the same name.
Make the parameter names in method declarations match the definitions.
llvm-svn: 70502
|
| |
|
|
| |
llvm-svn: 70499
|
| |
|
|
| |
llvm-svn: 70319
|
| |
|
|
|
|
|
| |
by base multiclasses. Do not attempt to alter defs from previous base
multiclasses. This fixes multiple multiclass inheritance.
llvm-svn: 69974
|
| |
|
|
|
|
|
| |
allows binops to be used in typed contexts such as when passing
arguments to classes.
llvm-svn: 69921
|
| |
|
|
| |
llvm-svn: 69832
|
| |
|
|
|
|
| |
name in the symbol table, returning an object.
llvm-svn: 69822
|
| |
|
|
| |
llvm-svn: 69810
|
| |
|
|
| |
llvm-svn: 67758
|
| |
|
|
|
|
|
| |
in selectiondag patterns. This is required for the upcoming shuffle_vector rewrite,
and as it turns out, cleans up a hack in the Alpha instruction info.
llvm-svn: 67286
|
| |
|
|
| |
llvm-svn: 66897
|
| |
|
|
| |
llvm-svn: 66895
|
| |
|
|
| |
llvm-svn: 66663
|
| |
|
|
|
|
|
|
|
|
| |
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|