aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineConstantPool.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/MachineConstantPool.h')
-rw-r--r--include/llvm/CodeGen/MachineConstantPool.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/include/llvm/CodeGen/MachineConstantPool.h b/include/llvm/CodeGen/MachineConstantPool.h
index 2ac6e148b3..bcfa40c18c 100644
--- a/include/llvm/CodeGen/MachineConstantPool.h
+++ b/include/llvm/CodeGen/MachineConstantPool.h
@@ -30,10 +30,20 @@ namespace llvm {
class Constant;
+/// MachineConstantPoolEntry - One entry in the constant pool.
+///
+struct MachineConstantPoolEntry {
+ /// Val - The constant itself.
+ Constant *Val;
+ /// Alignment - The alignment of the constant.
+ unsigned Alignment;
+
+ MachineConstantPoolEntry(Constant *V, unsigned A) : Val(V), Alignment(A) {}
+};
+
class MachineConstantPool {
- std::vector<std::pair<Constant*,unsigned> > Constants;
+ std::vector<MachineConstantPoolEntry> Constants;
public:
-
/// getConstantPoolIndex - Create a new entry in the constant pool or return
/// an existing one. User must specify an alignment in bytes for the object.
///
@@ -44,9 +54,9 @@ public:
//
// FIXME, this could be made much more efficient for large constant pools.
for (unsigned i = 0, e = Constants.size(); i != e; ++i)
- if (Constants[i].first == C && Constants[i].second >= Alignment)
+ if (Constants[i].Val == C && Constants[i].Alignment >= Alignment)
return i;
- Constants.push_back(std::make_pair(C, Alignment));
+ Constants.push_back(MachineConstantPoolEntry(C, Alignment));
return Constants.size()-1;
}
@@ -54,7 +64,7 @@ public:
///
bool isEmpty() const { return Constants.empty(); }
- const std::vector<std::pair<Constant*,unsigned> > &getConstants() const {
+ const std::vector<MachineConstantPoolEntry> &getConstants() const {
return Constants;
}