Paulo Matos schrieb:
Hi,

Is there any good way to define TARGET_CANNOT_MODIFY_JUMPS_P such
that jumps are not modified after sched2?

Or in other words, is there a way to recognize if sched2 has already
been ran (sched2_completed, maybe)?

Such flags would be really helpful, but unfortunately there is nothing like that. In an ideal world, such flags are not needed, but there are situations with the complexity of real-world hardware where such flags were really appreciated.

I came across a similar situation where a flag like combine_completed or split1_completed or ira_in_progress would have been very handy, see

http://gcc.gnu.org/ml/gcc/2011-07/msg00146.html
http://gcc.gnu.org/ml/gcc/2011-07/msg00154.html

In that case I thought about something like

#include "tree-pass.h"

bool
avr_gate_split1 (void)
{
  if (current_pass->static_pass_number
      < pass_match_asm_constraints.pass.static_pass_number)
    return true;

  return false;
}

What happened is that I did not use this. Instead, the code does not use pass meta-information and produced sub-optimal code for that reason.

Johann

Reply via email to