Device Trees: Difference between labels and aliases?

In the file imx6qdl.dtsi is the following definition of gpio nodes (somewhat shortened):

gpio1: gpio@0209c000 {
    [...]
};

gpio2: gpio@020a0000 {
    [...]
};

[...]

gpio7: gpio@020b4000 {
    [...]
};

But also in this file, the aliases node has the following properties (again shortened):

aliases {
    [...]
    gpio0 = &gpio1;
    gpio1 = &gpio2;
    gpio2 = &gpio3;
    gpio3 = &gpio4;
    gpio4 = &gpio5;
    gpio5 = &gpio6;
    gpio6 = &gpio7;
    [...]
};

What exactly is the reason for doing so?
Do the labels get overwritten?