* Claudiu Zissulescu <claudiu.zissule...@synopsys.com> [2017-07-24 10:42:54 
+0200]:

> From: claziss <claz...@synopsys.com>
> 
> Add support for -G option to ARC backend.
> 
> gcc/
> 2017-04-24  Claudiu Zissulescu  <claz...@synopsys.com>
> 
>       * config.gcc: Use g.opt for arc.
>       * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
>       functionality moved to ...
>       (legitimate_scaled_address_p): New function, ...here.
>       (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
>       (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
>       (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
>       condition.
>       (arc_override_options): Handle G option.
>       (arc_output_pic_addr_const): Correct function definition.
>       (arc_legitimate_address_p): Use legitimate_scaled_address_p.
>       (arc_decl_anon_ns_mem_p): Delete.
>       (arc_in_small_data_p): Overhaul this function to take into
>       consideration the value given via G option.
>       (arc_rewrite_small_data_1): Renamed and corrected old
>       arc_rewrite_small_data function.
>       (arc_rewrite_small_data): New function.
>       (small_data_pattern): Don't use pic_offset_table_rtx.
>       * config/arc/arc.h (CC1_SPEC): Recognize G option.
>       * config/arc/simdext.md (movmisalignv2hi): Use
>       prepare_move_operands function.
>       (mov*): Likewise.
>       (movmisalign*): Likewise.
> 
> gcc/testsuite/
> 2017-04-24  Claudiu Zissulescu  <claz...@synopsys.com>
> 
>       * gcc.target/arc/sdata-5.c: New test.
>       * gcc.target/arc/arc700-stld-hazard.c: Update test options.

>From looking at other targets, I think that we need to add
documentation for -G into the ARC Options section of of
gcc/doc/invoke.texi.

> diff --git a/gcc/testsuite/gcc.target/arc/sdata-5.c 
> b/gcc/testsuite/gcc.target/arc/sdata-5.c
> new file mode 100755
> index 0000000..0fdd52d
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/arc/sdata-5.c
> @@ -0,0 +1,8 @@
> +/* { dg-do compile } */
> +/* { dg-options "-w -Os" } */
> +
> +const a[1] = {};
> +static short b[] = {};
> +
> +c;
> +fn1() { return a + b[c]; }

Is it critical that we rely on default types here?  I know it's
legitimate, but it just makes me sad to see new code using default
types.

Also, I guess that this test expects some things to be placed into the
small data section? Is there no pattern we can 'scan-assembler' for?
Or is this testing some other feature / bug?

Otherwise seems fine.

Thanks,
Andrew

Reply via email to