> On Fri, Sep 20, 2013 at 6:00 AM, Zamyatin, Igor <igor.zamya...@intel.com> > wrote: > > > > For x86 32-bit is still important due to mobile market so we would like to > > make some measurements first to see how this new generic model works on 32 > > bits
I assume by mobile market you mean atom CPU these days (not Pentium-M generic32 was tuned for). > > I would expect people compiling code for the mobile market to use an > appropriate -mtune option. What this patch affects is the default > tuning. I agree here. Moreover the 32bit generic model is not at all that new. It is same as the old code only flipping the four flags I mentioned plus changing the scheduling to K8 instead of PPro based model. The flags changed are: use_leave - this was there because pentium-M was slow on leave instructions. How does atom behave here? avoid_vector_decode - this is affecting gneration of integer->FP conversions K8 preferred to use vector instructions to avoid penalty. We now enable the flag: m_CORE_ALL | m_K8 | m_GENERIC64 I suppose we enabled it for Generic as a result of the overall ideology of not using instructions in generic that have evil performance on one of CPUs we consider important for generic. I think the flag was copied to CORE as a result of core tunning being based on generic tuning and hsould be dropped - both from core and generic based on fact that newer AMD CPUs do not care. slow_imul_imm32_mem slow_imul_imm8 This enables splitting of those instructions into move+mul that should not be terrible for atom either. Again, I think this flag is mistakely enabled for core. I need to dig up the thread we had last year about dropping some of these - as I recall, all except for inc/dec was fine. Honza > > Ian