Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ VisitGe()

override QilNode System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitGe ( QilBinary local0)
inlineprotectedvirtual

Reimplemented from System.Xml.Xsl.Qil.QilVisitor.

Definition at line 1279 of file XmlILOptimizerVisitor.cs.

1280 {
1281 QilNode qilNode = local0[0];
1282 QilNode qilNode2 = local0[1];
1283 if (this[XmlILOptimization.FoldNone] && (object)qilNode.XmlType == XmlQueryTypeFactory.None && AllowReplace(XmlILOptimization.FoldNone, local0))
1284 {
1285 return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(qilNode)));
1286 }
1287 if (this[XmlILOptimization.FoldNone] && (object)qilNode2.XmlType == XmlQueryTypeFactory.None && AllowReplace(XmlILOptimization.FoldNone, local0))
1288 {
1289 return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(qilNode2)));
1290 }
1291 if (this[XmlILOptimization.EliminateGe] && IsLiteral(qilNode) && IsLiteral(qilNode2) && AllowReplace(XmlILOptimization.EliminateGe, local0))
1292 {
1294 }
1295 if (this[XmlILOptimization.NormalizeGeLiteral] && IsLiteral(qilNode) && !IsLiteral(qilNode2) && AllowReplace(XmlILOptimization.NormalizeGeLiteral, local0))
1296 {
1297 return Replace(XmlILOptimization.NormalizeGeLiteral, local0, VisitLe(f.Le(qilNode2, qilNode)));
1298 }
1299 if (this[XmlILOptimization.NormalizeXsltConvertGe] && qilNode.NodeType == QilNodeType.XsltConvert)
1300 {
1303 if (qilNode4.NodeType == QilNodeType.LiteralType)
1304 {
1305 XmlQueryType typ = (XmlQueryType)((QilLiteral)qilNode4).Value;
1307 {
1308 return Replace(XmlILOptimization.NormalizeXsltConvertGe, local0, VisitGe(f.Ge(qilNode3, FoldXsltConvert(qilNode2, qilNode3.XmlType))));
1309 }
1310 }
1311 }
1312 if (this[XmlILOptimization.AnnotateMaxLengthGe] && qilNode.NodeType == QilNodeType.Length && qilNode2.NodeType == QilNodeType.LiteralInt32)
1313 {
1314 int num = (int)((QilLiteral)qilNode2).Value;
1315 if (AllowReplace(XmlILOptimization.AnnotateMaxLengthGe, local0))
1316 {
1317 OptimizerPatterns.Write(qilNode).AddPattern(OptimizerPatternName.MaxPosition);
1318 OptimizerPatterns.Write(qilNode).AddArgument(OptimizerPatternArgument.ElementQName, num);
1319 }
1320 }
1321 return NoReplace(local0);
1322 }
override QilNode VisitLe(QilBinary local0)
QilNode FoldComparison(QilNodeType opType, QilNode left, QilNode right)
override QilNode VisitGe(QilBinary local0)
bool AllowReplace(XmlILOptimization pattern, QilNode original)
bool CanFoldXsltConvertNonLossy(QilNode ndLiteral, XmlQueryType typTarget)
QilNode FoldXsltConvert(QilNode ndLiteral, XmlQueryType typTarget)
override QilNode VisitNop(QilUnary local0)
QilBinary Ge(QilNode left, QilNode right)
QilUnary Nop(QilNode child)
QilBinary Le(QilNode left, QilNode right)

References System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.AllowReplace(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.CanFoldXsltConvertNonLossy(), System.Xml.Dictionary, System.Xml.Xsl.Qil.QilReplaceVisitor.f, System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.FoldComparison(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.FoldXsltConvert(), System.Xml.Xsl.Qil.QilFactory.Ge(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.IsLiteral(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.IsPrimitiveNumeric(), System.Xml.Xsl.Qil.QilFactory.Le(), System.Xml.Xsl.XmlQueryTypeFactory.None, System.Xml.Xsl.Qil.QilFactory.Nop(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.NoReplace(), System.Xml.Replace, System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitGe(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitLe(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitNop(), and System.Xml.Xsl.IlGen.OptimizerPatterns.Write().

Referenced by System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitGe(), and System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitLe().