1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Pawel Bylica 714ed42dea Fix instruction scheduling live register tracking
Summary:
This patch fixes PR23405 (https://llvm.org/bugs/show_bug.cgi?id=23405).

During a node unscheduling an entry in LiveRegGens can be replaced with a new value. That corrupts the live reg tracking and LiveReg* structure is not cleared as should be during unscheduling. Problematic condition that enforces Gen replacement is `I->getSUnit()->getHeight() < LiveRegGens[I->getReg()]->getHeight()`. This condition should be checked only if LiveRegGen was set in current node unscheduling.

Test Plan: Regression test included.

Reviewers: hfinkel, atrick

Reviewed By: atrick

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9993

llvm-svn: 240538
2015-06-24 12:49:42 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
FastISel.cpp Use MCSymbols for FastISel. 2015-06-23 12:21:54 +00:00
FunctionLoweringInfo.cpp Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
InstrEmitter.cpp Avoid a Symbol -> Name -> Symbol conversion. 2015-06-22 17:46:53 +00:00
InstrEmitter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeDAG.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeFloatTypes.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeIntegerTypes.cpp SelectionDAG: fix logic for promoting shift types 2015-05-29 23:37:22 +00:00
LegalizeTypes.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeTypes.h Added promotion to EXTRACT_SUBVECTOR operand. 2015-05-25 11:33:13 +00:00
LegalizeTypesGeneric.cpp Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
LegalizeVectorOps.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegalizeVectorTypes.cpp Add SDNodes for umin, umax, smin and smax. 2015-05-15 09:03:15 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
ScheduleDAGFast.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScheduleDAGRRList.cpp Fix instruction scheduling live register tracking 2015-06-24 12:49:42 +00:00
ScheduleDAGSDNodes.cpp Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types 2015-05-29 19:43:39 +00:00
ScheduleDAGSDNodes.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScheduleDAGVLIW.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SDNodeDbgValue.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAG.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAGBuilder.cpp Avoid a Symbol -> Name -> Symbol conversion. 2015-06-22 17:46:53 +00:00
SelectionDAGBuilder.h Switch lowering: add heuristic for filling leaf nodes in the weight-balanced binary search tree 2015-06-20 17:14:07 +00:00
SelectionDAGDumper.cpp Avoid a Symbol -> Name -> Symbol conversion. 2015-06-22 17:46:53 +00:00
SelectionDAGISel.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAGPrinter.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
StatepointLowering.cpp [Statepoint] Remove unnecessary argument from Statepoint::getRelocates 2015-06-20 00:01:03 +00:00
StatepointLowering.h [StatepointLowering] Support of the gc.relocates for invoke statepoints. 2015-05-20 11:37:25 +00:00
TargetLowering.cpp propagate IR-level fast-math-flags to DAG nodes, disabled by default 2015-06-16 16:25:43 +00:00
TargetSelectionDAGInfo.cpp