AVR: Support to print nodes brief and recursive.

This patch adds a new format %N to the avr_xdump functions.
The purpose is to print a tree node, usually a DECL_P or
a TYPE_P in a recursive form that's not too verbose.
For example:

   typedef int (* const __flash fun_t)(long, int);

   int foo (fun_t (*f[][4]), int x, int y)
   {
      return (*f[x][y]) (x, y);
   }

will print with -mlog=insert_attributes, amongst others:

avr_insert_attributes[:pass=?]:
    <parm_decl 0x7f833edd8110 f>
       <pointer_type 0x7f833edacb28>
          <array_type 0x7f833edac888>
             <pointer_type 0x7f833edac690>
                <pointer_type 0x7f833edac5e8 fun_t address-space-1> read-only
                   <function_type 0x7f833edac3f0>
                      <integer_type 0x7f833ec745e8 int> return
                      <integer_type 0x7f833ec74738 long int>
                      <integer_type 0x7f833ec745e8 int>
                      <void_type 0x7f833ec7c1f8 void>

gcc/
	* config/avr/avr-protos.h (avr_log_t) <insert_attributes>: New field.
	* config/avr/avr-log.cc (avr_log_node): New static function.
	(avr_log_vadump) [%N]: Call it.
	(avr_log_set_avr_log) <insert_attributes>: New SET_DUMP_DETAIL.
	* config/avr/avr.cc (avr_pgm_check_var_decl): Don't call avr_edump.
	(avr_insert_attributes) [avr_log.insert_attributes]: Call avr_edump.
3 files changed