From: Dehao Chen Date: Fri, 16 Sep 2016 18:27:20 +0000 (+0000) Subject: Change extractProfMetadata and extractProfTotalWeight to const member function. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=47462143b2c28b5bf0b23ad35c06664775e18cdb;p=llvm Change extractProfMetadata and extractProfTotalWeight to const member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@281760 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/Instruction.h b/include/llvm/IR/Instruction.h index 027d9f3eaf5..94992997078 100644 --- a/include/llvm/IR/Instruction.h +++ b/include/llvm/IR/Instruction.h @@ -232,12 +232,12 @@ public: /// Retrieve the raw weight values of a conditional branch or select. /// Returns true on success with profile weights filled in. /// Returns false if no metadata or invalid metadata was found. - bool extractProfMetadata(uint64_t &TrueVal, uint64_t &FalseVal); + bool extractProfMetadata(uint64_t &TrueVal, uint64_t &FalseVal) const; /// Retrieve total raw weight values of a branch. /// Returns true on success with profile total weights filled in. /// Returns false if no metadata was found. - bool extractProfTotalWeight(uint64_t &TotalVal); + bool extractProfTotalWeight(uint64_t &TotalVal) const; /// Set the debug location information for this instruction. void setDebugLoc(DebugLoc Loc) { DbgLoc = std::move(Loc); } diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index 223326b715f..51ef2fad7ef 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -314,8 +314,7 @@ ValueAsMetadata *ValueAsMetadata::get(Value *V) { if (!Entry) { assert((isa(V) || isa(V) || isa(V)) && "Expected constant or function-local value"); - assert(!V->IsUsedByMD && - "Expected this to be the only metadata use"); + assert(!V->IsUsedByMD && "Expected this to be the only metadata use"); V->IsUsedByMD = true; if (auto *C = dyn_cast(V)) Entry = new ConstantAsMetadata(C); @@ -360,14 +359,12 @@ void ValueAsMetadata::handleRAUW(Value *From, Value *To) { auto &Store = Context.pImpl->ValuesAsMetadata; auto I = Store.find(From); if (I == Store.end()) { - assert(!From->IsUsedByMD && - "Expected From not to be used by metadata"); + assert(!From->IsUsedByMD && "Expected From not to be used by metadata"); return; } // Remove old entry from the map. - assert(From->IsUsedByMD && - "Expected From to be used by metadata"); + assert(From->IsUsedByMD && "Expected From to be used by metadata"); From->IsUsedByMD = false; ValueAsMetadata *MD = I->second; assert(MD && "Expected valid metadata"); @@ -404,8 +401,7 @@ void ValueAsMetadata::handleRAUW(Value *From, Value *To) { } // Update MD in place (and update the map entry). - assert(!To->IsUsedByMD && - "Expected this to be the only metadata use"); + assert(!To->IsUsedByMD && "Expected this to be the only metadata use"); To->IsUsedByMD = true; MD->V = To; Entry = MD; @@ -1056,17 +1052,11 @@ void NamedMDNode::setOperand(unsigned I, MDNode *New) { getNMDOps(Operands)[I].reset(New); } -void NamedMDNode::eraseFromParent() { - getParent()->eraseNamedMetadata(this); -} +void NamedMDNode::eraseFromParent() { getParent()->eraseNamedMetadata(this); } -void NamedMDNode::dropAllReferences() { - getNMDOps(Operands).clear(); -} +void NamedMDNode::dropAllReferences() { getNMDOps(Operands).clear(); } -StringRef NamedMDNode::getName() const { - return StringRef(Name); -} +StringRef NamedMDNode::getName() const { return StringRef(Name); } //===----------------------------------------------------------------------===// // Instruction Metadata method implementations. @@ -1200,7 +1190,7 @@ void Instruction::setMetadata(unsigned KindID, MDNode *Node) { DbgLoc = DebugLoc(Node); return; } - + // Handle the case when we're adding/updating metadata on an instruction. if (Node) { auto &Info = getContext().pImpl->InstructionMetadata[this]; @@ -1217,7 +1207,7 @@ void Instruction::setMetadata(unsigned KindID, MDNode *Node) { (getContext().pImpl->InstructionMetadata.count(this) > 0)) && "HasMetadata bit out of date!"); if (!hasMetadataHashEntry()) - return; // Nothing to remove! + return; // Nothing to remove! auto &Info = getContext().pImpl->InstructionMetadata[this]; // Handle removal of an existing value. @@ -1252,12 +1242,13 @@ MDNode *Instruction::getMetadataImpl(unsigned KindID) const { void Instruction::getAllMetadataImpl( SmallVectorImpl> &Result) const { Result.clear(); - + // Handle 'dbg' as a special case since it is not stored in the hash table. if (DbgLoc) { Result.push_back( std::make_pair((unsigned)LLVMContext::MD_dbg, DbgLoc.getAsMDNode())); - if (!hasMetadataHashEntry()) return; + if (!hasMetadataHashEntry()) + return; } assert(hasMetadataHashEntry() && @@ -1279,10 +1270,11 @@ void Instruction::getAllMetadataOtherThanDebugLocImpl( Info.getAll(Result); } -bool Instruction::extractProfMetadata(uint64_t &TrueVal, uint64_t &FalseVal) { - assert((getOpcode() == Instruction::Br || - getOpcode() == Instruction::Select) && - "Looking for branch weights on something besides branch or select"); +bool Instruction::extractProfMetadata(uint64_t &TrueVal, + uint64_t &FalseVal) const { + assert( + (getOpcode() == Instruction::Br || getOpcode() == Instruction::Select) && + "Looking for branch weights on something besides branch or select"); auto *ProfileData = getMetadata(LLVMContext::MD_prof); if (!ProfileData || ProfileData->getNumOperands() != 3) @@ -1303,7 +1295,7 @@ bool Instruction::extractProfMetadata(uint64_t &TrueVal, uint64_t &FalseVal) { return true; } -bool Instruction::extractProfTotalWeight(uint64_t &TotalVal) { +bool Instruction::extractProfTotalWeight(uint64_t &TotalVal) const { assert((getOpcode() == Instruction::Br || getOpcode() == Instruction::Select || getOpcode() == Instruction::Call ||