1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/lib
Nemanja Ivanovic f7fafe4ce2 [PowerPC] - Legalize vector types by widening instead of integer promotion
This patch corresponds to review:
http://reviews.llvm.org/D20443

It changes the legalization strategy for illegal vector types from integer
promotion to widening. This only applies for vectors with elements of width
that is a multiple of a byte since we have hardware support for vectors with
1, 2, 3, 8 and 16 byte elements.
Integer promotion for vectors is quite expensive on PPC due to the sequence
of breaking apart the vector, extending the elements and reconstituting the
vector. Two of these operations are expensive.
This patch causes between minor and major improvements in performance on most
benchmarks. There are very few benchmarks whose performance regresses. These
regressions can be handled in a subsequent patch with a DAG combine (similar
to how this patch handles int -> fp conversions of illegal vector types).

llvm-svn: 274535
2016-07-05 09:22:29 +00:00
..
Analysis Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
AsmParser Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
CodeGen Fixed warning caused by r274402. 2016-07-04 12:10:08 +00:00
DebugInfo [pdb] Check the display name for <unnamed-tag>, not the linkage name 2016-07-01 18:43:29 +00:00
ExecutionEngine Reformat blank lines. 2016-07-04 01:26:33 +00:00
Fuzzer [libFuzzer] Let user specify extra stats file. 2016-06-30 20:43:06 +00:00
IR [IR,X86] Remove some intrinsic prefixes earlier in the auto-upgrade code so we can shorten the length of the comparison strings and avoid repeatedly comparing the common prefix. No functional change intended. 2016-07-04 20:56:38 +00:00
IRReader
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
LTO [UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael. 2016-06-22 19:50:42 +00:00
MC Add support for allowing us to create uniquely identified "COMDAT" or "ELF 2016-07-01 06:07:38 +00:00
Object Object: support empty UID/GID fields 2016-07-05 00:23:05 +00:00
ObjectYAML [YAML] Fix YAML tags appearing before the start of sequence elements 2016-06-28 21:10:26 +00:00
Option
Passes [PM] Port LoopAccessInfo analysis to new PM 2016-07-02 21:18:40 +00:00
ProfileData Revert "[Coverage] Move logic to encode filenames and mappings into llvm (NFC)" 2016-06-29 05:33:26 +00:00
Support [Support][Error] Make logAllUnhandledErrors take a Twine for the banner, rather 2016-07-04 22:47:53 +00:00
TableGen Avoid copies of std::strings and APInt/APFloats where we only read from it 2016-06-08 10:01:20 +00:00
Target [PowerPC] - Legalize vector types by widening instead of integer promotion 2016-07-05 09:22:29 +00:00
Transforms [InstCombine] enable vector select of bools -> logic folds 2016-07-03 14:34:39 +00:00
CMakeLists.txt
LLVMBuild.txt