[Info-vax] Asynchronous code on VMS and LLVM, was: Re: Ada x86 (was Rdb/x86)
Simon Clubley
clubley at remove_me.eisner.decus.org-Earth.UFP
Tue Dec 1 13:27:19 EST 2020
On 2020-12-01, John Reagan <xyzzy1959 at gmail.com> wrote:
> This is more a compiler issue with regards to legal code optimizations. Compiling -O0 /NOOPT will keep the error in the "right" stop.
>
> As far as the hardware memory ordering, yes, the x86 is more like VAX. Alpha is the most, uh, "flexible" that needs MB and IMB instructions to serialize memory ordering.
I was thinking more that the VMS APIs are much more asynchronous than
the Unix APIs so I wondered if the optimiser in LLVM was doing things
to asynchronous VMS code that broke the code when compiled with LLVM
but which worked when compiled with the DEC compilers.
We have had this discussion in the past when talking about memory
locations which were not marked as volatile, but at that time, things
were not far enough along in the port to know if there were any
issues there.
Now that things are further along, I was wondering if any issues
had been discovered with the asynchronous updating of memory locations
(ie: outside of a call boundary to a VMS API) and, if so, if it was
just a simple matter of correctly marking those locations as volatile.
Simon.
--
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.
More information about the Info-vax
mailing list