@@ -1610,33 +1610,33 @@ PPCRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
16101610 // Get the instruction opcode.
16111611 unsigned OpC = MI.getOpcode ();
16121612
1613- if ((OpC == PPC::DYNAREAOFFSET || OpC == PPC::DYNAREAOFFSET8)) {
1613+ switch (OpC) {
1614+ case PPC::DYNAREAOFFSET:
1615+ case PPC::DYNAREAOFFSET8:
16141616 lowerDynamicAreaOffset (II);
16151617 // lowerDynamicAreaOffset erases II
16161618 return true ;
1619+ case PPC::DYNALLOC:
1620+ case PPC::DYNALLOC8: {
1621+ // Special case for dynamic alloca.
1622+ if (FPSI && FrameIndex == FPSI) {
1623+ lowerDynamicAlloc (II); // lowerDynamicAlloc erases II
1624+ return true ;
1625+ }
1626+ break ;
16171627 }
1618-
1619- // Special case for dynamic alloca.
1620- if (FPSI && FrameIndex == FPSI &&
1621- (OpC == PPC::DYNALLOC || OpC == PPC::DYNALLOC8)) {
1622- lowerDynamicAlloc (II);
1623- // lowerDynamicAlloc erases II
1624- return true ;
1625- }
1626-
1627- if (FPSI && FrameIndex == FPSI &&
1628- (OpC == PPC::PREPARE_PROBED_ALLOCA_64 ||
1629- OpC == PPC::PREPARE_PROBED_ALLOCA_32 ||
1630- OpC == PPC::PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64 ||
1631- OpC == PPC::PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32)) {
1632- lowerPrepareProbedAlloca (II);
1633- // lowerPrepareProbedAlloca erases II
1634- return true ;
1628+ case PPC::PREPARE_PROBED_ALLOCA_64:
1629+ case PPC::PREPARE_PROBED_ALLOCA_32:
1630+ case PPC::PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_64:
1631+ case PPC::PREPARE_PROBED_ALLOCA_NEGSIZE_SAME_REG_32: {
1632+ if (FPSI && FrameIndex == FPSI) {
1633+ lowerPrepareProbedAlloca (II); // lowerPrepareProbedAlloca erases II
1634+ return true ;
1635+ }
1636+ break ;
16351637 }
1636-
1637- // Special case for pseudo-ops SPILL_CR and RESTORE_CR, etc.
1638- switch (OpC) {
16391638 case PPC::SPILL_CR:
1639+ // Special case for pseudo-ops SPILL_CR and RESTORE_CR, etc.
16401640 lowerCRSpilling (II, FrameIndex);
16411641 return true ;
16421642 case PPC::RESTORE_CR:
0 commit comments