diff options
| author | Matthias Braun <matze@braunis.de> | 2016-05-06 22:43:46 +0000 |
|---|---|---|
| committer | Matthias Braun <matze@braunis.de> | 2016-05-06 22:43:46 +0000 |
| commit | 8f429ead58999e584d6857ebc334564f88489de0 (patch) | |
| tree | b5fc8d08874e940d53b467c99366df16144ff626 /llvm/lib | |
| parent | 5d105a977e960a80821bac8281d0186fdc7dfbff (diff) | |
| download | bcm5719-llvm-8f429ead58999e584d6857ebc334564f88489de0.tar.gz bcm5719-llvm-8f429ead58999e584d6857ebc334564f88489de0.zip | |
DetectDeadLanes: Cleanup, assert on some impossible cases.
llvm-svn: 268814
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/DetectDeadLanes.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/DetectDeadLanes.cpp b/llvm/lib/CodeGen/DetectDeadLanes.cpp index cadc40af8d9..6909cac7b48 100644 --- a/llvm/lib/CodeGen/DetectDeadLanes.cpp +++ b/llvm/lib/CodeGen/DetectDeadLanes.cpp @@ -76,7 +76,7 @@ private: void transferUsedLanesStep(const MachineOperand &Def, LaneBitmask UsedLanes); /// Given a use regiser operand \p Use and a mask of defined lanes, check - /// if the operand belongs to a lowerToCopies() instruction, transfer the + /// if the operand belongs to a lowersToCopies() instruction, transfer the /// mask to the def and put the instruction into the worklist. void transferDefinedLanesStep(const MachineOperand &Use, LaneBitmask DefinedLanes); @@ -85,7 +85,7 @@ private: /// of COPY-like instruction, determine which lanes are defined at the output /// operand \p Def. LaneBitmask transferDefinedLanes(const MachineOperand &Def, unsigned OpNum, - LaneBitmask DefinedLanes); + LaneBitmask DefinedLanes) const; LaneBitmask determineInitialDefinedLanes(unsigned Reg); LaneBitmask determineInitialUsedLanes(unsigned Reg); @@ -294,8 +294,7 @@ void DetectDeadLanes::transferDefinedLanesStep(const MachineOperand &Use, } LaneBitmask DetectDeadLanes::transferDefinedLanes(const MachineOperand &Def, - unsigned OpNum, - LaneBitmask DefinedLanes) { + unsigned OpNum, LaneBitmask DefinedLanes) const { const MachineInstr &MI = *Def.getParent(); // Translate DefinedLanes if necessary. switch (MI.getOpcode()) { @@ -330,8 +329,8 @@ LaneBitmask DetectDeadLanes::transferDefinedLanes(const MachineOperand &Def, llvm_unreachable("function must be called with COPY-like instruction"); } - unsigned SubIdx = Def.getSubReg(); - DefinedLanes = TRI->composeSubRegIndexLaneMask(SubIdx, DefinedLanes); + assert(Def.getSubReg() == 0 && + "Should not have subregister defs in machine SSA phase"); DefinedLanes &= MRI->getMaxLaneMaskForVReg(Def.getReg()); return DefinedLanes; } @@ -396,9 +395,9 @@ LaneBitmask DetectDeadLanes::determineInitialDefinedLanes(unsigned Reg) { if (DefMI.isImplicitDef() || Def.isDead()) return 0; - unsigned SubReg = Def.getSubReg(); - return SubReg != 0 ? TRI->getSubRegIndexLaneMask(SubReg) - : MRI->getMaxLaneMaskForVReg(Reg); + assert(Def.getSubReg() == 0 && + "Should not have subregister defs in machine SSA phase"); + return MRI->getMaxLaneMaskForVReg(Reg); } LaneBitmask DetectDeadLanes::determineInitialUsedLanes(unsigned Reg) { |

