Rename the new unsigned and signed keywords to nuw and nsw,
which stand for no-unsigned-wrap and no-signed-wrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76810 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/LLLexer.cpp b/lib/AsmParser/LLLexer.cpp
index 313213c..e047002 100644
--- a/lib/AsmParser/LLLexer.cpp
+++ b/lib/AsmParser/LLLexer.cpp
@@ -501,8 +501,8 @@
KEYWORD(deplibs);
KEYWORD(datalayout);
KEYWORD(volatile);
- KEYWORD(signed);
- KEYWORD(unsigned);
+ KEYWORD(nuw);
+ KEYWORD(nsw);
KEYWORD(exact);
KEYWORD(align);
KEYWORD(addrspace);
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp
index 9f708a8..bb92b16 100644
--- a/lib/AsmParser/LLParser.cpp
+++ b/lib/AsmParser/LLParser.cpp
@@ -2045,26 +2045,9 @@
ID.Kind = ValID::t_Constant;
return false;
}
- case lltok::kw_signed: {
+ case lltok::kw_nuw: {
Lex.Lex();
- bool AlsoUnsigned = EatIfPresent(lltok::kw_unsigned);
- if (Lex.getKind() != lltok::kw_add &&
- Lex.getKind() != lltok::kw_sub &&
- Lex.getKind() != lltok::kw_mul)
- return TokError("expected 'add', 'sub', or 'mul'");
- bool Result = LLParser::ParseValID(ID);
- if (!Result) {
- cast<OverflowingBinaryOperator>(ID.ConstantVal)
- ->setHasNoSignedOverflow(true);
- if (AlsoUnsigned)
- cast<OverflowingBinaryOperator>(ID.ConstantVal)
- ->setHasNoUnsignedOverflow(true);
- }
- return Result;
- }
- case lltok::kw_unsigned: {
- Lex.Lex();
- bool AlsoSigned = EatIfPresent(lltok::kw_signed);
+ bool AlsoSigned = EatIfPresent(lltok::kw_nsw);
if (Lex.getKind() != lltok::kw_add &&
Lex.getKind() != lltok::kw_sub &&
Lex.getKind() != lltok::kw_mul)
@@ -2079,6 +2062,23 @@
}
return Result;
}
+ case lltok::kw_nsw: {
+ Lex.Lex();
+ bool AlsoUnsigned = EatIfPresent(lltok::kw_nuw);
+ if (Lex.getKind() != lltok::kw_add &&
+ Lex.getKind() != lltok::kw_sub &&
+ Lex.getKind() != lltok::kw_mul)
+ return TokError("expected 'add', 'sub', or 'mul'");
+ bool Result = LLParser::ParseValID(ID);
+ if (!Result) {
+ cast<OverflowingBinaryOperator>(ID.ConstantVal)
+ ->setHasNoSignedOverflow(true);
+ if (AlsoUnsigned)
+ cast<OverflowingBinaryOperator>(ID.ConstantVal)
+ ->setHasNoUnsignedOverflow(true);
+ }
+ return Result;
+ }
case lltok::kw_exact: {
Lex.Lex();
if (Lex.getKind() != lltok::kw_sdiv)
@@ -2609,8 +2609,8 @@
return ParseStore(Inst, PFS, true);
else
return TokError("expected 'load' or 'store'");
- case lltok::kw_signed: {
- bool AlsoUnsigned = EatIfPresent(lltok::kw_unsigned);
+ case lltok::kw_nuw: {
+ bool AlsoSigned = EatIfPresent(lltok::kw_nsw);
if (Lex.getKind() == lltok::kw_add ||
Lex.getKind() == lltok::kw_sub ||
Lex.getKind() == lltok::kw_mul) {
@@ -2618,16 +2618,16 @@
KeywordVal = Lex.getUIntVal();
bool Result = ParseArithmetic(Inst, PFS, KeywordVal, 0);
if (!Result) {
- cast<OverflowingBinaryOperator>(Inst)->setHasNoSignedOverflow(true);
- if (AlsoUnsigned)
- cast<OverflowingBinaryOperator>(Inst)->setHasNoUnsignedOverflow(true);
+ cast<OverflowingBinaryOperator>(Inst)->setHasNoUnsignedOverflow(true);
+ if (AlsoSigned)
+ cast<OverflowingBinaryOperator>(Inst)->setHasNoSignedOverflow(true);
}
return Result;
}
return TokError("expected 'add', 'sub', or 'mul'");
}
- case lltok::kw_unsigned: {
- bool AlsoSigned = EatIfPresent(lltok::kw_signed);
+ case lltok::kw_nsw: {
+ bool AlsoUnsigned = EatIfPresent(lltok::kw_nuw);
if (Lex.getKind() == lltok::kw_add ||
Lex.getKind() == lltok::kw_sub ||
Lex.getKind() == lltok::kw_mul) {
@@ -2635,9 +2635,9 @@
KeywordVal = Lex.getUIntVal();
bool Result = ParseArithmetic(Inst, PFS, KeywordVal, 1);
if (!Result) {
- cast<OverflowingBinaryOperator>(Inst)->setHasNoUnsignedOverflow(true);
- if (AlsoSigned)
- cast<OverflowingBinaryOperator>(Inst)->setHasNoSignedOverflow(true);
+ cast<OverflowingBinaryOperator>(Inst)->setHasNoSignedOverflow(true);
+ if (AlsoUnsigned)
+ cast<OverflowingBinaryOperator>(Inst)->setHasNoUnsignedOverflow(true);
}
return Result;
}
diff --git a/lib/AsmParser/LLToken.h b/lib/AsmParser/LLToken.h
index b78a09d..c8cdff6 100644
--- a/lib/AsmParser/LLToken.h
+++ b/lib/AsmParser/LLToken.h
@@ -51,8 +51,8 @@
kw_deplibs,
kw_datalayout,
kw_volatile,
- kw_signed,
- kw_unsigned,
+ kw_nuw,
+ kw_nsw,
kw_exact,
kw_align,
kw_addrspace,