On 06/04/16 11:10, James Greenhalgh wrote:
> Hi,
> 
> This patch set fixes PR70133, which is a bug in the way we handle extension
> strings after using -march or -mcpu=native. In investigating this, I found
> other bugs in the way we communicate architceture intention between the
> compiler and the assembler.
> 
> This patch set cleans this up somewhat.
> 
> Tested on a Cortex-A57 based board, a Cortex-A57/Cortex-A53 big.LITTLE
> based board, a Cortex-A72/Cortex-A53 big.LITTLE based board and an xgene1
> based board. I don't have access to the board in the bug report, but I fed
> representative data to the detection code to check that worked too.
> 
> The patch set goes as follows...
> 
> [Patch AArch64 1/3] Enable CRC by default for armv8.1-a
> 
>   The assmebler will enable CRC by default for -march=armv8.1-a, and we should
>   follow that expectation in GCC.
> 
> [Patch AArch64 2/3] Rework the code to print extension strings (pr70133)
> 
>   There are a number of bugs that come from the way we enable and disable
>   extension strings. Rework this code so we always put out a safe and minimal
>   set of flags for a -march/-mcpu input.
> 
> [Patch AArch64 3/3] Fix up for pr70133
> 
>   Use the infratructure added in 2/3 to fix the PR.
> 
> OK for trunk?
> 

OK for all of these.

R.

> Thanks,
> James
> 
> ---
> [Patch AArch64 1/3] Enable CRC by default for armv8.1-a
> 
> 2016-04-06  James Greenhalgh  <james.greenha...@arm.com>
> 
>       * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
>       AARCH64_FL_CRC.
> 
> 
> [Patch AArch64 2/3] Rework the code to print extension strings (pr70133)
> 
> gcc/
> 
> 2016-04-06  James Greenhalgh  <james.greenha...@arm.com>
> 
>       PR target/70133
>       * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
>       track of a canonical flag name.
>       (all_extensions): Likewise.
>       (arch_to_arch_name): Also track extension flags enabled by the arch.
>       (all_architectures): Likewise.
>       (aarch64_parse_extension): Move to here.
>       (aarch64_get_extension_string_for_isa_flags): Take a new argument,
>       rework.
>       (aarch64_rewrite_selected_cpu): Update for above change.
>       * config/aarch64/aarch64-option-extensions.def: Rework the way flags
>       are handled, such that the single explicit value enabled by an
>       extension is kept seperate from the implicit values it also enables.
>       * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
>       to here.
>       (aarch64_parse_extension): New.
>       * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
>       here to config/aarch64/aarch64-protos.h.
>       (aarch64_parse_extension): Move from here to
>       common/config/aarch64/aarch64-common.c.
>       (aarch64_option_print): Update.
>       (aarch64_declare_function_name): Likewise.
>       (aarch64_start_file): Likewise.
>       * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
>       the canonical flag for extensions.
>       * config.gcc (aarch64*-*-*): Extend regex for capturing extension
>       flags.
> 
> gcc/testsuite/
> 
> 2016-04-06  James Greenhalgh  <james.greenha...@arm.com>
> 
>       PR target/70133
>       * gcc.target/aarch64/mgeneral-regs_4.c: Fix expected output.
>       * gcc.target/aarch64/target_attr_15.c: Likewise.
> 
> [Patch AArch64 3/3] Fix up for pr70133
> 
> 2016-04-06  James Greenhalgh  <james.greenha...@arm.com>
> 
>       PR target/70133
> 
>       * config/aarch64/driver-aarch64.c
>       (aarch64_get_extension_string_for_isa_flags): New.
>       (arch_extension): Rename to...
>       (aarch64_arch_extension): ...This.
>       (ext_to_feat_string): Rename to...
>       (aarch64_extensions): ...This.
>       (aarch64_core_data): Keep track of architecture extension flags.
>       (cpu_data): Rename to...
>       (aarch64_cpu_data): ...This.
>       (aarch64_arch_driver_info): Keep track of architecture extension
>       flags.
>       (get_arch_name_from_id): Rename to...
>       (get_arch_from_id): ...This, change return type.
>       (host_detect_local_cpu): Update and reformat for renames, handle
>       extensions through common infrastructure.
> 

Reply via email to