> I had to sleep on this one. I had the answer yesterday without > recognizing > it. Both a performance improvement and the fix can be implemented > here by: > > evaluation.adb:677 > > when Iir_Predefined_Array_Rol > | Iir_Predefined_Array_Ror => > Cnt := Cnt mod Len; > if Cnt = 0 then > return Build_Simple_Aggregate (Arr_List, Origin, > Get_Type > (Left)); > end if; > if not Dir_Left then > Cnt := Len - Cnt; > end if; > end case; > > Which saves a little code traversal, too. The idea being if Cnt = 0 > no > offset copying is required, you can return the original array and > short > circuit further copying (Arr_List was already produced from Left).
David, feel free to post a patch. You seem to be able to track down this issue completely. Tristan. _______________________________________________ Ghdl-discuss mailing list [email protected] https://mail.gna.org/listinfo/ghdl-discuss
