| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
MachineRegisterInfo instead.
llvm-svn: 46016
|
|
|
|
|
|
|
| |
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695
|
|
|
|
|
|
|
|
| |
all clients over to using predicates instead of these flags directly.
These are now private values which are only to be used to statically
initialize the tables.
llvm-svn: 45692
|
|
|
|
|
|
|
| |
flags that can be set. Add predicates for the ones lacking it, and switch
some clients over to using the predicates instead of Flags directly.
llvm-svn: 45690
|
|
|
|
| |
llvm-svn: 45680
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674
|
|
|
|
|
|
| |
preserved.
llvm-svn: 45596
|
|
|
|
|
|
| |
Machine-level API cleanup instigated by Chris.
llvm-svn: 45470
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that "machine" classes are used to represent the current state of
the code being compiled. Given this expanded name, we can start
moving other stuff into it. For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
llvm-svn: 45467
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
| |
to be a pass of its own. Instead, move it out into a helper method.
llvm-svn: 44002
|
|
|
|
| |
llvm-svn: 43911
|
|
|
|
| |
llvm-svn: 43866
|
|
|
|
| |
llvm-svn: 43256
|
|
|
|
| |
llvm-svn: 43196
|
|
|
|
|
|
| |
Tested with "make check"!
llvm-svn: 42346
|
|
|
|
| |
llvm-svn: 36873
|
|
|
|
| |
llvm-svn: 36662
|
|
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
|
|
|
| |
llvm-svn: 36632
|
|
|
|
| |
llvm-svn: 36250
|
|
|
|
| |
llvm-svn: 35140
|
|
|
|
| |
llvm-svn: 32698
|
|
|
|
| |
llvm-svn: 32321
|
|
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
|
|
|
| |
llvm-svn: 32098
|
|
|
|
| |
llvm-svn: 31985
|
|
|
|
| |
llvm-svn: 31583
|
|
|
|
|
|
| |
dest / src operands can be tied together.
llvm-svn: 31363
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108
|
|
|
|
| |
llvm-svn: 29911
|
|
|
|
| |
llvm-svn: 29220
|
|
|
|
| |
llvm-svn: 28973
|
|
|
|
|
|
| |
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
|
|
|
|
| |
llvm-svn: 28102
|
|
|
|
| |
llvm-svn: 25515
|
|
|
|
| |
llvm-svn: 24019
|
|
|
|
| |
llvm-svn: 21420
|
|
|
|
|
|
| |
instead of doing it manually.
llvm-svn: 19685
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. If we are two-addressing a commutable instruction and the LHS is not the
last use of the variable, see if the instruction is the last use of the
RHS. If so, commute the instruction, allowing us to avoid a
register-register copy in many cases for common instructions like ADD, OR,
AND, etc on X86.
2. If #1 doesn't hold, and if this is an instruction that also existing in
3-address form, promote the instruction to a 3-address instruction to
avoid the register-register copy. We can do this for several common
instructions in X86, including ADDrr, INC, DEC, etc.
This patch implements test/Regression/CodeGen/X86/commute-two-addr.ll,
overlap-add.ll, and overlap-shift.ll when I check in the X86 support for it.
llvm-svn: 19245
|
|
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
|
|
|
| |
llvm-svn: 15779
|
|
|
|
| |
llvm-svn: 15107
|
|
|
|
| |
llvm-svn: 15098
|
|
|
|
| |
llvm-svn: 15091
|
|
|
|
|
|
| |
"Support/Debug.h".
llvm-svn: 15089
|
|
|
|
| |
llvm-svn: 14997
|
|
|
|
|
|
| |
MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.
llvm-svn: 14389
|
|
|
|
| |
llvm-svn: 13956
|
|
|
|
| |
llvm-svn: 11573
|