Class AbstractSafePointStrategy

java.lang.Object
org.qbicc.plugin.gc.common.safepoint.AbstractSafePointStrategy
Direct Known Subclasses:
AbstractMethodBasedSafePointStrategy, NoSafePointStrategy

public abstract class AbstractSafePointStrategy extends Object
The base class for safe point polling strategy implementation.
  • Field Details

  • Constructor Details

    • AbstractSafePointStrategy

      protected AbstractSafePointStrategy(CompilationContext ctxt)
      Construct a new instance. The constructor should inject any additional fields or methods needed to implement the strategy.
      Parameters:
      ctxt - the compilation context
  • Method Details

    • registerReachableMethods

      public final void registerReachableMethods(CompilationContext ctxt)
    • forEachSafePointMethod

      protected void forEachSafePointMethod(Consumer<String> consumer)
    • safePoint

      public abstract void safePoint(BasicBlockBuilder bbb)
      Implement the SafePoint node. This method is called during lowering to implement the actual action of a safepoint poll.
      Parameters:
      bbb - the block builder (not null)
    • implementRequestGlobalSafePoint

      public abstract void implementRequestGlobalSafePoint(BasicBlockBuilder bbb)
      Implement the method which requests a global safepoint. The implementation must not throw any exception, poll for a safepoint, or call any method that may do either.
      Parameters:
      bbb - the block builder (not null)
    • implementClearGlobalSafePoint

      public abstract void implementClearGlobalSafePoint(BasicBlockBuilder bbb)
      Implement the method which clears a global safepoint request. The implementation must not throw any exception, poll for a safepoint, or call any method that may do either.
      Parameters:
      bbb - the block builder (not null)