Thanks. 
Will fix them in the next version.

Qing

> On Oct 30, 2024, at 13:52, Sam James <s...@gentoo.org> wrote:
> 
> Qing Zhao <qing.z...@oracle.com> writes:
> 
>> gcc/ChangeLog:
>> 
>> * diagnostic-move-history.cc (dump_move_history): New routine.
>> (dump_move_history_for): Likewise.
>> (debug_mv_h): Likewise.
>> * diagnostic-move-history.h (dump_move_history): New prototype.
>> (dump_move_history_for): Likewise.
>> * gimple-ssa-isolate-paths.cc (isolate_path): Add debugging message
>> when setting move history for statements.
>> * tree-ssa-sink.cc (sink_code_in_bb): Likewise.
>> * tree-ssa-threadupdate.cc (ssa_redirect_edges): Likewise.
>> (back_jt_path_registry::duplicate_thread_path): Likewise.
>> ---
>> gcc/diagnostic-move-history.cc  | 67 +++++++++++++++++++++++++++++++++
>> gcc/diagnostic-move-history.h   |  2 +
>> gcc/gimple-ssa-isolate-paths.cc | 10 +++++
>> gcc/tree-ssa-sink.cc            |  3 ++
>> gcc/tree-ssa-threadupdate.cc    | 18 +++++++++
>> 5 files changed, 100 insertions(+)
>> 
>> diff --git a/gcc/diagnostic-move-history.cc b/gcc/diagnostic-move-history.cc
>> index b0e8308dbf6b..e4c471ab50f3 100644
>> --- a/gcc/diagnostic-move-history.cc
>> +++ b/gcc/diagnostic-move-history.cc
>> @@ -24,6 +24,7 @@
>> #include "backend.h"
>> #include "tree.h"
>> #include "gimple.h"
>> +#include "tree-pretty-print.h"
>> #include "gimple-iterator.h"
>> #include "cfganal.h"
>> #include "diagnostic-move-history.h"
>> @@ -262,3 +263,69 @@ set_move_history_to_stmts_in_bb (basic_block bb, edge 
>> entry,
>> 
>>   return true;
>> }
>> +
>> +/* Dump the move_history data structure MV_HISTORY.  */
>> +
>> +void
>> +dump_move_history (FILE *file, move_history_t mv_history)
>> +{
>> +  fprintf (file, "The move history is: \n");
> 
> "is:\n"
> 
>> +  if (!mv_history)
>> +    {
>> +      fprintf (file, "No move history.\n");
>> +      return;
>> +    }
>> +
>> +  for (move_history_t cur_ch = mv_history; cur_ch;
>> +       cur_ch = cur_ch->prev_move)
>> +    {
>> +      expanded_location exploc_cond = expand_location (cur_ch->condition);
>> +
>> +      if (exploc_cond.file)
>> + fprintf (file, "[%s:", exploc_cond.file);
>> +      fprintf (file, "%d, ", exploc_cond.line);
>> +      fprintf (file, "%d] ", exploc_cond.column);
>> +
>> +      fprintf (file, "%s ", cur_ch->is_true_path ? "true" : "false");
>> +      const char *reason = NULL;
>> +      switch (cur_ch->reason)
>> + {
>> + case COPY_BY_THREAD_JUMP:
>> +   reason = "copy_by_thread_jump";
>> +   break;
>> + case COPY_BY_ISOLATE_PATH:
>> +   reason = "copy_by_isolate_path";
>> +   break;
>> + case MOVE_BY_SINK:
>> +   reason = "move_by_sink";
>> +   break;
>> + default:
>> +   reason = "UNKNOWN";
>> +   break;
>> + }
>> +      fprintf (file, "%s \n", reason);
> 
> "s\n"
> 
>> +    }
>> +}
>> +
>> +/* Dump the move_history date structure attached to the gimple STMT.  */
> 
> date -> data
> 
>> +void
>> +dump_move_history_for (FILE *file, const gimple *stmt)
>> +{
>> +  move_history_t mv_history = get_move_history (stmt);
>> +  if (!mv_history)
>> +    fprintf (file, "No move history.\n");
>> +  else
>> +    dump_move_history (file, mv_history);
>> +}
>> +
>> +DEBUG_FUNCTION void
>> +debug_mv_h (const move_history_t mv_history)
>> +{
>> +  dump_move_history (stderr, mv_history);
>> +}
>> +
>> +DEBUG_FUNCTION void
>> +debug_mv_h (const gimple * stmt)
>> +{
>> +  dump_move_history_for (stderr, stmt);
>> +}
>> [...]


Reply via email to