Introduce 'amxpreserve' attribute to reduce save/restore AMX register
in register allocation.
Use this attribute to indicate that the specified function has no
caller-saved AMX registers. Compiler doesn't save and restore any
AMX register across function call. It is user's responsibility that
ensure there is no AMX register clobber in the function with "amxpreserve"
attribute.
Like 'no_caller_saved_registers', 'amxpreserve' attribute is not a
calling convention. In fact, it only overrides the decision of which
AMX registers should be saved by the caller.
For example:
.. code-block:: c __attribute__ ((amxpreserve )) void f () { ... } void bar () { ... f(); ... }
In this case compiler doesn't save and restore AMX registers across the
call of f().