@Override
    public boolean isCommonSubexpression(Instruction i) {
        if(i instanceof Load) {
            Load l = (Load)i;
            // checks after the first are probably redundant, but are
            // a requirement for correctness.
            return this.getArg().equals(l.getArg())
                && this.getVariable().equals(l.getVariable())
                && this.global == l.global;
        }
        return false;
    }