aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CGClass.cpp
diff options
context:
space:
mode:
authorIgor Laevsky <igmyrj@gmail.com>2015-06-10 12:31:53 +0000
committerIgor Laevsky <igmyrj@gmail.com>2015-06-10 12:31:53 +0000
commit346ff628f7de3a04c2051053df3093820f6ae009 (patch)
treeaacdd74891dd7f2445b0c3dcf47943131509ee64 /clang/lib/CodeGen/CGClass.cpp
parenta73f1fdb196758c93434e783c627e724b6d30f9a (diff)
downloadllvm-346ff628f7de3a04c2051053df3093820f6ae009.zip
llvm-346ff628f7de3a04c2051053df3093820f6ae009.tar.gz
llvm-346ff628f7de3a04c2051053df3093820f6ae009.tar.bz2
[StatepointLowering] Reuse stack slots across basic blocks
During statepoint lowering we can sometimes avoid spilling of the value if we know that it was already spilled for previous statepoint. We were doing this by checking if incoming statepoint value was lowered into load from stack slot. This was working only in boundaries of one basic block. But instead of looking at the lowered node we can look directly at the llvm-ir value and if it was gc.relocate (or some simple modification of it) look up stack slot for it's derived pointer and reuse stack slot from it. This allows us to look across basic block boundaries. Differential Revision: http://reviews.llvm.org/D10251 llvm-svn: 239472
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
0 files changed, 0 insertions, 0 deletions