>>> On 15.03.19 at 15:20, <andrew.coop...@citrix.com> wrote:
> Foring a register operand hides (from the compiler) the fact that clflush
> behaves as a read from the memory operand (wrt memory order, faults, etc.).
> It also reduces the compilers flexibility with register schedulling.
> 
> Reimplement clfush() (and wbinvd() for consistency) as a static inline rather
> than a macro, and have it take a const void pointer.
> 
> In practice, the only generated code which gets modified by this is in
> mwait_idle_with_hints(), where a memory operand can now be used.
> 
> While here, I noticed that &mwait_wakeup(cpu) was being calculated twice.
> This is caused by the memory clobber in mb(), so take the opportunity to help
> the optimiser by calculating it once, ahead of time.  bloat-o-meter reports a
> delta of -26 as a result of this change.
> 
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>

Reviewed-by: Jan Beulich <jbeul...@suse.com>



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to