| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 73099
|
|
|
|
| |
llvm-svn: 73091
|
|
|
|
| |
llvm-svn: 73090
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 71811
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 71277
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#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
|
|
|
|
|
|
|
| |
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: 66949
|
|
|
|
| |
llvm-svn: 66663
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
don't fail when (expected) error output is produced. This fixes 17 tests.
While I was there, I also made all RUN lines of the form "not llvm-as..." a bit
more consistent, they now all redirect stderr and stdout to /dev/null and use
input redirect to read their input.
llvm-svn: 52174
|
|
|
|
| |
llvm-svn: 46930
|
|
|
|
| |
llvm-svn: 41097
|
|
|
|
| |
llvm-svn: 37801
|
|
|
|
|
|
| |
Fix syntax of tests to ensure grep pattern is properly quoted.
llvm-svn: 36134
|
|
|
|
| |
llvm-svn: 36070
|
|
|
|
|
|
|
|
| |
global variables that needed to be passed in. This makes it possible to
add new global variables with only a couple changes (Makefile and llvm-dg.exp)
instead of touching every single dg.exp file.
llvm-svn: 35918
|
|
llvm-svn: 33296
|