[PATCH] D13372: [RewriteStatepointsForGC] Use "deopt" operand bundles
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 5 17:23:18 PDT 2015
sanjoy updated this revision to Diff 36574.
sanjoy added a comment.
Add test cases and do what it takes to get them to pass:
- The tests were ported automatically, so there may be some skew in the `; CHECK` lines. I'll audit them before checking in, but please comment if you find some obvious goof-up.
- This change fixes a bug in the earlier version of this change: if the return value of a function being wrapped in `gc.statepoint` is itself live over some safepoint, we cannot just RAUW / erase that function call because we may have a raw pointer to it in some `PartiallyConstructedSafepointRecord`. This updated change fixes this issue by deferring the RAUW and erase from parent till after the live sets have been made explicit in the IR.
PS: while this update is not logically distinct from change it is
updating, I can separate out the update into a separate change if you
think that will make the review easier.
http://reviews.llvm.org/D13372
Files:
include/llvm/IR/Statepoint.h
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-1.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-10.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-11.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-2.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-3.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-4.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-5.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-6.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-7.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-8.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers-9.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-pointers.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/base-vector.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/basic.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/basics.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/codegen-cond.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/constants.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/deref-pointers.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/gc-relocate-creation.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/live-vector.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/liveness-basics.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/preprocess.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocate-invoke-result.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/relocation.ll
test/Transforms/RewriteStatepointsForGC/deopt-bundles/rematerialize-derived-pointers.ll
test/Transforms/RewriteStatepointsForGC/relocation.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13372.36574.patch
Type: text/x-patch
Size: 99451 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151006/5402eae7/attachment-0001.bin>
More information about the llvm-commits
mailing list