llvm-project/llvm/test
Matthias Braun 08abcac9dc PeepholeOptimizer: Do not form PHI with subreg arguments
When replacing a PHI the PeepholeOptimizer currently takes the register
class of the register at the first operand. This however is not correct
if this argument has a subregister index.

As there is currently no API to query the register class resulting from
applying a subregister index to all registers in a class, we can only
abort in these cases and not perform the transformation.

This changes findNextSource() to require the end of all copy chains to
not use a subregister if there is any PHI in the chain. I had to rewrite
the overly complicated inner loop there to have a good place to insert
the new check.

This fixes https://llvm.org/PR33071 (aka rdar://32262041)

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

llvm-svn: 322313
2018-01-11 21:57:03 +00:00
..
Analysis [X86] Make v2i1 and v4i1 legal types without VLX 2018-01-07 18:20:37 +00:00
Assembler [ConstantFold] Support vector index when factoring out GEP index into preceding dimensions 2017-12-04 19:56:33 +00:00
Bindings
Bitcode Limit size of non-GlobalValue name 2018-01-05 19:41:19 +00:00
BugPoint
CodeGen PeepholeOptimizer: Do not form PHI with subreg arguments 2018-01-11 21:57:03 +00:00
DebugInfo dag-combine: Transfer debug information when folding (zext (truncate x)) 2018-01-11 18:35:12 +00:00
Examples
ExecutionEngine Don't try to run MCJIT/OrcJIT EH tests when C++ library is statically linked 2018-01-08 02:48:41 +00:00
Feature
FileCheck
Instrumentation [hwasan] Implement -fsanitize-recover=hwaddress. 2017-12-20 19:05:44 +00:00
Integer
JitListener
LTO [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
Linker
MC [WebAssemlby] MC: Don't write COMDAT symbols as global imports 2018-01-11 20:35:17 +00:00
Object
ObjectYAML [WebAssembly] Explicitly specify function/global index space in YAML 2018-01-09 21:38:53 +00:00
Other [PM] pass -debug-pass-manager flag into FunctionToLoopPassAdaptor's canonicalization PM 2017-12-29 08:16:06 +00:00
SafepointIRVerifier [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes 2017-12-25 09:35:10 +00:00
SymbolRewriter
TableGen [mips] Improve diagnostics for instruction mapping 2018-01-08 16:25:40 +00:00
ThinLTO/X86 Fix crash when linking metadata with ODR type uniquing 2018-01-09 18:32:53 +00:00
Transforms [Sink] Really really fix predicate in legality check 2018-01-11 21:28:57 +00:00
Unit
Verifier Debug Info: Support DW_AT_calling_convention on composite types. 2018-01-05 01:13:37 +00:00
YAMLParser
tools temp 2018-01-09 23:00:25 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py Don't try to run MCJIT/OrcJIT EH tests when C++ library is statically linked 2018-01-08 02:48:41 +00:00
lit.site.cfg.py.in