1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/test/CodeGen
Tim Shen c6dc619045 [SelectionDAG] Fix CombineToPreIndexedLoadStore O(n^2) behavior
This patch consists of two parts: a performance fix in DAGCombiner.cpp
and a correctness fix in SelectionDAG.cpp.

The test case tests the bug that's uncovered by the performance fix, and
fixed by the correctness fix.

The performance fix keeps the containers required by the
hasPredecessorHelper (which is a lazy DFS) and reuse them. Since
hasPredecessorHelper is called in a loop, the overall efficiency reduced
from O(n^2) to O(n), where n is the number of SDNodes.

The correctness fix keeps iterating the neighbor list even if it's time
to early return. It will return after finishing adding all neighbors to
Worklist, so that no neighbors are discarded due to the original early
return.

llvm-svn: 259691
2016-02-03 20:58:55 +00:00
..
AArch64 [ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten. 2016-02-03 17:52:29 +00:00
AMDGPU [ScheduleDAGInstrs::buildSchedGraph()] Handling of memory dependecies rewritten. 2016-02-03 17:52:29 +00:00
ARM ARM: support TLS for WoA 2016-02-03 18:21:59 +00:00
BPF Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
CPP
Generic Remove autoconf support 2016-01-26 21:29:08 +00:00
Hexagon [Hexagon] Use general purpose registers to spill pred/mod registers into 2016-01-22 19:15:58 +00:00
Inputs DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Mips [mips] Add SHF_MIPS_GPREL flag to the MIPS .sbss and .sdata sections 2016-02-03 11:50:22 +00:00
MIR Reapply r257105 "[Verifier] Check that debug values have proper size" 2016-01-15 00:46:17 +00:00
MSP430 Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
NVPTX [CUDA] Die if we ask the NVPTX backend to emit a global ctor/dtor. 2016-01-30 01:07:38 +00:00
PowerPC [SelectionDAG] Fix CombineToPreIndexedLoadStore O(n^2) behavior 2016-02-03 20:58:55 +00:00
SPARC [SPARC] Revamp AnalyzeBranch and add ReverseBranchCondition. 2016-01-13 04:44:14 +00:00
SystemZ [SystemZ] Fix wrong-code generation for certain always-false conditions 2016-02-01 18:31:19 +00:00
Thumb [MC] Use .p2align instead of .align 2016-01-26 00:03:25 +00:00
Thumb2 Revert r259662, which caused regressions on polly tests. 2016-02-03 18:05:57 +00:00
WebAssembly [WebAssembly] Fix uses of FrameIndex as store values 2016-01-30 21:43:08 +00:00
WinEH Revert r258580 and r258581. 2016-02-01 03:29:38 +00:00
X86 [X86][AVX] Add support for 64-bit VZEXT_LOAD of 256/512-bit vectors to EltsFromConsecutiveLoads 2016-02-03 09:41:59 +00:00
XCore [MC] Use .p2align instead of .align 2016-01-26 00:03:25 +00:00