- 31 Jan, 2018 18 commits
-
-
Using pointer sized variables (e.g. size_t / ptrdiff_t) when the variables are used as array indices allows accessing larger arrays, and can be a slight performance improvement due to no need for sign or zero extending, or masking. Regtested on x86_64-pc-linux-gnu. libgfortran/ChangeLog: 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org> * generated/cshift1_16.c (cshift1): Regenerated. * generated/cshift1_4.c (cshift1): Regenerated. * generated/cshift1_8.c (cshift1): Regenerated. * generated/eoshift1_16.c (eoshift1): Regenerated. * generated/eoshift1_4.c (eoshift1): Regenerated. * generated/eoshift1_8.c (eoshift1): Regenerated. * generated/eoshift3_16.c (eoshift3): Regenerated. * generated/eoshift3_4.c (eoshift3): Regenerated. * generated/eoshift3_8.c (eoshift3): Regenerated. * generated/in_pack_c10.c (internal_pack_c10): Regenerated. * generated/in_pack_c16.c (internal_pack_c16): Regenerated. * generated/in_pack_c4.c (internal_pack_c4): Regenerated. * generated/in_pack_c8.c (internal_pack_c8): Regenerated. * generated/in_pack_i1.c (internal_pack_1): Regenerated. * generated/in_pack_i16.c (internal_pack_16): Regenerated. * generated/in_pack_i2.c (internal_pack_2): Regenerated. * generated/in_pack_i4.c (internal_pack_4): Regenerated. * generated/in_pack_i8.c (internal_pack_8): Regenerated. * generated/in_pack_r10.c (internal_pack_r10): Regenerated. * generated/in_pack_r16.c (internal_pack_r16): Regenerated. * generated/in_pack_r4.c (internal_pack_r4): Regenerated. * generated/in_pack_r8.c (internal_pack_r8): Regenerated. * generated/in_unpack_c10.c (internal_unpack_c10): Regenerated. * generated/in_unpack_c16.c (internal_unpack_c16): Regenerated. * generated/in_unpack_c4.c (internal_unpack_c4): Regenerated. * generated/in_unpack_c8.c (internal_unpack_c8): Regenerated. * generated/in_unpack_i1.c (internal_unpack_1): Regenerated. * generated/in_unpack_i16.c (internal_unpack_16): Regenerated. * generated/in_unpack_i2.c (internal_unpack_2): Regenerated. * generated/in_unpack_i4.c (internal_unpack_4): Regenerated. * generated/in_unpack_i8.c (internal_unpack_8): Regenerated. * generated/in_unpack_r10.c (internal_unpack_r10): Regenerated. * generated/in_unpack_r16.c (internal_unpack_r16): Regenerated. * generated/in_unpack_r4.c (internal_unpack_r4): Regenerated. * generated/in_unpack_r8.c (internal_unpack_r8): Regenerated. * generated/reshape_c10.c (reshape_c10): Regenerated. * generated/reshape_c16.c (reshape_c16): Regenerated. * generated/reshape_c4.c (reshape_c4): Regenerated. * generated/reshape_c8.c (reshape_c8): Regenerated. * generated/reshape_i16.c (reshape_16): Regenerated. * generated/reshape_i4.c (reshape_4): Regenerated. * generated/reshape_i8.c (reshape_8): Regenerated. * generated/reshape_r10.c (reshape_r10): Regenerated. * generated/reshape_r16.c (reshape_r16): Regenerated. * generated/reshape_r4.c (reshape_r4): Regenerated. * generated/reshape_r8.c (reshape_r8): Regenerated. * generated/shape_i1.c (shape_1): Regenerated. * generated/shape_i16.c (shape_16): Regenerated. * generated/shape_i2.c (shape_2): Regenerated. * generated/shape_i4.c (shape_4): Regenerated. * generated/shape_i8.c (shape_8): Regenerated. * generated/spread_c10.c (spread_scalar_c10): Regenerated. * generated/spread_c16.c (spread_scalar_c16): Regenerated. * generated/spread_c4.c (spread_scalar_c4): Regenerated. * generated/spread_c8.c (spread_scalar_c8): Regenerated. * generated/spread_i1.c (spread_scalar_i1): Regenerated. * generated/spread_i16.c (spread_scalar_i16): Regenerated. * generated/spread_i2.c (spread_scalar_i2): Regenerated. * generated/spread_i4.c (spread_scalar_i4): Regenerated. * generated/spread_i8.c (spread_scalar_i8): Regenerated. * generated/spread_r10.c (spread_scalar_r10): Regenerated. * generated/spread_r16.c (spread_scalar_r16): Regenerated. * generated/spread_r4.c (spread_scalar_r4): Regenerated. * generated/spread_r8.c (spread_scalar_r8): Regenerated. * intrinsics/random.c (jump): Use size_t for array index in loop. (getosrandom): Likewise. (arandom_r4): Make n an index_type. (arandom_r8): Likewise. (arandom_r10): Likewise. (arandom_r16): Likewise. (scramble_seed): Use size_t for array index in loop. * m4/cshift1.m4: Make i an index_type. * m4/eoshift1.m4: Likewise. * m4/eoshift3.m4: Likewise. * m4/in_pack.m4: Make n an index_type. * m4/in_unpack.m4: Likewise. * m4/reshape.m4: Make n and dim index_type's. * m4/shape.m4: Make n an index_type. * m4/spread.m4: Likewise, use index_type argument rather than copying to int. * runtime/bounds.c (bounds_ifunction_return): Make n an index_type. * runtime/in_pack_generic.c (internal_pack): Likewise. * runtime/in_unpack_generic.c (internal_unpack): Make n and size index_type's. From-SVN: r257234
Janne Blomqvist committed -
As part of the change to larger character lengths, the string copy algorithm was temporarily pessimized to get around some spurious -Wstringop-overflow warnings. Having tried a number of variations of this algorithm I have managed to get it down to one spurious warning, only with -O1 optimization, in the testsuite. This patch reinstates the optimized variant and modifies this one testcase to ignore the warning. Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 * trans-expr.c (fill_with_spaces): Use memset instead of generating loop. (gfc_trans_string_copy): Improve opportunity to use builtins with constant lengths. gcc/testsuite/ChangeLog: 2018-01-31 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/78534 * gfortran.dg/allocate_deferred_char_scalar_1.f03: Prune -Wstringop-overflow warnings due to spurious warning with -O1. * gfortran.dg/char_cast_1.f90: Update dump scan pattern. * gfortran.dg/transfer_intrinsic_1.f90: Likewise. From-SVN: r257233
Janne Blomqvist committed -
2018-01-31 Richard Biener <rguenther@suse.de> PR tree-optimization/84132 * tree-data-ref.c (analyze_miv_subscript): Properly check whether evolution_function_is_affine_multivariate_p before calling gcd_of_steps_may_divide_p. * g++.dg/torture/pr84132.C: New testcase. From-SVN: r257232
Richard Biener committed -
* g++.dg/torture/pr81360.C: Drop unintended -O2 from dg-options and dg-final scan. From-SVN: r257230
Jan Hubicka committed -
PR target/83618 gcc/ * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. * config/i386/i386.md (rdpid_rex64) New. (rdpid): Make 32bit only. gcc/testsuite/ * gcc.target/i386/rdpid.c: Remove "eax". From-SVN: r257229
Julia Koval committed -
PR lto/84105 * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with an IDENTIFIER_NODE for FUNCTION_TYPE's. From-SVN: r257228
Aldy Hernandez committed -
2018-01-12 Eric Botcazou <ebotcazou@adacore.com> * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. From-SVN: r257227
Eric Botcazou committed -
This test has been failing since forever, it has never passed AFAIK. The PR details the vectoriser deficiency. I propose we xfail this with a reference to the PR. PR tree-optimization/64946 * gcc.target/aarch64/vect-abs-compile.c: XFAIL byte and half-word scan-assembler checks. From-SVN: r257225
Kyrylo Tkachov committed -
PR rtl-optimization/84071 * combine.c (record_dead_and_set_regs_1): Record the source unmodified for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. From-SVN: r257224
Eric Botcazou committed -
The 'aux' variable attribute is used to directly access the auxiliary register space from C. gcc/ 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_handle_aux_attribute): New function. (arc_attribute_table): Add 'aux' attribute. (arc_in_small_data_p): Consider aux like variables. (arc_is_aux_reg_p): New function. (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. (arc_get_aux_arg): New function. (prepare_move_operands): Handle aux-register access. (arc_handle_aux_attribute): New function. * doc/extend.texi (ARC Variable attributes): Add subsection. testsuite/ 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/taux-1.c: New test. * gcc.target/arc/taux-2.c: Likewise. From-SVN: r257223
Claudiu Zissulescu committed -
The _Uncached type qualifier can be used to bypass the cache without resorting to declaring variables as volatile. gcc/ 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. * config/arc/arc.c (arc_handle_uncached_attribute): New function. (arc_attribute_table): Add 'uncached' attribute. (arc_print_operand): Print '.di' flag for uncached memory accesses. (arc_in_small_data_p): Do not consider for small data the uncached types. (arc_is_uncached_mem_p): New function. * config/arc/predicates.md (compact_store_memory_operand): Check for uncached memory accesses. (nonvol_nonimm_operand): Likewise. * gcc/doc/extend.texi (ARC Type Attribute): New subsection. gcc/testsuite 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/uncached.c: New test. From-SVN: r257222
Claudiu Zissulescu committed -
PR lto/83954 * gnat.dg/lto20.adb: Remove dg-excess-errors. From-SVN: r257221
Rainer Orth committed -
re PR preprocessor/69869 (internal compiler error: Segmentation fault in call to skip_macro_block_comment when using '-traditional-cpp') PR preprocessor/69869 * traditional.c (skip_macro_block_comment): Return bool, true if the macro block comment is unterminated. (copy_comment): Use return value from skip_macro_block_comment instead of always false. * gcc.dg/cpp/trad/pr69869.c: New test. From-SVN: r257220
Jakub Jelinek committed -
re PR c/84100 (Function __attribute__((optimize(align-loops=32))) gives spurious warning and is ignored) PR c/84100 * common.opt (falign-functions=, falign-jumps=, falign-labels=, falign-loops=): Add Optimization flag. * gcc.dg/pr84100.c: New test. From-SVN: r257219
Jakub Jelinek committed -
* go-gcc.cc (Gcc_backend::convert_tree): New private method. (Gcc_backend::constructor_expression): Call it. (Gcc_backend::assignment_statement): Likewise. (Gcc_backend::temporary_variable): Likewise. Fixes https://golang.org/issue/#23606 From-SVN: r257218
Ian Lance Taylor committed -
re PR target/84064 (ICE in ix86_expand_prologue related to -fstack-clash-protection and memcpy on i686) PR target/84064 * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument INT_REGISTERS_SAVED. Check it prior to calling get_scratch_register_on_entry. (ix86_adjust_stack_and_probe): Similarly. (ix86_emit_probe_stack_range): Similarly. (ix86_expand_prologue): Corresponding changes. PR target/84064 * gcc.target/i386/pr84064: New test. From-SVN: r257217
Jeff Law committed -
Function_type and Backend_function_type have different backend representations, so they should not be identical. Otherwise it confuses Type::type_btypes map. Reviewed-on: https://go-review.googlesource.com/90975 From-SVN: r257216
Ian Lance Taylor committed -
From-SVN: r257215
GCC Administrator committed
-
- 30 Jan, 2018 22 commits
-
-
PR debug/84131 * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off to DATA_FIELD's offset rather than OFFSET_FIELD's offset. From-SVN: r257212
Jakub Jelinek committed -
2017-01-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84134 * array.c (gfc_ref_dimen_size): Whitespace fixes. If stride is zero, return false. 2017-01-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84134 * gfortran.dg/data_implied_do_2.f90: New test. From-SVN: r257211
Thomas Koenig committed -
PR target/40411 * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, -std=iso9899:199409 instead of -pedantic to select values-Xc.o. From-SVN: r257209
Rainer Orth committed -
2018-01-30 Janus Weil <janus@gcc.gnu.org> * gfortran.dg/pr68318_1.f90: Add closing bracket in dejagnu directive. From-SVN: r257208
Janus Weil committed -
From-SVN: r257207
Rainer Orth committed -
2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84133 * frontend-passes (matmul_to_var_expr): Return early if in association list. (inline_matmul_assign): Likewise. 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84133 * gfortran.dg/inline_matmul_21.f90: New test case. From-SVN: r257206
Thomas Koenig committed -
* g++.dg/torture/pr81360.C: Add -fdump-ipa-icf to dg-options. From-SVN: r257205
Rainer Orth committed -
2018-01-30 Vladimir Makarov <vmakarov@redhat.com> PR target/84112 * lra-constraints.c (curr_insn_transform): Process AND in the address. 2018-01-30 Vladimir Makarov <vmakarov@redhat.com> PR target/84112 * pr84112.c: New. From-SVN: r257204
Vladimir Makarov committed -
PR rtl-optimization/83986 * sched-deps.c (sched_analyze_insn): For frame related insns, add anti dependence against last_pending_memory_flush in addition to pending_jump_insns. * gcc.dg/pr83986.c: New test. From-SVN: r257203
Jakub Jelinek committed -
* decl2.c (determine_visibility): Look for outer containing template instantiation. From-SVN: r257202
Jason Merrill committed -
* pt.c (instantiate_class_template_1): Ignore more lambdas. From-SVN: r257199
Jason Merrill committed -
re PR fortran/37577 ([meta-bug] change internal array descriptor format for better syntax, C interop TR, rank 15) 2018-01-30 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/37577 * libgfortran.h: Remove GFC_DTYPE_DERIVED_1, GFC_DTYPE_DERIVED_2, GFC_DTYPE_DERIVED_4, GFC_DTYPE_DERIVED_8 and GFC_DTYPE_DERIVED_16. * m4/cshift1.m4: Remove GFC_DTYPE_DERIVED_1. * generated/cshift1_16.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/cshift1_8.c: Regenerated. * intrinsics/cshift0.c: Remove GFC_DTYPE_DERIVED_1. * intrinsics/pack_generic.c (pack): Move handling of other types into separate switch statement. * intrinsics/spread_generic.c (spread): Likewise. (spread_scalar): Likewise. * intrinsics/unpack_generic.c (unpack1): Likewise. (unpack0): Likewise. * runtime/in_pack_generic.c (internal_pack): Likewise. * runtime/in_unpack_generic.c (internal_unpack): Likewise. From-SVN: r257195
Thomas Koenig committed -
If there are copies between the GIMPLE_PHI at the loop body and the increment that reaches it (presumably through a back edge), still regard it as a simple_iv_increment, so that we won't consider the value in the back edge eligible for forwprop. Doing so would risk making the phi node and the incremented conflicting value live within the loop, and the phi node to be preserved for propagated uses after the loop. for gcc/ChangeLog PR tree-optimization/81611 * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening copies. From-SVN: r257194
Alexandre Oliva committed -
2018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return a reg rtx. From-SVN: r257193
Aaron Sawdey committed -
This patch xfails a few test cases on powerpc64 that fail after r256380 due to a longstanding issue with floating-point compares. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58684 for more information. 2018-01-30 Bill Seurer <seurer@linux.vnet.ibm.com> PR 58684 * gcc/testsuite/gcc.dg/torture/inf-compare-1.c: Add xfail. * gcc/testsuite/gcc.dg/torture/inf-compare-2.c: Add xfail. * gcc/testsuite/gcc.dg/torture/inf-compare-3.c: Add xfail. * gcc/testsuite/gcc.dg/torture/inf-compare-4.c: Add xfail. From-SVN: r257190
Bill Seurer committed -
PR tree-optimization/84111 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip inner loops added during recursion, as they don't have up-to-date SSA form. * gcc.c-torture/compile/pr84111.c: New test. From-SVN: r257188
Jakub Jelinek committed -
PR ipa/83179 * gcc.dg/ipa/inline-2.c: Fix template. * gcc.dg/ipa/inline-3.c: Fix template. From-SVN: r257186
Jan Hubicka committed -
PR ipa/81360 * ipa-inline.c (can_inline_edge_p): Break out late tests to... (can_inline_edge_by_limits_p): ... here. (can_early_inline_edge_p, check_callers, update_caller_keys, update_callee_keys, recursive_inlining, add_new_edges_to_heap, speculation_useful_p, inline_small_functions, inline_small_functions, flatten_function, inline_to_all_callers_1): Update. * g++.dg/torture/pr81360.C: New testcase From-SVN: r257184
Jan Hubicka committed -
PR lto/83954 * lto-symtab.c (warn_type_compatibility_p): Silence false positive for type match warning on arrays of pointers. * gcc.dg/lto/pr83954.h: New testcase. * gcc.dg/lto/pr83954_0.c: New testcase. * gcc.dg/lto/pr83954_1.c: New testcase. From-SVN: r257183
Jan Hubicka committed -
* profile-count.c (profile_count::combine_with_ipa_count): Handle zeros correctly. From-SVN: r257182
Jan Hubicka committed -
re PR target/83008 ([performance] Is it better to avoid extra instructions in data passing between loops?) 2018-01-30 Richard Biener <rguenther@suse.de> PR tree-optimization/83008 * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost invariant and constant vector uses in stmts when they need more than one stmt. From-SVN: r257181
Richard Biener committed -
gcc/testsuite: PR bootstrap/84017 * gcc.dg/debug/dwarf2/prod-options.c: Add -fno-merge-debug-strings to dg-options. Simplify DW_AT_producer scan. gcc: PR bootstrap/84017 * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. * configure: Regenerate. From-SVN: r257179
Rainer Orth committed
-