[PATCH] Fix PR17631

Michael Liao michael.liao at intel.com
Tue Oct 22 11:45:06 PDT 2013


Hi,

PR17631 is caused by the vzeroupper pass will insert 'vzeroupper' before
calls when necessary. However, some helper calls will be inserted in
specific targets during prolog insertion (Windows needs to call _chkstk
in case that there're more that 4KB allocated on stack.) As these
function calls won't preserve XMM/YMM registers as regular calls, that
'vzeroupper' inserted will clobber all upper parts of YMM registers. The
attached patch fixes that by skipping func-calls added in prolog. This
assumes that prolog helper functions (_chkstk for MSVC and _alloca for
MINGW/CYGWIN) should have minimal registers clobbered and won't def/use
XMM/YMM registers.

Thanks for review
- Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-PR17631.patch
Type: text/x-patch
Size: 2409 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131022/f46e6cd2/attachment.bin>


More information about the llvm-commits mailing list