TorchDynamo assertion with `try: return; finally`
Labels: triaged, oncall: pt2, release notes: dynamo

### 🐛 Describe the bug

TorchDynamo seems to raise an error if I have something like this. See the error logs and repro instructions below:

```
def forward(self, x):
    try:
        return ...
    finally:
        do_something()
```

### Error logs

```
2.0.0a0+gite9ebda2
Traceback (most recent call last):
  File "test.py", line 24, in <module>
    out = net(torch.Tensor([1, 2, 3, 4]))
  File "/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/eval_frame.py", line 82, in forward
    return self.dynamo_ctx(self._orig_mod.forward)(*args, **kwargs)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/eval_frame.py", line 209, in _fn
    return fn(*args, **kwargs)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/eval_frame.py", line 337, in catch_errors
    return callback(frame, cache_size, hooks)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/convert_frame.py", line 404, in _convert_frame
    result = inner_convert(frame, cache_size, hooks)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/convert_frame.py", line 104, in _fn
    return fn(*args, **kwargs)
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/convert_frame.py", line 262, in _convert_frame_assert
    return _compile(
  File "/conda/lib/python3.8/site-packages/torch/_dynamo/utils.py", line 163, in time_wrapper
    r = func(*args, **kwargs)
  File "/conda/python3.8/site-packages/torch/_dynamo/convert_frame.py", line 324, in _compile
    out_code = transform_code_object(code, transform)
  File "/conda/python3.8/site-packages/torch/_dynamo/bytecode_transformation.py", line 446, in transform_code_object
    return clean_and_assemble_instructions(instructions, keys, code_options)[1]
  File "/conda/python3.8/site-packages/torch/_dynamo/bytecode_transformation.py", line 470, in clean_and_assemble_instructions
    code_options["co_stacksize"] = stacksize_analysis(instructions)
  File "/conda/python3.8/site-packages/torch/_dynamo/bytecode_analysis.py", line 185, in stacksize_analysis
    assert low >= 0
AssertionError:

Set torch._dynamo.config.verbose=True for more information


You can suppress this exception and fall back to eager by setting:
    torch._dynamo.config.suppress_errors = True
```

### Minified repro

```
$ cat test.py
import torch
import torch.nn as nn

print(torch.__version__)

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer = nn.Identity()
        self.fwd_count = 0

    def increment(self):
        self.fwd_count += 1

    def forward(self, x):
        try:
            return self.layer(x)
        finally:
            self.increment()

net = Net()
net = net.cuda()
net = torch.compile(net)
out = net(torch.Tensor([1, 2, 3, 4]))
print(out)
```

### Versions

```
Collecting environment information...
PyTorch version: 2.0.0a0+gite9ebda2
Is debug build: False
CUDA used to build PyTorch: 12.0
```

cc @ezyang @msaroufim @wconstab @bdhirsh @anijain2305