mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-07 11:33:44 +00:00
Small tweak to inline cost computation. Ext of i/fcmp results are mostly optimized away in codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93453 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f4b6d88cda
commit
1a67dd2d47
@ -167,11 +167,16 @@ void CodeMetrics::analyzeBasicBlock(const BasicBlock *BB) {
|
|||||||
if (isa<ExtractElementInst>(II) || isa<VectorType>(II->getType()))
|
if (isa<ExtractElementInst>(II) || isa<VectorType>(II->getType()))
|
||||||
++NumVectorInsts;
|
++NumVectorInsts;
|
||||||
|
|
||||||
// Noop casts, including ptr <-> int, don't count.
|
|
||||||
if (const CastInst *CI = dyn_cast<CastInst>(II)) {
|
if (const CastInst *CI = dyn_cast<CastInst>(II)) {
|
||||||
|
// Noop casts, including ptr <-> int, don't count.
|
||||||
if (CI->isLosslessCast() || isa<IntToPtrInst>(CI) ||
|
if (CI->isLosslessCast() || isa<IntToPtrInst>(CI) ||
|
||||||
isa<PtrToIntInst>(CI))
|
isa<PtrToIntInst>(CI))
|
||||||
continue;
|
continue;
|
||||||
|
// Result of a cmp instruction is often extended (to be used by other
|
||||||
|
// cmp instructions, logical or return instructions). These are usually
|
||||||
|
// nop on most sane targets.
|
||||||
|
if (isa<CmpInst>(CI->getOperand(0)))
|
||||||
|
continue;
|
||||||
} else if (const GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(II)){
|
} else if (const GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(II)){
|
||||||
// If a GEP has all constant indices, it will probably be folded with
|
// If a GEP has all constant indices, it will probably be folded with
|
||||||
// a load/store.
|
// a load/store.
|
||||||
|
Loading…
Reference in New Issue
Block a user