summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-01-12 18:58:46 +0000
committerChris Lattner <sabre@nondot.org>2008-01-12 18:58:46 +0000
commitafb514a7b49c72f359155319deab946f2196fcbc (patch)
treecfe7cf8ec3a7053e32204b0c7ff9f509203ab5c4 /llvm/lib/Target
parent09dde6001df11ec681a7d537f356b4ae76e72eaf (diff)
downloadbcm5719-llvm-afb514a7b49c72f359155319deab946f2196fcbc.tar.gz
bcm5719-llvm-afb514a7b49c72f359155319deab946f2196fcbc.zip
clarify a note
llvm-svn: 45914
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/README.txt10
1 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt
index f39d8b2a244..623c86f3555 100644
--- a/llvm/lib/Target/README.txt
+++ b/llvm/lib/Target/README.txt
@@ -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.
//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud