[Info-vax] New VSI Roadmap (yipee!)
John Reagan
xyzzy1959 at gmail.com
Tue Mar 3 10:30:39 EST 2015
On Monday, March 2, 2015 at 9:30:19 PM UTC-5, David Froble wrote:
>
> Perhaps note the difference in CPU time between calling the subroutine,
> and executing almost the same exact code inline.
>
> Now, I'm assuming that a build in language function would be similar to
> inline code. Perhaps that is my mistake.
My bad. I forgot about BASIC's horrible exception handling semantics. When a BASIC routine starts (ANY BASIC routine), it needs to know how to handle certain exceptions (floating, file I/O, etc.). A routine inherits those settings from its caller. So it has to walk up the stack to find the caller to interrogate a compiler structure to replicate it for the local routine. You think it is bad for Alpha, Itanium is worse. On Itanium, we added some RTL calls so you can turn off that behavior as almost nobody relies on it. I don't think that was backported to Alpha since it is in platform specific code. I don't think we added a DCL qualifier or anything else to turn it off (I didn't do that work, I'd have to go look at the code)
Adding a builtin to replace a called routine certainly helps but routine overhead in BASIC is going to be worse than the other languages.
More information about the Info-vax
mailing list