aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2015-09-03 21:34:30 +0000
committerPhilip Reames <listmail@philipreames.com>2015-09-03 21:34:30 +0000
commitf5b8e47651333a0c35837f062585aa12a65967fe (patch)
tree7d06dee99f420e47d6144018963098f3e1a4d60b /clang/lib/CodeGen/CodeGenModule.cpp
parentec2dcb1d914572b87eaf2afff9ecc1898bac9070 (diff)
downloadllvm-f5b8e47651333a0c35837f062585aa12a65967fe.zip
llvm-f5b8e47651333a0c35837f062585aa12a65967fe.tar.gz
llvm-f5b8e47651333a0c35837f062585aa12a65967fe.tar.bz2
[RewriteStatepointsForGC] Strengthen invariants around BDVs
As a first step towards a new implementation of the base pointer inference algorithm, introduce an abstraction for BDVs, strengthen the assertions around them, and rewrite the BDV relation code in terms of the abstraction which includes an explicit notion of whether the BDV is also a base. The later is motivated by the fact we had a bug where insertelement was always assumed to be a base pointer even though the BDV code knew it wasn't. The strengthened assertions in this patch would have caught that bug. The next step will be to separate the DefiningValueMap into a BDV use list cache (entirely within findBasePointers) and a base pointer cache. Having the former will allow me to use a deterministic visit order when visiting BDVs in the inference algorithm and remove a bunch of ordering related hacks. Before actually doing the last step, I'm likely going to extend the lattice with a 'BaseN' (seen only base inputs) state so that I can kill the post process optimization step. Phabricator Revision: http://reviews.llvm.org/D12608 llvm-svn: 246809
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions