- 24 Nov, 2015 40 commits
-
-
Part of the shrink-wrapping algorithm has this comment: /* Now see if we can put the prologue at the start of PRO. Putting it there might require duplicating a block that cannot be duplicated, or in some cases we cannot insert the prologue there at all. If PRO wont't do, try again with the immediate dominator of PRO, and so on. The blocks that need duplicating are those reachable from PRO but not dominated by it. We keep in BB_WITH a bitmap of the blocks reachable from PRO that we already found, and in VEC a stack of those we still need to consider (to find successors). */ Two of the cases that push to that stack do not actually check the bitmap first. Either I thought those blocks could not be on the stack already, or more likely I didn't think and it just didn't crash during any testing. But of course those blocks *can* already be on the stack (if you have a hideous loop structure), and then we end up with the same block on the stack more than once. This is harmless, except that (like in the PR) this can overflow the stack. This fixes it, by doing the necessary bitmap checks before pushing. PR rtl-optimization/68520 * shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if its bit was already set in BB_WITH. From-SVN: r230843
Segher Boessenkool committed -
c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABLE_OFFLOADING)". gcc/c/ * c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABLE_OFFLOADING)". gcc/cp/ * parser.c (cp_parser_oacc_declare): replace "ifdef enable_offloading" with "if (enable_offloading)". From-SVN: r230842
Ilya Verbin committed -
alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant. * alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant. * tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing variant. (verify_type_variant): Verify that variants have no TYPE_ALIAS_SET_KNOWN_P set * tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder streaming so constant fields come first; stream TYPE_ALIAS_SET==0 only for main variants; stream TYPE_ALIAS_SET as a bit. * tree-streamer-in.c (unpack_ts_type_common_value_fields): Update accordingly. From-SVN: r230838
Jan Hubicka committed -
* tree.c (make_vector_type): Properly compute canonical type of the main variant. (verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is a main variant. From-SVN: r230837
Jan Hubicka committed -
* config/nvptx/nvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode. (nvptx_split_reg_p): Delete. (write_one_arg, walk_args_for_param, nvptx_declare_function_name, write_func_decl_from_insn, nvptx_output_call_insn): Adjust maybe_split_mode calls. (nvptx_print_operand): Use maybe_split_mode. From-SVN: r230836
Nathan Sidwell committed -
lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them. * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them. * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO. (make_vector_type): Likewise. (gimple_canonical_types_compatible_p): Use canonical_type_used_p. * tree.h (canonical_type_used_p): New inline. * alias.c (get_alias_set): Handle structural equality for all types that pass canonical_type_used_p. (record_component_aliases): Look through all types with record_component_aliases for possible pointers; sanity check that the alias sets match. * lto.c (iterative_hash_canonical_type): Recruse for all types which pass !canonical_type_used_p. (gimple_register_canonical_type_1): Sanity check we do not compute canonical type of anything with !canonical_type_used_p. (gimple_register_canonical_type): Skip all types that are !canonical_type_used_p From-SVN: r230835
Jan Hubicka committed -
2015-11-24 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints. From-SVN: r230834
Michael Meissner committed -
* tree.c (free_node): New function. (type_hash_canon): Use it. * tree.h (free_node): Declare. * lto.c (unify_scc): Use free_node. From-SVN: r230833
Jan Hubicka committed -
2015-11-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68486 * simplify.c (gfc_simplify_cshift): Allow all EXPR_*. 2015-11-24 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68486 * gfortran.dg/simplify_cshift_3.f90 From-SVN: r230832
Steven G. Kargl committed -
From-SVN: r230831
Michael Meissner committed -
From-SVN: r230830
Michael Meissner committed -
2015-11-24 David Edelsohn <dje.gcc@gmail.com> Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec. (Fv2): New mode attribute to be used when ISA 2.06 instructions are used on SF/DF values. (abs<mode>2_fpr): Use <Fv2> instead of <Fv>. (nabs<mode>2_fpr): Likewise. (neg<mode>2_fpr): Likewise. (copysign<mode>3_fcpsgn): Likewise. (smax<mode>3_vsx): Likewise. (smin<mode>3_vsx): Likewise. (floatsi<mode>2_lfiwax): Likewise. (floatunssi<mode>2_lfiwz): Likewise. (fctiwz_<mode>): Likewise. (fctiwuz_<mode>): Likewise. (btrunc<mode>2): Likewise. (ceil<mode>2): Likewise. (floor<mode>2): Likewise. (xsrdpi<mode>): Add support for the lround function. (lround<mode>2): Likewise. Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com> From-SVN: r230829
David Edelsohn committed -
2015-11-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/68278 * g++.dg/cpp1y/pr68278.C: New. From-SVN: r230828
Paolo Carlini committed -
2015-11-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/68388 * g++.dg/cpp1y/pr68388.C: New. From-SVN: r230827
Paolo Carlini committed -
Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r230826
Aditya Kumar committed -
Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r230825
Aditya Kumar committed -
... so that debugger users can reference them instead of the renamed subprograms. This is in accordance with the DWARF specification: the section 3.2.3 (Imported (or Renamed) Declaration Entities) allows DW_TAG_imported_declaration DIEs to be used "as a general means to rename or provide an alias for an entity regardless of the context in which the importing declaration or the imported entity occur." (wording from the DWARFv3 and DWARFv4 specifications, allowed in DWARFv2). gcc/ada/ChangeLog: * gcc-interface/utils.c (gnat_write_global_declarations): Output debugging information for top-level imported declarations. gcc/ChangeLog: * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of DW_TAG_namespace for IMPORTED_DECL declarations. Call dwarf2out_imported_module_or_decl_1 for all DWARF versions as this function already takes care of checking what it can emit. Bootstrapped, regtested and checked with GDB's testsuite on x86_64-linux. From-SVN: r230821
Pierre-Marie de Rodat committed -
gcc/ * doc/invoke.texi (-fpic): Add the AArch64 limit. (-fPIC): Add AArch64. From-SVN: r230819
Szabolcs Nagy committed -
PR rtl-optimization/68392 * g++.dg/pr68392.C: New test. From-SVN: r230818
Michael Matz committed -
2015-11-24 Tom de Vries <tom@codesourcery.com> * tree-ssa-loop-im.c (tree_ssa_lim): Make static. (pass_lim::execute): Allow to run outside pass_tree_loop. From-SVN: r230815
Tom de Vries committed -
gcc/ * gcc/config/aarch64/aarch64.md (add<mode>3): Block early expansion into 2 add instructions. (add<mode>3_pluslong): New pattern to combine complex immediates into 2 additions. From-SVN: r230814
Wilco Dijkstra committed -
Calling rs6000_is_valid_and_mask on a reg instead of on a const_int is not a good idea, as PR68332 and PR67677 as well as testing with --enable-checking=yes,rtl show. Fix this. PR target/66217 PR target/67677 PR target/68332 * config/rs6000/predicates.md (and_operand): Check that the operand is a const_int before calling rs6000_is_valid_and_mask. From-SVN: r230811
Segher Boessenkool committed -
From-SVN: r230810
Nathan Sidwell committed -
PR rtl-optimization/68381 * gcc.c-torture/execute/pr68381.c: New test. From-SVN: r230809
Kyrylo Tkachov committed -
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test. * configure.ac: Use it. * configure: Regenerate. * config.h.in: Regenerate. * include/c_global/cmath [__cplusplus >= 201103L] (std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::isfinite): Likewise. (std::isinf): Likewise. (std::isnan): Likewise. (std::isnormal): Likewise. (std::signbit): Likewise. (std::isgreater): Likewise. (std::isgreaterequal): Likewise. (std::isless): Likewise. (std::islessequal): Likewise. (std::islessgreater): Likewise. (std::isunordered): Likewise. (std::acosh): Likewise. (std::asinh): Likewise. (std::atanh): Likewise. (std::cbrt): Likewise. (std::copysign): Likewise. (std::erf): Likewise. (std::erfc): Likewise. (std::exp2): Likewise. (std::expm1): Likewise. (std::fdim): Likewise. (std::fma): Likewise. (std::fmax): Likewise. (std::fmin): Likewise. (std::hypot): Likewise. (std::ilogb): Likewise. (std::lgamma): Likewise. (std::llrint): Likewise. (std::llround): Likewise. (std::log1p): Likewise. (std::log2): Likewise. (std::logb): Likewise. (std::lrint): Likewise. (std::lround): Likewise. (std::nearbyint): Likewise. (std::nextafter): Likewise. (std::nexttoward): Likewise. (std::remainder): Likewise. (std::remquo): Likewise. (std::rint): Likewise. (std::round): Likewise. (std::scalbln): Likewise. (std::scalbn): Likewise. (std::tgamma): Likewise. (std::trunc): Likewise. * include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO. (std::tr1::asinh): Likewise. (std::tr1::atanh): Likewise. (std::tr1::cbrt): Likewise. (std::tr1::copysign): Likewise. (std::tr1::erf): Likewise. (std::tr1::erfc): Likewise. (std::tr1::exp2): Likewise. (std::tr1::expm1): Likewise. (std::tr1::fabs): Likewise. (std::tr1::fdim): Likewise. (std::tr1::fma): Likewise. (std::tr1::fmax): Likewise. (std::tr1::fmin): Likewise. (std::tr1::hypot): Likewise. (std::tr1::ilogb): Likewise. (std::tr1::lgamma): Likewise. (std::tr1::llrint): Likewise. (std::tr1::llround): Likewise. (std::tr1::log1p): Likewise. (std::tr1::log2): Likewise. (std::tr1::logb): Likewise. (std::tr1::lrint): Likewise. (std::tr1::lround): Likewise. (std::tr1::nearbyint): Likewise. (std::tr1::nextafter): Likewise. (std::tr1::nexttoward): Likewise. (std::tr1::remainder): Likewise. (std::tr1::remquo): Likewise. (std::tr1::rint): Likewise. (std::tr1::scalbln): Likewise. (std::tr1::scalbn): Likewise. (std::tr1::tgamma): Likewise. (std::tr1::trunc): Likewise. (std::tr1::pow): Likewise. * testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc: Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*. From-SVN: r230807
Rainer Orth committed -
* config/aarch64/aarch64.md (*condjump): Rename to... (condjump): ... This. (*compare_condjump<mode>): New define_insn_and_split. (*compare_cstore<mode>_insn): Likewise. (*cstore<mode>_insn): Rename to... (cstore<mode>_insn): ... This. * config/aarch64/iterators.md (CMP): Handle ne code. * config/aarch64/predicates.md (aarch64_imm24): New predicate. * gcc.target/aarch64/cmpimm_branch_1.c: New test. * gcc.target/aarch64/cmpimm_cset_1.c: Likewise. From-SVN: r230805
Kyrylo Tkachov committed -
libsanitizer/ * include/system/linux/asm/ptrace.h: Move to ... * include/system/asm/ptrace.h: ... this. From-SVN: r230804
Max Ostapenko committed -
gcc/ PR target/68497 * config/i386/i386.c (output_387_binary_op): Fix assertion for -fno-checking case. gcc/testsuite/ PR target/68497 * gcc.target/i386/pr68497.c: New test. From-SVN: r230803
Mikhail Maltsev committed -
gcc/ChangeLog: 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove. (val_ssa_equiv_hash_traits::remove): Likewise. (pass_uncprop::execute): Adjust. From-SVN: r230802
Trevor Saunders committed -
gcc/ChangeLog: 2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * hash-map-traits.h (simple_hashmap_traits ::remove): call destructors on values that are being removed. * mem-stats.h (hash_map): Pass type of values to simple_hashmap_traits. * tree-sra.c (sra_deinitialize): Remove work around for hash maps not destructing values. * genmatch.c (sinfo_hashmap_traits): Adjust. * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise. From-SVN: r230801
Trevor Saunders committed -
[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of bounds accesses to vmulx_lane* NEON intrinsics gcc/testsuite/ * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f64_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxs_lane_f32_indices_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c: New. From-SVN: r230800
Bilyan Borisov committed -
[cfgloop] PR middle-end/68375: Restructure get_loop_body_in_bfs_order to handle loops with only a header PR middle-end/68375 * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid bogus assertion. * gcc.dg/pr68375.c: New test. From-SVN: r230798
Kyrylo Tkachov committed -
PR target/68483 * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR is valid vec_shr pattern, don't lower it even if can_vec_perm_p returns false. * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX whenever first is nelt or above. Don't mask expected with 2 * nelt - 1. * gcc.target/i386/pr68483-1.c: New test. * gcc.target/i386/pr68483-2.c: New test. From-SVN: r230797
Jakub Jelinek committed -
re PR c/68337 ([MPX] memcpy() for arrays with function pointers results in huge resource usage and binaries) gcc/ PR c/68337 * gimple-fold.c: Include ipa-chkp.h. (gimple_fold_builtin_memory_op): Don't fold call if we are going to instrument it and it may copy pointers. gcc/testsuite/ PR c/68337 * gcc.target/i386/mpx/pr68337-1.c: New test. * gcc.target/i386/mpx/pr68337-2.c: New test. From-SVN: r230796
Ilya Enkovich committed -
PR rtl-optimization/68194 PR rtl-optimization/68328 PR rtl-optimization/68185 * ree.c (combine_reaching_defs): Reject copy_needed case if copies_list is not empty. * gcc.c-torture/execute/pr68185.c: New test. * gcc.c-torture/execute/pr68328.c: Likewise. From-SVN: r230795
Kyrylo Tkachov committed -
2015-11-24 Gary Dismukes <dismukes@adacore.com> * sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb, sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor reformatting, rewording, and typo corrections. From-SVN: r230794
Gary Dismukes committed -
2015-11-24 Richard Biener <rguenther@suse.de> PR middle-end/68221 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly use mem_ref_offset. From-SVN: r230793
Richard Biener committed -
decl.c (gnat_to_gnu_entity): In ASIS mode, do a minimal translation for root types with discriminants. * gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In ASIS mode, do a minimal translation for root types with discriminants. * gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around. <N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise. In ASIS mode, process the declarations attached to the body. From-SVN: r230792
Eric Botcazou committed -
* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do not build a NULL_EXPR for an N_Expanded_Name. From-SVN: r230791
Eric Botcazou committed -
libsanitizer/ * include/system/linux/asm/ptrace.h: New header. From-SVN: r230790
Max Ostapenko committed
-