22 #ifndef OTAWA_ACCESSEDADDRESS_H_
23 #define OTAWA_ACCESSEDADDRESS_H_
93 void set(
const C& coll) {
98 for(
typename C::Iterator aa(coll); aa; aa++, i++)
104 for(
int i = 0; i <
_size; i++)
115 for(
int i = 0; i <
_size; i++)
For each basic block, provide the list of performed memory accesses and their addresses.
Definition: AccessedAddress.h:87
This processor is dedicated to the basic block process thru proccessBB() method.
Definition: BBProcessor.h:72
bool isStore(void) const
Test if a store is performed on the accessed address.
Definition: AccessedAddress.h:50
int total
Definition: AccessedAddress.h:36
int _size
Definition: AccessedAddress.h:120
static p::declare reg
Definition: AccessedAddress.h:132
p::feature ADDRESS_ANALYSIS_FEATURE
This feature ensures that accessed memory information (class AccessedAddress) is provided for each ba...
kind_t
Describe the different implementation of an accessed address.
Definition: AccessedAddress.h:41
Subclass of AccessedAddress, this class represents address with a constant offset relative to the sta...
Definition: AccessedAddress.h:63
virtual void configure(const PropList &props)
Configure the current processor.
virtual void processBB(WorkSpace *fw, CFG *cfd, BasicBlock *bb)
Perform the work of the given basic block.
Class to declare simple a processor.
Definition: Registration.h:213
AccessedAddresses()
Definition: AccessedAddress.h:89
const Address & address(void) const
Definition: AccessedAddress.h:78
Represents an stack pointer relative address with a constant offset.
Definition: AccessedAddress.h:43
void print(io::Output &out) const
Definition: AccessedAddress.h:114
Parent class of classes representing accesses to memory.
Definition: AccessedAddress.h:39
bool display
Definition: AccessedAddress.h:143
dtd::Element bb(dtd::make("bb", _BB).attr(id).attr(address).attr(size))
AccessedAddress ** addrs
Definition: AccessedAddress.h:121
elm::io::Output & operator<<(elm::io::Output &out, Address addr)
Definition: base.cpp:188
Control Flow Graph representation.
Definition: CFG.h:42
virtual void setup(WorkSpace *fw)
This method is called before an anlysis to let the processor do some initialization.
SPAddress(Inst *instruction, bool is_store, t::int32 offset)
Definition: AccessedAddress.h:65
int all
Definition: AccessedAddress.h:36
Subclass of AccessedAddress, this class represents an absolute address access, to a global variable o...
Definition: AccessedAddress.h:74
Represents an address defined by its absolute and constant value.
Definition: AccessedAddress.h:44
Definition: AccessedAddress.h:35
Address addr
Definition: AccessedAddress.h:81
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
AccessedAddressFromStack(p::declare &r=reg)
The representation of an address in OTAWA.
Definition: base.h:54
address_stat_t * stats
Definition: AccessedAddress.h:142
bool isLoad(void) const
Test if a store is performed on the accessed address.
Definition: AccessedAddress.h:51
Represents the most imprecise memory access: it may potentially concern the full memory address space...
Definition: AccessedAddress.h:42
~AccessedAddresses(void)
Definition: AccessedAddress.h:90
sys::SystemOutStream & out
address_stat_t istats
Definition: AccessedAddress.h:142
AccessedAddress(Inst *instruction, bool is_store, kind_t kind=ANY)
Definition: AccessedAddress.h:47
unsigned char store
Definition: AccessedAddress.h:58
virtual void cleanup(WorkSpace *fw)
This method is called after the end of the processor analysis to let it do some clean up...
This is the minimal definition of a basic block.
Definition: BasicBlock.h:43
void print(io::Output &out) const
Print the given address.
Definition: util_AccessedAddress.cpp:72
int size(void) const
Definition: AccessedAddress.h:111
This class represents assembly instruction of a piece of code.
Definition: Inst.h:62
t::int32 offset(void) const
Definition: AccessedAddress.h:67
AbsAddress(Inst *instruction, bool is_store, const Address &address)
Definition: AccessedAddress.h:76
This a list of properties.
Definition: PropList.h:63
Inst * instruction(void) const
Get the instruction where this memory access applies.
Definition: AccessedAddress.h:52
kind_t kind(void) const
Get the kind of the address.
Definition: AccessedAddress.h:49
void set(const C &coll)
Definition: AccessedAddress.h:93
static Identifier< bool > DISPLAY
Definition: AccessedAddress.h:130
unsigned char knd
Definition: AccessedAddress.h:59
int sprel
Definition: AccessedAddress.h:36
Definition: AccessedAddress.h:128
Identifier< address_stat_t * > ADDRESS_STATS
This property provides statistics about ADDRESS_ANALYSIS_FEATURE.
struct otawa::address_stat_t address_stat_t
int abs
Definition: AccessedAddress.h:36
Shortcut to create a feature with a maker (without the mess of SilentFeature).
Definition: AbstractFeature.h:51
void clear(void)
Definition: AccessedAddress.h:102
t::int32 off
Definition: AccessedAddress.h:70
Inst * inst
Definition: AccessedAddress.h:57
Identifier< AccessedAddresses * > ADDRESSES
Provide the set of accesses to the memory for the current basic block.