Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2010-05-26 19:06:03 +0400
committerMiguel de Icaza <miguel@gnome.org>2010-05-26 19:06:03 +0400
commit06c3356d0eb9dabf4a7f7cbc3a0d197696ce0cfe (patch)
treeb87492f75ed8bc23ff18b459fad2e8a3c7d042e5 /docs
parentfbc80c67bc51a14ca06cffeecb17808bc7c80fbc (diff)
Update docs
svn path=/trunk/mono/; revision=157966
Diffstat (limited to 'docs')
-rw-r--r--docs/mini-doc.txt38
1 files changed, 32 insertions, 6 deletions
diff --git a/docs/mini-doc.txt b/docs/mini-doc.txt
index bd4b489777e..ba19c1031f1 100644
--- a/docs/mini-doc.txt
+++ b/docs/mini-doc.txt
@@ -4,7 +4,15 @@
Miguel de Icaza (miguel@{ximian.com,gnome.org}),
Paolo Molaro (lupus@{ximian.com,debian.org})
-
+ This documents overall design of the Mono JIT up to version
+ 2.0. After Mono 2.0 the JIT engine was upgraded from
+ a tree-based intermediate representation to a linear
+ intermediate representation.
+
+ The Linear IL is documented here:
+
+ http://www.mono-project.com/Linear_IL
+
* Abstract
Mini is a new compilation engine for the Mono runtime. The
@@ -70,6 +78,24 @@
CIL code on the fly to marshal parameters, and then this
code is in turned processed by the JIT engine.
+ Mono has now gone through three different JIT engines, these
+ are:
+
+ * Original JIT engine: 2002, hard to port, hard to
+ implement optimizations.
+
+ * Second JIT engine, used up until Mono 2.0, very
+ portable, many new optimizations.
+
+ * Third JIT engine, replaced the code generation layer from
+ being based on a tree representation to be based on a linear
+ representation.
+
+ For more information on the code generation changes, see our
+ web site for the details on the Linear IL:
+
+ http://www.mono-project.com/Linear_IL
+
* Previous Experiences
Mono has built a JIT engine, which has been used to bootstrap
@@ -162,7 +188,7 @@
application domains, or generate code that will not be shared
across application domains.
-* Objectives of the new JIT engine.
+* Second Generation JIT engine.
We wanted to support a number of features that were missing:
@@ -206,7 +232,7 @@
necessary that the JIT engine works in most of today's
commercial hardware platforms.
-* Features of the new JIT engine.
+* Features of the Second JIT engine.
The new JIT engine was architected by Dietmar Maurer and Paolo
Molaro, based on the new objectives.
@@ -382,7 +408,7 @@
temporary variables generated during the various
optimizations.
-** Instruction selection
+** Instruction selection: Only used up until Mono 2.0
At this point, the BURS instruction selector is invoked to
transform the tree-based representation into a list of
@@ -609,7 +635,7 @@
registers, fixed registers and clobbered registers by each
operation.
-* BURG Code Generator Generator
+* BURG Code Generator Generator: Only used up to Mono 2.0
monoburg was written by Dietmar Maurer. It is based on the
papers from Christopher W. Fraser, Robert R. Henry and Todd
@@ -768,4 +794,4 @@
processors, and some of the framework exists today in our
register allocator and the instruction selector to cope with
this, but has not been finished. The instruction selection
- would happen at the same time as local register allocation. < \ No newline at end of file
+ would happen at the same time as local register allocation. <