1. A method comprising: receiving as an input: (a) a higher-level structure representing control flow through an executable program, the higher-level structure comprising one or more levels of parent nodes, each parent node representing internal structure comprising a group of one or more child nodes and one or more associated edges between nodes; and (b) an indication of at least one start and end instruction; probing the levels of the higher-level structure to extract a substructure representing a route through the program from the start to the end instruction, by selectively extracting nodes of different levels of parent or child to represent different regions along the route in dependence on a location of the start and end instructions relative to the parent nodes; and based on the extracted substructure, estimating an execution time for the route through the program, and making a modification affecting the execution time in dependence on said estimation.