TorchInductor: a PyTorch-native Compiler with Define-by-Run IR and Symbolic Shapes

How does TorchInductor handle aliasing and mutation, does it always perform a functionalization, or are they exposed to the backend compilers? The description above mentions the concept of TensorBox and StorageBox, are there more details on these?