Age | Commit message (Collapse) | Author | Files | Lines |
|
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
|
|
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
|
|
From-SVN: r249155
|
|
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 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-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-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-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
|
|
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-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-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
|
|
address space.)
PR target/81072
* config/avr/avr-devices.c: Fix indentation.
* config/avr/gen-avr-mmcu-specs.c: Dito.
From-SVN: r249146
|
|
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
|
|
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
|
|
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
|
|
From-SVN: r249142
|
|
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
|
|
gcc/
PR target/80968
* config/sparc/sparc.md (return expander): Emit frame blockage if
function uses alloca.
From-SVN: r249134
|
|
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
|
|
* gcc.dg/tree-prof/split-1.c: Require split_stack, don't require
freorder. Update comment to explain test.
From-SVN: r249129
|
|
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-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-12 Tamar Christina <tamar.christina@arm.com>
* gcc.target/arm/sdiv_costs_1.c: Require arm_v8_vfp_ok.
From-SVN: r249125
|
|
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
|
|
From-SVN: r249123
|
|
2017-06-12 Tamar Christina <tamar.christina@arm.com>
* gcc.target/arm/sdiv_costs_1.c: Disable on softfloat.
From-SVN: r249122
|
|
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-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
|
|
PR bootstrap/80897
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index.
From-SVN: r249119
|
|
* config.gcc: Remove rs6000/e500.h from tm_file for all targets.
From-SVN: r249117
|
|
PR ada/81070
* s-interr-hwint.adb: Reinstate.
* gcc-interface/Makefile.in (RTEMS): Use it again.
From-SVN: r249115
|
|
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
|
|
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
|
|
From-SVN: r249110
|
|
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
|
|
initialized.
* opts.c (finish_options): Move test for flag_split_stack after
it has been initialized.
From-SVN: r249105
|
|
From-SVN: r249104
|
|
* 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
|
|
From-SVN: r249102
|
|
* 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
|
|
* 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
|
|
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
|
|
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
|
|
* 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
|
|
* cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
profile.
From-SVN: r249093
|
|
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-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-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
|
|
* 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
|
|
* 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
|