aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2016-07-18re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution ↵Yuri Rumyantsev4-22/+40
test) gcc/ 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com> PR tree-optimization/71734 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which contains REF, use it to check safelen, assume that safelen value must be greater 1, fix style. (ref_indep_loop_p_2): Add REF_LOOP argument. (ref_indep_loop_p): Pass LOOP as additional argument to ref_indep_loop_p_2. gcc/testsuite/ 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com> PR tree-optimization/71734 * g++.dg/vect/pr70729.cc: Delete redundant dg options, fix style. From-SVN: r238435
2016-07-18Allocate constant size dynamic stack space in the prologueDominik Vogt8-84/+225
The attached patch fixes a warning during Linux kernel compilation on S/390 due to -mwarn-dynamicstack and runtime alignment of stack variables with constant size causing cfun->calls_alloca to be set (even if alloca is not used at all). The patched code places constant size runtime aligned variables in the "virtual stack vars" area instead of creating a "virtual stack dynamic" area. This behaviour is activated by defining #define ALLOCATE_DYNAMIC_STACK_SPACE_IN_PROLOGUE 1 in the backend; otherwise the old logic is used. The kernel uses runtime alignment for the page structure (aligned to 16 bytes), and apart from triggereing the alloca warning (-mwarn-dynamicstack), the current Gcc also generates inefficient code like aghi %r15,-160 # prologue: create stack frame lgr %r11,%r15 # prologue: generate frame pointer aghi %r15,-32 # space for dynamic stack which could be simplified to aghi %r15,-192 (if later optimization passes are able to get rid of the frame pointer). Is there a specific reason why the patched behaviour shouldn't be used for all platforms? -- As the placement of runtime aligned stack variables with constant size is done completely in the middleend, I don't see a way to fix this in the backend. gcc/ChangeLog: 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com> * cfgexpand.c (expand_stack_vars): Implement synamic stack space allocation in the prologue. * explow.c (get_dynamic_stack_base): New function to return an address expression for the dynamic stack base. (get_dynamic_stack_size): New function to do the required dynamic stack space size calculations. (allocate_dynamic_stack_space): Use new functions. (align_dynamic_address): Move some code from allocate_dynamic_stack_space to new function. * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export. gcc/testsuite/ChangeLog: 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com> * gcc.target/s390/warn-dynamicstack-1.c: New test. * gcc.dg/stack-usage-2.c (foo3): Adapt expected warning. stack-layout-dynamic-1.c: New test. From-SVN: r238432
2016-07-18S/390: Fix alignment check for literal pool references.Andreas Krebbel4-20/+44
gcc/ChangeLog: 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_encode_section_info): Always set notaligned marker if mode size is 0 or no MEM_ALIGN info could be found. gcc/testsuite/ChangeLog: 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * gcc.target/s390/nolrl-1.c: New test. From-SVN: r238427
2016-07-18re PR tree-optimization/71893 (gfortran.dg ICEs in gcc/tree-ssa-pre.c; ↵Richard Biener3-0/+13
-fcode-hoisting?) 2016-07-18 Richard Biener <rguenther@suse.de> PR tree-optimization/71893 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate for sizetype cast added by array_ref_element_size. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. From-SVN: r238426
2016-07-18Daily bump.GCC Administrator1-1/+1
From-SVN: r238424
2016-07-17re PR fortran/71523 (Static variables given automatic initializers with ↵Fritz Reese5-2/+110
-finit-* and -fmax-stack-var-size) 2016-07-17 Fritz Reese <fritzoreese@gmail.com> PR fortran/71523 * trans-decl.c (gfc_finish_var_decl): Replace automatic initializer with a static one. * gfortran.dg/pr71523_1.f90: New test. * gfortran.dg/pr71523_2.f90: New test. From-SVN: r238420
2016-07-17Daily bump.GCC Administrator1-1/+1
From-SVN: r238419
2016-07-16pa.c (hppa_profile_hook): Allocate stack space for register parameters.John David Anglin3-42/+238
* config/pa/pa.c (hppa_profile_hook): Allocate stack space for register parameters. Remove code to initialize argument pointer on TARGET_64BIT. Optimize call to _mcount when it can be reached using a pc-relative branch. Cleanup conditional code. * config/pa/pa.md (call_mcount): New expander. (call_mcount_nonpic): New insn. (call_mcount_pic): New insn and split. (call_mcount_pic_post_reload): New insn. (call_mcount_64bit): New insn and split. (call_mcount_64bit_post_reload): New insn. From-SVN: r238414
2016-07-16nullptr35.C (caught): Fix typo.Andreas Schwab2-1/+5
* g++.dg/cpp0x/nullptr35.C (caught): Fix typo. From-SVN: r238413
2016-07-16Daily bump.GCC Administrator1-1/+1
From-SVN: r238409
2016-07-15re PR fortran/62125 (Nested select type not accepted (rejects valid))Jerry DeLisle4-1/+50
2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org> Marco Restelli <mrestelli@gmail.com> PR fortran/62125 * symbol.c (select_type_insert_tmp): Recursively call self to take care of nested select type. * gfortran.dg/pr62125.f90: New test. Co-Authored-By: Marco Restelli <mrestelli@gmail.com> From-SVN: r238400
2016-07-15divkc3-1.c: Require p8vector support.Bill Schmidt3-0/+7
2016-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/divkc3-1.c: Require p8vector support. * gcc.target/powerpc/mulkc3-1.c: Likewise. From-SVN: r238398
2016-07-15PR c++/71495 - spurious note during SFINAE.Jason Merrill4-2/+22
* call.c (convert_like_real): Mask complain. * semantics.c (perform_koenig_lookup): Likewise. From-SVN: r238397
2016-07-15c++/58796 Make nullptr match exception handlers of pointer typeJonathan Wakely3-4/+58
libstdc++-v3: PR c++/58796 * libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Make nullptr match handlers of pointer type. gcc/testsuite: PR c++/58796 * g++.dg/cpp0x/nullptr21.C: Remove void* handlers. * g++.dg/cpp0x/nullptr35.C: New test. From-SVN: r238396
2016-07-15PR c++/71092 - ICE with array and constexpr.Jason Merrill3-2/+77
* constexpr.c (cxx_eval_call_expression): Fail quietly when cgraph threw away DECL_SAVED_TREE. From-SVN: r238395
2016-07-15PR c++/71117 - core 2189 and generic lambdaJason Merrill4-0/+38
* call.c (add_template_conv_candidate): Disable if there are viable candidates. From-SVN: r238394
2016-07-15PR c++/71511 - ICE on decltype scope in declaration.Jason Merrill3-0/+15
* typeck2.c (cxx_incomplete_type_diagnostic): Handle DECLTYPE_TYPE. From-SVN: r238393
2016-07-15PR c++/71513 - alignas on member enum in templateJason Merrill3-8/+27
* pt.c (tsubst_attributes): Fix loop logic. From-SVN: r238392
2016-07-15PR c++/71604 - type definition in range-based forJason Merrill4-5/+36
PR c++/54430 * parser.c (cp_parser_range_for): Modify IDENTIFIER_BINDING directly. (cp_parser_simple_declaration): Diagnose type definition in for-range-declaration. From-SVN: r238391
2016-07-15PR c++/71711 - mangle C++1z fold-expressions.Jason Merrill6-5/+88
* operators.def: Add *_FOLD_EXPR. * cp-tree.h (FOLD_EXPR_P): Parenthesize. * mangle.c (write_expression): Handle fold-expressions. * pt.c (tsubst_unary_left_fold, tsubst_binary_left_fold) (tsubst_unary_right_fold, tsubst_binary_right_fold): Handle partial instantiation. From-SVN: r238390
2016-07-15PR c++/71814 - mangling sizeof... (sP and sZ)Jason Merrill9-10/+148
gcc/cp/ * mangle.c (write_expression): Handle sizeof... an argument pack. libiberty/ * cp-demangle.c (cplus_demangle_operators): Add sP and sZ. (d_print_comp_inner): Handle them. (d_template_args_1): Split out from d_template_args. (d_args_length): New. From-SVN: r238389
2016-07-15Update -fabi-version default to 11.Jason Merrill3-4/+8
* c-opts.c (c_common_post_options): Update -fabi-version default to 11. From-SVN: r238388
2016-07-15PR c++/71718 - infinite recursion and alias templateJason Merrill3-0/+28
* pt.c (push_tinst_level_loc): Set at_eof before fatal_error. From-SVN: r238387
2016-07-15PR c++/70824 - initializer_list in templateJason Merrill3-2/+28
* init.c (constant_value_1): Don't instantiated DECL_INITIAL of artificial variables. From-SVN: r238386
2016-07-15Typo.Georg-Johann Lay1-2/+1
From-SVN: r238382
2016-07-15predicates.md (const_m255_to_m1_operand): New.Georg-Johann Lay5-15/+131
* config/avr/predicates.md (const_m255_to_m1_operand): New. * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints. * config/avr/avr.md (add<mode>3) <ALL1>: Make "r,0,r" more expensive. (*cmphi.zero-extend.0, *cmphi.zero-extend.1) (*usum_widenqihi3, *udiff_widenqihi3) (*addhi3_zero_extend.const): New combiner insns. (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if just 1 bit is affected. * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3]. (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1. From-SVN: r238381
2016-07-15scev-8.c: Update test string.Bin Cheng2-1/+5
gcc/testsuite * gcc.dg/tree-ssa/scev-8.c: Update test string. From-SVN: r238377
2016-07-15c-parser.c (c_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER.Cesar Philippidis8-10/+34
gcc/c/ * c-parser.c (c_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER. * c-typeck.c (handle_omp_array_sections): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. gcc/cp/ * parser.c (cp_parser_oacc_declare): Don't scan for GOMP_MAP_POINTER. * semantics.c (handle_omp_array_sections): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. gcc/ * omp-low.c (lower_omp_target): Mark data clauses with GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having zero-length subarrays. libgomp/ * testsuite/libgomp.oacc-c-c++-common/zero_length_subarrays.c: New test. From-SVN: r238376
2016-07-15openmp.c (gfc_match_omp_clauses): Scan for clause vector_length before vector.Cesar Philippidis4-5/+27
gcc/fortran/ * openmp.c (gfc_match_omp_clauses): Scan for clause vector_length before vector. gcc/testsuite/ * gfortran.dg/goacc/vector_length.f90: New test. From-SVN: r238375
2016-07-15re PR tree-optimization/71881 (ICE on valid code at -O3 with -g enabled on ↵Richard Biener4-1/+41
x86_64-linux-gnu: cannot update SSA form) 2016-07-15 Richard Biener <rguenther@suse.de> PR tree-optimization/71881 * tree-loop-distribution.c (destroy_loop): Remove blocks in reverse DOM order to make debug temp generation happy. * gcc.dg/torture/pr71881.c: New testcase. From-SVN: r238374
2016-07-15re PR tree-optimization/71887 (wrong code (SIGFPE) at -O1 and above on ↵Richard Biener4-4/+32
x86_64-linux-gnu (in both 32-bit and 64-bit modes)) 2016-07-15 Richard Biener <rguenther@suse.de> PR tree-optimization/71887 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and verify it is not zero for division / modulo handling. (value_replacement): Adjust. * gcc.dg/torture/pr71887.c: New testcase. From-SVN: r238373
2016-07-15[PATCH/AARCH64] Add rtx_costs routine for vulcan.Virendra Pathak4-1/+191
gcc/ChangeLog: 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com> Julian Brown <julian@codesourcery.com> * config/aarch64/aarch64-cores.def: Update vulcan COSTS. * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): New variable. * config/aarch64/aarch64.c (vulcan_addrcost_table): Likewise. (vulcan_regmove_cost): Likewise. (vulcan_vector_cost): Likewise. (vulcan_branch_cost): Likewise. (vulcan_tunings): Likewise. Co-Authored-By: Julian Brown <julian@codesourcery.com> From-SVN: r238372
2016-07-15handle undefined extern vars in output_in_orderAlexander Monakov3-31/+36
* cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF. (output_in_order): Loop over undefined variables too. Output them via assemble_undefined_decl. Skip variables that correspond to hard registers or have value-exprs. * varpool.c (symbol_table::output_variables): Handle undefined variables together with defined ones. From-SVN: r238371
2016-07-15tree-ssa-pre.c (get_representative_for): Make sure to return the value ↵Richard Biener2-17/+15
number of SSA names. 2016-07-15 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (get_representative_for): Make sure to return the value number of SSA names. (phi_translate_1): get_representative_for cannot return NULL. (do_pre_regular_insertion): Remove redundant call to fully_constant_expression. (do_pre_partial_partial_insertion): Likewise. From-SVN: r238370
2016-07-15re PR c/71858 (Surprising suggestions for misspellings)Jakub Jelinek6-4/+92
PR c/71858 * c-common.h (enum lookup_name_fuzzy_kind): Add FUZZY_LOOKUP_FUNCTION_NAME. * c-decl.c (implicit_decl_warning): Use FUZZY_LOOKUP_FUNCTION_NAME instead of FUZZY_LOOKUP_NAME. (lookup_name_fuzzy): For FUZZY_LOOKUP_FUNCTION_NAME consider FUNCTION_DECLs, {VAR,PARM}_DECLs function pointers and macros. * gcc.dg/spellcheck-identifiers-3.c: New test. From-SVN: r238369
2016-07-15re PR fortran/71807 (Internal compiler error with NULL() reference in ↵Andre Vehreschild4-0/+47
structure constructor) gcc/fortran/ChangeLog: 2016-07-15 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/71807 * trans-expr.c (gfc_trans_subcomponent_assign): Special casing when allocatable component is set to null() in initializer. gcc/testsuite/ChangeLog: 2016-07-15 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/71807 * gfortran.dg/null_9.f90: New test. From-SVN: r238368
2016-07-15tree-scalar-evolution.c (simple_iv_with_niters): New funcion.Bin Cheng7-53/+170
* tree-scalar-evolution.c (simple_iv_with_niters): New funcion. (derive_simple_iv_with_niters): New function. (simple_iv): Rewrite using simple_iv_with_niters. * tree-scalar-evolution.h (simple_iv_with_niters): New decl. * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New function. (number_of_iterations_exit): Rewrite using above function. * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New Decl. gcc/testsuite * gcc.dg/tree-ssa/loop-41.c: New test. From-SVN: r238367
2016-07-15re PR tree-optimization/71347 (Performance drop after r235513 on x86-64 in ↵Bin Cheng2-1/+6
32-bit mode.) gcc/testsuite PR tree-optimization/71347 * gcc.dg/tree-ssa/pr71347.c: XFAIL on ia64, arm, m68k and sparc. From-SVN: r238366
2016-07-15i386.c (ix86_builtin_vectorization_cost): Adjust vec_construct cost.Richard Biener2-4/+6
2016-07-15 Richard Biener <rguenther@suse.de> * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust vec_construct cost. From-SVN: r238364
2016-07-15Daily bump.GCC Administrator1-1/+1
From-SVN: r238362
2016-07-14re PR fortran/29819 (Error/warning message should ignore comments for "1" in ↵Steven G. Kargl7-21/+36
%C output) 2016-07-14 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/29819 * parse.c (parse_contained): Use proper locus. 2016-07-14 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/29819 * gfortran.dg/bind_c_usage_9.f03: Move dg-error. * gfortran.dg/contains.f90: Ditto. * gfortran.dg/contains_empty_1.f03: Ditto. * gfortran.dg/submodule_3.f08: Ditto. From-SVN: r238354
2016-07-14re PR testsuite/71865 (test case gcc.dg/diagnostic-token-ranges.c fails ↵Jakub Jelinek2-4/+9
starting with r237714) PR testsuite/71865 * gcc.dg/diagnostic-token-ranges.c: Add -std=c11 to dg-options. (wide_string_literal_in_asm): Use __asm instead of asm, adjust expected diagnostics. From-SVN: r238353
2016-07-14re PR c/71858 (Surprising suggestions for misspellings)Jakub Jelinek7-3/+51
PR c/71858 * c-decl.c (lookup_name_fuzzy): Ignore binding->invisible. * gcc.dg/spellcheck-identifiers.c (snprintf): Declare. * gcc.dg/spellcheck-identifiers-2.c: New test. * gcc.dg/diagnostic-token-ranges.c (nanl): Declare. * c-c++-common/attributes-1.c: Adjust dg-prune-output. From-SVN: r238352
2016-07-14re PR tree-optimization/71872 (ICE in inchash::add_expr, at tree.c:7782 - ↵Jakub Jelinek4-1/+28
OEP_ADDRESS_OF asserted for ADDR_EXPR applied to constant) PR tree-optimization/71872 * tree-data-ref.c (get_references_in_stmt): Ignore references with is_gimple_constant get_base_address. * gcc.c-torture/compile/pr71872.c: New test. From-SVN: r238351
2016-07-14arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.Thomas Preud'homme24-5/+153
2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline. (TARGET_HAVE_LDACQD): New macro. * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather than TARGET_HAVE_LDACQ. (arm_load_acquire_exclusivedi): Likewise. (arm_store_release_exclusivedi): Likewise. libgcc/ * gcc.target/arm/atomic-comp-swap-release-acquire.c: Rename into ... * gcc.target/arm/atomic-comp-swap-release-acquire-1.c: This. * gcc.target/arm/atomic-op-acq_rel.c: Rename into ... * gcc.target/arm/atomic-op-acq_rel-1.c: This. * gcc.target/arm/atomic-op-acquire.c: Rename into ... * gcc.target/arm/atomic-op-acquire-1.c: This. * gcc.target/arm/atomic-op-char.c: Rename into ... * gcc.target/arm/atomic-op-char-1.c: This. * gcc.target/arm/atomic-op-consume.c: Rename into ... * gcc.target/arm/atomic-op-consume-1.c: This. * gcc.target/arm/atomic-op-int.c: Rename into ... * gcc.target/arm/atomic-op-int-1.c: This. * gcc.target/arm/atomic-op-relaxed.c: Rename into ... * gcc.target/arm/atomic-op-relaxed-1.c: This. * gcc.target/arm/atomic-op-release.c: Rename into ... * gcc.target/arm/atomic-op-release-1.c: This. * gcc.target/arm/atomic-op-seq_cst.c: Rename into ... * gcc.target/arm/atomic-op-seq_cst-1.c: This. * gcc.target/arm/atomic-op-short.c: Rename into ... * gcc.target/arm/atomic-op-short-1.c: This. * gcc.target/arm/atomic-comp-swap-release-acquire-2.c: New test. * gcc.target/arm/atomic-op-acq_rel-2.c: Likewise. * gcc.target/arm/atomic-op-acquire-2.c: Likewise. * gcc.target/arm/atomic-op-char-2.c: Likewise. * gcc.target/arm/atomic-op-consume-2.c: Likewise. * gcc.target/arm/atomic-op-int-2.c: Likewise. * gcc.target/arm/atomic-op-relaxed-2.c: Likewise. * gcc.target/arm/atomic-op-release-2.c: Likewise. * gcc.target/arm/atomic-op-seq_cst-2.c: Likewise. * gcc.target/arm/atomic-op-short-2.c: Likewise. From-SVN: r238348
2016-07-14re PR fortran/70842 (internal compiler error with character members within a ↵Andre Vehreschild4-1/+57
polymorphic pointer) gcc/testsuite/ChangeLog: 2016-07-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/70842 * gfortran.dg/select_type_35.f03: New test. gcc/fortran/ChangeLog: 2016-07-14 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/70842 * simplify.c (gfc_simplify_len): Only for unlimited polymorphic types replace the expression's _data ref with a _len ref. From-SVN: r238347
2016-07-14re PR rtl-optimization/71878 (ICE in cselib_record_set)Thomas Preud'homme2-12/+57
2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ PR rtl-optimization/71878 * lra-constraints.c (match_reload): Pass information about other output operands. Create new unique register value if matching input operand shares same register value as output operand being considered. (curr_insn_transform): Record output operands already processed. From-SVN: r238346
2016-07-14[vectorizer][2/2] Hook up mult synthesis logic into vectorisation of ↵Kyrylo Tkachov7-68/+476
mult-by-constant PR target/65951 PR tree-optimization/70923 * tree-vect-patterns.c: Include mult-synthesis.h. (target_supports_mult_synth_alg): New function. (synth_lshift_by_additions): Likewise. (apply_binop_and_append_stmt): Likewise. (vect_synth_mult_by_constant): Likewise. (target_has_vecop_for_code): Likewise. (vect_recog_mult_pattern): Use above functions to synthesize vector multiplication by integer constants. * gcc.dg/vect/vect-mult-const-pattern-1.c: New test. * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. * gcc.dg/vect/pr65951.c: Likewise. * gcc.dg/vect/vect-iv-9.c: Remove ! vect_int_mult-specific scan. From-SVN: r238340
2016-07-14[RS6000] Disparage altivec_mov gpr alternativesAlan Modra2-2/+8
and fix constraint '*' placement. * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage gpr alternatives. Correct '*' placement on Y,r alternative. Add '*' on operand 1 of r,r alternative. From-SVN: r238339
2016-07-14[1/2] Move choose_mult_variant declaration and dependent declarations to ↵Kyrylo Tkachov3-9/+15
expmed.h * expmed.c (mult_variant, choose_mult_variant): Move declaration to... * expmed.h: ... Here. From-SVN: r238337