gcc is a generic and open source compiler
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[GIT] Add commit message and PR template | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[BUGFIX] Fix the configure file of BOLT | 2 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] i386: Add HYGON c86-4g-m8 support Upstream reference: https://gcc.gnu.org/g:f06c1812ae7 Add c86-4g-m8 as a new HYGON Family 18h model 8 processor. It inherits the c86-4g-m7 ISA set and most tuning decisions, including the same processor costs and scheduling model baseline. The patch wires c86-4g-m8 into the common x86 processor tables, driver CPU detection, target macros, --with-arch/--with-cpu handling, builtin CPU detection and documentation. It also extends the c86-4g tuning masks that already special-case c86-4g-m7 to cover c86-4g-m8. For scheduling, rename the shared scheduling description file from gcc/config/i386/c86-4g-m7.md to gcc/config/i386/c86-4g-m7m8.md and reuse the c86-4g-m7 scheduling reservations for c86-4g-m8 where the latency and resource usage are the same. Add separate c86-4g-m8 reservations for the few operations with different latency. This patch does not affect genautomata build time. gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_hygon_cpu): Detect HYGON Family 18h model 8 as c86-4g-m8. * common/config/i386/i386-common.cc (processor_names): Add c86-4g-m8. (processor_alias_table): Likewise. * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): Add HYGONFAM18H_C86_4G_M8. * config.gcc: Add c86-4g-m8 to supported x86 CPUs and handle c86_4g_m8 target triples. * config/i386/c86-4g-m7.md: Rename to ... * config/i386/c86-4g-m7m8.md: ... this and extend shared c86-4g-m7 scheduling reservations to c86-4g-m8. (c86_4g_m8_imovx_cwde): New reservation. (c86_4g_m7_imov_xchg): Add c86_4g_m8 to CPU attribute. (c86_4g_m7_imov_xchg_load): Ditto. (c86_4g_m7_imov): Ditto. (c86_4g_m7_imov_load): Ditto. (c86_4g_m7_imov_store): Ditto. (c86_4g_m7_push): Ditto. (c86_4g_m7_push_mem): Ditto. (c86_4g_m7_pop): Ditto. (c86_4g_m7_pop_mem): Ditto. (c86_4g_m7_imul): Ditto. (c86_4g_m7_imul_load): Ditto. (c86_4g_m7_idiv): Ditto. (c86_4g_m7_idiv_QI): Ditto. (c86_4g_m7_idiv_load): Ditto. (c86_4g_m7_idiv_QI_load): Ditto. (c86_4g_m7_insn): Ditto. (c86_4g_m7_insn_load): Ditto. (c86_4g_m7_insn_store): Ditto. (c86_4g_m7_insn2_store): Ditto. (c86_4g_m7_insn_both): Ditto. (c86_4g_m7_setcc): Ditto. (c86_4g_m7_setcc_load): Ditto. (c86_4g_m7_setcc_store): Ditto. (c86_4g_m7_alu1_double): Ditto. (c86_4g_m7_alu1_double_load): Ditto. (c86_4g_m7_alu1_vector): Ditto. (c86_4g_m7_alu1_vector_load): Ditto. (c86_4g_m7_alu1_direct): Ditto. (c86_4g_m7_alu1_direct_load): Ditto. (c86_4g_m7_call): Ditto. (c86_4g_m7_branch): Ditto. (c86_4g_m7_branch_load): Ditto. (c86_4g_m7_lea): Ditto. (c86_4g_m7_leave): Ditto. (c86_4g_m7_str): Ditto. (c86_4g_m7_str_load): Ditto. (c86_4g_m7_ieu_vector): Ditto. (c86_4g_m7_ieu_vector_load): Ditto. (c86_4g_m7_sse_insertimm): Ditto. (c86_4g_m7_sse_insert): Ditto. (c86_4g_m7_fp_cmov): Ditto. (c86_4g_m7_fp_mov_direct_load): Ditto. (c86_4g_m7_fp_mov_direct_store): Ditto. (c86_4g_m7_fp_mov_double_load): Ditto. (c86_4g_m7_fp_mov_double_store): Ditto. (c86_4g_m7_fp_mov_direct): Ditto. (c86_4g_m7_fp_sqrt): Ditto. (c86_4g_m7_fp_spc_direct): Ditto. (c86_4g_m7_fp_spc): Ditto. (c86_4g_m7_fp_op_mul): Ditto. (c86_4g_m7_fp_op_mul_load): Ditto. (c86_4g_m7_fp_op_imul_load): Ditto. (c86_4g_m7_fp_div): Ditto. (c86_4g_m7_fp_div_load): Ditto. (c86_4g_m7_fp_idiv_load): Ditto. (c86_4g_m7_fp_fsgn): Ditto. (c86_4g_m7_fp_fcmp): Ditto. (c86_4g_m7_fp_fcmp_load): Ditto. (c86_4g_m7_fp_mmx): Ditto. (c86_4g_m7_mmx_add_cmp): Ditto. (c86_4g_m7_mmx_add_cmp_load): Ditto. (c86_4g_m7_mmx_cvt): Ditto. (c86_4g_m7_mmx_cvt_load): Ditto. (c86_4g_m7_mmx_shift): Ditto. (c86_4g_m7_mmx_shift_load): Ditto. (c86_4g_m7_mmx_shift_avg): Ditto. (c86_4g_m7_mmx_shift_avg_load): Ditto. (c86_4g_m7_mmx_shift_sadbw): Ditto. (c86_4g_m7_mmx_shift_sadbw_load): Ditto. (c86_4g_m7_mmx_mov): Ditto. (c86_4g_m7_mmx_mov_store): Ditto. (c86_4g_m7_mmx_mov_load): Ditto. (c86_4g_m7_mmx_mul): Ditto. (c86_4g_m7_mmx_mul_load): Ditto. (c86_4g_m7_sse_pinsr_reg): Ditto. (c86_4g_m7_sse_pinsr_reg_load): Ditto. (c86_4g_m7_avx_vpinsr_reg): Ditto. (c86_4g_m7_avx_vpinsr_reg_load): Ditto. (c86_4g_m7_avx512_perm_xmm): Ditto. (c86_4g_m7_avx512_perm_xmm_opload): Ditto. (c86_4g_m7_avx512_permi2_ymm): Ditto. (c86_4g_m7_avx512_permi2_zmm): Ditto. (c86_4g_m7_avx512_permi2_ymm_load): Ditto. (c86_4g_m7_avx512_permi2_zmm_load): Ditto. (c86_4g_m7_avx512_perm_zmm_imm): Ditto. (c86_4g_m7_avx512_perm_zmm_imm_load): Ditto. (c86_4g_m7_avx512_perm_zmm_noimm): Ditto. (c86_4g_m7_sse_perm_zmm_noimm_load): Ditto. (c86_4g_m7_avx512_insertx_ymm): Ditto. (c86_4g_m7_avx512_insertx_ymem): Ditto. (c86_4g_m7_avx512_insertx_zxmm): Ditto. (c86_4g_m7_avx512_insertx_zxmem): Ditto. (c86_4g_m7_avx512_insertx_zymm): Ditto. (c86_4g_m7_avx512_insertx_zymem): Ditto. (c86_4g_m7_avx_insertx_ymm): Ditto. (c86_4g_m7_avx_insertx_ymem): Ditto. (c86_4g_m7_avx512_shuf_xymm): Ditto. (c86_4g_m7_avx512_shuf_zmm): Ditto. (c86_4g_m7_avx512_shuf_xymem): Ditto. (c86_4g_m7_avx512_shuf_zmem): Ditto. (c86_4g_m7_sselogic_xymm): Ditto. (c86_4g_m7_sselogic_xymm_load): Ditto. (c86_4g_m7_avx512_cmpestr): Ditto. (c86_4g_m7_avx512_cmpestr_load): Ditto. (c86_4g_m7_avx512_log): Ditto. (c86_4g_m7_avx512_log_load): Ditto. (c86_4g_m7_avx512_vdbpsadbw_xymm): Ditto. (c86_4g_m7_avx512_vdbpsadbw_xymem): Ditto. (c86_4g_m7_avx512_vdbpsadbw_zmm): Ditto. (c86_4g_m7_avx512_vdbpsadbw_zmem): Ditto. (c86_4g_m7_avx512_abs): Ditto. (c86_4g_m7_avx512_abs_load): Ditto. (c86_4g_m7_avx_sign): Ditto. (c86_4g_m7_avx_sign_load): Ditto. (c86_4g_m7_avx_blend): Ditto. (c86_4g_m7_avx_blend_load): Ditto. (c86_4g_m7_avx512_aes): Ditto. (c86_4g_m7_avx512_aes_load): Ditto. (c86_4g_m7_avx_aes): Ditto. (c86_4g_m7_avx_aes_load): Ditto. (c86_4g_m7_extr): Ditto. (c86_4g_m7_extr_store): Ditto. (c86_4g_m7_avx_ssecomi_comi): Ditto. (c86_4g_m7_avx_ssecomi_comi_load): Ditto. (c86_4g_m7_avx_ssecomi_test): Ditto. (c86_4g_m7_avx_ssecomi_test_load): Ditto. (c86_4g_m7_avx512_imul): Ditto. (c86_4g_m7_avx512_imul_mem): Ditto. (c86_4g_m7_avx_imul): Ditto. (c86_4g_m7_avx_imul_mem): Ditto. (c86_4g_m7_avx512_mov_vmov): Ditto. (c86_4g_m7_avx512_mov_vmov_store): Ditto. (c86_4g_m7_avx512_mov_vmov_load): Ditto. (c86_4g_m7_avx512_vpmovx_y): Ditto. (c86_4g_m7_avx512_vpmovx_y_load): Ditto. (c86_4g_m7_avx512_vpmovx_z): Ditto. (c86_4g_m7_avx512_vpmovx_z_load): Ditto. (c86_4g_m7_avx512_vpmovx_x): Ditto. (c86_4g_m7_avx512_vpmovx_x_load): Ditto. (c86_4g_m7_avx_vpmovx_xx): Ditto. (c86_4g_m7_avx_vpmovx_xx_load): Ditto. (c86_4g_m7_avx512_expand): Ditto. (c86_4g_m7_avx512_expand_load): Ditto. (c86_4g_m7_avx512_expand_z): Ditto. (c86_4g_m7_avx512_expand_z_load): Ditto. (c86_4g_m7_avx512_movnt_load): Ditto. (c86_4g_m7_avx512_movnt_store): Ditto. (c86_4g_m7_sse_movnt_store): Ditto. (c86_4g_m7_sse_movnt): Ditto. (c86_4g_m7_avx512_blendv): Ditto. (c86_4g_m7_avx512_blendv_load): Ditto. (c86_4g_m7_sse_mov2): Ditto. (c86_4g_m7_sse_mov2_load): Ditto. (c86_4g_m7_avx512_sseishft_aligr): Ditto. (c86_4g_m7_avx512_sseishft_aligr_load): Ditto. (c86_4g_m7_avx512_sseishft_vshift): Ditto. (c86_4g_m7_avx512_sseishft_vshift_load): Ditto. (c86_4g_m7_avx512_sseadd_maxmin): Ditto. (c86_4g_m7_avx512_sseadd_maxmin_load): Ditto. (c86_4g_m7_avx_sseadd_maxmin): Ditto. (c86_4g_m7_avx_sseadd_maxmin_load): Ditto. (c86_4g_m7_sse_sseadd_maxmin): Ditto. (c86_4g_m7_sse_sseadd_maxmin_load): Ditto. (c86_4g_m7_avx512_sseadd): Ditto. (c86_4g_m7_avx512_sseadd_load): Ditto. (c86_4g_m7_avx_sseadd_hplus): Ditto. (c86_4g_m7_avx_sseadd_hplus_load): Ditto. (c86_4g_m7_avx512_sseiadd_madd): Ditto. (c86_4g_m7_avx512_sseiadd_madd_mem): Ditto. (c86_4g_m7_avx_sseiadd_sadbw): Ditto. (c86_4g_m7_avx_sseiadd_sadbw_mem): Ditto. (c86_4g_m7_sse_sseiadd_sadbw): Ditto. (c86_4g_m7_sse_sseiadd_sadbw_mem): Ditto. (c86_4g_m7_sse_sseiadd_madd): Ditto. (c86_4g_m7_sse_sseiadd_madd_mem): Ditto. (c86_4g_m7_avx512_sseiadd_avg): Ditto. (c86_4g_m7_avx512_sseiadd_avg_load): Ditto. (c86_4g_m7_avx_sseiadd_hplus): Ditto. (c86_4g_m7_avx_sseiadd_hplus_load): Ditto. (c86_4g_m7_sse_sseiadd_hplus): Ditto. (c86_4g_m7_sse_sseiadd_hplus_load): Ditto. (c86_4g_m8_avx512_ssemul): New reservation. (c86_4g_m8_avx512_ssemul_load): Ditto. (c86_4g_m7_avx512_ssediv_x): Add c86_4g_m8 to CPU attribute. (c86_4g_m7_avx512_ssediv_xmem): Ditto. (c86_4g_m7_avx512_ssediv_y): Ditto. (c86_4g_m7_avx512_ssediv_ymem): Ditto. (c86_4g_m7_avx512_ssediv_z): Ditto. (c86_4g_m7_avx512_ssediv_zmem): Ditto. (c86_4g_m7_avx512_ssecmp): Ditto. (c86_4g_m7_avx512_ssecmp_load): Ditto. (c86_4g_m7_avx512_ssecmp_z): Ditto. (c86_4g_m7_avx512_ssecmp_z_load): Ditto. (c86_4g_m7_avx512_ssecmp_vp): Ditto. (c86_4g_m7_avx512_ssecmp_vp_load): Ditto. (c86_4g_m7_avx512_ssecmp_vp_z): Ditto. (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. (c86_4g_m7_avx_ssecmp_vp): Ditto. (c86_4g_m7_avx_ssecmp_vp_load): Ditto. (c86_4g_m7_avx512_ssecmp_test): Ditto. (c86_4g_m7_avx512_ssecmp_test_load): Ditto. (c86_4g_m7_avx512_ssecvt_xy): Ditto. (c86_4g_m7_avx512_ssecvt_xy_load): Ditto. (c86_4g_m7_avx512_ssecvt_y_z): Ditto. (c86_4g_m7_avx512_ssecvt_y_z_load): Ditto. (c86_4g_m7_avx512_ssecvt_z): Ditto. (c86_4g_m7_avx512_ssecvt_z_load): Ditto. (c86_4g_m7_avx_ssecvt): Ditto. (c86_4g_m7_avx_ssecvt_load): Ditto. (c86_4g_m7_sse_ssecvt_pspi): Ditto. (c86_4g_m7_sse_ssecvt_pspi_load): Ditto. (c86_4g_m7_sse_ssecvt_pi): Ditto. (c86_4g_m7_sse_ssecvt_pi_load): Ditto. (c86_4g_m8_avx512_muladd): New reservation. (c86_4g_m8_avx512_muladd_load): Ditto. (c86_4g_m7_avx512_muladd_madd): Add c86_4g_m8 to CPU attribute. (c86_4g_m7_avx512_muladd_madd_load): Ditto. (c86_4g_m7_avx512_sse_range): Ditto. (c86_4g_m7_avx512_sse_range_load): Ditto. (c86_4g_m7_avx512_sse_conflict_x): Ditto. (c86_4g_m7_avx512_sse_conflict_x_load): Ditto. (c86_4g_m7_avx512_sse_conflict_y): Ditto. (c86_4g_m7_avx512_sse_conflict_y_load): Ditto. (c86_4g_m7_avx512_sse_conflict_z): Ditto. (c86_4g_m7_avx512_sse_conflict_z_load): Ditto. (c86_4g_m7_avx512_sse_class): Ditto. (c86_4g_m7_avx512_sse_class_load): Ditto. (c86_4g_m7_avx512_sse_class_z): Ditto. (c86_4g_m7_avx512_sse_class_z_load): Ditto. (c86_4g_m7_avx_sse): Ditto. (c86_4g_m7_avx_sse_load): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_x): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_xload): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_y): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_yload): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_z): Ditto. (c86_4g_m7_avx512_sse_sqrt_sf_zload): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_x): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_xload): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_y): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_yload): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_z): Ditto. (c86_4g_m7_avx512_sse_sqrt_df_zload): Ditto. (c86_4g_m7_avx512_msklog): Ditto. (c86_4g_m7_avx512_msklog_vector): Ditto. (c86_4g_m7_avx512_mskmov_reg_k): Ditto. (c86_4g_m7_avx512_mskmov_xy_k): Ditto. (c86_4g_m7_avx512_mskmov_z_k): Ditto. (c86_4g_m7_avx512_mskmov_k_k): Ditto. (c86_4g_m7_avx512_mskmov_k_reg): Ditto. (c86_4g_m7_avx512_mskmov_k_m): Ditto. * config/i386/driver-i386.cc (host_detect_local_cpu): Detect c86-4g-m8. * config/i386/i386-c.cc (ix86_target_macros_internal): Define c86-4g-m8 arch and tune macros. * config/i386/i386-options.cc (m_C86_4G_M8): New macro. (m_C86_4G): Include m_C86_4G_M8. (processor_cost_table): Add c86_4g_m8_cost. * config/i386/i386.cc (ix86_reassociation_width): Handle PROCESSOR_C86_4G_M8. * config/i386/i386.h (enum processor_type): Add PROCESSOR_C86_4G_M8. (PTA_C86_4G_M8): New. * config/i386/i386.md: Add c86_4g_m8 to cpu attribute and include c86-4g-m7m8.md. * config/i386/x86-tune-costs.h (c86_4g_m8_cost): New. * config/i386/x86-tune-sched.cc (ix86_issue_rate): Handle PROCESSOR_C86_4G_M8. (ix86_adjust_cost): Likewise. * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Include m_C86_4G_M8. (X86_TUNE_USE_SCATTER_4PARTS): Likewise. (X86_TUNE_USE_SCATTER_8PARTS): Likewise. (X86_TUNE_AVX512_SPLIT_REGS): Likewise. (X86_TUNE_AVX512_MOVE_BY_PIECES): Likewise. (X86_TUNE_AVX512_STORE_BY_PIECES): Likewise. * doc/extend.texi: Document c86-4g-m8 for __builtin_cpu_is. * doc/invoke.texi: Document c86-4g-m8. gcc/testsuite/ChangeLog: * g++.target/i386/mv33.C: Add c86-4g-m8 target clone test. * gcc.target/i386/funcspec-56.inc: Add c86-4g-m8 arch and tune target attribute tests. Signed-off-by: Xin Liu <liulxx@hygon.cn> | 4 个月前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
Set fallback value for -print-multi-os-directory Clang doesn't support -print-multi-os-directory option. So let's set the fallback value (../lib64) if it is empty. This is only needed for the projects built by hostcc: gcc, libcc1, libiberty The projects for targets only, will always built by gcc itself. | 2 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
Enable macro-use-commandline Signed-off-by: zhangxiaohua <xiaohua20100827@163.com> | 2 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] RISC-V: Enforce Libatomic LR/SC SEQ_CST Reference: dcd7b2f5f7233a04c8b14b362d0befa76e9654c0 Replace LR.aq/SC.rl pairs with the SEQ_CST LR.aqrl/SC.rl pairs recommended by table A.6 of the ISA manual. 2023-04-27 Patrick O'Neill <patrick@rivosinc.com> libgcc/ChangeLog: * config/riscv/atomic.c: Change LR.aq/SC.rl pairs into sequentially consistent LR.aqrl/SC.rl pairs. Signed-off-by: Patrick O'Neill <patrick@rivosinc.com> Signed-off-by: Jia Wang <wangjia@ultrarisc.com> | 9 个月前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[GOMP] Enabling moutline-atomics improves libgomp performance in multi-thread scenarios Libgomp is used in multi-thread scenarios, Enabling moutline-atomics improves performance. | 3 年前 | |
[Backport] Add a recursion limit to the demangle_const function in the Rust demangler | 10 个月前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[libquadmath] Enable libquadmath on kunpeng This enable libquadmath on kunpeng platform to convenient users that migrating from x86 platform. libquadmath uses "__float128" as quad precision floating point type and with math functions with "q" suffix like "cosq". For those who do not need to adapt to x86 platform, you can use "long double" as quad precision floating point type and math functions with "l" suffix like "cosl" in libm for quad precision math. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
Add multi-version lto symbol parse, cross lto units ipa-inline extension, and lto compression algorithm specified. | 1 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[GIT] Add commit message and PR template | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[AutoBOLT] Enable BOLT linker plugin on aarch64 3/3 | 2 年前 | |
[BUGFIX] Fix the configure file of BOLT | 2 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Readme] Fix the wrong wiki address | 1 年前 | |
update: 更新文件 README.md Signed-off-by: Houjiong <hz_lin8@163.com> | 10 个月前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[AutoBOLT] Enable BOLT linker plugin on aarch64 3/3 | 2 年前 | |
[AutoBOLT] Enable BOLT linker plugin on aarch64 3/3 | 2 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
Set fallback value for -print-multi-os-directory Clang doesn't support -print-multi-os-directory option. So let's set the fallback value (../lib64) if it is empty. This is only needed for the projects built by hostcc: gcc, libcc1, libiberty The projects for targets only, will always built by gcc itself. | 2 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[build] Add some file right to executable | 3 年前 | |
[Backport] Init GCC 10.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f00b5710a30f22efc3171c393e56aeb335c3cd39 Init GCC 10.3.0 repository using the source code of the upstream gcc community. | 5 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 | |
[Backport] Init GCC 12.3.0 repository Reference: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=8fc1a49c9312b05d925b7d21f1d2145d70818151 Init GCC 12.3.0 repository using the source code of the upstream gcc community. | 3 年前 |
GCC for openEuler
GCC for openEuler 编译器是基于开源 GCC 的高性能编译器,GCC for openEuler 与鲲鹏芯片协同,通过编译器技术充分发挥芯片的性能,提升鲲鹏硬件平台上业务的性能体验。除支持开源 GCC 通用功能之外,GCC for openEuler 主要对以下三个方面进行了增强。
- 更丰富的编译算法:提供丰富的优化算法,如内存布局优化、结构体拆分优化、自动矢量化等,大幅提升指令和数据的吞吐量。
- 更灵活的指令流水:适配鲲鹏平台的指令流水优化,发挥鲲鹏架构极致算力。
- 更高效的运算库:深度优化数学库算法,提供丰富的矢量数学函数接口,大幅提升数学计算的效率。
二进制可以从这里下载。
用户指南和新特性,详见Wiki。
版本节奏
GCC for openEuler 每两年发布一个新版本,选择x.2.y以后的版本。
平台支持
GCC for openEuler 当前支持Linux/AArch64和Linux/x86平台。
License
GCC for openEuler 使用 GPLv3 协议,请见License。
如何提交贡献
我们非常欢迎开发者提交贡献,如果您发现了一个bug或者有一些想法想要交流,欢迎发邮件到dev列表或者提交一个issue。
源码编译指导
工具依赖
GCC for openEuler源码构建依赖软件包版本如下:
| 软件包名称 | 版本号 |
|---|---|
| bison | / |
| chrpath | / |
| flex | / |
| gcc | >= 7 |
| gcc-c++ | >= 7 |
| gdb | / |
| gettext | / |
| glibc-headers | / |
| libtool | / |
| make | / |
| python3-sphinx | / |
| sharutils | / |
| texinfo | / |
| zlib-devel | / |
| mpfr-devel | >= 3.1.0 |
| binutils | >= 2.31 |
| gmp-devel | >= 4.1.2 |
| libmpc-devel | >= 0.8.1 |
| glibc-devel | >= 2.17 |
版本兼容
GCC for openEuler部分特性使用高版本C++标准进行开发,过低版本的gcc可能因为标准兼容性问题无法构建GCC for openEuler。
| 公版GCC版本 | 是否可以构建GCC for openEuler | 不兼容的原因 |
|---|---|---|
| GCC12.x.x | √ | / |
| GCC11.x.x | √ | / |
| GCC10.x.x | √ | / |
| GCC9.x.x | √ | / |
| GCC8.x.x | √ | / |
| GCC7.x.x | √ | / |
| GCC6.x.x | × | GCC for openEuler使用了C++17标准的结构化绑定特性,此特性在GCC 6.x.x中不支持 |
构建流程
-
克隆代码
-
下载依赖 若环境没有安装依赖,则需要下载相关依赖。 在gcc源码目录下执行脚本下载依赖:
./contrib/download_prerequisites或者在yum源中安装依赖:yum install -y libmpc-devel isl-devel flex bison zlib texinfo gmp-devel mpfr-devel make -
新建编译目录,编译产物与源码目录分离
cd .. && mkdir build && cd build -
执行configure配置 具体配置根据用户需要进行设置,可
gcc -v参考系统gcc配置。 configure设置为GCC for openEuler的配置路径,prefix设置为安装路径,例如:../configure --prefix={xxx} --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,fortran,objc,obj-c++,lto --enable-plugin --enable-initfini-array --disable-libgcj --without-cloog --enable-gnu-indirect-function --build=aarch64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --disable-bootstrap --without-isl --with-multilib-list=lp64 --enable-bolt -
编译与安装
make -j && make install注意安装的路径在configure配置中设置为个人路径,防止覆盖系统GCC路径。