Optimize (SYMBOL-[GLOBAL-]VALUE X) for constant X
We can't turn (SYMBOL-VALUE 'S) into a use of the atom S because
IR1-CONVERT-VAR sometimes converts S into (SYMBOL-VALUE 'S) which
would result in an infinite loop. The remedy is to introduce a new
SYMEVAL function to distinguish compiler-generated symbol-value
calls from those which are user-written or expanded from macros.
Specifically this improves ATOMIC-{PUSH,POP} on a symbol,
the expansions of which entail (SYMBOL-VALUE '*GLOBAL*)
20 files changed: