[PlaceSafepoints] Adjust enablement logic to default to off and be GC configurable...
authorPhilip Reames <listmail@philipreames.com>
Sat, 21 Feb 2015 00:09:09 +0000 (00:09 +0000)
committerPhilip Reames <listmail@philipreames.com>
Sat, 21 Feb 2015 00:09:09 +0000 (00:09 +0000)
commit0b1b387441c4c8bae5d918eb204f2dc44bd54ff4
tree81cfc3264a14035b499d10223348a9b05f907dac
parenta05c7f876bcb3ee7430b3c19219e15e054d7db14
[PlaceSafepoints] Adjust enablement logic to default to off and be GC configurable per GC

Previously, this pass ran over every function in the Module if added to the pass order.  With this change, it runs only over those with a GC attribute where the GC explicitly opts in.  A GC can also choose which of entry safepoint polls, backedge safepoint polls, and call safepoints it wants.  I hope to get these exposed as checks on the GCStrategy at some point, but for now, the checks are manual string comparisons.

llvm-svn: 230097
llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
llvm/test/Transforms/PlaceSafepoints/basic.ll
llvm/test/Transforms/PlaceSafepoints/call-in-loop.ll
llvm/test/Transforms/PlaceSafepoints/finite-loops.ll
llvm/test/Transforms/PlaceSafepoints/invokes.ll
llvm/test/Transforms/PlaceSafepoints/split-backedge.ll