mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-03 14:31:10 +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_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_UNWIND = 14, // UNWIND
|
||||
FUNC_CODE_INST_UNREACHABLE = 15, // UNREACHABLE
|
||||
@ -237,7 +237,7 @@ namespace bitc {
|
||||
// new select on i1 or [N x i1]
|
||||
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_INDBR = 31 // INDBR: [opty, operands...]
|
||||
FUNC_CODE_INST_INDBR = 31 // INDBR: [opty, op0, op1, ...]
|
||||
};
|
||||
} // End bitc namespace
|
||||
} // End llvm namespace
|
||||
|
@ -31,6 +31,9 @@ unsigned InlineCostAnalyzer::FunctionInfo::
|
||||
// Eliminating a switch is a big win, proportional to the number of edges
|
||||
// deleted.
|
||||
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)) {
|
||||
// Turning an indirect call into a direct call is a BIG win
|
||||
Reduction += CI->getCalledValue() == V ? 500 : 0;
|
||||
|
@ -166,6 +166,11 @@ void SparseSolver::getFeasibleSuccessors(TerminatorInst &TI,
|
||||
return;
|
||||
}
|
||||
|
||||
if (IndBrInst *IBI = dyn_cast<IndBrInst>(TI)) {
|
||||
Succs.assign(Succs.size(), true);
|
||||
return;
|
||||
}
|
||||
|
||||
SwitchInst &SI = cast<SwitchInst>(TI);
|
||||
LatticeVal SCValue;
|
||||
if (AggressiveUndef)
|
||||
|
Loading…
x
Reference in New Issue
Block a user