mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-02 10:33:53 +00:00
Random updates to passes for indbr, I need blockaddress before I can do much more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85316 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
627b470981
commit
2688bcbee1
@ -209,7 +209,7 @@ namespace bitc {
|
|||||||
|
|
||||||
FUNC_CODE_INST_RET = 10, // RET: [opty,opval<both optional>]
|
FUNC_CODE_INST_RET = 10, // RET: [opty,opval<both optional>]
|
||||||
FUNC_CODE_INST_BR = 11, // BR: [bb#, bb#, cond] or [bb#]
|
FUNC_CODE_INST_BR = 11, // BR: [bb#, bb#, cond] or [bb#]
|
||||||
FUNC_CODE_INST_SWITCH = 12, // SWITCH: [opty, operands...]
|
FUNC_CODE_INST_SWITCH = 12, // SWITCH: [opty, op0, op1, ...]
|
||||||
FUNC_CODE_INST_INVOKE = 13, // INVOKE: [attr, fnty, op0,op1, ...]
|
FUNC_CODE_INST_INVOKE = 13, // INVOKE: [attr, fnty, op0,op1, ...]
|
||||||
FUNC_CODE_INST_UNWIND = 14, // UNWIND
|
FUNC_CODE_INST_UNWIND = 14, // UNWIND
|
||||||
FUNC_CODE_INST_UNREACHABLE = 15, // UNREACHABLE
|
FUNC_CODE_INST_UNREACHABLE = 15, // UNREACHABLE
|
||||||
@ -237,7 +237,7 @@ namespace bitc {
|
|||||||
// new select on i1 or [N x i1]
|
// new select on i1 or [N x i1]
|
||||||
FUNC_CODE_INST_VSELECT = 29, // VSELECT: [ty,opval,opval,predty,pred]
|
FUNC_CODE_INST_VSELECT = 29, // VSELECT: [ty,opval,opval,predty,pred]
|
||||||
FUNC_CODE_INST_INBOUNDS_GEP= 30, // INBOUNDS_GEP: [n x operands]
|
FUNC_CODE_INST_INBOUNDS_GEP= 30, // INBOUNDS_GEP: [n x operands]
|
||||||
FUNC_CODE_INST_INDBR = 31 // INDBR: [opty, operands...]
|
FUNC_CODE_INST_INDBR = 31 // INDBR: [opty, op0, op1, ...]
|
||||||
};
|
};
|
||||||
} // End bitc namespace
|
} // End bitc namespace
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
@ -31,6 +31,9 @@ unsigned InlineCostAnalyzer::FunctionInfo::
|
|||||||
// Eliminating a switch is a big win, proportional to the number of edges
|
// Eliminating a switch is a big win, proportional to the number of edges
|
||||||
// deleted.
|
// deleted.
|
||||||
Reduction += (SI->getNumSuccessors()-1) * 40;
|
Reduction += (SI->getNumSuccessors()-1) * 40;
|
||||||
|
else if (isa<IndBrInst>(*UI))
|
||||||
|
// Eliminating an indirect branch is a big win.
|
||||||
|
Reduction += 200;
|
||||||
else if (CallInst *CI = dyn_cast<CallInst>(*UI)) {
|
else if (CallInst *CI = dyn_cast<CallInst>(*UI)) {
|
||||||
// Turning an indirect call into a direct call is a BIG win
|
// Turning an indirect call into a direct call is a BIG win
|
||||||
Reduction += CI->getCalledValue() == V ? 500 : 0;
|
Reduction += CI->getCalledValue() == V ? 500 : 0;
|
||||||
|
@ -166,6 +166,11 @@ void SparseSolver::getFeasibleSuccessors(TerminatorInst &TI,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IndBrInst *IBI = dyn_cast<IndBrInst>(TI)) {
|
||||||
|
Succs.assign(Succs.size(), true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SwitchInst &SI = cast<SwitchInst>(TI);
|
SwitchInst &SI = cast<SwitchInst>(TI);
|
||||||
LatticeVal SCValue;
|
LatticeVal SCValue;
|
||||||
if (AggressiveUndef)
|
if (AggressiveUndef)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user