<div dir="ltr"><div>Hi,<br><br></div>GlobalsAA, during propagation of mod-ref behavior in the call graph, looks at library functions (in GlobalsAAResult::AnalyzeCallGraph: F->isDeclaration() check), for attributes, and if the function does not have the onlyReadsMemory attribute set, forgets it.<br><div><br></div><div>I noticed that library functions such as malloc/realloc do not have the attributes doesNotAccessMemory or onlyReadsMemory respectively set (FunctionAttrs.cpp). This leads to a loss of GlobalsAA information in the caller (and its caller and so on). Aren't these attributes stricter than necessary currently? I do not see why the presence of malloc/realloc in a function needs to invalidate all mod-ref info gathered for that function so far. <br></div><div><br></div><div>Please let me know if the question is not clear. I'll try to extract out a simple test case from the program I'm looking at and post it, so as to have a concrete example.<br><br></div><div>Thanks,<br></div><div><br clear="all"><div><div><div class="gmail_signature"><div dir="ltr"> - Vaivaswatha<br></div></div></div>
</div></div></div>