|
From: Yao Qi <qiy...@cn...> - 2005-11-23 02:53:40
|
On Tue, Nov 22, 2005 at 09:24:13AM -0600, Nicholas Nethercote wrote: > On Tue, 22 Nov 2005, Julian Seward wrote: > > >>For example on PowerPC, stwu r1,-32(r1) could be translate to, > >> > >>------ IMark(0x10000440, 4) ------ > >>t1 = GET:I32(124) > >>t2 = GET:I32(4) > >>t3 = Add32(t2,0xFFFFFFE0:I32) > >>PUT(4) = t3 > >>STbe(t3) = t2 > > > >GET and PUT are for access to the simulated registers. > >GET:I32(4) gets the value of simulated r1. In this example, > >GET:I32(124) is not used and will be removed by the IR optimiser. > > > >To see loads and stores you need to look at LDbe and STbe. > >So STbe(t3) = t2 means 'store value of t2 at address t3'. > >The type of the stored value is the type of t2, which here > >is I32. > > And look at Lackey (lackey/lk_main.c in the SVN repository), which does > some stuff with loads and stores; look particularly at the parts > controlled by the "lk_clo_detailed_counts" variable. 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? > > Nick -- Regards, Yao ------------ Yao Qi |