<div dir="ltr"><div>In our architecture loads from certain memory locations take a long time to complete (on the order of 150 clock cycles). Since we don't have a way to tell at compile time if the address being loaded from lies in slow or fast memory, I've gone ahead and made all of the load numbers high, such as:<br><br>  InstrItinData< II_LOAD1,     [InstrStage<150, [AGU]>]>,<br><br></div>However, I see that there is another field which I haven't specified where operand latencies are specified.  Here's an example from <br><div>ARMScheduleA8.td:<br><br>  InstrItinData<IIC_iALUi ,[InstrStage<1, [A8_Pipe0, A8_Pipe1]>], [2, 2]>,<br><br></div><div>Now I'm wondering if Instead of what I had above, I should instead have specified:<br><br>  InstrItinData< II_LOAD1,     [InstrStage<150, [AGU]>],[150,1,1]>,<br><br></div><div>?<br><br></div><div>but is that first '150' parameter there redundant? Since it's specified in the operand latency list ([150,1,1] - the first element of that array being the latency for the output)?<br><br><br></div><div>To clarify, for values of  'A' and 'B' below:<br><br>  InstrItinData< II_LOAD1,     [InstrStage<A, [AGU]>], [B,1,1]>,<br></div><div>  <br></div><div>...what is the difference in the meaning for 'A' and 'B'? Are they essentially the same value since only one functional unit is specified? ([AGU])<br></div><div><br></div><div>Phil<br></div></div>