Opened 13 days ago

Closed 8 days ago

#5883 closed defect (fixed)

Non-scalarized array assigments in functions

Reported by: Jonathan Kämpe Owned by: Jonathan Kämpe
Priority: major Milestone:
Component: Modelica/FrontEnd Version: trunk
Keywords: Cc:

Description

For simple cases we can skip scalarization of array assignments and use memcpy when executing them in runtime.

Change History (2)

comment:1 Changed 11 days ago by Jonathan Kämpe

r14150: Removing trailing non-slice subscripts in functions to be able to identify uses as non-slices in flat tree.
r14165: Now keeping mutable primitive array assignments as composite assignments rather than expanding to for loops.
r14169: Adding test case with unnecessary temporaries
r14173: More cases of keeping mutable primitive array assignments as composite assignments rather than expanding to for loops.
r14174: Updated assign macro to use memcpy instead of for loop.

Last edited 11 days ago by Jonathan Kämpe (previous) (diff)

comment:2 Changed 8 days ago by Jonathan Kämpe

Resolution: fixed
Status: assignedclosed

r14182: Added failing test case for differentiating composite statements.
r14183: Handling differentiated composite statements where right hand side becomes zero array.
r14193: Adding changelog item
r14198: Refactoring
r14200: Added comments
r14204: Merge to trunk. Array assignments in functions are now kept as composite rather than expanded to for loops. Translates to memcpy in c-code. Should improve compilation and runtime performance.

Note: See TracTickets for help on using tickets.