This attribute allows the compiler to assume that the function never recurses into itself, either directly or indirectly (transitively). This can be used among other things to demote global variables to locals.
The norecurse attribute indicates that the function does not call itself either directly or indirectly down any possible call path.
Just a nitpick: I believe we enabled autobrief and we shouldn't add it anymore when unnecessary.