mlir: mark outlined functions from enzyme.autodiff_region private (#3015)
diff --git a/enzyme/Enzyme/MLIR/Passes/InlineEnzymeRegions.cpp b/enzyme/Enzyme/MLIR/Passes/InlineEnzymeRegions.cpp
index bb59854..ddc72ea 100644
--- a/enzyme/Enzyme/MLIR/Passes/InlineEnzymeRegions.cpp
+++ b/enzyme/Enzyme/MLIR/Passes/InlineEnzymeRegions.cpp
@@ -287,6 +287,7 @@
   // to some issue with the dbg info.
   Location loc = UnknownLoc::get(op.getContext());
   auto outlinedFunc = func::FuncOp::create(builder, loc, funcName, fnType);
+  outlinedFunc.setPrivate();
   Region &outlinedBody = outlinedFunc.getBody();
   deserializeFunctionAttributes(op, outlinedFunc, freeValues.size());
 
diff --git a/enzyme/test/MLIR/Passes/region_outline.mlir b/enzyme/test/MLIR/Passes/region_outline.mlir
index 3dbe7bb..30a7ec7 100644
--- a/enzyme/test/MLIR/Passes/region_outline.mlir
+++ b/enzyme/test/MLIR/Passes/region_outline.mlir
@@ -31,7 +31,7 @@
   return
 }
 
-// CHECK-LABEL:   func.func @to_outline_to_diff0(
+// CHECK-LABEL:   func.func private @to_outline_to_diff0(
 // CHECK-SAME:      %[[ARG0:.*]]: !llvm.ptr, %[[ARG1:.*]]: !llvm.ptr,
 // CHECK-SAME:      %[[ARG2:.*]]: index) {
 // CHECK:           %[[CONSTANT_0:.*]] = arith.constant 5.600000e+00 : f64
@@ -92,12 +92,12 @@
 // CHECK-NEXT:    return %0, %1 : f64, f64
 // CHECK-NEXT:  }
 
-// CHECK: func.func @outline_multi_to_diff1(%arg0: f64) -> f64 {
+// CHECK: func.func private @outline_multi_to_diff1(%arg0: f64) -> f64 {
 // CHECK-NEXT:    %0 = arith.addf %arg0, %arg0 : f64
 // CHECK-NEXT:    return %0 : f64
 // CHECK-NEXT:  }
 
-// CHECK: func.func @outline_multi_to_diff0(%arg0: f64) -> f64 {
+// CHECK: func.func private @outline_multi_to_diff0(%arg0: f64) -> f64 {
 // CHECK-NEXT:    %0 = arith.mulf %arg0, %arg0 : f64
 // CHECK-NEXT:    return %0 : f64
 // CHECK-NEXT:  }
@@ -127,7 +127,7 @@
 // CHECK-NEXT:    return %[[GRAD]] : f64
 // CHECK-NEXT:  }
 
-// CHECK: func.func @free_var_ordering_to_diff0(%arg0: f64) -> f64 {
+// CHECK: func.func private @free_var_ordering_to_diff0(%arg0: f64) -> f64 {
 // CHECK-NEXT:    %[[CONST:.*]] = arith.constant 2.000000e+00 : f64
 // CHECK-NEXT:    %[[MUL:.*]] = arith.mulf %arg0, %[[CONST]] : f64
 // CHECK-NEXT:    return %[[MUL]] : f64
@@ -159,7 +159,7 @@
 // CHECK-NEXT:    return
 // CHECK-NEXT:  }
 
-// CHECK:  func.func @free_var_with_dup_to_diff0(%arg0: memref<f64>) -> f64 {
+// CHECK:  func.func private @free_var_with_dup_to_diff0(%arg0: memref<f64>) -> f64 {
 // CHECK-NEXT:    %[[CST:.*]] = arith.constant 2.000000e+00 : f64
 // CHECK-NEXT:    %[[LOAD:.*]] = memref.load %arg0[] : memref<f64>
 // CHECK-NEXT:    %[[MUL:.*]] = arith.mulf %[[LOAD]], %[[CST]] : f64
@@ -182,7 +182,7 @@
 // CHECK-NEXT:    %0 = enzyme.autodiff @dsquare_to_diff0(%arg0, %arg1) {activity = [#enzyme<activity enzyme_active>], ret_activity = [#enzyme<activity enzyme_activenoneed>]} : (f64, f64) -> f64
 // CHECK-NEXT:    return %0 : f64
 // CHECK-NEXT:  }
-// CHECK:  func.func @dsquare_to_diff0(%arg0: f64) -> f64 {
+// CHECK:  func.func private @dsquare_to_diff0(%arg0: f64) -> f64 {
 // CHECK-NEXT:    %0 = arith.mulf %arg0, %arg0 : f64
 // CHECK-NEXT:    return %0 : f64
 // CHECK-NEXT:  }
@@ -203,7 +203,7 @@
 // CHECK-NEXT:   %0 = enzyme.fwddiff @dsquare_fwd_to_fwddiff0(%arg0, %arg1) {activity = [#enzyme<activity enzyme_dup>], ret_activity = [#enzyme<activity enzyme_dupnoneed>]} : (f64, f64) -> f64
 // CHECK-NEXT:   return %0 : f64
 // CHECK-NEXT: }
-// CHECK: func.func @dsquare_fwd_to_fwddiff0(%arg0: f64) -> f64 {
+// CHECK: func.func private @dsquare_fwd_to_fwddiff0(%arg0: f64) -> f64 {
 // CHECK-NEXT:   %0 = arith.mulf %arg0, %arg0 : f64
 // CHECK-NEXT:   return %0 : f64
 // CHECK-NEXT: }
diff --git a/enzyme/test/MLIR/ReverseMode/llvm_struct.mlir b/enzyme/test/MLIR/ReverseMode/llvm_struct.mlir
index f1d53c4..33ca2ec 100644
--- a/enzyme/test/MLIR/ReverseMode/llvm_struct.mlir
+++ b/enzyme/test/MLIR/ReverseMode/llvm_struct.mlir
@@ -31,7 +31,7 @@
 // CHECK-NEXT:   llvm.return
 // CHECK-NEXT: }
 
-// CHECK:      func.func @kernel_to_diff0(%arg0: !llvm.ptr, %arg1: f64) -> f64 {
+// CHECK:      func.func private @kernel_to_diff0(%arg0: !llvm.ptr, %arg1: f64) -> f64 {
 // CHECK-NEXT:   %[[V0:.+]] = llvm.load %arg0 : !llvm.ptr -> !llvm.struct<(i64, i64)>
 // CHECK-NEXT:   %[[V1:.+]] = llvm.extractvalue %[[V0]][0] : !llvm.struct<(i64, i64)>
 // CHECK-NEXT:   %[[V2:.+]] = llvm.inttoptr %[[V1]] : i64 to !llvm.ptr