Do not create CALLSEQ_START/CALLSEQ_END when there is no callframe to
setup and the callframe size is 0.
- Fixes an invalid callframe nesting for byval arguments. This would fail the machine verifier as it looked like this before this patch (as in big-byval.ll):
... ADJCALLSTACKDOWN 32768, 0, ... # Setup for extfunc ... ADJCALLSTACKDOWN 0, 0, ... # setup for memcpy ... BL &memcpy ... ADJCALLSTACKUP 0, 0, ... # destroy for memcpy ... BL &extfunc ADJCALLSTACKUP 32768, 0, ... # destroy for extfunc
- Saves us two machine instructions in the common case of zero-sized stackframes.
- Remove an unnecessary scheduling barrier (hence the small unittest changes).