llvm-project/llvm/test
Sam Parker 3828c6ff94 [ARM] ARMCodeGenPrepare backend pass
Arm specific codegen prepare is implemented to perform type promotion
on icmp operands, which can enable the removal of uxtb and uxth
(unsigned extend) instructions. This is possible because performing
type promotion before ISel alleviates this duty from the DAG builder
which has to perform legalisation, but has a limited view on data
ranges.
    
The pass visits any instruction operand of an icmp and creates a
worklist to traverse the use-def tree to determine whether the values
can simply be promoted. Our concern is values in the registers
overflowing the narrow (i8, i16) data range, so instructions marked
with nuw can be promoted easily. For add and sub instructions, we are
able to use the parallel dsp instructions to operate on scalar data
types and avoid overflowing bits. Underflowing adds and subs are also
permitted when the result is only used by an unsigned icmp.

Differential Revision: https://reviews.llvm.org/D48832

llvm-svn: 337687
2018-07-23 12:27:47 +00:00
..
Analysis [SCEV] Fix buggy behavior in getAddExpr with truncs 2018-07-19 01:46:21 +00:00
Assembler [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
Bindings
Bitcode [FileCheck] Add -allow-deprecated-dag-overlap to failing llvm tests 2018-07-11 20:25:49 +00:00
BugPoint
CodeGen [ARM] ARMCodeGenPrepare backend pass 2018-07-23 12:27:47 +00:00
DebugInfo [DebugInfo] Generate .debug_names section when it makes sense 2018-07-20 12:59:05 +00:00
Demangle Fix a few warnings and style issues in MS demangler. 2018-07-20 18:07:33 +00:00
Examples
ExecutionEngine Revert "Re-land r335297 "[X86] Implement more of x86-64 large and medium PIC code models"" 2018-06-28 17:56:43 +00:00
Feature
FileCheck [FileCheck] Provide an option for FileCheck to dump original input to stderr on failure 2018-07-20 20:21:57 +00:00
Instrumentation [MSan] run materializeChecks() before materializeStores() 2018-07-20 16:28:49 +00:00
Integer
JitListener
LTO [LTO] Fix linking with an alias defined using another alias. 2018-07-13 21:58:55 +00:00
Linker
MC [AArch64][SVE] Asm: Support for bit/byte reverse operations. 2018-07-20 09:00:44 +00:00
Object [ELF] Change isSectionData to exclude SHF_EXECINSTR 2018-06-23 00:15:33 +00:00
ObjectYAML
Other [ThinLTO] Enable ThinLTO WholeProgramDevirt and LowerTypeTests in new PM 2018-07-19 14:51:32 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen [json, test] Fix the json.td test - the path to python could contain spaces 2018-07-13 15:10:53 +00:00
ThinLTO/X86 [ThinLTO] Only emit referenced type id records in index files 2018-07-19 22:25:56 +00:00
Transforms [GVN] Don't use the eliminated load as an available value in phi construction 2018-07-23 12:14:45 +00:00
Unit
Verifier Recommit r335794 "Add support for generating a call graph profile from Branch Frequency Info." with fix for removed functions. 2018-07-16 00:28:24 +00:00
YAMLParser
tools [NFC][MCA] ZnVer1: Update RegisterFile to identify false dependencies on partially written registers. 2018-07-23 10:10:13 +00:00
.clang-format
CMakeLists.txt Make check-llvm depend on llvm-undname 2018-07-20 18:42:19 +00:00
TestRunner.sh
lit.cfg.py And add a lit substitution for llvm-undname, as the comment says to 2018-07-20 18:45:01 +00:00
lit.site.cfg.py.in