Thanks Ian for your prompt response. So, what is the alternate way to do memory read/write profiling....I'm aware of CIL source transformation package which allows to log memory reads and memory writes.. Is something similar possible to do in GCC... Do I have to work on AST level instead of GIMPLE and include statements to log all memory reads and writes? Please suggest. Thanks, Srinivas On Wed, Dec 23, 2009 at 10:16 AM, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: > Srinivas Pasupuleti <vaasu1234@xxxxxxxxx> writes: > >> I have written a pass to traverse gimple tree and include some print >> function calls with arguments as the LHS(lval) variable of every >> gimple modify statement. (this is part of my profiling work) >> I would like to know if it is possible to access the address of the >> gimple variables. >> >> for e.g., >> >> The following is a gimple statement (all are int variables): >> D.2629_17 = D.2629_27 + D.2629_22 ; >> >> In my pass I have added a print function call as below >> print(D.2629_17) >> >> The above works perfect >> >> I want to pass address of the gimple variable >> print(&D.2629_17) >> >> Is the above possible to do. If so, how to do it?? >> I need to do for memory profiling and dynamic dependency testing. > > You can't take the address of a gimple variable; think of a gimple > variable as a register in an imaginary machine. You will have to > create a real, albeit temporary, variable and assign the gimple > variable to it. If you want your function to change the value of the > variable, you will have to copy the value back as well. > > Ian >