> 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

Reply via email to