Reviewed-By: Vincent Lejeune <vljn at ovi.com>
----- Mail original ----- > De : Tom Stellard <t...@stellard.net> > À : mesa-dev@lists.freedesktop.org > Cc : Tom Stellard <thomas.stell...@amd.com> > Envoyé le : Mercredi 28 novembre 2012 23h50 > Objet : [Mesa-dev] [PATCH 4/5] AMDGPU: Remove or document commented out code > > From: Tom Stellard <thomas.stell...@amd.com> > > --- > lib/Target/AMDGPU/AMDILCFGStructurizer.cpp | 97 +++--------------------------- > lib/Target/AMDGPU/AMDILISelDAGToDAG.cpp | 2 +- > lib/Target/AMDGPU/AMDILIntrinsicInfo.cpp | 2 - > lib/Target/AMDGPU/SIInstructions.td | 4 ++ > 4 files changed, 13 insertions(+), 92 deletions(-) > > diff --git a/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp > b/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp > index b909d67..c43a76c 100644 > --- a/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp > +++ b/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp > @@ -325,33 +325,13 @@ bool CFGStructurizer<PassT>::prepare(FuncT > &func, PassT &pass, > TRI = tri; > > bool changed = false; > - //func.RenumberBlocks(); > > - //to do, if not reducible flow graph, make it so ??? > + //FIXME: if not reducible flow graph, make it so ??? > > if (DEBUGME) { > errs() << "AMDGPUCFGStructurizer::prepare\n"; > - //func.viewCFG(); > - //func.viewCFGOnly(); > - //func.dump(); > - } > - > - //FIXME: gcc complains on this. > - //domTree = &pass.getAnalysis<DomTreeT>(); > - //domTree = CFGTraits::getDominatorTree(pass); > - //if (DEBUGME) { > - // domTree->print(errs()); > - //} > - > - //FIXME: gcc complains on this. > - //domTree = &pass.getAnalysis<DomTreeT>(); > - //postDomTree = CFGTraits::getPostDominatorTree(pass); > - //if (DEBUGME) { > - // postDomTree->print(errs()); > - //} > - > - //FIXME: gcc complains on this. > - //loopInfo = &pass.getAnalysis<LoopInfoT>(); > + } > + > loopInfo = CFGTraits::getLoopInfo(pass); > if (DEBUGME) { > errs() << "LoopInfo:\n"; > @@ -394,8 +374,6 @@ bool CFGStructurizer<PassT>::prepare(FuncT &func, > PassT &pass, > retBlks.push_back(curBlk); > } > assert(curBlk->succ_size() <= 2); > - //assert(curBlk->size() > 0); > - //removeEmptyBlock(curBlk) ?? > } //for > > if (retBlks.size() >= 2) { > @@ -413,35 +391,22 @@ bool CFGStructurizer<PassT>::run(FuncT &func, > PassT &pass, > funcRep = &func; > TRI = tri; > > - //func.RenumberBlocks(); > - > //Assume reducible CFG... > if (DEBUGME) { > errs() << "AMDGPUCFGStructurizer::run\n"; > - //errs() << func.getFunction()->getNameStr() << > "\n"; > func.viewCFG(); > - //func.viewCFGOnly(); > - //func.dump(); > } > > -#if 1 > - //FIXME: gcc complains on this. > - //domTree = &pass.getAnalysis<DomTreeT>(); > domTree = CFGTraits::getDominatorTree(pass); > if (DEBUGME) { > domTree->print(errs(), (const llvm::Module*)0); > } > -#endif > > - //FIXME: gcc complains on this. > - //domTree = &pass.getAnalysis<DomTreeT>(); > postDomTree = CFGTraits::getPostDominatorTree(pass); > if (DEBUGME) { > postDomTree->print(errs()); > } > > - //FIXME: gcc complains on this. > - //loopInfo = &pass.getAnalysis<LoopInfoT>(); > loopInfo = CFGTraits::getLoopInfo(pass); > if (DEBUGME) { > errs() << "LoopInfo:\n"; > @@ -449,7 +414,6 @@ bool CFGStructurizer<PassT>::run(FuncT &func, > PassT &pass, > } > > orderBlocks(); > -//#define STRESSTEST > #ifdef STRESSTEST > //Use the worse block ordering to test the algorithm. > ReverseVector(orderedBlks); > @@ -526,7 +490,6 @@ bool CFGStructurizer<PassT>::run(FuncT &func, > PassT &pass, > errs() << "repeat processing SCC" << > getSCCNum(curBlk) > << "sccNumIter = " << sccNumIter > << "\n"; > func.viewCFG(); > - //func.viewCFGOnly(); > } > } else { > // Finish the current scc. > @@ -590,7 +553,6 @@ bool CFGStructurizer<PassT>::run(FuncT &func, > PassT &pass, > > if (DEBUGME) { > func.viewCFG(); > - //func.dump(); > } > > if (!finish) { > @@ -673,7 +635,6 @@ int CFGStructurizer<PassT>::patternMatchGroup(BlockT > *curBlk) { > int numMatch = 0; > numMatch += serialPatternMatch(curBlk); > numMatch += ifPatternMatch(curBlk); > - //numMatch += switchPatternMatch(curBlk); > numMatch += loopendPatternMatch(curBlk); > numMatch += loopPatternMatch(curBlk); > return numMatch; > @@ -915,10 +876,8 @@ int > CFGStructurizer<PassT>::loopbreakPatternMatch(LoopT *loopRep, > } // check all exit blocks > > if (allNotInPath) { > -#if 1 > > // TODO: Simplify, maybe separate function? > - //funcRep->viewCFG(); > LoopT *parentLoopRep = loopRep->getParentLoop(); > BlockT *parentLoopHeader = NULL; > if (parentLoopRep) > @@ -944,9 +903,6 @@ int > CFGStructurizer<PassT>::loopbreakPatternMatch(LoopT *loopRep, > } > return -1; > } > -#else > - return -1; > -#endif > } > > // Handle side entry to exit path. > @@ -996,7 +952,6 @@ int > CFGStructurizer<PassT>::loopbreakPatternMatch(LoopT *loopRep, > } > } // else > > - // LoopT *exitLandLoop = loopInfo->getLoopFor(exitLandBlk); > exitLandBlk = recordLoopLandBlock(loopRep, exitLandBlk, exitBlks, > exitBlkSet); > > // Fold break into the breaking block. Leverage across level breaks. > @@ -1107,8 +1062,7 @@ int > CFGStructurizer<PassT>::handleJumpintoIfImp(BlockT *headBlk, > errs() << "check down = BB" << > downBlk->getNumber(); > } > > - if (//postDomTree->dominates(downBlk, falseBlk) && > - singlePathTo(falseBlk, downBlk) == SinglePath_InPath) { > + if (singlePathTo(falseBlk, downBlk) == SinglePath_InPath) { > if (DEBUGME) { > errs() << " working\n"; > } > @@ -1120,7 +1074,7 @@ int > CFGStructurizer<PassT>::handleJumpintoIfImp(BlockT *headBlk, > num += serialPatternMatch(*headBlk->succ_begin()); > num += serialPatternMatch(*(++headBlk->succ_begin())); > num += ifPatternMatch(headBlk); > - assert(num > 0); // > + assert(num > 0); > > break; > } > @@ -1195,16 +1149,6 @@ int > CFGStructurizer<PassT>::improveSimpleJumpintoIf(BlockT *headBlk, > return 0; > } > > -#if 0 > - if (DEBUGME) { > - errs() << "improveSimpleJumpintoIf: "; > - showImproveSimpleJumpintoIf(headBlk, trueBlk, falseBlk, landBlk, 0); > - } > -#endif > - > - // unsigned landPredSize = landBlk ? landBlk->pred_size() : 0; > - // May consider the # landBlk->pred_size() as it represents the number of > - // assignment initReg = .. needed to insert. > migrateTrue = needMigrateBlock(trueBlk); > migrateFalse = needMigrateBlock(falseBlk); > > @@ -1225,7 +1169,6 @@ int > CFGStructurizer<PassT>::improveSimpleJumpintoIf(BlockT *headBlk, > if (DEBUGME) { > errs() << "before improveSimpleJumpintoIf: "; > showImproveSimpleJumpintoIf(headBlk, trueBlk, falseBlk, landBlk, 0); > - //showImproveSimpleJumpintoIf(headBlk, trueBlk, falseBlk, landBlk, 1); > } > > // org: headBlk => if () {trueBlk} else {falseBlk} => landBlk > @@ -1308,7 +1251,6 @@ int > CFGStructurizer<PassT>::improveSimpleJumpintoIf(BlockT *headBlk, > // (initVal != 0) > CFGTraits::insertAssignInstrBefore(falseBlk, passRep, initReg, 0); > } > - //CFGTraits::insertInstrBefore(insertPos, AMDGPU::ENDIF, passRep); > > if (landBlkHasOtherPred) { > // add endif > @@ -1327,7 +1269,6 @@ int > CFGStructurizer<PassT>::improveSimpleJumpintoIf(BlockT *headBlk, > if (DEBUGME) { > errs() << "result from improveSimpleJumpintoIf: "; > showImproveSimpleJumpintoIf(headBlk, trueBlk, falseBlk, landBlk, 0); > - //showImproveSimpleJumpintoIf(headBlk, trueBlk, falseBlk, landBlk, 1); > } > > // update landBlk > @@ -1395,7 +1336,6 @@ void > CFGStructurizer<PassT>::handleLoopcontBlock(BlockT *contingBlk, > } > > settleLoopcontBlock(contingBlk, contBlk, initReg); > - //contingBlk->removeSuccessor(loopHeader); > } //handleLoopcontBlock > > template<class PassT> > @@ -1404,7 +1344,6 @@ void CFGStructurizer<PassT>::mergeSerialBlock(BlockT > *dstBlk, BlockT *srcBlk) { > errs() << "serialPattern BB" << > dstBlk->getNumber() > << " <= BB" << srcBlk->getNumber() > << "\n"; > } > - //removeUnconditionalBranch(dstBlk); > dstBlk->splice(dstBlk->end(), srcBlk, srcBlk->begin(), > srcBlk->end()); > > dstBlk->removeSuccessor(srcBlk); > @@ -1480,7 +1419,6 @@ void > CFGStructurizer<PassT>::mergeIfthenelseBlock(InstrT *branchInstr, > } > CFGTraits::insertInstrBefore(branchInstrPos, AMDGPU::ENDIF, passRep); > > - //curBlk->remove(branchInstrPos); > branchInstr->eraseFromParent(); > > if (landBlk && trueBlk && falseBlk) { > @@ -1643,7 +1581,6 @@ void > CFGStructurizer<PassT>::mergeLoopbreakBlock(BlockT *exitingBlk, > } //if_logical > > //now branchInst can be erase safely > - //exitingBlk->eraseFromParent(branchInstr); > branchInstr->eraseFromParent(); > > //now take care of successors, retire blocks > @@ -1714,12 +1651,11 @@ void > CFGStructurizer<PassT>::settleLoopcontBlock(BlockT *contingBlk, > CFGTraits::insertCondBranchBefore(branchInstrPos, branchOpcode, > passRep, > DL); > } > > - //contingBlk->eraseFromParent(branchInstr); > branchInstr->eraseFromParent(); > } else { > - /* if we've arrived here then we've already erased the branch > instruction > - * travel back up the basic block to see the last reference of our debug > location > - * we've just inserted that reference here so it should be > representative */ > + // if we've arrived here then we've already erased the branch > instruction > + // travel back up the basic block to see the last reference of our debug > location > + // we've just inserted that reference here so it should be > representative > if (setReg != INVALIDREGNUM) { > CFGTraits::insertAssignInstrBefore(contingBlk, passRep, setReg, 1); > // insertEnd to ensure phi-moves, if exist, go before the > continue-instr. > @@ -1749,7 +1685,6 @@ CFGStructurizer<PassT>::relocateLoopcontBlock(LoopT > *parentLoopRep, > BlockT *exitLandBlk) { > std::set<BlockT *> endBlkSet; > > -// BlockT *parentLoopHead = parentLoopRep->getHeader(); > > > for (typename std::set<BlockT *>::const_iterator iter = > exitBlkSet.begin(), > @@ -2155,17 +2090,6 @@ void > CFGStructurizer<PassT>::addDummyExitBlock(SmallVector<BlockT*, > if (curInstr) { > curInstr->eraseFromParent(); > } > -#if 0 > - if (curBlk->size()==0 && curBlk->pred_size() == 1) { > - if (DEBUGME) { > - errs() << "Replace empty block BB" << > curBlk->getNumber() > - << " with dummyExitBlock\n"; > - } > - BlockT *predb = *curBlk->pred_begin(); > - predb->removeSuccessor(curBlk); > - curBlk = predb; > - } //handle empty curBlk > -#endif > curBlk->addSuccessor(dummyExitBlk); > if (DEBUGME) { > errs() << "Add dummyExitBlock to BB" << > curBlk->getNumber() > @@ -2213,8 +2137,6 @@ void CFGStructurizer<PassT>::retireBlock(BlockT > *dstBlk, BlockT *srcBlk) { > } > > srcBlkInfo->isRetired = true; > - //int i = srcBlk->succ_size(); > - //int j = srcBlk->pred_size(); > assert(srcBlk->succ_size() == 0 && srcBlk->pred_size() == 0 > && "can't retire block yet"); > } > @@ -2562,13 +2484,11 @@ protected: > public: > AMDGPUCFGStructurizer(char &pid, TargetMachine &tm); > const TargetInstrInfo *getTargetInstrInfo() const; > - //bool runOnMachineFunction(MachineFunction &F); > > private: > > }; //end of class AMDGPUCFGStructurizer > > -//char AMDGPUCFGStructurizer::ID = 0; > } //end of namespace llvm > AMDGPUCFGStructurizer::AMDGPUCFGStructurizer(char &pid, TargetMachine > &tm > ) > @@ -3063,7 +2983,6 @@ struct CFGStructTraits<AMDGPUCFGStructurizer> { > MachineFunction *func = srcBlk->getParent(); > MachineBasicBlock *newBlk = func->CreateMachineBasicBlock(); > func->push_back(newBlk); //insert to function > - //newBlk->setNumber(srcBlk->getNumber()); > for (MachineBasicBlock::iterator iter = srcBlk->begin(), > iterEnd = srcBlk->end(); > iter != iterEnd; ++iter) { > diff --git a/lib/Target/AMDGPU/AMDILISelDAGToDAG.cpp > b/lib/Target/AMDGPU/AMDILISelDAGToDAG.cpp > index 9477b52..10ce6ad 100644 > --- a/lib/Target/AMDGPU/AMDILISelDAGToDAG.cpp > +++ b/lib/Target/AMDGPU/AMDILISelDAGToDAG.cpp > @@ -211,7 +211,7 @@ const Value * > AMDGPUDAGToDAGISel::getBasePointerValue(const > Value *V) { > ValueQueue.push(I->getOperand(x)); > } > } else { > - // assert(0 && "Found a Value that we didn't know how > to handle!"); > + assert(!"Found a Value that we didn't know how to > handle!"); > } > } > ValueQueue.pop(); > diff --git a/lib/Target/AMDGPU/AMDILIntrinsicInfo.cpp > b/lib/Target/AMDGPU/AMDILIntrinsicInfo.cpp > index 75bdd37..0f65ce9 100644 > --- a/lib/Target/AMDGPU/AMDILIntrinsicInfo.cpp > +++ b/lib/Target/AMDGPU/AMDILIntrinsicInfo.cpp > @@ -37,8 +37,6 @@ AMDGPUIntrinsicInfo::getName(unsigned int IntrID, Type > **Tys, > #undef GET_INTRINSIC_NAME_TABLE > }; > > - //assert(!isOverloaded(IntrID) > - //&& "AMDGPU Intrinsics are not overloaded"); > if (IntrID < Intrinsic::num_intrinsics) { > return 0; > } > diff --git a/lib/Target/AMDGPU/SIInstructions.td > b/lib/Target/AMDGPU/SIInstructions.td > index 8512b48..a12ce55 100644 > --- a/lib/Target/AMDGPU/SIInstructions.td > +++ b/lib/Target/AMDGPU/SIInstructions.td > @@ -6,6 +6,10 @@ > // License. See LICENSE.TXT for details. > // > //===----------------------------------------------------------------------===// > +// This file was originally auto-generated from a GPU register header file > and > +// all the instruction definitions were originally commented out. > Instructions > +// that are not yet supported remain commented out. > +//===----------------------------------------------------------------------===// > > def isSI : Predicate<"Subtarget.device()" > "->getGeneration() == > AMDGPUDeviceInfo::HD7XXX">; > -- > 1.7.11.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev