aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2013-04-29arm.md (store_minmaxsi): Use only when optimize_insn_for_size_p.Kyrylo Tkachov2-1/+6
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/arm.md (store_minmaxsi): Use only when optimize_insn_for_size_p. From-SVN: r198412
2013-04-29re PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in ↵Christian Bruel4-1/+30
int_mode_for_mode, at stor-layout.c:395) 2013-04-29 Christian Bruel <christian.bruel@st.com> PR target/57108 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0. From-SVN: r198411
2013-04-29re PR middle-end/57089 (ICE in verify_loop_structure, at cfgloop.c:1647)Richard Biener4-10/+70
2013-04-29 Richard Biener <rguenther@suse.de> PR middle-end/57089 * omp-low.c (expand_omp_taskreg): If the parent function had a broken loop tree make sure to schedule a fixup for the child as well. (expand_omp_for_generic): Properly add loops. (expand_omp_for_static_nochunk): Likewise. (expand_omp_for_static_chunk): Likewise. (expand_omp_for): For the degenerate case fixup loops. (expand_omp_sections): Fix default bb placement in loops. (expand_omp_atomic_pipeline): Properly add loops. * gfortran.dg/gomp/pr57089.f90: New testcase. From-SVN: r198409
2013-04-29predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.Kyrylo Tkachov2-1/+5
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY. From-SVN: r198408
2013-04-29Update tail-merge header comment.Tom de Vries2-3/+9
2013-04-29 Tom de Vries <tom@codesourcery.com> * tree-ssa-tail-merge.c: Update header comment. From-SVN: r198407
2013-04-29[AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64.James Greenhalgh2-0/+5
gcc/testsuite/ * lib/target-supports.exp (vect_uintfloat_cvt): Enable for AArch64. From-SVN: r198406
2013-04-29[AArch64] fcvt instructions - arm_neon.h changes.James Greenhalgh4-726/+579
gcc/ * config/aarch64/arm_neon.h (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C. (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins. (vcvt_<high_>_f<32,64>_f<32,64>): Likewise. (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise. (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise. (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise. (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise. (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise. gcc/testsuite/ * gcc.target/aarch64/vect-vcvt.c: New. From-SVN: r198404
2013-04-29[AArch64] Add vector fix, fixuns, fix_trunc, fixuns_trunc standard patternsJames Greenhalgh3-0/+38
gcc/ * config/aarch64/aarch64-simd.md (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns. (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to fix_trunc, fixuns_trunc. (ftrunc<VDQF:mode>2): New. * config/aarch64/iterators.md (optab): Add fix, fixuns. (fix_trunc_optab): New. From-SVN: r198403
2013-04-29[AArch64] Vectorize over more math.h functions.James Greenhalgh2-0/+24
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_builtin_vectorized_function): Vectorize over ifloorf, iceilf, lround, iroundf. From-SVN: r198402
2013-04-29re PR target/54349 (_mm_cvtsi128_si64 unnecessary stores value at stack)Uros Bizjak7-33/+92
PR target/54349 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>: New, split from X86_TUNE_INTER_UNIT_MOVES. <X86_TUNE_INTER_UNIT_MOVES>: Remove. (TARGET_INTER_UNIT_MOVES_TO_VEC): New define. (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto. (TARGET_INTER_UNIT_MOVES): Remove. * config/i386/i386.c (initial_ix86_tune_features): Update. Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only. (ix86_expand_convert_uns_didf_sse): Use TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. (ix86_expand_vector_init_one_nonzero): Ditto. (ix86_expand_vector_init_interleave): Ditto. (inline_secondary_memory_needed): Return true for moves from SSE class registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets. * config/i386/constraints.md (Yi, Ym): Depend on TARGET_INTER_UNIT_MOVES_TO_VEC. (Yj, Yn): New constraints. * config/i386/i386.md (*movdi_internal): Change constraints of operand 1 from Yi to Yj and from Ym to Yn. (*movsi_internal): Ditto. (*movdf_internal): Ditto. (*movsf_internal): Ditto. (*float<SWI48x:mode><X87MODEF:mode>2_1): Use TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES. (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto. (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto. (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto. * config/i386/sse.md (movdi_to_sse): Ditto. (sse2_stored): Change constraint of operand 1 from Yi to Yj. Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of TARGET_INTER_UNIT_MOVES. (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj. (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of TARGET_INTER_UNIT_MOVES. * config/i386/mmx.md (*mov<mode>_internal): Change constraint of operand 1 from Yi to Yj and from Ym to Yn. From-SVN: r198401
2013-04-29[AArch64] Implement vector float->double widening and double->float narrowing.James Greenhalgh3-0/+122
gcc/ * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New. (float_truncate_hi_): Likewise. (float_extend_lo_): Likewise. (float_truncate_lo_): Likewise. * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New. (aarch64_float_extend_lo_v2df): Likewise. (vec_unpacks_hi_v4sf): Likewise. (aarch64_float_truncate_lo_v2sf): Likewise. (aarch64_float_truncate_hi_v4sf): Likewise. (vec_pack_trunc_v2df): Likewise. (vec_pack_trunc_df): Likewise. From-SVN: r198400
2013-04-29[AArch64] Add vector int to float conversions.James Greenhalgh5-0/+43
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Fold float conversions. * config/aarch64/aarch64-simd-builtins.def (floatv2si, floatv4si, floatv2di): New. (floatunsv2si, floatunsv4si, floatunsv2di): Likewise. * config/aarch64/aarch64-simd.md (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns. * config/aarch64/iterators.md (FLOATUORS): New. (optab): Add float, floatuns. (su_optab): Likewise. From-SVN: r198399
2013-04-29[AArch64] Map fcvt intrinsics to builtin name directly.James Greenhalgh5-24/+116
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_builtin_vectorized_function): Use new names for fcvt builtins. * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as... (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This. (fcvtzu): Split as... (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This. (fcvtas): Split as... (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This. (fcvtau): Split as... (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This. (fcvtps): Split as... (lceilv2sf, lceilv4sf, lceilv2df): ...This. (fcvtpu): Split as... (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This. (fcvtms): Split as... (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This. (fcvtmu): Split as... (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This. (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New. (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise. (lfrintnusf, lfrintnudf): Likewise. * config/aarch64/aarch64-simd.md (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to define_insn. (aarch64_fcvt<frint_suffix><su><mode>): Remove. * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN. (fcvt_pattern): Likewise. From-SVN: r198398
2013-04-29[AArch64] Fix order of modes to lroundmn2 standard names.James Greenhalgh2-1/+7
gcc/ * config/aarch64/aarch64-simd.md (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to... (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This. From-SVN: r198397
2013-04-29[AArch64] Convert NEON frint implementations to use builtins.James Greenhalgh4-165/+267
gcc/ * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to... (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin. (vrnd<a,m,n,p>_f32): Implement using builtins. (vrnd<i,x><q>_f<32, 64>): New. gcc/testsuite/ * gcc.target/aarch64/vect-vrnd.c: New. From-SVN: r198396
2013-04-29[AArch64] Map frint intrinsics to standard pattern names directly.James Greenhalgh6-25/+48
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_builtin_vectorized_function): Fold to standard pattern names. * config/aarch64/aarch64-simd-builtins.def (frintn): New. (frintz): Rename to... (btrunc): ...this. (frintp): Rename to... (ceil): ...this. (frintm): Rename to... (floor): ...this. (frinti): Rename to... (nearbyint): ...this. (frintx): Rename to... (rint): ...this. (frinta): Rename to... (round): ...this. * config/aarch64/aarch64-simd.md (aarch64_frint<frint_suffix><mode>): Delete. (<frint_pattern><mode>2): Convert to insn. * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN. * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN. (frint_pattern): Likewise. (frint_suffix): Likewise. From-SVN: r198394
2013-04-29re PR tree-optimization/57081 (Segmentation fault in simple_iv ↵Richard Biener5-1/+38
(tree-scalar-evolution.c:3151)) 2013-04-29 Richard Biener <rguenther@suse.de> PR tree-optimization/57081 * loop-init.c: Include tree-flow.h. (loop_optimizer_finalize): Free number of iteration estimates. * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency. * gcc.dg/torture/pr57081.c: New testcase. From-SVN: r198392
2013-04-29re PR tree-optimization/57083 (Wrong constant folding)Jakub Jelinek4-1/+25
PR tree-optimization/57083 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with non-singleton shift count range, zero extend low_bound for uns case. * gcc.dg/torture/pr57083.c: New test. From-SVN: r198388
2013-04-29predicates.md (general_vector_operand): New predicate.Jakub Jelinek4-12/+59
* config/i386/predicates.md (general_vector_operand): New predicate. * config/i386/i386.c (const_vector_equal_evenodd_p): New function. (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register if they aren't nonimmediate operands. If their original values satisfy const_vector_equal_evenodd_p, don't shift them. * config/i386/sse.md (mul<mode>3): Use general_vector_operand predicates. For the SSE4.1 case force operands[{1,2}] into registers if not nonimmediate_operand. (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates instead of register_operand. (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates. From-SVN: r198387
2013-04-29Daily bump.GCC Administrator1-1/+1
From-SVN: r198384
2013-04-28re PR c++/56450 (ICE with SFINAE when detecting non-static member variable)Paolo Carlini4-0/+29
/cp 2013-04-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/56450 * semantics.c (finish_decltype_type): Handle COMPOUND_EXPR. /testsuite 2013-04-28 Paolo Carlini <paolo.carlini@oracle.com> PR c++/56450 * g++.dg/cpp0x/decltype52.C: New. From-SVN: r198381
2013-04-28N3472 binary constantsJakub Jelinek4-4/+25
N3472 binary constants * include/cpplib.h (struct cpp_options): Fix a typo in user_literals field comment. Add binary_constants field. * init.c (struct lang_flags): Add binary_constants field. (lang_defaults): Add bin_cst column to the table. (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants). * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x in diagnostics. Accept binary constants if CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust pedwarn message. * g++.dg/cpp/limits.C: Adjust warning wording. * g++.dg/system-binary-constants-1.C: Likewise. * g++.dg/cpp1y/system-binary-constants-1.C: New test. From-SVN: r198380
2013-04-28re PR fortran/57093 (Seg fault on internal output to a character scalar coarray)Tobias Burnus5-6/+33
2013-04-28 Tobias Burnus <burnus@net-b.de> PR fortran/57093 * trans-types.c (gfc_get_element_type): Fix handling of scalar coarrays of type character. * intrinsic.texi (PACK): Add missing ")". 2013-04-28 Tobias Burnus <burnus@net-b.de> PR fortran/57093 * gfortran.dg/coarray_30.f90: New. From-SVN: r198379
2013-04-28stor-layout.c (finalize_size_functions): Allocate a structure and reset cfun ↵Eric Botcazou2-0/+7
before dumping the functions. * stor-layout.c (finalize_size_functions): Allocate a structure and reset cfun before dumping the functions. From-SVN: r198376
2013-04-28* sv.po: Update.Joseph Myers2-646/+315
From-SVN: r198371
2013-04-28re PR fortran/57071 (Optimize (-1)**k to 1 - 2 * mod(K, 2))Thomas Koenig5-0/+142
2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/57071 * frontend-passes (optimize_power): New function. (optimize_op): Use it. 2013-04-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/57071 * gfortran.dg/power_3.f90: New test. * gfortran.dg/power_4.f90: New test. From-SVN: r198369
2013-04-28Daily bump.GCC Administrator1-1/+1
From-SVN: r198365
2013-04-27* config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.Jakub Jelinek2-1/+4
From-SVN: r198358
2013-04-27re PR target/56866 (with '-O3 -march=bdver2' misscompiles ↵Jakub Jelinek6-2/+80
glibc-2.17/crypt/sha512.c) PR target/56866 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't use xop_pmacsdqh if uns_p. * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of the immediate rotate count. * gcc.c-torture/execute/pr56866.c: New test. * gcc.target/i386/pr56866.c: New test. From-SVN: r198355
2013-04-27Daily bump.GCC Administrator1-1/+1
From-SVN: r198353
2013-04-26rtl.h (struct rtx_def): Add comment for field jump.Vladimir Makarov7-64/+200
2013-04-26 Vladimir Makarov <vmakarov@redhat.com> * rtl.h (struct rtx_def): Add comment for field jump. (LRA_SUBREG_P): New macro. * recog.c (register_operand): Check LRA_SUBREG_P. * lra.c (lra): Add note at the end of RTL code. Align non-empty stack frame. * lra-spills.c (lra_spill): Align stack after spilling pseudos. (lra_final_code_change): Skip subreg change for operators. * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier if there are no operand changes. * lra-constraints.c (curr_insn_set): New. (match_reload): Set LRA_SUBREG_P. (emit_spill_move): Ditto. (check_and_process_move): Use curr_insn_set. Process only single set insns. Don't initialize sec_mem_p and change_p. (simplify_operand_subreg): Use LRA_SUBREG_P. (reg_in_class_p): New function. (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead of #ifdef. Add code to remove cycling. (process_address): Check EXTRA_CONSTRAINT_STR. Process even if non-null disp. Reload inner instead of disp when base and index are null. Try to put lo_sum into register. (EBB_PROBABILITY_CUTOFF): Redefine probability in percents. (check_and_process_move): Move code for move cost check to simple_move_p. Remove equiv_substitution. (simple_move_p): New function. (curr_insn_transform): Initialize sec_mem_p and change_p. Set up curr_insn_set. Call check_and_process_move only for single set insns. Use the new function. Move call of check_and_process_move after operand equiv substitution and address process. From-SVN: r198344
2013-04-26re PR go/57045 (Build failure in libgo/runtime/proc.c: error: ↵Jakub Jelinek4-1/+50
‘({anonymous})’ may be used uninitialized in this function) PR go/57045 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions with nonlocal goto receivers or returns twice calls, ignore unininitialized values from abnormal edges to nl goto receiver or returns twice call. * gcc.dg/setjmp-5.c: New test. From-SVN: r198340
2013-04-26re PR tree-optimization/57051 (Optimization regression in 4.8.0 from 4.7.2)Jakub Jelinek2-7/+39
PR tree-optimization/57051 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR and VEC_RSHIFT_EXPR if shift count is a multiple of element bitsize. From-SVN: r198339
2013-04-26omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.Richard Biener3-19/+86
2013-04-26 Richard Biener <rguenther@suse.de> * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops. (expand_omp_taskreg): Likewise. Mark loops for fixup. * tree-cfg.c (move_block_to_fn): Remap loop fathers. (fixup_loop_arrays_after_move): New function. (move_sese_region_to_fn): Properly outline the loop tree parts of the SESE region. From-SVN: r198338
2013-04-26re PR c++/55708 (g++ crashes: constexpr function with reference parameters.)Paolo Carlini2-1/+36
2013-04-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/55708 * g++.dg/cpp0x/constexpr-55708.C: New. From-SVN: r198337
2013-04-26i386.md (type, unit): Fix long lines.Uros Bizjak2-22/+29
* config/i386/i386.md (type, unit): Fix long lines. From-SVN: r198336
2013-04-26Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.Richard Biener6-14/+125
2013-04-26 Richard Biener <rguenther@suse.de> * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency. (lto-streamer-out.o): Likewise. * cfgloop.c (init_loops_structure): Export, add struct function argument and adjust. (flow_loops_find): Adjust. * cfgloop.h (enum loop_estimation): Add EST_LAST. (init_loops_structure): Declare. * lto-streamer-in.c: Include cfgloop.h. (input_cfg): Input the loop tree. * lto-streamer-out.c: Include cfgloop.h. (output_cfg): Output the loop tree. (output_struct_function_base): Do not drop PROP_loops. From-SVN: r198334
2013-04-26tree-cfg.c (execute_build_cfg): Build the loop tree.Richard Biener28-50/+273
2013-03-26 Richard Biener <rguenther@suse.de> * tree-cfg.c (execute_build_cfg): Build the loop tree. (pass_build_cfg): Provide PROP_loops. (move_sese_region_to_fn): Remove loops that are outlined into fn for now. * tree-inline.c: Include cfgloop.h. (initialize_cfun): Do not drop PROP_loops. (copy_loops): New function. (copy_cfg_body): Copy loop structure. (tree_function_versioning): Initialize destination loop tree. * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops. (pass_parallelize_loops): Do IL verification. * loop-init.c (loop_optimizer_init): Fixup loops if required. * tree-optimize.c (execute_fixup_cfg): If we need to cleanup the CFG make sure we fixup loops as well. * tree-ssa-tail-merge.c: Include cfgloop.h. (replace_block_by): When merging loop latches mark loops for fixup. * lto-streamer-out.c (output_struct_function_base): Drop PROP_loops for now. * tree-ssa-phiopt.c: Include tree-scalar-evolution.h. (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV. * ipa-split.c: Include cfgloop.h. (split_function): Add the new return block to the loop tree root. * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return whether we have removed the forwarder block. (merge_phi_nodes): If we removed a forwarder mark loops for fixup. * cfgloop.h (place_new_loop): Declare. * cfgloopmanip.c (place_new_loop): Export. * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency. (tree-switch-conversion.o): Likewise. (tree-complex.o): Likewise. (tree-inline.o): Likewise. (tree-ssa-tailmerge.o): Likewise. (ipa-split.o): Likewise. (tree-ssa-phiopt.o): Add $(SCEV_H) dependency. (tree-ssa-copy.o): Likewise. * tree-switch-conversion.c: Include cfgloop.h (process_switch): If we emit a bit-test cascade, schedule loops for fixup. * tree-complex.c: Include cfgloop.h. (expand_complex_div_wide): Properly add new basic-blocks to loops. * asan.c: Include cfgloop.h. (create_cond_insert_point): Properly add new basic-blocks to loops, schedule loop fixup. * cfgloop.c (verify_loop_structure): Check that looks are not marked for fixup. * omp-low.c (expand_parallel_call): Properly add new basic-blocks to loops. (expand_omp_for_generic): Likewise. (expand_omp_sections): Likewise. (expand_omp_atomic_pipeline): Schedule loops for fixup. * tree-ssa-copy.c: Include tree-scalar-evolution.h. (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV is initialized, not when loops are present. * tree-parloops.c (parallelize_loops): Remove checking here. * passes.c (init_optimization_passes): Schedule a copy-propagation pass before complete unrolling of inner loops. * gcc.dg/tree-prof/update-loopch.c: Revert last change. * gcc.dg/graphite/pr33766.c: Fix undefined behavior. * gcc.dg/pr53265.c: Remove XFAILs. * gcc.dg/tree-ssa/loop-38.c: Remove unreliable dump scanning. * gcc.dg/tree-ssa/pr21559.c: Change back to two expected jump threads. From-SVN: r198333
2013-04-26Makefile.in (toplev.o): Depend on diagnostic-color.h.Jakub Jelinek9-14/+44
* Makefile.in (toplev.o): Depend on diagnostic-color.h. * diagnostic-color.c (should_colorize): Remove _WIN32 version. (colorize_init): Add argument to _WIN32 version. * toplev.c: Include diagnostic-color.h. (process_options): Default to -fdiagnostics-color=auto if GCC_COLORS env var is in the environment. * common.opt (fdiagnostics-color=): Add Var and Init. * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS env var is in the environment, the default is auto rather than never. * lib/prune.exp: Add -fdiagnostics-color=never to TEST_ALWAYS_FLAGS. * lib/c-compat.exp (compat-use-alt-compiler, compat_setup_dfp): Handle -fdiagnostics-color=never option similarly to -fno-diagnostics-show-caret option. From-SVN: r198332
2013-04-26diagnostic.h (file_name_as_prefix): Add context argument.Jakub Jelinek6-5/+20
* diagnostic.h (file_name_as_prefix): Add context argument. * diagnostic.c (file_name_as_prefix): Likewise. Colorize the string as locus. * langhooks.c (lhd_print_error_function): Adjust caller. cp/ * error.c (cp_print_error_function): Adjust file_name_as_prefix caller. From-SVN: r198331
2013-04-26This patch is part of a consolodation of the hash_table patches to the...Lawrence Crowl3-425/+426
This patch is part of a consolodation of the hash_table patches to the cxx-conversion branch for files not under gcc/config. Update various hash tables from htab_t to hash_table. Modify types and calls to match. * var-tracking.c'emit_note_data_def.vars * var-tracking.c'shared_hash_def.htab * var-tracking.c'changed_variables Fold variable_htab_hash, variable_htab_eq, variable_htab_free into new struct variable_hasher. Add typedef variable_table_type. Add typedef variable_iterator_type. Tested on x86_64. Index: gcc/ChangeLog * var-tracking.c (shared_hash_def::htab): Change type to hash_table. Update dependent calls and types. 2013-04-25 Lawrence Crowl <crowl@google.com> From-SVN: r198330
2013-04-26This patch is the main part of a consolodation of the hash_table patches to ↵Lawrence Crowl55-1843/+2572
the... This patch is the main part of a consolodation of the hash_table patches to the cxx-conversion branch for files not under gcc/config. Update various hash tables from htab_t to hash_table. Modify types and calls to match. * tree-parloops.c'reduction * tree-parloops.c'name_to_copy Fold reduction_info_hash and reduction_info_eq into new struct reduction_hasher. Fold name_to_copy_elt_eq and name_to_copy_elt_hash into new struct name_to_copy_hasher. * trans-mem.c'tm_log Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher. * trans-mem.c'tm_memopt_value_numbers Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher. * tree-ssa-strlen.c'decl_to_stridxlist_htab Fold decl_to_stridxlist_hash into new struct stridxlist_hasher. * tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct iv_inv_expr_hasher. * tree-ssa-uncprop.c'equiv Equiv renamed to val_ssa_equiv because of name ambiguity with local variables. Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher. Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity with struct type. Changed equiv_hash_elt_p to an_equiv_elt_p to match. * tree-ssa-phiopt.c'seen_ssa_names Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher. * tree-ssa-structalias.c'pointer_equiv_class_table * tree-ssa-structalias.c'location_equiv_class_table Fold equiv_class_label_hash and equiv_class_label_eq into new struct equiv_class_hasher. * tree-ssa-structalias.c'shared_bitmap_table Fold shared_bitmap_hash and shared_bitmap_eq into new struct shared_bitmap_hasher. * tree-ssa-live.c'var_map_base_init::tree_to_index New struct tree_int_map_hasher. * tree-sra.c'candidates Fold uid_decl_map_hash and uid_decl_map_eq into new struct uid_decl_hasher. This change moves the definitions from tree-ssa.c into tree-sra.c and removes the declarations from tree-flow.h tree-browser.c Remove stale declaration of removed TB_parent_eq. Fix template parameter for base class to match value_type. gimple.h Use gimplify_hasher::hash rather than gimple_tree_hash in the assertion check. Change return values to match return type. (I.e. no conversions.) * graphite-clast-to-gimple.c'ivs_params::newivs_index * graphite-clast-to-gimple.c'ivs_params::params_index * graphite-clast-to-gimple.c'print_generated_program::params_index * graphite-clast-to-gimple.c'gloog::newivs_index * graphite-clast-to-gimple.c'gloog::params_index * graphite.c graphite_transform_loops::bb_pbb_mapping * sese.c copy_bb_and_scalar_dependences::rename_map Move hash table declarations to a new graphite-htab.h, because they are used in few places. Remove unused: htab_t scop::original_pddrs SCOP_ORIGINAL_PDDRS Remove unused: insert_loop_close_phis insert_guard_phis debug_ivtype_map ivtype_map_elt_info new_ivtype_map_elt * gimplify.c'gimplify_ctx::temp_htab Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new gimplify-ctx.h, because they are used few places. * cselib.c'cselib_hash_table * gcse.c'pre_ldst_table * gimple-ssa-strength-reduction.c'base_cand_map * haifa-sched.c'delay_htab * haifa-sched.c'delay_htab_i2 * ira-color.c'allocno_hard_regs_htab * ira-costs.c'cost_classes_htab * loop-invariant.c'merge_identical_invariants::eq * loop-iv.c'bivs * loop-unroll.c'opt_info::insns_to_split * loop-unroll.c'opt_info::insns_with_var_to_expand * passes.c'name_to_pass_map * plugin.c'event_tab * postreload-gcse.c'expr_table * store-motion.c'store_motion_mems_table * tree-cfg.c'discriminator_per_locus * tree-scalar-evolution.c'resolve_mixers::cache * tree-ssa-dom.c'avail_exprs Remove unused: dse.c bitmap clear_alias_sets dse.c bitmap disqualified_clear_alias_sets dse.c alloc_pool clear_alias_mode_pool dse.c dse_step2_spill dse.c dse_step5_spill graphds.h htab_t graph::indices * attribs.c'scoped_attributes::attribute_hash * bitmap.c'bitmap_desc_hash * dwarf2cfi.c'trace_index * dwarf2out.c'break_out_includes::cu_hash_table * dwarf2out.c'copy_decls_for_unworthy_types::decl_table * dwarf2out.c'optimize_external_refs::map * dwarf2out.c'output_comp_unit::extern_map * dwarf2out.c'output_comdat_type_unit::extern_map * dwarf2out.c'output_macinfo::macinfo_htab * dwarf2out.c'optimize_location_lists::htab * dwarf2out.c'dwarf2out_finish::comdat_type_table * except.c'ehspec_hash_type * except.c'assign_filter_values::ttypes * except.c'assign_filter_values::ehspec * except.c'sjlj_assign_call_site_values::ar_hash * except.c'convert_to_eh_region_ranges::ar_hash * trans-mem.c'tm_new_mem_hash * tree-browser.c'TB_up_ht * tree-eh.c'finally_tree Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash in alloc-pool.c to after the method definitions for its parameter class. * ggc-common.c'loc_hash * ggc-common.c'ptr_hash Add a new hash_table method elements_with_deleted to meet the needs of gcc-common.c. Correct many methods with parameter types compare_type to the correct value_type. (Correct code was unlikely to notice the change, but incorrect code will.) * tree-complex.c'complex_variable_components * tree-parloops.c'eliminate_local_variables_stmt::decl_address * tree-parloops.c'separate_decls_in_region::decl_copies Move hash table declarations to a new tree-hasher.h, to resolve compilation dependences and because they are used in few places. * lto-streamer.h'output_block::string_hash_table * lto-streamer-in.c'file_name_hash_table * lto-streamer.c'tree_htab The struct string_slot moves from data-streamer.h to lto-streamer.h to resolve compilation dependences. Tested on x86_64. Index: gcc/ChangeLog 2013-04-25 Lawrence Crowl <crowl@google.com> * Makefile.in: Update as needed below. * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash): Move declaration to after the type's method definitons. * attribs.c (htab_t scoped_attributes::attribute_hash): Change type to hash_table. Update dependent calls and types. * bitmap.c (htab_t bitmap_desc_hash): Change type to hash_table. Update dependent calls and types. * cselib.c (htab_t cselib_hash_table): Change type to hash_table. Update dependent calls and types. * data-streamer.h (struct string_slot): Move to lto-streamer.h. (hash_string_slot_node): Move implementation into lto-streamer.h struct string_slot_hasher. (eq_string_slot_node): Likewise. * data-streamer-out.c: Update output_block::string_hash_table dependent calls and types. * dwarf2cfi.c (htab_t trace_index): Change type to hash_table. Update dependent calls and types. * dwarf2out.c (htab_t break_out_includes::cu_hash_table): Change type to hash_table. Update dependent calls and types. (htab_t copy_decls_for_unworthy_types::decl_table): Likewise. (htab_t optimize_external_refs::map): Likewise. (htab_t output_comp_unit::extern_map): Likewise. (htab_t output_comdat_type_unit::extern_map): Likewise. (htab_t output_macinfo::macinfo_htab): Likewise. (htab_t optimize_location_lists::htab): Likewise. (htab_t dwarf2out_finish::comdat_type_table): Likewise. * except.c (htab_t ehspec_hash_type): Change type to hash_table. Update dependent calls and types. (assign_filter_values::ttypes): Likewise. (assign_filter_values::ehspec): Likewise. (sjlj_assign_call_site_values::ar_hash): Likewise. (convert_to_eh_region_ranges::ar_hash): Likewise. * gcse.c (htab_t pre_ldst_table): Change type to hash_table. Update dependent calls and types. * ggc-common.c (htab_t saving_htab): Change type to hash_table. Update dependent calls and types. (htab_t loc_hash): Likewise. (htab_t ptr_hash): Likewise. (call_count): Rename ggc_call_count. (call_alloc): Rename ggc_call_alloc. (loc_descriptor): Rename make_loc_descriptor. (add_statistics): Rename ggc_add_statistics. * ggc-common.c (saving_htab): Change type to hash_table. Update dependent calls and types. * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h. (push_gimplify_context): Likewise. (pop_gimplify_context): Likewise. (struct gimple_temp_hash_elt): Added. (struct gimplify_hasher): Likewise. (struct gimplify_ctx.temp_htab): Change type to hash_table. Update dependent calls and types. * gimple-fold.c: Include gimplify-ctx.h. * gimple-ssa-strength-reduction.c (htab_t base_cand_map): Change type to hash_table. Update dependent calls and types. (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to avoid potential global name collision. * gimplify.c: Include gimplify-ctx.h. (struct gimple_temp_hash_elt): Move to gimplify-ctx.h. (htab_t gimplify_ctx::temp_htab): Update dependent calls and types for new type hash_table. (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h. (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h. * gimplify-ctx.h: New. (struct gimple_temp_hash_elt): Move from gimplify.c. (class gimplify_hasher): New. (struct gimplify_ctx): Move from gimple.h. (htab_t gimplify_ctx::temp_htab): Change type to hash_table. Update dependent calls and types. * graphite-clast-to-gimple.c: Include graphite-htab.h. (htab_t ivs_params::newivs_index): Change type to hash_table. Update dependent calls and types. (htab_t ivs_params::params_index): Likewise. (htab_t print_generated_program::params_index): Likewise. (htab_t gloog::newivs_index): Likewise. (htab_t gloog::params_index): Likewise. * graphite.c: Include graphite-htab.h. 4htab_t graphite_transform_loops::bb_pbb_mapping): Change type to hash_table. Update dependent calls and types. * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h. (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h. (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h. * graphite-dependences.c: Include graphite-htab.h. (loop_is_parallel_p): Change hash table type of parameter. * graphite-htab.h: New. (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New. (extern find_pbb_via_hash): Move from graphite-poly.h. (extern loop_is_parallel_p): Move from graphite-poly.h. (extern get_loop_body_pbbs): Move from graphite-poly.h. * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h. (extern loop_is_parallel_p): Move to graphite-htab.h. (extern get_loop_body_pbbs): Move to graphite-htab.h. * haifa-sched.c (htab_t delay_htab): Change type to hash_table. Update dependent calls and types. (htab_t delay_htab_i2): Likewise. * ira-color.c (htab_t allocno_hard_regs_htab): Change type to hash_table. Update dependent calls and types. * ira-costs.c (htab_t cost_classes_htab): Change type to hash_table. Update dependent calls and types. * loop-invariant.c (htab_t merge_identical_invariants::eq): Change type to hash_table. Update dependent calls and types. * loop-iv.c (htab_t bivs): Change type to hash_table. Update dependent calls and types. * loop-unroll.c (htab_t opt_info::insns_to_split): Change type to hash_table. Update dependent calls and types. (htab_t opt_info::insns_with_var_to_expand): Likewise. * lto-streamer.h (struct string_slot): Move from data-streamer.h (struct string_slot_hasher): New. (htab_t output_block::string_hash_table): Change type to hash_table. Update dependent calls and types. * lto-streamer-in.c (freeing_string_slot_hasher): New. (htab_t file_name_hash_table): Change type to hash_table. Update dependent calls and types. * lto-streamer-out.c: Update output_block::string_hash_table dependent calls and types. * lto-streamer.c (htab_t tree_htab): Change type to hash_table. Update dependent calls and types. * omp-low.c: Include gimplify-ctx.h. * passes.c (htab_t name_to_pass_map): Change type to hash_table. Update dependent calls and types. (pass_traverse): Rename to passes_pass_traverse. * plugin.c (htab_t event_tab): Change type to hash_table. Update dependent calls and types. * postreload-gcse.c (htab_t expr_table): Change type to hash_table. Update dependent calls and types. (dump_hash_table_entry): Rename dump_expr_hash_table_entry. * sese.c (debug_rename_map_1): Make extern. (htab_t copy_bb_and_scalar_dependences::rename_map): Change type to hash_table. Update dependent calls and types. * sese.h (extern debug_rename_map): Move to .c file. * store-motion.c (htab_t store_motion_mems_table): Change type to hash_table. Update dependent calls and types. * trans-mem.c (htab_t tm_new_mem_hash): Change type to hash_table. Update dependent calls and types. * tree-browser.c (htab_t TB_up_ht): Change type to hash_table. Update dependent calls and types. * tree-cfg.c (htab_t discriminator_per_locus): Change type to hash_table. Update dependent calls and types. * tree-complex.c: Include tree-hasher.h (htab_t complex_variable_components): Change type to hash_table. Update dependent calls and types. * tree-eh.c (htab_t finally_tree): Change type to hash_table. Update dependent calls and types. * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher struct int_tree_hasher. (extern int_tree_map_eq): Likewise. (uid_decl_map_hash): Removed. (extern decl_tree_map_eq): Likewise. * tree-hasher.h: New. (struct int_tree_hasher): New. (typedef int_tree_htab_type): New. * tree-inline.c: Include gimplify-ctx.h. * tree-mudflap.c: Include gimplify-ctx.h. * tree-parloops.c: Include tree-hasher.h. (htab_t eliminate_local_variables_stmt::decl_address): Change type to hash_table. Update dependent calls and types. (htab_t separate_decls_in_region::decl_copies): Likewise. * tree-scalar-evolution.c (htab_t resolve_mixers::cache): Change type to hash_table. Update dependent calls and types. * tree-sra.c (candidates): Change type to hash_table. Update dependent calls and types. * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher in tree-flow.h. (int_tree_map_hash): Likewise. * tree-ssa-dom.c (htab_t avail_exprs): Change type to hash_table. Update dependent calls and types. * tree-ssa-live.c (var_map_base_init::tree_to_index): Change type to hash_table. Update dependent calls and types. * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab): Change type to hash_table. Update dependent calls and types. * tree-ssa-phiopt.c (seen_ssa_names): Change type to hash_table. Update dependent calls and types. * tree-ssa-strlen.c (decl_to_stridxlist_htab): Change type to hash_table. Update dependent calls and types. * tree-ssa-uncprop.c (equiv): Change type to hash_table. Update dependent calls and types. From-SVN: r198329
2013-04-26Daily bump.GCC Administrator1-1/+1
From-SVN: r198328
2013-04-26* de.po, sv.po, vi.po: Update.Joseph Myers4-8316/+8082
From-SVN: r198323
2013-04-25re PR rtl-optimization/57003 (gcc breaks -O2 optimization with Wine(64) - ↵Jakub Jelinek4-0/+73
links/info/bisect of commits included) PR rtl-optimization/57003 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg, call note_stores with kill_clobbered_value callback again after killing regs_invalidated_by_call. * gcc.target/i386/pr57003.c: New test. From-SVN: r198320
2013-04-25PR 57028 Bootstrap regression wrt zlib.Janne Blomqvist2-1/+9
2013-04-25 Janne Blomqvist <jb@gcc.gnu.org> PR bootstrap/57028 * Make-lang.in (f951): Link in ZLIB. (CFLAGS-fortran/module.o): Add zlib include directory. From-SVN: r198318
2013-04-25[AArch64] Describe the 'BSL' RTL pattern more accurately.James Greenhalgh3-18/+38
gcc/ * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL. (aarch64_simd_bsl<mode>): Likewise. * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL. From-SVN: r198316
2013-04-25re PR c++/57064 ([clarification requested] Which overload with ref-qualifier ↵Jason Merrill1-0/+14
should be called?) PR c++/57064 * g++.dg/cpp0x/ref-qual9.C: New. From-SVN: r198311
2013-04-25re PR c++/56859 (alignas() fails in template)Jason Merrill3-14/+24
PR c++/56859 * typeck.c (cxx_alignas_expr): Handle value-dependence properly. From-SVN: r198310
2013-04-25re PR c++/50261 ([C++0x] ICE on brace-initialize an array member)Jason Merrill3-1/+40
PR c++/50261 * init.c (perform_member_init): Call reshape_init. From-SVN: r198309