Atom pipeline model, tuning and insn selection.
2009-04-06 Joey Ye <joey.ye@intel.com> Xuepeng Guo <xuepeng.guo@intel.com> H.J. Lu <hongjiu.lu@intel.com> Atom pipeline model, tuning and insn selection. * config.gcc (atom): Add atom config options and target. * config/i386/atom.md: New. * config/i386/i386.c (atom_cost): New cost. (m_ATOM): New macro flag. (initial_ix86_tune_features): Set m_ATOM. (x86_accumulate_outgoing_args): Likewise. (x86_arch_always_fancy_math_387): Likewise. (processor_target): Add Atom cost. (cpu_names): Add Atom cpu name. (override_options): Set Atom ISA. (ix86_issue_rate): New case PROCESSOR_ATOM. (ix86_adjust_cost): Likewise. * config/i386/i386.h (TARGET_ATOM): New target macro. (ix86_tune_indices): Add X86_TUNE_OPT_AGU. (TARGET_OPT_AGU): New target option. (target_cpu_default): Add TARGET_CPU_DEFAULT_atom. (processor_type): Add PROCESSOR_ATOM. * config/i386/i386.md (cpu): Add new value "atom". (use_carry, movu): New attr. (atom.md): Include atom.md. (adddi3_carry_rex64): Set attr "use_carry". (addqi3_carry): Likewise. (addhi3_carry): Likewise. (addsi3_carry): Likewise. (*addsi3_carry_zext): Likewise. (subdi3_carry_rex64): Likewise. (subqi3_carry): Likewise. (subhi3_carry): Likewise. (subsi3_carry): Likewise. (x86_movdicc_0_m1_rex64): Likewise. (*x86_movdicc_0_m1_se): Likewise. (x86_movsicc_0_m1): Likewise. (*x86_movsicc_0_m1_se): Likewise. (*adddi_1_rex64): Emit add insn as much as possible. (*addsi_1): Likewise. (return_internal): Set atom_unit. (return_internal_long): Likewise. (return_pop_internal): Likewise. (*rcpsf2_sse): Set atom_sse_attr attr. (*qrt<mode>2_sse): Likewise. (*prefetch_sse): Likewise. * config/i386/i386-c.c (ix86_target_macros_internal): New case PROCESSOR_ATOM. (ix86_target_macros_internal): Likewise. * config/i386/sse.md (cpu): Set attr "atom_sse_attr". (*prefetch_sse_rex): Likewise. (sse_rcpv4sf2): Likewise. (sse_vmrcpv4sf2): Likewise. (sse_sqrtv4sf2): Likewise. (<sse>_vmsqrt<mode>2): Likewise. (sse_ldmxcsr): Likewise. (sse_stmxcsr): Likewise. (*sse_sfence): Likewise. (sse2_clflush): Likewise. (*sse2_mfence): Likewise. (*sse2_lfence): Likewise. (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu". (<sse>_movup<ssemodesuffixf2c>): Likewise. (avx_movdqu<avxmodesuffix>): Likewise. (avx_lddqu<avxmodesuffix>): Likewise. (sse2_movntv2di): Change attr "type" to "ssemov". (sse2_movntsi): Likewise. (rsqrtv8sf2): Change attr "type" to "sseadd". (sse3_addsubv2df3): Set attr "atom_unit". (sse3_h<plusminus_insn>v4sf3): Likewise. (*sse2_pmaddwd): Likewise. (*vec_extractv2di_1_rex64): Likewise. (*vec_extractv2di_1_avx): Likewise. (sse2_psadbw): Likewise. (ssse3_phaddwv8hi3): Likewise. (ssse3_phaddwv4hi3): Likewise. (ssse3_phadddv4si3): Likewise. (ssse3_phadddv2si3): Likewise. (ssse3_phaddswv8hi3): Likewise. (ssse3_phaddswv4hi3): Likewise. (ssse3_phsubwv8hi3): Likewise. (ssse3_phsubwv4hi3): Likewise. (ssse3_phsubdv4si3): Likewise. (ssse3_phsubdv2si3): Likewise. (ssse3_phsubswv8hi3): Likewise. (ssse3_phsubswv4hi3): Likewise. (ssse3_pmaddubsw128): Likewise. (sse3_pmaddubsw: Likewise. (ssse3_palignrti): Likewise. (ssse3_palignrdi): Likewise. Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com> Co-Authored-By: Xuepeng Guo <xuepeng.guo@intel.com> From-SVN: r145624
Showing
gcc/config/i386/atom.md
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment