diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-01-12 18:58:46 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-01-12 18:58:46 +0000 |
| commit | 65844fbd8496cc7981758f61a6699cd07bfe32c7 (patch) | |
| tree | 48215cb94d7bd4b723b83f70ae22b3086cbddb01 /lib/Target | |
| parent | f4a5498ab44f06b2b74da7fda92521f34bb22367 (diff) | |
| download | external_llvm-65844fbd8496cc7981758f61a6699cd07bfe32c7.zip external_llvm-65844fbd8496cc7981758f61a6699cd07bfe32c7.tar.gz external_llvm-65844fbd8496cc7981758f61a6699cd07bfe32c7.tar.bz2 | |
clarify a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45914 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
| -rw-r--r-- | lib/Target/README.txt | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index f39d8b2..623c86f 100644 --- a/lib/Target/README.txt +++ b/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. //===---------------------------------------------------------------------===// |
