Richard Biener [Fri, 29 Nov 2013 12:09:12 +0000 (12:09 +0000)]
re PR middle-end/59338 (error: position plus size exceeds size of referenced object in BIT_FIELD_REF)
2013-11-29 Richard Biener <rguenther@suse.de>
PR middle-end/59338
* tree-cfg.c (verify_expr): Restrict bounds verification of
BIT_FIELD_REF arguments to non-aggregate typed base objects.
* gcc.dg/torture/pr59338.c: New testcase.
From-SVN: r205521
Richard Biener [Fri, 29 Nov 2013 10:47:52 +0000 (10:47 +0000)]
re PR tree-optimization/59334 (r205486 caused many failures)
2013-11-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/59334
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
in previous commit.
From-SVN: r205515
Jakub Jelinek [Fri, 29 Nov 2013 10:41:12 +0000 (11:41 +0100)]
re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c)
PR lto/59326
* omp-low.c (simd_clone_create): Return NULL if for definition
!cgraph_function_with_gimple_body_p (old_node). Call cgraph_get_body
before calling cgraph_function_versioning.
(expand_simd_clones): Look for "omp declare simd" attribute first.
Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
Punt if node->global.inlined_to.
(pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
* lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
lto/
* lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
testsuite/
* gcc.dg/vect/vect-simd-clone-12.c: New test.
* gcc.dg/vect/vect-simd-clone-12a.c: New test.
* gcc.dg/vect/vect-simd-clone-10a.c: Remove extern keywords.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r205514
Jakub Jelinek [Fri, 29 Nov 2013 10:36:10 +0000 (11:36 +0100)]
re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c)
PR lto/59326
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_LAST.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
(enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
(enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
* lto-streamer-out.c (lto_is_streamable): Allow streaming
OMP_CLAUSE.
(DFS_write_tree_body): Handle OMP_CLAUSE.
* tree-streamer-out.c (pack_ts_omp_clause_value_fields): New
function.
(streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
(write_ts_omp_clause_tree_pointers): New function.
(streamer_write_tree_body): Call it for OMP_CLAUSE.
(streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
* tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New
function.
(unpack_value_fields): Call it for OMP_CLAUSE.
(streamer_alloc_tree): Handle OMP_CLAUSE.
(lto_input_ts_omp_clause_tree_pointers): New function.
(streamer_read_tree_body): Call it for OMP_CLAUSE.
lto/
* lto.c (mentions_vars_p_omp_clause): New function.
(mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
after return stmts.
From-SVN: r205512
Jakub Jelinek [Fri, 29 Nov 2013 07:42:23 +0000 (08:42 +0100)]
re PR c/59280 (ICE with attribute((constructor(invalid))))
PR c/59280
* c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
goto invalid. If it is error_mark_node, don't issue further
diagnostics.
testsuite/
* c-c++-common/pr59280.c: New test.
From-SVN: r205510
Zhenqiang Chen [Fri, 29 Nov 2013 05:39:08 +0000 (05:39 +0000)]
lp1243022.c: Skip target arm-neon.
testsuite/ChangeLog:
2013-11-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* gcc.target/arm/lp1243022.c: Skip target arm-neon.
From-SVN: r205509
Joseph Myers [Fri, 29 Nov 2013 01:30:42 +0000 (01:30 +0000)]
re PR c/57574 (-std=c99 inline function incorrectly has external linkage with prior static declaration)
PR c/57574
c:
* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
an inline function following a static declaration.
testsuite:
* gcc.dg/inline-35.c: New test.
From-SVN: r205506
Joseph Myers [Fri, 29 Nov 2013 00:39:50 +0000 (00:39 +0000)]
implement-c.texi: Document C11 implementation-defined behavior.
* doc/implement-c.texi: Document C11 implementation-defined
behavior. Refer to -ffp-contract=fast for contraction behavior.
* doc/invoke.texi (-std=c99, std=c11): Update description of
completeness.
(-std=gnu99): Don't mention as future default.
(-std=gnu11): Mention as intended future default.
* doc/standards.texi: Update descriptions of C99 and C11 support.
Limit statement about C99 facilities for freestanding
implementations to some platforms only.
From-SVN: r205505
GCC Administrator [Fri, 29 Nov 2013 00:17:27 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r205504
Jakub Jelinek [Thu, 28 Nov 2013 22:53:50 +0000 (23:53 +0100)]
re PR c++/59297 (ICE: openmp atomic with indirect LHS)
PR c++/59297
* semantics.c (finish_omp_atomic): Call finish_expr_stmt
rather than add_stmt.
* g++.dg/gomp/pr59297.C: New test.
From-SVN: r205500
Jakub Jelinek [Thu, 28 Nov 2013 22:52:40 +0000 (23:52 +0100)]
re PR middle-end/59327 (warning in expand_used_vars)
PR middle-end/59327
* cfgexpand.c (expand_used_vars): Avoid warning on 32-bit
HWI hosts.
From-SVN: r205499
Vladimir Makarov [Thu, 28 Nov 2013 21:45:21 +0000 (21:45 +0000)]
re PR target/57293 (not needed frame pointers on IA-32 (performance regression?))
2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/57293
* ira.h (ira_setup_eliminable_regset): Remove parameter.
* ira.c (ira_setup_eliminable_regset): Ditto. Add
SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
Don't call lra_init_elimination.
(ira): Call ira_setup_eliminable_regset without arguments.
* loop-invariant.c (calculate_loop_reg_pressure): Remove argument
from ira_setup_eliminable_regset call.
* gcse.c (calculate_bb_reg_pressure): Ditto.
* haifa-sched.c (sched_init): Ditto.
* lra.h (lra_init_elimination): Remove the prototype.
* lra-int.h (lra_insn_recog_data): New member sp_offset. Move
used_insn_alternative upper.
(lra_eliminate_regs_1): Add one more parameter.
(lra-eliminate): Ditto.
* lra.c (lra_invalidate_insn_data): Set sp_offset.
(setup_sp_offset): New.
(lra_process_new_insns): Call setup_sp_offset.
(lra): Add argument to lra_eliminate calls.
* lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
(get_equiv_with_elimination): New.
(process_addr_reg): Call get_equiv_with_elimination instead of
get_equiv_substitution.
(equiv_address_substitution): Ditto.
(loc_equivalence_change_p): Ditto.
(loc_equivalence_callback, lra_constraints): Ditto.
(curr_insn_transform): Ditto. Print the sp offset
(process_alt_operands): Prevent stack pointer reloads.
(lra_constraints): Remove one argument from lra_eliminate call.
Move it up. Mark used hard regs bfore it. Use
get_equiv_with_elimination instead of get_equiv_substitution.
* lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
assert for param values combination. Use sp offset. Add argument
to lra_eliminate_regs_1 calls.
(lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
(curr_sp_change): New static var.
(mark_not_eliminable): Add parameter. Update curr_sp_change.
Don't prevent elimination to sp if we can calculate its change.
Pass the argument to mark_not_eliminable calls.
(eliminate_regs_in_insn): Add a parameter. Use sp offset. Add
argument to lra_eliminate_regs_1 call.
(update_reg_eliminate): Move calculation of hard regs for spill
lower. Switch off lra_in_progress temporarily to generate regs
involved into elimination.
(lra_init_elimination): Rename to init_elimination. Make it
static. Set up insn sp offset, check the offsets at the end of
BBs.
(process_insn_for_elimination): Add parameter. Pass its value to
eliminate_regs_in_insn.
(lra_eliminate): : Add parameter. Pass its value to
process_insn_for_elimination. Add assert for param values
combination. Call init_elimination. Don't update offsets in
equivalence substitutions.
* lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
for created stack slot.
(remove_pseudos): Call lra_eliminate_regs_1 before changing memory
onto stack slot.
2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/57293
* gcc.target/i386/pr57293.c: New.
From-SVN: r205498
Kyrylo Tkachov [Thu, 28 Nov 2013 16:36:07 +0000 (16:36 +0000)]
iterators.md (vrint_conds): New int attribute.
[gcc/]
2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/iterators.md (vrint_conds): New int attribute.
* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
(smax<mode>3): Likewise.
(smin<mode>3): Likewise.
[gcc/testsuite/]
2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gcc.target/arm/vrinta-ce.c: New testcase.
From-SVN: r205492
Ian Lance Taylor [Thu, 28 Nov 2013 16:19:57 +0000 (16:19 +0000)]
dwarf.c (find_address_ranges): New static function, broken out of build_address_map.
* dwarf.c (find_address_ranges): New static function, broken out
of build_address_map.
(build_address_map): Call it.
* btest.c (check): Check for missing filename or function, rather
than crashing.
(f3): Check that enough frames were returned.
From-SVN: r205490
Richard Sandiford [Thu, 28 Nov 2013 16:15:52 +0000 (16:15 +0000)]
tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
gcc/
* tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
* tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
* tree-ssanames.h (set_range_info): Add range_type argument.
(duplicate_ssa_name_range_info): Likewise.
* tree-ssanames.c (set_range_info): Take the range type as argument
and store it in SSA_NAME_ANTI_RANGE_P.
(duplicate_ssa_name_range_info): Likewise.
(get_range_info): Use SSA_NAME_ANTI_RANGE_P.
(set_nonzero_bits): Update call to set_range_info.
(duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
* tree-ssa-copy.c (fini_copy_prop): Likewise.
* tree-vrp.c (remove_range_assertions): Update call to set_range_info.
(vrp_finalize): Likewise, passing anti-ranges directly.
From-SVN: r205489
Uros Bizjak [Thu, 28 Nov 2013 15:31:23 +0000 (16:31 +0100)]
sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
From-SVN: r205488
Richard Biener [Thu, 28 Nov 2013 15:22:55 +0000 (15:22 +0000)]
re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026)
2013-11-28 Richard Biener <rguenther@suse.de>
PR lto/59323
* gcc.dg/lto/pr59323-2_0.c: New testcase.
From-SVN: r205487
Richard Biener [Thu, 28 Nov 2013 14:52:44 +0000 (14:52 +0000)]
re PR middle-end/59330 (Crash in is_gimple_reg_type)
2013-11-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/59330
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
and fix delayed marking of free calls not necessary.
* gcc.dg/torture/pr59330.c: New testcase.
From-SVN: r205486
Andrew MacLeod [Thu, 28 Nov 2013 14:11:12 +0000 (14:11 +0000)]
tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to is_gimple_reg_type.
2013-11-28 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
is_gimple_reg_type.
* ipa-prop.c (determine_known_aggregate_parts): Likewise.
From-SVN: r205485
Terry Guo [Thu, 28 Nov 2013 12:31:51 +0000 (12:31 +0000)]
arm.c (v7m_extra_costs): New table.
2013-11-28 Terry Guo <terry.guo@arm.com>
* config/arm/arm.c (v7m_extra_costs): New table.
(arm_v7m_tune): Use it.
From-SVN: r205484
Rainer Orth [Thu, 28 Nov 2013 12:27:58 +0000 (12:27 +0000)]
Add -lrt on Solaris
gcc/cp:
* g++spec.c (TIMELIB): Define.
(WITHLIBC, SKIPOPT): Adjust values.
(lang_specific_driver): Add TIME_LIBRARY if not passed explicitly.
gcc:
* config/sol2.h (TIME_LIBRARY): Define.
From-SVN: r205483
Jakub Jelinek [Thu, 28 Nov 2013 12:20:23 +0000 (13:20 +0100)]
re PR sanitizer/59106 (Failure to link against static libasan)
2013-11-28 Jakub Jelinek <jakub@redhat.com>
Yury Gribov <y.gribov@samsung.com>
PR sanitizer/59106
* ubsan/Makefile.am (AM_CXXFLAGS): Disable -frtti for files that
don't need it.
* ubsan/Makefile.in: Regenerated.
Co-Authored-By: Yury Gribov <y.gribov@samsung.com>
From-SVN: r205482
Richard Biener [Thu, 28 Nov 2013 12:09:10 +0000 (12:09 +0000)]
re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026)
2013-11-28 Richard Biener <rguenther@suse.de>
PR lto/59323
* lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
CONST_DECLs in function context are not indexable.
* gcc.dg/lto/pr59323_0.c: New testcase.
From-SVN: r205481
Matthew Leach [Thu, 28 Nov 2013 10:59:38 +0000 (10:59 +0000)]
linux-unwind.h (aarch64_fallback_frame_state): Check for correct opcodes on BE.
2013-11-26 Matthew Leach <matthew.leach@arm.com>
* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state): Check
for correct opcodes on BE.
From-SVN: r205479
Chung-Ju Wu [Thu, 28 Nov 2013 09:03:25 +0000 (09:03 +0000)]
nds32.c (nds32_rtx_costs): Adjust MULT cost if it is not optimized for size.
* config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
not optimized for size.
From-SVN: r205478
Jakub Jelinek [Thu, 28 Nov 2013 08:18:59 +0000 (09:18 +0100)]
cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb fields.
* cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
fields.
(expand_stack_vars): For -fsanitize=address, use (and set initially)
data->asan_base as base for vars and update asan_alignb.
(expand_used_vars): Initialize data.asan_base and data.asan_alignb.
Pass them to asan_emit_stack_protection.
* asan.c (asan_detect_stack_use_after_return): New variable.
(asan_emit_stack_protection): Add pbase and alignb arguments.
Implement use after return sanitization.
* asan.h (asan_emit_stack_protection): Adjust prototype.
(ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.
From-SVN: r205476
Sergey Ostanevich [Thu, 28 Nov 2013 07:54:58 +0000 (07:54 +0000)]
common.opt: Introduced a new option -fsimd-cost-model.
gcc/
* common.opt: Introduced a new option -fsimd-cost-model.
* doc/invoke.texi: Introduced a new openmp-simd warning and
a new -fsimd-cost-model option.
* tree-vectorizer.h (unlimited_cost_model): Interface updated
to rely on the particular loop info.
* tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
(vect_peeling_hash_choose_best_peeling): Ditto.
(vect_enhance_data_refs_alignment): Ditto.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
plus added openmp-simd warining.
gcc/c-family/
* c.opt (Wopenmp-simd): New.
gcc/fortran/
* lang.opt (Wopenmp-simd): New.
From-SVN: r205475
GCC Administrator [Thu, 28 Nov 2013 00:16:30 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r205471
H.J. Lu [Wed, 27 Nov 2013 23:54:26 +0000 (23:54 +0000)]
Also handle REG_XXX notes in spill_pseudos
PR rtl-optimization/59311
* dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
* lra-spills.c (spill_pseudos): Handle REG_XXX notes.
From-SVN: r205468
Jakub Jelinek [Wed, 27 Nov 2013 23:42:48 +0000 (00:42 +0100)]
re PR c/59310 (FAIL: gcc.dg/gomp/openmp-simd-1.c (test for excess errors))
PR c/59310
* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
to p_name before calling c_parser_omp_teams instead of after.
(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
argument. Remove unused p_name variable.
* parser.c (cp_parser_omp_target): Call keep_next_level only
if flag_openmp.
From-SVN: r205467
Jakub Jelinek [Wed, 27 Nov 2013 23:41:56 +0000 (00:41 +0100)]
re PR middle-end/57393 (error: definition in block 4 follows the use / internal compiler error: verify_ssa failed)
PR middle-end/57393
PR tree-optimization/58018
PR tree-optimization/58131
* gcc.dg/torture/pr57393-1.c: New test.
* gcc.dg/torture/pr57393-2.c: New test.
* gcc.dg/torture/pr57393-3.c: New test.
* gcc.dg/torture/pr58018.c: New test.
* gcc.dg/torture/pr58131.c: New test.
* gfortran.dg/pr57393-1.f90: New test.
* gfortran.dg/pr57393-2.f90: New test.
From-SVN: r205466
Bill Schmidt [Wed, 27 Nov 2013 23:36:22 +0000 (23:36 +0000)]
nan_7.f90: Disable for little endian PowerPC.
2013-11-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.
From-SVN: r205464
Uros Bizjak [Wed, 27 Nov 2013 21:57:52 +0000 (22:57 +0100)]
op-4.h: Update from glibc.
* soft-fp/op-4.h: Update from glibc.
From-SVN: r205462
Eric Botcazou [Wed, 27 Nov 2013 21:16:21 +0000 (21:16 +0000)]
var-tracking.c (track_expr_p): Do not track declarations for parts of tracked parameters.
* var-tracking.c (track_expr_p): Do not track declarations for parts
of tracked parameters.
(add_stores): Do not track values for tracked parameters passed in
multiple locations.
(vt_get_decl_and_offset): Handle PARALLEL.
(vt_add_function_parameter): Handle parameters with incoming PARALLEL.
From-SVN: r205461
Jeff Law [Wed, 27 Nov 2013 18:47:43 +0000 (11:47 -0700)]
tree-ssa-threadupdate.c (thread_through_all_blocks): Do not clobber the loop structure thread_block was unsuccessful.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
clobber the loop structure thread_block was unsuccessful. If
thread_block was unsuccessful, cleanup appropriately.
From-SVN: r205459
Uros Bizjak [Wed, 27 Nov 2013 18:07:22 +0000 (19:07 +0100)]
re PR target/56788 (_mm_frcz_sd and _mm_frcz_ss ignore their second argument)
PR target/56788
* gcc.target/i386/xop-frczX.c: New test.
Co-Authored-By: Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
From-SVN: r205458
Jakub Jelinek [Wed, 27 Nov 2013 17:03:27 +0000 (18:03 +0100)]
re PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu)
PR tree-optimization/59014
* gcc.c-torture/execute/pr59014-2.c: New test.
From-SVN: r205454
Chen Liqin [Wed, 27 Nov 2013 16:49:21 +0000 (16:49 +0000)]
* config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
From-SVN: r205453
Bernd Edlinger [Wed, 27 Nov 2013 16:33:01 +0000 (16:33 +0000)]
2013-11-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
reverted r205398 on request: Remove parameter keep_aligning from
get_inner_reference.
From-SVN: r205452
Vladimir Makarov [Wed, 27 Nov 2013 16:30:48 +0000 (16:30 +0000)]
re PR rtl-optimization/57410 (ICE: in emit_spill_move, at lra-constraints.c:863 with -fpeel-loops and uninitialised variable)
2013-11-27 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/57410
* gcc.target/i386/pr57410.c: New.
From-SVN: r205451
Rainer Orth [Wed, 27 Nov 2013 16:15:35 +0000 (16:15 +0000)]
Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9
* testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
Use dg-require-cmath instead.
From-SVN: r205450
Paolo Carlini [Wed, 27 Nov 2013 15:55:18 +0000 (15:55 +0000)]
re PR c++/58647 (ICE with function pointer)
/cp
2013-11-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58647
* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
Handle function COMPONENT_REFs.
/testsuite
2013-11-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58647
* g++.dg/parse/crash66.C: New.
From-SVN: r205449
Kenneth Zadeck [Wed, 27 Nov 2013 15:42:02 +0000 (15:42 +0000)]
c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
* gcc.dg/c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
* gcc.dg/c99-const-expr-8.c: Look for overflow on INT_MIN % -1.
2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
* fold-const.c
(int_const_binop_1): Make INT_MIN % -1 return 0 with the overflow
bit set.
From-SVN: r205448
Richard Biener [Wed, 27 Nov 2013 15:18:23 +0000 (15:18 +0000)]
re PR middle-end/58723 (ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction)
2013-11-27 Richard Biener <rguenther@suse.de>
PR middle-end/58723
* cgraphbuild.c (build_cgraph_edges): Do not build edges
for internal calls.
(rebuild_cgraph_edges): Likewise.
* ipa-inline-analysis.c (estimate_function_body_sizes):
Skip internal calls.
* tree-inline.c (estimate_num_insns): Estimate size of internal
calls as 0.
(gimple_expand_calls_inline): Do not try inline-expanding
internal calls.
* lto-streamer-in.c (input_cfg): Stream loop safelen,
force_vect and simduid.
(input_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.
(input_function): Adjust.
* lto-streamer-out.c (output_cfg): Stream loop safelen,
force_vect and simduid.
(output_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.
From-SVN: r205447
Rainer Orth [Wed, 27 Nov 2013 15:15:23 +0000 (15:15 +0000)]
Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9
* testsuite/ext/random/hypergeometric_distribution/operators/values.cc
(test01): Wrap in _GLIBCXX_USE_C99_MATH_TR1.
From-SVN: r205446
Kai Tietz [Wed, 27 Nov 2013 13:25:51 +0000 (14:25 +0100)]
winnt.c (i386_pe_section_type_flags): Use const pointer cast.
* config/i386/winnt.c (i386_pe_section_type_flags): Use const
pointer cast.
From-SVN: r205445
Kugan Vivekanandarajah [Wed, 27 Nov 2013 12:17:05 +0000 (12:17 +0000)]
tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org>
gcc/
* doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
* doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.
libgcc/
* libgcc2.c (__udivmoddi4): Define new implementation when
TARGET_HAS_NO_HW_DIVIDE is defined, for processors without any
divide instructions.
From-SVN: r205444
Marek Polacek [Wed, 27 Nov 2013 11:40:22 +0000 (11:40 +0000)]
re PR sanitizer/59306 (ICE with -fsanitize=null: gimple check: expected gimple_call(error_mark), have gimple_assign(addr_expr) in gimple_call_arg)
PR sanitizer/59306
* ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
instead of walk_gimple_op.
(ubsan_pass): Adjust. Call instrument_null only if SANITIZE_NULL.
testsuite/
* g++.dg/ubsan/pr59306.C: New test.
From-SVN: r205443
Aldy Hernandez [Wed, 27 Nov 2013 11:20:06 +0000 (11:20 +0000)]
cgraph.h (enum cgraph_simd_clone_arg_type): New.
* cgraph.h (enum cgraph_simd_clone_arg_type): New.
(struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
(struct cgraph_node): Add simdclone and simd_clones fields.
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
* doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
* doc/tm.texi: Regenerated.
* ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
* ipa-cp.c (determine_versionability): Fail if "omp declare simd"
attribute is present.
* omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
(simd_clone_vector_of_formal_parm_types): New function.
(simd_clone_struct_alloc, simd_clone_struct_copy,
simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
simd_clone_compute_base_data_type, simd_clone_mangle,
simd_clone_create, simd_clone_adjust_return_type,
create_tmp_simd_array, simd_clone_adjust_argument_types,
simd_clone_init_simd_arrays): New functions.
(struct modify_stmt_info): New type.
(ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
functions.
(pass_data_omp_simd_clone): New variable.
(pass_omp_simd_clone): New class.
(make_pass_omp_simd_clone): New function.
* passes.def (pass_omp_simd_clone): New.
* target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target
hooks.
* target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
* tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
* tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
* tree-pass.h (make_pass_omp_simd_clone): New prototype.
* tree-vect-data-refs.c: Include cgraph.h.
(vect_analyze_data_refs): Inline by hand find_data_references_in_loop
and find_data_references_in_bb, if find_data_references_in_stmt
fails, still allow calls to #pragma omp declare simd functions
in #pragma omp simd loops unless they contain data references among
the call arguments or in lhs.
* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
calls with no lhs.
(vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls without
lhs.
* tree-vectorizer.h (enum stmt_vec_info_type): Add
call_simd_clone_vec_info_type.
(struct _stmt_vec_info): Add simd_clone_fndecl field.
(STMT_VINFO_SIMD_CLONE_FNDECL): Define.
* tree-vect-stmts.c: Include tree-ssa-loop.h,
tree-scalar-evolution.h and cgraph.h.
(vectorizable_call): Handle calls without lhs. Assert
!stmt_can_throw_internal instead of failing for it. Don't update
EH stuff.
(struct simd_call_arg_info): New.
(vectorizable_simd_clone_call): New function.
(vect_transform_stmt): Call it.
(vect_analyze_stmt): Likewise. Allow NULL STMT_VINFO_VECTYPE for
calls without lhs.
* ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
if cgraph_function_with_gimple_body_p is true.
c/
* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
external_scope is NULL.
cp/
* semantics.c (finish_omp_clauses): For #pragma omp declare simd
linear clause step call maybe_constant_value.
testsuite/
* g++.dg/gomp/declare-simd-1.C (f38): Make sure
simdlen is a power of two.
* gcc.dg/gomp/simd-clones-2.c: Compile on all targets.
Remove -msse2. Adjust regexps for name mangling changes.
* gcc.dg/gomp/simd-clones-3.c: Likewise.
* gcc.dg/vect/vect-simd-clone-1.c: New test.
* gcc.dg/vect/vect-simd-clone-2.c: New test.
* gcc.dg/vect/vect-simd-clone-3.c: New test.
* gcc.dg/vect/vect-simd-clone-4.c: New test.
* gcc.dg/vect/vect-simd-clone-5.c: New test.
* gcc.dg/vect/vect-simd-clone-6.c: New test.
* gcc.dg/vect/vect-simd-clone-7.c: New test.
* gcc.dg/vect/vect-simd-clone-8.c: New test.
* gcc.dg/vect/vect-simd-clone-9.c: New test.
* gcc.dg/vect/vect-simd-clone-10.c: New test.
* gcc.dg/vect/vect-simd-clone-10.h: New file.
* gcc.dg/vect/vect-simd-clone-10a.c: New file.
* gcc.dg/vect/vect-simd-clone-11.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r205442
Rainer Orth [Wed, 27 Nov 2013 10:16:43 +0000 (10:16 +0000)]
Properly set ld_library_path in cilk-plus tests
* gcc.dg/cilk-plus/cilk-plus.exp: Append to ld_library_path.
Call set_ld_library_path_env_vars.
* g++.dg/cilk-plus/cilk-plus.exp: Likewise.
From-SVN: r205441
Tom de Vries [Wed, 27 Nov 2013 10:00:48 +0000 (10:00 +0000)]
Handle vector increment/decrement in build_unary_op
2013-11-27 Tom de Vries <tom@codesourcery.com>
Marc Glisse <marc.glisse@inria.fr>
PR c++/59032
* c-typeck.c (build_unary_op): Allow vector increment and decrement.
* typeck.c (cp_build_unary_op): Allow vector increment and decrement.
* c-c++-common/pr59032.c: New testcase.
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r205439
Tom de Vries [Wed, 27 Nov 2013 10:00:30 +0000 (10:00 +0000)]
Don't create out-of-bounds BIT_FIELD_REF.
2013-11-27 Tom de Vries <tom@codesourcery.com>
Marc Glisse <marc.glisse@inria.fr>
PR middle-end/59037
* semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
BIT_FIELD_REF.
* fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
BIT_FIELD_REF.
* gimple-fold.c (gimple_fold_indirect_ref): Same.
* tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
out-of-bounds.
* c-c++-common/pr59037.c: New testcase.
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r205438
Eric Botcazou [Wed, 27 Nov 2013 09:17:23 +0000 (09:17 +0000)]
re PR middle-end/59138 (possible packed struct miscompile)
PR middle-end/59138
* expr.c (emit_group_store): Don't write past the end of the structure.
(store_bit_field): Fix formatting.
From-SVN: r205436
Richard Biener [Wed, 27 Nov 2013 08:50:15 +0000 (08:50 +0000)]
re PR tree-optimization/59288 (ICE in get_initial_def_for_induction)
2013-11-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/59288
* tree-vect-loop.c (get_initial_def_for_induction): Do not
re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
* gcc.dg/torture/pr59288.c: New testcase.
From-SVN: r205434
Marek Polacek [Wed, 27 Nov 2013 08:02:48 +0000 (08:02 +0000)]
ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL for a decl, recreate that decl.
2013-11-27 Marek Polacek <polacek@redhat.com>
* ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
for a decl, recreate that decl. Save into the hash table VAR_DECLs
rather than ADDR_EXPRs.
testsuite/
* c-c++-common/ubsan/undefined-1.c: New test.
From-SVN: r205433
Alexander Ivchenko [Wed, 27 Nov 2013 07:57:04 +0000 (07:57 +0000)]
hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
* config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
From-SVN: r205432
David Malcolm [Wed, 27 Nov 2013 02:26:25 +0000 (02:26 +0000)]
Fix checking of gimple types
* gengtype.c (struct seen_tag): New.
(already_seen_tag): New.
(mark_tag_as_seen): New.
(walk_subclasses): Support having multiple subclasses using the
same tag by tracking which tags have already been seen, and using
this to avoid adding duplicate cases to the "switch" statement.
The call to already_seen_tag introduces an O(N^2) when running
gengtype on N, the number of tags, due to the repeated linear
search, but currently max(N) is relatively small (the number of
GSS codes, which is 26).
(walk_type): Pass in a seen_tag for use by the walk_subclasses
recursion.
* gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
GIMPLE_OMP_RETURN happens to share the data layout of
GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
(GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
underlying GSS value from GSS_OMP_PARALLEL to
GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
not directly related; they merely share in-memory layout.
(GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.
* gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
Rename to...
(GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
...these.
(GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
(GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout):
...these.
(GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename
to...
(GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
...these.
* gimple.h (gimple_statement_resx): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_RESX.
(gimple_statement_eh_dispatch): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_EH_DISPATH.
(gimple_statement_omp_parallel): The existing class expressed
a layout (GSS_OMP_PARALLEL), but the codes with that layout
are not all related, so it makes more sense for this class to
express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has
been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
rename the existing gimple_statement_omp_parallel class to...
(gimple_statement_omp_parallel_layout): ...this, expressing
a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
(gimple_statement_omp_taskreg): New subclass of
gimple_statement_omp_parallel_layout, expressing the invariant
that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
as used by the various gimple_omp_taskreg_ accessors.
(gimple_statement_omp_parallel): Reintroduce this class, this time
as a subclass of gimple_statement_omp_taskreg to express the
invariant stmt->code == GIMPLE_OMP_PARALLEL.
(gimple_statement_omp_target) New class, subclassing
gimple_statement_omp_parallel_layout, to express the invariant
stmt->code == GIMPLE_OMP_TARGET.
(gimple_statement_omp_task): Update to inherit from
gimple_statement_omp_taskreg rather than
gimple_statement_omp_parallel.
(gimple_statement_omp_single): Rename to...
(gimple_statement_omp_single_layout): ...this, expressing the
invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
(gimple_statement_omp_single): ...and reintroduce this name as
a subclass of gimple_statement_omp_single_layout, expressing
the invariant that code == GIMPLE_OMP_SINGLE.
(gimple_statement_omp_teams): New class, subclassing
gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.
(gimple_statement_omp_atomic_store): Rename to...
(gimple_statement_omp_atomic_store_layout): ...this, expressing
the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
(gimple_statement_omp_atomic_store): ...and reintroduce this
name as a subclass of gimple_statement_omp_atomic_store_layout
with code == GIMPLE_OMP_ATOMIC_STORE.
(gimple_statement_omp_return): New class, subclassing
gimple_statement_omp_atomic_store_layout for the code
GIMPLE_OMP_RETURN.
(is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <gimple_statement_resx>::test): New.
(is_a_helper <gimple_statement_eh_dispatch>::test): New.
(is_a_helper <gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <gimple_statement_omp_return>::test): New.
(is_a_helper <gimple_statement_omp_taskreg>::test): New.
(is_a_helper <gimple_statement_omp_parallel>::test): Only check
for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <gimple_statement_omp_target>::test): New.
(is_a_helper <gimple_statement_omp_single>::test): Only check
for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <gimple_statement_omp_teams>::test): New.
(is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <const gimple_statement_resx>::test): New.
(is_a_helper <const gimple_statement_eh_dispatch>::test): New.
(is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <const gimple_statement_omp_return>::test): New.
(is_a_helper <const gimple_statement_omp_taskreg>::test): New.
(is_a_helper <const gimple_statement_omp_parallel>::test): Only
check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <const gimple_statement_omp_target>::test): New.
(is_a_helper <const gimple_statement_omp_single>::test): Only
check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <const gimple_statement_omp_teams>::test): New.
(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
gimple_omp_return_lhs_ptr): Replace bogus downcasts to
gimple_statement_omp_atomic_store with downcasts to
gimple_statement_omp_return, thus requiring that the code be
GIMPLE_OMP_RETURN.
(gimple_resx_region, gimple_resx_set_region): Replace bogus
downcasts to gimple_statement_eh_ctrl with downcasts to
gimple_statement_resx, thus requiring that the code be
GIMPLE_RESX.
(gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
Replace bogus downcasts to const gimple_statement_eh_ctrl with
downcasts to gimple_statement_eh_dispatch, thus requiring that
the code be GIMPLE_EH_DISPATCH.
(gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_taskreg, thus requiring that the code be
either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
(gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
gimple_omp_target_set_clauses, gimple_omp_target_child_fn
gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
gimple_omp_target_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_target, thus requiring that the code be
GIMPLE_OMP_TARGET.
(gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
gimple_omp_teams_set_clauses): Replace bogus downcasts to
gimple_statement_omp_single with downcasts to
gimple_statement_omp_teams, thus requiring that the code be
GIMPLE_OMP_TEAMS.
* gimple.c (gimple_build_resx): Fix bogus as_a<> to use
gimple_statement_resx.
(gimple_build_eh_dispatch): Fix bogus as_a<> to use
gimple_statement_eh_dispatch.
From-SVN: r205428
Ian Lance Taylor [Wed, 27 Nov 2013 01:05:38 +0000 (01:05 +0000)]
libgo: Update to current Go library.
From-SVN: r205426
GCC Administrator [Wed, 27 Nov 2013 00:17:09 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r205425
Ian Lance Taylor [Tue, 26 Nov 2013 23:27:29 +0000 (23:27 +0000)]
runtime: Fix handling of surrogate pairs in string([]rune).
From-SVN: r205422
Jakub Jelinek [Tue, 26 Nov 2013 21:29:30 +0000 (22:29 +0100)]
re PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu)
PR tree-optimization/59014
* tree-vrp.c (register_edge_assert_for_1): Don't look
through conversions from non-integral types or through
narrowing conversions.
* gcc.c-torture/execute/pr59014.c: New test.
From-SVN: r205417
Jakub Jelinek [Tue, 26 Nov 2013 21:28:26 +0000 (22:28 +0100)]
re PR target/59229 (ICE in ix86_expand_set_or_movmem)
PR target/59229
* config/i386/i386.c (device_alg): Fix up formatting.
(ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
similarly to count && count < epilogue_size_needed. Fix up
comment typo.
* builtins.c (determine_block_size): Fix comment typo.
* gcc.c-torture/execute/pr59229.c: New test.
From-SVN: r205416
Jakub Jelinek [Tue, 26 Nov 2013 21:27:19 +0000 (22:27 +0100)]
re PR sanitizer/59258 (ubsan: ICE(segfault): stack-buffer-overflow with -fsanitize=undefined)
PR sanitizer/59258
* ubsan.c (ubsan_source_location): Don't add any location
to ADDR_EXPR in the ctor. Revert 2013-11-22 change.
(ubsan_create_data): Strip block info from LOC.
From-SVN: r205415
Jakub Jelinek [Tue, 26 Nov 2013 20:55:39 +0000 (21:55 +0100)]
re PR middle-end/59273 (ICE in expand_expr_real_2, at expr.c:9188 on alpha)
PR middle-end/59273
* tree-vect-generic.c (optimize_vector_constructor): Don't optimize
if there isn't optab handler for the corresponding vector PLUS_EXPR.
From-SVN: r205414
Jakub Jelinek [Tue, 26 Nov 2013 20:54:37 +0000 (21:54 +0100)]
re PR rtl-optimization/59166 (ICE in simplify_subreg, at simplify-rtx.c:5901 on valid code (at -O1 and above with -g enabled))
PR rtl-optimization/59166
* ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
DF_REF_LOC in validate_change call.
(split_live_ranges_for_shrink_wrap): Likewise.
* gcc.dg/torture/pr59166.c: New test.
From-SVN: r205413
Jakub Jelinek [Tue, 26 Nov 2013 20:39:56 +0000 (21:39 +0100)]
re PR c++/58874 ([c++11] ICE with OpenMP reduction declaration and -std=c++11)
PR c++/58874
* parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs
pass 2 instead of 0 to finish_function.
* g++.dg/gomp/pr58874.C: New test.
From-SVN: r205412
Jakub Jelinek [Tue, 26 Nov 2013 20:38:59 +0000 (21:38 +0100)]
re PR middle-end/59150 (ICE: in expand_one_var, at cfgexpand.c:1242 with -fopenmp)
PR middle-end/59150
* omp-low.c (lower_rec_input_clause): For reduction with placeholder
of references to constant size types in simd loops, defer emitting
initializer for the new_var, emit it later on only if not using
SIMD arrays for it.
* g++.dg/gomp/pr59150.C: New test.
From-SVN: r205411
Jakub Jelinek [Tue, 26 Nov 2013 20:38:10 +0000 (21:38 +0100)]
re PR middle-end/59152 (ICE: loop 2's latch does not have an edge to its header with -fopenmp -fipa-pure-const)
PR middle-end/59152
* omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
for the inner loop if collapse_bb is non-NULL.
(expand_omp_simd): Use cont_bb rather than e->dest as latch.
* c-c++-common/gomp/pr59152.c: New test.
From-SVN: r205410
Uros Bizjak [Tue, 26 Nov 2013 19:37:01 +0000 (20:37 +0100)]
openmp-simd-1.c: Cleanup original tree dump.
* gcc.dg/gomp/openmp-simd-1.c: Cleanup original tree dump.
* gcc.dg/gomp/openmp-simd-2.c: Ditto.
* g++.dg/gomp/openmp-simd-1.C: Ditto.
* g++.dg/gomp/openmp-simd-2.C: Ditto.
* gfortran.dg/c_loc_test_22.f90: Ditto.
* gcc.dg/tree-ssa/attr-alias-2.c: Cleanup optimized tree dump.
* gcc.dg/tree-ssa/isolate-5.c: Ditto.
* gcc.dg/tree-ssa/pr57361.c: Cleanup dse1 tree dump.
* gcc.dg/vect/vect-124.c: Cleanup vect tree dump.
* gcc.dg/pr57518.c: Cleanup ira rtl dump.
* gcc.dg/tree-prof/cold_partition_label.c: Cleanup saved temps.
From-SVN: r205408
Bernd Edlinger [Tue, 26 Nov 2013 19:00:51 +0000 (19:00 +0000)]
2013-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
revised the ChangeLog from r205398:
moved ada changes from gcc/ChangeLog to gcc/ada/Changelog
From-SVN: r205407
Ian Lance Taylor [Tue, 26 Nov 2013 18:09:09 +0000 (18:09 +0000)]
compiler: If type defined as type, forward hash/equal functions.
Fixes http://golang.org/issue/6789 .
From-SVN: r205404
Bernd Edlinger [Tue, 26 Nov 2013 16:58:40 +0000 (16:58 +0000)]
Remove parameter keep_aligning from get_inner_reference.
2013-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
Remove parameter keep_aligning from get_inner_reference.
* tree.h (get_inner_reference): Adjust header.
* expr.c (get_inner_reference): Remove parameter keep_aligning.
(get_bit_range, expand_assignment,
expand_expr_addr_expr_1, expand_expr_real_1): Adjust.
* asan.c (instrument_derefs): Adjust.
* builtins.c (get_object_alignment_2): Adjust. Remove handling of
VIEW_CONVERT_EXPR.
* cfgexpand.c (expand_debug_expr): Adjust.
* dbxout.c (dbxout_expand_expr): Adjust.
* dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
loc_list_from_tree, fortran_common): Adjust.
* fold-const.c (optimize_bit_field_compare,
decode_field_reference, fold_unary_loc, fold_comparison,
split_address_to_core_and_offset): Adjust.
* gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust.
* simplifx-rtx.c (delegitimize_mem_from_attrs): Adjust.
* tree-affine.c (tree_to_aff_combination,
get_inner_reference_aff): Adjust.
* tree-data-ref.c (split_constant_offset_1,
dr_analyze_innermost): Adjust.
* tree-vect-data-refs.c (vect_check_gather,
vect_analyze_data_refs): Adjust.
* tree-scalar-evolution.c (interpret_rhs_expr): Adjust.
* tree-ssa-loop-ivopts.c (may_be_unaligned_p,
split_address_cost): Adjust.
* tsan.c (instrument_expr): Adjust.
* ada/gcc-interface/decl.c (elaborate_expression_1): Adjust.
* ada/gcc-interface/trans.c (Attribute_to_gnu): Adjust.
* ada/gcc-interface/utils2.c (build_unary_op): Adjust.
* config/mips/mips.c (r10k_safe_mem_expr_p): Adjust.
From-SVN: r205398
Yufeng Zhang [Tue, 26 Nov 2013 16:36:14 +0000 (16:36 +0000)]
arm.c (arm_legitimize_address): Check xop1 is not a constant immediate before force_reg.
gcc/
* config/arm/arm.c (arm_legitimize_address): Check xop1 is not
a constant immediate before force_reg.
gcc/testsuite/
* gcc.target/arm/
20131120.c: New test.
From-SVN: r205397
Richard Biener [Tue, 26 Nov 2013 15:14:52 +0000 (15:14 +0000)]
re PR tree-optimization/59245 (ICE on valid code at -O3 on x86_64-linux-gnu in set_value_range, at tree-vrp.c:443)
2013-11-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/59245
* tree-vrp.c (set_value_range): Assert that we don't have
overflowed constants (but our infinities).
(set_value_range_to_value): Drop all overflow flags.
(vrp_visit_phi_node): Likewise.
(vrp_visit_assignment_or_call): Use set_value_range_to_value
to set a constant range.
* gcc.dg/torture/pr59245.c: New testcase.
From-SVN: r205395
Kyrylo Tkachov [Tue, 26 Nov 2013 15:06:06 +0000 (15:06 +0000)]
re PR target/59290 ([ARM] regression on negdi-2.c (big-endian))
[gcc/]
2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/59290
* config/arm/arm.md (*zextendsidi_negsi): New pattern.
* config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly
for zero_extend case.
[gcc/testsuite/]
2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/59290
* gcc.target/arm/negdi-2.c: Scan more general register names.
From-SVN: r205394
H.J. Lu [Tue, 26 Nov 2013 13:31:25 +0000 (13:31 +0000)]
Add -fuse-ld=bfd/-fuse-ld=gold support to exec-tool.in
PR bootstrap/55552
* configure.ac (install_gold_as_default): New. Set to yes for
--disable-ld or --enable-gold=default.
(gcc_cv_ld_gold_srcdir): New.
(gcc_cv_ld): Also check in-tree gold if install_gold_as_default
is yes.
(ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST.
(ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
* configure: Regenerated.
* exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable.
(ORIGINAL_LD_GOLD_FOR_TARGET): Likewise.
(original) [collect-ld && -fuse-ld=bfd]: Set to
$ORIGINAL_LD_BFD_FOR_TARGET.
(original) [collect-ld && -fuse-ld=gold]: Set to
$ORIGINAL_LD_GOLD_FOR_TARGET.
(dir) [collect-ld && ../gold/ld-new]: Set to gold.
(fast_install) [collect-ld && ../gold/ld-new]: Set to yes.
From-SVN: r205392
Terry Guo [Tue, 26 Nov 2013 11:58:37 +0000 (11:58 +0000)]
arm.c (require_pic_register): Handle high pic base register for thumb-1.
gcc/ChangeLog
2013-11-26 Terry Guo <terry.guo@arm.com>
* config/arm/arm.c (require_pic_register): Handle high pic base
register for thumb-1.
(arm_load_pic_register): Also initialize high pic base register.
* doc/invoke.texi: Update documentation for option -mpic-register.
gcc/testsuite/ChangeLog
2013-11-26 Terry Guo <terry.guo@arm.com>
* gcc.target/arm/thumb1-pic-high-reg.c: New case.
* gcc.target/arm/thumb1-pic-single-base.c: New case.
From-SVN: r205391
Oleg Endo [Tue, 26 Nov 2013 11:48:16 +0000 (11:48 +0000)]
re PR target/58314 (SH4 error: 'asm' operand requires impossible reload)
PR target/58314
PR target/50751
* config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
Prefix function names with 'sh_'. Make them non-static.
* config/sh/sh-protos.h (sh_disp_addr_displacement,
sh_max_mov_insn_displacement): Add declarations.
* config/sh/constraints.md (Q): Reject QImode.
(Sdd): Use match_code "mem".
(Snd): Fix erroneous matching of non-memory operands.
* config/sh/predicates.md (short_displacement_mem_operand): New
predicate.
(general_movsrc_operand): Disallow PC relative QImode loads.
* config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
(*movqi, *movhi): Merge both insns into...
(*mov<mode>): ... this new insn. Replace generic 'm' constraints with
'Snd' and 'Sdd' constraints. Calculate insn length dynamically based
on the operand types.
From-SVN: r205390
Paolo Carlini [Tue, 26 Nov 2013 11:31:46 +0000 (11:31 +0000)]
re PR c++/58700 (ICE declaring static bit-field)
/cp
2013-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58700
* decl.c (grokdeclarator): Don't try to pass declarator->id_loc
to build_lang_decl_loc when declarator is null.
/testsuite
2013-11-26 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58700
* g++.dg/parse/bitfield4.C: New.
From-SVN: r205389
Joern Rennecke [Tue, 26 Nov 2013 11:04:00 +0000 (11:04 +0000)]
Fix --enable-werror-always build errors:
* config/epiphany/epiphany.c (epiphany_expand_prologue):
Remove unused variable save_config.
(epiphany_compute_frame_size): Avoid signed/unsigned comparison in
assert.
From-SVN: r205388
Paolo Carlini [Tue, 26 Nov 2013 10:12:30 +0000 (10:12 +0000)]
cvt.c (cp_convert_and_check): Avoid calling cp_convert unnecessarily.
2013-11-26 Paolo Carlini <paolo.carlini@oracle.com>
* cvt.c (cp_convert_and_check): Avoid calling cp_convert
unnecessarily.
From-SVN: r205387
James Greenhalgh [Tue, 26 Nov 2013 10:04:51 +0000 (10:04 +0000)]
[AArch64] [4/4 Fix vtbx1] Handle vtbx{1,3} emulation sequence using
other intrinsics
gcc/
* config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour
using other intrinsics.
(vtbx3_<psu>8): Likewise.
From-SVN: r205386
James Greenhalgh [Tue, 26 Nov 2013 10:03:14 +0000 (10:03 +0000)]
[AArch64] [3/4 Fix vtbx1]Implement bsl intrinsics using builtins
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_types_bsl_p_qualifiers): New.
(aarch64_types_bsl_s_qualifiers): Likewise.
(aarch64_types_bsl_u_qualifiers): Likewise.
(TYPES_BSL_P): Likewise.
(TYPES_BSL_S): Likewise.
(TYPES_BSL_U): Likewise.
(BUILTIN_VALLDIF): Likewise.
(BUILTIN_VDQQH): Likewise.
* config/aarch64/aarch64-simd-builtins.def (simd_bsl): New.
* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): Handle more modes.
(aarch64_simd_bsl<mode>): Likewise.
* config/aarch64/arm_neon.h
(vbsl<q>_<fpsu><8,16,32,64): Implement using builtins.
* config/aarch64/iterators.md (VALLDIF): New.
(Vbtype): Handle more modes.
From-SVN: r205385
James Greenhalgh [Tue, 26 Nov 2013 10:00:49 +0000 (10:00 +0000)]
[AArch64] [2/4 Fix vtbx1] Handle poly types in the new Simd types infrastructure
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_type_qualifiers): Add qualifier_poly.
(aarch64_build_scalar_type): Also build Poly types.
(aarch64_build_vector_type): Likewise.
(aarch64_build_type): Likewise.
(aarch64_build_signed_type): New.
(aarch64_build_unsigned_type): Likewise.
(aarch64_build_poly_type): Likewise.
(aarch64_init_simd_builtins): Also handle Poly types.
From-SVN: r205384
James Greenhalgh [Tue, 26 Nov 2013 09:59:10 +0000 (09:59 +0000)]
[AArch64] [1/4 Fix vtbx1] Allow signed and unsigned versions of intrinsics
to coexist.
gcc/
* config/aarch64/aarch64-builtins.c
(VAR1): Use new naming scheme for aarch64_builtins.
(aarch64_builtin_vectorized_function): Use new
aarch64_builtins names.
From-SVN: r205383
Richard Biener [Tue, 26 Nov 2013 09:04:44 +0000 (09:04 +0000)]
re PR tree-optimization/59287 (points-to analysis confused by union accesses)
2013-11-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/59287
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Remove no longer necessary special-casing of union accesses.
* gcc.dg/tree-ssa/alias-29.c: New testcase.
From-SVN: r205380
Richard Biener [Tue, 26 Nov 2013 08:45:18 +0000 (08:45 +0000)]
pretty-print.c (output_buffer::~output_buffer): Really free the obstacks.
2013-11-26 Richard Biener <rguenther@suse.de>
* pretty-print.c (output_buffer::~output_buffer): Really
free the obstacks.
From-SVN: r205379
GCC Administrator [Tue, 26 Nov 2013 00:17:23 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r205372
Ian Lance Taylor [Mon, 25 Nov 2013 22:54:05 +0000 (22:54 +0000)]
syscall: Set SizeofSockaddrAny to the value the go distribution uses
In particular this means that the names Getsockname returns are not
truncated to 26 characters.
Fixes issue 6829
https://codereview.appspot.com/
31840043/
From-SVN: r205368
Paolo Carlini [Mon, 25 Nov 2013 22:24:58 +0000 (22:24 +0000)]
re PR c++/54485 (g++ should diagnose default arguments in out-of-line definitions for template class member functions)
/cp
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/54485
* decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments
for member functions of class templates.
/testsuite
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/54485
* g++.dg/other/default8.C: New.
* g++.dg/tc1/dr217.C: Remove xfail.
* g++.dg/other/default5.C: Adjust.
* g++.old-deja/g++.mike/p1989.C: Likewise.
From-SVN: r205367
Paolo Carlini [Mon, 25 Nov 2013 20:51:56 +0000 (20:51 +0000)]
re PR c++/58607 ([c++11] ICE with undeclared variable in constexpr)
/cp
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58607
* semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS.
/testsuite
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58607
* g++.dg/cpp0x/constexpr-ice9.C: New.
From-SVN: r205364
Jeff Law [Mon, 25 Nov 2013 18:24:57 +0000 (11:24 -0700)]
tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively invalidate loop information.
* tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
invalidate loop information.
From-SVN: r205361
Oleg Endo [Mon, 25 Nov 2013 17:11:50 +0000 (17:11 +0000)]
crt1.S (start): Don't do VBR_SETUP for SH2E.
* config/sh/crt1.S (start): Don't do VBR_SETUP for SH2E.
From-SVN: r205360
Oleg Endo [Mon, 25 Nov 2013 17:04:17 +0000 (17:04 +0000)]
sh.md (doloop_end_split): Add missing SI mode.
* config/sh/sh.md (doloop_end_split): Add missing SI mode.
From-SVN: r205359
Oleg Endo [Mon, 25 Nov 2013 16:47:16 +0000 (16:47 +0000)]
re PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)
PR target/53976
PR target/59243
* config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
comments.
(sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
previously visited basic blocks before recursing instead of only one
basic block.
From-SVN: r205358
Rainer Orth [Mon, 25 Nov 2013 16:32:22 +0000 (16:32 +0000)]
Remove GCC_LIBSTDCXX_RAW_CXX_FLAGS
* configure.ac (GCC_LIBSTDCXX_RAW_CXX_FLAGS): Remove.
* configure: Regenerate.
From-SVN: r205357
Paolo Carlini [Mon, 25 Nov 2013 16:10:29 +0000 (16:10 +0000)]
re PR c++/58810 (ICE with invalid function typedef)
/cp
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58810
* decl.c (grokdeclarator): Don't handle qualified free functions here,
leave the diagnostic to grokfndecl.
/testsuite
2013-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58810
* g++.dg/other/cv_func3.C: New.
* g++.dg/other/cv_func.C: Adjust.
* g++.dg/parse/fn-typedef2.C: Likewise.
From-SVN: r205356
Rainer Orth [Mon, 25 Nov 2013 16:02:12 +0000 (16:02 +0000)]
Suppress some warnings for soft-fp files
* config/t-softfp (soft-fp-objects-base): New variable.
(soft-fp-objects): Use it.
From-SVN: r205355
Kyrylo Tkachov [Mon, 25 Nov 2013 15:26:04 +0000 (15:26 +0000)]
aarch64.c (cortexa53_tuning): New struct.
* config/aarch64/aarch64.c (cortexa53_tuning): New struct.
* config/aarch64/aarch64-cores.def (cortex-a53):
Use cortexa53 tuning struct.
From-SVN: r205354
Andrew MacLeod [Mon, 25 Nov 2013 13:23:09 +0000 (13:23 +0000)]
re PR bootstrap/59260 (fold-const.c:14871:5: error: 'hash_table' has not been declared)
PR bootstrap/59260
* fold-const.c: Include hash-table.h.
From-SVN: r205352