the 1980s, which had an optional pass that would perform post-optimizations on the generated assembly code. Another consideration is that optimization algorithms are complicated and, especially when being used to compile large, complex programming languages, can contain bugs that introduce errors in the generated code or cause internal errors during compilation. Compiler errors of any kind can be disconcerting to the user, but especially so in this case, since it may not be clear that the optimization logic is at fault. In the case of internal errors, the problem can be partially ameliorated by a "fail-safe" programming technique in which the optimization logic in the compiler is coded such that a failure is trapped, a warning message issued, and the rest of the compilation proceeds to successful completion. History Early compilers of the 1960s were often primarily concerned with simply compiling code correctly or efficiently, such that compile times were a major concern. One notable early optimizing compiler was the IBM FORTRAN H compiler of the late 1960s. Another of the earliest and important optimizing compilers, that pioneered several advanced techniques, was that for BLISS (1970), which was described in The Design of an Optimizing Compiler (1975). By the late 1980s, optimizing compilers were sufficiently effective that programming in assembly language declined. This co-evolved with the development of RISC chips and advanced processor features such as instruction scheduling and speculative execution, which were designed to be targeted by optimizing compilers rather than by human-written assembly code. List of static code analyses Alias analysis Pointer analysis Shape analysis Escape analysis Array-access analysis Dependence analysis Control-flow analysis Data-flow analysis Use-define chain analysis Live-variable analysis Available expression analysis See also Algorithmic efficiency Compile-time function execution Profile-guided optimization Full-employment theorem Just-in-time compilation (JIT) Program optimization References External links Citations from CiteSeer Optimization manuals by Agner Fog documentation about x86 processor architecture and low-level code optimization Compiler construction Programming language implementation Compiler theory