A computer device, comprising: a memory to store data and instructions; at least one processor in communication with the memory, at least on compiler in communication with the memory and the at least one processor, wherein the compiler is operable to: receive a selection of a pipeline from a plurality of available pipelines that define a plurality of passes of work the compiler executes on program code for an application; run each pass of the plurality of passes for the pipeline and coordinate shared states between each pass by calculating data for future passes of the plurality of passes to use while optimizing the program code; generate optimizer output including a list of executed passes from the plurality of passes on the program code and the program code representations of the program code at each executed pass; receive edits from a user to the program code representation of at least one selected pass from the list of executed passes and generate an edited program code; continue to run the remainder of the selected pipeline on basis of the edited program code, thereby populating the edits throughout the remaining passes in the selected pipeline; and generate revised program code representations of the edited program code to display to the user in response to the executed passes. a memory to store data and instructions; at least one processor in communication with the memory, at least on compiler in communication with the memory and the at least one processor, wherein the compiler is operable to: receive a selection of a pipeline from a plurality of available pipelines that define a plurality of passes of work the compiler executes on program code for an application; run each pass of the plurality of passes for the pipeline and coordinate shared states between each pass by calculating data for future passes of the plurality of passes to use while optimizing the program code; generate optimizer output including a list of executed passes from the plurality of passes on the program code and the program code representations of the program code at each executed pass; receive edits from a user to the program code representation of at least one selected pass from the list of executed passes and generate an edited program code; continue to run the remainder of the selected pipeline on basis of the edited program code, thereby populating the edits throughout the remaining passes in the selected pipeline; and generate revised program code representations of the edited program code to display to the user in response to the executed passes. receive a selection of a pipeline from a plurality of available pipelines that define a plurality of passes of work the compiler executes on program code for an application; run each pass of the plurality of passes for the pipeline and coordinate shared states between each pass by calculating data for future passes of the plurality of passes to use while optimizing the program code; generate optimizer output including a list of executed passes from the plurality of passes on the program code and the program code representations of the program code at each executed pass; receive edits from a user to the program code representation of at least one selected pass from the list of executed passes and generate an edited program code; continue to run the remainder of the selected pipeline on basis of the edited program code, thereby populating the edits throughout the remaining passes in the selected pipeline; and generate revised program code representations of the edited program code to display to the user in response to the executed passes.