Name |
Description |
GenerateHelper |
Contains helper methods used during the code generation phase. |
IteratorDescriptor |
Iterators are joined together, are nested within each other, and reference each other. This internal class contains detailed information about iteration next labels, caching, iterator item location, etc. |
OptimizerPatterns |
As the Qil graph is traversed, patterns are identified. Subtrees that match these patterns are annotated with this class, which identifies the matching patterns and their arguments. |
StorageDescriptor |
Describes the Clr type and location of items returned by an iterator. This struct is meant to be immutable. |
TailCallAnalyzer |
This analyzer walks each function in the graph and annotates Invoke nodes which can be compiled using the IL .tailcall instruction. This instruction will discard the current stack frame before calling the new function. |
XmlILConstructInfo |
Every node is annotated with information about how it will be constructed by ILGen. |
XmlILConstructors |
List of all XmlIL runtime constructors. |
XmlILElementAnalyzer |
Scans the content of an ElementCtor and tries to minimize the number of well-formed checks that will have to be made at runtime when constructing content. |
XmlILMethods |
List of all XmlIL runtime methods. |
XmlILModule |
|
XmlILNamespaceAnalyzer |
Scans constructed content, looking for redundant namespace declarations. If any are found, then they are marked and removed later. |
XmlILOptimizerVisitor |
|
XmlILOptimizerVisitor.EqualityIndexVisitor |
|
XmlILOptimizerVisitor.NodeCounter |
|
XmlILOptimizerVisitor.NodeFinder |
|
XmlILOptimizerVisitor.PositionOfFinder |
|
XmlILStateAnalyzer |
Scans the content of an constructor and tries to minimize the number of well-formed checks that will have to be made at runtime when constructing content. |
XmlILStorageMethods |
List of all XmlIL runtime constructors. |
XmlILTypeHelper |
Static QilExpression type helper methods. |
XmlILVisitor |
Creates Msil code for an entire QilExpression graph. Code is generated in one of two modes: push or pull. In push mode, code is generated to push the values in an iterator to the XmlWriter interface. In pull mode, the values in an iterator are stored in a physical location such as the stack or a local variable by an iterator. The iterator is passive, and will just wait for a caller to pull the data and/or instruct the iterator to enumerate the next value. |