aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-06-13[ARM][Testsuite]make dump_stack function call conditional in cold-lc.cRenlin Li2-3/+9
After r249013, die () and dump_stack () are both in cold section. This makes the compiler generate bl instruction for the function call, instead of honoring the -mlong-calls option. This patch changes the dump_stack function call conditional, which fixes the regression. gcc/testsuite/ * gcc.target/arm/cold-lc.c: Update coding style, call dump_stack conditionally. From-SVN: r249157
2017-06-13runtime: don't always show frames with no function in tracebackIan Lance Taylor1-1/+1
If there is no function name, the traceback is generally uninformative. In earlier versions we did not show such frames. Restore that behavior. These frames can be seen with GOTRACEBACK=system. Reviewed-on: https://go-review.googlesource.com/45431 From-SVN: r249156
2017-06-13Fixed spelling mistake in gcc/ChangeLogMartin Jambor1-2/+2
From-SVN: r249155
2017-06-13[PR80803 2/2] Diligent queuing in SRA grp_write propMartin Jambor5-41/+174
2017-06-13 Martin Jambor <mjambor@suse.cz> PR tree-optimization/80803 PR tree-optimization/81063 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file. (propagate_subaccesses_across_link): Enqueue subtree whneve necessary instead of relying on the caller. testsuite/ gcc.dg/tree-ssa/pr80803.c: New test. gcc.dg/tree-ssa/pr81063.c: Likewise. From-SVN: r249154
2017-06-13[PR80803 1/2] Streamline SRA access enqueuingMartin Jambor2-10/+14
2017-06-13 Martin Jambor <mjambor@suse.cz> * tree-sra.c (add_access_to_work_queue): Only enqueue accesses that have a first_link. (sort_and_splice_var_accesses): Do not check first_link before enquing. (subtree_mark_written_and_enqueue): Likewise. (propagate_all_subaccesses): Likewise and do not stop at first parent with a first_link. From-SVN: r249153
2017-06-13Trivial fix in dump_access_tree_1Martin Jambor2-1/+6
2017-06-13 Martin Jambor <mjambor@suse.cz> * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr instead of f. From-SVN: r249152
2017-06-13match.pd: New pattern.Yury Gribov4-0/+52
2017-06-13 Yury Gribov <tetra2005@gmail.com> gcc/ * match.pd: New pattern. gcc/testsuite/ * c-c++-common/fold-masked-cmp-3.c: New test. From-SVN: r249151
2017-06-13tree-vrp.c (is_masked_range_test): New function.Yury Gribov2-0/+100
2017-06-13 Yury Gribov <tetra2005@gmail.com> gcc/ * tree-vrp.c (is_masked_range_test): New function. (register_edge_assert_for): Determine ranges for some bit tests. From-SVN: r249150
2017-06-13re PR tree-optimization/67328 (range test rather than single bit test for ↵Yury Gribov7-3/+141
code testing enum values) 2017-06-13 Yury Gribov <tetra2005@gmail.com> gcc/ PR tree-optimization/67328 * fold-const.c (maskable_range_p): New function. (build_range_check): Generate bittests if possible. gcc/testsuite/ PR tree-optimization/67328 * c-c++-common/fold-masked-cmp-1.c: New test. * c-c++-common/fold-masked-cmp-2.c: Likewise. * gcc.dg/pr46309.c: Fix pattern. * gcc.dg/pr46309-2.c: Likewise. From-SVN: r249149
2017-06-13sdiv_costs_1.c: Require arm_arch_v8a_ok and add march option.Tamar Christina2-2/+7
2017-06-13 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: Require arm_arch_v8a_ok and add march option. From-SVN: r249148
2017-06-13Enhance dump_probability function.Martin Liska6-12/+31
2017-06-13 Martin Liska <mliska@suse.cz> * gimple-pretty-print.c (dump_probability): Add new argument. (dump_edge_probability): Dump both probability and count. (dump_gimple_label): Likewise. (dump_gimple_bb_header): Likewise. 2017-06-13 Martin Liska <mliska@suse.cz> * gcc.dg/tree-ssa/builtin-sprintf-2.c: Adjust scanned pattern. * gcc.dg/tree-ssa/dump-2.c: Likewise. * gcc.dg/tree-ssa/vrp101.c: Likewise. From-SVN: r249147
2017-06-13re PR target/81072 ([avr] Support some XMEGA devices with flash seen in RAM ↵Georg-Johann Lay3-2/+8
address space.) PR target/81072 * config/avr/avr-devices.c: Fix indentation. * config/avr/gen-avr-mmcu-specs.c: Dito. From-SVN: r249146
2017-06-13tree-vect-loop.c (vect_model_reduction_cost): Do not fail, instead get ↵Richard Biener2-41/+12
vector type from stmt_info. 2017-06-13 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_model_reduction_cost): Do not fail, instead get vector type from stmt_info. (vectorizable_reduction): Adjust. Remove dead code. From-SVN: r249145
2017-06-13re PR sanitizer/81065 (UBSAN: false positive as a result of distribution ↵Richard Biener4-6/+26
involving different types) 2017-06-13 Richard Biener <rguenther@suse.de> PR middle-end/81065 * fold-const.c (extract_muldiv_1): Remove bogus distribution case of C * (x * C2 + C3). (fold_addr_of_array_ref_difference): Properly fold index difference. * c-c++-common/ubsan/pr81065.c: New testcase. From-SVN: r249144
2017-06-13runtime: clear isSystemGoroutine in goexitIan Lance Taylor1-1/+1
Otherwise it may be set when the g struct is reused via gfput/gfget. Test is golang.org/x/net/http2 with GOMAXPROCS=12. Reviewed-on: https://go-review.googlesource.com/45430 From-SVN: r249143
2017-06-13Daily bump.GCC Administrator1-1/+1
From-SVN: r249142
2017-06-12runtime: ignore _Gscan bit when checking status in CgocallDoneIan Lance Taylor1-1/+1
Also always access the atomicstatus field atomically. The effect of not checking the _Gscan bit is that if the GC decides to scan the stack just as the goroutine is leaving the system call, the goroutine might fail to call exitsyscall. Then then typically causes a runtime assertion failure later on. If we do call exitsyscall as we should, it will stall (in casgstatus) until the _Gscan bit is cleared. No separate test. I've observed causing sporadic failures running the misc/cgo tests, but we don't currently have a way to run those routinely for gccgo. I should fix that. Reviewed-on: https://go-review.googlesource.com/45392 From-SVN: r249138
2017-06-12More refinements to fixing sparc's PR target/80968.David S. Miller2-1/+10
gcc/ PR target/80968 * config/sparc/sparc.md (return expander): Emit frame blockage if function uses alloca. From-SVN: r249134
2017-06-12compiler: avoid orphaning Bexpressions when processing conversionsIan Lance Taylor2-4/+10
The method Type_conversion_expression::do_get_backend was (in some circumstances) creating a Bexpression for the source expression of the conversion and then throwing it away before using it. Fix up this method to insure that the call to get_backend() on the source expression is only made when the result will be used. Reviewed-on: https://go-review.googlesource.com/45350 From-SVN: r249131
2017-06-12split-1.c: Require split_stack, don't require freorder.Ian Lance Taylor2-3/+8
* gcc.dg/tree-prof/split-1.c: Require split_stack, don't require freorder. Update comment to explain test. From-SVN: r249129
2017-06-12Fix pessimistic DImode handling in combine.c:make_field_assignmentRichard Sandiford2-1/+6
The make_field_assignment code: src = force_to_mode (src, mode, GET_MODE_PRECISION (mode) >= HOST_BITS_PER_WIDE_INT ? HOST_WIDE_INT_M1U : (HOST_WIDE_INT_1U << len) - 1, 0); would ignore the field length len for DImode, even though DImode can be handled using HWIs. I think the code should be testing len instead. 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * combine.c (make_field_assignment): Check len rather than the mode precision when calling force_to_mode. From-SVN: r249128
2017-06-12inline-lrint_1.c: Broaden regexp.Tamar Christina5-14/+13
2017-06-12 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/inline-lrint_1.c: Broaden regexp. * gcc.target/aarch64/inline-lrint_2.c: Likewise. * gcc.target/aarch64/no-inline-lrint_1.c: Likewise. * gcc.target/aarch64/no-inline-lrint_2.c: Likewise. From-SVN: r249127
2017-06-12sdiv_costs_1.c: Require arm_v8_vfp_ok.Tamar Christina2-3/+6
2017-06-12 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: Require arm_v8_vfp_ok. From-SVN: r249125
2017-06-12Support multilibs and devices that see flash in RAM address range.Georg-Johann Lay16-83/+341
gcc/ Support multilibs and devices that see flash in RAM address range. PR target/81072 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum. (avr_mcu_t) <flash_pm_offset>: New field. (avr_device_specific_features) <AVR_ISA_RCALL>: New enum. * config/avr/avr.h (AVR_SHORT_CALLS): New define. (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS. (AVR_TINY_PM_OFFSET): Remove macro. * config/avr/avr.opt (-mshort-calls): New option. * config/avr/gen-avr-mmcu-specs.c (print_mcu) [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL. * config/avr/avr-c.c (avr_cpu_cpp_builtins) <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS. <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition instead of avr_arch->have_jmp_call. <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset. [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use avr_arch->flash_pm_offset to define. * config/avr/avr-devices.c (avr_arch_types): Add initializers for new field flash_pm_offset. Add entry for avrxmega3. (avr_texinfo): Add entry for avrxmega3. * config/avr/avr-mcus.def: Add entries for: avrxmega3, attiny212, attiny214, attiny412, attiny414, attiny416, attiny417, attiny814, attiny816, attiny817, attiny1614, attiny1616, attiny1617, attiny3214, attiny3216, attiny3217. * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET. (avr_print_operand_address) [AVR_TINY]: Same. (avr_asm_init_sections) <readonly_data_section>: Only patch callback if avr_arch->flash_pm_offset = 0. (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it for rodata if avr_arch->flash_pm_offset != 0. (avr_encode_section_info) [AVR_TINY]: Adjust comment. * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars. (opts) [AVR_ISA_RCALL]: Append opt_rcall. (m_options): Append opt_rcall. (m_dirnames): Append dir_rcall. * config/avr/t-multilib: Regenerate. * configure.ac [target=avr]: Check whether avrxmega3 default linker description file works as needed. * configure: Regenerate. * doc/avr-mmcu.texi: Regenerate. * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it. <__AVR_ARCH__>: Document avrxmega3 and 103. <__AVR_HAVE_JMP_CALL__>: Adjust documentation. <__AVR_SHORT_CALLS__>: Document it. <__AVR_PM_BASE_ADDRESS__>: Document it. * doc/extend.texi (AVR Options) <-mshort-calls>: Document it. (AVR Variable Attributes) <progmem>: Document this is not needed for avrxmega3. (AVR Named Address Spaces) <__flash>: Dito. From-SVN: r249124
2017-06-12* cgraph.c (cgraph_node::dump): Complain about profile insanities.Jan Hubicka2-1/+38
From-SVN: r249123
2017-06-12sdiv_costs_1.c: Disable on softfloat.Tamar Christina2-0/+6
2017-06-12 Tamar Christina <tamar.christina@arm.com> * gcc.target/arm/sdiv_costs_1.c: Disable on softfloat. From-SVN: r249122
2017-06-12config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".Doug Rupp3-0/+61
2017-06-12 Doug Rupp <rupp@adacore.com> gcc/ * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide". Append vxworks-stdint.h to the tm_file list. * config/vxworks-stdint.h: New file. fixincludes/ * inclhack.def (AAB_vxworks_stdint): Remove hack. * fixincl.x: Regenerate. From-SVN: r249121
2017-06-12Create an extra BB in profile-generate (PR tree-optimization/81041).Martin Liska2-0/+15
2017-06-12 Martin Liska <mliska@suse.cz> PR tree-optimization/81041 * tree-profile.c (gimple_gen_ic_func_profiler): Create an extra BB in profile-generate (gimple_gen_time_profiler): Likewise. From-SVN: r249120
2017-06-12re PR bootstrap/80897 (gnat bootstrap broken on SPARC64/Linux)Eric Botcazou2-1/+6
PR bootstrap/80897 * exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index. From-SVN: r249119
2017-06-12rs6000: Remove e500.h from config.gcc some moreSegher Boessenkool1-10/+10
* config.gcc: Remove rs6000/e500.h from tm_file for all targets. From-SVN: r249117
2017-06-12re PR ada/81070 (build failure for s-intrr.adb)Eric Botcazou3-1/+1117
PR ada/81070 * s-interr-hwint.adb: Reinstate. * gcc-interface/Makefile.in (RTEMS): Use it again. From-SVN: r249115
2017-06-12re PR tree-optimization/81003 (ICE: tree check: expected ssa_name, have ↵Jakub Jelinek4-6/+44
integer_cst in optimize_range_tests_to_bit_test, at tree-ssa-reassoc.c:2782) PR tree-optimization/81003 * tree-ssa-reassoc.c (force_into_ssa_name): New function. (update_range_test): Use it instead of force_gimple_operand_gsi. * gcc.c-torture/compile/pr81003.c: New test. From-SVN: r249114
2017-06-12re PR tree-optimization/81053 (ICE on valid code at -O3 on x86_64-linux-gnu: ↵Richard Biener4-36/+52
in as_a, at is-a.h:192) 2017-06-12 Richard Biener <rguenther@suse.de> PR tree-optimization/81053 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI with backedge value not defined in loop. Simplify def stmt compute. * gcc.dg/torture/pr81053.c: New testcase. From-SVN: r249113
2017-06-12Daily bump.GCC Administrator1-1/+1
From-SVN: r249110
2017-06-11Disable constant pool for nvptxTom de Vries2-0/+18
2017-06-11 Tom de Vries <tom@codesourcery.com> PR target/79939 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function. Return true. (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to nvptx_cannot_force_const_mem. From-SVN: r249106
2017-06-11opts.c (finish_options): Move test for flag_split_stack after it has been ↵Jan Hubicka2-13/+19
initialized. * opts.c (finish_options): Move test for flag_split_stack after it has been initialized. From-SVN: r249105
2017-06-11* error.c (dump_expr): Use is_this_parameter.Jason Merrill2-5/+4
From-SVN: r249104
2017-06-11tree.h (id_equal): New.Jason Merrill20-37/+63
* tree.h (id_equal): New. * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c, omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it instead of strcmp of IDENTIFIER_POINTER. c-family/ * c-ada-spec.c, c-pragma.c: Use it. cp/ * cp-tree.h, decl2.c, mangle.c, parser.c, pt.c, semantics.c: Use it. From-SVN: r249103
2017-06-11Daily bump.GCC Administrator1-1/+1
From-SVN: r249102
2017-06-10ipa-inline-transform.c: Include function.h, cfg.h and basic-block.hJan Hubicka2-2/+41
* ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h (mark_all_inlined_calls_cdtor): Fix formating. (inline_transform): Rescale profile before inlining. From-SVN: r249098
2017-06-10cgraph.h (cgraph_edge::clone): Update prototype.Jan Hubicka4-25/+32
* cgraph.h (cgraph_edge::clone): Update prototype. * cgraphclones.c (cgraph_edge::clone): Update profile scaling. (cgraph_node::create_clone): Update. (cgraph_node::create_version_clone): Update. * tree-inline.c (copy_bb): Update. (expand_call_inline): Update. From-SVN: r249097
2017-06-11rs6000: Factor out emit_vrsave_prologueSegher Boessenkool2-23/+38
This is a second patch to make the prologue code more manageable. * config/rs6000/rs6000.c (emit_vrsave_prologue): New function, factored out from ... (rs6000_emit_prologue): ... here. From-SVN: r249096
2017-06-11rs6000: Factor out emit_split_stack_prologueSegher Boessenkool2-39/+53
This is a first patch to make the prologue code more manageable. * config/rs6000/rs6000.c (emit_split_stack_prologue): New function, factored out from ... (rs6000_emit_prologue): ... here. From-SVN: r249095
2017-06-10predict.c (drop_profile): Also drop individual bb/edge and cgraph edge counts.Jan Hubicka2-9/+41
* predict.c (drop_profile): Also drop individual bb/edge and cgraph edge counts. (handle_missing_profiles): Fix computation of tp_first_run. (counts_to_freqs): Do not touch freqs when count is 0. From-SVN: r249094
2017-06-10cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch profile.Jan Hubicka2-2/+5
* cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch profile. From-SVN: r249093
2017-06-10re PR fortran/80988 (171_swim fails)Thomas Koenig4-1/+49
2017-06-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/80988 * frontend-passes.c (traverse_io_block): Also check for variables occurring as indices multiple time in a single implied DO loop. 2017-06-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/80988 * gfortran.dg/implied_do_io_3.f90: New test. From-SVN: r249092
2017-06-10Add effective target signalTom de Vries12-4/+43
2017-06-10 Tom de Vries <tom@codesourcery.com> * lib/target-supports.exp (check_effective_target_signal): New proc. * lib/gcc.exp (gcc_target_compile): Remove appending of -DSIGNAL_SUPPRESS to additional_flags. * gcc.c-torture/execute/ieee/ieee.exp: Add -DSIGNAL_SUPPRESS to additional_flags if effective target signal is not supported by the target. * gcc.c-torture/execute/20101011-1.c: Same. * gcc.dg/c99-stdint-1.c: Same. * gcc.dg/c99-stdint-2.c: Same. * gcc.dg/c99-stdint-5.c: Same. * gcc.dg/c99-stdint-6.c: Same. * gcc.dg/stdint-width-1.c: Same. * doc/sourcebuild.texi (Effective-Target Keywords, Environment attributes): Document signal effective target. From-SVN: r249091
2017-06-10Add effective target stack_sizeTom de Vries44-8/+147
2017-06-10 Tom de Vries <tom@codesourcery.com> * lib/target-supports.exp (check_effective_target_stack_size) (dg-effective-target-value): New proc. * lib/gcc.exp (gcc_target_compile): Remove adding of DSTACK_SIZE to additional_flags. * lib/objc.exp (objc_target_compile): Same. * lib/profopt.exp (profopt-get-options): Allow dg-additional-options. * g++.old-deja/g++.eh/badalloc1.C: Add -DSTACK_SIZE=<value> using dg-additional-options. * gcc.c-torture/compile/20080806-1.c: Same. * gcc.c-torture/compile/920723-1.c: Same. * gcc.c-torture/compile/930621-1.c: Same. * gcc.c-torture/compile/991214-2.c: Same. * gcc.c-torture/compile/bcopy.c: Same. * gcc.c-torture/compile/memtst.c: Same. * gcc.c-torture/compile/msp.c: Same. * gcc.c-torture/compile/stuct.c: Same. * gcc.c-torture/execute/20011008-3.c: Same. * gcc.c-torture/execute/20030209-1.c: Same. * gcc.c-torture/execute/20031012-1.c: Same. * gcc.c-torture/execute/20040805-1.c: Same. * gcc.c-torture/execute/920410-1.c: Same. * gcc.c-torture/execute/920501-7.c: Same. * gcc.c-torture/execute/921113-1.c: Same. * gcc.c-torture/execute/921202-1.c: Same. * gcc.c-torture/execute/921208-2.c: Same. * gcc.c-torture/execute/930106-1.c: Same. * gcc.c-torture/execute/930406-1.c: Same. * gcc.c-torture/execute/950221-1.c: Same. * gcc.c-torture/execute/960521-1.c: Same. * gcc.c-torture/execute/980605-1.c: Same. * gcc.c-torture/execute/comp-goto-1.c: Same. * gcc.c-torture/execute/comp-goto-2.c: Same. * gcc.c-torture/execute/memcpy-1.c: Same. * gcc.c-torture/execute/multi-ix.c: Same. * gcc.c-torture/execute/nestfunc-4.c: Same. * gcc.c-torture/execute/pr20621-1.c: Same. * gcc.c-torture/execute/pr23135.c: Same. * gcc.c-torture/execute/pr28982b.c: Same. * gcc.dg/loop-3.c: Same. * gcc.dg/struct-ret-3.c: Same. * gcc.dg/torture/stackalign/comp-goto-1.c: Same. * gcc.dg/torture/stackalign/non-local-goto-4.c: Same. * gcc.dg/tree-prof/comp-goto-1.c: Same. * gcc.dg/tree-prof/pr44777.c: Same. * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): Document effective target stack_size. From-SVN: r249090
2017-06-09Missing bits from N4268, constant evaluation for all non-type args.Jason Merrill16-100/+166
* call.c (build_converted_constant_expr): Rename from build_integral_nontype_arg_conv, handle all types. * pt.c (convert_nontype_argument): In C++17 call it for all types. Move NOP stripping inside pointer case, don't strip ADDR_EXPR. * cvt.c (strip_fnptr_conv): Also strip conversions to the same type. From-SVN: r249089
2017-06-09Overhaul pointer-to-member conversion and template argument handling.Jason Merrill7-45/+61
* call.c (standard_conversion): Avoid creating ck_pmem when the class type is the same. * cvt.c (can_convert_qual): Split from perform_qualification_conversions. * constexpr.c (cxx_eval_constant_expression): Check it. * typeck.c (convert_ptrmem): Only cplus_expand_constant if adjustment is necessary. * pt.c (check_valid_ptrmem_cst_expr): Compare class types. (convert_nontype_argument): Avoid redundant error. From-SVN: r249088