Что такое байтовый разлив?
Когда я удаляю ASM x86 из промежуточного представления LLVM, сгенерированного из программы C, существует множество разливов, обычно размером 4 байта. Я не могу понять, почему они происходят и что они достигают.
Они, кажется, "вырезают" кусочки стека, но необычным образом:
## this fragment comes from a C program right before a malloc() call to a struct.
## there are other spills in different circumstances in this same program, so it
## is not related exclusively to malloc()
...
sub ESP, 84
mov EAX, 60
mov DWORD PTR [ESP + 80], 0
mov DWORD PTR [ESP], 60
mov DWORD PTR [ESP + 60], EAX # 4-byte Spill
call malloc
mov ECX, 60
...