Patent ID: 9182955
Filing Date: 2015-11-10
Classification: G06F

Abstract:
1. A computer program product comprising one or more computer-readable hardware storage media having thereon computer-executable instructions that are structured such that, when executed by one or more processors of a computing system, cause the computing system to perform a method for improving a control flow of a software program, the method comprising: an act of traversing a control flow graph corresponding to the control flow of the software program; as a result of the act of traversing, an act of detecting a flow control element that specifies a plurality of exit control flows that might be taken at runtime depending on a value of a parameter at runtime; in response to the act of detecting, an act of attempting to find a value narrowing point in the control flow graph prior to the flow control element such that the value narrowing point narrows the value of the parameter sufficiently that an exit control flow that would be selected by the flow control element is deterministic; if a value narrowing point is found in the act of attempting to find a value narrowing point, an act of identifying, from the plurality of exit control flows, the exit control flow that would be taken given the found value narrowing point; and an act of modifying the control flow such that control flow graph from the found value narrowing point leads to the identified exit control flow without traversing the flow control element.