Unoptimized is the term most often used in the field of computing to refer to a program that has not been optimized, in your case to the output of the compiler when it has been instructed to not perform optimizations - as you clarified in the comments as a response to my question. Using unoptimized will be unambiguous to the reader regardless of level of expertise. The term is not listed in Oxford English Dictionaries - but it is precisely through usage that new words are included - so this should not keep you from using it. Incidentally, I have submitted to the Oxford Dictionaries team a link to this question for their consideration.
Update: OED added unoptimized in June 2018.
(computing) Not optimized.
The Google database of patents shows 268 patents that use the terms code, compiler, and unoptimized.
As evidence of the de facto use of "unoptimized" to refer to machine code that has not been optimized I submit the following example, Hewlett-Packard patent US6202205
SUMMARY OF THE INVENTION
The present invention provides a system and method to perform on-line profile based optimization of a software
library. According to the invention, this is accomplished by profiling
an unoptimized software library while it is used by an application,
using the resulting profile data to create an optimized software
library and then replacing the unoptimized software library with the
optimized software library without restarting the
Google: Patents: Hewlett-Packard patent US6202205
A Google ngram chart shows the rising usage of the term unoptimized, beginning in the 1960's, coinciding with the rise in computer programming.
The word code has different meanings, even within the field of computing, see Wikipedia: Code(disambiguation). In your question, code might be interpreted as one of two things:
- In computing, source code is any collection of computer instructions (possibly with comments) written using some
human-readable computer language, usually as text. The source code
of a program is specially designed to facilitate the work of computer
programmers, who specify the actions to be performed by a computer
mostly by writing source code. The source code is often
transformed by a compiler program into low-level machine code
understood by the computer. The machine code might then be stored
for execution at a later time. Alternatively, an interpreter can be
used to analyze and perform the outcomes of the source code program
directly on the fly.
Wikipedia: Source code
- Machine code or machine language is a set of instructions executed directly by a computer's central processing unit (CPU). Each
instruction performs a very specific task, such as a load, a jump, or
an ALU operation on a unit of data in a CPU register or memory. Every
program directly executed by a CPU is made up of a series of such
instructions. Numerical machine code (i.e., not assembly code) may
be regarded as the lowest-level representation of a compiled or
assembled computer program or as a primitive and hardware-dependent
programming language. While it is possible to write programs directly
in numerical machine code, it is tedious and error prone to manage
individual bits and calculate numerical addresses and constants
manually. It is thus rarely done today, except for situations that
require extreme optimization or debugging. Almost all practical
programs today are written in higher-level languages or assembly
language and translated to executable machine code by utilities such
as compilers, assemblers and linkers. Programs in interpreted
languages1 are not translated into machine code although their
interpreter (which may be seen as an executor or processor) typically
consists of directly executable machine code (generated from
assembly or high level language source code).
The optimization of code is therefore also ambiguous, as it might refer to
- the human (programmer) process of improving the performance of a program by changing the source code, or
- the compiler process of improving the performance of a program by analyzing the source code and generating machine code that results in faster execution (typically, although a compiler may also optimize for space, that is the smallest machine code or data size)
By your answers to questions in the comments we have determined that you are after a term that describes the version of the program generated by a compiler when it has been told to not perform optimizations. This is known by programmers as either the "debug version" or the "unoptimized version."
The description of the optimization levels that can be requested in the well known GCC compiler is instructive, and uses the term you suggested, "unoptimized"
18.104.22.168 Optimization Levels
Without any optimization option, the compiler's goal is to reduce the
cost of compilation and to make debugging produce the expected
results. Statements are independent: if you stop the program with a
breakpoint between statements, you can then assign a new value to any
variable or change the program counter to any other statement in the
subprogram and get exactly the results you would expect from the
Turning on optimization makes the compiler attempt to improve the
performance and/or code size at the expense of compilation time and
possibly the ability to debug the program.
The default is optimization off. This results in the fastest compile
times, but GNAT makes absolutely no attempt to optimize, and the
generated programs are considerably larger and slower than when
optimization is enabled.
- `-O0' No optimization (the default); generates unoptimized code but has the fastest compilation time. Note that many other compilers do
fairly extensive optimization even if 'no optimization' is specified.
With gcc, it is very unusual to use -O0 for production if execution
time is of any concern, since -O0 really does mean no optimization at
all. This difference between gcc and other compilers should be kept in
mind when doing performance comparisons.
GCC: Optimization Levels