Note: the oracle currently doesn't work with programs that have run time constant pointers. This is inherent, since pointer values change between profiling and specialization. You should use it a little differently now. You still set the environmental variable "DYNVALUETABLE" to a filename, however now you set the value *before* your compile the profiling version, but make sure no file exists. So do something like: setenv DYNVALUETABLE table.out rm -f $DYNVALUETABLE dc -o stack_profile stack.c libdyn.a stack_profile dc -o stack_special stack.c libdyn.a note the libdyn.a in the final commmand is optional, unless you are using keys, in which case its required (one of the routines in libdyn.a is needed to manage the keys).