llvm-project/llvm/test
Matthias Braun afcff2d0d9 TableGen: Fix subreg composition/concatenation
This fixes 2 problems in subregister hierarchies with multiple levels
and tuples:

1) For bigger tuples computing secondary subregs would miss 2nd order
effects.  In the test case a register like `S10_S11_S12_S13_S14` with D5
= S10_S11, D6 = S12_S13 we would correctly compute sub0 = D5, sub1 = D6
but would miss the fact that we could now form ssub0_ssub1_ssub2_ssub3
(aka sub0_sub1) = D5_D6. This is fixed by changing
computeSecondarySubRegs() to compute a fixpoint.

2) Fixing 1) exposed a problem where TableGen would create multiple
names for effectively the same subregister index. In the test case
the subregister index sub0 is composed from ssub0 and ssub1, and sub1 is
composed from ssub2 and ssub3. TableGen should not create both sub0_sub1
and ssub0_ssub1_ssub2_ssub3 as infered subregister indexes. This changes
the code to build a transitive closure of the subregister components
before forming new concatenated subregister indexes.

This fix was developed for an out of tree target. For the in-tree
targets the only change is in the register information computed for ARM.
There is a slight chance this fixed/improved some register coalescing
around the QQQQ/QQ register classes there but I couldn't see/provoke any
code generation differences.

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

llvm-svn: 311914
2017-08-28 19:48:42 +00:00
..
Analysis [CostModel][X86][XOP] Improve costs for XOP shuffles 2017-08-16 13:50:20 +00:00
Assembler Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
Bindings [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
Bitcode Parse and print DIExpressions inline to ease IR and MIR testing 2017-08-23 20:31:27 +00:00
BugPoint
CodeGen [ARM] Fix bug in ARMLoadStoreOptimizer when kill flags are missing. 2017-08-28 19:03:45 +00:00
DebugInfo [CodeView] Don't output S_UDT symbols for forward decls. 2017-08-28 18:49:04 +00:00
DllTool [llvm-dlltool] Fix creating stdcall/fastcall import libraries for i386 2017-08-16 05:18:36 +00:00
Examples
ExecutionEngine [AsmParser] Recommit: Hash is not a comment on some targets 2017-08-21 09:58:37 +00:00
Feature Add ‘llvm.experimental.constrained.fma‘ Intrinsic. 2017-08-24 04:18:24 +00:00
FileCheck
Instrumentation Revert "[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer" 2017-08-25 22:01:21 +00:00
Integer
JitListener
LTO Emit only A Single Opt Remark When Inlining 2017-08-21 16:45:47 +00:00
LibDriver [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
Linker [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level 2017-08-21 21:49:13 +00:00
MC [Power9] Add new instructions for floating point status and control registers. 2017-08-28 18:46:01 +00:00
Object [WebAssembly] Fix overflow for input with missing version 2017-08-23 21:36:04 +00:00
ObjectYAML
Other revert failing test 2017-08-19 12:24:41 +00:00
SafepointIRVerifier
SymbolRewriter
TableGen TableGen: Fix subreg composition/concatenation 2017-08-28 19:48:42 +00:00
ThinLTO/X86 [lib/Analysis] - Mark personality functions as live. 2017-08-22 08:50:56 +00:00
Transforms Create PHI node for the return value only when the return value has uses. 2017-08-28 18:57:00 +00:00
Unit
Verifier [Verifier] Diagnose invalid DIType references instead of crashing. 2017-08-25 22:08:15 +00:00
YAMLParser
tools Revert "[llvm] Add symbol table support to llvm-objcopy" 2017-08-26 03:22:25 +00:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg
lit.site.cfg.in