aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2015-10-21Improve --help output to generate references to option aliases.Martin Sebor88-2285/+2435
gcc/ PR driver/68043 * opts.c (undocumented_msg, use_diagnosed_msg): New globals. (print_filtered_help): Reference aliased option's name and encourage readers to use it in preference to the alias if the former is not documented. Mention when using an option is diagnosed. * gcc.c (display_help): End each sentence with a period. * ada/gcc-interface/lang.opt: End each sentence that describes an option with a period. * c-family/c.opt: Same. * common.opt: Same. * config/aarch64/aarch64.opt: Same. * config/alpha/alpha.opt: Same. * config/arc/arc.opt: Same. * config/arm/arm.opt: Same. * config/avr/avr.opt: Same. * config/bfin/bfin.opt: Same. * config/c6x/c6x.opt: Same. * config/cr16/cr16.opt: Same. * config/cris/cris.opt: Same. * config/cris/linux.opt: Same. * config/darwin.opt: Same. * config/epiphany/epiphany.opt: Same. * config/fr30/fr30.opt: Same. * config/frv/frv.opt: Same. * config/ft32/ft32.opt: Same. * config/g.opt: Same. * config/h8300/h8300.opt: Same. * config/i386/cygming.opt: Same. * config/i386/djgpp.opt: Same. * config/i386/i386.opt: Same. * config/i386/interix.opt: Same. * config/i386/mingw-w64.opt: Same. * config/i386/mingw.opt: Same. * config/ia64/ia64.opt: Same. * config/ia64/ilp32.opt: Same. * config/iq2000/iq2000.opt: Same. * config/linux.opt: Same. * config/lm32/lm32.opt: Same. * config/lynx.opt: Same. * config/m32c/m32c.opt: Same. * config/m32r/m32r.opt: Same. * config/m68k/ieee.opt: Same. * config/m68k/m68k.opt: Same. * config/mcore/mcore.opt: Same. * config/mep/mep.opt: Same. * config/microblaze/microblaze.opt: Same. * config/mips/mips.opt: Same. * config/mmix/mmix.opt: Same. * config/mn10300/mn10300.opt: Same. * config/moxie/moxie.opt: Same. * config/msp430/msp430.opt: Same. * config/nios2/elf.opt: Same. * config/nios2/nios2.opt: Same. * config/nvptx/nvptx.opt: Same. * config/pa/pa-hpux.opt: Same. * config/pa/pa-hpux1010.opt: Same. * config/pa/pa-hpux1111.opt: Same. * config/pa/pa-hpux1131.opt: Same. * config/pa/pa.opt: Same. * config/pa/pa64-hpux.opt: Same. * config/pdp11/pdp11.opt: Same. * config/rl78/rl78.opt: Same. * config/rs6000/476.opt: Same. * config/rs6000/aix64.opt: Same. * config/rs6000/darwin.opt: Same. * config/rs6000/linux64.opt: Same. * config/rs6000/rs6000.opt: Same. * config/rs6000/sysv4.opt: Same. * config/s390/s390.opt: Same. * config/s390/tpf.opt: Same. * config/sh/sh.opt: Same. * config/sol2.opt: Same. * config/sparc/long-double-switch.opt: Same. * config/sparc/sparc.opt: Same. * config/spu/spu.opt: Same. * config/stormy16/stormy16.opt: Same. * config/tilegx/tilegx.opt: Same. * config/tilepro/tilepro.opt: Same. * config/v850/v850.opt: Same. * config/vax/vax.opt: Same. * config/visium/visium.opt: Same. * config/vms/vms.opt: Same. * config/vxworks.opt: Same. * config/xtensa/xtensa.opt: Same. * fortran/lang.opt: Same. testsuite/ PR driver/68043 * gcc.misc-tests/help.exp: Adjust. * lib/options.exp (check_for_options): Add detail to output. From-SVN: r229155
2015-10-21re PR fortran/67939 (ICE on using data with negative substring range)Steven G. Kargl4-7/+48
2015-10-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67939 * data.c (create_character_initializer): Deal with zero length string. 2015-10-21 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/67939 * gfortran.dg/pr67939.f90: New test. From-SVN: r229153
2015-10-21a scalar depending on vdefs in the current region is not invariantAditya Kumar7-10/+36
When a scalar is defined in function of an array reference in the current scop, it does variate. Graphite cannot represent the condition in scop-11.c, as a[*] variates in the current region, and it is not an affine condition: for (j = 0; j <= 20; j++) a[j] = b + i; if (a[12] == 23) b = 3; else b = 1; for (j = 0; j <= 20; j++) a[j] = b + i; * graphite-scop-detection.c (parameter_index_in_region): Update call to invariant_in_sese_p_rec. * graphite-sese-to-poly.c (extract_affine): Same. * sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs. (scalar_evolution_in_region): Return chrec_dont_know when the scalar variable depends on virtual definitions in the current region. * sese.h (invariant_in_sese_p_rec): Update declaration. testsuite/ * gcc.dg/graphite/scop-11.c: Update pattern. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r229151
2015-10-21add an upper limit on the number of array referencesAditya Kumar3-0/+25
* graphite-scop-detection.c (build_scops): Do not handle scops with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays. * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r229150
2015-10-21[PATCH 1/9] ENABLE_CHECKING refactoringMikhail Maltsev5-5/+27
gcc/ * config.in: Regenerate. * configure: Regenerate. * configure.ac (CHECKING_P): Define. * system.h: Use CHECKING_P. libcpp/ * config.in: Regenerate. * configure: Regenerate. * configure.ac (CHECKING_P): Define. * system.h (fancy_abort): Declare. (abort): Define. (gcc_assert): Define. Use CHECKING_P. From-SVN: r229149
2015-10-21re PR ipa/67056 (Wrong code generated)Jan Hubicka4-1/+69
PR ipa/67056 * ipa-polymorphic-call.c (possible_placement_new): If cur_offset is negative we don't know the type. (check_stmt_for_type_change): Skip constructors of non-polymorphic types as those won't help devirutalization. * g++.dg/ipa/pr67056.C: New testcase. From-SVN: r229148
2015-10-21fold-const.c (operand_equal_p): Add code matching empty constructors.Jan Hubicka4-0/+24
* fold-const.c (operand_equal_p): Add code matching empty constructors. * gcc.dg/tree-ssa/operand-equal-1.c: Verify that empty constructors are matched. From-SVN: r229147
2015-10-21tree.def (CEIL_DIV_EXPR, [...]): Tweak comments.Eric Botcazou3-7/+28
* tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak comments. (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR): Add comments on sign of the result. * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>: Recurse on operand #1 instead of operand #0. <CEIL_MOD_EXPR>: Do not recurse. <ROUND_MOD_EXPR>: Likewise. From-SVN: r229146
2015-10-21unconditionally compile most of the delay slot codeTrevor Saunders9-105/+83
gcc/ChangeLog: 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * cfgrtl.c (pass_free_cfg::execute): Adjust. * final.c (dbr_sequence_length): Always define. (shorten_branches): Adjust. * genattr-common.c (main): Always define DELAY_SLOTS. * genattr.c (main): Unconditionally declare functions and define macros related to delay slots. * genattrtab.c (write_eligible_delay): Adjust. (main): Always write out delay slot functions. * opts.c (default_options_table): Adjust. * reorg.c (redirect_with_delay_slots_safe_p): Likewise. (redirect_with_delay_list_safe_p): Likewise. (fill_simple_delay_slots): Likewise. (fill_slots_from_thread): Likewise. (make_return_insns): Likewise. (dbr_schedule): Likewise. (rest_of_handle_delay_slots): Likewise. (pass_delay_slots::gate): Likewise. * toplev.c (process_options): Likewise. From-SVN: r229145
2015-10-21Update documentation for address space hooksRichard Henderson3-8/+8
* target.def (addr_space.pointer_mode): Update documentation of default behavior. (addr_space.address_mode): Likewise. * tm.texi: Update. From-SVN: r229144
2015-10-21Relax ADDR_SPACE_GENERIC_P checks for default address space hooksRichard Henderson2-23/+23
If all address spaces use the same modes and forms, we would be forced to replicate these hooks in the backend. Which would then require the creation of a new hook to replace target_default_pointer_address_modes_p. * targhooks.c (default_addr_space_pointer_mode): Remove check for generic address space. (default_addr_space_address_mode): Likewise. (default_addr_space_valid_pointer_mode): Likewise. (default_addr_space_legitimate_address_p): Likewise. (default_addr_space_legitimize_address): Likewise. From-SVN: r229143
2015-10-21Change default of non-overlapping address space conversionRichard Henderson2-12/+23
The current default of making all undefined coversions being set to null is not useful. It has caused all users to lie and say that spaces are subsets when they are not, just so that they can override the conversion. * expr.c (expand_expr_real_2): Use convert_modes on disjoint address spaces. From-SVN: r229142
2015-10-21Move cabs simplifications to match.pdRichard Sandiford5-87/+38
The fold code also expanded cabs(x+yi) to fsqrt(x*x+y*y) when optimising for speed. tree-ssa-math-opts.c has this transformation too, but unlike the fold code, it first checks whether the target implements the sqrt optab. The patch simply removes the fold code and keeps the tree-ssa-math-opts.c logic the same. gcc.dg/lto/20110201-1_0.c was relying on us replacing cabs with fsqrt even on targets where fsqrt is itself a library call. The discussion leading up to that patch suggested that we only want to test the fold on targets with a square root instruction, so it would be OK to skip the test on other targets: https://gcc.gnu.org/ml/gcc-patches/2011-07/msg01961.html https://gcc.gnu.org/ml/gcc-patches/2011-07/msg02036.html The patch does that using the sqrt_insn effective target. It's possible that removing the tree folds renders the LTO trick unnecessary, but since the test was originally for an ICE, it seems better to leave it as-is. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. 20110201-1_0.c passes on all three. gcc/ * builtins.c (fold_builtin_cabs): Delete. (fold_builtin_1): Update accordingly. Handle constant arguments here. * match.pd: Add rules previously handled by fold_builtin_cabs. gcc/testsuite/ * gcc.dg/lto/20110201-1_0.c: Restrict to sqrt_insn targets. Add associated options for arm*-*-*. (sqrt): Remove dummy definition. From-SVN: r229141
2015-10-21Remove fold_strip_sign_opsRichard Sandiford6-207/+37
This patch deletes fold_strip_sign_ops in favour of the gimple-ssa-backprop.c pass. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * fold-const.h (fold_strip_sign_ops): Delete. * fold-const.c (fold_strip_sign_ops): Likewise. (fold_unary_loc, fold_binary_loc): Remove calls to it. * builtins.c (fold_builtin_cos, fold_builtin_cosh) (fold_builtin_ccos): Delete. (fold_builtin_pow): Don't call fold_strip_sign_ops. (fold_builtin_hypot, fold_builtin_copysign): Likewise. Remove fndecl argument. (fold_builtin_1): Update calls accordingly. Handle constant cos, cosh, ccos and ccosh here. gcc/testsuite/ * gcc.dg/torture/builtin-symmetric-1.c: Don't run at -O0. From-SVN: r229140
2015-10-21Add a pass to back-propagate use informationRichard Sandiford17-6/+1138
This patch adds a pass that collects information that is common to all uses of an SSA name X and back-propagates that information up the statements that generate X. The general idea is to use the information to simplify instructions (rather than a pure DCE) so I've simply called it gimple-ssa-backprop.c, to go with tree-ssa-forwprop.c. At the moment the only use of the pass is to remove unnecessary sign operations, so that it's effectively a global version of fold_strip_sign_ops. I'm hoping it could be extended in future to record which bits of an integer are significant. There are probably other potential uses too. A later patch gets rid of fold_strip_sign_ops. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document. * Makefile.in (OBJS): Add gimple-ssa-backprop.o. * common.opt (fssa-backprop): New option. * fold-const.h (negate_mathfn_p): Declare. * fold-const.c (negate_mathfn_p): Make public. * timevar.def (TV_TREE_BACKPROP): New. * tree-pass.h (make_pass_backprop): Declare. * passes.def (pass_backprop): Add. * gimple-ssa-backprop.c: New file. gcc/testsuite/ * gcc.dg/tree-ssa/backprop-1.c, gcc.dg/tree-ssa/backprop-2.c, gcc.dg/tree-ssa/backprop-3.c, gcc.dg/tree-ssa/backprop-4.c, gcc.dg/tree-ssa/backprop-5.c, gcc.dg/tree-ssa/backprop-6.c: New tests. From-SVN: r229139
2015-10-21avoid generation of empty guards in trivial casesAditya Kumar2-4/+18
We used to insert a trivial integer_onep condition around loops we know have more than an iteration. This patch avoids generating those conditions. * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Do not call create_empty_if_region_on_edge when cond_expr is true. (translate_isl_ast_node_for): Check whether a guard has been generated. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r229137
2015-10-21Refactor graphite-sese-to-poly, sese.h, graphite-poly.hAditya Kumar4-79/+45
Now that scop contains a list of all the basic blocks inside, it makes sense to iterate over only those basic blocks in graphite-sese-to-poly.c:rewrite_reductions_out_of_ssa,rewrite_cross_bb_scalar_deps_out_of_ssa Passes regtest and bootstrap. gcc/ChangeLog: 2015-10-20 Aditya Kumar <hiraditya@msn.com> * graphite-poly.h (struct dr_info): Added invalid_alias_set number. (operator=): Removed. (dr_info): Make alias_set number the last argument with default value of invalid_alias_set. * graphite-sese-to-poly.c (build_scop_drs): Update constructor of dr_info. (rewrite_reductions_out_of_ssa): Iterate only through the basic blocks which are inside region. (rewrite_cross_bb_scalar_deps_out_of_ssa): Same. * sese.h (struct sese_l): Removed assignment operator. (split_region_for_bb): Removed dead code. From-SVN: r229136
2015-10-21Refactoring sese.h and graphite-poly.hAditya Kumar8-66/+99
Rename scop->region to scop->scop_info Removed conversion constructors for sese_l and dr_info. Removed macros. No functional changed intended. Passes regtest and bootstrap. gcc/ChangeLog: 2015-19-10 Aditya Kumar <aditya.k7@samsung.com> * graphite-poly.h (struct dr_info): Removed conversion constructor. (struct scop): Renamed scop::region to scop::scop_info (scop_set_region): Same. (SCOP_REGION): Removed (SCOP_CONTEXT): Removed. (POLY_SCOP_P): Removed. * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Rename scop->region to scop->scop_info. (add_parameters_to_ivs_params): Same. (graphite_regenerate_ast_isl): Same. * graphite-poly.c (new_scop): Same. (free_scop): Same. (print_scop_params): Same. * graphite-scop-detection.c (scop_detection::remove_subscops): Same. (scop_detection::remove_intersecting_scops): Use pointer to sese_l. (dot_all_scops_1): Rename scop->region to scop->scop_info. (scop_detection::nb_pbbs_in_loops): Same. (find_scop_parameters): Same. (try_generate_gimple_bb): Same. (gather_bbs::before_dom_children): Same. (gather_bbs::after_dom_children): Same. (build_scops): Same. * graphite-sese-to-poly.c (build_scop_scattering): Same. (extract_affine_chrec): Same. (extract_affine): Same. (set_scop_parameter_dim): Same. (build_loop_iteration_domains): Same. (create_pw_aff_from_tree): Same. (add_param_constraints): Same. (build_scop_iteration_domain): Same. (build_scop_drs): Same. (analyze_drs_in_stmts): Same. (insert_out_of_ssa_copy_on_edge): Same. (rewrite_close_phi_out_of_ssa):Same. (rewrite_reductions_out_of_ssa):Same. (handle_scalar_deps_crossing_scop_limits):Same. (rewrite_cross_bb_scalar_deps):Same. (rewrite_cross_bb_scalar_deps_out_of_ssa):Same. (build_poly_scop):Same. (build_alias_set): Use pointer to dr_info. * graphite.c (print_graphite_scop_statistics): (graphite_transform_loops): * sese.h (struct sese_l): Remove conversion constructor. From-SVN: r229135
2015-10-21Add --param sra-max-scalarization-size-Ospeed to sra-12.cAlan Lawrence2-3/+7
* gcc.dg/tree-ssa/sra-12.c: Enable test on all targets; add --param sra-max-scalarization-size-Ospeed. From-SVN: r229134
2015-10-21re PR middle-end/67966 (ICE in convert_move, at expr.c:282)Jan Hubicka5-24/+23
PR middle-end/67966 * tree.c (verify_type): Verify that TYPE_MODE match between TYPE_CANONICAL and type. * expr.c (store_expr_with_bounds): Revert my previous change. * expmed.c (store_bit_field_1): Revert prevoius change. * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE to match for all types. From-SVN: r229132
2015-10-21re PR c/68024 (Diagnose variadic functions defined without prototypes)Marek Polacek4-0/+22
PR c/68024 * c-decl.c (start_function): Warn about vararg functions without a prototype. * gcc.dg/pr68024.c: New test. From-SVN: r229131
2015-10-21omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop nesting.Nathan Sidwell10-19/+82
gcc/ * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop nesting. testsuite/ * c-c++-common/goacc/clauses-fail.c: Adjust errors. * c-c++-common/goacc/sb-1.c: Adjust errors. * c-c++-common/goacc/sb-3.c: Adjust errors. * c-c++-common/goacc/loop-1.c: Adjust errors. * c-c++-common/goacc/nesting-1.c: Adjust errors. * c-c++-common/goacc-gomp/nesting-fail-1.c: Adjust errors. * c-c++-common/goacc-gomp/nesting-1.c: Adjust errors. From-SVN: r229129
2015-10-21tm.texi: Regenerated.Ilya Enkovich20-56/+287
gcc/ * doc/tm.texi: Regenerated. * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New. * stor-layout.c (layout_type): Use mode to get vector mask size. * target.def (get_mask_mode): New. * targhooks.c (default_get_mask_mode): New. * targhooks.h (default_get_mask_mode): New. * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case for boolean vector. * tree.c (MAX_BOOL_CACHED_PREC): New. (nonstandard_boolean_type_cache): New. (build_nonstandard_boolean_type): New. (make_vector_type): Vector mask has no canonical type. (build_truth_vector_type): New. (build_same_sized_truth_vector_type): New. (truth_type_for): Support vector masks. * tree.h (VECTOR_BOOLEAN_TYPE_P): New. (build_truth_vector_type): New. (build_same_sized_truth_vector_type): New. (build_nonstandard_boolean_type): New. * tree-cfg.c (verify_gimple_comparison) Require boolean vector type for vector comparison. (verify_gimple_assign_ternary): Likewise. * optabs.c (expand_vec_cond_expr): Accept boolean vector as condition operand. * tree-vect-stmts.c (vectorizable_condition): Use boolean vector type for vector comparison. * tree-vect-generic.c (elem_op_func): Add new operand to hold vector type. (do_unop): Adjust to modified function type. (do_binop): Likewise. (do_plus_minus): Likewise. (do_negate); Likewise. (expand_vector_piecewise): Likewise. (do_cond): Likewise. (do_compare): Use comparison instead of condition. (expand_vector_divmod): Use boolean vector type for comparison. (expand_vector_operations_1): Skip scalar mask operations. gcc/c * c-typeck.c (build_conditional_expr): Use boolean vector type for vector comparison. (build_vec_cmp): New. (build_binary_op): Use build_vec_cmp for comparison. gcc/cp * call.c (build_conditional_expr_1): Use boolean vector type for vector comparison. * typeck.c (build_vec_cmp): New. (cp_build_binary_op): Use build_vec_cmp for comparison. gcc/testsuite/ * g++.dg/ext/vector22.C: Allow VEC_COND_EXPR. From-SVN: r229128
2015-10-21omp-low.c (simd_clone_create): Set in_other_partition for created clones.Ilya Enkovich4-0/+45
gcc/ * omp-low.c (simd_clone_create): Set in_other_partition for created clones. gcc/testsuite/ * gcc.dg/lto/simd-function_0.c: New test. From-SVN: r229127
2015-10-21Proposed doc update for Explicit Reg Vars 2/3David Wohlferd2-71/+70
* doc/extend.exp (Local Register Variables): Rewrite. From-SVN: r229124
2015-10-21Add simple sign-stripping cases to match.pdRichard Sandiford2-1/+77
This patch makes sure that, for every simplification that uses fold_strip_sign_ops, there are associated match.pd rules for the leaf sign ops, i.e. abs, negate and copysign. A follow-on patch will add a pass to handle more complex cases. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign and x*x in cases where the operands are sign ops. Extend these rules to handle copysign as a sign op (including for cos, cosh and pow, which already treated negate and abs as sign ops). From-SVN: r229123
2015-10-21re PR target/68018 (ICE: in ix86_compute_frame_layout, at ↵Uros Bizjak4-7/+32
config/i386/i386.c:11308 with -mstackrealign) PR target/68018 * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack for 64-bit MS_ABI targets also when default incoming stack boundary is overriden. testsuite/ChangeLog: PR target/68018 * gcc.target/i386/pr68018.c: New test. From-SVN: r229120
2015-10-21tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE cond stmts, ↵Richard Biener2-7/+51
enhanced and split out from ... 2015-10-21 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE cond stmts, enhanced and split out from ... (vn_phi_eq): ... here. From-SVN: r229119
2015-10-21re PR tree-optimization/68031 (cc1 crashes when compiling newlib / mktm_r.c)Richard Biener4-21/+40
2015-10-21 Richard Biener <rguenther@suse.de> PR middle-end/68031 * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h. (tree_ssa_name_nonnegative_warnv_p): Fold into ... (tree_single_nonnegative_warnv_p): ... here. For SSA names make sure they are not registered for update. * gcc.dg/torture/pr68031.c: New testcase. From-SVN: r229118
2015-10-21re PR tree-optimization/68026 (Regression in GCC-6.0.0's optimizer)Richard Biener4-0/+35
2015-10-21 Richard Biener <rguenther@suse.de> PR tree-optimization/68026 * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for unsigned VARYING values. * gcc.dg/tree-ssa/ssa-ccp-39.c: New testcase. From-SVN: r229117
2015-10-21libsanitizer merge from upstream r250806, compiler part.Max Ostapenko9-129/+74
gcc/ * asan.c (asan_emit_stack_protection): Don't pass local stack to asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned NULL and use local stack than. (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call in addition to __asan_init. * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init. (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call. * asan.h (asan_intercepted_p): Handle new string builtins. * ubsan.c (ubsan_use_new_style_p): New function. (ubsan_instrument_float_cast): If location is unknown, assign input_location to loc. Propagate loc to ubsan_create_data if ubsan_use_new_style_p returned true. config/ * bootstrap-asan.mk: Replace ASAN_OPTIONS=detect_leaks with LSAN_OPTIONS=detect_leaks. gcc/testsuite/ * c-c++-common/ubsan/float-cast-overflow-10.c: Adjust test. * c-c++-common/ubsan/float-cast-overflow-8.c: Likewise. * c-c++-common/ubsan/float-cast-overflow-9.c: Likewise. * g++.dg/asan/default-options-1.C: Likewise. From-SVN: r229112
2015-10-20[PATCH] Move RTL printing code from sched-vis.c into print-rtl.cJeff Law15-922/+907
* Makefile.in (OBJS): Remove sched-vis.c * sched-vis.c: Removed. Code moved into... * print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h. * rtl.h: Remove prototypes for functions now living in print-rtl.c * print-rtl.h Add prototypes for new functions in print-rtl.c. * auto-inc-dec.c: Include print-rtl.h * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise. * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise. From-SVN: r229110
2015-10-20[PATCH]Fix various ports failing due to unused parameterJeff Law2-1/+6
* varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with ATTRIBUTE_UNUSED. From-SVN: r229109
2015-10-20re PR c++/66583 (incorrect implicitly-defined move constructor for class ↵Jason Merrill4-23/+95
with anonymous union and NSDMI) PR c++/66583 * init.c (innermost_aggr_scope): New. (build_field_list): Change uses_unions_p to uses_unions_or_anon_p. (sort_mem_initializers): Handle initializers for entire anonymous aggregates. From-SVN: r229108
2015-10-21fold-const.c (fold_binary_loc): Move (-A) * (-B) -> A * B to match.pd.Richard Biener3-55/+50
2015-10-20 Richard Biener <rguenther@suse.de> Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B to match.pd. Move (a * (1 << b)) is (a << b) to match.pd. Move convert (C1/X)*C2 into (C1*C2)/X to match.pd. Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd. Move X & ~X , X & (X == 0), and X & !X are zero to match.pd. * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))): New simplifier. (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier. (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier. (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1)) : New simplifier. (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)): New simplifier. (match (logical_inverted_value @0) (truth_not @0)) : New Predicate. Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com> From-SVN: r229107
2015-10-21Daily bump.GCC Administrator1-1/+1
From-SVN: r229106
2015-10-21Pass --secure-plt to the linkerGregor Richards4-0/+21
* config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define. * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define. (LINK_SPEC): Add %(link_secure_plt). (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt". * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine. Co-Authored-By: Alan Modra <amodra@gmail.com> Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com> From-SVN: r229102
2015-10-20array-notation-common.c (is_cilkplus_vector_p): Define.Marek Polacek7-22/+23
* array-notation-common.c (is_cilkplus_vector_p): Define. * c-common.h (is_cilkplus_vector_p): Declare. * c-parser.c (is_cilkplus_vector_p): Don't define here. * parser.c (is_cilkplus_vector_p): Don't define here. From-SVN: r229099
2015-10-20compiler: Report errors after evaluating invalid constant.Ian Lance Taylor2-8/+1
The fix for golang/go#11541 made the assertion that getting an invalid Numeric_constant after evaluating an invalid constant must result in an error in a binary expression. However, a Numeric_constant can be invalid if it is unset, which occurs when either operand cannot be converted to the right type. These errors are issued after the Numeric_constant is lowered. Fixes golang/go#12615. Reviewed-on: https://go-review.googlesource.com/14646 From-SVN: r229098
2015-10-20compiler: Report errors for non-integral shift counts.Ian Lance Taylor2-2/+4
Fixes golang/go#12618. Reviewed-on: https://go-review.googlesource.com/14647 From-SVN: r229096
2015-10-20musl support for shGregor Richards2-0/+27
* config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define. (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define. Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com> From-SVN: r229095
2015-10-20[AArch64] Add support for 64-bit vector-mode ldp/stpKyrylo Tkachov7-2/+135
* config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p): New function. (fusion_load_store): Use it. * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for ldp and stp in VD modes. * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern. (store_pair<mode>, VD): Likewise. * gcc.target/aarch64/stp_vec_64_1.c: New test. * gcc.target/aarch64/ldp_vec_64_1.c: Likewise. From-SVN: r229094
2015-10-20[Testsuite] Turn on 64-bit-vector tests for AArch64.Alan Lawrence2-0/+5
* lib/target-supports.exp (check_effective_target_vect64): Add AArch64. From-SVN: r229092
2015-10-20re PR c/67964 (Multiple attributes wrongly accepted without commas)Marek Polacek4-1/+47
PR c/67964 * c-parser.c (c_parser_attributes): Break out of the loop if the token after an attribute isn't a comma. * gcc.dg/pr67964.c: New test. From-SVN: r229091
2015-10-20re PR rtl-optimization/67609 (Generates wrong code for SSE2 _mm_load_pd)Vladimir Makarov4-8/+63
2015-10-20 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/67609 * lra-splill.c (lra_final_code_change): Don't remove all sub-registers. 2015-10-20 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/67609 * gcc.target/i386/pr67609.c: New. From-SVN: r229087
2015-10-20[simplify-rtx][2/2] Use constants from pool when simplifying binopsKyrylo Tkachov4-1/+32
* simplify-rtx.c (simplify_binary_operation): If either operand was a constant pool reference use them if all other simplifications failed. * gcc.target/aarch64/fmul_fcvt_1.c: Add multiply-by-32 cases. From-SVN: r229086
2015-10-20[AArch64][1/2] Add fmul-by-power-of-2+fcvt optimisationKyrylo Tkachov9-0/+323
* config/aarch64/aarch64.md (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern. * config/aarch64/aarch64-simd.md (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise. * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns. (aarch64_fpconst_pow_of_2): New function. (aarch64_vec_fpconst_pow_of_2): Likewise. * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare prototype. (aarch64_vec_fpconst_pow_of_2): Likewise. * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate. (aarch64_fp_vec_pow2): Likewise. * gcc.target/aarch64/fmul_fcvt_1.c: New test. * gcc.target/aarch64/fmul_fcvt_2.c: Likewise. From-SVN: r229085
2015-10-20alpha.h (HARD_REGNO_NREGS): Use CEIL macro.Uros Bizjak3-23/+33
* config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro. (ALPHA_ARG_SIZE): Ditto. Remove unused NAMED argument. * config/alpha/alpha.c (alpha_function_arg_advance): Update ALPHA_ARG_SIZE usage. (alpha_arg_partial_bytes): Ditto. From-SVN: r229084
2015-10-20Skip local error_mark_node declsH.J. Lu4-1/+23
There is no need to finalize local error_mark_node decls. gcc/ PR target/66810 * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local error_mark_node decls. gcc/testsuite/ PR target/66810 * gcc.target/i386/pr66810.c: New test. From-SVN: r229083
2015-10-20Properly handle -miamcu and -march=lakemontH.J. Lu11-39/+123
-miamcu specifies how parameters are passed to functions and how value is returned from a function. Inside function, we can use instructions supported by -march=XXX. -miamcu -march=haswell can generate x87, SSE and AVX instructions as long as the IA MCU psABI is followed. But since Lakemont processor doesn't support x87 instructions, we shouldn't generate x87 instructions with -march=lakemont. This patch separates code generation from -miamcu and makes -march=lakemont not to generate x87 instructions. gcc/ PR target/67963 PR target/67985 * common/config/i386/i386-common.c (ix86_handle_option): Remove OPT_miamcu handling. * config/i386/i386.c (PTA_NO_80387): New macro. (processor_alias_table): Add PTA_NO_80387 to lakemont. (ix86_option_override_internal): Update MASK_80387 from PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn SSE math only if 80387 is supported. Don't change MASK_FLOAT_RETURNS. (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if 80387 is supported. * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only if TARGET_80387 is true and TARGET_IAMCU is false. (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P is true and TARGET_IAMCU_P is false. gcc/testsuite/ PR target/67963 PR target/67985 * gcc.target/i386/pr67963-1.c: New test. * gcc.target/i386/pr67963-2.c: Likewise. * gcc.target/i386/pr67963-3.c: Likewise. * gcc.target/i386/pr67985-1.c: Likewise. * gcc.target/i386/pr67985-2.c: Likewise. * gcc.target/i386/pr67985-3.c: Likewise. From-SVN: r229082