|
From: Nicholas N. <nj...@cs...> - 2005-11-23 14:48:29
|
On Wed, 23 Nov 2005, Yao Qi wrote:
> lackey record type and count of LOAD, STORE and AluOps, and I could
> categorise IRs like lackey.
>
> The problem is how to collect information of every memory access on
> run-time, like <LOAD/SORE, DATA, ADDRESS>, any thoughts on this?
Take a look at Cachegrind. See how in the "Ist_Tmp" case the
"data->Iex.Load.addr" gets passed to addEvent_Dr() where it is saved in
"evt->dataEA" ("EA" is short for "effective address", which is the value
you want). The "Ist_Store" case is similar.
Later in flushEvents() you can see how evt->dataEA is used in calls to
mkIRExprVec_2() and mkIRExprVec_3(), which are then passed to
unsafeIRDirty_0_N() which creates a C call.
Nick
|