mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -873,6 +873,17 @@ EmitSpecialNode(SDNode *Node, bool IsClone, bool IsCloned,
|
||||
break;
|
||||
}
|
||||
|
||||
case ISD::LIFETIME_START:
|
||||
case ISD::LIFETIME_END: {
|
||||
unsigned TarOp = (Node->getOpcode() == ISD::LIFETIME_START) ?
|
||||
TargetOpcode::LIFETIME_START : TargetOpcode::LIFETIME_END;
|
||||
|
||||
FrameIndexSDNode *FI = dyn_cast<FrameIndexSDNode>(Node->getOperand(1));
|
||||
BuildMI(*MBB, InsertPos, Node->getDebugLoc(), TII->get(TarOp))
|
||||
.addFrameIndex(FI->getIndex());
|
||||
break;
|
||||
}
|
||||
|
||||
case ISD::INLINEASM: {
|
||||
unsigned NumOps = Node->getNumOperands();
|
||||
if (Node->getOperand(NumOps-1).getValueType() == MVT::Glue)
|
||||
|
||||
Reference in New Issue
Block a user