Related articles |
---|
dangerous optizations [avoidance of] sjs@ctt.bellcore.com (1988-09-12) |
Date: | Mon, 12 Sep 88 13:38:23 EDT |
From: | sjs@ctt.bellcore.com (Stan Switzer) |
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
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.