forked from nils.hoelscher/RTSA-lab01-CacheAnalysis
better exercise description in README.md
This commit is contained in:
parent
1ae6af2eb6
commit
e7ca0a68ef
|
@ -215,15 +215,15 @@ struct CacheAnalysisPass : PassInfoMixin<CacheAnalysisPass> {
|
|||
}
|
||||
|
||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM) {
|
||||
FunctionAnalysisManager &FAM =
|
||||
MAM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
|
||||
// FunctionAnalysisManager &FAM =
|
||||
// MAM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
|
||||
|
||||
addressCollector(M);
|
||||
Function *EntryFunction;
|
||||
// Function *EntryFunction;
|
||||
for (Function &F : M.getFunctionList()) {
|
||||
// Start iterating through CFG from entry point
|
||||
if (F.getName().equals(EntryPoint)) {
|
||||
EntryFunction = &F;
|
||||
// EntryFunction = &F;
|
||||
initEdges(F);
|
||||
}
|
||||
if (PrintAddresses)
|
||||
|
|
10
README.md
10
README.md
|
@ -1,10 +1,16 @@
|
|||
# RTSA-lab01-CacheAnalysis
|
||||
|
||||
In this lab session you will learn how to implement a LRU cache in abstract representation.
|
||||
The Goal is to implement an LRU must Join in include/AbstractState.h.
|
||||
For this we assume a "Set-Associative LRU Cache", with 16 sets an associativity of 4 and a cacheline size of two times instruction size.
|
||||
|
||||
## Exercise
|
||||
Implement a LRU Must-Join as described in the lecture, WCET - Cache Analysis.
|
||||
A 16 SetCache with an associativity of 4 Assumed, and cache lines can hold two memory words -> CacheSize 1024kB.
|
||||
In order to do so, complete the function "mustJoin" inside [include/AbstractState.h:138](https://git.cs.tu-dortmund.de/nils.hoelscher/RTSA-lab01-CacheAnalysis/src/branch/master/include/AbstractState.h#L138).
|
||||
The goal is to join the inbound state into the "this" state.
|
||||
|
||||
|
||||
The Project can be build, tested and Evaluated with the "helper" script.
|
||||
The Setup and some nice to knows are described in the following sections.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
|
|
|
@ -92,7 +92,7 @@ public: // everything is public, because IDGAF
|
|||
}
|
||||
Visited[Visitor.first] = true;
|
||||
}
|
||||
return false;
|
||||
return Ret;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,8 +104,6 @@ public: // everything is public, because IDGAF
|
|||
void removeNestedLoops(
|
||||
std::list<unsigned int> LoopBodyIn,
|
||||
std::map<unsigned int, unsigned int> OrigNodeToUnrolledNode) {
|
||||
unsigned int LoopHead = LoopBodyIn.front();
|
||||
unsigned int LoopTail = LoopBodyIn.back();
|
||||
unsigned int NestLoopTail;
|
||||
for (unsigned int NodeNr : LoopBodyIn) {
|
||||
bool IsLoopHead = false;
|
||||
|
|
Reference in New Issue