if (!KjcOptions.magicdram) print(CommunicateAddrs.getFunction(tile));
    public void createCCode()     {	//optimize the SIR code, if not disabled	optimizations();		//write header 	generateHeader();		//generate the fields	for (int i = 0; i < tile.getComputeCode().getFields().length; i++)	    tile.getComputeCode().getFields()[i].accept(this);		//print the pointers to the off chip buffers	if (!KjcOptions.magicdram)	    print(CommunicateAddrs.getFields(tile));	//visit methods of tile, print the declaration first	declOnly = true;	for (int i = 0; i < tile.getComputeCode().getMethods().length; i++)	    tile.getComputeCode().getMethods()[i].accept(this);	//generate the methods	declOnly = false;	JMethodDeclaration mainMethod=tile.getComputeCode().getMainFunction();	for (int i = 0; i < tile.getComputeCode().getMethods().length; i++) {	    JMethodDeclaration method=tile.getComputeCode().getMethods()[i];	    if(method!=mainMethod) //Manually inline main method so inline asm labels don't repeat		method.accept(this);	}		//print the method that sends/recvs block addresses	//if (!KjcOptions.magicdram)	//    print(CommunicateAddrs.getFunction(tile));	//generate the entry function for the simulator	print("void begin(void) {\n");	//if we are using the magic network, 	//use a magic instruction to initialize the magic fifos	if (KjcOptions.magic_net)	    print("  __asm__ volatile (\"magc $0, $0, 1\");\n");	//call the raw_init() function for the static network	if (!KjcOptions.decoupled && !KjcOptions.magic_net) {	    print("  raw_init();\n");	    //print("  raw_init2();\n");	}	if (!KjcOptions.magicdram) 	    print("  " + CommunicateAddrs.functName + "();\n");		//print(tile.getComputeCode().getMainFunction().getName() + "();\n");	mainMethod.getBody().accept(this); //Inline Main method	print("};\n");    }