Dwarf requires variable entries to be in the source order. Right now, since we are...
[oota-llvm.git] / 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.
 
 //===---------------------------------------------------------------------===//