| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 117892
|
|
|
|
|
|
| |
simplify CodeGenInstruction. No functionality change.
llvm-svn: 117891
|
|
|
|
|
|
|
|
| |
CodeGenInstruction::FlattenAsmStringVariants method. Use it
to simplify the code in AsmWriterInst, which now no longer
needs to worry about variants.
llvm-svn: 117886
|
|
|
|
|
|
|
|
| |
operand values. This is useful for operands which require additional trickery
to encode into the instruction. For example, the ARM shifted immediate and
shifted register operands.
llvm-svn: 116353
|
|
|
|
|
|
|
| |
try to match them by name first. If there is no by-name match, fall back to
assuming they are in order (this was the previous behavior).
llvm-svn: 116211
|
|
|
|
|
|
|
|
| |
instructions. After further
reflection, this isn't going to achieve the purpose I intended it for. Back to the drawing board!
llvm-svn: 114710
|
|
|
|
|
|
|
|
| |
conditional move.
Not intended functionality change, as nothing uses this yet.
llvm-svn: 114702
|
|
|
|
|
|
| |
useful after all.
llvm-svn: 110531
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
need the Compare flag after all.
--- Reverse-merging r109901 into '.':
U include/llvm/Target/TargetInstrDesc.h
U include/llvm/Target/Target.td
U utils/TableGen/InstrInfoEmitter.cpp
U utils/TableGen/CodeGenInstruction.cpp
U utils/TableGen/CodeGenInstruction.h
llvm-svn: 110424
|
|
|
|
|
|
|
| |
later to identify and possibly remove superfluous compare instructions -- those
that are testing for and setting a status flag that should already be set.
llvm-svn: 109901
|
|
|
|
| |
llvm-svn: 106470
|
|
|
|
|
|
|
|
|
| |
from two places in CodeGenDAGPatterns.cpp, and
use it in DAGISelMatcherGen.cpp instead of using
an incorrect predicate that happened to get lucky
on our current targets.
llvm-svn: 99726
|
|
|
|
| |
llvm-svn: 98879
|
|
|
|
| |
llvm-svn: 98870
|
|
|
|
|
|
| |
instruction. Instructions must use 'ins' and 'outs' now.
llvm-svn: 98868
|
|
|
|
|
|
| |
Add checking that the input/output operand list in spelled right.
llvm-svn: 98865
|
|
|
|
| |
llvm-svn: 97348
|
|
|
|
|
|
|
|
|
| |
for representing constraint info semantically instead of
as a c expression that will be blatted out to the .inc
file. Fix X86RecognizableInstr to use this instead of
parsing C code :).
llvm-svn: 95753
|
|
|
|
|
|
|
|
|
| |
- getToken is modeled after StringRef::split but it can split on multiple
separator chars and skips leading seperators.
- SplitString is a StringRef::split variant for more than 2 elements with the
same behaviour as getToken.
llvm-svn: 93161
|
|
|
|
| |
llvm-svn: 91554
|
|
|
|
| |
llvm-svn: 91442
|
|
|
|
|
|
|
|
| |
bunch of associated comments, because it doesn't have anything to do
with DAGs or scheduling. This is another step in decoupling MachineInstr
emitting from scheduling.
llvm-svn: 85517
|
|
|
|
|
|
|
|
|
|
| |
set, these flags indicate the instructions source / def operands have special
register allocation requirement that are not captured in their register classes.
Post-allocation passes (e.g. post-alloc scheduler) should not change their
allocations. e.g. ARM::LDRD require the two definitions to be allocated
even / odd register pair.
llvm-svn: 83196
|
|
|
|
|
|
| |
attempt more than 2 constraints on an instruction.
llvm-svn: 80169
|
|
|
|
|
|
|
| |
allows binops to be used in typed contexts such as when passing
arguments to classes.
llvm-svn: 69921
|
|
|
|
|
|
| |
name in the symbol table, returning an object.
llvm-svn: 69822
|
|
|
|
| |
llvm-svn: 60487
|
|
|
|
| |
llvm-svn: 58250
|
|
|
|
| |
llvm-svn: 56963
|
|
|
|
|
|
|
|
|
|
|
| |
index for the input pattern in terms of the output pattern. Instead
keep track of how many fixed operands the input pattern actually
has, and have the input matching code pass the output-emitting
function that index value. This simplifies the code, disentangles
variables_ops from the support for predication operations, and
makes variable_ops more robust.
llvm-svn: 51808
|
|
|
|
|
|
|
|
|
|
|
|
| |
definitions. This adds a new construct, "discard", for indicating
that a named node in the input matching pattern is to be discarded,
instead of corresponding to a node in the output pattern. This
allows tblgen to know where the arguments for the varaible_ops are
supposed to begin.
This fixes "rdar://5791600", whatever that is ;-).
llvm-svn: 51699
|
|
|
|
|
|
|
|
|
| |
instruction to execute. This can be used for transformations (like two-address
conversion) to remat an instruction instead of generating a "move"
instruction. The idea is to decrease the live ranges and register pressure and
all that jazz.
llvm-svn: 51660
|
|
|
|
| |
llvm-svn: 48381
|
|
|
|
| |
llvm-svn: 48222
|
|
|
|
| |
llvm-svn: 48167
|
|
|
|
|
|
| |
pattern their used in. This will be used to allow insert/extract subreg patterns in .td files!
llvm-svn: 48125
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the
x86 backend where instructions were not marked maystore/mayload, and perf issues where
instructions were not marked neverHasSideEffects. It would be really nice if we could
write patterns for copy instructions.
I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on
other targets are probably not right in all cases, but no clients currently use this
info that are enabled by default.
llvm-svn: 45829
|
|
|
|
|
|
| |
This is currently not set by anything.
llvm-svn: 45748
|
|
|
|
|
|
|
| |
Evan, please review the comments I added to getNumDefs to make sure
that they are accurate, thx.
llvm-svn: 45687
|
|
|
|
|
|
| |
just unconditionally use the def name of the instruction.
llvm-svn: 45684
|
|
|
|
| |
llvm-svn: 45667
|
|
|
|
| |
llvm-svn: 45656
|
|
getName() accessor.
llvm-svn: 45645
|