Como o GCC decide em que ordem produzir as funções de montage

Lendo através da montagem que o GCC gera para arquivos C no meu projeto, percebo que as funções não são exibidas na montagem na mesma ordem em que aparecem no arquivo de origem. Qual é o objetivo dessa reordenação e quais heurísticas o GCC usa para decidir o pedido? (É apenas um artefato da estrutura de dados que mantém funções?) Isso não é-freorder-functions, já que não estou usando-fprofile-arcs.

questionAnswers(1)

yourAnswerToTheQuestion