About the Book
Please note that the content of this book primarily consists of articles available from Wikipedia or other free sources online. Pages: 63. Chapters: Compiler optimization, Lazy evaluation, Partial evaluation, Constant folding, Dead code, Java performance, Strength reduction, Frameworks supporting the polyhedral model, Loop unwinding, Vectorization, Interprocedural optimization, Software pipelining, Inline expansion, Inline caching, Loop optimization, Loop nest optimization, Register allocation, Return value optimization, Instruction scheduling, Dead code elimination, Automatic parallelization, Basic block, Polytope model, Peephole optimization, Unreachable code, Copy elision, Object code optimizer, Scalable locality, Loop tiling, Partial redundancy elimination, Induction variable, Instruction selection, Loop splitting, Bounds-checking elimination, Loop interchange, Scalable parallelism, Common subexpression elimination, Loop-invariant code motion, Global value numbering, Manifest expression, Rematerialization, Adaptive optimization, Cpuinfo falsification, Loop inversion, Sparse conditional constant propagation, Superoptimization, Promise, Profile-guided optimization, Redundant code, Loop unswitching, Available expression, Link-time optimization, Loop fission, Copy propagation, Loop fusion, Trace scheduling, Whole program optimization, Enabling transformation, Jump threading, Superword Level Parallelism. Excerpt: Objectively comparing the performance of a Java program and another equivalent one written in another programming language such as C++ requires a carefully and thoughtfully constructed benchmark which compares programs expressing algorithms written in as identical a manner as technically possible. The target platform of Java's bytecode compiler is the Java platform, and the bytecode is either interpreted or compiled into machine code by the JVM. Other compilers almost always target a specific hardware and software platform, producing machine code that wi...