Added estimation for zero size insertelement, extractelement
and llvm.fabs operators.
Updated inline/unroll parameters default values.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 39435 Build 39453: arc lint + arc unit
Event Timeline
llvm/lib/Target/AMDGPU/AMDGPUInline.cpp | ||
---|---|---|
54 | This is a separate change | |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | ||
698 | We already report vector insert/extract as free. Why does this need to look at these specifically? What is the purpose of Operands which seems to be ignored? What uses this version? I thought the set of cost model function with specific value contexts were only used by the vectorizers | |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h | ||
207 | This is a separate change |
llvm/lib/Target/AMDGPU/AMDGPUInline.cpp | ||
---|---|---|
54 | The parameter' default value should be updated to correspond changed cost model, to avoid performance regressions. | |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | ||
698 | CostModel has three estimation modes: RecipThroughput, Latency and CodeSize. Vectorizer uses the first one but inliner and unroller use code size estimations. | |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h | ||
207 | The parameter' default value should be updated to correspond changed cost model, to avoid performance regressions. |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | ||
---|---|---|
698 | Nothing here looks target specific though? It's just forwarding the calls. Why doesn't the base implementation do this? |
llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | ||
---|---|---|
698 | The parameters preparation and calls forwarding scheme is from base implementation of getInstructionThroughput() but we cannot say that for all targets zero cost in terms of throughtput means zero code size. |
This is a separate change