1. A system comprising: a processor; and a memory, wherein the memory stores a compiler that translates source code of a compiled high level language into bytecode, and wherein the compiler comprises: a front end that analyzes the source code to build an internal representation of the source code; and a bytecode generator that translates the internal representation into bytecode, wherein the bytecode is not machine code and requires further processing in order to be executed, wherein the bytecode generator performs control flow analysis by detecting and optimizing flow-affected code, wherein the compiled high level language is COBOL, wherein the flow-affected code includes overlapping PERFORM ranges, wherein the optimizing is accomplished through resolving the overlapping PERFORM ranges, and wherein the overlapping PERFORM ranges are detected by: identifying one or more regions having an entry point; selecting a PERFORM instruction associated with the entry point to analyze; determining a PERFORM range for the selected PERFORM instruction; identifying an instruction that changes control flow subsequent to the selected PERFORM instruction; and determining flow-affected code resulting from the instruction, wherein the overlapping PERFORM ranges are resolved by determining reachable regions and forming an adjusted PERFORM range for the selected PERFORM instruction based on the determined reachable regions.