Provided is a JIT compiler that changes the status of run-time determined
software routines between being activated and deactivated in an
application program. Conditional statements which are used at run-time to
determine whether such a routine has been activated or deactivated are
presented as discrete conditions that always evaluate to a known result
by using an invariant flag in the compiled bytecode. The JIT compiler
optimises an application program by excluding discrete condition checks.
Consequently, if the branch of the discrete condition that will never
execute includes a run-time determined software routine, then the routine
will be excluded from the JIT compilation and will not form part of the
JIT compiled native machine code. A run-time class or code replacement
facility is used as a means of activating or deactivating a run-time
determined software routine at run-time by changing the value of the
invariant flag of said routine.