Skip to content
Snippets Groups Projects
Commit fb080996 authored by Bouquillon Fabien's avatar Bouquillon Fabien
Browse files

script

parent a6c4c553
Branches
No related tags found
No related merge requests found
#ifndef TYPE_H
#define TYPE_H
#include <otawa/otawa.h>
#include <otawa/base.h>
#include <vector>
namespace otawa {
namespace vulnerability {
struct Cache_Miss{
Address adr;
long vul;
long time;
};
template <typename T>
T vector_union(T v1, T v2) {
T v3;
for(auto iter_v = v1.begin(); iter_v != v1.end(); iter_v++) {
v3.push_back(*iter_v);
}
for(auto iter_v = v2.begin(); iter_v != v2.end(); iter_v++) {
v3.push_back(*iter_v);
}
return v3;
}
template <typename T>
T get_set(T v1) {
T v2;
for(auto iter_v = v1.begin(); iter_v != v1.end(); iter_v++) {
bool already_in = false;
for(auto iter_v2 = v2.begin(); iter_v2 != v2.end(); iter_v2++) {
if(*iter_v2 == *iter_v) {
already_in = true;
break;
}
}
if(!already_in) {
v2.push_back(*iter_v);
}
}
return v2;
}
struct Memory_block {
int block_id;
int nb_index;
int nb_way;
BasicBlock* bb_ptr;
std::vector<struct Memory_block*> pred;
std::vector<struct Memory_block*> suc;
std::vector<Address> *lmb_gen;
std::vector<Address> *rmb_gen;
std::vector<std::vector<Address>> *rmb_in;
std::vector<std::vector<Address>> *rmb_out;
std::vector<std::vector<Address>> *lmb_in;
std::vector<std::vector<Address>> *lmb_out;
Memory_block(int nb_index, int nb_way, BasicBlock* bb) {
this->bb_ptr = bb;
this->nb_index = nb_index;
this->nb_way = nb_way;
this->rmb_in = new std::vector<std::vector<Address>>[nb_index];
this->rmb_out = new std::vector<std::vector<Address>>[nb_index];
this->lmb_in = new std::vector<std::vector<Address>>[nb_index];
this->lmb_out = new std::vector<std::vector<Address>>[nb_index];
this->lmb_gen = new std::vector<Address>[nb_index];
this->rmb_gen = new std::vector<Address>[nb_index];
for(int i = 0; i < nb_index; i++) {
this->rmb_in[i].clear();
this->lmb_in[i].clear();
this->rmb_out[i].clear();
this->lmb_out[i].clear();
this->rmb_gen[i].clear();
this->lmb_gen[i].clear();
}
}
~Memory_block() {
delete this->rmb_in;
delete this->rmb_out;
delete this->lmb_in;
delete this->lmb_out;
delete this->lmb_gen;
delete this->rmb_gen;
}
};
}
}
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment