static XmlILOptimizerVisitor() {
            // Enable all normalizations and annotations for Release code
            // Enable all patterns for Release code
            PatternsOpt = new QilPatterns((int) XmlILOptimization.Last_, true);

            // Only enable Required and OptimizedConstruction pattern groups
            // Only enable Required patterns
            PatternsNoOpt = new QilPatterns((int) XmlILOptimization.Last_, false);

            PatternsNoOpt.Add((int) XmlILOptimization.FoldNone);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminatePositionOf);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateTypeAssert);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateIsType);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateIsEmpty);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateAverage);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateSum);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateMinimum);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateMaximum);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateSort);
            PatternsNoOpt.Add((int) XmlILOptimization.EliminateStrConcatSingle);

            PatternsNoOpt.Add((int) XmlILOptimization.NormalizeUnion);
            PatternsNoOpt.Add((int) XmlILOptimization.NormalizeIntersect);
            PatternsNoOpt.Add((int) XmlILOptimization.NormalizeDifference);

            PatternsNoOpt.Add((int) XmlILOptimization.AnnotatePositionalIterator);
            PatternsNoOpt.Add((int) XmlILOptimization.AnnotateTrackCallers);
            PatternsNoOpt.Add((int) XmlILOptimization.AnnotateDod);
            PatternsNoOpt.Add((int) XmlILOptimization.AnnotateConstruction);
            PatternsNoOpt.Add((int) XmlILOptimization.AnnotateIndex1);
            PatternsNoOpt.Add((int) XmlILOptimization.AnnotateIndex2);
        }
Пример #2
0
 private QilPatterns(QilPatterns toCopy) {
     this.bits = new BitArray(toCopy.bits);
 }
Пример #3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public QilPatternVisitor(QilPatterns patterns, QilFactory f) : base(f) {
     Patterns = patterns;
 }
Пример #4
0
 public QilPatternVisitor(QilPatterns patterns, QilFactory f) : base(f)
 {
     Patterns = patterns;
 }
Пример #5
0
 private QilPatterns(QilPatterns toCopy)
 {
     this.bits = new BitArray(toCopy.bits);
 }
Пример #6
0
 private QilPatterns(QilPatterns toCopy)
 {
     _bits = new BitArray(toCopy._bits);
 }
Пример #7
0
 private QilPatterns(QilPatterns toCopy)
 {
     _bits = new BitArray(toCopy._bits);
 }