Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp

Issue 14126011: Copy Bitwriter to generate PNaClBitwriter. (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Change file names to use NaCl instead of PNaCl Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
diff --git a/lib/Bitcode/Writer/ValueEnumerator.cpp b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
similarity index 91%
copy from lib/Bitcode/Writer/ValueEnumerator.cpp
copy to lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
index 4f19dd00e63966cebe2ce1057e90b23011540cff..3f9ed1cfe753888c9bdd7d0bca5d783086a910fd 100644
--- a/lib/Bitcode/Writer/ValueEnumerator.cpp
+++ b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.cpp
@@ -7,11 +7,11 @@
//
//===----------------------------------------------------------------------===//
//
-// This file implements the ValueEnumerator class.
+// This file implements the PNaClValueEnumerator class.
Karl 2013/04/25 20:48:17 applied to file: PNaCl -> NaCl
//
//===----------------------------------------------------------------------===//
-#include "ValueEnumerator.h"
+#include "NaClValueEnumerator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/IR/Constants.h"
@@ -28,8 +28,8 @@ static bool isIntOrIntVectorValue(const std::pair<const Value*, unsigned> &V) {
return V.first->getType()->isIntOrIntVectorTy();
}
-/// ValueEnumerator - Enumerate module-level information.
-ValueEnumerator::ValueEnumerator(const Module *M) {
+/// PNaClValueEnumerator - Enumerate module-level information.
+PNaClValueEnumerator::PNaClValueEnumerator(const Module *M) {
// Enumerate the global variables.
for (Module::const_global_iterator I = M->global_begin(),
E = M->global_end(); I != E; ++I)
@@ -109,17 +109,17 @@ ValueEnumerator::ValueEnumerator(const Module *M) {
OptimizeConstants(FirstConstant, Values.size());
}
-unsigned ValueEnumerator::getInstructionID(const Instruction *Inst) const {
+unsigned PNaClValueEnumerator::getInstructionID(const Instruction *Inst) const {
InstructionMapType::const_iterator I = InstructionMap.find(Inst);
assert(I != InstructionMap.end() && "Instruction is not mapped!");
return I->second;
}
-void ValueEnumerator::setInstructionID(const Instruction *I) {
+void PNaClValueEnumerator::setInstructionID(const Instruction *I) {
InstructionMap[I] = InstructionCount++;
}
-unsigned ValueEnumerator::getValueID(const Value *V) const {
+unsigned PNaClValueEnumerator::getValueID(const Value *V) const {
if (isa<MDNode>(V) || isa<MDString>(V)) {
ValueMapType::const_iterator I = MDValueMap.find(V);
assert(I != MDValueMap.end() && "Value not in slotcalculator!");
@@ -131,14 +131,14 @@ unsigned ValueEnumerator::getValueID(const Value *V) const {
return I->second-1;
}
-void ValueEnumerator::dump() const {
+void PNaClValueEnumerator::dump() const {
print(dbgs(), ValueMap, "Default");
dbgs() << '\n';
print(dbgs(), MDValueMap, "MetaData");
dbgs() << '\n';
}
-void ValueEnumerator::print(raw_ostream &OS, const ValueMapType &Map,
+void PNaClValueEnumerator::print(raw_ostream &OS, const ValueMapType &Map,
const char *Name) const {
OS << "Map Name: " << Name << "\n";
@@ -171,8 +171,8 @@ void ValueEnumerator::print(raw_ostream &OS, const ValueMapType &Map,
// Optimize constant ordering.
namespace {
struct CstSortPredicate {
- ValueEnumerator &VE;
- explicit CstSortPredicate(ValueEnumerator &ve) : VE(ve) {}
+ PNaClValueEnumerator &VE;
+ explicit CstSortPredicate(PNaClValueEnumerator &ve) : VE(ve) {}
bool operator()(const std::pair<const Value*, unsigned> &LHS,
const std::pair<const Value*, unsigned> &RHS) {
// Sort by plane.
@@ -186,7 +186,7 @@ namespace {
}
/// OptimizeConstants - Reorder constant pool for denser encoding.
-void ValueEnumerator::OptimizeConstants(unsigned CstStart, unsigned CstEnd) {
+void PNaClValueEnumerator::OptimizeConstants(unsigned CstStart, unsigned CstEnd) {
if (CstStart == CstEnd || CstStart+1 == CstEnd) return;
CstSortPredicate P(*this);
@@ -206,7 +206,7 @@ void ValueEnumerator::OptimizeConstants(unsigned CstStart, unsigned CstEnd) {
/// EnumerateValueSymbolTable - Insert all of the values in the specified symbol
/// table into the values table.
-void ValueEnumerator::EnumerateValueSymbolTable(const ValueSymbolTable &VST) {
+void PNaClValueEnumerator::EnumerateValueSymbolTable(const ValueSymbolTable &VST) {
for (ValueSymbolTable::const_iterator VI = VST.begin(), VE = VST.end();
VI != VE; ++VI)
EnumerateValue(VI->getValue());
@@ -214,20 +214,20 @@ void ValueEnumerator::EnumerateValueSymbolTable(const ValueSymbolTable &VST) {
/// EnumerateNamedMetadata - Insert all of the values referenced by
/// named metadata in the specified module.
-void ValueEnumerator::EnumerateNamedMetadata(const Module *M) {
+void PNaClValueEnumerator::EnumerateNamedMetadata(const Module *M) {
for (Module::const_named_metadata_iterator I = M->named_metadata_begin(),
E = M->named_metadata_end(); I != E; ++I)
EnumerateNamedMDNode(I);
}
-void ValueEnumerator::EnumerateNamedMDNode(const NamedMDNode *MD) {
+void PNaClValueEnumerator::EnumerateNamedMDNode(const NamedMDNode *MD) {
for (unsigned i = 0, e = MD->getNumOperands(); i != e; ++i)
EnumerateMetadata(MD->getOperand(i));
}
/// EnumerateMDNodeOperands - Enumerate all non-function-local values
/// and types referenced by the given MDNode.
-void ValueEnumerator::EnumerateMDNodeOperands(const MDNode *N) {
+void PNaClValueEnumerator::EnumerateMDNodeOperands(const MDNode *N) {
for (unsigned i = 0, e = N->getNumOperands(); i != e; ++i) {
if (Value *V = N->getOperand(i)) {
if (isa<MDNode>(V) || isa<MDString>(V))
@@ -239,7 +239,7 @@ void ValueEnumerator::EnumerateMDNodeOperands(const MDNode *N) {
}
}
-void ValueEnumerator::EnumerateMetadata(const Value *MD) {
+void PNaClValueEnumerator::EnumerateMetadata(const Value *MD) {
assert((isa<MDNode>(MD) || isa<MDString>(MD)) && "Invalid metadata kind");
// Enumerate the type of this value.
@@ -271,7 +271,7 @@ void ValueEnumerator::EnumerateMetadata(const Value *MD) {
/// EnumerateFunctionLocalMetadataa - Incorporate function-local metadata
/// information reachable from the given MDNode.
-void ValueEnumerator::EnumerateFunctionLocalMetadata(const MDNode *N) {
+void PNaClValueEnumerator::EnumerateFunctionLocalMetadata(const MDNode *N) {
assert(N->isFunctionLocal() && N->getFunction() &&
"EnumerateFunctionLocalMetadata called on non-function-local mdnode!");
@@ -303,7 +303,7 @@ void ValueEnumerator::EnumerateFunctionLocalMetadata(const MDNode *N) {
FunctionLocalMDs.push_back(N);
}
-void ValueEnumerator::EnumerateValue(const Value *V) {
+void PNaClValueEnumerator::EnumerateValue(const Value *V) {
assert(!V->getType()->isVoidTy() && "Can't insert void values!");
assert(!isa<MDNode>(V) && !isa<MDString>(V) &&
"EnumerateValue doesn't handle Metadata!");
@@ -350,7 +350,7 @@ void ValueEnumerator::EnumerateValue(const Value *V) {
}
-void ValueEnumerator::EnumerateType(Type *Ty) {
+void PNaClValueEnumerator::EnumerateType(Type *Ty) {
unsigned *TypeID = &TypeMap[Ty];
// We've already seen this type.
@@ -389,7 +389,7 @@ void ValueEnumerator::EnumerateType(Type *Ty) {
// Enumerate the types for the specified value. If the value is a constant,
// walk through it, enumerating the types of the constant.
-void ValueEnumerator::EnumerateOperandType(const Value *V) {
+void PNaClValueEnumerator::EnumerateOperandType(const Value *V) {
EnumerateType(V->getType());
if (const Constant *C = dyn_cast<Constant>(V)) {
@@ -418,7 +418,7 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) {
EnumerateMetadata(V);
}
-void ValueEnumerator::EnumerateAttributes(AttributeSet PAL) {
+void PNaClValueEnumerator::EnumerateAttributes(AttributeSet PAL) {
if (PAL.isEmpty()) return; // null is always 0.
// Do a lookup.
@@ -440,7 +440,7 @@ void ValueEnumerator::EnumerateAttributes(AttributeSet PAL) {
}
}
-void ValueEnumerator::incorporateFunction(const Function &F) {
+void PNaClValueEnumerator::incorporateFunction(const Function &F) {
InstructionCount = 0;
NumModuleValues = Values.size();
NumModuleMDValues = MDValues.size();
@@ -504,7 +504,7 @@ void ValueEnumerator::incorporateFunction(const Function &F) {
EnumerateFunctionLocalMetadata(FnLocalMDVector[i]);
}
-void ValueEnumerator::purgeFunction() {
+void PNaClValueEnumerator::purgeFunction() {
/// Remove purged values from the ValueMap.
for (unsigned i = NumModuleValues, e = Values.size(); i != e; ++i)
ValueMap.erase(Values[i].first);
@@ -529,7 +529,7 @@ static void IncorporateFunctionInfoGlobalBBIDs(const Function *F,
/// getGlobalBasicBlockID - This returns the function-specific ID for the
/// specified basic block. This is relatively expensive information, so it
/// should only be used by rare constructs such as address-of-label.
-unsigned ValueEnumerator::getGlobalBasicBlockID(const BasicBlock *BB) const {
+unsigned PNaClValueEnumerator::getGlobalBasicBlockID(const BasicBlock *BB) const {
unsigned &Idx = GlobalBasicBlockIDs[BB];
if (Idx != 0)
return Idx-1;

Powered by Google App Engine
This is Rietveld 408576698