new VarDeclRaiser().raiseVars(str);
    public static void run(SIRStream str,			JInterfaceDeclaration[] 			interfaces,			SIRInterfaceTable[]			interfaceTables) {	System.out.println("Entry to RAW Backend");	// move field initializations into init function	System.out.print("Moving initializers into init functions... ");	FieldProp.moveStreamInitialAssignments(str);	System.out.println("done.");		// propagate constants and unroll loop	System.out.println("Running Constant Prop and Unroll...");	ConstantProp.propagateAndUnroll(str);	System.out.println("Done Constant Prop and Unroll...");	// construct stream hierarchy from SIRInitStatements	ConstructSIRTree.doit(str);	//SIRPrinter printer1 = new SIRPrinter();	//str.accept(printer1);	//printer1.close();		if (StreamItOptions.fusion) {	    System.out.println("Running SJFusion...");	    FuseAll.fuse(str);	    System.out.println("Done SJFusion...");	}        // do constant propagation on fields        if (StreamItOptions.constprop) {	    System.out.println("Running Constant Propagation of Fields");	    FieldProp.doPropagate(str);	}		// name the components	System.out.println("Namer Begin...");	Namer.assignNames(str);	System.out.println("Namer End.");	AdjustGranularity.doit(str, 			       StreamItOptions.rawRows * 			       StreamItOptions.rawColumns);	if (StreamItOptions.partition) {	    Partitioner.doit(str, 			     StreamItOptions.rawRows *			     StreamItOptions.rawColumns);	}	str.getInit().accept(new VarDeclRaiser());        	System.out.println("Flattener Begin...");	RawFlattener rawFlattener = new RawFlattener(str);	rawFlattener.dumpGraph("flatgraph.dot");	System.out.println("Flattener End.");	//create the execution counts for other passes	createExecutionCounts(str, rawFlattener);	// layout the components (assign filters to tiles)		Layout.simAnnealAssign(rawFlattener.top);		//Layout.handAssign(rawFlattener.top);	System.out.println("Assign End.");	//Generate the switch code	System.out.println("Switch Code Begin...");	SwitchCode.generate(rawFlattener.top);	//	SwitchCode.dumpCode();	System.out.println("Switch Code End.");	//Generate the tile code	System.out.println("Tile Code begin...");	TileCode.generateCode(rawFlattener.top);	System.out.println("Tile Code End.");	//generate the makefiles	System.out.println("Creating Makefile.");	MakefileGenerator.createMakefile();	System.out.println("Exiting");	System.exit(0);    }