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 =