+ prog->stack[prog->depth].profile_acc += f->profile;
+ prog->stack[prog->depth].builtinsprofile_acc += f->builtinsprofile;
+ if(prog->depth > 0)
+ {
+ prog->stack[prog->depth-1].profile_acc += prog->stack[prog->depth].profile_acc;
+ prog->stack[prog->depth-1].builtinsprofile_acc += prog->stack[prog->depth].builtinsprofile_acc;
+ }
+ if(!f->recursion)
+ {
+ // if f is already on the call stack...
+ // we cannot add this profile data to it now
+ // or we would add it more than once
+ // so, let's only add to the function's profile if it is the outermost call
+ f->profile_total += prog->stack[prog->depth].profile_acc;
+ f->builtinsprofile_total += prog->stack[prog->depth].builtinsprofile_acc;
+ }
+