diff --git a/compiler/src/iree/compiler/Codegen/Common/MathTransformPass.cpp b/compiler/src/iree/compiler/Codegen/Common/MathTransformPass.cpp
index ce105bf..cd8d08d 100644
--- a/compiler/src/iree/compiler/Codegen/Common/MathTransformPass.cpp
+++ b/compiler/src/iree/compiler/Codegen/Common/MathTransformPass.cpp
@@ -34,7 +34,7 @@
                      math::Exp2Op::getOperationName(),
                      math::RoundEvenOp::getOperationName()};
   size_t prefix = math::MathDialect::getDialectNamespace().size() + 1;
-  for (auto name : opFullNames) {
+  for (StringRef name : opFullNames) {
     if (predicate(name)) {
       opNames.push_back(name.drop_front(prefix));
     }
diff --git a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
index 1b50203..d198b53 100644
--- a/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
+++ b/compiler/src/iree/compiler/Codegen/LLVMCPU/ConvertToLLVM.cpp
@@ -961,6 +961,13 @@
   return stringAttr ? stringAttr.value().str() : std::string("");
 }
 
+static void populateTanhPatterns(RewritePatternSet &p) {
+  StringRef fname = math::TanhOp::getOperationName();
+  StringRef opName =
+      fname.drop_front(math::MathDialect::getDialectNamespace().size() + 1);
+  math::populateExpansionPatterns(p, /*OpMnemonics=*/{opName});
+};
+
 void ConvertToLLVMPass::runOnOperation() {
   auto module = getOperation();
   std::string dataLayoutStr = targetDataLayout;
@@ -1050,12 +1057,6 @@
   if (use32BitImpl) {
     patterns.add<ExpandMulSIExtended>(patterns.getContext(), /*benefit=*/1024);
   }
-  auto populateTanhPatterns = [](RewritePatternSet &p) {
-    StringRef fname = math::TanhOp::getOperationName();
-    size_t prefix = math::MathDialect::getDialectNamespace().size() + 1;
-    StringRef opName = fname.drop_front(prefix);
-    math::populateExpansionPatterns(p, /*OpMnemonics=*/{opName});
-  };
   LLVMConversionTarget target(getContext());
   populateAffineToStdConversionPatterns(patterns);
   populateSCFToControlFlowConversionPatterns(patterns);
