Update LLVM (#762)

* Fix uses of attribute list
diff --git a/deps.json b/deps.json
index 3e0a20e..7efed3a 100644
--- a/deps.json
+++ b/deps.json
@@ -6,7 +6,7 @@
       "subrepo" : "llvm/llvm-project",
       "branch" : "main",
       "subdir" : "third_party/llvm",
-      "commit" : "45ac5f5441818afa1b0ee4a3734583c8cc915a79"
+      "commit" : "dea76ccaf40f1762915213d0ea91d0c707705683"
     },
     {
       "name" : "SPIRV-Headers",
diff --git a/lib/ClusterPodKernelArgumentsPass.cpp b/lib/ClusterPodKernelArgumentsPass.cpp
index e5d6153..ff7c137 100644
--- a/lib/ClusterPodKernelArgumentsPass.cpp
+++ b/lib/ClusterPodKernelArgumentsPass.cpp
@@ -266,10 +266,10 @@
     SmallVector<std::pair<unsigned, AttributeSet>, 8> AttrBuildInfo;
 
     // Return attributes have to come first
-    if (Attributes.hasAttributes(AttributeList::ReturnIndex)) {
+    const auto retAttrs = Attributes.getRetAttrs();
+    if (retAttrs.hasAttributes()) {
       auto idx = AttributeList::ReturnIndex;
-      auto attrs = Attributes.getRetAttrs();
-      AttrBuildInfo.push_back(std::make_pair(idx, attrs));
+      AttrBuildInfo.push_back(std::make_pair(idx, retAttrs));
     }
 
     // Then attributes for non-POD parameters
@@ -285,10 +285,10 @@
     }
 
     // And finally function attributes.
-    if (Attributes.hasAttributes(AttributeList::FunctionIndex)) {
+    const auto fnAttrs = Attributes.getFnAttrs();
+    if (fnAttrs.hasAttributes()) {
       auto idx = AttributeList::FunctionIndex;
-      auto attrs = Attributes.getFnAttrs();
-      AttrBuildInfo.push_back(std::make_pair(idx, attrs));
+      AttrBuildInfo.push_back(std::make_pair(idx, fnAttrs));
     }
     auto newAttributes = AttributeList::get(M.getContext(), AttrBuildInfo);
     NewFunc->setAttributes(newAttributes);
diff --git a/lib/UndoSRetPass.cpp b/lib/UndoSRetPass.cpp
index d6b3e19..9ae7f76 100644
--- a/lib/UndoSRetPass.cpp
+++ b/lib/UndoSRetPass.cpp
@@ -158,9 +158,9 @@
             AttributeList new_attrs(
                 AttributeList::get(Context, AttributeList::FunctionIndex,
                                    AttrBuilder(attrs.getFnAttrs())));
-            new_attrs =
-                new_attrs.addAttributes(Context, AttributeList::ReturnIndex,
-                                        AttrBuilder(attrs.getRetAttrs()));
+            new_attrs = new_attrs.addAttributesAtIndex(
+                Context, AttributeList::ReturnIndex,
+                AttrBuilder(attrs.getRetAttrs()));
             for (unsigned i = 1; i < Call->getNumArgOperands(); i++) {
               new_attrs = new_attrs.addParamAttributes(
                   Context, i - 1, AttrBuilder(attrs.getParamAttrs(i)));