// The local variables written by the loop. Expressions that depend on these aren't loop invariants. (Usually)
SymbolSet writtenInLoop = loopEffects.writeInternal;
SymbolSet readInLoop = loopEffects.readInternal;
InvariantExpressionFinder invariantFinder = new InvariantExpressionFinder(writtenInLoop, readInLoop);
invariantFinder.visitTree(loop);
log.debug("Invariant expressions: {}", Arrays.toString(invariantFinder.invariantExpressions.keySet().toArray()));
Iterator<AJCComparableExpressionTree> iterator = invariantFinder.invariantExpressions.keySet().iterator();
while (iterator.hasNext()) {