mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 00:33:09 +00:00
Use isTerminator() instead of isBranch()||isReturn() in
several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e1dfc7da89
commit
237dee1259
@ -707,7 +707,7 @@ bool MachineInstr::isSafeToMove(const TargetInstrInfo *TII,
|
||||
SawStore = true;
|
||||
return false;
|
||||
}
|
||||
if (TID->isReturn() || TID->isBranch() || TID->hasUnmodeledSideEffects())
|
||||
if (TID->isTerminator() || TID->hasUnmodeledSideEffects())
|
||||
return false;
|
||||
|
||||
// See if this instruction does a load. If so, we have to guarantee that the
|
||||
|
@ -205,7 +205,7 @@ bool MachineLICM::IsLoopInvariantInst(MachineInstr &I) {
|
||||
const TargetInstrDesc &TID = I.getDesc();
|
||||
|
||||
// Ignore stuff that we obviously can't hoist.
|
||||
if (TID.mayStore() || TID.isCall() || TID.isReturn() || TID.isBranch() ||
|
||||
if (TID.mayStore() || TID.isCall() || TID.isTerminator() ||
|
||||
TID.hasUnmodeledSideEffects())
|
||||
return false;
|
||||
|
||||
|
@ -275,8 +275,7 @@ void ScheduleDAGInstrs::BuildSchedUnits() {
|
||||
// after stack slots are lowered to actual addresses.
|
||||
// TODO: Use an AliasAnalysis and do real alias-analysis queries, and
|
||||
// produce more precise dependence information.
|
||||
if (TID.isCall() || TID.isReturn() || TID.isBranch() ||
|
||||
TID.hasUnmodeledSideEffects()) {
|
||||
if (TID.isCall() || TID.isTerminator() || TID.hasUnmodeledSideEffects()) {
|
||||
new_chain:
|
||||
// This is the conservative case. Add dependencies on all memory
|
||||
// references.
|
||||
@ -300,7 +299,7 @@ void ScheduleDAGInstrs::BuildSchedUnits() {
|
||||
// See if it is known to just have a single memory reference.
|
||||
MachineInstr *ChainMI = Chain->getInstr();
|
||||
const TargetInstrDesc &ChainTID = ChainMI->getDesc();
|
||||
if (!ChainTID.isCall() && !ChainTID.isReturn() && !ChainTID.isBranch() &&
|
||||
if (!ChainTID.isCall() && !ChainTID.isTerminator() &&
|
||||
!ChainTID.hasUnmodeledSideEffects() &&
|
||||
ChainMI->hasOneMemOperand() &&
|
||||
!ChainMI->memoperands_begin()->isVolatile() &&
|
||||
|
Loading…
Reference in New Issue
Block a user