Integrate LLVM at llvm/llvm-project@173fd67a124d

Updates LLVM usage to match
[173fd67a124d](https://github.com/llvm/llvm-project/commit/173fd67a124d)

PiperOrigin-RevId: 570825329
Change-Id: I792b549c55ddbfedcd23ab376a6ff68b1f6f1c31
diff --git a/lifetime_analysis/object_repository.cc b/lifetime_analysis/object_repository.cc
index 1eeb71c..68cee7f 100644
--- a/lifetime_analysis/object_repository.cc
+++ b/lifetime_analysis/object_repository.cc
@@ -483,7 +483,8 @@
   if (method_decl) {
     if (!method_decl->isStatic()) {
       object_repository.this_object_ = object_repository.CreateObject(
-          method_decl->getThisObjectType(), Lifetime::CreateVariable(),
+          method_decl->getFunctionObjectParameterType(),
+          Lifetime::CreateVariable(),
           [](const clang::Expr*) { return Lifetime::CreateVariable(); });
     }
   }
diff --git a/lifetime_annotations/function_lifetimes.cc b/lifetime_annotations/function_lifetimes.cc
index 6ab6851..0f682dd 100644
--- a/lifetime_annotations/function_lifetimes.cc
+++ b/lifetime_annotations/function_lifetimes.cc
@@ -100,7 +100,7 @@
   ret.this_lifetimes_ = ValueLifetimes::ForPointerLikeType(
       method->getThisType(),
       this_lifetimes_.value().GetPointeeLifetimes().GetFieldOrBaseLifetimes(
-          method->getThisObjectType(), {}));
+          method->getFunctionObjectParameterType(), {}));
   assert(ret.IsValidForDecl(method));
   return ret;
 }
diff --git a/rs_bindings_from_cc/importer.cc b/rs_bindings_from_cc/importer.cc
index 92feccb..323be7b 100644
--- a/rs_bindings_from_cc/importer.cc
+++ b/rs_bindings_from_cc/importer.cc
@@ -992,7 +992,7 @@
     // upcast thunks.
     llvm::SmallString<128> storage;
     llvm::raw_svector_ostream buffer(storage);
-    mangler_->mangleTypeName(ctx_.getRecordType(record_decl), buffer);
+    mangler_->mangleCanonicalTypeName(ctx_.getRecordType(record_decl), buffer);
 
     // The Itanium mangler does not provide a way to get the mangled
     // representation of a type. Instead, we call mangleTypeName() that