Ver Fonte

Update c-sharp file with thoughts on the CIL optimizer; Fix the MIT license
link.

svn path=/trunk/mono/; revision=2184

Miguel de Icaza há 24 anos atrás
pai
commit
cc44d36495
4 ficheiros alterados com 54 adições e 4 exclusões
  1. 26 1
      doc/c-sharp
  2. 1 1
      doc/faq
  3. 26 1
      web/c-sharp
  4. 1 1
      web/faq

+ 26 - 1
doc/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
 

+ 1 - 1
doc/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

+ 26 - 1
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
 

+ 1 - 1
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