llvm-project/llvm/lib
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
..
Analysis Try to appease a buildbot 2015-12-12 05:53:20 +00:00
AsmParser [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
Bitcode [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
CodeGen Replace <cstdint> by llvm/Support/DataTypes.h for the typedef of uint64_t. NFC. 2015-12-13 09:52:14 +00:00
DebugInfo [llvm-dwp] Retrieve the DWOID from the CU for the cu_index entry 2015-12-04 17:20:04 +00:00
ExecutionEngine [Orc] Rename IndirectStubsManagerBase to IndirectStubsManager. 2015-12-06 19:44:45 +00:00
Fuzzer [LibFuzzer] Introducing FUZZER_FLAG_UNSIGNED and using it for seeding. 2015-12-10 20:41:53 +00:00
IR [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LTO MSVC complains about this being ambiguous. 2015-12-04 22:26:21 +00:00
LibDriver [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
LineEditor
Linker Fix another case where the linkage was not set. 2015-12-10 18:44:26 +00:00
MC Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
Object Use make_range to reduce mentions of iterator type. NFC 2015-12-06 05:08:07 +00:00
Option [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
Passes [PM] Port StripDeadPrototypes to the new pass manager 2015-10-30 23:28:12 +00:00
ProfileData [PGO] Stop using invalid char in instr variable names. 2015-12-12 17:28:03 +00:00
Support Revert r255444. 2015-12-13 04:14:39 +00:00
TableGen [TblGen] ArrayRefize TGParser. No functional change intended. 2015-10-24 12:46:45 +00:00
Target Fix line endings 2015-12-13 12:49:48 +00:00
Transforms [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions. 2015-12-13 16:55:46 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00