Proc fred(args) param

Is this by definition inline or should I spell it out explicitly, i.e. is there a difference if I prefix (or not) the proc withinline.

Are you asking specifically about procs with param return intent? Those are removed before the inlining pass. Therefore inline does not make a difference.

For non-param and non-type procs, inline ensures that the Chapel compiler inlines the proc. Without inline, the Chapel compiler inlines only iterators except in corner cases.

Once the generated code is passed to the backend compiler, it uses its own judgment what to inline; Chapel's inline annotation - or its absence - has no impact there.

1 Like