mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
SelectionDAG: Make sure stores are always added to the LegalizedNodes list
When truncated vector stores were being custom lowered in VectorLegalizer::LegalizeOp(), the old (illegal) and new (legal) node pair was not being added to LegalizedNodes list. Instead of the legalized result being passed to VectorLegalizer::TranslateLegalizeResult(), the result was being passed back into VectorLegalizer::LegalizeOp(), which ended up adding a (new, new) pair to the list instead. This was causing an assertion failure when a custom lowered truncated vector store was the last instruction a basic block and the VectorLegalizer was unable to find it in the LegalizedNodes list when updating the DAG root. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188953 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -171,7 +171,7 @@ SDValue VectorLegalizer::LegalizeOp(SDValue Op) {
|
||||
return TranslateLegalizeResults(Op, Result);
|
||||
case TargetLowering::Custom:
|
||||
Changed = true;
|
||||
return LegalizeOp(TLI.LowerOperation(Result, DAG));
|
||||
return TranslateLegalizeResults(Op, TLI.LowerOperation(Result, DAG));
|
||||
case TargetLowering::Expand:
|
||||
Changed = true;
|
||||
return LegalizeOp(ExpandStore(Op));
|
||||
|
Reference in New Issue
Block a user