mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Merge information about the number of zero, one, and sign bits of live-out registers
at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126170 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -644,7 +644,10 @@ SDValue RegsForValue::getCopyFromRegs(SelectionDAG &DAG,
|
||||
!RegisterVT.isInteger() || RegisterVT.isVector() ||
|
||||
!FuncInfo.LiveOutRegInfo.inBounds(Regs[Part+i]))
|
||||
continue;
|
||||
|
||||
|
||||
if (FuncInfo.PHIDestRegs.count(Regs[Part+i]) && !FuncInfo.AllPredsVisited)
|
||||
continue;
|
||||
|
||||
const FunctionLoweringInfo::LiveOutInfo &LOI =
|
||||
FuncInfo.LiveOutRegInfo[Regs[Part+i]];
|
||||
|
||||
@ -6466,6 +6469,9 @@ SelectionDAGBuilder::HandlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!EnableFastISel)
|
||||
FuncInfo.PHISrcToDestMap[Reg] = FuncInfo.ValueMap[PN];
|
||||
|
||||
// Remember that this register needs to added to the machine PHI node as
|
||||
// the input for this MBB.
|
||||
SmallVector<EVT, 4> ValueVTs;
|
||||
|
Reference in New Issue
Block a user