Implementation of backward

suppose I have:

a = torch.tensor([3.0,], requires_grad=True)
b = a * 3
c = b * b * 3
loss = c.mean()
loss.backward()

when the backward is executed:
step1. calculate ∂loss/∂c
step2. calculate ∂loss/∂b

actually step2 has 2 possibility
case1: ∂loss/∂b = ∂loss/∂c * ∂c/∂b
case2: ∂loss/∂b = ∂(loss/∂c*c)/∂b

sow which case is happened?