US 12,106,073 B2
Reducing code path permutations
Jeff Bartolotta, Concord, CA (US); Roopa Mohan, Dublin, CA (US); and Josh Feingold, Chicago, IL (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Aug. 5, 2022, as Appl. No. 17/881,832.
Prior Publication US 2024/0045658 A1, Feb. 8, 2024
Int. Cl. G06F 8/30 (2018.01); G06F 11/36 (2006.01)
CPC G06F 8/30 (2013.01) [G06F 11/3676 (2013.01); G06F 11/3688 (2013.01)] 19 Claims
OG exemplary drawing
 
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.