Jeff Law [Fri, 18 Sep 2015 19:33:48 +0000 (13:33 -0600)]
[PATCH] const_and_copies is no longer file scoped
PR tree-optimization/47679
* tree-ssa-dom.c (const_and_copies): No longer file scoped. Move
it here ...
(dom_opt_dom_walker): New private member holding the const_and_copies
object. Update constructor.
(pass_dominator::execute): Corresponding changes to declaration
and initialization of const_and_copies. Update constructor call
for the dom_opt_dom_walker object.
(record_temporary_equivalences): Accept const_and_copies argument
pass it down to children as needed.
(record_equality): Likewise.
(record_equivalences_from_incoming_edge): Likewise.
(cprop_into_successor_phis, optimize_stmt): Likewise.
(eliminate_redundant_computations): Likewise.
(dom_opt_dom_walker::thread_across_edge): Update access to
const_and_copies object and pass it to children as needed.
(dom_opt_dom_walker::before_dom_children): Similarly.
(dom_opt_dom_walker::after_dom_children): Similarly.
From-SVN: r227922
Jeff Law [Fri, 18 Sep 2015 19:12:22 +0000 (13:12 -0600)]
[PATCH] avail_exprs is no longer file scoped
* tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury
it into the avail_exprs_stack class.
(pass_dominator::execute): Corresponding changes to declaration
and initialization of avail_exprs. Pass avail_exprs to
dump_dominator_optimization_stats.
(record_cond): Extract avail_exprs from avail_exprs_stack.
(lookup_avail_expr): Similarly.
(htab_staticstics): Remove unnecessary prototype. Move to earlier
position in file.
(dump_dominator_optimization_stats): Make static and prototype.
Add argument for the hash table to dump.
(debug_dominator_optimization_stats): Remove.
* tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
prototype.
(debug_dominator_optimization_stats): Similarly.
* tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
"void" in prototype for pop_to_marker method. Add accessor method
for the underlying avail_exprs table.
* tree-ssa-threadedge.c: Remove trailing whitespace.
From-SVN: r227921
John David Anglin [Fri, 18 Sep 2015 18:56:10 +0000 (18:56 +0000)]
pa-protos.h (pa_cint_ok_for_move): Change argument type to unsigned.
* config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
unsigned.
(pa_ldil_cint_p): Likewise.
* config/pa/pa.c (pa_cint_ok_for_move): likewise.
(pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
Update callers.
* config/pa/pa.md: Likewise.
From-SVN: r227920
David Malcolm [Fri, 18 Sep 2015 18:27:44 +0000 (18:27 +0000)]
Move diagnostic_show_locus and friends out into a new source file
gcc/ChangeLog:
* Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
* diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
(diagnostic_show_locus): Likewise.
(diagnostic_print_caret_line): Likewise.
* diagnostic-show-locus.c: New file.
From-SVN: r227915
David Edelsohn [Fri, 18 Sep 2015 18:14:45 +0000 (14:14 -0400)]
Update copyright.
From-SVN: r227912
David Edelsohn [Fri, 18 Sep 2015 18:03:26 +0000 (18:03 +0000)]
dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to "back" parameter.
* dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
"back" parameter. Declare label in #if block.
From-SVN: r227911
Uros Bizjak [Fri, 18 Sep 2015 16:27:51 +0000 (18:27 +0200)]
re PR middle-end/67619 (ICE at -O1 and above on x86_64-linux-gnu in int_mode_for_mode, at stor-layout.c:425)
PR middle-end/67619
* except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
the address to a register.
testsuite/ChangeLog:
PR middle-end/67619
* gcc.dg/torture/pr67619.c: New test.
From-SVN: r227909
Jeff Law [Fri, 18 Sep 2015 15:29:01 +0000 (09:29 -0600)]
[PATCH] Break out phi-only cprop into its own file
PR tree-optimization/47679
* Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
* tree-ssa-dom.c: Remove unnecessary header includes.
(remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
(get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
(propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
(eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
(pass_phi_only_cprop::execute): Likewise.
(make_pass_phi_only_cprop): Likewise.
* tree-ssa-phionlycprop.c: New file with moved code. Eliminate
uses of file scoped statics by passing the required objects
as parameters wherever needed.
From-SVN: r227908
Andrew Dixie [Fri, 18 Sep 2015 14:20:01 +0000 (14:20 +0000)]
aix61.h (STARTFILE_SPEC): Add crtdbase.o.
* config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
* config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
Declare.
(rs6000_asm_output_dwarf_datarel): Declare.
Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
From-SVN: r227907
Andrew Dixie [Fri, 18 Sep 2015 14:10:36 +0000 (14:10 +0000)]
config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
libgcc/
* config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.
* config/rs6000/crtdbase.S: New file.
* config/rs6000/t-aix-cxa: Build crtdbase.o.
gcc/
* defaults.h (EH_FRAME_SECTION_NAME): Depend on
EH_FRAME_THROUGH_COLLECT2.
* dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
DW_EH_PE_datarel.
* dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
even if EH_FRAME_SECTION_NAME is undefined. Restrict special
collect2 labels to EH_FRAME_THROUGH_COLLECT2.
* except.c (switch_to_exception_section): Use a read-only section
even if EH_FRAME_SECTION_NAME is undefined.
* system.h (EH_FRAME_IN_DATA_SECTION): Poison.
* collect2.c (write_c_file_stat): Provide dbase on AIX.
(scan_prog_file): Don't export __dso_handle nor
__gcc_unwind_dbase.
* config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
(EH_TABLES_CAN_BE_READ_ONLY): Define.
(ASM_OUTPUT_DWARF_PCREL): Define.
(ASM_OUTPUT_DWARF_DATAREL): Define.
(EH_FRAME_THROUGH_COLLECT2): Define.
(EH_FRAME_IN_DATA_SECTION): Delete.
* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
(rs6000_aix_asm_output_dwarf_datarel): New.
(rs6000_xcoff_asm_init_sections): Don't set exception_section.
* config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): Define.
* config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): Define.
(EH_TABLES_CAN_BE_READ_ONLY): Define.
* doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
(EH_FRAME_THROUGH_COLLECT2): New.
(ASM_OUTPUT_DWARF_DATAREL): New.
* doc/tm.texi: Regenerate.
Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
From-SVN: r227906
Richard Biener [Fri, 18 Sep 2015 12:59:32 +0000 (12:59 +0000)]
dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert we're in early phase.
2015-09-18 Richard Biener <rguenther@suse.de>
* dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
we're in early phase.
(schedule_generic_params_dies_gen): Likewise.
(gen_remaining_tmpl_value_param_die_attribute): Do only as much
work as possible, retaining unhandled cases.
(gen_scheduled_generic_parms_dies): Set early-dwarf flag and
clear out generic_type_instances at the end.
(dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
(dwarf2out_early_finish): ... here. Do most of
gen_remaining_tmpl_value_param_die_attribute here.
From-SVN: r227905
Jonathan Wakely [Fri, 18 Sep 2015 11:21:05 +0000 (12:21 +0100)]
Fix errors due to extra includes in extc++.h
* include/precompiled/extc++.h: Fix bootstrap error due to
unconditional inclusion of <ext/enc_filebuf.h>.
* include/ext/random: Check for definition of UINT32_C.
From-SVN: r227902
Alan Lawrence [Fri, 18 Sep 2015 10:55:11 +0000 (10:55 +0000)]
completely_scalarize arrays as well as records.
gcc/:
PR tree-optimization/67283
* tree-sra.c (type_consists_of_records_p): Rename to...
(scalarizable_type_p): ...this, add case for ARRAY_TYPE.
(completely_scalarize_record): Rename to...
(completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
(scalarize_elem): New.
(analyze_all_variable_accesses): Follow renamings.
gcc/testsuite/:
* gcc.dg/tree-ssa/sra-15.c: New.
* gcc.dg/tree-ssa/sra-16.c: New.
From-SVN: r227901
Richard Biener [Fri, 18 Sep 2015 08:42:34 +0000 (08:42 +0000)]
dwarf2out.c (add_location_or_const_value_attribute): Do nothing in early-dwarf.
2015-09-18 Richard Biener <rguenther@suse.de>
* dwarf2out.c (add_location_or_const_value_attribute): Do nothing
in early-dwarf.
From-SVN: r227899
Richard Biener [Fri, 18 Sep 2015 07:57:00 +0000 (07:57 +0000)]
re PR tree-optimization/66142 (Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE)
2015-09-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/66142
* fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
treat MEM[&x] and x the same.
* tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
* tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
when we simplified sth.
(vn_reference_maybe_forwprop_address): Likewise.
(valueize_refs_1): When we simplified through
vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
set valueized_anything to true.
(vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
one ref kills the other instead of just a offset-based test.
* tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
for the operand_equal_p test to compare bases and also compare
sizes.
From-SVN: r227896
GCC Administrator [Fri, 18 Sep 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r227892
Catherine Moore [Thu, 17 Sep 2015 23:16:53 +0000 (19:16 -0400)]
debug.cc: Include <cstdio>.
2015-09-17 Catherine Moore <clm@codesourcery.com>
* src/c++11/debug.cc: Include <cstdio>.
From-SVN: r227888
Gerald Pfeifer [Thu, 17 Sep 2015 21:28:00 +0000 (21:28 +0000)]
Include <cerrno> in src/c++11/random.cc
2015-09-17 Gerald Pfeifer <gerald@pfeifer.com>
* src/c++11/random.cc: Include <cerrno>.
From-SVN: r227887
Bernd Edlinger [Thu, 17 Sep 2015 19:43:00 +0000 (19:43 +0000)]
re PR sanitizer/64078 (FAIL: c-c++-common/ubsan/object-size-9.c)
2015-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR sanitizer/64078
* c-c++-common/ubsan/object-size-9.c (s): Add alignment attribute.
(f2, f3): Make the function static.
* c-c++-common/ubsan/object-size-10.c (a, b): Add alignment attribute.
From-SVN: r227886
François Dumont [Thu, 17 Sep 2015 19:23:26 +0000 (19:23 +0000)]
2015-09-17 François Dumont <fdumont@gcc.gnu.org>
* include/debug/formatter.h
(_Error_formatter::_Parameter::_M_print_field): Deprecate.
(_Error_formatter::_Parameter::_M_print_description): Likewise.
(_Error_formatter::_M_format_word): Likewise.
(_Error_formatter::_M_print_word): Likewise.
(_Error_formatter::_M_print_string): Likewise.
(_Error_formatter::_M_get_max_length): Likewise.
(_Error_formatter::_M_max_length): Delete.
(_Error_formatter::_M_indent): Likewise.
(_Error_formatter::_M_column): Likewise.
(_Error_formatter::_M_first_line): Likewise.
(_Error_formatter::_M_wordwrap): Likewise.
* src/c++11/debug.cc: Adapt.
From-SVN: r227885
Andrew Sutton [Thu, 17 Sep 2015 18:26:06 +0000 (18:26 +0000)]
Implement N4295 fold-expressions.
* cp-tree.def: Add UNARY_LEFT_FOLD_EXPR, UNARY_RIGHT_FOLD_EXPR,
BINARY_LEFT_FOLD_EXPR, BINARY_RIGHT_FOLD_EXPR.
* cp-objcp-common.c (cp_common_init_ts): Handle them.
* cp-tree.h (FOLD_EXPR_CHECK, BINARY_FOLD_EXPR_CHECK, FOLD_EXPR_P)
(FOLD_EXPR_MODIFY_P, FOLD_EXPR_OP, FOLD_EXPR_PACK, FOLD_EXPR_INIT): New.
* parser.c (cp_parser_skip_to_closing_parenthesis): Split out...
(cp_parser_skip_to_closing_parenthesis_1): This function. Change
or_comma parameter to or_ttype.
(cp_parser_fold_operator, cp_parser_fold_expr_p)
(cp_parser_fold_expression): New.
(cp_parser_primary_expression): Use them.
* pt.c (expand_empty_fold, fold_expression, tsubst_fold_expr_pack)
(tsubst_fold_expr_init, expand_left_fold, tsubst_unary_left_fold)
(tsubst_binary_left_fold, expand_right_fold)
(tsubst_unary_right_fold, tsubst_binary_right_fold): New.
(tsubst_copy): Use them.
(type_dependent_expression_p): Handle fold-expressions.
* semantics.c (finish_unary_fold_expr)
(finish_left_unary_fold_expr, finish_right_unary_fold_expr)
(finish_binary_fold_expr): New.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r227883
Ian Lance Taylor [Thu, 17 Sep 2015 17:08:04 +0000 (17:08 +0000)]
posix.c (backtrace_open): Cast second argument of open() to int.
2015-09-17 Ian Lance Taylor <iant@google.com>
* posix.c (backtrace_open): Cast second argument of open() to int.
From-SVN: r227881
Christian Bruel [Thu, 17 Sep 2015 15:57:59 +0000 (17:57 +0200)]
arm.md (*call_value_symbol): Fix operand for interworking.
2015-09-17 Christian Bruel <christian.bruel@st.com>
* config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
From-SVN: r227880
Eric Botcazou [Thu, 17 Sep 2015 15:51:40 +0000 (15:51 +0000)]
* gcc-interface/trans.c (emit_check): Do not touch TREE_SIDE_EFFECTS.
From-SVN: r227879
Jonathan Wakely [Thu, 17 Sep 2015 15:46:04 +0000 (16:46 +0100)]
Handle alignment in __atomic_is_lock_free
gcc:
2015-09-17 Richard Henderson <rth@redhat.com>
PR libstdc++/65913
* builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
pointers that encode the alignment of the object.
libstdc++-v3:
2015-09-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/65913
* include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(),
__atomic_base<_PTp*>::is_lock_free()): Call the built-in with the
immediate pointer value, not a variable.
* include/std/atomic (atomic<T>::is_lock_free()): Likewise.
* testsuite/29_atomics/atomic/65913.cc: New.
From-SVN: r227878
Eric Botcazou [Thu, 17 Sep 2015 15:35:24 +0000 (15:35 +0000)]
re PR rtl-optimization/66790 (Invalid uninitialized register handling in REE)
PR rtl-optimization/66790
* df-problems.c (LIVE): Amend documentation.
From-SVN: r227874
Jonathan Wakely [Thu, 17 Sep 2015 15:33:20 +0000 (16:33 +0100)]
Remove non-deterministic part of canonical() test
* testsuite/experimental/filesystem/operations/canonical.cc: Remove
non-deterministic part of the test.
From-SVN: r227873
Jonathan Wakely [Thu, 17 Sep 2015 15:06:42 +0000 (16:06 +0100)]
Make std::random_device retry after short reads
PR libstdc++/65142
* src/c++11/random.cc (random_device::_M_getval()): Retry after short
reads.
From-SVN: r227872
Jonathan Wakely [Thu, 17 Sep 2015 14:56:50 +0000 (15:56 +0100)]
Remove redundant conditional expressions in <system_error>
* include/std/system_error (error_code::operator bool(),
error_condition::operator bool()): Remove redundant conditional
expression.
From-SVN: r227871
Jonathan Wakely [Thu, 17 Sep 2015 14:56:46 +0000 (15:56 +0100)]
Only do shrink_to_fit() when exceptions enabled
* include/bits/allocator.h (__shrink_to_fit_aux<T, true>::_S_do_it):
Do nothing if exceptions are disabled.
* include/bits/basic_string.h (basic_string::shrink_to_fit): Likewise.
From-SVN: r227870
Richard Sandiford [Thu, 17 Sep 2015 14:28:59 +0000 (14:28 +0000)]
Split up optabs.[hc]
optabs.[hc] is a bit of a behemoth. It includes basic functions for querying
what a target can do, related tree- and gimple-level query functions,
related rtl-level query functions, and the functions that actually
generate code. Some gimple optimisations therefore need:
#include "insn-config.h"
#include "expmed.h"
#include "dojump.h"
#include "explow.h"
#include "emit-rtl.h"
#include "varasm.h"
#include "stmt.h"
#include "expr.h"
purely to query whether the target has support for a particular operation.
This patch splits optabs up as follows:
- optabs-query.[hc]: IL-independent functions for querying what a target
can do natively.
- optabs-tree.[hc]: tree and gimple query functions (an extension of
optabs-query.[hc]).
- optabs-libfuncs.[hc]: optabs-specific libfuncs (an extension of
libfuncs.h)
- optabs.h: For now includes optabs-query.h and optabs-libfuncs.h.
Only two files outside optabs need to include both optabs.h and
optabs-tree.h: expr.c and function.c. I think that's expected given
that both are related to expand.
It might be good to split optabs.h further, but this is already quite
a big patch.
I changed can_conditionally_move_p from returning an int to returning
a bool and fixed a few formatting glitches. There should be no other
changes to the functions themselves.
gcc/
* Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
and optabs-tree.o.
(GTFILES): Replace optabs.c with optabs-libfunc.c.
* genopinit.c (main): Add an include guard to insn-opinit.h.
Protect the rtx_code parts with NUM_RTX_CODE.
* optabs.h: Split parts out to...
* optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these
new files.
* optabs.c: Split parts out to...
* optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these
new files.
* cilk-common.c: Include optabs-query.h rather than optabs.h.
* fold-const.c: Likewise.
* target-globals.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-loop-prefetch.c: Likewise.
* tree-ssa-math-opts.c: Include optabs-tree.h rather than
optabs.h. Remove unncessary include files.
* tree-ssa-phiopt.c: Likewise.
* tree-ssa-reassoc.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-generic.c: Likewise.
* tree-vect-loop.c: Likewise.
* tree-vect-patterns.c: Likewise.
* tree-vect-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vrp.c: Likewise.
* toplev.c: Include optabs-query.h and optabs-libfuncs.h
rather than optabs.h.
* expr.c: Include optabs-tree.h.
* function.c: Likewise.
From-SVN: r227865
Ian Lance Taylor [Thu, 17 Sep 2015 13:57:40 +0000 (13:57 +0000)]
compiler: Issue channel type errors earlier.
When asking for the type of a receive operation, the compiler would
return an error type if the receive operator was being used on an
invalid channel type and the error would be reported in a later pass.
There are several ways that the type checking pass would not see
the original node and fail to issue the error. This patch modifies
receive operations to give an error immediately once it is known that
the channel type is invalid.
Fixes golang/go#12323.
Reviewed-on: https://go-review.googlesource.com/13987
From-SVN: r227863
Eric Botcazou [Thu, 17 Sep 2015 11:06:57 +0000 (11:06 +0000)]
re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking)
PR middle-end/65958
* config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
* config/arm/arm-protos.h (output_probe_stack_range): Declare.
* config/arm/arm.c: Include common/common-target.h.
(use_return_insn): Return 0 if the static chain register was saved
above a non-APCS frame.
(arm_compute_static_chain_stack_bytes): Adjust for stack checking.
(struct scratch_reg): New.
(get_scratch_register_on_entry): New function.
(release_scratch_register_on_entry): Likewise.
(arm_emit_probe_stack_range): Likewise.
(output_probe_stack_range): Likewise.
(arm_expand_prologue): Factor out code dealing with the IP register
for nested function and adjust it for stack checking.
Invoke arm_emit_probe_stack_range if static builtin stack checking
is enabled.
(thumb1_expand_prologue): Sorry out if static builtin stack checking
is enabled.
(arm_expand_epilogue): Add the saved static chain register, if any, to
the amount of pre-pushed registers to pop.
(arm_frame_pointer_required): Return true if static stack checking is
enabled and we want to catch the exception with the EABI unwinder.
* config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
(UNSPEC_PROBE_STACK_RANGE): Likewise.
* config/arm/arm.md (probe_stack): New insn.
(probe_stack_range): Likewise.
From-SVN: r227860
Richard Biener [Thu, 17 Sep 2015 11:02:11 +0000 (11:02 +0000)]
genmatch.c (parser::parse_expr): Improve error message for mis-placed flags.
2015-09-17 Richard Biener <rguenther@suse.de>
* genmatch.c (parser::parse_expr): Improve error message
for mis-placed flags.
From-SVN: r227859
Richard Biener [Thu, 17 Sep 2015 09:47:43 +0000 (09:47 +0000)]
passes.c (rest_of_decl_compilation): Always call early_global_decl debug hook when we created a varpool node.
2015-09-17 Richard Biener <rguenther@suse.de>
* passes.c (rest_of_decl_compilation): Always call early_global_decl
debug hook when we created a varpool node.
* dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
dwarf2out_early_global_decl, when not just add location or
value attributes to existing DIEs.
From-SVN: r227857
Paul Thomas [Thu, 17 Sep 2015 09:09:34 +0000 (09:09 +0000)]
re PR fortran/52846 ([F2008] Support submodules)
2015-09-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
PR fortran/67588
* module.c : Add static no_module_procedures.
(gfc_match_submodule): Correct memory leakage caused during the
freeing of use_lists.
(mio_symbol_attribute): Reset above if module procedure is
encountered.
(gfc_dump_module): Set above and exit without writing smod file
if it reset.
* gfortran.texi : Add section on submodule support.
2015-09-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* gfortran.dg/public_private_module_5.f90: Add module procedure
trigger_smod to ensure that the smod file is written.
From-SVN: r227855
James Greenhalgh [Thu, 17 Sep 2015 08:23:05 +0000 (08:23 +0000)]
[AArch64] Implement copysign[ds]f3
gcc/
* config/aarch64/aarch64.md (copysigndf3): New.
(copysignsf3): Likewise.
gcc/testsuite/
* gcc.target/aarch64/copysign_1.c: New.
* gcc.target/aarch64/copysign_2.c: New.
From-SVN: r227849
David S. Miller [Thu, 17 Sep 2015 07:54:07 +0000 (07:54 +0000)]
Fix LRA regressions on 64-bit SPARC.
gcc/
* config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
Declare.
* config/sparc/sparc.c (sparc_secondary_memory_needed): New
function.
* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
(HARD_REGNO_CALLER_SAVE_MODE): Define.
* config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
(setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
(embmedany_losum, embmedany_brsum, embmedany_textuhi)
(embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
provide when flag_pic.
From-SVN: r227847
Richard Biener [Thu, 17 Sep 2015 07:48:09 +0000 (07:48 +0000)]
cp-tree.h (note_decl_for_pch): Remove.
2015-09-17 Richard Biener <rguenther@suse.de>
* cp-tree.h (note_decl_for_pch): Remove.
* class.c (build_clone): Do not call note_decl_for_pch.
* semantics.c (finish_member_declaration): Likewise.
(note_decl_for_pch): Remove.
* decl2.c (c_parse_final_cleanups): Mangle all globals before
writing the PCH.
From-SVN: r227846
Kaz Kojima [Thu, 17 Sep 2015 07:45:41 +0000 (07:45 +0000)]
Fix build failure for SH.
* config/sh/sh.c (label_ref_list_d_pool): Adjust to object_allocator change.
From-SVN: r227845
Bin Cheng [Thu, 17 Sep 2015 03:40:18 +0000 (03:40 +0000)]
re PR tree-optimization/66388 (Test gcc.target/i386/pr49781-1.c failed because of recent scev overflow patches.)
PR tree-optimization/66388
* tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New
fields.
(dump_iv): Dump no_overflow information.
(alloc_iv): Initialize new field for struct iv.
(mark_bivs): Count number of no_overflow bivs.
(find_deriving_biv_for_expr, record_biv_for_address_use): New
functions.
(idx_find_step): Call new functions above.
(add_candidate_1, add_candidate): New paramter.
(add_iv_candidate_for_biv): Add sizetype cand for BIV.
(get_computation_aff): Simplify convertion of cand for BIV.
(get_computation_cost_at): Step cand's base if necessary.
From-SVN: r227844
Bin Cheng [Thu, 17 Sep 2015 03:08:41 +0000 (03:08 +0000)]
tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New parameter.
* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
parameter.
(tree_simplify_using_condition): Ditto.
(simplify_using_initial_conditions): Ditto.
(loop_exits_before_overflow): Pass new argument to function
simplify_using_initial_conditions. Remove case for type conversions
simplification.
* tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
parameter.
* tree-scalar-evolution.c (simple_iv): Simplify type conversions
in iv base using loop initial conditions.
gcc/testsuite/ChangeLog
* gcc.dg/tree-ssa/loop-bound-2.c: New test.
* gcc.dg/tree-ssa/loop-bound-4.c: New test.
* gcc.dg/tree-ssa/loop-bound-6.c: New test.
From-SVN: r227843
Jeff Law [Thu, 17 Sep 2015 03:01:03 +0000 (21:01 -0600)]
[PATCH] Pass in avail_expr_stack and setup edge_infos earlier
PR tree-optimization/47679
* tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
(free_all_edge_infos): Use it.
(allocate_edge_info): Free preexisting edge info data.
(pass_dominator::execute): Set up initial edge info structures.
(dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
thread_across_edge.
* tree-ssa-threadedge.c (thread_across_edge): Accept new argument. If
non-null, then push/pop markers appropriately.
* tree-ssa-threadedge.h (thread_across_edge): Update prototype.
* tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
thread-across_edge.
From-SVN: r227842
James Bowman [Thu, 17 Sep 2015 02:29:25 +0000 (02:29 +0000)]
[FT32] Fix memory address space predicate.
gcc/
* config/ft32/ft32.c Fix the memory address space predicate.
From-SVN: r227841
GCC Administrator [Thu, 17 Sep 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r227840
Kaz Kojima [Thu, 17 Sep 2015 00:12:57 +0000 (00:12 +0000)]
re PR target/67573 ([SH] wrong code generated for libstdc++-v3/src/c++11/cxx11-shim_facets.cc at -mlra)
PR target/67573
* config/sh/sh.md: Add early clobber to scratch operand of *call_*pcrel
insn_and_split so not to CSE scratch reg.
From-SVN: r227837
Jonathan Wakely [Wed, 16 Sep 2015 22:50:28 +0000 (23:50 +0100)]
Implement filesystem::canonical() without realpath
PR libstdc++/67173
* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check _XOPEN_VERSION
and PATH_MAX for _GLIBCXX_USE_REALPATH.
* config.h.in: Regenerate.
* configure: Regenerate.
* src/filesystem/ops.cc: (canonical) [!_GLIBCXX_USE_REALPATH]: Add
alternative implementation.
* testsuite/experimental/filesystem/operations/canonical.cc: New.
* testsuite/experimental/filesystem/operations/exists.cc: Add more
tests.
* testsuite/experimental/filesystem/operations/absolute.cc: Add test
variables.
* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
* testsuite/experimental/filesystem/operations/current_path.cc:
Likewise.
* testsuite/experimental/filesystem/operations/file_size.cc: Likewise.
* testsuite/experimental/filesystem/operations/status.cc: Likewise.
* testsuite/experimental/filesystem/operations/temp_directory_path.cc:
Likewise.
From-SVN: r227836
Manuel López-Ibáñez [Wed, 16 Sep 2015 21:25:28 +0000 (21:25 +0000)]
Move check_global_declaration from toplev.c to cgraphunit.c
Unfortunately, toplev.c is a kitchen sink of things that do not belong anywhere
in particular. For example, check_global_declarations is only used in
cgraphunit.c. Moving it there allows us to make it static and remove one call
to symtab_node::get.
gcc/ChangeLog:
2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
* toplev.h (check_global_declaration): Remove declaration.
* toplev.c (check_global_declaration): Move to ...
* cgraphunit.c: ... here. Make it static and pass a symtab_node *.
(analyze_functions): Update call.
From-SVN: r227835
Ian Lance Taylor [Wed, 16 Sep 2015 18:04:22 +0000 (18:04 +0000)]
compiler: Don't crash on erroneous channel reads.
Fixes golang/go#12320.
Reviewed-on: https://go-review.googlesource.com/13932
From-SVN: r227834
David S. Miller [Wed, 16 Sep 2015 17:46:21 +0000 (17:46 +0000)]
Fix endianness assumption in LRA.
gcc/
* lra-constraints.c (simplify_operand_subreg): Do not assume that
lowpart of a SUBREG has offset zero.
From-SVN: r227833
John Marino [Wed, 16 Sep 2015 17:32:36 +0000 (17:32 +0000)]
read_dir.f90: XFAIL this testcase on DragonFly.
2015-09-16 John Marino <gnugcc@marino.st>
* gfortran.dg/read_dir.f90: XFAIL this testcase on DragonFly.
From-SVN: r227832
Jeff Law [Wed, 16 Sep 2015 17:25:51 +0000 (11:25 -0600)]
[PATCH] Move code out of tree-ssa-dom into tree-ssa-scopedtables
PR tree-optimization/47679
* tree-ssa-dom.c (enum expr_kind): Moved from here to
tree-ssa-scopedtables.h.
(struct hashable_expr, class expr_hash_elt): Likewise.
(struct expr_elt_hasher, class avail_exprs_stack): Likewise.
Move associated methods into tree-ssa-scopedtables.c.
(avail_expr_hash, initialize_expr_from_cond): Similarly.
(hashable_expr_equal_p, add_expr_commutative): Likewise.
(add_hashable_expr): Likewise.
(record_cond): Delete element directly.
* tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
private copy ctor and assignment operator methods.
(expr_elt_hasher): Inline trivial methods.
(initialize_expr_from_cond): Prototype.
* tree-ssa-scopedtables.c: Add necessary includes, functions and
methods that were previously in tree-ssa-dom.c. Improve various
comments.
From-SVN: r227831
Ian Lance Taylor [Wed, 16 Sep 2015 17:21:33 +0000 (17:21 +0000)]
compiler: Don't crash on malformed numeric constants.
Fixes golang/go#11548.
Reviewed-on: https://go-review.googlesource.com/13794
From-SVN: r227830
Paolo Carlini [Wed, 16 Sep 2015 15:14:39 +0000 (15:14 +0000)]
invoke.texi ([Wsubobject-linkage]): Extend documentation.
2015-09-16 Paolo Carlini <paolo.carlini@oracle.com>
* doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
From-SVN: r227828
Segher Boessenkool [Wed, 16 Sep 2015 15:02:32 +0000 (17:02 +0200)]
shrink-wrap: Fix up partitions (PR67587)
With the new shrink-wrap algorithm, blocks reachable both with and
without prologue are duplicated, and their incoming edges are then
distributed accordingly. So we need to call fixup_partitions.
2015-09-16 Segher Boessenkool <segher@kernel.crashing.org>
PR bootstrap/67587
* function.c (rest_of_handle_thread_prologue_and_epilogue): Call
fixup_partitions.
From-SVN: r227827
Richard Biener [Wed, 16 Sep 2015 14:27:52 +0000 (14:27 +0000)]
re PR tree-optimization/67253 (ICE at -O3 on x86_64-linux-gnu (verify_gimple failed))
2015-09-16 Richard Biener <rguenther@suse.de>
PR middle-end/67253
* cfgexpand.c (expand_gimple_stmt_1): Do not clobber
location of possibly shared trees.
* gcc.dg/torture/pr67253.c: New testcase.
From-SVN: r227826
Richard Biener [Wed, 16 Sep 2015 14:26:04 +0000 (14:26 +0000)]
re PR middle-end/67271 (ICE with -O1,2,3 on darwin14.5 x86_64)
2015-09-16 Richard Biener <rguenther@suse.de>
PR middle-end/67271
* fold-const.c (native_encode_expr): Bail out on bogus offsets.
* gcc.dg/pr67271.c: New testcase.
From-SVN: r227825
Eric Botcazou [Wed, 16 Sep 2015 10:02:21 +0000 (10:02 +0000)]
tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for offset and size computations instead of HOST_WIDE_INT.
* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
offset and size computations instead of HOST_WIDE_INT.
From-SVN: r227819
Richard Biener [Wed, 16 Sep 2015 07:25:15 +0000 (07:25 +0000)]
re PR middle-end/67442 (GCC 5.2.0 on x86_64 creates invalid address on specific array index calculation through pointer)
2015-09-16 Richard Biener <rguenther@suse.de>
PR middle-end/67442
* fold-const.c (extract_muldiv_1): Properly extend multiplication
result before builting a tree via wide_int_to_tree.
* gcc.dg/torture/pr67442.c: New testcase.
From-SVN: r227818
Mikhail Maltsev [Wed, 16 Sep 2015 00:56:54 +0000 (00:56 +0000)]
Share memory blocks between pool allocators
gcc/
* Makefile.in: Add memory-block.cc
(pool_allocator::initialize): Use fixed block size.
(pool_allocator::release): Use memory_block_pool.
(pool_allocator::allocate): Likewise.
* asan.c (asan_mem_ref_pool): Adjust to use common block size in all
object pools.
* cfg.c (initialize_original_copy_tables): Likewise.
* cselib.c (elt_list_pool, elt_loc_list_pool,
cselib_val_pool): Likewise.
* df-problems.c (df_chain_alloc): Likewise.
* df-scan.c (df_scan_alloc): Likewise.
* dse.c (cse_store_info_pool, rtx_store_info_pool,
read_info_type_pool, insn_info_type_pool, bb_info_pool,
group_info_pool, deferred_change_pool): Likewise.
* et-forest.c (et_nodes, et_occurrences): Likewise.
* ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
ipcp_agg_lattice_pool): Likewise.
* ipa-inline-analysis.c (edge_predicate_pool): Likewise.
* ipa-profile.c (histogram_pool): Likewise.
* ipa-prop.c (ipa_refdesc_pool): Likewise.
* ira-build.c (live_range_pool, allocno_pool, object_pool,
initiate_cost_vectors, pref_pool, copy_pool): Likewise.
* ira-color.c (update_cost_record_pool): Likewise.
* lra-lives.c (lra_live_range_pool): Likewise.
* lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
* memory-block.cc: New file.
* memory-block.h: New file.
* regcprop.c (queued_debug_insn_change_pool): Use common block size.
* sched-deps.c (sched_deps_init): Likewise.
* sel-sched-ir.c (sched_lists_pool): Likewise.
* stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
* tree-sra.c (access_pool): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
* tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
* tree-ssa-reassoc.c (operand_entry_pool): Likewise.
* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
* tree-ssa-strlen.c (strinfo_pool): Likewise.
* tree-ssa-structalias.c (variable_info_pool): Likewise.
* var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
gcc/c-family/
* c-format.c (check_format_arg): Adjust to use common block size in all
object pools.
From-SVN: r227817
GCC Administrator [Wed, 16 Sep 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r227816
Ian Lance Taylor [Tue, 15 Sep 2015 23:12:03 +0000 (23:12 +0000)]
compiler: Report init dependency errors with builtin functions.
Fixes golang/go#12319.
Reviewed-on: https://go-review.googlesource.com/13931
From-SVN: r227813
Ian Lance Taylor [Tue, 15 Sep 2015 21:15:37 +0000 (21:15 +0000)]
libgo: If compiler can split-stack and linker can not, use -fno-split-stack.
If the compiler supports split-stack but we are using a gold linker that
does not, as happens on PPC with current GCC but old gold, then we need
to compile the Go code with -fno-split-stack to avoid a linker error
avoid the inability to call from split-stack code to non-split-stack
code.
Reviewed-on: https://go-review.googlesource.com/14598
From-SVN: r227811
Max Filippov [Tue, 15 Sep 2015 19:30:32 +0000 (19:30 +0000)]
xtensa: fix xtensa_fallback_frame_state for call0 ABI
2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
definition.
(DWARF_FRAME_REGISTERS): Reserve space for one extra register in
call0 ABI.
libgcc/
* config/xtensa/linux-unwind.h (xtensa_fallback_frame_state):
Add support for call0 ABI.
From-SVN: r227809
Max Filippov [Tue, 15 Sep 2015 19:24:26 +0000 (19:24 +0000)]
xtensa: fix TLS calls for call0 ABI
2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
to pass TLS call argument, according to current ABI.
* config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
callx0 for TLS call, according to current ABI.
From-SVN: r227808
Eric Botcazou [Tue, 15 Sep 2015 17:57:49 +0000 (17:57 +0000)]
tree-eh.c (lower_try_finally_dup_block): Clear location information on stack restore statements.
* tree-eh.c (lower_try_finally_dup_block): Clear location information
on stack restore statements.
(decide_copy_try_finally): Do not consider a stack restore statement as
coming from sources.
From-SVN: r227805
Uros Bizjak [Tue, 15 Sep 2015 17:50:15 +0000 (19:50 +0200)]
alpha.c (alpha_expand_block_clear): Use HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
* config/alpha/alpha.c (alpha_expand_block_clear): Use
HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
From-SVN: r227804
Marek Polacek [Tue, 15 Sep 2015 17:19:11 +0000 (17:19 +0000)]
re PR c/67580 (Improve error message on missing "struct" tag)
PR c/67580
* c-decl.c (tag_exists_p): New function.
* c-parser.c (c_parser_declaration_or_fndef): Give a hint when
struct/union/enum keywords are missing.
* c-tree.h (tag_exists_p): Declare.
* gcc.dg/pr67580.c: New test.
From-SVN: r227803
Ian Lance Taylor [Tue, 15 Sep 2015 17:05:14 +0000 (17:05 +0000)]
libgo: test linking split-stack and non-split-stack together
PPC has split-stack support in current GCC, but old version of gold will
reject attempts to link PPC split-stack and non-split-stack code
together. Test for that, and don't compile the C code with
-fsplit-stack if it doesn't work.
Reviewed-on: https://go-review.googlesource.com/14594
From-SVN: r227802
Jeff Law [Tue, 15 Sep 2015 17:03:49 +0000 (11:03 -0600)]
[PATCH] More class-ification of DOM
PR tree-optimization/47679
* tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
methods and private members.
(avail_exprs_stack): Similarly. Change type of global
from a pair of expr_hash_elt_t to the new class.
(expr_elt_hasher::hash): Corresponding changes.
(expr_elt_hasher::equal): Similarly.
(avail_expr_hash): Similarly.
(pass_dominator::execute): Similarly.
(dom_opt_dom_walker::thread_across_edge): Similarly.
(record_cond): Similarly.
(dom_opt_dom_walker::before_dom_children): Similarly.
(dom_opt_dom_walker::after_dom_children): Similarly.
(lookup_avail_expr): Likewise.
(initialize_hash_element): Now a expr_hash_elt constructor.
(initialize_hash_element_from_expr): Similarly.
(free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
(free_expr_hash_elt): Call dtor for the element.
(remove_local_expressions_from_table): Now the "pop_to_marker"
method in the available_exprs_stack class.
(avail_expr_stack::record_expr): Method factored out.
(print_expr_hash_elt): Now a method in the expr_hash_elt class.
Fix formatting.
(hashable_expr_equal_p): Fix formatting.
From-SVN: r227801
David Malcolm [Tue, 15 Sep 2015 16:53:01 +0000 (16:53 +0000)]
Change of location_get_source_line signature
gcc/ChangeLog:
* input.h (location_get_source_line): Drop "expanded_location"
param in favor of a file and line number.
* input.c (location_get_source_line): Likewise.
(dump_location_info): Update for change in signature of
location_get_source_line.
* diagnostic.c (diagnostic_print_caret_line): Likewise.
gcc/c-family/ChangeLog:
* c-format.c (location_from_offset): Update for change in
signature of location_get_source_line.
* c-indentation.c (get_visual_column): Likewise.
(line_contains_hash_if): Likewise.
From-SVN: r227800
Eric Botcazou [Tue, 15 Sep 2015 16:25:59 +0000 (16:25 +0000)]
defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
* defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
Bump to 4KB for SJLJ exceptions.
(STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions.
* doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
* doc/tm.texi: Regenerate.
From-SVN: r227799
Kyrylo Tkachov [Tue, 15 Sep 2015 15:03:23 +0000 (15:03 +0000)]
[ARM] Fix arm bootstrap failure due to -Werror=shift-negative-value
* config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT.
Update prototype.
From-SVN: r227798
Richard Biener [Tue, 15 Sep 2015 14:10:10 +0000 (14:10 +0000)]
re PR tree-optimization/67470 (ICE at -O3 on x86_64-linux-gnu in compute_live_loop_exits, at tree-ssa-loop-manip.c:235)
2015-09-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/67470
* tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
structure for PHI hoisting by inserting a forwarder block
if appropriate.
* gcc.dg/torture/pr67470.c: New testcase.
From-SVN: r227797
Christian Bruel [Tue, 15 Sep 2015 13:46:57 +0000 (15:46 +0200)]
arm.c (TARGET_OPTION_PRINT): Define.
2015-09-15 Christian Bruel <christian.bruel@st.com>
* config/arm/arm.c (TARGET_OPTION_PRINT): Define.
(arm_option_print): New function.
From-SVN: r227796
Christian Bruel [Tue, 15 Sep 2015 13:43:17 +0000 (15:43 +0200)]
re PR target/52144 (ARM should support arm/thumb function attribute to permit different instruction sets in the same source)
2015-09-15 Christian Bruel <christian.bruel@st.com>
PR target/52144
* config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
* config/arm/arm-c.c (arm_cpu_builtins): Declare static.
Remove flags parameter.
* config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
(TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
(TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
(TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
(TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
(TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
(TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
* gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
From-SVN: r227795
Alan Lawrence [Tue, 15 Sep 2015 13:16:58 +0000 (13:16 +0000)]
[AArch64 array_mode 8/8] Add d-registers to TARGET_ARRAY_MODE_SUPPORTED_P
gcc/:
* config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
* config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
AARCH64_VALID_SIMD_DREG_MODE.
gcc/testsuite/:
* gcc.target/aarch64/vect_int32x2x4_1.c: New.
From-SVN: r227794
Alan Lawrence [Tue, 15 Sep 2015 13:09:45 +0000 (13:09 +0000)]
[AArch64 array_mode 7/8] Combine the expanders using VSTRUCT:nregs
* config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
(aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
(aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
aarch64_ld4_lane<mode>): Combine together, making...
(aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
(aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
aarch64_st4_lane<mode>): Combine together, making...
(aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
* config/aarch64/iterators.md (nregs): Add comment.
From-SVN: r227793
Marek Polacek [Tue, 15 Sep 2015 12:48:50 +0000 (12:48 +0000)]
c-decl.c (lookup_label): Return NULL_TREE instead of 0.
* c-decl.c (lookup_label): Return NULL_TREE instead of 0.
(lookup_tag): Change the type of THISLEVEL_ONLY to bool.
Return NULL_TREE instead of 0.
(lookup_name): Return NULL_TREE instead of 0.
(lookup_name_in_scope): Likewise.
(shadow_tag_warned): Use true instead of 1 and NULL_TREE instead of 0.
(parser_xref_tag): Use false instead of 0.
(start_struct): Use true instead of 1.
(start_enum): Use true instead of 1 and NULL_TREE instead of 0.
From-SVN: r227791
Alan Lawrence [Tue, 15 Sep 2015 12:48:15 +0000 (12:48 +0000)]
[AArch64 array_mode 6/8] Remove V_TWO_ELEM, again using BLKmode + set_mem_size.
* config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
Change operand mode from <V_TWO_ELEM> to BLK.
(aarch64_vec_load_lanesoi_lane<mode>): Likewise.
(aarch64_vec_store_lanesoi_lane<mode): Likewise
(aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
(aarch64_ld2_lane<mode>): Likewise.
(aarch64_st2_lane<VQ:mode>): Likewise.
* config/aarch64/iterators.md (V_TWO_ELEM): Remove.
From-SVN: r227790
Alan Lawrence [Tue, 15 Sep 2015 12:43:07 +0000 (12:43 +0000)]
[AArch64 array_mode 5/8] Remove V_FOUR_ELEM, again using BLKmode + set_mem_size.
* config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
Change operand mode from <V_FOUR_ELEM> to BLK.
(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
(aarch64_vec_store_lanesxi_lane<mode): Likewise.
(aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
(aarch64_ld4_lane<mode>): Likewise.
(aarch64_st4_lane<mode>): Likewise.
* config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
From-SVN: r227789
Richard Biener [Tue, 15 Sep 2015 12:37:19 +0000 (12:37 +0000)]
re PR middle-end/67563 (verify_flow_info failed)
2015-09-15 Richard Biener <rguenther@suse.de>
PR middle-end/67563
* gimple-fold.c (gimplify_and_update_call_from_tree): Do not
transfer EH info from old to new stmt.
(replace_call_with_value): Likewise.
(replace_call_with_call_and_fold): Likewise.
(gimple_fold_builtin_memory_op): Likewise.
(gimple_fold_builtin_memset): Likewise.
(gimple_fold_builtin_stpcpy): Likewise.
(gimple_fold_call): Likewise.
* gcc.dg/pr67563.c: New testcase.
From-SVN: r227788
Alan Lawrence [Tue, 15 Sep 2015 12:33:42 +0000 (12:33 +0000)]
[AArch64 array_mode 4/8] Remove EImode
* config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
comment.
* config/aarch64/aarch64-builtins.c (ei_UP): Remove.
(aarch64_simd_intEI_type_node): Likewise.
(aarch64_simd_builtin_std_type): Remove EImode case.
(aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
* config/aarch64/aarch64-modes.def: Remove EImode.
From-SVN: r227787
Ian Lance Taylor [Tue, 15 Sep 2015 12:32:31 +0000 (12:32 +0000)]
runtime: Ignore stack sizes when deciding when to GC.
This restores https://golang.org/cl/
6081043 which was lost accidentally
when updating a new version of libgo in https://golang.org/cl/
22440043 .
Reviewed-on: https://go-review.googlesource.com/14569
From-SVN: r227784
Alan Lawrence [Tue, 15 Sep 2015 12:28:20 +0000 (12:28 +0000)]
[AArch64 array_mode 3/8] Stop using EImode in aarch64-simd.md and iterators.md
* config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
Change operand mode from <V_THREE_ELEM> to BLK.
(aarch64_vec_load_lanesci_lane<mode>): Likewise.
(aarch64_vec_store_lanesci_lane<mode>): Likewise.
(aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
(aarch64_ld3_lane<mode>): Likewise.
(aarch64_st3_lane<mode>): Likewise.
* config/aarch64/iterators.md (V_THREE_ELEM): Remove.
From-SVN: r227783
Alan Lawrence [Tue, 15 Sep 2015 12:11:27 +0000 (12:11 +0000)]
[AArch64 array_mode 2/8] Remove VSTRUCT_DREG, use BLKmode for d-reg aarch64_st/ld expands
* config/aarch64/aarch64-simd.md
(aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
Change all TImode operands to BLKmode.
(aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
Change all EImode operands to BLKmode.
(aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
Change all OImode operands to BLKmode.
(aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
and call set_mem_size.
(aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise
* config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
From-SVN: r227782
Alan Lawrence [Tue, 15 Sep 2015 11:39:12 +0000 (11:39 +0000)]
[AArch64 array_mode 1/8] Rename vec_store_lanes<mode>_lane to aarch64_vec_store_lanes<mode>_lane
* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
to...
(aarch64_vec_store_lanesoi_lane<mode>): ...this.
(vec_store_lanesci_lane<mode>): Rename to...
(aarch64_vec_store_lanesci_lane<mode>): ...this.
(vec_store_lanesxi_lane<mode>): Rename to...
(aarch64_vec_store_lanesxi_lane<mode>): ...this.
(aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
aarch64_st4_lane<mode>): Follow renaming.
From-SVN: r227781
Andreas Krebbel [Tue, 15 Sep 2015 11:07:16 +0000 (11:07 +0000)]
S/390: Add missing brackets.
gcc/ChangeLog:
2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_const_operand_ok): Add missing
brackets.
From-SVN: r227780
Richard Biener [Tue, 15 Sep 2015 08:00:30 +0000 (08:00 +0000)]
re PR lto/67568 (lto-streamer-in.c sanitizer runtime error: load of value 255, which is not a valid value for type 'bool')
2015-09-15 Richard Biener <rguenther@suse.de>
PR lto/67568
* lto-streamer.h (lto_location_cache::current_sysp): Properly
initialize.
* lto-streamer-out.c (clear_line_info): Likewise.
From-SVN: r227779
Richard Biener [Tue, 15 Sep 2015 07:33:15 +0000 (07:33 +0000)]
match-and-simplify.texi: Fix wording.
2015-09-15 Richard Biener <rguenther@suse.de>
* doc/match-and-simplify.texi: Fix wording.
From-SVN: r227778
Ian Lance Taylor [Tue, 15 Sep 2015 03:43:01 +0000 (03:43 +0000)]
libgo: don't provide ustat on arm64 GNU/Linux
This avoids linker warnings when linking against glibc, as apparently
arm64 GNU/Linux does not support the ustat system call.
Also update to automake 1.11.6, as that is the new GCC standard.
Reviewed-on: https://go-review.googlesource.com/14567
From-SVN: r227777
Bin Cheng [Tue, 15 Sep 2015 02:12:47 +0000 (02:12 +0000)]
tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip unnecessary type conversion in op1.
* tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
unnecessary type conversion in op1.
From-SVN: r227776
Segher Boessenkool [Tue, 15 Sep 2015 00:38:21 +0000 (02:38 +0200)]
shrink-wrap: Rewrite
This patch rewrites the shrink-wrapping algorithm, allowing non-linear
pieces of CFG to be duplicated for use without prologue instead of just
linear pieces.
* shrink-wrap.c (requires_stack_frame_p): Fix formatting.
(dup_block_and_redirect): Delete function.
(can_dup_for_shrink_wrapping): New function.
(fix_fake_fallthrough_edge): New function.
(try_shrink_wrapping): Rewrite function.
(convert_to_simple_return): Call fix_fake_fallthrough_edge.
From-SVN: r227775
Rich Felker [Tue, 15 Sep 2015 00:20:14 +0000 (00:20 +0000)]
configure.ac: [SH] Fix target pattern for TLS support test so to enable more arches.
* configure.ac: [SH] Fix target pattern for TLS support test so to
enable more arches.
From-SVN: r227774
GCC Administrator [Tue, 15 Sep 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r227773
Jeff Law [Mon, 14 Sep 2015 20:10:30 +0000 (14:10 -0600)]
[PATCH] Minor DOM cleanup
PR tree-optimization/47679
* tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
type rather than void *.
From-SVN: r227762
Jason Merrill [Mon, 14 Sep 2015 19:54:27 +0000 (15:54 -0400)]
re PR c++/44282 (fastcall is not mangled at all)
PR c++/44282
* mangle.c (write_CV_qualifiers_for_type): Also warn about regparm
mangling with lower -fabi-version.
From-SVN: r227761
Manuel López-Ibáñez [Mon, 14 Sep 2015 19:27:50 +0000 (19:27 +0000)]
The flag diagnostic_context::some_warnings_are_errors controls whether to give...
The flag diagnostic_context::some_warnings_are_errors controls whether
to give the message "all warnings being treated as errors". However, when
warnings are buffered and then discarded, this flag is not reset. It turns
out we do not need this flag at all, since we already count explicitly how
many warnings were converted into errors, and this number is kept up to
date for the buffered diagnostics used by Fortran.
gcc/ChangeLog:
2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/67460
* diagnostic.c (diagnostic_initialize): Do not set
some_warnings_are_errors.
(diagnostic_finish): Use DK_WERROR count instead.
(diagnostic_report_diagnostic): Do not set
some_warnings_are_errors.
* diagnostic.h (struct diagnostic_context): Remove
some_warnings_are_errors.
gcc/testsuite/ChangeLog:
2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/67460
* gfortran.dg/pr67460.f90: New test.
From-SVN: r227760
Ian Lance Taylor [Mon, 14 Sep 2015 17:54:08 +0000 (17:54 +0000)]
compiler: Ignore result context in constant expressions.
When evaluating a constant expression, the gofrontend would incorrectly
force each operand to be represented as the resulting type before
checking if the operation was valid with the untyped constants.
According to the language specification on constant
expressions(http://golang.org/ref/spec#Constant_expressions): "Untyped
boolean, numeric, and string constants may be used as operands wherever
it is legal to use an operand of boolean, numeric, or string type,
respectively."
Fixes golang/go#11566.
Reviewed-on: https://go-review.googlesource.com/12716
From-SVN: r227758
Richard Sandiford [Mon, 14 Sep 2015 17:44:22 +0000 (17:44 +0000)]
[SPARC] Simplify const_all_ones_operand
gen_rtx_CONST_VECTOR ensures that there is a single instance of:
(const_vector:M [(const_int -1) ... (const_int -1)])
for each M, so pointer equality with CONSTM1_RTX is enough. Also,
HOST_BITS_PER_WIDE_INT == 32 is doubly dead: HOST_WIDE_INT is always
64 bits now, and we always use const_int rather than const_double
or const_wide_int for all-ones values (or any other value that
fits in a signed HOST_WIDE_INT).
gcc/
* config/sparc/predicates.md (const_all_ones_operand): Use
CONSTM1_RTX to simplify definition.
From-SVN: r227757