options[numOptions] = OPTION_UNROLL_COUNT; numOptions++;
    public static CompilerInterface createCompilerInterface(int flags) {	int numOptions = 0;	String[] options = new String[100]; // resize array we return at the end	// always compiling to streamit	options[numOptions] = OPTION_STREAMIT;	numOptions++;		// if we want to turn on constant prop// 	if ((flags & CONSTPROP) == CONSTPROP) {// 	    options[numOptions] = OPTION_CONSTPROP;// 	    numOptions++;// 	}	// if we want to turn on unrolling	if ((flags & UNROLL) == UNROLL) {	    options[numOptions] = OPTION_UNROLL;	    numOptions++;	}		// if we want to turn on fusion	if ((flags & FUSION) == FUSION) {	    options[numOptions] = OPTION_FUSION;	    numOptions++;	}	// if we want to turn on partitioning	if ((flags & PARTITION) == PARTITION) {	    options[numOptions] = OPTION_PARTITION;	    numOptions++;	}	// if we are compiling to 4 raw tiles 	for (int i=1; i<=8; i++) {	    if ((flags & RAW[i]) == RAW[i]) {		options[numOptions] = OPTION_RAW;		numOptions++;		options[numOptions] = "" + i;		numOptions++;	    }	}	// numbers option	if ((flags & NUMBERS) == NUMBERS) {	    options[numOptions] = OPTION_NUMBERS;	    numOptions++;	    options[numOptions] = "" + NUMBERS_STEADY_CYCLES;	    numOptions++;	}	// remove globals option	if ((flags & REMOVE_GLOBALS) == REMOVE_GLOBALS) {	    options[numOptions] = OPTION_REMOVE_GLOBALS;	    numOptions++;	}	// if we are running linear analysis	if ((flags & LINEAR_ANALYSIS) == LINEAR_ANALYSIS) {	    options[numOptions] = OPTION_LINEAR_ANALYSIS;	    numOptions++;	}	// if we are running linear replacement	if ((flags & LINEAR_REPLACEMENT) == LINEAR_REPLACEMENT) {	    options[numOptions] = OPTION_LINEAR_REPLACEMENT;	    numOptions++;	}	// if we are running frequency replacement	if ((flags & FREQ_REPLACEMENT) == FREQ_REPLACEMENT) {	    options[numOptions] = OPTION_FREQ_REPLACEMENT;	    numOptions++;	}	// if we are running redundant replacement	if ((flags & REDUND_REPLACEMENT) == REDUND_REPLACEMENT) {	    options[numOptions] = OPTION_REDUND_REPLACEMENT;	    numOptions++;	}		// if we want debugging output	if ((flags & DEBUG) == DEBUG) {	    options[numOptions] = OPTION_DEBUG;	    numOptions++;	}	// if we want to convert all pops to peeks	if ((flags & POPTOPEEK) == POPTOPEEK) {	    options[numOptions] = OPTION_POPTOPEEK;	    numOptions++;	}	// dynamic programming partitioner	if ((flags & DPPARTITION) == DPPARTITION) {	    options[numOptions] = OPTION_DPPARTITION;	    numOptions++;	}	// dynamic programming scaling output	if ((flags & DPSCALE) == DPSCALE) {	    options[numOptions] = OPTION_DPSCALE;	    numOptions++;	}	// linear partitioning	if ((flags & LINEARPARTITION) == LINEARPARTITION) {	    options[numOptions] = OPTION_LINEARPARTITION;	    numOptions++;	}        // alternate RAW code generation        if ((flags & ALTCODEGEN) == ALTCODEGEN) {            options[numOptions] = OPTION_ALTCODEGEN;            numOptions++;        }                // convert arrays in structures to fields        if ((flags & DESTROYFIELDARRAY) == DESTROYFIELDARRAY) {            options[numOptions] = OPTION_DESTROYFIELDARRAY;            numOptions++;        }                // rate match adjacent filters        if ((flags & RATEMATCH) == RATEMATCH) {            options[numOptions] = OPTION_RATEMATCH;            numOptions++;        }                // work-based simulator        if ((flags & WBS) == WBS) {            options[numOptions] = OPTION_WBS;            numOptions++;        }                // work simulation        if ((flags & SIMULATEWORK) == SIMULATEWORK) {            options[numOptions] = OPTION_SIMULATEWORK;            numOptions++;        }	// copy over the options that were used into an options	// array that is the correct size	String[] optionsToReturn = new String[numOptions];	for (int i=0; i<numOptions; i++) {	    optionsToReturn[i] = options[i];	}	// create a new interface with these options		return new CompilerInterface(flags, optionsToReturn);    }