/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets the register set associated with the start of the block * with the given label. This returns an empty set with the appropriate * max size if no set was associated with the block in question. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet getStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result : emptySet; }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Gets a mutable copy of the register set associated with the * start of the block with the given label. This returns a * newly-allocated empty {@link RegisterSpecSet} of appropriate * max size if there is not yet any set associated with the block. * * @param label {@code >= 0;} the block label * @return {@code non-null;} the associated register set */ public RegisterSpecSet mutableCopyOfStarts(int label) { RegisterSpecSet result = getStarts0(label); return (result != null) ? result.mutableCopy() : new RegisterSpecSet(regCount); }
/** * Merges the given register set into the set for the block with the * given label. If there was not already an associated set, then this * is the same as calling {@link #setStarts}. Otherwise, this will * merge the two sets and call {@link #setStarts} on the result of the * merge. * * @param label {@code >= 0;} the block label * @param specs {@code non-null;} the register set to merge into the start set * for the block * @return {@code true} if the merge resulted in an actual change * to the associated set (including storing one for the first time) or * {@code false} if there was no change */ public boolean mergeStarts(int label, RegisterSpecSet specs) { RegisterSpecSet start = getStarts0(label); boolean changed = false; if (start == null) { setStarts(label, specs); return true; } RegisterSpecSet newStart = start.mutableCopy(); newStart.intersect(specs, true); if (start.equals(newStart)) { return false; } newStart.setImmutable(); setStarts(label, newStart); return true; }
RegisterSpecSet start = getStarts0(label);
RegisterSpecSet start = getStarts0(label); boolean changed = false;
RegisterSpecSet start = getStarts0(label); boolean changed = false;