mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 02:36:06 +00:00
replace 'break's with 'return 0' in visitCallInst code for objectsize, since there is no need to fallback to visitCallSite.
This gives a 0.9% in a test case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156069 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
28d95b0a04
commit
a199e01d8e
@ -247,7 +247,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
|
|||||||
default: break;
|
default: break;
|
||||||
case Intrinsic::objectsize: {
|
case Intrinsic::objectsize: {
|
||||||
// We need target data for just about everything so depend on it.
|
// We need target data for just about everything so depend on it.
|
||||||
if (!TD) break;
|
if (!TD) return 0;
|
||||||
|
|
||||||
Type *ReturnTy = CI.getType();
|
Type *ReturnTy = CI.getType();
|
||||||
uint64_t DontKnow = II->getArgOperand(1) == Builder->getTrue() ? 0 : -1ULL;
|
uint64_t DontKnow = II->getArgOperand(1) == Builder->getTrue() ? 0 : -1ULL;
|
||||||
@ -260,7 +260,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
|
|||||||
|
|
||||||
// Try to look through constant GEPs.
|
// Try to look through constant GEPs.
|
||||||
if (GEPOperator *GEP = dyn_cast<GEPOperator>(Op1)) {
|
if (GEPOperator *GEP = dyn_cast<GEPOperator>(Op1)) {
|
||||||
if (!GEP->hasAllConstantIndices()) break;
|
if (!GEP->hasAllConstantIndices()) return 0;
|
||||||
|
|
||||||
// Get the current byte offset into the thing. Use the original
|
// Get the current byte offset into the thing. Use the original
|
||||||
// operand in case we're looking through a bitcast.
|
// operand in case we're looking through a bitcast.
|
||||||
@ -274,7 +274,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
|
|||||||
// Make sure we're not a constant offset from an external
|
// Make sure we're not a constant offset from an external
|
||||||
// global.
|
// global.
|
||||||
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(Op1))
|
if (GlobalVariable *GV = dyn_cast<GlobalVariable>(Op1))
|
||||||
if (!GV->hasDefinitiveInitializer()) break;
|
if (!GV->hasDefinitiveInitializer()) return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we've stripped down to a single global variable that we
|
// If we've stripped down to a single global variable that we
|
||||||
@ -294,7 +294,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
|
|||||||
Size = TD->getTypeAllocSize(AI->getAllocatedType());
|
Size = TD->getTypeAllocSize(AI->getAllocatedType());
|
||||||
if (AI->isArrayAllocation()) {
|
if (AI->isArrayAllocation()) {
|
||||||
const ConstantInt *C = dyn_cast<ConstantInt>(AI->getArraySize());
|
const ConstantInt *C = dyn_cast<ConstantInt>(AI->getArraySize());
|
||||||
if (!C) break;
|
if (!C) return 0;
|
||||||
Size *= C->getZExtValue();
|
Size *= C->getZExtValue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -310,7 +310,7 @@ Instruction *InstCombiner::visitCallInst(CallInst &CI) {
|
|||||||
// Do not return "I don't know" here. Later optimization passes could
|
// Do not return "I don't know" here. Later optimization passes could
|
||||||
// make it possible to evaluate objectsize to a constant.
|
// make it possible to evaluate objectsize to a constant.
|
||||||
if (Size == -1ULL)
|
if (Size == -1ULL)
|
||||||
break;
|
return 0;
|
||||||
|
|
||||||
if (Size < Offset) {
|
if (Size < Offset) {
|
||||||
// Out of bound reference? Negative index normalized to large
|
// Out of bound reference? Negative index normalized to large
|
||||||
|
Loading…
x
Reference in New Issue
Block a user