diff --git a/include/llvm/ParameterAttributes.h b/include/llvm/ParameterAttributes.h
index e2890f5..5d3ef9a 100644
--- a/include/llvm/ParameterAttributes.h
+++ b/include/llvm/ParameterAttributes.h
@@ -29,16 +29,18 @@
 /// results.
 /// @brief Function parameter attributes.
 enum Attributes {
-  None       = 0,      ///< No attributes have been set
-  ZExt       = 1 << 0, ///< Zero extended before/after call
-  SExt       = 1 << 1, ///< Sign extended before/after call
-  NoReturn   = 1 << 2, ///< Mark the function as not returning
-  InReg      = 1 << 3, ///< Force argument to be passed in register
-  StructRet  = 1 << 4, ///< Hidden pointer to structure to return
-  NoUnwind   = 1 << 5, ///< Function doesn't unwind stack
-  NoAlias    = 1 << 6, ///< Considered to not alias after call
-  ByVal      = 1 << 7, ///< Pass structure by value
-  Nest       = 1 << 8  ///< Nested function static chain
+  None       = 0,       ///< No attributes have been set
+  ZExt       = 1 << 0,  ///< Zero extended before/after call
+  SExt       = 1 << 1,  ///< Sign extended before/after call
+  NoReturn   = 1 << 2,  ///< Mark the function as not returning
+  InReg      = 1 << 3,  ///< Force argument to be passed in register
+  StructRet  = 1 << 4,  ///< Hidden pointer to structure to return
+  NoUnwind   = 1 << 5,  ///< Function doesn't unwind stack
+  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
 };
 
 }
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 0591cd9..98a21ca 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -275,6 +275,8 @@
 noalias         { return NOALIAS; }
 byval           { return BYVAL; }
 nest            { return NEST; }
+pure            { return PURE; }
+const           { return CONST; }
 sext{WSNL}      { // For auto-upgrade only, drop in LLVM 3.0 
                   return SIGNEXT; } 
 zext{WSNL}      { // For auto-upgrade only, drop in LLVM 3.0
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index f1c385f..4c9bed0 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1113,6 +1113,7 @@
 
 // Function Attributes
 %token SIGNEXT ZEROEXT NORETURN INREG SRET NOUNWIND NOALIAS BYVAL NEST
+%token CONST PURE
 
 // Visibility Styles
 %token DEFAULT HIDDEN PROTECTED
@@ -1256,6 +1257,8 @@
               | NOUNWIND { $$ = ParamAttr::NoUnwind; }
               | ZEROEXT  { $$ = ParamAttr::ZExt;     }
               | SIGNEXT  { $$ = ParamAttr::SExt;     }
+              | PURE     { $$ = ParamAttr::Pure;     }
+              | CONST    { $$ = ParamAttr::Const;    }
               ;
 
 OptFuncAttrs  : /* empty */ { $$ = ParamAttr::None; }
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp
index 3582b32..3256d5b 100644
--- a/lib/VMCore/Function.cpp
+++ b/lib/VMCore/Function.cpp
@@ -108,6 +108,10 @@
     Result += "byval ";
   if (Attrs & ParamAttr::Nest)
     Result += "nest ";
+  if (Attrs & ParamAttr::Pure)
+    Result += "pure ";
+  if (Attrs & ParamAttr::Const)
+    Result += "const ";  
   return Result;
 }
 
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index dea9408..09a7adc 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -398,7 +398,8 @@
     ParamAttr::Nest  | ParamAttr::StructRet;
 
   const uint16_t ParameterIncompatible =
-    ParamAttr::NoReturn | ParamAttr::NoUnwind;
+    ParamAttr::NoReturn | ParamAttr::NoUnwind |
+    ParamAttr::Const    | ParamAttr::Pure;
 
   const uint16_t MutuallyIncompatible =
     ParamAttr::ByVal | ParamAttr::InReg |
@@ -407,6 +408,9 @@
   const uint16_t MutuallyIncompatible2 =
     ParamAttr::ZExt | ParamAttr::SExt;
 
+  const uint16_t MutuallyIncompatible3 =
+    ParamAttr::Pure | ParamAttr::Const;
+
   const uint16_t IntegerTypeOnly =
     ParamAttr::SExt | ParamAttr::ZExt;
 
@@ -423,9 +427,14 @@
     uint16_t RetI = Attrs->getParamAttrs(0) & ReturnIncompatible;
     Assert1(!RetI, "Attribute " + Attrs->getParamAttrsText(RetI) +
             "should not apply to functions!", &F);
-    uint16_t MutI = Attrs->getParamAttrs(0) & MutuallyIncompatible2;
-    Assert1(MutI != MutuallyIncompatible2, "Attributes" + 
-            Attrs->getParamAttrsText(MutI) + "are incompatible!", &F);
+
+    uint16_t MutI2 = Attrs->getParamAttrs(0) & MutuallyIncompatible2;
+    Assert1(MutI2 != MutuallyIncompatible2, "Attributes" + 
+            Attrs->getParamAttrsText(MutI2) + "are incompatible!", &F);
+
+    uint16_t MutI3 = Attrs->getParamAttrs(0) & MutuallyIncompatible3;
+    Assert1(MutI3 != MutuallyIncompatible3, "Attributes" + 
+            Attrs->getParamAttrsText(MutI3) + "are incompatible!", &F);
 
     for (FunctionType::param_iterator I = FT->param_begin(), 
          E = FT->param_end(); I != E; ++I, ++Idx) {
