llvm-project/llvm/lib/Transforms
Cong Hou e6a210f50b [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions.
(This is the second attempt to check in this patch: REQUIRES: asserts is added
to reg-usage.ll now.)

LoopVectorizationCostModel::calculateRegisterUsage() is used to estimate the
register usage for specific VFs. However, it takes into account many
instructions that won't be vectorized, such as induction variables,
GetElementPtr instruction, etc.. This makes the loop vectorizer too conservative
when choosing VF. In this patch, the induction variables that won't be
vectorized plus GetElementPtr instruction will be added to ValuesToIgnore set
so that their register usage won't be considered any more.


Differential revision: http://reviews.llvm.org/D15177

llvm-svn: 255460
2015-12-13 16:55:46 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IPO SamplePGO - Reduce memory utilization by 10x. 2015-12-11 23:21:38 +00:00
InstCombine [InstCombine] canonicalize (bitcast (extractelement X)) --> (extractelement(bitcast X)) 2015-12-12 16:44:48 +00:00
Instrumentation [PGO] Stop using invalid char in instr variable names. 2015-12-12 17:28:03 +00:00
ObjCARC ObjCARC: Remove implicit ilist iterator conversions, NFC 2015-10-19 23:20:14 +00:00
Scalar [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
Utils [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
Vectorize [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions. 2015-12-13 16:55:46 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile