1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/include/llvm
Cong Hou cc25d3b7d5 Don't punish vectorized arithmetic instruction whose type will be split to multiple registers
Currently in LLVM's cost model, a vectorized arithmetic instruction will have
high cost if its type is split into multiple registers. However, this
punishment is too heavy and unnecessary. The overhead of the split should not
be on arithmetic instructions but instructions that implement the split. Note
that during vectorization we have calculated the register pressure, and we
only choose proper interleaving factor (and also vectorization factor) so
that we don't use more registers than the maximum number.

Here is a very simple example: if a vadd has the cost 1, and if we double VF
so that we need two registers to perform it, then its cost will become 4 with
the current implementation, which will prevent us to use larger VF.


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

llvm-svn: 254671
2015-12-04 00:36:58 +00:00
..
ADT [ARM] Add ARMv8.2-A to TargetParser 2015-12-01 10:33:56 +00:00
Analysis [Analysis] Become aware of MSVC's new/delete functions 2015-12-03 22:45:19 +00:00
AsmParser AsmParser: Save and restore the parsing state for types using SlotMapping. 2015-08-21 21:32:39 +00:00
Bitcode Remove "ExportingModule" from ThinLTO Index (NFC) 2015-12-03 02:37:23 +00:00
CodeGen Don't punish vectorized arithmetic instruction whose type will be split to multiple registers 2015-12-04 00:36:58 +00:00
Config [autoconf] Fix MinGW build 2015-11-28 00:54:12 +00:00
DebugInfo [llvm-dwp] Emit a rather fictional debug_cu_index 2015-12-02 06:21:34 +00:00
ExecutionEngine Simplify the linking of recursive data. 2015-11-27 20:28:19 +00:00
IR Interface to attach maximum function count from PGO to module as module flags. 2015-12-03 20:57:37 +00:00
IRReader Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LibDriver LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
LineEditor Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Linker Delete dead code. 2015-12-03 14:35:15 +00:00
LTO Simplify since this function never fails. 2015-12-03 23:56:42 +00:00
MC [llvm-dwp] Emit a rather fictional debug_cu_index 2015-12-02 06:21:34 +00:00
Object Remove "ExportingModule" from ThinLTO Index (NFC) 2015-12-03 02:37:23 +00:00
Option [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
Passes Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ProfileData [llvm-profdata] Add support for weighted merge of profile data 2015-12-04 00:00:20 +00:00
Support Revert "raw_ostream: << operator for callables with raw_stream argument" 2015-12-03 23:00:28 +00:00
TableGen Re-commit r247216: "Fix Clang-tidy misc-use-override warnings, other minor fixes" 2015-09-10 16:49:58 +00:00
Target Revert "raw_ostream: << operator for callables with raw_stream argument" 2015-12-03 23:00:28 +00:00
Transforms Modify FunctionImport to take a callback to load modules 2015-12-02 02:00:29 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h [PGO] Revert revision r254021,r254028,r254035 2015-11-24 23:49:08 +00:00
LinkAllIR.h
LinkAllPasses.h [PGO] Revert revision r254021,r254028,r254035 2015-11-24 23:49:08 +00:00
module.modulemap llvm/module.modulemap: AVR.def should be textual header. 2015-10-24 00:25:18 +00:00
module.modulemap.build [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Pass.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassAnalysisSupport.h [LPM] Teach the legacy pass manager to support *using* an analysis 2015-08-19 03:02:12 +00:00
PassInfo.h Reformat partially. 2015-10-05 04:46:30 +00:00
PassRegistry.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassSupport.h Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00