[llvm-commits] CVS: llvm/include/llvm/Reoptimizer/TraceCache.h
Anand Shukla
ashukla at cs.uiuc.edu
Sat May 31 21:32:34 PDT 2003
Changes in directory llvm/include/llvm/Reoptimizer:
TraceCache.h updated: 1.8 -> 1.9
---
Log message:
Simple additions to the runtime API
---
Diffs of the changes:
Index: llvm/include/llvm/Reoptimizer/TraceCache.h
diff -u llvm/include/llvm/Reoptimizer/TraceCache.h:1.8 llvm/include/llvm/Reoptimizer/TraceCache.h:1.9
--- llvm/include/llvm/Reoptimizer/TraceCache.h:1.8 Wed May 28 08:53:48 2003
+++ llvm/include/llvm/Reoptimizer/TraceCache.h Sat May 31 21:31:15 2003
@@ -15,12 +15,16 @@
class VirtualMem;
class MemoryManager;
+class TraceCache2;
+
class TraceCache{
private:
std::map<uint64_t, uint64_t> traces; //map from addr to addr
std::map<uint64_t, int> traceSize;//size of trace allocatted
std::map<int, uint64_t> traceId;
std::map<uint64_t, int> reverseTraceId;
+
+ std::map<uint64_t, int> uniqueID;
std::map<uint64_t, std::vector<unsigned int> > traceInstructions;
@@ -55,6 +59,8 @@
void setLimit(int n);
int getLimit() { return limit;}
+ uint64_t getAddrLessThan(uint64_t brAddr);
+
bool hasMaxSize(){ return isLimitSet;}
bool hasTraceAddr(uint64_t n){ return (traces.find(n)!=traces.end()); }
bool hasTraceId(int n) { return (traceId.find(n)!=traceId.end()); }
@@ -71,8 +77,12 @@
//constructors
TraceCache(int limitSize);
+ TraceCache(VirtualMem *vmem);
TraceCache();
+ //remove the branch from the original code into the trace
+ void patchTrace(uint64_t n);
+
//add trace of a given size
//return null if cannot allocate
//return an address where trace can be allocated otherwise
@@ -91,7 +101,7 @@
std::vector<unsigned int> &trace,
int traceUniqId,
std::map<int, uint64_t> &callMap,
- std::map<int, uint64_t> &branchMap);
+ std::map<int, uint64_t> &branchMap, TraceCache2 *tr2);
bool addTrace(uint64_t instAddr,
std::vector<unsigned int> &trace,
@@ -102,6 +112,15 @@
bool addTrace(uint64_t instAddr, int sz, int traceUniqId,
uint64_t &addr);
+
+
+ bool addTrace(uint64_t instAddr,
+ std::vector<unsigned int> &trace,
+ int traceUniqId,
+ std::map<int, uint64_t> &callMap,
+ std::map<int, uint64_t> &myBranchMap,
+ std::map<int, int> &branchMap,
+ uint64_t firstLevelTraceStartAddr);
//bool addTrace(uint64_t instAddr, unsigned int trace[], int sz,
// std::vector<uint64_t> &inBranches,
More information about the llvm-commits
mailing list