aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Analysis/BasicAliasAnalysis.cpp15
-rw-r--r--lib/Analysis/ConstantRange.cpp50
-rw-r--r--lib/Analysis/ScalarEvolution.cpp28
-rw-r--r--lib/Analysis/ScalarEvolutionExpander.cpp2
-rw-r--r--lib/AsmParser/ParserInternals.h4
-rw-r--r--lib/AsmParser/llvmAsmParser.cpp.cvs1920
-rw-r--r--lib/AsmParser/llvmAsmParser.h.cvs2
-rw-r--r--lib/AsmParser/llvmAsmParser.y10
-rw-r--r--lib/AsmParser/llvmAsmParser.y.cvs62
-rw-r--r--lib/Bytecode/Reader/Reader.cpp2
-rw-r--r--lib/Bytecode/Writer/Writer.cpp2
-rw-r--r--lib/CodeGen/AsmPrinter.cpp10
-rw-r--r--lib/CodeGen/MachineDebugInfo.cpp6
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp24
-rw-r--r--lib/ExecutionEngine/ExecutionEngine.cpp2
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp2
-rw-r--r--lib/Support/ConstantRange.cpp50
-rw-r--r--lib/Target/CBackend/CBackend.cpp27
-rw-r--r--lib/Transforms/IPO/GlobalOpt.cpp21
-rw-r--r--lib/Transforms/Instrumentation/RSProfiling.cpp4
-rw-r--r--lib/Transforms/Scalar/CondPropagate.cpp5
-rw-r--r--lib/Transforms/Scalar/CorrelatedExprs.cpp156
-rw-r--r--lib/Transforms/Scalar/InstructionCombining.cpp218
-rw-r--r--lib/Transforms/Scalar/LoopUnswitch.cpp64
-rw-r--r--lib/Transforms/Scalar/PredicateSimplifier.cpp57
-rw-r--r--lib/Transforms/Scalar/Reassociate.cpp4
-rw-r--r--lib/Transforms/Scalar/SCCP.cpp22
-rw-r--r--lib/Transforms/Utils/CloneFunction.cpp13
-rw-r--r--lib/Transforms/Utils/CodeExtractor.cpp2
-rw-r--r--lib/Transforms/Utils/Local.cpp6
-rw-r--r--lib/Transforms/Utils/SimplifyCFG.cpp13
-rw-r--r--lib/Transforms/Utils/ValueMapper.cpp2
-rw-r--r--lib/VMCore/AsmWriter.cpp8
-rw-r--r--lib/VMCore/ConstantFold.cpp340
-rw-r--r--lib/VMCore/Constants.cpp43
-rw-r--r--lib/VMCore/Instructions.cpp10
36 files changed, 1682 insertions, 1524 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp
index caabc86f3f..179f069716 100644
--- a/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/lib/Analysis/BasicAliasAnalysis.cpp
@@ -434,7 +434,8 @@ BasicAliasAnalysis::alias(const Value *V1, unsigned V1Size,
if (cast<PointerType>(
BasePtr->getType())->getElementType()->isSized()) {
for (unsigned i = 0; i != GEPOperands.size(); ++i)
- if (!isa<ConstantInt>(GEPOperands[i]))
+ if (!isa<ConstantInt>(GEPOperands[i]) ||
+ GEPOperands[i]->getType() == Type::BoolTy)
GEPOperands[i] =
Constant::getNullValue(GEPOperands[i]->getType());
int64_t Offset =
@@ -584,8 +585,8 @@ BasicAliasAnalysis::CheckGEPInstructions(
if (G1OC) {
Constant *Compare = ConstantExpr::getICmp(ICmpInst::ICMP_SGT,
G1OC, G2OC);
- if (ConstantBool *CV = dyn_cast<ConstantBool>(Compare)) {
- if (CV->getValue()) // If they are comparable and G2 > G1
+ if (ConstantInt *CV = dyn_cast<ConstantInt>(Compare)) {
+ if (CV->getBoolValue()) // If they are comparable and G2 > G1
std::swap(GEP1Ops, GEP2Ops); // Make GEP1 < GEP2
break;
}
@@ -608,13 +609,15 @@ BasicAliasAnalysis::CheckGEPInstructions(
// Is there anything to check?
if (GEP1Ops.size() > MinOperands) {
for (unsigned i = FirstConstantOper; i != MaxOperands; ++i)
- if (isa<ConstantInt>(GEP1Ops[i]) &&
+ if (isa<ConstantInt>(GEP1Ops[i]) &&
+ GEP1Ops[i]->getType() != Type::BoolTy &&
!cast<Constant>(GEP1Ops[i])->isNullValue()) {
// Yup, there's a constant in the tail. Set all variables to
// constants in the GEP instruction to make it suiteable for
// TargetData::getIndexedOffset.
for (i = 0; i != MaxOperands; ++i)
- if (!isa<ConstantInt>(GEP1Ops[i]))
+ if (!isa<ConstantInt>(GEP1Ops[i]) ||
+ GEP1Ops[i]->getType() == Type::BoolTy)
GEP1Ops[i] = Constant::getNullValue(GEP1Ops[i]->getType());
// Okay, now get the offset. This is the relative offset for the full
// instruction.
@@ -667,7 +670,7 @@ BasicAliasAnalysis::CheckGEPInstructions(
const Value *Op2 = i < GEP2Ops.size() ? GEP2Ops[i] : 0;
// If they are equal, use a zero index...
if (Op1 == Op2 && BasePtr1Ty == BasePtr2Ty) {
- if (!isa<ConstantInt>(Op1))
+ if (!isa<ConstantInt>(Op1) || Op1->getType() == Type::BoolTy)
GEP1Ops[i] = GEP2Ops[i] = Constant::getNullValue(Op1->getType());
// Otherwise, just keep the constants we have.
} else {
diff --git a/lib/Analysis/ConstantRange.cpp b/lib/Analysis/ConstantRange.cpp
index a8ffa5813e..1d49e22472 100644
--- a/lib/Analysis/ConstantRange.cpp
+++ b/lib/Analysis/ConstantRange.cpp
@@ -30,9 +30,9 @@
#include <ostream>
using namespace llvm;
-static ConstantIntegral *getMaxValue(const Type *Ty, bool isSigned = false) {
+static ConstantInt *getMaxValue(const Type *Ty, bool isSigned = false) {
if (Ty == Type::BoolTy)
- return ConstantBool::getTrue();
+ return ConstantInt::getTrue();
if (Ty->isInteger()) {
if (isSigned) {
// Calculate 011111111111111...
@@ -47,9 +47,9 @@ static ConstantIntegral *getMaxValue(const Type *Ty, bool isSigned = false) {
}
// Static constructor to create the minimum constant for an integral type...
-static ConstantIntegral *getMinValue(const Type *Ty, bool isSigned = false) {
+static ConstantInt *getMinValue(const Type *Ty, bool isSigned = false) {
if (Ty == Type::BoolTy)
- return ConstantBool::getFalse();
+ return ConstantInt::getFalse();
if (Ty->isInteger()) {
if (isSigned) {
// Calculate 1111111111000000000000
@@ -62,37 +62,37 @@ static ConstantIntegral *getMinValue(const Type *Ty, bool isSigned = false) {
}
return 0;
}
-static ConstantIntegral *Next(ConstantIntegral *CI) {
- if (ConstantBool *CB = dyn_cast<ConstantBool>(CI))
- return ConstantBool::get(!CB->getValue());
+static ConstantInt *Next(ConstantInt *CI) {
+ if (CI->getType() == Type::BoolTy)
+ return ConstantInt::get(!CI->getBoolValue());
Constant *Result = ConstantExpr::getAdd(CI,
ConstantInt::get(CI->getType(), 1));
- return cast<ConstantIntegral>(Result);
+ return cast<ConstantInt>(Result);
}
-static bool LT(ConstantIntegral *A, ConstantIntegral *B, bool isSigned) {
+static bool LT(ConstantInt *A, ConstantInt *B, bool isSigned) {
Constant *C = ConstantExpr::getICmp(
(isSigned ? ICmpInst::ICMP_SLT : ICmpInst::ICMP_ULT), A, B);
- assert(isa<ConstantBool>(C) && "Constant folding of integrals not impl??");
- return cast<ConstantBool>(C)->getValue();
+ assert(isa<ConstantInt>(C) && "Constant folding of integrals not impl??");
+ return cast<ConstantInt>(C)->getBoolValue();
}
-static bool LTE(ConstantIntegral *A, ConstantIntegral *B, bool isSigned) {
+static bool LTE(ConstantInt *A, ConstantInt *B, bool isSigned) {
Constant *C = ConstantExpr::getICmp(
(isSigned ? ICmpInst::ICMP_SLE : ICmpInst::ICMP_ULE), A, B);
- assert(isa<ConstantBool>(C) && "Constant folding of integrals not impl??");
- return cast<ConstantBool>(C)->getValue();
+ assert(isa<ConstantInt>(C) && "Constant folding of integrals not impl??");
+ return cast<ConstantInt>(C)->getBoolValue();
}
-static bool GT(ConstantIntegral *A, ConstantIntegral *B, bool isSigned) {
+static bool GT(ConstantInt *A, ConstantInt *B, bool isSigned) {
return LT(B, A, isSigned); }
-static ConstantIntegral *Min(ConstantIntegral *A, ConstantIntegral *B,
+static ConstantInt *Min(ConstantInt *A, ConstantInt *B,
bool isSigned) {
return LT(A, B, isSigned) ? A : B;
}
-static ConstantIntegral *Max(ConstantIntegral *A, ConstantIntegral *B,
+static ConstantInt *Max(ConstantInt *A, ConstantInt *B,
bool isSigned) {
return GT(A, B, isSigned) ? A : B;
}
@@ -111,14 +111,14 @@ ConstantRange::ConstantRange(const Type *Ty, bool Full) {
/// Initialize a range to hold the single specified value.
///
ConstantRange::ConstantRange(Constant *V)
- : Lower(cast<ConstantIntegral>(V)), Upper(Next(cast<ConstantIntegral>(V))) { }
+ : Lower(cast<ConstantInt>(V)), Upper(Next(cast<ConstantInt>(V))) { }
/// Initialize a range of values explicitly... this will assert out if
/// Lower==Upper and Lower != Min or Max for its type (or if the two constants
/// have different types)
///
ConstantRange::ConstantRange(Constant *L, Constant *U)
- : Lower(cast<ConstantIntegral>(L)), Upper(cast<ConstantIntegral>(U)) {
+ : Lower(cast<ConstantInt>(L)), Upper(cast<ConstantInt>(U)) {
assert(Lower->getType() == Upper->getType() &&
"Incompatible types for ConstantRange!");
@@ -130,7 +130,7 @@ ConstantRange::ConstantRange(Constant *L, Constant *U)
/// Initialize a set of values that all satisfy the condition with C.
///
-ConstantRange::ConstantRange(unsigned short ICmpOpcode, ConstantIntegral *C) {
+ConstantRange::ConstantRange(unsigned short ICmpOpcode, ConstantInt *C) {
switch (ICmpOpcode) {
default: assert(0 && "Invalid ICmp opcode to ConstantRange ctor!");
case ICmpInst::ICMP_EQ: Lower = C; Upper = Next(C); return;
@@ -195,7 +195,7 @@ bool ConstantRange::isWrappedSet(bool isSigned) const {
/// getSingleElement - If this set contains a single element, return it,
/// otherwise return null.
-ConstantIntegral *ConstantRange::getSingleElement() const {
+ConstantInt *ConstantRange::getSingleElement() const {
if (Upper == Next(Lower)) // Is it a single element range?
return Lower;
return 0;
@@ -292,8 +292,8 @@ ConstantRange ConstantRange::intersectWith(const ConstantRange &CR,
if (!isWrappedSet(isSigned)) {
if (!CR.isWrappedSet(isSigned)) {
- ConstantIntegral *L = Max(Lower, CR.Lower, isSigned);
- ConstantIntegral *U = Min(Upper, CR.Upper, isSigned);
+ ConstantInt *L = Max(Lower, CR.Lower, isSigned);
+ ConstantInt *U = Min(Upper, CR.Upper, isSigned);
if (LT(L, U, isSigned)) // If range isn't empty...
return ConstantRange(L, U);
@@ -306,8 +306,8 @@ ConstantRange ConstantRange::intersectWith(const ConstantRange &CR,
return intersect1Wrapped(*this, CR, isSigned);
else {
// Both ranges are wrapped...
- ConstantIntegral *L = Max(Lower, CR.Lower, isSigned);
- ConstantIntegral *U = Min(Upper, CR.Upper, isSigned);
+ ConstantInt *L = Max(Lower, CR.Lower, isSigned);
+ ConstantInt *U = Min(Upper, CR.Upper, isSigned);
return ConstantRange(L, U);
}
}
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index 55036a45c5..9fcbf8c75e 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -1721,8 +1721,8 @@ ComputeLoadConstantCompareIterationCount(LoadInst *LI, Constant *RHS,
// Evaluate the condition for this iteration.
Result = ConstantExpr::getICmp(predicate, Result, RHS);
- if (!isa<ConstantBool>(Result)) break; // Couldn't decide for sure
- if (cast<ConstantBool>(Result)->getValue() == false) {
+ if (!isa<ConstantInt>(Result)) break; // Couldn't decide for sure
+ if (cast<ConstantInt>(Result)->getBoolValue() == false) {
#if 0
cerr << "\n***\n*** Computed loop count " << *ItCst
<< "\n*** From global " << *GV << "*** BB: " << *L->getHeader()
@@ -1926,11 +1926,13 @@ ComputeIterationCountExhaustively(const Loop *L, Value *Cond, bool ExitWhen) {
unsigned MaxIterations = MaxBruteForceIterations; // Limit analysis.
for (Constant *PHIVal = StartCST;
IterationNum != MaxIterations; ++IterationNum) {
- ConstantBool *CondVal =
- dyn_cast_or_null<ConstantBool>(EvaluateExpression(Cond, PHIVal));
- if (!CondVal) return UnknownValue; // Couldn't symbolically evaluate.
+ ConstantInt *CondVal =
+ dyn_cast_or_null<ConstantInt>(EvaluateExpression(Cond, PHIVal));
- if (CondVal->getValue() == ExitWhen) {
+ // Couldn't symbolically evaluate.
+ if (!CondVal || CondVal->getType() != Type::BoolTy) return UnknownValue;
+
+ if (CondVal->getBoolValue() == ExitWhen) {
ConstantEvolutionLoopExitValue[PN] = PHIVal;
++NumBruteForceTripCountsComputed;
return SCEVConstant::get(ConstantInt::get(Type::Int32Ty, IterationNum));
@@ -2199,10 +2201,10 @@ SCEVHandle ScalarEvolutionsImpl::HowFarToZero(SCEV *V, const Loop *L) {
<< " sol#2: " << *R2 << "\n";
#endif
// Pick the smallest positive root value.
- if (ConstantBool *CB =
- dyn_cast<ConstantBool>(ConstantExpr::getICmp(ICmpInst::ICMP_ULT,
+ if (ConstantInt *CB =
+ dyn_cast<ConstantInt>(ConstantExpr::getICmp(ICmpInst::ICMP_ULT,
R1->getValue(), R2->getValue()))) {
- if (CB->getValue() == false)
+ if (CB->getBoolValue() == false)
std::swap(R1, R2); // R1 is the minimum root now.
// We can only use this value if the chrec ends up with an exact zero
@@ -2233,7 +2235,7 @@ SCEVHandle ScalarEvolutionsImpl::HowFarToNonZero(SCEV *V, const Loop *L) {
Constant *Zero = Constant::getNullValue(C->getValue()->getType());
Constant *NonZero =
ConstantExpr::getICmp(ICmpInst::ICMP_NE, C->getValue(), Zero);
- if (NonZero == ConstantBool::getTrue())
+ if (NonZero == ConstantInt::getTrue())
return getSCEV(Zero);
return UnknownValue; // Otherwise it will loop infinitely.
}
@@ -2424,10 +2426,10 @@ SCEVHandle SCEVAddRecExpr::getNumIterationsInRange(ConstantRange Range,
SCEVConstant *R2 = dyn_cast<SCEVConstant>(Roots.second);
if (R1) {
// Pick the smallest positive root value.
- if (ConstantBool *CB =
- dyn_cast<ConstantBool>(ConstantExpr::getICmp(ICmpInst::ICMP_ULT,
+ if (ConstantInt *CB =
+ dyn_cast<ConstantInt>(ConstantExpr::getICmp(ICmpInst::ICMP_ULT,
R1->getValue(), R2->getValue()))) {
- if (CB->getValue() == false)
+ if (CB->getBoolValue() == false)
std::swap(R1, R2); // R1 is the minimum root now.
// Make sure the root is not off by one. The returned iteration should
diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp
index 5e395db5e2..6bc113e0bc 100644
--- a/lib/Analysis/ScalarEvolutionExpander.cpp
+++ b/lib/Analysis/ScalarEvolutionExpander.cpp
@@ -143,7 +143,7 @@ Value *SCEVExpander::visitAddRecExpr(SCEVAddRecExpr *S) {
Value *F = expandInTy(S->getOperand(1), Ty);
// IF the step is by one, just return the inserted IV.
- if (ConstantIntegral *CI = dyn_cast<ConstantIntegral>(F))
+ if (ConstantInt *CI = dyn_cast<ConstantInt>(F))
if (CI->getZExtValue() == 1)
return I;
diff --git a/lib/AsmParser/ParserInternals.h b/lib/AsmParser/ParserInternals.h
index faeed1caf9..613e8ce39c 100644
--- a/lib/AsmParser/ParserInternals.h
+++ b/lib/AsmParser/ParserInternals.h
@@ -172,8 +172,8 @@ struct ValID {
case ConstUIntVal :
case ConstSIntVal : return std::string("%") + itostr(ConstPool64);
case ConstantVal:
- if (ConstantValue == ConstantBool::getTrue()) return "true";
- if (ConstantValue == ConstantBool::getFalse()) return "false";
+ if (ConstantValue == ConstantInt::getTrue()) return "true";
+ if (ConstantValue == ConstantInt::getFalse()) return "false";
return "<constant expression>";
default:
assert(0 && "Unknown value!");
diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs
index ebbffeb7ab..d1382fc5c8 100644
--- a/lib/AsmParser/llvmAsmParser.cpp.cvs
+++ b/lib/AsmParser/llvmAsmParser.cpp.cvs
@@ -338,7 +338,7 @@
/* Copy the first part of user declarations. */
-#line 14 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/developer/zsth/llvm-gcc-dev/HEAD/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
#include "ParserInternals.h"
#include "llvm/CallingConv.h"
@@ -1220,7 +1220,7 @@ Module *llvm::RunVMAsmParser(const char * AsmString, Module * M) {
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 876 "/proj/llvm/llvm-3/lib/AsmParser/llvmAsmParser.y"
+#line 876 "/developer/zsth/llvm-gcc-dev/HEAD/llvm/llvm/lib/AsmParser/llvmAsmParser.y"
typedef union YYSTYPE {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
@@ -1430,16 +1430,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 37
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1405
+#define YYLAST 1584
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 150
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 78
/* YYNRULES -- Number of rules. */
-#define YYNRULES 289
+#define YYNRULES 291
/* YYNRULES -- Number of states. */
-#define YYNSTATES 569
+#define YYNSTATES 576
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -1512,21 +1512,22 @@ static const unsigned short int yyprhs[] =
220, 222, 224, 226, 228, 230, 232, 234, 236, 239,
241, 244, 250, 256, 262, 268, 272, 275, 281, 286,
289, 291, 293, 295, 299, 301, 305, 307, 308, 310,
- 314, 319, 323, 327, 332, 337, 341, 344, 347, 350,
- 353, 356, 359, 362, 365, 368, 371, 378, 384, 393,
- 400, 407, 415, 423, 430, 437, 446, 455, 459, 461,
- 463, 465, 467, 468, 470, 473, 474, 478, 479, 483,
- 487, 489, 493, 497, 498, 504, 505, 512, 513, 520,
- 523, 527, 529, 531, 533, 537, 541, 545, 549, 553,
- 557, 559, 560, 562, 564, 566, 567, 573, 577, 579,
- 583, 585, 586, 596, 598, 600, 604, 606, 608, 611,
- 614, 615, 617, 619, 621, 623, 625, 627, 629, 631,
- 633, 637, 639, 645, 647, 649, 651, 653, 656, 659,
- 662, 666, 669, 670, 672, 675, 678, 682, 692, 702,
- 711, 726, 728, 730, 737, 743, 746, 753, 761, 765,
- 771, 772, 773, 777, 780, 782, 788, 794, 801, 808,
- 811, 816, 821, 828, 833, 838, 845, 852, 855, 864,
- 866, 868, 869, 873, 880, 884, 891, 894, 899, 906
+ 314, 319, 323, 327, 332, 337, 341, 348, 354, 357,
+ 360, 363, 366, 369, 372, 375, 378, 381, 384, 391,
+ 397, 406, 413, 420, 428, 436, 443, 450, 459, 468,
+ 472, 474, 476, 478, 480, 481, 483, 486, 487, 491,
+ 492, 496, 500, 502, 506, 510, 511, 517, 518, 525,
+ 526, 533, 536, 540, 542, 544, 546, 550, 554, 558,
+ 562, 566, 570, 572, 573, 575, 577, 579, 580, 586,
+ 590, 592, 596, 598, 599, 609, 611, 613, 617, 619,
+ 621, 624, 627, 628, 630, 632, 634, 636, 638, 640,
+ 642, 644, 646, 650, 652, 658, 660, 662, 664, 666,
+ 669, 672, 675, 679, 682, 683, 685, 688, 691, 695,
+ 705, 715, 724, 739, 741, 743, 750, 756, 759, 766,
+ 774, 778, 784, 785, 786, 790, 793, 795, 801, 807,
+ 814, 821, 824, 829, 834, 841, 846, 851, 858, 865,
+ 868, 877, 879, 881, 882, 886, 893, 897, 904, 907,
+ 912, 919
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -1566,64 +1567,65 @@ static const short int yyrhs[] =
182, 137, 177, -1, 177, 142, 185, 144, -1, 177,
142, 144, -1, 177, 149, 20, -1, 177, 145, 185,
146, -1, 177, 147, 185, 148, -1, 177, 147, 148,
- -1, 177, 35, -1, 177, 36, -1, 177, 212, -1,
- 177, 184, -1, 177, 22, -1, 158, 3, -1, 158,
- 4, -1, 9, 23, -1, 9, 24, -1, 159, 7,
- -1, 154, 140, 183, 33, 177, 141, -1, 113, 140,
- 183, 223, 141, -1, 127, 140, 183, 137, 183, 137,
- 183, 141, -1, 152, 140, 183, 137, 183, 141, -1,
- 153, 140, 183, 137, 183, 141, -1, 86, 156, 140,
- 183, 137, 183, 141, -1, 87, 157, 140, 183, 137,
- 183, 141, -1, 155, 140, 183, 137, 183, 141, -1,
- 132, 140, 183, 137, 183, 141, -1, 133, 140, 183,
- 137, 183, 137, 183, 141, -1, 134, 140, 183, 137,
- 183, 137, 183, 141, -1, 185, 137, 183, -1, 183,
- -1, 29, -1, 30, -1, 188, -1, -1, 189, -1,
- 188, 189, -1, -1, 28, 190, 208, -1, -1, 27,
- 191, 209, -1, 58, 57, 195, -1, 21, -1, 160,
- 17, 177, -1, 160, 17, 8, -1, -1, 160, 186,
- 183, 192, 174, -1, -1, 160, 161, 186, 183, 193,
- 174, -1, -1, 160, 162, 186, 177, 194, 174, -1,
- 47, 197, -1, 54, 136, 198, -1, 20, -1, 52,
- -1, 51, -1, 49, 136, 196, -1, 50, 136, 4,
- -1, 48, 136, 20, -1, 67, 136, 20, -1, 142,
- 199, 144, -1, 199, 137, 20, -1, 20, -1, -1,
- 18, -1, 20, -1, 200, -1, -1, 202, 137, 177,
- 167, 201, -1, 177, 167, 201, -1, 202, -1, 202,
- 137, 34, -1, 34, -1, -1, 165, 179, 200, 140,
- 203, 141, 169, 173, 170, -1, 25, -1, 147, -1,
- 164, 204, 205, -1, 26, -1, 148, -1, 215, 207,
- -1, 163, 204, -1, -1, 59, -1, 3, -1, 4,
- -1, 7, -1, 23, -1, 24, -1, 35, -1, 36,
- -1, 22, -1, 145, 185, 146, -1, 184, -1, 57,
- 210, 20, 137, 20, -1, 151, -1, 200, -1, 212,
- -1, 211, -1, 177, 213, -1, 215, 216, -1, 206,
- 216, -1, 217, 160, 218, -1, 217, 220, -1, -1,
- 19, -1, 68, 214, -1, 68, 8, -1, 69, 16,
- 213, -1, 69, 9, 213, 137, 16, 213, 137, 16,
- 213, -1, 70, 158, 213, 137, 16, 213, 142, 219,
- 144, -1, 70, 158, 213, 137, 16, 213, 142, 144,
- -1, 71, 165, 179, 213, 140, 222, 141, 169, 33,
- 16, 213, 72, 16, 213, -1, 72, -1, 73, -1,
- 219, 158, 211, 137, 16, 213, -1, 158, 211, 137,
- 16, 213, -1, 160, 225, -1, 177, 142, 213, 137,
- 213, 144, -1, 221, 137, 142, 213, 137, 213, 144,
- -1, 177, 213, 167, -1, 222, 137, 177, 213, 167,
- -1, -1, -1, 223, 137, 214, -1, 56, 55, -1,
- 55, -1, 152, 177, 213, 137, 213, -1, 153, 177,
- 213, 137, 213, -1, 86, 156, 177, 213, 137, 213,
- -1, 87, 157, 177, 213, 137, 213, -1, 45, 214,
- -1, 155, 214, 137, 214, -1, 154, 214, 33, 177,
- -1, 127, 214, 137, 214, 137, 214, -1, 131, 214,
- 137, 177, -1, 132, 214, 137, 214, -1, 133, 214,
- 137, 214, 137, 214, -1, 134, 214, 137, 214, 137,
- 214, -1, 126, 221, -1, 224, 165, 179, 213, 140,
- 222, 141, 169, -1, 227, -1, 32, -1, -1, 108,
- 177, 171, -1, 108, 177, 137, 12, 213, 171, -1,
- 109, 177, 171, -1, 109, 177, 137, 12, 213, 171,
- -1, 110, 214, -1, 226, 111, 177, 213, -1, 226,
- 112, 214, 137, 177, 213, -1, 113, 177, 213, 223,
- -1
+ -1, 177, 145, 147, 185, 148, 146, -1, 177, 145,
+ 147, 148, 146, -1, 177, 35, -1, 177, 36, -1,
+ 177, 212, -1, 177, 184, -1, 177, 22, -1, 158,
+ 3, -1, 158, 4, -1, 9, 23, -1, 9, 24,
+ -1, 159, 7, -1, 154, 140, 183, 33, 177, 141,
+ -1, 113, 140, 183, 223, 141, -1, 127, 140, 183,
+ 137, 183, 137, 183, 141, -1, 152, 140, 183, 137,
+ 183, 141, -1, 153, 140, 183, 137, 183, 141, -1,
+ 86, 156, 140, 183, 137, 183, 141, -1, 87, 157,
+ 140, 183, 137, 183, 141, -1, 155, 140, 183, 137,
+ 183, 141, -1, 132, 140, 183, 137, 183, 141, -1,
+ 133, 140, 183, 137, 183, 137, 183, 141, -1, 134,
+ 140, 183, 137, 183, 137, 183, 141, -1, 185, 137,
+ 183, -1, 183, -1, 29, -1, 30, -1, 188, -1,
+ -1, 189, -1, 188, 189, -1, -1, 28, 190, 208,
+ -1, -1, 27, 191, 209, -1, 58, 57, 195, -1,
+ 21, -1, 160, 17, 177, -1, 160, 17, 8, -1,
+ -1, 160, 186, 183, 192, 174, -1, -1, 160, 161,
+ 186, 183, 193, 174, -1, -1, 160, 162, 186, 177,
+ 194, 174, -1, 47, 197, -1, 54, 136, 198, -1,
+ 20, -1, 52, -1, 51, -1, 49, 136, 196, -1,
+ 50, 136, 4, -1, 48, 136, 20, -1, 67, 136,
+ 20, -1, 142, 199, 144, -1, 199, 137, 20, -1,
+ 20, -1, -1, 18, -1, 20, -1, 200, -1, -1,
+ 202, 137, 177, 167, 201, -1, 177, 167, 201, -1,
+ 202, -1, 202, 137, 34, -1, 34, -1, -1, 165,
+ 179, 200, 140, 203, 141, 169, 173, 170, -1, 25,
+ -1, 147, -1, 164, 204, 205, -1, 26, -1, 148,
+ -1, 215, 207, -1, 163, 204, -1, -1, 59, -1,
+ 3, -1, 4, -1, 7, -1, 23, -1, 24, -1,
+ 35, -1, 36, -1, 22, -1, 145, 185, 146, -1,
+ 184, -1, 57, 210, 20, 137, 20, -1, 151, -1,
+ 200, -1, 212, -1, 211, -1, 177, 213, -1, 215,
+ 216, -1, 206, 216, -1, 217, 160, 218, -1, 217,
+ 220, -1, -1, 19, -1, 68, 214, -1, 68, 8,
+ -1, 69, 16, 213, -1, 69, 9, 213, 137, 16,
+ 213, 137, 16, 213, -1, 70, 158, 213, 137, 16,
+ 213, 142, 219, 144, -1, 70, 158, 213, 137, 16,
+ 213, 142, 144, -1, 71, 165, 179, 213, 140, 222,
+ 141, 169, 33, 16, 213, 72, 16, 213, -1, 72,
+ -1, 73, -1, 219, 158, 211, 137, 16, 213, -1,
+ 158, 211, 137, 16, 213, -1, 160, 225, -1, 177,
+ 142, 213, 137, 213, 144, -1, 221, 137, 142, 213,
+ 137, 213, 144, -1, 177, 213, 167, -1, 222, 137,
+ 177, 213, 167, -1, -1, -1, 223, 137, 214, -1,
+ 56, 55, -1, 55, -1, 152, 177, 213, 137, 213,
+ -1, 153, 177, 213, 137, 213, -1, 86, 156, 177,
+ 213, 137, 213, -1, 87, 157, 177, 213, 137, 213,
+ -1, 45, 214, -1, 155, 214, 137, 214, -1, 154,
+ 214, 33, 177, -1, 127, 214, 137, 214, 137, 214,
+ -1, 131, 214, 137, 177, -1, 132, 214, 137, 214,
+ -1, 133, 214, 137, 214, 137, 214, -1, 134, 214,
+ 137, 214, 137, 214, -1, 126, 221, -1, 224, 165,
+ 179, 213, 140, 222, 141, 169, -1, 227, -1, 32,
+ -1, -1, 108, 177, 171, -1, 108, 177, 137, 12,
+ 213, 171, -1, 109, 177, 171, -1, 109, 177, 137,
+ 12, 213, 171, -1, 110, 214, -1, 226, 111, 177,
+ 213, -1, 226, 112, 214, 137, 177, 213, -1, 113,
+ 177, 213, 223, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -1643,21 +1645,22 @@ static const unsigned short int yyrline[] =
1184, 1184, 1184, 1184, 1184, 1184, 1187, 1191, 1195, 1202,
1207, 1215, 1233, 1251, 1256, 1268, 1278, 1282, 1292, 1299,
1306, 1313, 1318, 1323, 1330, 1331, 1338, 1345, 1353, 1358,
- 1369, 1397, 1413, 1442, 1470, 1491, 1506, 1518, 1525, 1588,
- 1598, 1608, 1614, 1620, 1624, 1628, 1636, 1650, 1671, 1679,
- 1685, 1696, 1701, 1706, 1715, 1721, 1727, 1736, 1740, 1748,
- 1748, 1759, 1764, 1772, 1773, 1777, 1777, 1781, 1781, 1784,
- 1787, 1799, 1823, 1834, 1834, 1843, 1843, 1851, 1851, 1861,
- 1864, 1870, 1883, 1884, 1886, 1890, 1899, 1903, 1908, 1910,
- 1915, 1920, 1929, 1929, 1930, 1930, 1932, 1942, 1953, 1957,
- 1966, 1975, 1980, 2085, 2085, 2087, 2095, 2095, 2097, 2102,
- 2113, 2117, 2122, 2126, 2130, 2134, 2138, 2142, 2146, 2150,
- 2154, 2179, 2183, 2197, 2201, 2207, 2207, 2213, 2222, 2226,
- 2235, 2246, 2255, 2267, 2280, 2284, 2288, 2293, 2302, 2321,
- 2330, 2397, 2401, 2408, 2419, 2432, 2441, 2452, 2462, 2470,
- 2478, 2481, 2482, 2489, 2493, 2498, 2519, 2536, 2549, 2562,
- 2575, 2584, 2597, 2605, 2612, 2618, 2624, 2630, 2645, 2708,
- 2713, 2717, 2724, 2731, 2739, 2746, 2754, 2762, 2776, 2793
+ 1369, 1397, 1413, 1442, 1470, 1495, 1514, 1539, 1558, 1570,
+ 1577, 1640, 1650, 1660, 1666, 1672, 1676, 1680, 1688, 1702,
+ 1723, 1731, 1737, 1748, 1753, 1758, 1767, 1773, 1779, 1788,
+ 1792, 1800, 1800, 1811, 1816, 1824, 1825, 1829, 1829, 1833,
+ 1833, 1836, 1839, 1851, 1875, 1886, 1886, 1895, 1895, 1903,
+ 1903, 1913, 1916, 1922, 1935, 1936, 1938, 1942, 1951, 1955,
+ 1960, 1962, 1967, 1972, 1981, 1981, 1982, 1982, 1984, 1994,
+ 2005, 2009, 2018, 2027, 2032, 2137, 2137, 2139, 2147, 2147,
+ 2149, 2154, 2165, 2169, 2174, 2178, 2182, 2186, 2190, 2194,
+ 2198, 2202, 2206, 2231, 2235, 2249, 2253, 2259, 2259, 2265,
+ 2274, 2278, 2287, 2298, 2307, 2319, 2332, 2336, 2340, 2345,
+ 2354, 2373, 2382, 2449, 2453, 2460, 2471, 2484, 2493, 2504,
+ 2514, 2522, 2530, 2533, 2534, 2541, 2545, 2550, 2571, 2588,
+ 2601, 2614, 2627, 2636, 2649, 2657, 2664, 2670, 2676, 2682,
+ 2697, 2760, 2765, 2769, 2776, 2783, 2791, 2798, 2806, 2814,
+ 2828, 2845
};
#endif
@@ -1748,20 +1751,21 @@ static const unsigned char yyr1[] =
177, 177, 177, 177, 177, 177, 177, 177, 177, 178,
179, 179, 180, 180, 181, 181, 181, 181, 182, 182,
183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 184, 184, 184, 184,
- 184, 184, 184, 184, 184, 184, 184, 185, 185, 186,
- 186, 187, 187, 188, 188, 190, 189, 191, 189, 189,
- 189, 189, 189, 192, 189, 193, 189, 194, 189, 189,
- 189, 195, 196, 196, 197, 197, 197, 197, 198, 199,
- 199, 199, 200, 200, 201, 201, 202, 202, 203, 203,
- 203, 203, 204, 205, 205, 206, 207, 207, 208, 209,
- 210, 210, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 212, 212, 213, 213, 214, 215, 215,
- 216, 217, 217, 217, 218, 218, 218, 218, 218, 218,
- 218, 218, 218, 219, 219, 220, 221, 221, 222, 222,
- 222, 223, 223, 224, 224, 225, 225, 225, 225, 225,
+ 183, 183, 183, 183, 183, 183, 183, 183, 184, 184,
+ 184, 184, 184, 184, 184, 184, 184, 184, 184, 185,
+ 185, 186, 186, 187, 187, 188, 188, 190, 189, 19