From ed4a2f168873527e1737deaa7a0c6c045a2cff7d Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Thu, 22 Nov 2007 20:23:04 +0000 Subject: [PATCH] Rename the 'const' parameter attribute to 'readnone', and the 'pure' parameter attribute to 'readonly'. Names suggested by DannyB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44273 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 12 ++++++------ include/llvm/ParameterAttributes.h | 4 ++-- lib/AsmParser/LLLexer.cpp | 4 ++-- lib/AsmParser/llvmAsmParser.y | 6 +++--- lib/VMCore/Function.cpp | 8 ++++---- lib/VMCore/Verifier.cpp | 4 ++-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/LangRef.html b/docs/LangRef.html index 9c4bbf094d3..0c2f8ca8c13 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -813,13 +813,13 @@ a power of 2.

nest
This indicates that the parameter can be excised using the trampoline intrinsics.
-
pure
+
readonly
This function attribute indicates that the function has no side-effects - except for producing a return value. The value returned must only depend on - the function arguments and/or global variables. It may use values obtained - by dereferencing pointers.
-
const
-
A const function has the same restrictions as a pure + except for producing a return value or throwing an exception. The value + returned must only depend on the function arguments and/or global variables. + It may use values obtained by dereferencing pointers.
+
readnone
+
A readnone function has the same restrictions as a readonly function, but in addition it is not allowed to dereference any pointer arguments or global variables. diff --git a/include/llvm/ParameterAttributes.h b/include/llvm/ParameterAttributes.h index 5d3ef9aba72..4c48d8707fb 100644 --- a/include/llvm/ParameterAttributes.h +++ b/include/llvm/ParameterAttributes.h @@ -39,8 +39,8 @@ enum Attributes { NoAlias = 1 << 6, ///< Considered to not alias after call ByVal = 1 << 7, ///< Pass structure by value Nest = 1 << 8, ///< Nested function static chain - Pure = 1 << 9, ///< Function is pure - Const = 1 << 10 ///< Function is const + ReadNone = 1 << 9, ///< Function does not access memory + ReadOnly = 1 << 10 ///< Function only reads from memory }; } diff --git a/lib/AsmParser/LLLexer.cpp b/lib/AsmParser/LLLexer.cpp index 27798be618e..5b1f0740dce 100644 --- a/lib/AsmParser/LLLexer.cpp +++ b/lib/AsmParser/LLLexer.cpp @@ -484,8 +484,8 @@ int LLLexer::LexIdentifier() { KEYWORD("noalias", NOALIAS); KEYWORD("byval", BYVAL); KEYWORD("nest", NEST); - KEYWORD("pure", PURE); - KEYWORD("const", CONST); + KEYWORD("readnone", READNONE); + KEYWORD("readonly", READONLY); KEYWORD("type", TYPE); KEYWORD("opaque", OPAQUE); diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y index 599300d30f5..a1373ce18da 100644 --- a/lib/AsmParser/llvmAsmParser.y +++ b/lib/AsmParser/llvmAsmParser.y @@ -1090,7 +1090,7 @@ Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) { // Function Attributes %token SIGNEXT ZEROEXT NORETURN INREG SRET NOUNWIND NOALIAS BYVAL NEST -%token CONST PURE +%token READNONE READONLY // Visibility Styles %token DEFAULT HIDDEN PROTECTED @@ -1234,8 +1234,8 @@ FuncAttr : NORETURN { $$ = ParamAttr::NoReturn; } | NOUNWIND { $$ = ParamAttr::NoUnwind; } | ZEROEXT { $$ = ParamAttr::ZExt; } | SIGNEXT { $$ = ParamAttr::SExt; } - | PURE { $$ = ParamAttr::Pure; } - | CONST { $$ = ParamAttr::Const; } + | READNONE { $$ = ParamAttr::ReadNone; } + | READONLY { $$ = ParamAttr::ReadOnly; } ; OptFuncAttrs : /* empty */ { $$ = ParamAttr::None; } diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index a011aaea338..6c293718626 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -108,10 +108,10 @@ ParamAttrsList::getParamAttrsText(uint16_t Attrs) { Result += "byval "; if (Attrs & ParamAttr::Nest) Result += "nest "; - if (Attrs & ParamAttr::Pure) - Result += "pure "; - if (Attrs & ParamAttr::Const) - Result += "const "; + if (Attrs & ParamAttr::ReadNone) + Result += "readnone "; + if (Attrs & ParamAttr::ReadOnly) + Result += "readonly "; return Result; } diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 6597af101c0..1f726afa5d7 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -399,7 +399,7 @@ void Verifier::visitFunction(Function &F) { const uint16_t ParameterIncompatible = ParamAttr::NoReturn | ParamAttr::NoUnwind | - ParamAttr::Const | ParamAttr::Pure; + ParamAttr::ReadNone | ParamAttr::ReadOnly; const uint16_t MutuallyIncompatible[3] = { ParamAttr::ByVal | ParamAttr::InReg | @@ -407,7 +407,7 @@ void Verifier::visitFunction(Function &F) { ParamAttr::ZExt | ParamAttr::SExt, - ParamAttr::Pure | ParamAttr::Const + ParamAttr::ReadNone | ParamAttr::ReadOnly }; const uint16_t IntegerTypeOnly =