private static void linearizeStatics(Set theStatics) {
private static void linearizeStatics(Set<SIRGlobal> theStatics) {
    private static void linearizeStatics(Set/*<SIRGlobal>*/ theStatics) {        // Temporarily turn off structure elimination since        // it should not have been run on the stream yet if passes are ordered 	// correctly and should not be run on the static sections.        boolean oldStructs = KjcOptions.struct;        KjcOptions.struct = false;        for (Iterator i = theStatics.iterator(); i.hasNext();) {            SIRGlobal s = (SIRGlobal) i.next();            // hopefully, this sequence will evaluate any code            // in the init portion of the static block and update            // fields to be constant. FieldProp calls a subset of            // ConstantProp again. FieldProp does not iterate to a fixed            // point...                        ConstantProp.propagateAndUnroll(s, false);            // ConstantProp.propagateAndUnroll now seems to run FeldProp            // a sufficient number of times.            // Propagate fields and unroll outer (for) loops            //FieldProp.doPropagate(s, true, false);            // Propagate fields again since FieldProp does not iterate to            // a fixed point.            //FieldProp.doPropagate(s, false, false);            // In this version there is no guarantee that any static            // section is completely unrolled.  TODO: we really need            // to know what static fields need to be constants and            // check that they become constants.  TODO: if static            // fields do not need to become constants, we should be            // propagating back-slices of the fields rather than only            // the field definitions and initializations.        }        KjcOptions.struct = oldStructs;    }