OK, I think I know how to tackle this one: we need to add a new pattern 'define_expand "setmemsi" ' to the arm machine description, and have it emit a call to __aeabi_memclr in the case that the operand is zero.
There's a catch though: __aeabi_memclr is defined in the ABI, but it isn't defined in GCC.
Back to square one ... we could transform memset to bzero for our own purposes, but it's not a standard function so they won't accept it upstream.
OK, I think I know how to tackle this one: we need to add a new pattern 'define_expand "setmemsi" ' to the arm machine description, and have it emit a call to __aeabi_memclr in the case that the operand is zero.
There's a catch though: __aeabi_memclr is defined in the ABI, but it isn't defined in GCC.
Back to square one ... we could transform memset to bzero for our own purposes, but it's not a standard function so they won't accept it upstream.