Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Touzeau
lrusecurity
Commits
d916b72c
Commit
d916b72c
authored
Jul 12, 2019
by
Julien Balette-Pape
Browse files
retour set + abandon pointeurs: fonctionne
parent
701cfa6d
Changes
5
Hide whitespace changes
Inline
Side-by-side
include/lrusecurity/ACSSecurity.h
View file @
d916b72c
...
...
@@ -3,23 +3,23 @@
#include <otawa/icache/features.h>
#include <otawa/icat3/features.h>
#include <otawa/base.h>
#include <
unordered_
set>
#include <set>
namespace
lrusecurity
{
class
ACSSecurity
:
public
elm
::
AllocArray
<
std
::
unordered_
set
<
otawa
::
Address
*
>>
class
ACSSecurity
:
public
elm
::
AllocArray
<
std
::
set
<
otawa
::
Address
>>
{
public:
ACSSecurity
()
=
default
;
ACSSecurity
(
int
n
)
:
elm
::
AllocArray
<
std
::
unordered_
set
<
otawa
::
Address
*
>>
(
n
){
ACSSecurity
(
int
n
)
:
elm
::
AllocArray
<
std
::
set
<
otawa
::
Address
>>
(
n
){
for
(
int
i
=
0
;
i
<
n
;
i
++
)
(
*
this
)[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
(
*
this
)[
i
]
=
std
::
set
<
otawa
::
Address
>
();
}
ACSSecurity
(
int
n
,
otawa
::
Address
addr
)
:
elm
::
AllocArray
<
std
::
unordered_
set
<
otawa
::
Address
*
>>
(
n
)
{
ACSSecurity
(
int
n
,
otawa
::
Address
addr
)
:
elm
::
AllocArray
<
std
::
set
<
otawa
::
Address
>>
(
n
)
{
for
(
int
i
=
0
;
i
<
n
;
i
++
){
(
*
this
)[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
(
*
this
)[
i
].
insert
(
{
&
addr
}
);
(
*
this
)[
i
]
=
std
::
set
<
otawa
::
Address
>
();
(
*
this
)[
i
].
insert
(
addr
);
}
}
void
print
(
int
set
,
const
otawa
::
icat3
::
LBlockCollection
&
coll
,
elm
::
io
::
Output
&
out
=
elm
::
cout
)
const
;
...
...
src/Prev/lrusecurity_ExistHitPrevDomain.cpp
View file @
d916b72c
#include "ExistHitPrevDomain.h"
#include <set>
using
namespace
otawa
;
...
...
@@ -41,11 +42,11 @@ bool ExistHitPrevDomain::equals(const t& acss, const t& bcss) const
int
b
=
lb
->
index
();
for
(
int
i
=
0
;
i
<
_n
;
i
++
){
if
(
i
==
b
){
Address
smol
[]
=
{
access
.
address
()
}
;
acss
[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
Address
smol
=
access
.
address
();
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
acss
[
i
].
insert
(
smol
);
}
else
if
(
ehManager
.
existHitAge
(
_coll
[
_set
][
i
])
==
_A
)
acss
[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
}
}
...
...
src/Prev_Over/lrusecurity_ExistHitPrevODomain.cpp
View file @
d916b72c
#include "ExistHitPrevODomain.h"
#include <
unordered_
set>
#include <set>
using
namespace
otawa
;
...
...
@@ -50,17 +50,11 @@ void ExistHitPrevODomain::fetch(t& acss, const icache::Access& access, lrupreana
int
b
=
lb
->
index
();
for
(
int
i
=
0
;
i
<
_n
;
i
++
){
if
(
i
==
b
){
Address
smol
[]
=
{
access
.
address
()};
<<<<<<<
HEAD
acss
[
i
]
=
Bag
<
Address
>
(
1
,
smol
);
}
else
if
(
mayManager
.
mayAge
(
_coll
[
_set
][
i
])
==
_A
)
acss
[
i
]
=
Bag
<
Address
>
();
=======
acss
[
i
]
=
std
::
unordered_set
<
otawa
::
Address
*>
();
Address
smol
=
access
.
address
();
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
acss
[
i
].
insert
(
smol
);
}
else
if
(
mayManager
.
mayAge
(
_coll
[
_set
][
i
])
==
_A
)
acss
[
i
]
=
std
::
unordered_set
<
otawa
::
Address
*>
();
>>>>>>>
passage
aux
unordered
set
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
}
}
...
...
src/Prev_Under/lrusecurity_ExistHitPrevUDomain.cpp
View file @
d916b72c
#include "ExistHitPrevUDomain.h"
#include <
unordered_
set>
#include <set>
using
namespace
otawa
;
...
...
@@ -46,11 +46,11 @@ void ExistHitPrevUDomain::fetch(t& acss, const icache::Access& access, lrupreana
int
b
=
lb
->
index
();
for
(
int
i
=
0
;
i
<
_n
;
i
++
){
if
(
i
==
b
){
Address
smol
[]
=
{
access
.
address
()
}
;
acss
[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
Address
smol
=
access
.
address
();
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
acss
[
i
].
insert
(
smol
);
}
else
if
(
ehManager
.
existHitAge
(
_coll
[
_set
][
i
])
==
_A
)
acss
[
i
]
=
std
::
unordered_
set
<
otawa
::
Address
*
>
();
acss
[
i
]
=
std
::
set
<
otawa
::
Address
>
();
}
}
...
...
src/lrusecurity_Displayer.cpp
View file @
d916b72c
...
...
@@ -6,7 +6,7 @@
#include <otawa/proc/BBProcessor.h>
#include <otawa/prog/Process.h>
#include <lruexact/features.h>
#include <
unordered_
set>
#include <set>
#include<iterator>
//#include "SecCFGOutput.h"
using
namespace
otawa
;
...
...
@@ -113,10 +113,10 @@ protected:
ACSSecurity
prev
=
(
*
EXIST_HIT_PREV_IN
(
bb
))[
set
];
int
index
=
otawa
::
icat3
::
LBLOCK
(
access
)
->
index
();
number
=
prev
[
index
].
size
();
std
::
unordered_
set
<
otawa
::
Address
*
>::
iterator
iter
;
std
::
set
<
otawa
::
Address
>::
iterator
iter
;
for
(
iter
=
prev
[
index
].
begin
();
iter
!=
prev
[
index
].
end
();
iter
++
){
_out
<<
(
*
*
iter
)
<<
"
\n\t\t\t\t\b
"
;
_out
<<
*
iter
<<
"
\n\t\t\t\t\b
"
;
}
// REMONTEE
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment