finding modified memory locations for each function

Hi,

I am looking for an analysis which would return a set of memory
locations modified by each loop-free function that are visible to its
callers (i.e. its frame condition).
I've been looking through the list of the implemented llvm analysis
and couldn't find anything similar. Please let me know what would be a
good place to start or a code/module to look at if I want to implement
an analysis like that....

Thanks!

-- Zvonimir