`jit` + `linear_transpose` raises error due to missing DCE  call
### Description

```python
import jax

def f1(x):
    return 2 * x, x > 0

def g1(x):
    return f1(x)[0]

jax.linear_transpose(g1, 1.)(1.)  # works

@jax.jit
def f2(x):
    return 2 * x, x > 0

def g2(x):
    return f2(x)[0]

jax.linear_transpose(g2, 1.)(1.)  # error!
# jax._src.traceback_util.UnfilteredStackTrace: NotImplementedError: Transpose rule (for reverse-mode differentiation) for 'gt' not implemented
```

It looks like `jax.linear_transpose` is missing a call to `pe.dce_jaxpr` prior to attempting the transpose.

I checked that `jax.grad` doesn't have the same issue. I assume it has a DCE call in there already somewhere.

### What jax/jaxlib version are you using?

JAX 0.4.8
diff --git a/jax/_src/api.py b/jax/_src/api.py
index 15e9d07d5..43341b8fc 100644
--- a/jax/_src/api.py
+++ b/jax/_src/api.py
@@ -2250,6 +2250,7 @@ def linear_transpose(fun: Callable, *primals, reduce_axes=()) -> Callable:
   in_pvals = map(pe.PartialVal.unknown, in_avals)
   jaxpr, out_pvals, const = pe.trace_to_jaxpr_nounits(flat_fun, in_pvals,
                                                       instantiate=True)
+  jaxpr, _ = pe.dce_jaxpr(jaxpr, [True] * len(jaxpr.outvars), True)
   out_avals, _ = unzip2(out_pvals)
   out_dtypes = map(dtypes.dtype, out_avals)
   if not (all(dtypes.issubdtype(d, np.inexact) for d in in_dtypes + out_dtypes)
diff --git a/tests/api_test.py b/tests/api_test.py
index f788bb097..4bbde83c5 100644
--- a/tests/api_test.py
+++ b/tests/api_test.py
@@ -2076,6 +2076,12 @@ class APITest(jtu.JaxTestCase):
     expected = 6
     self.assertEqual(actual, expected)
 
+  def test_linear_transpose_dce(self):
+    # https://github.com/google/jax/issues/15660
+    f = jit(lambda x: (2 * x, x > 0))
+    g = lambda x: f(x)[0]
+    api.linear_transpose(g, 1.)(1.)
+
   def test_linear_transpose_error(self):
     with self.assertRaisesRegex(
         TypeError, "linear_transpose only supports"):
['tests/api_test.py', 'jax/_src/api.py']