A computer device, comprising: a memory to store data and instructions; a processor in communication with the memory; a compiler in communication with the memory and the processor, wherein the compiler is operable to: receive program code for an application executing on a computer device; receive an identification of a selected pipeline from a plurality of pipelines that defines a plurality of passes of actions to execute on the program code to optimize the program code; run the selected pipeline and generate optimizer output with a program code representation of the program code, wherein the program code representation is provided after execution of each pass of the plurality of passes to illustrate differences in the program code representation before and after execution of each pass of the plurality of passes; receive edits to the program code representation of at least one selected pass (306, 406) of the plurality of passes and generate an edited program code; and 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, to generate revised optimizer output. a memory to store data and instructions; a processor in communication with the memory; a compiler in communication with the memory and the processor, wherein the compiler is operable to: receive program code for an application executing on a computer device; receive an identification of a selected pipeline from a plurality of pipelines that defines a plurality of passes of actions to execute on the program code to optimize the program code; run the selected pipeline and generate optimizer output with a program code representation of the program code, wherein the program code representation is provided after execution of each pass of the plurality of passes to illustrate differences in the program code representation before and after execution of each pass of the plurality of passes; receive edits to the program code representation of at least one selected pass (306, 406) of the plurality of passes and generate an edited program code; and 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, to generate revised optimizer output. receive program code for an application executing on a computer device; receive an identification of a selected pipeline from a plurality of pipelines that defines a plurality of passes of actions to execute on the program code to optimize the program code; run the selected pipeline and generate optimizer output with a program code representation of the program code, wherein the program code representation is provided after execution of each pass of the plurality of passes to illustrate differences in the program code representation before and after execution of each pass of the plurality of passes; receive edits to the program code representation of at least one selected pass (306, 406) of the plurality of passes and generate an edited program code; and 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, to generate revised optimizer output.