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/web
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2002-01-28 17:04:10 +0300
committerMiguel de Icaza <miguel@gnome.org>2002-01-28 17:04:10 +0300
commitcc44d36495100ca055ab71f85da73fdf19d0d976 (patch)
tree9288ad321681f51766e9129775bd15828a3960bd /web
parent51c3b0cb84ed625b6f25fa6d159c6eea2724c283 (diff)
Update c-sharp file with thoughts on the CIL optimizer; Fix the MIT license
link. svn path=/trunk/mono/; revision=2184
Diffstat (limited to 'web')
-rw-r--r--web/c-sharp27
-rw-r--r--web/faq2
2 files changed, 27 insertions, 2 deletions
diff --git a/web/c-sharp b/web/c-sharp
index 8faf5f83b13..553f79cdcca 100644
--- a/web/c-sharp
+++ b/web/c-sharp
@@ -73,9 +73,34 @@
* Code generation: The code generation is done through
the System.Reflection.Emit API.
-
</ul>
+** CIL Optimizations.
+
+ The compiler performs a number of simple optimizations on its input:
+ constant folding (this is required by the C# language spec) and
+ can perform dead code elimination.
+
+ Other more interesting optimizations like hoisting are not possible
+ at this point since the compiler output at this point does not
+ generate an intermediate representation that is suitable to
+ perform basic block computation.
+
+ Adding an intermediate layer to enable the basic block
+ computation to the compiler should be a simple task, but we
+ are considering having a generic CIL optimizer. Since all the
+ information that is required to perform basic block-based
+ optimizations is available at the CIL level, we might just skip
+ this step altogether and have just a generic IL optimizer that
+ would perform hoisting on arbitrary CIL programs, not only
+ those produced by MCS.
+
+ If this tool is further expanded to perform constant folding
+ (not needed for our C# compiler, as it is already in there)
+ and dead code elimination, other compiler authors might be
+ able to use this generic CIL optimizer in their projects
+ reducing their time to develop a production compiler.
+
<a name="tasks">
** Current pending tasks
diff --git a/web/faq b/web/faq
index 6f9f4b25ddd..d1a2bd436c7 100644
--- a/web/faq
+++ b/web/faq
@@ -607,7 +607,7 @@ A: The C# Compiler is released under the terms of the <a
href="http://www.opensource.org/licenses/lgpl-license.html">GNU
Library GPL</a>. And the class libraries are released
under the terms of the <a
- href="www.opensource.org/licenses/mit-license.html">MIT X11</a>
+ href="http://www.opensource.org/licenses/mit-license.html">MIT X11</a>
license.
Q: I would like to contribute code to Mono under a particular