For clarity, "pushing" and "pulling" refer only to modifications of your development time. The reason that one decides to modify the development time is that one wants to modify the contrast of the film.
A "push" development increases the contrast. It also tends to push the area of the curve near the toe up into the straight part of the curve. By doing this, we make flat subjects appear more contrasty. We also improve slightly the appearance of the shadows and near shadows in films that have been underexposed. A "push" development is often used when we are forced to underexpose film (i.e. meter using a higher than box speed EI). For negative film, a "push" development gives little or no improvement to the underexposed shadows. It may help though with shadows on transparency film.