CPC G06F 8/30 (2013.01) [G06F 11/3676 (2013.01); G06F 11/3688 (2013.01)] | 19 Claims |
1. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by at least one processor, perform a method of identifying code path permutations, the method comprising:
receiving a plurality of source code files comprising source code instructions and source code predicates determining conditional execution of the source code instructions;
traversing the plurality of source code files using a path visiting object until a first branch including a first predicate is reached;
creating a first path object associated with a first value for the first predicate;
creating a second path object associated with a second value for the first predicate;
traversing the plurality of source code files using the path visiting object until a second branch including a second predicate is reached;
determining that the second predicate is deterministic based on the first predicate;
adding, to the first path object, a first branch outcome based on the first value for the first predicate;
adding, to the second path object, a second branch outcome based on the second value for the first predicate;
adding the first path object and the second path object to a list of code path permutations; and
generating optimized object code based on the plurality of source code files and the list of code path permutations.
|