Author: lattner Date: Sat Jan 12 12:58:46 2008 New Revision: 45914 URL: http://llvm.org/viewvc/llvm-project?rev=45914&view=rev Log: clarify a note
Modified: llvm/trunk/lib/Target/README.txt Modified: llvm/trunk/lib/Target/README.txt URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/README.txt?rev=45914&r1=45913&r2=45914&view=diff ============================================================================== --- llvm/trunk/lib/Target/README.txt (original) +++ llvm/trunk/lib/Target/README.txt Sat Jan 12 12:58:46 2008 @@ -610,6 +610,14 @@ arguments when the function is inlined. These functions can be inferred by various analysis passes such as the -globalsmodrefaa pass. +globalsmodrefaa pass. Note that getting #2 right is actually really tricky. +Consider this code: + +struct S; S G; +void caller(S byvalarg) { G.field = 1; ... } +void callee() { caller(G); } + +The fact that the caller does not modify byval arg is not enough, we need +to know that it doesn't modify G either. This is very tricky. //===---------------------------------------------------------------------===// _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits