Using reaching definitions to place instrumentation at definition-time rather than use-time. This does not guarantee that the instrumentation will be invoked fewer number of times than before but it should be true for most user codes.