mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-26 05:00:26 +00:00
BBVectorize: isa/cast cleanup in getInstructionTypes
Profiling suggests that getInstructionTypes is performance-sensitive, this cleans up some double-casting in that function in favor of using dyn_cast. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174857 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
da20ea696d
commit
3fc1e4aa15
@ -466,18 +466,18 @@ namespace {
|
||||
|
||||
static inline void getInstructionTypes(Instruction *I,
|
||||
Type *&T1, Type *&T2) {
|
||||
if (isa<StoreInst>(I)) {
|
||||
if (StoreInst *SI = dyn_cast<StoreInst>(I)) {
|
||||
// For stores, it is the value type, not the pointer type that matters
|
||||
// because the value is what will come from a vector register.
|
||||
|
||||
Value *IVal = cast<StoreInst>(I)->getValueOperand();
|
||||
Value *IVal = SI->getValueOperand();
|
||||
T1 = IVal->getType();
|
||||
} else {
|
||||
T1 = I->getType();
|
||||
}
|
||||
|
||||
if (I->isCast())
|
||||
T2 = cast<CastInst>(I)->getSrcTy();
|
||||
if (CastInst *CI = dyn_cast<CastInst>(I))
|
||||
T2 = CI->getSrcTy();
|
||||
else
|
||||
T2 = T1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user