sizeBeforeGC == HeapGrowthManager.getCurrentHeapSize())
sizeBeforeGC.EQ(HeapGrowthManager.getCurrentHeapSize()))
  public static final void triggerCollection(int why)    throws InterruptiblePragma {    if (VM.VerifyAssertions) VM._assert((why >= 0) && (why < TRIGGER_REASONS));     Plan.collectionInitiated();    if (Options.verbose >= 4) {      VM.sysWriteln("Entered VM_Interface.triggerCollection().  Stack:");      VM_Scheduler.dumpStack();    }    if (why == EXTERNAL_GC_TRIGGER) {      Plan.userTriggeredGC();      if (Options.verbose == 1 || Options.verbose == 2)         VM.sysWrite("[Forced GC]");    }    if (Options.verbose > 2) VM.sysWriteln("Collection triggered due to ", triggerReasons[why]);    int sizeBeforeGC = HeapGrowthManager.getCurrentHeapSize();    long start = VM_Time.cycles();    VM_CollectorThread.collect(VM_CollectorThread.handshake, why);    long end = VM_Time.cycles();    double gcTime = VM_Time.cyclesToMillis(end - start);    if (Options.verbose > 2) VM.sysWriteln("Collection finished (ms): ", gcTime);    if (Plan.isLastGCFull() &&         sizeBeforeGC == HeapGrowthManager.getCurrentHeapSize())       checkForExhaustion(why, false);        Plan.checkForAsyncCollection();  }