Commit dfe1a916 by Doug Evans

(open_dump_file): New function.

(compile_file): Open dump files with it.  Remove dump_base_name_length.

From-SVN: r6498
parent 18b9ca6f
...@@ -1846,6 +1846,23 @@ output_lang_identify (asm_out_file) ...@@ -1846,6 +1846,23 @@ output_lang_identify (asm_out_file)
ASM_OUTPUT_LABEL (asm_out_file, s); ASM_OUTPUT_LABEL (asm_out_file, s);
} }
/* Routine to open a dump file. */
static FILE *
open_dump_file (base_name, suffix)
char *base_name;
char *suffix;
{
FILE *f;
char *dumpname = (char *) alloca (strlen (base_name) + strlen (suffix) + 1);
strcpy (dumpname, base_name);
strcat (dumpname, suffix);
f = fopen (dumpname, "w");
if (f == 0)
pfatal_with_name (dumpname);
return f;
}
/* Compile an entire file of output from cpp, named NAME. /* Compile an entire file of output from cpp, named NAME.
Write a file of assembly output and various debugging dumps. */ Write a file of assembly output and various debugging dumps. */
...@@ -1855,13 +1872,11 @@ compile_file (name) ...@@ -1855,13 +1872,11 @@ compile_file (name)
{ {
tree globals; tree globals;
int start_time; int start_time;
int dump_base_name_length;
int name_specified = name != 0; int name_specified = name != 0;
if (dump_base_name == 0) if (dump_base_name == 0)
dump_base_name = name ? name : "gccdump"; dump_base_name = name ? name : "gccdump";
dump_base_name_length = strlen (dump_base_name);
parse_time = 0; parse_time = 0;
varconst_time = 0; varconst_time = 0;
...@@ -1932,159 +1947,61 @@ compile_file (name) ...@@ -1932,159 +1947,61 @@ compile_file (name)
/* If rtl dump desired, open the output file. */ /* If rtl dump desired, open the output file. */
if (rtl_dump) if (rtl_dump)
{ rtl_dump_file = open_dump_file (dump_base_name, ".rtl");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".rtl");
rtl_dump_file = fopen (dumpname, "w");
if (rtl_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If jump_opt dump desired, open the output file. */ /* If jump_opt dump desired, open the output file. */
if (jump_opt_dump) if (jump_opt_dump)
{ jump_opt_dump_file = open_dump_file (dump_base_name, ".jump");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".jump");
jump_opt_dump_file = fopen (dumpname, "w");
if (jump_opt_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If cse dump desired, open the output file. */ /* If cse dump desired, open the output file. */
if (cse_dump) if (cse_dump)
{ cse_dump_file = open_dump_file (dump_base_name, ".cse");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".cse");
cse_dump_file = fopen (dumpname, "w");
if (cse_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If loop dump desired, open the output file. */ /* If loop dump desired, open the output file. */
if (loop_dump) if (loop_dump)
{ loop_dump_file = open_dump_file (dump_base_name, ".loop");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".loop");
loop_dump_file = fopen (dumpname, "w");
if (loop_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If cse2 dump desired, open the output file. */ /* If cse2 dump desired, open the output file. */
if (cse2_dump) if (cse2_dump)
{ cse2_dump_file = open_dump_file (dump_base_name, ".cse2");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".cse2");
cse2_dump_file = fopen (dumpname, "w");
if (cse2_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If flow dump desired, open the output file. */ /* If flow dump desired, open the output file. */
if (flow_dump) if (flow_dump)
{ flow_dump_file = open_dump_file (dump_base_name, ".flow");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".flow");
flow_dump_file = fopen (dumpname, "w");
if (flow_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If combine dump desired, open the output file. */ /* If combine dump desired, open the output file. */
if (combine_dump) if (combine_dump)
{ combine_dump_file = open_dump_file (dump_base_name, ".combine");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 10);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".combine");
combine_dump_file = fopen (dumpname, "w");
if (combine_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If scheduling dump desired, open the output file. */ /* If scheduling dump desired, open the output file. */
if (sched_dump) if (sched_dump)
{ sched_dump_file = open_dump_file (dump_base_name, ".sched");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 7);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".sched");
sched_dump_file = fopen (dumpname, "w");
if (sched_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If local_reg dump desired, open the output file. */ /* If local_reg dump desired, open the output file. */
if (local_reg_dump) if (local_reg_dump)
{ local_reg_dump_file = open_dump_file (dump_base_name, ".lreg");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".lreg");
local_reg_dump_file = fopen (dumpname, "w");
if (local_reg_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If global_reg dump desired, open the output file. */ /* If global_reg dump desired, open the output file. */
if (global_reg_dump) if (global_reg_dump)
{ global_reg_dump_file = open_dump_file (dump_base_name, ".greg");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".greg");
global_reg_dump_file = fopen (dumpname, "w");
if (global_reg_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If 2nd scheduling dump desired, open the output file. */ /* If 2nd scheduling dump desired, open the output file. */
if (sched2_dump) if (sched2_dump)
{ sched2_dump_file = open_dump_file (dump_base_name, ".sched2");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 8);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".sched2");
sched2_dump_file = fopen (dumpname, "w");
if (sched2_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If jump2_opt dump desired, open the output file. */ /* If jump2_opt dump desired, open the output file. */
if (jump2_opt_dump) if (jump2_opt_dump)
{ jump2_opt_dump_file = open_dump_file (dump_base_name, ".jump2");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 7);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".jump2");
jump2_opt_dump_file = fopen (dumpname, "w");
if (jump2_opt_dump_file == 0)
pfatal_with_name (dumpname);
}
/* If dbr_sched dump desired, open the output file. */ /* If dbr_sched dump desired, open the output file. */
if (dbr_sched_dump) if (dbr_sched_dump)
{ dbr_sched_dump_file = open_dump_file (dump_base_name, ".dbr");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 7);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".dbr");
dbr_sched_dump_file = fopen (dumpname, "w");
if (dbr_sched_dump_file == 0)
pfatal_with_name (dumpname);
}
#ifdef STACK_REGS #ifdef STACK_REGS
/* If stack_reg dump desired, open the output file. */ /* If stack_reg dump desired, open the output file. */
if (stack_reg_dump) if (stack_reg_dump)
{ stack_reg_dump_file = open_dump_file (dump_base_name, ".stack");
register char *dumpname = (char *) xmalloc (dump_base_name_length + 10);
strcpy (dumpname, dump_base_name);
strcat (dumpname, ".stack");
stack_reg_dump_file = fopen (dumpname, "w");
if (stack_reg_dump_file == 0)
pfatal_with_name (dumpname);
}
#endif #endif
...@@ -2094,8 +2011,8 @@ compile_file (name) ...@@ -2094,8 +2011,8 @@ compile_file (name)
asm_out_file = stdout; asm_out_file = stdout;
else else
{ {
register char *dumpname = (char *) xmalloc (dump_base_name_length + 6);
int len = strlen (dump_base_name); int len = strlen (dump_base_name);
register char *dumpname = (char *) xmalloc (len + 6);
strcpy (dumpname, dump_base_name); strcpy (dumpname, dump_base_name);
strip_off_ending (dumpname, len); strip_off_ending (dumpname, len);
strcat (dumpname, ".s"); strcat (dumpname, ".s");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment