Changes to move to jb-mr2 based llvm

Change-Id: Iae8b2164f25146807662a6025a254fec6d40bb52
diff --git a/src/compiler/llvm/intrinsic_helper.cc b/src/compiler/llvm/intrinsic_helper.cc
index ac34f70..a34cb33 100644
--- a/src/compiler/llvm/intrinsic_helper.cc
+++ b/src/compiler/llvm/intrinsic_helper.cc
@@ -18,10 +18,11 @@
 
 #include "ir_builder.h"
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/IRBuilder.h>
-#include <llvm/Intrinsics.h>
+#include <llvm/IR/Attributes.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/IRBuilder.h>
+#include <llvm/IR/Intrinsics.h>
 
 namespace art {
 namespace llvm {
@@ -136,10 +137,14 @@
                                                     ::llvm::Function::ExternalLinkage,
                                                      info.name_, &module);
 
-    fn->setOnlyReadsMemory(info.attr_ & kAttrReadOnly);
-    fn->setDoesNotAccessMemory(info.attr_ & kAttrReadNone);
+    if (info.attr_ & kAttrReadOnly) {
+        fn->setOnlyReadsMemory();
+    }
+    if (info.attr_ & kAttrReadNone) {
+        fn->setDoesNotAccessMemory();
+    }
     // None of the intrinsics throws exception
-    fn->setDoesNotThrow(true);
+    fn->setDoesNotThrow();
 
     intrinsic_funcs_[id] = fn;
 
@@ -150,8 +155,13 @@
     for (::llvm::Function::arg_iterator arg_iter = fn->arg_begin(),
             arg_end = fn->arg_end(); arg_iter != arg_end; arg_iter++) {
       if (arg_iter->getType()->isPointerTy()) {
-        arg_iter->addAttr(::llvm::Attribute::NoCapture);
-        arg_iter->addAttr(::llvm::Attribute::NoAlias);
+        std::vector< ::llvm::Attribute::AttrKind> attributes;
+        attributes.push_back(::llvm::Attribute::NoCapture);
+        attributes.push_back(::llvm::Attribute::NoAlias);
+        ::llvm::AttributeSet attribute_set = ::llvm::AttributeSet::get(fn->getContext(),
+                                                                       arg_iter->getArgNo(),
+                                                                       attributes);
+        arg_iter->addAttr(attribute_set);
       }
     }