clarify a note
authorChris Lattner <sabre@nondot.org>
Sat, 12 Jan 2008 18:58:46 +0000 (18:58 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 12 Jan 2008 18:58:46 +0000 (18:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45914 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index f39d8b2a244bf2af89f180d6699d1e12692fec9d..623c86f3555f761e0165d0341a10e1274c6281cc 100644 (file)
@@ -610,6 +610,14 @@ pointer parameters for alias analysis.  Some ideas:
    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.
 
 //===---------------------------------------------------------------------===//