[PATCH] [X86] Refactored stack memory folding tests to explicitly force register spilling

Simon Pilgrim llvm-dev at redking.me.uk
Mon Jan 12 11:15:02 PST 2015


Hi qcolombet, andreadb, mkuper,

The current 'big vectors' stack folded reload testing pattern is very bulky and makes it difficult to test all instructions as big vectors will tend to use only the ymm instruction implementations.

This patch changes the tests to use a nop call that lists explicit xmm registers as sideeffects, with this we can force a partial register spill of the relevant registers and then check that the reload is correctly folded. The asm generated only adds the forced spill, a nop instruction and a couple of extra labels (a fraction of the current approach).

If people are happy with this new approach I can begin adding more exhaustive tests (starting with the avx1 instructions before moving on to the sse versions) and properly uncover any issues with the memory folding tables.

I've added some extra tests (the xmm versions of some of the existing folding tests) as a starting point.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D6932

Files:
  test/CodeGen/X86/avx1-stack-reload-folding.ll

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6932.18030.patch
Type: text/x-patch
Size: 7633 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150112/0ea9066b/attachment.bin>


More information about the llvm-commits mailing list