Next:
Advanced Compiler Introduction
Up:
CMU Common Lisp User's
Previous:
Open Coding and Inline
 
Contents
 
Index
Advanced Compiler Use and Efficiency Hints
By Robert MacLachlan
Subsections
Advanced Compiler Introduction
Types
Optimization
Function Call
Representation of Objects
Writing Efficient Code
More About Types in Python
More Types Meaningful
Canonicalization
Member Types
Union Types
The Empty Type
Function Types
The Values Declaration
Structure Types
The Freeze-Type Declaration
Type Restrictions
Type Style Recommendations
Type Inference
Variable Type Inference
Local Function Type Inference
Global Function Type Inference
Operation Specific Type Inference
Dynamic Type Inference
Type Check Optimization
Source Optimization
Let Optimization
Constant Folding
Unused Expression Elimination
Control Optimization
Unreachable Code Deletion
Multiple Values Optimization
Source to Source Transformation
Style Recommendations
Tail Recursion
Tail Recursion Exceptions
Local Call
Self-Recursive Calls
Let Calls
Closures
Local Tail Recursion
Return Values
Block Compilation
Block Compilation Semantics
Block Compilation Declarations
Compiler Arguments
Practical Difficulties
Context Declarations
Context Declaration Example
Inline Expansion
Inline Expansion Recording
Semi-Inline Expansion
The Maybe-Inline Declaration
Byte Coded Compilation
Object Representation
Think Before You Use a List
Structure Representation
Arrays
Vectors
Bit-Vectors
Hashtables
Numbers
Descriptors
Non-Descriptor Representations
Variables
Generic Arithmetic
Fixnums
Word Integers
Floating Point Efficiency
Specialized Arrays
Specialized Structure Slots
Interactions With Local Call
Representation of Characters
General Efficiency Hints
Compile Your Code
Avoid Unnecessary Consing
Complex Argument Syntax
Mapping and Iteration
Trace Files and Disassembly
Efficiency Notes
Type Uncertainty
Efficiency Notes and Type Checking
Representation Efficiency Notes
Verbosity Control
Profiling
Profile Interface
Profiling Techniques
Nested or Recursive Calls
Clock resolution
Profiling overhead
Additional Timing Utilities
A Note on Timing
Benchmarking Techniques
Peter Van Eynde 2000-02-08