[comp.compilers] dangerous optizations avoidance of

sjs@ctt.bellcore.com (Stan Switzer) (09/13/88)

Sperry (now Unisys, once Univac) has a language called PLUS.  The
language had few redeeming features, but one of them was the way it
handled access to critical data.

One could declare a variable type LOCK, which produced a cell for
test-and-set locking (using either a spin-lock or queued).  When you
declared critical data, you specified a LOCKED(lockcell) attribute.
Legitimate access to locked data was between "LOCK cell", and "UNLOCK
cell" statements.  The optimizer then knew not only which variables
had volatile access, but also where the volitility occurred.  This
allowed the optimizer to make aggressive but (in theory) correct
optimizations even in this kind of code.

Stan Switzer  sjs@ctt.bellcore.com  or  bellcore!ctt!sjs
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.EDU
Plausible paths are { decvax | harvard | yale | bbn}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request