System\Xml\Xsl\IlGen\XmlILOptimizerVisitor.cs (859)
20private static readonly QilPatterns s_patternsOpt = new QilPatterns((int)XmlILOptimization.Last_, allSet: true);
33var patterns = new QilPatterns((int)XmlILOptimization.Last_, allSet: false);
35patterns.Add((int)XmlILOptimization.FoldNone);
36patterns.Add((int)XmlILOptimization.EliminatePositionOf);
37patterns.Add((int)XmlILOptimization.EliminateTypeAssert);
38patterns.Add((int)XmlILOptimization.EliminateIsType);
39patterns.Add((int)XmlILOptimization.EliminateIsEmpty);
40patterns.Add((int)XmlILOptimization.EliminateAverage);
41patterns.Add((int)XmlILOptimization.EliminateSum);
42patterns.Add((int)XmlILOptimization.EliminateMinimum);
43patterns.Add((int)XmlILOptimization.EliminateMaximum);
44patterns.Add((int)XmlILOptimization.EliminateSort);
45patterns.Add((int)XmlILOptimization.EliminateStrConcatSingle);
47patterns.Add((int)XmlILOptimization.NormalizeUnion);
48patterns.Add((int)XmlILOptimization.NormalizeIntersect);
49patterns.Add((int)XmlILOptimization.NormalizeDifference);
51patterns.Add((int)XmlILOptimization.AnnotatePositionalIterator);
52patterns.Add((int)XmlILOptimization.AnnotateTrackCallers);
53patterns.Add((int)XmlILOptimization.AnnotateDod);
54patterns.Add((int)XmlILOptimization.AnnotateConstruction);
57patterns.Add((int)XmlILOptimization.AnnotateIndex1);
58patterns.Add((int)XmlILOptimization.AnnotateIndex2);
59patterns.Add((int)XmlILOptimization.AnnotateBarrier);
60patterns.Add((int)XmlILOptimization.AnnotateFilter);
81if (this[XmlILOptimization.TailCall])
94if (this[XmlILOptimization.EliminateNamespaceDecl])
130if (this[XmlILOptimization.EliminateLiteralVariables] && newNode != null)
137return Replace(XmlILOptimization.EliminateLiteralVariables, newNode, binding.ShallowClone(f));
140if (this[XmlILOptimization.EliminateUnusedGlobals])
152private bool AllowReplace(XmlILOptimization pattern, QilNode original)
160private QilNode Replace(XmlILOptimization pattern, QilNode original, QilNode replacement)
231if (this[XmlILOptimization.EliminateUnusedGlobals])
234if (AllowReplace(XmlILOptimization.EliminateUnusedGlobals, local0))
241if (this[XmlILOptimization.AnnotateConstruction])
244if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
270if (this[XmlILOptimization.AnnotateBarrier])
273if (AllowReplace(XmlILOptimization.AnnotateBarrier, local0))
288if (this[XmlILOptimization.FoldNone])
293if (AllowReplace(XmlILOptimization.FoldNone, local0))
295return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
299if (this[XmlILOptimization.FoldNone])
304if (AllowReplace(XmlILOptimization.FoldNone, local0))
306return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
316if (this[XmlILOptimization.EliminateNop])
319if (AllowReplace(XmlILOptimization.EliminateNop, local0))
321return Replace(XmlILOptimization.EliminateNop, local0, local1);
330if (this[XmlILOptimization.FoldNone])
335if (AllowReplace(XmlILOptimization.FoldNone, local0))
337return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
347if (this[XmlILOptimization.FoldNone])
352if (AllowReplace(XmlILOptimization.FoldNone, local0))
354return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
367if (((((local0).XmlType)!.IsSingleton) && (!(IsGlobalVariable(local0)))) && (this[XmlILOptimization.NormalizeSingletonLet]))
370if (AllowReplace(XmlILOptimization.NormalizeSingletonLet, local0))
376if (this[XmlILOptimization.AnnotateLet])
379if (AllowReplace(XmlILOptimization.AnnotateLet, local0))
390if (this[XmlILOptimization.EliminatePositionOf])
395if (AllowReplace(XmlILOptimization.EliminatePositionOf, local0))
397return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
401if (this[XmlILOptimization.EliminatePositionOf])
409if (AllowReplace(XmlILOptimization.EliminatePositionOf, local0))
411return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
416if (this[XmlILOptimization.AnnotatePositionalIterator])
419if (AllowReplace(XmlILOptimization.AnnotatePositionalIterator, local0))
437if (this[XmlILOptimization.FoldNone])
442if (AllowReplace(XmlILOptimization.FoldNone, local0))
444return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
448if (this[XmlILOptimization.FoldNone])
453if (AllowReplace(XmlILOptimization.FoldNone, local0))
455return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
459if (this[XmlILOptimization.EliminateAnd])
464if (AllowReplace(XmlILOptimization.EliminateAnd, local0))
466return Replace(XmlILOptimization.EliminateAnd, local0, local2);
470if (this[XmlILOptimization.EliminateAnd])
475if (AllowReplace(XmlILOptimization.EliminateAnd, local0))
477return Replace(XmlILOptimization.EliminateAnd, local0, local1);
481if (this[XmlILOptimization.EliminateAnd])
486if (AllowReplace(XmlILOptimization.EliminateAnd, local0))
488return Replace(XmlILOptimization.EliminateAnd, local0, local1);
492if (this[XmlILOptimization.EliminateAnd])
497if (AllowReplace(XmlILOptimization.EliminateAnd, local0))
499return Replace(XmlILOptimization.EliminateAnd, local0, local2);
510if (this[XmlILOptimization.FoldNone])
515if (AllowReplace(XmlILOptimization.FoldNone, local0))
517return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
521if (this[XmlILOptimization.FoldNone])
526if (AllowReplace(XmlILOptimization.FoldNone, local0))
528return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
532if (this[XmlILOptimization.EliminateOr])
537if (AllowReplace(XmlILOptimization.EliminateOr, local0))
539return Replace(XmlILOptimization.EliminateOr, local0, local1);
543if (this[XmlILOptimization.EliminateOr])
548if (AllowReplace(XmlILOptimization.EliminateOr, local0))
550return Replace(XmlILOptimization.EliminateOr, local0, local2);
554if (this[XmlILOptimization.EliminateOr])
559if (AllowReplace(XmlILOptimization.EliminateOr, local0))
561return Replace(XmlILOptimization.EliminateOr, local0, local2);
565if (this[XmlILOptimization.EliminateOr])
570if (AllowReplace(XmlILOptimization.EliminateOr, local0))
572return Replace(XmlILOptimization.EliminateOr, local0, local1);
582if (this[XmlILOptimization.FoldNone])
587if (AllowReplace(XmlILOptimization.FoldNone, local0))
589return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
593if (this[XmlILOptimization.EliminateNot])
598if (AllowReplace(XmlILOptimization.EliminateNot, local0))
600return Replace(XmlILOptimization.EliminateNot, local0, VisitFalse(f.False()));
604if (this[XmlILOptimization.EliminateNot])
609if (AllowReplace(XmlILOptimization.EliminateNot, local0))
611return Replace(XmlILOptimization.EliminateNot, local0, VisitTrue(f.True()));
626if (this[XmlILOptimization.FoldNone])
631if (AllowReplace(XmlILOptimization.FoldNone, local0))
633return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
637if (this[XmlILOptimization.EliminateConditional])
642if (AllowReplace(XmlILOptimization.EliminateConditional, local0))
644return Replace(XmlILOptimization.EliminateConditional, local0, local2);
648if (this[XmlILOptimization.EliminateConditional])
653if (AllowReplace(XmlILOptimization.EliminateConditional, local0))
655return Replace(XmlILOptimization.EliminateConditional, local0, local3);
659if (this[XmlILOptimization.EliminateConditional])
666if (AllowReplace(XmlILOptimization.EliminateConditional, local0))
668return Replace(XmlILOptimization.EliminateConditional, local0, local1);
673if (this[XmlILOptimization.EliminateConditional])
680if (AllowReplace(XmlILOptimization.EliminateConditional, local0))
682return Replace(XmlILOptimization.EliminateConditional, local0, VisitNot(f.Not(local1)));
687if (this[XmlILOptimization.FoldConditionalNot])
693if (AllowReplace(XmlILOptimization.FoldConditionalNot, local0))
695return Replace(XmlILOptimization.FoldConditionalNot, local0, VisitConditional(f.Conditional(local4, local3, local2)));
699if (this[XmlILOptimization.NormalizeConditionalText])
708if (AllowReplace(XmlILOptimization.NormalizeConditionalText, local0))
710return Replace(XmlILOptimization.NormalizeConditionalText, local0, VisitTextCtor(f.TextCtor(VisitConditional(f.Conditional(local1, local4, local5)))));
720if (this[XmlILOptimization.AnnotateConstruction])
723if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
737if (this[XmlILOptimization.FoldNone])
742if (AllowReplace(XmlILOptimization.FoldNone, local0))
744return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
748if (this[XmlILOptimization.EliminateLength])
755if (AllowReplace(XmlILOptimization.EliminateLength, local0))
757return Replace(XmlILOptimization.EliminateLength, local0, VisitLiteralInt32(f.LiteralInt32(0)));
762if (this[XmlILOptimization.EliminateLength])
767if (AllowReplace(XmlILOptimization.EliminateLength, local0))
769return Replace(XmlILOptimization.EliminateLength, local0, VisitLiteralInt32(f.LiteralInt32(1)));
773if (this[XmlILOptimization.IntroducePrecedingDod])
778if (AllowReplace(XmlILOptimization.IntroducePrecedingDod, local0))
780return Replace(XmlILOptimization.IntroducePrecedingDod, local0, VisitLength(f.Length(VisitDocOrderDistinct(f.DocOrderDistinct(local1)))));
789if (((local0).Count == (1)) && (this[XmlILOptimization.EliminateSequence]))
792if (AllowReplace(XmlILOptimization.EliminateSequence, local0))
794return Replace(XmlILOptimization.EliminateSequence, local0, (QilNode)(local0)[0]);
797if ((HasNestedSequence(local0)) && (this[XmlILOptimization.NormalizeNestedSequences]))
800if (AllowReplace(XmlILOptimization.NormalizeNestedSequences, local0))
813return Replace(XmlILOptimization.NormalizeNestedSequences, local0, local1);
823if (this[XmlILOptimization.FoldNone])
828if (AllowReplace(XmlILOptimization.FoldNone, local0))
830return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
834if (this[XmlILOptimization.FoldNone])
839if (AllowReplace(XmlILOptimization.FoldNone, local0))
841return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
845if (this[XmlILOptimization.EliminateUnion])
850if (AllowReplace(XmlILOptimization.EliminateUnion, local0))
852return Replace(XmlILOptimization.EliminateUnion, local0, VisitDocOrderDistinct(f.DocOrderDistinct(local1)));
856if (this[XmlILOptimization.EliminateUnion])
863if (AllowReplace(XmlILOptimization.EliminateUnion, local0))
865return Replace(XmlILOptimization.EliminateUnion, local0, VisitDocOrderDistinct(f.DocOrderDistinct(local2)));
870if (this[XmlILOptimization.EliminateUnion])
877if (AllowReplace(XmlILOptimization.EliminateUnion, local0))
879return Replace(XmlILOptimization.EliminateUnion, local0, VisitDocOrderDistinct(f.DocOrderDistinct(local1)));
884if (this[XmlILOptimization.EliminateUnion])
891if (AllowReplace(XmlILOptimization.EliminateUnion, local0))
893return Replace(XmlILOptimization.EliminateUnion, local0, local1);
898if (this[XmlILOptimization.NormalizeUnion])
903if (AllowReplace(XmlILOptimization.NormalizeUnion, local0))
905return Replace(XmlILOptimization.NormalizeUnion, local0, VisitUnion(f.Union(VisitDocOrderDistinct(f.DocOrderDistinct(local1)), VisitDocOrderDistinct(f.DocOrderDistinct(local2)))));
909if (this[XmlILOptimization.AnnotateUnion])
912if (AllowReplace(XmlILOptimization.AnnotateUnion, local0))
917if (this[XmlILOptimization.AnnotateUnionContent])
924if (AllowReplace(XmlILOptimization.AnnotateUnionContent, local0))
938if (this[XmlILOptimization.FoldNone])
943if (AllowReplace(XmlILOptimization.FoldNone, local0))
945return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
949if (this[XmlILOptimization.FoldNone])
954if (AllowReplace(XmlILOptimization.FoldNone, local0))
956return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
960if (this[XmlILOptimization.EliminateIntersection])
965if (AllowReplace(XmlILOptimization.EliminateIntersection, local0))
967return Replace(XmlILOptimization.EliminateIntersection, local0, VisitDocOrderDistinct(f.DocOrderDistinct(local1)));
971if (this[XmlILOptimization.EliminateIntersection])
978if (AllowReplace(XmlILOptimization.EliminateIntersection, local0))
980return Replace(XmlILOptimization.EliminateIntersection, local0, local1);
985if (this[XmlILOptimization.EliminateIntersection])
992if (AllowReplace(XmlILOptimization.EliminateIntersection, local0))
994return Replace(XmlILOptimization.EliminateIntersection, local0, local2);
999if (this[XmlILOptimization.EliminateIntersection])
1006if (AllowReplace(XmlILOptimization.EliminateIntersection, local0))
1008return Replace(XmlILOptimization.EliminateIntersection, local0, local1);
1013if (this[XmlILOptimization.NormalizeIntersect])
1018if (AllowReplace(XmlILOptimization.NormalizeIntersect, local0))
1020return Replace(XmlILOptimization.NormalizeIntersect, local0, VisitIntersection(f.Intersection(VisitDocOrderDistinct(f.DocOrderDistinct(local1)), VisitDocOrderDistinct(f.DocOrderDistinct(local2)))));
1024if (this[XmlILOptimization.AnnotateIntersect])
1027if (AllowReplace(XmlILOptimization.AnnotateIntersect, local0))
1039if (this[XmlILOptimization.FoldNone])
1044if (AllowReplace(XmlILOptimization.FoldNone, local0))
1046return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1050if (this[XmlILOptimization.FoldNone])
1055if (AllowReplace(XmlILOptimization.FoldNone, local0))
1057return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1061if (this[XmlILOptimization.EliminateDifference])
1068if (AllowReplace(XmlILOptimization.EliminateDifference, local0))
1070return Replace(XmlILOptimization.EliminateDifference, local0, local1);
1075if (this[XmlILOptimization.EliminateDifference])
1082if (AllowReplace(XmlILOptimization.EliminateDifference, local0))
1084return Replace(XmlILOptimization.EliminateDifference, local0, VisitDocOrderDistinct(f.DocOrderDistinct(local1)));
1089if (this[XmlILOptimization.EliminateDifference])
1094if (AllowReplace(XmlILOptimization.EliminateDifference, local0))
1096return Replace(XmlILOptimization.EliminateDifference, local0, VisitSequence(f.Sequence()));
1100if (this[XmlILOptimization.EliminateDifference])
1107if (AllowReplace(XmlILOptimization.EliminateDifference, local0))
1109return Replace(XmlILOptimization.EliminateDifference, local0, VisitSequence(f.Sequence()));
1114if (this[XmlILOptimization.NormalizeDifference])
1119if (AllowReplace(XmlILOptimization.NormalizeDifference, local0))
1121return Replace(XmlILOptimization.NormalizeDifference, local0, VisitDifference(f.Difference(VisitDocOrderDistinct(f.DocOrderDistinct(local1)), VisitDocOrderDistinct(f.DocOrderDistinct(local2)))));
1125if (this[XmlILOptimization.AnnotateDifference])
1128if (AllowReplace(XmlILOptimization.AnnotateDifference, local0))
1139if (this[XmlILOptimization.FoldNone])
1144if (AllowReplace(XmlILOptimization.FoldNone, local0))
1146return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1150if (this[XmlILOptimization.EliminateAverage])
1155if (AllowReplace(XmlILOptimization.EliminateAverage, local0))
1157return Replace(XmlILOptimization.EliminateAverage, local0, VisitNop(f.Nop(local1)));
1167if (this[XmlILOptimization.FoldNone])
1172if (AllowReplace(XmlILOptimization.FoldNone, local0))
1174return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1178if (this[XmlILOptimization.EliminateSum])
1183if (AllowReplace(XmlILOptimization.EliminateSum, local0))
1185return Replace(XmlILOptimization.EliminateSum, local0, VisitNop(f.Nop(local1)));
1195if (this[XmlILOptimization.FoldNone])
1200if (AllowReplace(XmlILOptimization.FoldNone, local0))
1202return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1206if (this[XmlILOptimization.EliminateMinimum])
1211if (AllowReplace(XmlILOptimization.EliminateMinimum, local0))
1213return Replace(XmlILOptimization.EliminateMinimum, local0, VisitNop(f.Nop(local1)));
1223if (this[XmlILOptimization.FoldNone])
1228if (AllowReplace(XmlILOptimization.FoldNone, local0))
1230return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1234if (this[XmlILOptimization.EliminateMaximum])
1239if (AllowReplace(XmlILOptimization.EliminateMaximum, local0))
1241return Replace(XmlILOptimization.EliminateMaximum, local0, VisitNop(f.Nop(local1)));
1254if (this[XmlILOptimization.FoldNone])
1259if (AllowReplace(XmlILOptimization.FoldNone, local0))
1261return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1265if (this[XmlILOptimization.EliminateNegate])
1271if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
1273return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDecimal(f.LiteralDecimal(-local2)));
1277if (this[XmlILOptimization.EliminateNegate])
1283if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
1285return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDouble(f.LiteralDouble(-local2)));
1289if (this[XmlILOptimization.EliminateNegate])
1295if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
1297return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralInt32(f.LiteralInt32(-local2)));
1301if (this[XmlILOptimization.EliminateNegate])
1307if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
1309return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralInt64(f.LiteralInt64(-local2)));
1320if (this[XmlILOptimization.FoldNone])
1325if (AllowReplace(XmlILOptimization.FoldNone, local0))
1327return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1331if (this[XmlILOptimization.FoldNone])
1336if (AllowReplace(XmlILOptimization.FoldNone, local0))
1338return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1342if (this[XmlILOptimization.EliminateAdd])
1349if (AllowReplace(XmlILOptimization.EliminateAdd, local0))
1351return Replace(XmlILOptimization.EliminateAdd, local0, FoldArithmetic(QilNodeType.Add, (QilLiteral)local1, (QilLiteral)local2));
1356if (this[XmlILOptimization.NormalizeAddLiteral])
1363if (AllowReplace(XmlILOptimization.NormalizeAddLiteral, local0))
1365return Replace(XmlILOptimization.NormalizeAddLiteral, local0, VisitAdd(f.Add(local2, local1)));
1377if (this[XmlILOptimization.FoldNone])
1382if (AllowReplace(XmlILOptimization.FoldNone, local0))
1384return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1388if (this[XmlILOptimization.FoldNone])
1393if (AllowReplace(XmlILOptimization.FoldNone, local0))
1395return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1399if (this[XmlILOptimization.EliminateSubtract])
1406if (AllowReplace(XmlILOptimization.EliminateSubtract, local0))
1408return Replace(XmlILOptimization.EliminateSubtract, local0, FoldArithmetic(QilNodeType.Subtract, (QilLiteral)local1, (QilLiteral)local2));
1420if (this[XmlILOptimization.FoldNone])
1425if (AllowReplace(XmlILOptimization.FoldNone, local0))
1427return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1431if (this[XmlILOptimization.FoldNone])
1436if (AllowReplace(XmlILOptimization.FoldNone, local0))
1438return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1442if (this[XmlILOptimization.EliminateMultiply])
1449if (AllowReplace(XmlILOptimization.EliminateMultiply, local0))
1451return Replace(XmlILOptimization.EliminateMultiply, local0, FoldArithmetic(QilNodeType.Multiply, (QilLiteral)local1, (QilLiteral)local2));
1456if (this[XmlILOptimization.NormalizeMultiplyLiteral])
1463if (AllowReplace(XmlILOptimization.NormalizeMultiplyLiteral, local0))
1465return Replace(XmlILOptimization.NormalizeMultiplyLiteral, local0, VisitMultiply(f.Multiply(local2, local1)));
1477if (this[XmlILOptimization.FoldNone])
1482if (AllowReplace(XmlILOptimization.FoldNone, local0))
1484return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1488if (this[XmlILOptimization.FoldNone])
1493if (AllowReplace(XmlILOptimization.FoldNone, local0))
1495return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1499if (this[XmlILOptimization.EliminateDivide])
1506if (AllowReplace(XmlILOptimization.EliminateDivide, local0))
1508return Replace(XmlILOptimization.EliminateDivide, local0, FoldArithmetic(QilNodeType.Divide, (QilLiteral)local1, (QilLiteral)local2));
1520if (this[XmlILOptimization.FoldNone])
1525if (AllowReplace(XmlILOptimization.FoldNone, local0))
1527return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1531if (this[XmlILOptimization.FoldNone])
1536if (AllowReplace(XmlILOptimization.FoldNone, local0))
1538return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1542if (this[XmlILOptimization.EliminateModulo])
1549if (AllowReplace(XmlILOptimization.EliminateModulo, local0))
1551return Replace(XmlILOptimization.EliminateModulo, local0, FoldArithmetic(QilNodeType.Modulo, (QilLiteral)local1, (QilLiteral)local2));
1565if (this[XmlILOptimization.FoldNone])
1570if (AllowReplace(XmlILOptimization.FoldNone, local0))
1572return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1576if (this[XmlILOptimization.EliminateStrLength])
1582if (AllowReplace(XmlILOptimization.EliminateStrLength, local0))
1584return Replace(XmlILOptimization.EliminateStrLength, local0, VisitLiteralInt32(f.LiteralInt32(local2.Length)));
1595if (this[XmlILOptimization.FoldNone])
1600if (AllowReplace(XmlILOptimization.FoldNone, local0))
1602return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1606if (this[XmlILOptimization.FoldNone])
1611if (AllowReplace(XmlILOptimization.FoldNone, local0))
1613return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1617if ((((local2).XmlType)!.IsSingleton) && (this[XmlILOptimization.EliminateStrConcatSingle]))
1620if (AllowReplace(XmlILOptimization.EliminateStrConcatSingle, local0))
1622return Replace(XmlILOptimization.EliminateStrConcatSingle, local0, VisitNop(f.Nop(local2)));
1625if (this[XmlILOptimization.EliminateStrConcat])
1635if (AllowReplace(XmlILOptimization.EliminateStrConcat, local0))
1643return Replace(XmlILOptimization.EliminateStrConcat, local0, VisitLiteralString(f.LiteralString(concat.GetResult())));
1656if (this[XmlILOptimization.FoldNone])
1661if (AllowReplace(XmlILOptimization.FoldNone, local0))
1663return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1667if (this[XmlILOptimization.FoldNone])
1672if (AllowReplace(XmlILOptimization.FoldNone, local0))
1674return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1688if (this[XmlILOptimization.FoldNone])
1693if (AllowReplace(XmlILOptimization.FoldNone, local0))
1695return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1699if (this[XmlILOptimization.FoldNone])
1704if (AllowReplace(XmlILOptimization.FoldNone, local0))
1706return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1710if (this[XmlILOptimization.EliminateNe])
1717if (AllowReplace(XmlILOptimization.EliminateNe, local0))
1719return Replace(XmlILOptimization.EliminateNe, local0, FoldComparison(QilNodeType.Ne, local1, local2));
1724if (this[XmlILOptimization.NormalizeNeLiteral])
1731if (AllowReplace(XmlILOptimization.NormalizeNeLiteral, local0))
1733return Replace(XmlILOptimization.NormalizeNeLiteral, local0, VisitNe(f.Ne(local2, local1)));
1738if (this[XmlILOptimization.NormalizeXsltConvertNe])
1752if (AllowReplace(XmlILOptimization.NormalizeXsltConvertNe, local0))
1754return Replace(XmlILOptimization.NormalizeXsltConvertNe, local0, VisitNe(f.Ne(local3, FoldXsltConvert(local2, (local3).XmlType!))));
1761if (this[XmlILOptimization.NormalizeIdNe])
1774if (AllowReplace(XmlILOptimization.NormalizeIdNe, local0))
1776return Replace(XmlILOptimization.NormalizeIdNe, local0, VisitNot(f.Not(VisitIs(f.Is(local3, local4)))));
1783if (this[XmlILOptimization.NormalizeLengthNe])
1794if (AllowReplace(XmlILOptimization.NormalizeLengthNe, local0))
1796return Replace(XmlILOptimization.NormalizeLengthNe, local0, VisitNot(f.Not(VisitIsEmpty(f.IsEmpty(local3)))));
1802if (this[XmlILOptimization.AnnotateMaxLengthNe])
1810if (AllowReplace(XmlILOptimization.AnnotateMaxLengthNe, local0))
1824if (this[XmlILOptimization.FoldNone])
1829if (AllowReplace(XmlILOptimization.FoldNone, local0))
1831return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
1835if (this[XmlILOptimization.FoldNone])
1840if (AllowReplace(XmlILOptimization.FoldNone, local0))
1842return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
1846if (this[XmlILOptimization.EliminateEq])
1853if (AllowReplace(XmlILOptimization.EliminateEq, local0))
1855return Replace(XmlILOptimization.EliminateEq, local0, FoldComparison(QilNodeType.Eq, local1, local2));
1860if (this[XmlILOptimization.NormalizeEqLiteral])
1867if (AllowReplace(XmlILOptimization.NormalizeEqLiteral, local0))
1869return Replace(XmlILOptimization.NormalizeEqLiteral, local0, VisitEq(f.Eq(local2, local1)));
1874if (this[XmlILOptimization.NormalizeXsltConvertEq])
1888if (AllowReplace(XmlILOptimization.NormalizeXsltConvertEq, local0))
1890return Replace(XmlILOptimization.NormalizeXsltConvertEq, local0, VisitEq(f.Eq(local3, FoldXsltConvert(local2, (local3).XmlType!))));
1897if (this[XmlILOptimization.NormalizeAddEq])
1908if (AllowReplace(XmlILOptimization.NormalizeAddEq, local0))
1910return Replace(XmlILOptimization.NormalizeAddEq, local0, VisitEq(f.Eq(local3, FoldArithmetic(QilNodeType.Subtract, (QilLiteral)local2, (QilLiteral)local4))));
1916if (this[XmlILOptimization.NormalizeIdEq])
1929if (AllowReplace(XmlILOptimization.NormalizeIdEq, local0))
1931return Replace(XmlILOptimization.NormalizeIdEq, local0, VisitIs(f.Is(local3, local4)));
1938if (this[XmlILOptimization.NormalizeIdEq])
1963if (AllowReplace(XmlILOptimization.NormalizeIdEq, local0))
1966return Replace(XmlILOptimization.NormalizeIdEq, local0, VisitNot(f.Not(VisitIsEmpty(f.IsEmpty(VisitFilter(f.Filter(local10, VisitIs(f.Is(local3, local10)))))))));
1977if (this[XmlILOptimization.NormalizeIdEq])
2002if (AllowReplace(XmlILOptimization.NormalizeIdEq, local0))
2005return Replace(XmlILOptimization.NormalizeIdEq, local0, VisitNot(f.Not(VisitIsEmpty(f.IsEmpty(VisitFilter(f.Filter(local10, VisitIs(f.Is(local9, local10)))))))));
2016if (this[XmlILOptimization.NormalizeMuenchian])
2033if (AllowReplace(XmlILOptimization.NormalizeMuenchian, local0))
2036return Replace(XmlILOptimization.NormalizeMuenchian, local0, VisitIsEmpty(f.IsEmpty(VisitFilter(f.Filter(local7, VisitNot(f.Not(VisitIs(f.Is(local4, local7)))))))));
2044if (this[XmlILOptimization.NormalizeMuenchian])
2061if (AllowReplace(XmlILOptimization.NormalizeMuenchian, local0))
2064return Replace(XmlILOptimization.NormalizeMuenchian, local0, VisitIsEmpty(f.IsEmpty(VisitFilter(f.Filter(local7, VisitNot(f.Not(VisitIs(f.Is(local7, local5)))))))));
2072if (this[XmlILOptimization.AnnotateMaxLengthEq])
2080if (AllowReplace(XmlILOptimization.AnnotateMaxLengthEq, local0))
2094if (this[XmlILOptimization.FoldNone])
2099if (AllowReplace(XmlILOptimization.FoldNone, local0))
2101return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2105if (this[XmlILOptimization.FoldNone])
2110if (AllowReplace(XmlILOptimization.FoldNone, local0))
2112return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2116if (this[XmlILOptimization.EliminateGt])
2123if (AllowReplace(XmlILOptimization.EliminateGt, local0))
2125return Replace(XmlILOptimization.EliminateGt, local0, FoldComparison(QilNodeType.Gt, local1, local2));
2130if (this[XmlILOptimization.NormalizeGtLiteral])
2137if (AllowReplace(XmlILOptimization.NormalizeGtLiteral, local0))
2139return Replace(XmlILOptimization.NormalizeGtLiteral, local0, VisitLt(f.Lt(local2, local1)));
2144if (this[XmlILOptimization.NormalizeXsltConvertGt])
2158if (AllowReplace(XmlILOptimization.NormalizeXsltConvertGt, local0))
2160return Replace(XmlILOptimization.NormalizeXsltConvertGt, local0, VisitGt(f.Gt(local3, FoldXsltConvert(local2, (local3).XmlType!))));
2167if (this[XmlILOptimization.NormalizeLengthGt])
2178if (AllowReplace(XmlILOptimization.NormalizeLengthGt, local0))
2180return Replace(XmlILOptimization.NormalizeLengthGt, local0, VisitNot(f.Not(VisitIsEmpty(f.IsEmpty(local3)))));
2186if (this[XmlILOptimization.AnnotateMaxLengthGt])
2194if (AllowReplace(XmlILOptimization.AnnotateMaxLengthGt, local0))
2208if (this[XmlILOptimization.FoldNone])
2213if (AllowReplace(XmlILOptimization.FoldNone, local0))
2215return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2219if (this[XmlILOptimization.FoldNone])
2224if (AllowReplace(XmlILOptimization.FoldNone, local0))
2226return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2230if (this[XmlILOptimization.EliminateGe])
2237if (AllowReplace(XmlILOptimization.EliminateGe, local0))
2239return Replace(XmlILOptimization.EliminateGe, local0, FoldComparison(QilNodeType.Ge, local1, local2));
2244if (this[XmlILOptimization.NormalizeGeLiteral])
2251if (AllowReplace(XmlILOptimization.NormalizeGeLiteral, local0))
2253return Replace(XmlILOptimization.NormalizeGeLiteral, local0, VisitLe(f.Le(local2, local1)));
2258if (this[XmlILOptimization.NormalizeXsltConvertGe])
2272if (AllowReplace(XmlILOptimization.NormalizeXsltConvertGe, local0))
2274return Replace(XmlILOptimization.NormalizeXsltConvertGe, local0, VisitGe(f.Ge(local3, FoldXsltConvert(local2, (local3).XmlType!))));
2281if (this[XmlILOptimization.AnnotateMaxLengthGe])
2289if (AllowReplace(XmlILOptimization.AnnotateMaxLengthGe, local0))
2303if (this[XmlILOptimization.FoldNone])
2308if (AllowReplace(XmlILOptimization.FoldNone, local0))
2310return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2314if (this[XmlILOptimization.FoldNone])
2319if (AllowReplace(XmlILOptimization.FoldNone, local0))
2321return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2325if (this[XmlILOptimization.EliminateLt])
2332if (AllowReplace(XmlILOptimization.EliminateLt, local0))
2334return Replace(XmlILOptimization.EliminateLt, local0, FoldComparison(QilNodeType.Lt, local1, local2));
2339if (this[XmlILOptimization.NormalizeLtLiteral])
2346if (AllowReplace(XmlILOptimization.NormalizeLtLiteral, local0))
2348return Replace(XmlILOptimization.NormalizeLtLiteral, local0, VisitGt(f.Gt(local2, local1)));
2353if (this[XmlILOptimization.NormalizeXsltConvertLt])
2367if (AllowReplace(XmlILOptimization.NormalizeXsltConvertLt, local0))
2369return Replace(XmlILOptimization.NormalizeXsltConvertLt, local0, VisitLt(f.Lt(local3, FoldXsltConvert(local2, (local3).XmlType!))));
2376if (this[XmlILOptimization.AnnotateMaxLengthLt])
2384if (AllowReplace(XmlILOptimization.AnnotateMaxLengthLt, local0))
2398if (this[XmlILOptimization.FoldNone])
2403if (AllowReplace(XmlILOptimization.FoldNone, local0))
2405return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2409if (this[XmlILOptimization.FoldNone])
2414if (AllowReplace(XmlILOptimization.FoldNone, local0))
2416return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2420if (this[XmlILOptimization.EliminateLe])
2427if (AllowReplace(XmlILOptimization.EliminateLe, local0))
2429return Replace(XmlILOptimization.EliminateLe, local0, FoldComparison(QilNodeType.Le, local1, local2));
2434if (this[XmlILOptimization.NormalizeLeLiteral])
2441if (AllowReplace(XmlILOptimization.NormalizeLeLiteral, local0))
2443return Replace(XmlILOptimization.NormalizeLeLiteral, local0, VisitGe(f.Ge(local2, local1)));
2448if (this[XmlILOptimization.NormalizeXsltConvertLe])
2462if (AllowReplace(XmlILOptimization.NormalizeXsltConvertLe, local0))
2464return Replace(XmlILOptimization.NormalizeXsltConvertLe, local0, VisitLe(f.Le(local3, FoldXsltConvert(local2, (local3).XmlType!))));
2471if (this[XmlILOptimization.AnnotateMaxLengthLe])
2479if (AllowReplace(XmlILOptimization.AnnotateMaxLengthLe, local0))
2496if (this[XmlILOptimization.FoldNone])
2501if (AllowReplace(XmlILOptimization.FoldNone, local0))
2503return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2507if (this[XmlILOptimization.FoldNone])
2512if (AllowReplace(XmlILOptimization.FoldNone, local0))
2514return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2518if (this[XmlILOptimization.EliminateIs])
2523if (AllowReplace(XmlILOptimization.EliminateIs, local0))
2525return Replace(XmlILOptimization.EliminateIs, local0, VisitTrue(f.True()));
2536if (this[XmlILOptimization.FoldNone])
2541if (AllowReplace(XmlILOptimization.FoldNone, local0))
2543return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2547if (this[XmlILOptimization.FoldNone])
2552if (AllowReplace(XmlILOptimization.FoldNone, local0))
2554return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2558if (this[XmlILOptimization.EliminateAfter])
2563if (AllowReplace(XmlILOptimization.EliminateAfter, local0))
2565return Replace(XmlILOptimization.EliminateAfter, local0, VisitFalse(f.False()));
2576if (this[XmlILOptimization.FoldNone])
2581if (AllowReplace(XmlILOptimization.FoldNone, local0))
2583return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
2587if (this[XmlILOptimization.FoldNone])
2592if (AllowReplace(XmlILOptimization.FoldNone, local0))
2594return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
2598if (this[XmlILOptimization.EliminateBefore])
2603if (AllowReplace(XmlILOptimization.EliminateBefore, local0))
2605return Replace(XmlILOptimization.EliminateBefore, local0, VisitFalse(f.False()));
2619if (this[XmlILOptimization.FoldNone])
2624if (AllowReplace(XmlILOptimization.FoldNone, local0))
2626return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop((QilNode)(local1)[0])));
2630if (this[XmlILOptimization.EliminateIterator])
2640if (AllowReplace(XmlILOptimization.EliminateIterator, local0))
2642return Replace(XmlILOptimization.EliminateIterator, local0, Subs(local2, local1, local3));
2648if (this[XmlILOptimization.EliminateLoop])
2658if (AllowReplace(XmlILOptimization.EliminateLoop, local0))
2660return Replace(XmlILOptimization.EliminateLoop, local0, VisitSequence(f.Sequence()));
2666if (this[XmlILOptimization.EliminateLoop])
2675if (AllowReplace(XmlILOptimization.EliminateLoop, local0))
2677return Replace(XmlILOptimization.EliminateLoop, local0, VisitSequence(f.Sequence()));
2683if (this[XmlILOptimization.EliminateLoop])
2688if (AllowReplace(XmlILOptimization.EliminateLoop, local0))
2690return Replace(XmlILOptimization.EliminateLoop, local0, (QilNode)(local1)[0]);
2694if (this[XmlILOptimization.NormalizeLoopText])
2705if (AllowReplace(XmlILOptimization.NormalizeLoopText, local0))
2707return Replace(XmlILOptimization.NormalizeLoopText, local0, VisitTextCtor(f.TextCtor(VisitLoop(f.Loop(local1, local4)))));
2713if (this[XmlILOptimization.EliminateIteratorUsedAtMostOnce])
2720if (AllowReplace(XmlILOptimization.EliminateIteratorUsedAtMostOnce, local0))
2722return Replace(XmlILOptimization.EliminateIteratorUsedAtMostOnce, local0, Subs(local2, local1, (QilNode)(local1)[0]));
2727if (this[XmlILOptimization.NormalizeLoopConditional])
2741if (AllowReplace(XmlILOptimization.NormalizeLoopConditional, local0))
2743return Replace(XmlILOptimization.NormalizeLoopConditional, local0, VisitFilter(f.Filter(local1, VisitNot(f.Not(local3)))));
2750if (this[XmlILOptimization.NormalizeLoopConditional])
2764if (AllowReplace(XmlILOptimization.NormalizeLoopConditional, local0))
2766return Replace(XmlILOptimization.NormalizeLoopConditional, local0, VisitFilter(f.Filter(local1, local3)));
2773if (this[XmlILOptimization.NormalizeLoopConditional])
2789if (AllowReplace(XmlILOptimization.NormalizeLoopConditional, local0))
2792return Replace(XmlILOptimization.NormalizeLoopConditional, local0, VisitLoop(f.Loop(local7, Subs(local6, local1, local7))));
2800if (this[XmlILOptimization.NormalizeLoopConditional])
2816if (AllowReplace(XmlILOptimization.NormalizeLoopConditional, local0))
2819return Replace(XmlILOptimization.NormalizeLoopConditional, local0, VisitLoop(f.Loop(local7, Subs(local5, local1, local7))));
2827if (this[XmlILOptimization.NormalizeLoopLoop])
2839if (AllowReplace(XmlILOptimization.NormalizeLoopLoop, local0))
2842return Replace(XmlILOptimization.NormalizeLoopLoop, local0, VisitLoop(f.Loop(local6, Subs(local5, local3, local6))));
2848if (this[XmlILOptimization.AnnotateSingletonLoop])
2856if (AllowReplace(XmlILOptimization.AnnotateSingletonLoop, local0))
2863if (this[XmlILOptimization.AnnotateRootLoop])
2868if (AllowReplace(XmlILOptimization.AnnotateRootLoop, local0))
2874if (this[XmlILOptimization.AnnotateContentLoop])
2884if (AllowReplace(XmlILOptimization.AnnotateContentLoop, local0))
2892if (this[XmlILOptimization.AnnotateAttrNmspLoop])
2900if (AllowReplace(XmlILOptimization.AnnotateAttrNmspLoop, local0))
2907if (this[XmlILOptimization.AnnotateDescendantLoop])
2917if (AllowReplace(XmlILOptimization.AnnotateDescendantLoop, local0))
2932if (this[XmlILOptimization.FoldNone])
2937if (AllowReplace(XmlILOptimization.FoldNone, local0))
2939return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop((QilNode)(local1)[0])));
2943if (this[XmlILOptimization.FoldNone])
2948if (AllowReplace(XmlILOptimization.FoldNone, local0))
2950return Replace(XmlILOptimization.FoldNone, local0, VisitLoop(f.Loop(local1, local2)));
2954if (this[XmlILOptimization.EliminateFilter])
2961if (AllowReplace(XmlILOptimization.EliminateFilter, local0))
2963return Replace(XmlILOptimization.EliminateFilter, local0, VisitSequence(f.Sequence()));
2968if (this[XmlILOptimization.EliminateFilter])
2973if (AllowReplace(XmlILOptimization.EliminateFilter, local0))
2975return Replace(XmlILOptimization.EliminateFilter, local0, (QilNode)(local1)[0]);
2979if (this[XmlILOptimization.NormalizeAttribute])
3014if (AllowReplace(XmlILOptimization.NormalizeAttribute, local0))
3016return Replace(XmlILOptimization.NormalizeAttribute, local0, VisitAttribute(f.Attribute(local4, local12)));
3030if (this[XmlILOptimization.CommuteFilterLoop])
3042if (AllowReplace(XmlILOptimization.CommuteFilterLoop, local0))
3045return Replace(XmlILOptimization.CommuteFilterLoop, local0, VisitLoop(f.Loop(local4, VisitFilter(f.Filter(local6, Subs(local2, local1, local6))))));
3051if (this[XmlILOptimization.NormalizeLoopInvariant])
3058if (AllowReplace(XmlILOptimization.NormalizeLoopInvariant, local0))
3060return Replace(XmlILOptimization.NormalizeLoopInvariant, local0, VisitConditional(f.Conditional(local2, (QilNode)(local1)[0], VisitSequence(f.Sequence()))));
3065if (this[XmlILOptimization.AnnotateMaxPositionEq])
3080if (AllowReplace(XmlILOptimization.AnnotateMaxPositionEq, local0))
3089if (this[XmlILOptimization.AnnotateMaxPositionLe])
3104if (AllowReplace(XmlILOptimization.AnnotateMaxPositionLe, local0))
3113if (this[XmlILOptimization.AnnotateMaxPositionLt])
3128if (AllowReplace(XmlILOptimization.AnnotateMaxPositionLt, local0))
3137if (this[XmlILOptimization.AnnotateFilter])
3143if (AllowReplace(XmlILOptimization.AnnotateFilter, local0))
3149if (this[XmlILOptimization.AnnotateFilterElements])
3183if (AllowReplace(XmlILOptimization.AnnotateFilterElements, local0))
3199if (this[XmlILOptimization.AnnotateFilterContentKind])
3218if (AllowReplace(XmlILOptimization.AnnotateFilterContentKind, local0))
3229if (this[XmlILOptimization.AnnotateFilterAttributeKind])
3248if (AllowReplace(XmlILOptimization.AnnotateFilterAttributeKind, local0))
3268if (this[XmlILOptimization.FoldNone])
3273if (AllowReplace(XmlILOptimization.FoldNone, local0))
3275return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop((QilNode)(local1)[0])));
3279if (this[XmlILOptimization.EliminateSort])
3287if (AllowReplace(XmlILOptimization.EliminateSort, local0))
3289return Replace(XmlILOptimization.EliminateSort, local0, VisitNop(f.Nop(local3)));
3301if (this[XmlILOptimization.NormalizeSortXsltConvert])
3313if (AllowReplace(XmlILOptimization.NormalizeSortXsltConvert, local0))
3315return Replace(XmlILOptimization.NormalizeSortXsltConvert, local0, VisitSortKey(f.SortKey(local3, local2)));
3327if (this[XmlILOptimization.FoldNone])
3332if (AllowReplace(XmlILOptimization.FoldNone, local0))
3334return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3338if (this[XmlILOptimization.EliminateDod])
3343if (AllowReplace(XmlILOptimization.EliminateDod, local0))
3345return Replace(XmlILOptimization.EliminateDod, local0, local1);
3349if (this[XmlILOptimization.FoldNamedDescendants])
3372if (AllowReplace(XmlILOptimization.FoldNamedDescendants, local0))
3375return Replace(XmlILOptimization.FoldNamedDescendants, local0, VisitDocOrderDistinct(f.DocOrderDistinct(VisitLoop(f.Loop(local4, VisitFilter(f.Filter(local10, Subs(local9, local8, local10))))))));
3384if (this[XmlILOptimization.FoldNamedDescendants])
3403if (AllowReplace(XmlILOptimization.FoldNamedDescendants, local0))
3406return Replace(XmlILOptimization.FoldNamedDescendants, local0, VisitFilter(f.Filter(local8, Subs(local7, local6, local8))));
3414if (this[XmlILOptimization.CommuteDodFilter])
3428if (AllowReplace(XmlILOptimization.CommuteDodFilter, local0))
3431return Replace(XmlILOptimization.CommuteDodFilter, local0, VisitFilter(f.Filter(local5, Subs(local4, local2, local5))));
3438if (this[XmlILOptimization.CommuteDodFilter])
3458if (AllowReplace(XmlILOptimization.CommuteDodFilter, local0))
3461return Replace(XmlILOptimization.CommuteDodFilter, local0, VisitFilter(f.Filter(local7, Subs(local6, local4, local7))));
3470if (this[XmlILOptimization.IntroduceDod])
3486if (AllowReplace(XmlILOptimization.IntroduceDod, local0))
3489return Replace(XmlILOptimization.IntroduceDod, local0, VisitDocOrderDistinct(f.DocOrderDistinct(VisitLoop(f.Loop(local5, Subs(local4, local2, local5))))));
3497if (this[XmlILOptimization.IntroducePrecedingDod])
3506if (AllowReplace(XmlILOptimization.IntroducePrecedingDod, local0))
3508return Replace(XmlILOptimization.IntroducePrecedingDod, local0, VisitDocOrderDistinct(f.DocOrderDistinct(VisitLoop(f.Loop(local2, VisitDocOrderDistinct(f.DocOrderDistinct(local3)))))));
3513if (this[XmlILOptimization.EliminateReturnDod])
3525if (AllowReplace(XmlILOptimization.EliminateReturnDod, local0))
3527return Replace(XmlILOptimization.EliminateReturnDod, local0, VisitDocOrderDistinct(f.DocOrderDistinct(VisitLoop(f.Loop(local2, local4)))));
3533if (this[XmlILOptimization.AnnotateDod])
3536if (AllowReplace(XmlILOptimization.AnnotateDod, local0))
3541if (this[XmlILOptimization.AnnotateDodReverse])
3546if (AllowReplace(XmlILOptimization.AnnotateDodReverse, local0))
3552if (this[XmlILOptimization.AnnotateJoinAndDod])
3566if (AllowReplace(XmlILOptimization.AnnotateJoinAndDod, local0))
3575if (this[XmlILOptimization.AnnotateDodMerge])
3585if (AllowReplace(XmlILOptimization.AnnotateDodMerge, local0))
3603if (((local0).XmlType!.IsSubtypeOf(XmlQueryTypeFactory.NodeS)) && (this[XmlILOptimization.AnnotateIndex1]))
3640if (AllowReplace(XmlILOptimization.AnnotateIndex1, local0))
3674if (((local0).XmlType.IsSubtypeOf(XmlQueryTypeFactory.NodeS)) && (this[XmlILOptimization.AnnotateIndex2]))
3696if (AllowReplace(XmlILOptimization.AnnotateIndex2, local0))
3724if (this[XmlILOptimization.NormalizeInvokeEmpty])
3734if (AllowReplace(XmlILOptimization.NormalizeInvokeEmpty, local0))
3736return Replace(XmlILOptimization.NormalizeInvokeEmpty, local0, VisitSequence(f.Sequence()));
3742if (this[XmlILOptimization.AnnotateTrackCallers])
3745if (AllowReplace(XmlILOptimization.AnnotateTrackCallers, local0))
3750if (this[XmlILOptimization.AnnotateInvoke])
3756if (AllowReplace(XmlILOptimization.AnnotateInvoke, local0))
3771if (this[XmlILOptimization.FoldNone])
3776if (AllowReplace(XmlILOptimization.FoldNone, local0))
3778return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3782if (this[XmlILOptimization.AnnotateContent])
3785if (AllowReplace(XmlILOptimization.AnnotateContent, local0))
3797if (this[XmlILOptimization.FoldNone])
3802if (AllowReplace(XmlILOptimization.FoldNone, local0))
3804return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3808if (this[XmlILOptimization.FoldNone])
3813if (AllowReplace(XmlILOptimization.FoldNone, local0))
3815return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
3819if (this[XmlILOptimization.AnnotateAttribute])
3822if (AllowReplace(XmlILOptimization.AnnotateAttribute, local0))
3833if (this[XmlILOptimization.FoldNone])
3838if (AllowReplace(XmlILOptimization.FoldNone, local0))
3840return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3844if (this[XmlILOptimization.AnnotateParent])
3847if (AllowReplace(XmlILOptimization.AnnotateParent, local0))
3858if (this[XmlILOptimization.FoldNone])
3863if (AllowReplace(XmlILOptimization.FoldNone, local0))
3865return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3869if (this[XmlILOptimization.AnnotateRoot])
3872if (AllowReplace(XmlILOptimization.AnnotateRoot, local0))
3883if (this[XmlILOptimization.FoldNone])
3888if (AllowReplace(XmlILOptimization.FoldNone, local0))
3890return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3894if (this[XmlILOptimization.AnnotateDescendant])
3897if (AllowReplace(XmlILOptimization.AnnotateDescendant, local0))
3908if (this[XmlILOptimization.FoldNone])
3913if (AllowReplace(XmlILOptimization.FoldNone, local0))
3915return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3919if (this[XmlILOptimization.AnnotateDescendantSelf])
3922if (AllowReplace(XmlILOptimization.AnnotateDescendantSelf, local0))
3933if (this[XmlILOptimization.FoldNone])
3938if (AllowReplace(XmlILOptimization.FoldNone, local0))
3940return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3944if (this[XmlILOptimization.AnnotateAncestor])
3947if (AllowReplace(XmlILOptimization.AnnotateAncestor, local0))
3958if (this[XmlILOptimization.FoldNone])
3963if (AllowReplace(XmlILOptimization.FoldNone, local0))
3965return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3969if (this[XmlILOptimization.AnnotateAncestorSelf])
3972if (AllowReplace(XmlILOptimization.AnnotateAncestorSelf, local0))
3983if (this[XmlILOptimization.FoldNone])
3988if (AllowReplace(XmlILOptimization.FoldNone, local0))
3990return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
3994if (this[XmlILOptimization.AnnotatePreceding])
3997if (AllowReplace(XmlILOptimization.AnnotatePreceding, local0))
4008if (this[XmlILOptimization.FoldNone])
4013if (AllowReplace(XmlILOptimization.FoldNone, local0))
4015return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4019if (this[XmlILOptimization.AnnotateFollowingSibling])
4022if (AllowReplace(XmlILOptimization.AnnotateFollowingSibling, local0))
4033if (this[XmlILOptimization.FoldNone])
4038if (AllowReplace(XmlILOptimization.FoldNone, local0))
4040return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4044if (this[XmlILOptimization.AnnotatePrecedingSibling])
4047if (AllowReplace(XmlILOptimization.AnnotatePrecedingSibling, local0))
4059if (this[XmlILOptimization.FoldNone])
4064if (AllowReplace(XmlILOptimization.FoldNone, local0))
4066return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4070if (this[XmlILOptimization.FoldNone])
4075if (AllowReplace(XmlILOptimization.FoldNone, local0))
4077return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4081if (this[XmlILOptimization.AnnotateNodeRange])
4084if (AllowReplace(XmlILOptimization.AnnotateNodeRange, local0))
4096if (this[XmlILOptimization.FoldNone])
4101if (AllowReplace(XmlILOptimization.FoldNone, local0))
4103return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4107if (this[XmlILOptimization.FoldNone])
4112if (AllowReplace(XmlILOptimization.FoldNone, local0))
4114return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4128if (this[XmlILOptimization.FoldNone])
4133if (AllowReplace(XmlILOptimization.FoldNone, local0))
4135return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4139if (this[XmlILOptimization.FoldNone])
4144if (AllowReplace(XmlILOptimization.FoldNone, local0))
4146return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4150if (this[XmlILOptimization.AnnotateConstruction])
4153if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4167if (this[XmlILOptimization.FoldNone])
4172if (AllowReplace(XmlILOptimization.FoldNone, local0))
4174return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4178if (this[XmlILOptimization.FoldNone])
4183if (AllowReplace(XmlILOptimization.FoldNone, local0))
4185return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4189if (this[XmlILOptimization.AnnotateConstruction])
4192if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4203if (this[XmlILOptimization.FoldNone])
4208if (AllowReplace(XmlILOptimization.FoldNone, local0))
4210return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4214if (this[XmlILOptimization.AnnotateConstruction])
4217if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4229if (this[XmlILOptimization.FoldNone])
4234if (AllowReplace(XmlILOptimization.FoldNone, local0))
4236return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4240if (this[XmlILOptimization.FoldNone])
4245if (AllowReplace(XmlILOptimization.FoldNone, local0))
4247return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4251if (this[XmlILOptimization.AnnotateConstruction])
4254if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4265if (this[XmlILOptimization.FoldNone])
4270if (AllowReplace(XmlILOptimization.FoldNone, local0))
4272return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4276if (this[XmlILOptimization.AnnotateConstruction])
4279if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4290if (this[XmlILOptimization.FoldNone])
4295if (AllowReplace(XmlILOptimization.FoldNone, local0))
4297return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4301if (this[XmlILOptimization.AnnotateConstruction])
4304if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4315if (this[XmlILOptimization.FoldNone])
4320if (AllowReplace(XmlILOptimization.FoldNone, local0))
4322return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4326if (this[XmlILOptimization.AnnotateConstruction])
4329if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4341if (this[XmlILOptimization.FoldNone])
4346if (AllowReplace(XmlILOptimization.FoldNone, local0))
4348return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4352if (this[XmlILOptimization.FoldNone])
4357if (AllowReplace(XmlILOptimization.FoldNone, local0))
4359return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4363if ((XmlILConstructInfo.Read(local0).IsNamespaceInScope) && (this[XmlILOptimization.EliminateNamespaceDecl]))
4366if (AllowReplace(XmlILOptimization.EliminateNamespaceDecl, local0))
4368return Replace(XmlILOptimization.EliminateNamespaceDecl, local0, VisitSequence(f.Sequence()));
4371if (this[XmlILOptimization.AnnotateConstruction])
4374if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4385if (this[XmlILOptimization.FoldNone])
4390if (AllowReplace(XmlILOptimization.FoldNone, local0))
4392return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4396if (this[XmlILOptimization.AnnotateConstruction])
4399if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4404if (this[XmlILOptimization.AnnotateSingleTextRtf])
4410if (AllowReplace(XmlILOptimization.AnnotateSingleTextRtf, local0))
4427if (this[XmlILOptimization.FoldNone])
4432if (AllowReplace(XmlILOptimization.FoldNone, local0))
4434return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4444if (this[XmlILOptimization.FoldNone])
4449if (AllowReplace(XmlILOptimization.FoldNone, local0))
4451return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4461if (this[XmlILOptimization.FoldNone])
4466if (AllowReplace(XmlILOptimization.FoldNone, local0))
4468return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4478if (this[XmlILOptimization.FoldNone])
4483if (AllowReplace(XmlILOptimization.FoldNone, local0))
4485return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4499if (this[XmlILOptimization.FoldNone])
4504if (AllowReplace(XmlILOptimization.FoldNone, local0))
4506return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4510if (this[XmlILOptimization.EliminateTypeAssert])
4518if (AllowReplace(XmlILOptimization.EliminateTypeAssert, local0))
4520return Replace(XmlILOptimization.EliminateTypeAssert, local0, VisitError(f.Error(VisitLiteralString(f.LiteralString(string.Empty)))));
4525if (this[XmlILOptimization.EliminateTypeAssert])
4533if (AllowReplace(XmlILOptimization.EliminateTypeAssert, local0))
4535return Replace(XmlILOptimization.EliminateTypeAssert, local0, VisitConditional(f.Conditional(VisitIsEmpty(f.IsEmpty(local1)), VisitSequence(f.Sequence()), VisitError(f.Error(VisitLiteralString(f.LiteralString(string.Empty)))))));
4540if (this[XmlILOptimization.EliminateTypeAssertOptional])
4548if (AllowReplace(XmlILOptimization.EliminateTypeAssertOptional, local0))
4550return Replace(XmlILOptimization.EliminateTypeAssertOptional, local0, local1);
4562if (this[XmlILOptimization.FoldNone])
4567if (AllowReplace(XmlILOptimization.FoldNone, local0))
4569return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4573if (this[XmlILOptimization.EliminateIsType])
4583if (AllowReplace(XmlILOptimization.EliminateIsType, local0))
4585return Replace(XmlILOptimization.EliminateIsType, local0, VisitTrue(f.True()));
4591if (this[XmlILOptimization.EliminateIsType])
4601if (AllowReplace(XmlILOptimization.EliminateIsType, local0))
4603return Replace(XmlILOptimization.EliminateIsType, local0, VisitFalse(f.False()));
4609if (this[XmlILOptimization.EliminateIsType])
4617if (AllowReplace(XmlILOptimization.EliminateIsType, local0))
4619return Replace(XmlILOptimization.EliminateIsType, local0, VisitIsEmpty(f.IsEmpty(local1)));
4624if (this[XmlILOptimization.EliminateIsType])
4634if (AllowReplace(XmlILOptimization.EliminateIsType, local0))
4636return Replace(XmlILOptimization.EliminateIsType, local0, VisitLoop(f.Loop(VisitLet(f.Let(local1)), VisitTrue(f.True()))));
4642if (this[XmlILOptimization.EliminateIsType])
4652if (AllowReplace(XmlILOptimization.EliminateIsType, local0))
4654return Replace(XmlILOptimization.EliminateIsType, local0, VisitLoop(f.Loop(VisitLet(f.Let(local1)), VisitFalse(f.False()))));
4666if (this[XmlILOptimization.FoldNone])
4671if (AllowReplace(XmlILOptimization.FoldNone, local0))
4673return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4677if (this[XmlILOptimization.EliminateIsEmpty])
4684if (AllowReplace(XmlILOptimization.EliminateIsEmpty, local0))
4686return Replace(XmlILOptimization.EliminateIsEmpty, local0, VisitTrue(f.True()));
4691if (this[XmlILOptimization.EliminateIsEmpty])
4696if (AllowReplace(XmlILOptimization.EliminateIsEmpty, local0))
4698return Replace(XmlILOptimization.EliminateIsEmpty, local0, VisitFalse(f.False()));
4702if (this[XmlILOptimization.EliminateIsEmpty])
4707if (AllowReplace(XmlILOptimization.EliminateIsEmpty, local0))
4709return Replace(XmlILOptimization.EliminateIsEmpty, local0, VisitLoop(f.Loop(VisitLet(f.Let(local1)), VisitFalse(f.False()))));
4722if (this[XmlILOptimization.FoldNone])
4727if (AllowReplace(XmlILOptimization.FoldNone, local0))
4729return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4739if (this[XmlILOptimization.FoldNone])
4744if (AllowReplace(XmlILOptimization.FoldNone, local0))
4746return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4750if (this[XmlILOptimization.AnnotateXPathFollowing])
4753if (AllowReplace(XmlILOptimization.AnnotateXPathFollowing, local0))
4764if (this[XmlILOptimization.FoldNone])
4769if (AllowReplace(XmlILOptimization.FoldNone, local0))
4771return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4775if (this[XmlILOptimization.AnnotateXPathPreceding])
4778if (AllowReplace(XmlILOptimization.AnnotateXPathPreceding, local0))
4789if (this[XmlILOptimization.FoldNone])
4794if (AllowReplace(XmlILOptimization.FoldNone, local0))
4796return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4800if (this[XmlILOptimization.AnnotateNamespace])
4803if (AllowReplace(XmlILOptimization.AnnotateNamespace, local0))
4817if (this[XmlILOptimization.FoldNone])
4822if (AllowReplace(XmlILOptimization.FoldNone, local0))
4824return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4835if (this[XmlILOptimization.FoldNone])
4840if (AllowReplace(XmlILOptimization.FoldNone, local0))
4842return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4846if (this[XmlILOptimization.FoldNone])
4851if (AllowReplace(XmlILOptimization.FoldNone, local0))
4853return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
4857if (this[XmlILOptimization.AnnotateConstruction])
4860if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4871if (this[XmlILOptimization.FoldNone])
4876if (AllowReplace(XmlILOptimization.FoldNone, local0))
4878return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4882if (this[XmlILOptimization.AnnotateConstruction])
4885if (AllowReplace(XmlILOptimization.AnnotateConstruction, local0))
4897if (this[XmlILOptimization.FoldNone])
4902if (AllowReplace(XmlILOptimization.FoldNone, local0))
4904return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
4908if (this[XmlILOptimization.FoldXsltConvertLiteral])
4918if (AllowReplace(XmlILOptimization.FoldXsltConvertLiteral, local0))
4920return Replace(XmlILOptimization.FoldXsltConvertLiteral, local0, FoldXsltConvert(local1, local3));
4926if (this[XmlILOptimization.EliminateXsltConvert])
4934if (AllowReplace(XmlILOptimization.EliminateXsltConvert, local0))
4936return Replace(XmlILOptimization.EliminateXsltConvert, local0, local1);
4951private bool this[XmlILOptimization ann]