After this change, clients of InlineFunction can get it to inline
through calls / invokes wrapped in gc_statepoint. NFC because nothing
actually exercises this code path yet.
Depends on D10631
Paths
| Differential D10632
[Inlining][NFC] Introduce a InlineFunction that takes a Statepoint. AbandonedPublic Authored by sanjoy on Jun 22 2015, 7:15 PM.
Details
Diff Detail Event TimelineComment Actions I'm not sure I like the semantic intent to this patch. It seems to imply that the caller needs to know whether a particular call site is a statepoint or not. I think that's a mistake. I would expect the details of inlining through a call site which happens to be a statepoint to be hidden entirely within InlineFunction. This revision now requires changes to proceed.Jun 24 2015, 11:54 AM Comment Actions Forgot to say in my previous review, but I think you need to find a way to test this. Used code is not really NFC, it's just unused. I know you're planning on building on this with related patches, but this is big enough it should be tested on it's own. One suggestion: You could restructure PlaceSafepoints to convert to insert statepoints for gc polls, then inline using the new functionality. Anything that exercises this is fine by me. sanjoy edited edge metadata. Comment Actions
Revision Contents
Diff 28527 include/llvm/Transforms/Utils/Cloning.h
lib/Transforms/Scalar/PlaceSafepoints.cpp
lib/Transforms/Utils/InlineFunction.cpp
test/Transforms/PlaceSafepoints/basic.ll
|