summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGClass.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2014-12-29 23:27:30 +0000
committerPhilip Reames <listmail@philipreames.com>2014-12-29 23:27:30 +0000
commit9db26ffc9a9b0b17562042a38f61f35d74acbcb6 (patch)
tree10e403c8c0ec29eeae9d1836508ec170d4e92b85 /clang/lib/CodeGen/CGClass.cpp
parentec3f49dfdf54289cd3fd2c71a5622a8107d4c717 (diff)
downloadbcm5719-llvm-9db26ffc9a9b0b17562042a38f61f35d74acbcb6.tar.gz
bcm5719-llvm-9db26ffc9a9b0b17562042a38f61f35d74acbcb6.zip
Carry facts about nullness and undef across GC relocation
This change implements four basic optimizations: If a relocated value isn't used, it doesn't need to be relocated. If the value being relocated is null, relocation doesn't change that. (Technically, this might be collector specific. I don't know of one which it doesn't work for though.) If the value being relocated is undef, the relocation is meaningless. If the value being relocated was known nonnull, the relocated pointer also isn't null. (Since it points to the same source language object.) I outlined other planned work in comments. Differential Revision: http://reviews.llvm.org/D6600 llvm-svn: 224968
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud