On Thu, Apr 12, 2012 at 12:20 PM, Igor Zamyatin <izamya...@gmail.com> wrote: > On Wed, Apr 11, 2012 at 6:10 PM, Richard Guenther > <richard.guent...@gmail.com> wrote: >> On Wed, Apr 11, 2012 at 3:38 PM, Andi Kleen <a...@firstfloor.org> wrote: >>> Igor Zamyatin <izamya...@gmail.com> writes: >>> >>>> Hi All! >>>> >>>> It is known that imul placement is rather critical for Atom processors >>>> and changes try to improve imul scheduling for Atom. >>>> >>>> This gives +5% performance on several tests from new OA 2.0 testsuite >>>> from EEMBC. >>>> >>>> Tested for i386 and x86-64, ok for trunk? >>> >>> Did you measure how much this slows down the compiler when compiling >>> for Atom? The new pass looks rather slow. >> >> Also please explain why adjusting the automaton for Atom is not a way to >> attack this issue. > > If I understand the question correctly - it's a dynamic check and it's > not clear how to describe this adjusting statically in machine > description
>From reading the code (the comments are not clear to me) you seem to produce two adjacent IMUL instructions from within the ready list - but first check that there is only a single one. So I fail to see how it can work. Can atom execute two IMUL in parallel? Or what exactly is the pipeline behavior? You miss a testcase that would show the effect of your patch. Richard. >> >> Richard. >> >>> -Andi >>> >>> -- >>> a...@linux.intel.com -- Speaking for myself only