JavaScript:Compiler References: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(→SSA) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
* [http://people.mozilla.org/~gal/compressed.tracemonkey-pldi-09.pdf Trace-based Just-in-Time Type Specialization for Dynamic Languages] | * [http://people.mozilla.org/~gal/compressed.tracemonkey-pldi-09.pdf Trace-based Just-in-Time Type Specialization for Dynamic Languages] | ||
* [http://kryptoslogic.com/download/JIT_Mitigations.pdf JIT spraying and mitigations] | * [http://kryptoslogic.com/download/JIT_Mitigations.pdf JIT spraying and mitigations] | ||
* [http://wingolog.org/archives/2011/06/21/security-implications-of-jit-compilation security implications of jit compilation] | |||
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.78.1412&rep=rep1&type=pdf Fast, effective code generation in a just-in-time Java compiler] | |||
== SSA == | == SSA == | ||
Line 11: | Line 13: | ||
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.8877&rep=rep1&type=pdf Value numbering] | * [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.8877&rep=rep1&type=pdf Value numbering] | ||
* [http://www.christianwimmer.at/Publications/Wimmer10a/Wimmer10a.pdf Linear Scan Register Allocation on SSA Form] | * [http://www.christianwimmer.at/Publications/Wimmer10a/Wimmer10a.pdf Linear Scan Register Allocation on SSA Form] | ||
* [http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.45.4503&rep=rep1&type=pdf Single-Pass Generation of Static Single Assignment Form for Structured Languages] | |||
* http://llvm.cs.illinois.edu/~vadve/CS526/public_html/Papers/ | * http://llvm.cs.illinois.edu/~vadve/CS526/public_html/Papers/ | ||
Line 17: | Line 20: | ||
* [http://www.lua.org/doc/jucs05.pdf The Implementation of Lua 5.0] | * [http://www.lua.org/doc/jucs05.pdf The Implementation of Lua 5.0] | ||
* Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code (see http://groups.google.com/group/mozilla.dev.tech.js-engine.internals/browse_thread/thread/4a63ab71f6c50fce) | * Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code (see http://groups.google.com/group/mozilla.dev.tech.js-engine.internals/browse_thread/thread/4a63ab71f6c50fce) | ||
* [http:// | * [http://www.usenix.org/events/woot10/tech/full_papers/Blazakis.pdf Interpreter Exploitation] | ||
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.39.4394&rep=rep1&type=pdf Representing type information in dynamically typed languages] | * [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.39.4394&rep=rep1&type=pdf Representing type information in dynamically typed languages] | ||
* [http://evilpie.github.com/sayrer-fatval-backup/cache.aspx.htm Mozilla’s New JavaScript Value Representation] (NaN boxing, mirrored by me) | * [http://evilpie.github.com/sayrer-fatval-backup/cache.aspx.htm Mozilla’s New JavaScript Value Representation] (NaN boxing, mirrored by me) | ||
Line 24: | Line 27: | ||
* [http://db.usenix.org/events/vee05/full_papers/p153-yunhe.pdf Virtual Machine Showdown: Stack Versus Registers] | * [http://db.usenix.org/events/vee05/full_papers/p153-yunhe.pdf Virtual Machine Showdown: Stack Versus Registers] | ||
* [http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=181EEF66EB411F4277C009A1D492CF75?doi=10.1.1.14.9450&rep=rep1&type=pdf Ropes: an Alternative to Strings] | * [http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=181EEF66EB411F4277C009A1D492CF75?doi=10.1.1.14.9450&rep=rep1&type=pdf Ropes: an Alternative to Strings] | ||
* [http://domino.research.ibm.com/library/cyberdig.nsf/papers/D08914EA5DED51398525739F000896EF/$File/RT0550.pdf Array Bounds Check Elimination Utilizing a Page Protection Mechanism] | |||
== Garbage Collection == | == Garbage Collection == | ||
* Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment (see http://groups.google.com/group/mozilla.dev.tech.js-engine.internals/browse_thread/thread/4a63ab71f6c50fce) | * Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment (see [http://groups.google.com/group/mozilla.dev.tech.js-engine.internals/browse_thread/thread/4a63ab71f6c50fce this post]) | ||
* [http://www.cs.utexas.edu/users/mckinley/395Tmm/talks/May-4-MMTk.ppt Myths & | * [http://www.cs.utexas.edu/users/mckinley/395Tmm/talks/May-4-MMTk.ppt Myths & Realities The Performance Impact of Garbage Collection] | ||
* [http://www.research.ibm.com/mre05/Click.pdf Pauseless GC in the Azul JVM] | * [http://www.research.ibm.com/mre05/Click.pdf Pauseless GC in the Azul JVM] | ||
* [http://www.usenix.org/events/vee05/full_papers/p46-click.pdf The Pauseless GC Algorithm] | |||
* [http://www.iecc.com/gclist/GC-faq.html GC FAQ] | * [http://www.iecc.com/gclist/GC-faq.html GC FAQ] | ||
* [http://blogs.msdn.com/b/abhinaba/archive/2009/01/25/back-to-basic-series-on-dynamic-memory-management.aspx Back to basic: Series on dynamic memory management] | * [http://blogs.msdn.com/b/abhinaba/archive/2009/01/25/back-to-basic-series-on-dynamic-memory-management.aspx Back to basic: Series on dynamic memory management] | ||
* [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.4370&rep=rep1&type=pdf A fast write barrier for generational garbage collectors] | |||
* [http://www.cs.kent.ac.uk/people/staff/rej/gc.html#Book Garbage Collection: algorithms for automatic dynamic memory management] (the definitive book on GC as of 1996) | |||
* [http://www.amazon.com/Garbage-Collection-Handbook-Management-Algorithms/dp/1420082795/#The Garbage Collection Handbook] (new GC book by Jones, Hosking and Moss, coming out at the end of August 2011) | |||
* [http://www.cse.nd.edu/~dthain/courses/cse40243/spring2006/gc-survey.pdf Uniprocessor Garbage Collection Techniques] | |||
== Assembly == | == Assembly == | ||
Line 38: | Line 47: | ||
== Other == | == Other == | ||
* [http://www.cs.usfca.edu/~galles/compilerdesign/ | * [http://www.cs.usfca.edu/~galles/compilerdesign/ Modern Compiler Design] | ||
* http://www.hackersdelight.org/ | * http://www.hackersdelight.org/ | ||
* http://reddit.com/r/compilers | * http://reddit.com/r/compilers |
Latest revision as of 23:14, 7 October 2011
JIT
- PyCon 2010:How to Compile Python x86 Assembly, the Python Way (3h talk)
- Tracing the meta-level: PyPy's tracing JIT compiler
- Trace-based Just-in-Time Type Specialization for Dynamic Languages
- JIT spraying and mitigations
- security implications of jit compilation
- Fast, effective code generation in a just-in-time Java compiler
SSA
- SSA-based Compiler Design Book
- SCC-Based Value Numbering
- Efficiently Computing Static Single Assignment Form and the Control Dependence Graph
- Value numbering
- Linear Scan Register Allocation on SSA Form
- Single-Pass Generation of Static Single Assignment Form for Structured Languages
VM
- The Implementation of Lua 5.0
- Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code (see http://groups.google.com/group/mozilla.dev.tech.js-engine.internals/browse_thread/thread/4a63ab71f6c50fce)
- Interpreter Exploitation
- Representing type information in dynamically typed languages
- Mozilla’s New JavaScript Value Representation (NaN boxing, mirrored by me)
- value-representation-in-javascript-implementations
- The Case for Virtual Register Machines
- Virtual Machine Showdown: Stack Versus Registers
- Ropes: an Alternative to Strings
- Array Bounds Check Elimination Utilizing a Page Protection Mechanism
Garbage Collection
- Waste Not, Want Not Resource-based Garbage Collection in a Shared Environment (see this post)
- Myths & Realities The Performance Impact of Garbage Collection
- Pauseless GC in the Azul JVM
- The Pauseless GC Algorithm
- GC FAQ
- Back to basic: Series on dynamic memory management
- A fast write barrier for generational garbage collectors
- Garbage Collection: algorithms for automatic dynamic memory management (the definitive book on GC as of 1996)
- Garbage Collection Handbook (new GC book by Jones, Hosking and Moss, coming out at the end of August 2011)
- Uniprocessor Garbage Collection Techniques
Assembly
- Optimizing subroutines in assembly language
- The microarchitecture of Intel, AMD and VIA CPUs An optimization guide for assembly programmers and compiler makers
- The PowerPC Compiler Writer’s Guide