Пример #1
0
char *
get_dump_file_name (enum tree_dump_index phase)
{
  char dump_id[10];
  struct dump_file_info *dfi;

  if (phase == TDI_none)
    return NULL;

  dfi = get_dump_file_info (phase);
  if (dfi->state == 0)
    return NULL;

  if (dfi->num < 0)
    dump_id[0] = '\0';
  else
    {
      char suffix;
      if (dfi->flags & TDF_TREE)
        suffix = 't';
      else if (dfi->flags & TDF_IPA)
        suffix = 'i';
      else
        suffix = 'r';

      if (snprintf (dump_id, sizeof (dump_id), ".%03d%c", dfi->num, suffix) < 0)
        dump_id[0] = '\0';
    }

  return concat (dump_base_name, dump_id, dfi->suffix, NULL);
}
Пример #2
0
FILE *
gcc_dump_begin (int phase, int *flag_ptr)
{
char name[256];
struct dump_file_info *dfi;
FILE *stream;
if (phase == TDI_none)
return NULL;

//name = "test.original";
strcpy(name,get_src_full_filename());
strcat(name,".original");
//name = get_dump_file_name (phase);
//name = global_options.x_dump_base_name;
dfi = get_dump_file_info (phase);
#ifdef PLUGIN_DEBUG
stream = fopen (name, dfi->state < 0 ? "w" : "a");
#else
stream = fopen("/dev/null",dfi->state < 0 ? "w" : "a");
#endif
register_state(dfi,dfi->state);
if (!stream)
error ("could not open dump file %qs: %m", name);
else
dfi->state = 1;

//free (name);

if (flag_ptr)
*flag_ptr = dfi->flags;

return stream;
}
Пример #3
0
void
finish_optimization_passes (void)
{
  /* LLVM LOCAL begin Dead code strip cc1. */
#ifdef ENABLE_LLVM
  return;
#else
  enum tree_dump_index i;
  struct dump_file_info *dfi;
  char *name;

  timevar_push (TV_DUMP);
  if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities)
    {
      dump_file = dump_begin (pass_profile.static_pass_number, NULL);
      end_branch_prob ();
      if (dump_file)
	dump_end (pass_profile.static_pass_number, dump_file);
    }

  if (optimize > 0)
    {
      dump_file = dump_begin (pass_combine.static_pass_number, NULL);
      if (dump_file)
	{
	  dump_combine_total_stats (dump_file);
          dump_end (pass_combine.static_pass_number, dump_file);
	}
    }

  /* Do whatever is necessary to finish printing the graphs.  */
  if (graph_dump_format != no_graph)
    for (i = TDI_end; (dfi = get_dump_file_info (i)) != NULL; ++i)
      if (dump_initialized_p (i)
	  && (dfi->flags & TDF_GRAPH) != 0
	  && (name = get_dump_file_name (i)) != NULL)
	{
	  finish_graph_dump_file (name);
	  free (name);
	}

  timevar_pop (TV_DUMP);
#endif
  /* LLVM LOCAL end Dead code strip cc1. */
}
Пример #4
0
char *
get_dump_file_name (enum tree_dump_index phase)
{
  char dump_id[7];
  struct dump_file_info *dfi;

  if (phase == TDI_none)
    return NULL;

  dfi = get_dump_file_info (phase);
  if (dfi->state == 0)
    return NULL;

  if (dfi->num < 0)
    dump_id[0] = '\0';
  else
    {
      const char *template;
      if (dfi->flags & TDF_TREE)
Пример #5
0
int
dump_enabled_p (enum tree_dump_index phase)
{
  if (phase == TDI_tree_all)
    {
      size_t i;
      for (i = TDI_none + 1; i < (size_t) TDI_end; i++)
        if (dump_files[i].state)
          return 1;
      for (i = 0; i < extra_dump_files_in_use; i++)
        if (extra_dump_files[i].state)
          return 1;
      return 0;
    }
  else
    {
      struct dump_file_info *dfi = get_dump_file_info (phase);
      return dfi->state;
    }
}
Пример #6
0
FILE *
dump_begin (enum tree_dump_index phase, int *flag_ptr)
{
  char *name;
  struct dump_file_info *dfi;
  FILE *stream;

  if (phase == TDI_none || !dump_enabled_p (phase))
    return NULL;

  name = get_dump_file_name (phase);
  dfi = get_dump_file_info (phase);
  stream = fopen (name, dfi->state < 0 ? "w" : "a");
  if (!stream)
    error ("could not open dump file %qs: %s", name, strerror (errno));
  else
    dfi->state = 1;
  free (name);

  if (flag_ptr)
    *flag_ptr = dfi->flags;

  return stream;
}
Пример #7
0
const char *
dump_flag_name (enum tree_dump_index phase)
{
  struct dump_file_info *dfi = get_dump_file_info (phase);
  return dfi->swtch;
}
Пример #8
0
int
dump_initialized_p (enum tree_dump_index phase)
{
  struct dump_file_info *dfi = get_dump_file_info (phase);
  return dfi->state > 0;
}