| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
I was trying to check the WIP file to some local repository, but ended up
checking in the llvm repository. Oops!
llvm-svn: 85470
|
|
|
|
|
|
| |
declaring local variables.
llvm-svn: 85467
|
|
|
|
| |
llvm-svn: 85215
|
|
|
|
|
|
| |
direct inclusion edge from System to Support.
llvm-svn: 85086
|
|
|
|
| |
llvm-svn: 84827
|
|
|
|
|
|
| |
Useful for OptionPreprocessor.
llvm-svn: 84728
|
|
|
|
| |
llvm-svn: 84537
|
|
|
|
| |
llvm-svn: 84450
|
|
|
|
|
|
| |
inefficient and broken.
llvm-svn: 84358
|
|
|
|
| |
llvm-svn: 84356
|
|
|
|
|
|
| |
More to follow...
llvm-svn: 84352
|
|
|
|
| |
llvm-svn: 84351
|
|
|
|
|
|
|
| |
Several instances of PluginPriority in a single file most probably signifies a
programming error.
llvm-svn: 84350
|
|
|
|
| |
llvm-svn: 84193
|
|
|
|
| |
llvm-svn: 83619
|
|
|
|
|
|
| |
Important, for example, when calling 'gcc a.o b.o c.o -lD -lE -lF'.
llvm-svn: 83524
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
unused DECLARE instruction.
KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF
in the places where IMPLICIT_DEF is just used to alter liveness of physical
registers.
llvm-svn: 83006
|
|
|
|
| |
llvm-svn: 82957
|
|
|
|
| |
llvm-svn: 82955
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
This eliminates MachineInstr's std::list member and allows the data to be
created by isel and live for the remainder of codegen, avoiding a lot of
copying and unnecessary translation. This also shrinks MemSDNode.
- Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
fields for MachineMemOperands.
- Change MemSDNode to have a MachineMemOperand member instead of its own
fields with the same information. This introduces some redundancy, but
it's more consistent with what MachineInstr will eventually want.
- Ignore alignment when searching for redundant loads for CSE, but remember
the greatest alignment.
Target-specific code which previously used MemOperandSDNodes with generic
SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
so that the SelectionDAG framework knows that MachineMemOperand information
is available.
llvm-svn: 82794
|
|
|
|
|
|
|
|
| |
naming scheme used in SelectionDAG, where there are multiple kinds
of "target" nodes, but "machine" nodes are nodes which represent
a MachineInstr.
llvm-svn: 82790
|
|
|
|
| |
llvm-svn: 82709
|
|
|
|
| |
llvm-svn: 82456
|
|
|
|
| |
llvm-svn: 82244
|
|
|
|
| |
llvm-svn: 82236
|
|
|
|
| |
llvm-svn: 81742
|
|
|
|
| |
llvm-svn: 81741
|
|
|
|
| |
llvm-svn: 81740
|
|
|
|
|
|
| |
the encoding of the AsmStrs table saving a byte or two.
llvm-svn: 81739
|
|
|
|
|
|
| |
this table.
llvm-svn: 81728
|
|
|
|
|
|
| |
the object, make it static instead of const.
llvm-svn: 81711
|
|
|
|
|
|
| |
Nothing is using this info yet.
llvm-svn: 81707
|
|
|
|
|
|
| |
Partial fix for PR4946.
llvm-svn: 81518
|
|
|
|
|
|
| |
out an illegal "PHINODE" instruction.
llvm-svn: 81495
|
|
|
|
| |
llvm-svn: 81448
|
|
|
|
| |
llvm-svn: 81447
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
|
|
|
|
|
|
|
|
| |
a return in one case. Instead of sprinking return handling code
throughout the asmprinter generator, just treat it like any other
normal statement.
llvm-svn: 81395
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
asm printer into the "printInstruction" routine. This
fixes a problem where the experimental asmprinter would
drop debug labels in some cases, and fixes issues on ppc/xcore
where pseudo instructions like "mr" didn't get debug locs properly.
It is annoying that this moves the call from one place into each
target, but a future set of more invasive refactorings will fix
that problem.
llvm-svn: 81377
|
|
|
|
|
|
| |
icc (#177, partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inferencing. As far as I can tell, these are equivalent to the existing
MVT::fAny, iAny and vAny types, and having both of them makes it harder
to reason about and modify the type inferencing code.
The specific problem in PR4795 occurs when updating a vAny type to be fAny
or iAny, or vice versa. Both iAny and fAny include vector types -- they
intersect with the set of types represented by vAny. When merging them,
choose fAny/iAny to represent the intersection. This is not perfect, since
fAny/iAny also include scalar types, but it is good enough for TableGen's
type inferencing.
llvm-svn: 80423
|
|
|
|
|
|
| |
attempt more than 2 constraints on an instruction.
llvm-svn: 80169
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is conventional command-line tool behavior. -f now just means
"enable binary output on terminals".
Add a -f option to llvm-extract and llvm-link, for consistency.
Remove F_Force from raw_fd_ostream and enable overwriting and
truncating by default. Introduce an F_Excl flag to permit users to
enable a failure when the file already exists. This flag is
currently unused.
Update Makefiles and documentation accordingly.
llvm-svn: 79990
|
|
|
|
|
|
|
| |
member out of line. ftostr is not particularly speedy,
so that method is presumably not perf sensitive.
llvm-svn: 79885
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
llvm-svn: 79869
|
|
|
|
| |
llvm-svn: 79850
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
update all code that this affects.
llvm-svn: 79830
|