| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
ask instructions for their parent.
llvm-svn: 14998
|
|
|
|
| |
llvm-svn: 14997
|
|
|
|
| |
llvm-svn: 14996
|
|
|
|
| |
llvm-svn: 14725
|
|
|
|
|
|
| |
use them instead of a local LiveVariables numbering
llvm-svn: 14523
|
|
|
|
|
|
| |
map.
llvm-svn: 14518
|
|
|
|
|
|
| |
Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing.
llvm-svn: 14517
|
|
|
|
| |
llvm-svn: 14373
|
|
|
|
| |
llvm-svn: 13956
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when we see a read of a register. This is important in cases like:
AL = ...
AH = ...
= AX
The read of AX must make both the AL and AH defs live until the use.
llvm-svn: 13444
|
|
|
|
|
|
|
|
| |
use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of
the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of
indirections and mappings.
llvm-svn: 13301
|
|
|
|
| |
llvm-svn: 12561
|
|
|
|
| |
llvm-svn: 12010
|
|
|
|
|
|
|
| |
MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes
to relevant files.
llvm-svn: 11882
|
|
|
|
| |
llvm-svn: 11627
|
|
|
|
| |
llvm-svn: 11625
|
|
|
|
|
|
|
|
|
|
| |
MRegisterInfo::getNumRegs() instead of
MRegisterInfo::FirstVirtualRegister.
Also use MRegisterInfo::is{Physical,Virtual}Register where
appropriate.
llvm-svn: 11477
|
|
|
|
|
|
|
|
|
| |
ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
llvm-svn: 11340
|
|
|
|
| |
llvm-svn: 11285
|
|
|
|
| |
llvm-svn: 11283
|
|
|
|
| |
llvm-svn: 11278
|
|
|
|
|
|
| |
speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk
llvm-svn: 11217
|
|
|
|
|
|
|
| |
This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for
the first/second pass respectively.
llvm-svn: 11216
|
|
|
|
|
|
| |
method
llvm-svn: 11037
|
|
|
|
|
|
| |
Implement LiveVariables::getIndexMachineBasicBlock
llvm-svn: 11018
|
|
|
|
|
|
| |
of a physical register is always dominated by a def).
llvm-svn: 10821
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when an implicitely defined register is later used by an alias. For example:
call foo
%reg1024 = mov %AL
The call implicitely defines EAX but only AL is used. Before this fix
no information was available on AL. Now EAX and all its aliases except
AL get defined and die at the call instruction whereas AL lives to be
killed by the assignment.
llvm-svn: 10813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
b) add isUse(), isDef()
c) rename opHiBits32() to isHiBits32(),
opLoBits32() to isLoBits32(),
opHiBits64() to isHiBits64(),
opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
llvm-svn: 10461
|
|
|
|
| |
llvm-svn: 10444
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
|
|
| |
Header files will be on the way.
llvm-svn: 9298
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and TargetInstrDescriptor::ImplicitUses to always point to a null
terminated array and never be null. So there is no need to check for
pointer validity when iterating over those sets. Code that looked
like:
if (const unsigned* AS = TID.ImplicitDefs) {
for (int i = 0; AS[i]; ++i) {
// use AS[i]
}
}
was changed to:
for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) {
// use *AS
}
llvm-svn: 8960
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed spilling of %fcc[0-3] which are part of %fsr.
(2) Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
(3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags. Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".
llvm-svn: 6341
|
|
|
|
|
|
|
| |
* Change getVarInfo to take real virtual register numbers and offset them
itself. This has caused me so much grief, it's not even funny.
llvm-svn: 6115
|
|
|
|
| |
llvm-svn: 6015
|
|
|
|
| |
llvm-svn: 6012
|
|
|
|
| |
llvm-svn: 6011
|
|
|
|
| |
llvm-svn: 5976
|
|
|
|
| |
llvm-svn: 5272
|
|
llvm-svn: 5262
|