[llvm-commits] CVS: reopt/include/reopt/MemoryManager.h
Brian Gaeke
gaeke at cs.uiuc.edu
Fri Apr 23 15:37:01 PDT 2004
Changes in directory reopt/include/reopt:
MemoryManager.h updated: 1.6 -> 1.7
---
Log message:
Spiff this header file up, with documentation and whatnot.
Add the private initialize() method and startOfMemoryArea pointer.
---
Diffs of the changes: (+51 -13)
Index: reopt/include/reopt/MemoryManager.h
diff -u reopt/include/reopt/MemoryManager.h:1.6 reopt/include/reopt/MemoryManager.h:1.7
--- reopt/include/reopt/MemoryManager.h:1.6 Wed Nov 19 16:51:42 2003
+++ reopt/include/reopt/MemoryManager.h Fri Apr 23 15:35:52 2004
@@ -31,28 +31,66 @@
namespace llvm {
+/// This is the assumed size of the FirstTraceFunction in words.
+///
static const int globalMemSize = 10000;
+/// MemoryManager - Performs simple memory management for the trace cache.
+///
class MemoryManager{
private:
+ /// memStart, memEnd - Start and end addresses (respectively) of the
+ /// area managed by this memory manager.
+ ///
uint64_t memStart, memEnd;
+
+ /// memorySize - Total size in 32-bit words of the area managed by
+ /// this memory manager.
+ ///
unsigned int memorySize;
+
std::list<std::pair<uint64_t, uint64_t> > freeMemList;
+ /// "Dummy function" pointer pointing to space in the text section reserved
+ /// for use by *this* MemoryManager.
+ ///
+ void (*startOfMemoryArea)();
+
+ /// Common constructor code lives in this function.
+ ///
+ void initialize ();
+
public:
- //Memory management
- //Ctor: using default memory manager function as space
- MemoryManager(); //Constructor
- //make sure memsize is < number of instructions in dumyFunc
- MemoryManager(unsigned int memSize); //Constructor
-
- //Ctor: Using user provided function for space. The size of memory
- //is assumed as memSize. Must ensure the provided function >= memSize bytes
- MemoryManager(void (*dfunc)(), unsigned int memSize);
-
- int getMemSize(){ return memorySize; }
- uint64_t getMemory(int sz); //return a pointer to memory of size sz
- void freeTraceMemory(uint64_t toRemove, int size);//size is no if instructions
+ /// Constructor - using default dummy function ("FirstTraceFunction")
+ /// as space.
+ ///
+ MemoryManager ();
+
+ /// Constructor - using default dummy function ("FirstTraceFunction")
+ /// as space. Make sure memSize is less than the number of 32-bit
+ /// words available in the dummy function.
+ ///
+ MemoryManager (unsigned int memSize);
+
+ /// Constructor - using user-provided function for space. Make sure
+ /// memSize is less than the number of 32-bit words available in the
+ /// dummy function.
+ ///
+ MemoryManager (void (*dummyFunctionPtr) (), unsigned int memSize);
+
+ /// getMemSize - returns the total size in 32-bit words of the area
+ /// managed by this memory manager.
+ ///
+ int getMemSize() { return memorySize; }
+
+ /// getMemory - Return a pointer to memory of size sz. sz is
+ /// expressed as a number of 32-bit words.
+ ///
+ uint64_t getMemory (int sz);
+
+ /// freeTraceMemory - size is expressed as a number of 32-bit words.
+ ///
+ void freeTraceMemory (uint64_t toRemove, int size);
};
} // end namespace llvm
More information about the llvm-commits
mailing list