Cannot modify jumps after sched2

Georg-Johann Lay gjl@gcc.gnu.org
Tue Oct 9 21:17:00 GMT 2012


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



More information about the Gcc mailing list