System.out.println("Hand Assign Begin..."); Layout.handAssign(RawFlattener.top); System.out.println("Hand Assign End.");
Layout.simAnnealAssign(RawFlattener.top);  System.out.println("Assign End.");
    public static void run(SIRStream str,			JInterfaceDeclaration[] 			interfaces,			SIRInterfaceTable[]			interfaceTables) {	// DEBUGGING PRINTING	System.out.println("Entry to RAW Backend");	// propagate constants and unroll loop	System.out.println("Running Constant Prop and Unroll...");	//FieldProp.doPropagate(str);	//Renamer.renameAll(str);	ConstantProp.propagateAndUnroll(str);		System.out.println("Done Constant Prop and Unroll...");	//SIRPrinter printer1 = new SIRPrinter();	//str.accept(printer1);	//printer1.close();		//SIRPrinter printer1 = new SIRPrinter();	//str.accept(printer1);	//printer1.close();			//if (StreamItOptions.fusion) {	//   System.out.println("Running Fusion");	//    Fusion.fuse((SIRPipeline)str, 	//		(SIRFilter)((SIRPipeline)str).get(0), 	//		(SIRFilter)((SIRPipeline)str).get(1));	//	}       	/* DON'T KNOW IF THIS SHOULD BE DONE!!        	// flatten split/joins with duplicate splitters and RR joiners	*/		if (StreamItOptions.fusion) {	    System.out.println("Running SJFusion...");	    str = SJFlatten.doFlatten(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.");	//SIRPrinter printer1 = new SIRPrinter();	//str.accept(printer1);	//printer1.close();	System.out.println("Flattener Begin...");	RawFlattener.flatten(str);	RawFlattener.dumpGraph();	System.out.println("Flattener End.");	// layout the components (assign filters to tiles)	System.out.println("Hand Assign Begin...");	Layout.handAssign(RawFlattener.top);	System.out.println("Hand 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);    }