Techniques for causing a compiler to organize code pertaining to data that
is not constant, but that is unlikely to change except in relatively
infrequent situations, in an improved manner. A class containing data
that may have more than one value, but which will have a particular value
in the typical case, is now split into two parts, a first class which
uses the more-likely data value as a constant, and a second class
(designed as a subclass of the first class) that uses the data value as a
variable capable of having either the more-likely value or other,
less-likely values. The compiler generates assembly code comprising
instructions pertaining to the more-likely data value, and also generates
assembly code capable of processing the less-likely data values. This
latter code, however, is initially unreachable. The compiler-generated
assembly code will be programmatically patched, at run time, if any of
the less-likely data values occur, thereby dynamically making the code
reachable. Once the initially-unreachable code becomes reachable, it will
be used thereafter (regardless of the setting of the data value).