public void print_reg(int n){
		//function name
		print_head(n);
		print_out("Function:"+name+"{"+"\n");
		//parameters
		print_head(n+1);
		print_out("parameters:");
		for(IcVar_param i : var_p){
			print_out(i.name+",");
		}
		print_out("\n");
		//functions
		print_head(n+1);
		print_out("functions:"+"\n");
		for(IcFun i : funs){
			i.print_reg(n+2);
		}
		//used reg
		print_head(n+1);
		print_out("used reg:"+Arrays.toString(reg_used)+"\n");
		//spilled tmp_var
		print_head(n+1);
		print_out("spilled tmp:"+tmp_spill_l+"\n");
		//outside var
		print_head(n+1);
		print_out("outside var:"+var_outside+"\n");
		//blocks
		print_head(n+1);
		print_out("blocks:"+"\n");
		for(Block i: block_l){
			i.print_reg(n+2);
		}
		//close
		print_head(n+1);
		print_out("}"+"\n");
	}