mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-05 11:57:07 +00:00
[PowerPC] Make PPCTTI::getMemoryOpCost call BasicTTI::getMemoryOpCost
PPCTTI::getMemoryOpCost will now make use of BasicTTI::getMemoryOpCost to calculate the base cost of the memory access, and then adjust on top of that. There is no functionality change from this modification, but it will become important so that PPCTTI can take advantage of scalarization information for which BasicTTI::getMemoryOpCost will account in the near future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205476 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
75cea2c73e
commit
1fb3df7a2e
@ -241,8 +241,8 @@ unsigned PPCTTI::getMemoryOpCost(unsigned Opcode, Type *Src, unsigned Alignment,
|
||||
assert((Opcode == Instruction::Load || Opcode == Instruction::Store) &&
|
||||
"Invalid Opcode");
|
||||
|
||||
// Each load/store unit costs 1.
|
||||
unsigned Cost = LT.first * 1;
|
||||
unsigned Cost =
|
||||
TargetTransformInfo::getMemoryOpCost(Opcode, Src, Alignment, AddressSpace);
|
||||
|
||||
// FIXME: Update this for VSX loads/stores that support unaligned access.
|
||||
|
||||
@ -250,7 +250,7 @@ unsigned PPCTTI::getMemoryOpCost(unsigned Opcode, Type *Src, unsigned Alignment,
|
||||
// to be decomposed based on the alignment factor.
|
||||
unsigned SrcBytes = LT.second.getStoreSize();
|
||||
if (SrcBytes && Alignment && Alignment < SrcBytes)
|
||||
Cost *= (SrcBytes/Alignment);
|
||||
Cost += LT.first*(SrcBytes/Alignment-1);
|
||||
|
||||
return Cost;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user