There is a third one, at low level: make it do something else.
For example, programmer requests a multiplication, compiler generates a shift; programmer requests a division, compiler generates a multiplication; programmer specifies a switch, compiler generates a jump table.
The same concept applies to transportation. How to get around faster: take shorter routes, and take all the stuff you're going to need on the first trip.
For example, programmer requests a multiplication, compiler generates a shift; programmer requests a division, compiler generates a multiplication; programmer specifies a switch, compiler generates a jump table.