[all-commits] [llvm/llvm-project] c02476: [X86][CostModel] X86TTIImpl::getMemoryOpCost(): re...
    Roman Lebedev via All-commits 
    all-commits at lists.llvm.org
       
    Tue May 11 06:03:16 PDT 2021
    
    
  
  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c02476f3158f2908ef0a6f628210b5380bd33695
      https://github.com/llvm/llvm-project/commit/c02476f3158f2908ef0a6f628210b5380bd33695
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-05-11 (Tue, 11 May 2021)
  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/interleaved-load-i16-stride-3.ll
    M llvm/test/Analysis/CostModel/X86/interleaved-store-i16-stride-3.ll
    M llvm/test/Analysis/CostModel/X86/load_store.ll
  Log Message:
  -----------
  [X86][CostModel] X86TTIImpl::getMemoryOpCost(): rewrite vector handling again
Instead of handling power-of-two sized vector chunks,
try handling the large vector in a stream mode,
decreasing the operational vector size
once it no longer works for the elements left to process.
Notably, this improves costs for overaligned loads - loading padding is fine.
This more directly tracks when we need to insert/extract the YMM/XMM subvector,
some costs fluctuate because of that.
Reviewed By: RKSimon, ABataev
Differential Revision: https://reviews.llvm.org/D100684
    
    
More information about the All-commits
mailing list