This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Question on param MAX_PENDING_LIST_LENGTH in sched-deps

The parameter MAX_PENDING_LIST_LENGTH is set to 32 by default.  It
seems to me the length of pending list can't be larger than 32.  But
in sched-deps.c, below code is used:
      /* Pending lists can't get larger with a readonly context.  */
      if (!deps->readonly
          && ((deps->pending_read_list_length + deps->pending_write_list_length)
              > MAX_PENDING_LIST_LENGTH))

Since we compares it using ">", the list can have 33 instructions at
most, which is inconsistent with the parameter name.

Well, it's some kind of nit picking.

Another question.  This parameter is introduced to prevent GCC from
running for too long time.  I am not clear if the running time is a
quadratic function of pending list, or a quadratic function of
dependency nodes?  If it's the latter, could we use the number of
dependency nodes as the parameter directly?  Because in some cases
like memory initialization, there are more than 32 store instructions
in flow, but the dependency are actually very simple.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]