|dangerous optizations [avoidance of] email@example.com (1988-09-12)|
|Date:||Mon, 12 Sep 88 13:38:23 EDT|
|From:||firstname.lastname@example.org (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 email@example.com or bellcore!ctt!sjs
Return to the
Search the comp.compilers archives again.