aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
AgeCommit message (Collapse)AuthorFilesLines
2008-03-20ms format support for mingw.Kai Tietz1-0/+24
for gcc: * c-format.c (replace_format_name_to_system_name): New. (cmp_attribs): New. (convert_format_name_to_system_name): New. (decode_format_attr): Add use of convert_format_name_to_system_name. (format_types_orig): Add gnu_ prefix to names. (check_format_info_main): Special treating of \0 escaped names for supporting multi-character format specifiers as I32, I64. (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes. (gnu_target_overrides_format_attributes): New. * c-format.h: Add structure target_ovr_attr to hold system specific formatter names. * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the msformat-c.o file to c_target_objs and cxx_target_objs. * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New. (TARGET_N_FORMAT_TYPES): New. * config/i386/msformat-c.c: New. * config/i386/t-cygming: Add build rule for msformat-c.o. * doc/extend.texi: Add new format names gnu_* and ms_* and further details. * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New. for gcc/testsuite/ * gcc.dg/format/ms_array-1.c: New. * gcc.dg/format/ms_c90-scanf-3.c: New. * gcc.dg/format/ms_c99-strftime-1.c: New. * gcc.dg/format/ms_no-y2k-1.c: New. * gcc.dg/format/ms_attr-1.c: New. * gcc.dg/format/ms_c90-scanf-4.c: New. * gcc.dg/format/ms_c99-strftime-2.c: New. * gcc.dg/format/ms_nonlit-1.c: New. * gcc.dg/format/ms_c90-scanf-5.c: New. * gcc.dg/format/ms_cast-1.c: New. * gcc.dg/format/ms_nonlit-2.c: New. * gcc.dg/format/ms_attr-2.c: New. * gcc.dg/format/ms_c90-strftime-1.c: New. * gcc.dg/format/ms_miss-1.c: New. * gcc.dg/format/ms_nonlit-3.c: New. * gcc.dg/format/ms_attr-3.c: New. * gcc.dg/format/ms_c90-strftime-2.c: New. * gcc.dg/format/ms_miss-2.c: New. * gcc.dg/format/ms_nul-1.c: New. * gcc.dg/format/ms_attr-4.c: New. * gcc.dg/format/ms_c94-printf-1.c: New. * gcc.dg/format/ms_miss-3.c: New. * gcc.dg/format/ms_nul-2.c: New. * gcc.dg/format/ms_attr-7.c: New. * gcc.dg/format/ms_c94-scanf-1.c: New. * gcc.dg/format/ms_miss-4.c: New. * gcc.dg/format/ms_null-1.c: New. * gcc.dg/format/ms_bitfld-1.c: New. * gcc.dg/format/ms_c99-printf-1.c: New. * gcc.dg/format/ms_miss-5.c: New. * gcc.dg/format/ms_plus-1.c: New. * gcc.dg/format/ms_branch-1.c: New. * gcc.dg/format/ms_c99-printf-2.c: New. * gcc.dg/format/ms_miss-6.c: New. * gcc.dg/format/ms_sec-1.c: New. * gcc.dg/format/ms_c90-printf-1.c: New. * gcc.dg/format/ms_c99-printf-3.c: New. * gcc.dg/format/ms_multattr-1.c: New. * gcc.dg/format/ms_unnamed-1.c: New. * gcc.dg/format/ms_c90-printf-2.c: New. * gcc.dg/format/ms_c99-scanf-1.c: New. * gcc.dg/format/ms_multattr-2.c: New. * gcc.dg/format/ms_va-1.c: New. * gcc.dg/format/ms_c90-printf-3.c: New. * gcc.dg/format/ms_c99-scanf-2.c: New. * gcc.dg/format/ms_multattr-3.c: New. * gcc.dg/format/ms_warnll-1.c: New. * gcc.dg/format/ms_c90-scanf-1.c: New. * gcc.dg/format/ms_c99-scanf-3.c: New. * gcc.dg/format/ms_no-exargs-1.c: New. * gcc.dg/format/ms_zero-length-1.c: New. * gcc.dg/format/ms_c90-scanf-2.c: New. * gcc.dg/format/ms_c99-scanf-4.c: New. * gcc.dg/format/ms_no-exargs-2.c: New. * gcc.dg/format/null-1.c: Add gnu style usage for mingw. * gcc.dg/format/miss-1.c: Likewise. * gcc.dg/format/miss-3.c: Likewise. * gcc.dg/format/multattr-2.c: Likewise. * gcc.dg/format/miss-5.c: Likewise. * gcc.dg/format/attr-2.c: Likewise. * gcc.dg/format/attr-4.c: Likewise. * gcc.dg/format/c90-scanf-4.c: Likewise. * gcc.dg/format/c99-printf-3.c: Likewise. * gcc.dg/format/multattr-1.c: Likewise. * gcc.dg/format/miss-4.c: Likewise. * gcc.dg/format/miss-6.c: Likewise. * gcc.dg/format/c90-printf-3.c: Likewise. * gcc.dg/format/attr-1.c: Likewise. * gcc.dg/format/attr-3.c: Likewise. * gcc.dg/format/attr-7.c: Likewise. * gcc.dg/format/format.h: Treat mingw and gnu style. * gcc.dg/format/sys_format.c: New. From-SVN: r133365
2008-03-20invoke.texi (-O3): Add -ftree-vectorize to the list of optimizations turned ↵Ira Rosen1-0/+6
on under -O3. * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of optimizations turned on under -O3. (ftree-vectorize): Add that the flag is turned on with -O3. From-SVN: r133364
2008-03-20regmove.c (try_auto_increment): Fix spelling error in comment.Ben Elliston1-0/+5
* regmove.c (try_auto_increment): Fix spelling error in comment. * final.c (final_scan_insn): Likewise. From-SVN: r133362
2008-03-20re PR target/14552 (compiled trivial vector intrinsic code is inefficient)Uros Bizjak1-3/+12
PR target/14552 * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register allocator preferences for "y" and "r" class registers. ("*mov<mode>_internal"): Ditto. ("*movv2sf_internal_rex64"): Ditto. ("*movv2sf_internal"): Ditto. testsuite/ChangeLog: PR target/14552 * gcc.target/i386/pr14552.c: New test. From-SVN: r133354
2008-03-19re PR middle-end/35616 (Incorrect code while O2 compling)Michael Matz1-0/+6
PR middle-end/35616 * calls.c (expand_call): Check overlap of arguments with call address for sibcalls. * gcc.dg/pr35616.c: New test. From-SVN: r133348
2008-03-19re PR target/35496 (test failures between revs. 132950 and 132974)Uros Bizjak1-4/+11
PR target/35496 * stor-layout.c (update_alignment_for_field): Set minimum alignment of the underlying type of a MS bitfield layout to the natural alignment of the type. From-SVN: r133343
2008-03-19re PR other/35094 (RTL dump file letters hosed and partly undocumented)Jan Hubicka1-23/+119
* gcc.dg/20050811-2.c: Update dumping flags. * gcc.dg/sms-2.c: Update dumping flags. * gcc.dg/var-expand1.c: Update dumping flags. * gcc.dg/var-expand3.c: Update dumping flags. * gcc.dg/pr30957-1.c: Update dumping flags. * gcc.dg/20050811-1.c: Update dumping flags. * gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail. * gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail. PR other/35094 * toplev.c (decode_d_option): Handle all CPP flags. * tree-vrp.c: Update tree_pass descriptors. * regrename.c: Update tree_pass descriptors. * fwprop.c: Update tree_pass descriptors. * doc/invoke.texi: Remove documentation of dropped -d? flags. * tree-into-ssa.c: Update tree_pass descriptors. * tree-dump.c: Update tree_pass descriptors. * tree-complex.c: Update tree_pass descriptors. * tree-dump.h: Update tree_pass descriptors. * see.c: Update tree_pass descriptors. * cgraphbuild.c: Update tree_pass descriptors. * tracer.c: Update tree_pass descriptors. * tree-loop-distribution.c: Update tree_pass descriptors. * cgraph.c: Update tree_pass descriptors. * postreload-gcse.c: Update tree_pass descriptors. * postreload.c: Update tree_pass descriptors. * tree-ssa-loop-ch.c: Update tree_pass descriptors. * tree-tailcall.c: Update tree_pass descriptors. * tree-pass.h (tree_opt_pass): Rename to ... (opt_pass) ... this one; add "type" field and remove letter field. (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New. (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes, all_lowering_passes): Update declaration. * ipa-cp.c: Update tree_pass descriptors. * final.c: Update tree_pass descriptors. * omp-low.c: Update tree_pass descriptors. * tree-ssa-dse.c: Update tree_pass descriptors. * ipa-reference.c: Update tree_pass descriptors. * tree-ssa-uncprop.c: Update tree_pass descriptors. * auto-inc-dec.c: Update tree_pass descriptors. * reorg.c: Update tree_pass descriptors. * cgraphunit.c: Update tree_pass descriptors. * tree-ssa-copyrename.c: Update tree_pass descriptors. * tree-ssa-ccp.c: Update tree_pass descriptors. * df-core.c: Update tree_pass descriptors. * mode-switching.c: Update tree_pass descriptors. * tree-nomudflap.c: Update tree_pass descriptors. * modulo-sched.c: Update tree_pass descriptors. * ipa-pure-const.c: Update tree_pass descriptors. * cse.c: Update tree_pass descriptors. * web.c: Update tree_pass descriptors. * tree-stdarg.c: Update tree_pass descriptors. * tree-ssa-math-opts.c: Update tree_pass descriptors. * tree-ssa-dom.c: Update tree_pass descriptors. * tree-nrv.c: Update tree_pass descriptors. * tree-ssa-alias.c: Update tree_pass descriptors. * loop-init.c: Update tree_pass descriptors. * gimple-low.c: Update tree_pass descriptors. * ipa-inline.c: Update tree_pass descriptors. * tree-ssa-sink.c: Update tree_pass descriptors. * global.c: Update tree_pass descriptors. * ifcvt.c: Update tree_pass descriptors. * jump.c: Update tree_pass descriptors. * predict.c: Update tree_pass descriptors. * tree-ssa-loop.c: Update tree_pass descriptors. * recog.c: Update tree_pass descriptors. * dse.c: Update tree_pass descriptors. * tree-ssa-ifcombine.c: Update tree_pass descriptors. * tree-eh.c: Update tree_pass descriptors. * regmove.c: Update tree_pass descriptors. * local-alloc.c * function.c: Update tree_pass descriptors. * tree-vectorizer.c: Update tree_pass descriptors. * gcse.c: Update tree_pass descriptors. * ipa-type-escape.c: Update tree_pass descriptors. * tree-if-conv.c: Update tree_pass descriptors. * init-regs.c: Update tree_pass descriptors. * ipa.c: Update tree_pass descriptors. * tree-ssa-phiopt.c: Update tree_pass descriptors. * rtl-factoring.c: Update tree_pass descriptors. * lower-subreg.c: Update tree_pass descriptors. * bt-load.c: Update tree_pass descriptors. * tree-dfa.c: Update tree_pass descriptors. * except.c: Update tree_pass descriptors. * emit-rtl.c: Update tree_pass descriptors. * cfgexpand.c: Update tree_pass descriptors. * tree-cfgcleanup.c: Update tree_pass descriptors. * cfgcleanup.c: Update tree_pass descriptors. * tree-ssa-pre.c: Update tree_pass descriptors. * tree-sra.c: Update tree_pass descriptors. * tree-mudflap.c: Update tree_pass descriptors. * tree-ssa-copy.c: Update tree_pass descriptors. * cfglayout.c: Update tree_pass descriptors. * tree-ssa-forwprop.c: Update tree_pass descriptors. * tree-ssa-dce.c: Update tree_pass descriptors. * tree-ssa.c: Update tree_pass descriptors. * regclass.c: Update tree_pass descriptors. * integrate.c: Update tree_pass descriptors. * tree-optimize.c: Update tree_pass descriptors. * tree-ssa-phiprop.c: Update tree_pass descriptors. * tree-object-size.c: Update tree_pass descriptors. * combine.c: Update tree_pass descriptors. * tree-outof-ssa.c: Update tree_pass descriptors. * bb-reorder.c: Update tree_pass descriptors. * stack-ptr-mod.c: Update tree_pass descriptors. * var-tracking.c: Update tree_pass descriptors. * tree-profile.c: Update tree_pass descriptors. * tree-vect-generic.c: Update tree_pass descriptors. * reg-stack.c: Update tree_pass descriptors. * sched-rgn.c: Update tree_pass descriptors. * tree-ssa-structalias.c: Update tree_pass descriptors. * tree-cfg.c: Update tree_pass descriptors. * passes.c (current_pass): Update declaration. (finish_optimization_passes): Update. (all_passes, all_ipa_passes, all_lowering_passes): Update declaration. (register_one_dump_file, register_dump_files_1, next_pass_1): Update arguments. (init_optimization_passes): Update handling of new types. (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update. * ipa-struct-reorg.c: Update tree_pass descriptors. * tree-ssa-reassoc.c: Update tree_pass descriptors. * combine-stack-adj.c: Update tree_pass descriptors. * cfgrtl.c: Update tree_pass descriptors. * dce.c: Update tree_pass descriptors. * tree-ssanames.c: Update tree_pass descriptors. From-SVN: r133342
2008-03-19re PR tree-optimization/35609 ("is used uninitialized in this function" ↵Richard Guenther1-0/+9
should be may warning) 2008-03-19 Richard Guenther <rguenther@suse.de> PR middle-end/35609 * tree-ssa.c (always_executed): New global flag. (warn_uninitialized_var): If !always_executed warn with "maybe" instead of "is". (execute_early_warn_uninitialized): Compute post-dominators. Initialize always_executed before processing each basic block. * gcc.dg/testsuite/uninit-15.c: New testcase. * gcc.dg/testsuite/uninit-16.c: Likewise. From-SVN: r133341
2008-03-18re PR target/35504 (incorrect code generated on i386 for C++ multiple ↵Mikulas Patocka1-10/+16
inheritance, large return structures and regparm or fastcall calling conventions) PR target/35504 * config/i386/i386.c (x86_this_parameter): Calculate correct location of "this" pointer when "regparm = N" or "fastcall" is in effect. testsuite/ChangeLog PR target/35504 * g++.dg/other/pr35504.C: New test. From-SVN: r133324
2008-03-18texinfo.tex: Update to version 2008-03-17.10.Ralf Wildenhues1-0/+4
gcc/ * doc/include/texinfo.tex: Update to version 2008-03-17.10. From-SVN: r133320
2008-03-18expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations is true.Paolo Bonzini1-0/+13
2008-03-18 Paolo Bonzini <bonzini@gnu.org> * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations is true. (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore. (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations is true. Add "&& !ignore" condition to reduce_bit_field. Modify target after ignore has been set, and move there also the commputation of subtarget and original_target. * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. (LANG_HOOKS_INITIALIZER): Remove it. * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations. ada: 2008-03-18 Paolo Bonzini <bonzini@gnu.org> * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. cp: 2008-03-18 Paolo Bonzini <bonzini@gnu.org> * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete. From-SVN: r133316
2008-03-18tree-ssa-sccvn.c (visit_reference_op_load): If the lookup found an ↵Richard Guenther1-0/+13
expression with constants, note that in the VN for the lhs. 2008-03-18 Richard Guenther <rguenther@suse.de> * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup found an expression with constants, note that in the VN for the lhs. * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and fold them to constants if possible. Run cleanup_cfg if done so. (execute_pre): Return todo. (do_pre): Likewise. (execute_fre): Likewise. * tree-ssa-forwprop.c (can_propagate_from): Allow propagation of constants. (get_prop_source_stmt): Look through pointer conversions. * gcc.dg/tree-ssa/forwprop-4.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-16.c: Likewise. From-SVN: r133315
2008-03-18tree-pretty-print.c: Include predict.h.Jan Hubicka1-0/+46
* tree-pretty-print.c: Include predict.h. (dump_generic_node): Dump predictor. * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update. * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR. * gimple-low.c (lower_stmt): Likewise. * expr.c (expand_expr_real): Likewise. * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove them. (build_predict_expr, build_predict_expr): New. * predict.h (predictor_name, build_predict_expr): Update. * c-typeck.c (c_finish_bc_stmt): Add prediction. * gimplify.c (gimplify_expr): Add PREDICT_EXPR. * predict.def (PRED_CONTINUE): Update hitrate. * tree.def (PREDICT_EXPR): Define. * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR; do not handle BIND_EXPR. * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free. * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid. * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no operands. From-SVN: r133313
2008-03-18* gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.Michael Matz1-0/+4
From-SVN: r133312
2008-03-18tree-gimple.h (is_gimple_invariant_address): Declare.Richard Guenther1-0/+13
2008-03-18 Richard Guenther <rguenther@suse.de> * tree-gimple.h (is_gimple_invariant_address): Declare. (is_gimple_constant): Likewise. * tree-gimple.c (is_gimple_constant): New function. (is_gimple_invariant_address): Likewise. (is_gimple_min_invariant): Implement in terms of is_gimple_constant and is_gimple_invariant_address. * tree-ssa-loop-niter.c (expand_simple_operations): Revert previous change. * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not an addressable base. * gcc.dg/tree-ssa/loop-19.c: Revert previous change. From-SVN: r133311
2008-03-18re PR middle-end/35611 (FAIL: libgomp.c/omp-nested-1.c execution test)Jakub Jelinek1-0/+6
PR middle-end/35611 * gimplify.c (gimplify_expr): Gimplify second operand of OMP_ATOMIC_LOAD. * testsuite/libgomp.c/atomic-4.c: New test. From-SVN: r133309
2008-03-17re PR tree-optimization/19637 (Missed VRP and FRE opportunities in the ↵Richard Guenther1-0/+9
presence of casts) 2008-03-17 Richard Guenther <rguenther@suse.de> PR tree-optimization/19637 * fold-const.c (fold_unary): Remove restrictions of removing intermediate pointer-conversions (P2)(P1)P0. * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from conversion to void pointer. (get_maxval_strlen): Handle addresses of the form &(*p)[0]. * g++.dg/tree-ssa/pr19637.C: New testcase. From-SVN: r133291
2008-03-16re PR debug/31510 (FAIL: libgomp.fortran/threadprivate[23].f90 -O3 -g)James E Wilson1-0/+6
PR debug/31510 * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for emulated thread local variables. From-SVN: r133274
2008-03-16re PR tree-optimization/35607 (IVOPTs produces invalid gimple)Richard Guenther1-0/+6
2008-03-16 Richard Guenther <rguenther@suse.de> PR middle-end/35607 * tree-ssa-loop-niter.c (expand_simple_operations): Do not expand TREE_INVARIANT operations that are not gimple invariant. * gcc.c-torture/compile/pr35607.c: New testcase. * gcc.dg/tree-ssa/loop-19.c: Use -O2 to avoid vectorization. From-SVN: r133273
2008-03-16extend.texi (Alignment): Say that the ABI controls the __alignof__ for ↵Hans-Peter Nilsson1-0/+6
non-strict-alignment targets... * doc/extend.texi (Alignment): Say that the ABI controls the __alignof__ for non-strict-alignment targets rather than being a recommendation. From-SVN: r133271
2008-03-16arm.c (arm_unwind_emit): Suppress unused unwinding annotations.Paul Brook1-0/+6
2008-03-15 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding annotations. (arm_output_fn_unwind): Mark functions that can not be unwound. From-SVN: r133266
2008-03-15arm.c (arm_rtx_costs_1): Add costs for ARMv6 value extension instructions.Paul Brook1-0/+5
2008-03-15 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value extension instructions. From-SVN: r133260
2008-03-15tree-ssa-ccp.c (ccp_fold): Also read from constant values and fold constant ↵Richard Guenther1-0/+9
aggregate refs. 2008-03-15 Richard Guenther <rguenther@suse.de> * tree-ssa-ccp.c (ccp_fold): Also read from constant values and fold constant aggregate refs. (fold_const_aggregate_ref): Handle string constants and constructors in ARRAY_REFs. Handle INDIRECT_REF. (evaluate_stmt): Simplify now that ccp_fold folds constant aggregate refs. * gcc.dg/tree-ssa/ssa-ccp-16.c: New testcase. From-SVN: r133257
2008-03-15arm.md (insv): Use gen_insv_t2 and gen_insv_zero.Paul Brook1-0/+6
2008-03-15 Paul Brook <paul@codesourcery.com> * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero. (extzv): Use gen_extzv_t2. (insv_t2, insv_zero, extv, extzv_t2): New patterns. From-SVN: r133254
2008-03-15tree-ssa-ccp.c (get_symbol_constant_value): Export.Richard Guenther1-0/+10
2008-03-15 Richard Guenther <rguenther@suse.de> * tree-ssa-ccp.c (get_symbol_constant_value): Export. (fold_const_aggregate_ref): Likewise. (get_value): Return NULL if we don't have any values. (ccp_finalize): Set const_val to NULL after freeing it. * tree-flow.h (get_symbol_constant_value): Declare. (fold_const_aggregate_ref): Likewise. * tree-ssa-sccvn.c (try_to_simplify): Use them. * gcc.dg/pr23911.c: Adjust testcase. * gcc.dg/tree-ssa/pr14841.c: Likewise. * gcc.dg/tree-ssa/20030922-2.c: Likewise. From-SVN: r133251
2008-03-15re PR middle-end/35593 (spurious warning "array subscript is below array ↵Richard Guenther1-0/+11
bounds" with void* function argument plus -O2) 2008-03-15 Richard Guenther <rguenther@suse.de> PR middle-end/35593 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure to not produce negative array indices if not allowed. Add parameter to indicate that. (maybe_fold_offset_to_component_ref): Allow negative array indices only for the first member of a structure. (maybe_fold_offset_to_reference): Allow negative array indices. (maybe_fold_stmt_addition): Likewise. * g++.dg/warn/Warray-bounds-3.C: New testcase. From-SVN: r133249
2008-03-15avr.c (avr_arch_types): Add avr6 entry.Bjoern Haase1-0/+36
* gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry. (avr_arch): Add ARCH_AVR6. (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry. (initial_elimination_offset): Initialize and use 'avr_pc_size' instead of fixed value 2. (print_operand_address): Use gs() asm specifier instead of pm(). (avr_assemble_integer): (Ditto.). (avr_output_addr_vec_elt): (Ditto.). (print_operand): Handle "!" code. * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__. (AVR_HAVE_EIJMP_EICALL): Define. (AVR_3_BYTE_PC): Redefine. (AVR_2_BYTE_PC): (Ditto.). (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code. (LINK_SPEC): Add atmega2560 and atmega2561. (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 (crtm2561.o). * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall for 3 byte PC devices. (call_value_insn): (Ditto.). (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices. (indirect_jump): Use only for for 2 byte PC devices. (*tablejump): (Ditto.). (*indirect_jump_avr6): Add insn. (*tablejump_rjmp): Don't use for 3 byte PC devices. * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp instead of ijmp for 3 byte PC devices. (__tablejump2__): (Ditto.). * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture. (MULITLIB_DIRNAMES): (Ditto.). (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list. Co-Authored-By: Anatoly Sokolov <aesok@post.ru> From-SVN: r133248
2008-03-15mmx.md ("sse2_umulv1siv2di3"): Rename from "sse2_umulsidi3".Uros Bizjak1-0/+17
* config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from "sse2_umulsidi3". Use V1DI mode for operand 0. ("mmx_psadbw"): Use V1DI mode for operand 0. * config/i386/i386-modes.def (V1SI): New vector mode. * config/i386/i386.c (struct builtin_description) [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3. (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi. (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si. (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use v1di_ftype_v8qi_v8qi type. [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type. From-SVN: r133243
2008-03-15re PR middle-end/35595 (build broke in newlib erf_lgamma.c for cris-elf)Richard Guenther1-0/+6
PR middle-end/35595 * tree-ssa-pre.c (bitmap_find_leader): Handle expression being a PHI_NODE. From-SVN: r133237
2008-03-15invoke.texi (Option Summary, [...]): Document -mserialize-volatile and ↵Bob Wilson1-0/+10
-mno-serialize-volatile Xtensa options. * doc/invoke.texi (Option Summary, Xtensa Options): Document -mserialize-volatile and -mno-serialize-volatile Xtensa options. * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions unless TARGET_SERIALIZE_VOLATILE is enabled. * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise. * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE. * config/xtensa/xtensa.opt (mserialize_volatile): New option. From-SVN: r133234
2008-03-14re PR tree-optimization/34172 (Missed store ccp optimization)Richard Guenther1-0/+17
2008-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/34172 * tree-flow.h (refs_may_alias_p): Declare. (get_single_def_stmt): Likewise. (get_single_def_stmt_from_phi): Likewise. (get_single_def_stmt_with_phi): Likewise. * tree-dfa.c (refs_may_alias_p): New function. (get_single_def_stmt): Likewise. (get_single_def_stmt_from_phi): Likewise. (get_single_def_stmt_with_phi): Likewise. * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function. (vn_reference_lookup_1): New helper function. (vn_reference_lookup): Walk the virtual use-def chain to continue searching for a match if the def does not alias the reference we are looking for. * gcc.dg/tree-ssa/ssa-fre-11.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. * gcc.dg/tree-ssa/20031106-4.c: Remove XFAIL. From-SVN: r133222
2008-03-14install.texi (Binaries): Remove UCLA archive.David Edelsohn1-0/+5
* doc/install.texi (Binaries): Remove UCLA archive. Add HVCC archive and Perzl. Update The Written Word listing. From-SVN: r133219
2008-03-14re PR tree-optimization/34043 (Missed optimization causing extra loads and ↵Richard Guenther1-0/+42
stores when using x86_64 builtin function together with aggregate types.) 2008-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/34043 PR tree-optimization/33989 * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion when doing FRE. (bitmap_find_leader): Use extra argument to verify dominance relationship inside a basic-block. (can_PRE_operation): Add VIEW_CONVERT_EXPR. (find_leader_in_sets): Adjust. (create_component_ref_by_pieces): Take extra argument for dominance check, handle lookup failures. (find_or_generate_expression): Likewise. (create_expression_by_pieces): Likewise. (insert_into_preds_of_block): Adjust. (create_value_expr_from): If asked for, verify all operands are in the blocks AVAIL_OUT set. (make_values_for_stmt): Check for SSA_NAMEs that are life over an abnormal edge. (compute_avail): Remove such check. (do_SCCVN_insertion): New function. (eliminate): If we do not find a leader suitable for replacement insert a replacement expression from SCCVN if available. * tree-ssa-sccvn.h (run_scc_vn): Update prototype. (struct vn_ssa_aux): Add needs_insertion flag. * tree-ssa-sccvn.c (may_insert): New global flag. (copy_reference_ops_from_ref): Value-number union member access based on its size, not type and member if insertion is allowed. (visit_reference_op_load): For a weak match from union type punning lookup a view-converted value and insert a SSA_NAME for that value if that is not found. (visit_use): Make dumps shorter. Do not disallow value numbering SSA_NAMEs that are life over an abnormal edge to constants. (free_scc_vn): Release inserted SSA_NAMEs. (run_scc_vn): New flag to specify whether insertion is allowed. Process SSA_NAMEs in forward order. * tree-ssa-loop-im.c (for_each_index): Handle invariant ADDR_EXPRs inside VIEW_CONVERT_EXPR. * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to pointer type to/from integral types that do not change the precision to regular conversions. * gcc.dg/tree-ssa/ssa-fre-7.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-10.c: Likewise. * gcc.dg/tree-ssa/ssa-pre-17.c: Likewise. From-SVN: r133218
2008-03-13extend.texi (X86 Built-in Functions): Missed fragment from my previous ↵Uros Bizjak1-1/+2
commit commit. * doc/extend.texi (X86 Built-in Functions): Missed fragment from my previous commit commit. From-SVN: r133178
2008-03-13extend.texi (X86 Built-in Functions): Fix the mode of input arguments and ↵Uros Bizjak1-0/+8
the mode of return value. * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128, __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of input arguments and the mode of return value. From-SVN: r133177
2008-03-13[multiple changes]Alon Dayan1-0/+7
2008-02-19 Alon Dayan <alond@il.ibm.com> Olga Golovanevsky <olga@il.ibm.com> PR tree-optimization/35041 * gcc.dg/struct/wo_prof_double_malloc.c: New test. 2008-03-13 Alon Dayan <alond@il.ibm.com> Olga Golovanevsky <olga@il.ibm.com> PR tree-optimization/35041 * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option to locate the right position in a statement. Co-Authored-By: Olga Golovanevsky <olga@il.ibm.com> From-SVN: r133171
2008-03-13re PR target/34000 (GCC pedwarns about use of static inline functions from ↵Uros Bizjak1-0/+16
system headers in extern inline functions) PR target/34000 PR target/35553 * config/i386/xmmintrin.h: Change all static inline functions to extern inline and add __gnu_inline__ attribute. * config/i386/bmintrin.h: Ditto. * config/i386/smmintrin.h: Ditto. * config/i386/tmmintrin.h: Ditto. * config/i386/mmintrin-common.h: Ditto. * config/i386/ammintrin.h: Ditto. * config/i386/emmintrin.h: Ditto. * config/i386/pmmintrin.h: Ditto. * config/i386/mmintrin.h: Ditto. * config/i386/mm3dnow.h: Ditto. testsuite/ChangeLog: PR target/34000 PR target/35553 * g++.dg/other/i386-3.C: New test. * gcc.target/i386/sse-13.c: Redefine extern instead of static. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/mmx-1.c: Ditto. * gcc.target/i386/mmx-2.c: Ditto. * gcc.target/i386/3dnow-1.c: Ditto. * gcc.target/i386/3dnow-2.c: Ditto. * gcc.target/i386/3dnowA-1.c: Ditto. * gcc.target/i386/3dnowA-2.c: Ditto. From-SVN: r133169
2008-03-13Revert my previous commit.Uros Bizjak1-16/+0
From-SVN: r133167
2008-03-13re PR c++/35553 (-fkeep-inline-functions and -O errors out in SSE headers)Uros Bizjak1-0/+16
PR target/35553 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define __SSE_USE_INLINED_FUNC__ when using -flag-keep-inline-functions together with optimization. * config/i386/xmmintrin.h: Use __SSE_USE_INLINED_FUNC__ instead of __OPTIMIZE__ to choose between inlined intrinsic SSE function having immediate arguments and its equivalent macro definition. * config/i386/bmintrin.h: Ditto. * config/i386/smmintrin.h: Ditto. * config/i386/tmmintrin.h: Ditto. * config/i386/mmintrin-common.h: Ditto. * config/i386/ammintrin.h: Ditto. * config/i386/emmintrin.h: Ditto. testsuite/ChangeLog: PR target/35553 * g++.dg/other/i386-3.C: New test. From-SVN: r133164
2008-03-13re PR middle-end/35185 (ICE using openmp with g++-4.2)Jakub Jelinek1-3/+9
PR middle-end/35185 * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed. (lower_omp_2): New function. (lower_omp_1, lower_omp): Rewritten. * testsuite/libgomp.c++/pr35185.C: New test. From-SVN: r133162
2008-03-13re PR target/35054 (No documentation of #pragma push_macro("macro_name"))Danny Smith1-0/+8
PR 35054 * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32" with the phrase "Microsoft Windows compilers". (Push/Pop Macro Pragmas): New subsection. Document #pragma push_macro and pragma pop_macro. From-SVN: r133161
2008-03-13arm.c (output_move_double): Prefer LDRD to LDM.Paul Brook1-0/+4
2008-03-12 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/arm.c (output_move_double): Prefer LDRD to LDM. From-SVN: r133160
2008-03-12thumb2.md: Extend peephole to cover 3-arg subs.Paul Brook1-0/+10
2008-03-12 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/thumb2.md: Extend peephole to cover 3-arg subs. (thumb2_alusi3_short): Exclude PLUS and MINUS. (thumb2_addsi_shortim): Rename ... (thumb2_addsi_short): ... to this. Allow register operands. (thumb2_subsi_short): New pattern. (thumb2_one_cmplsi2_short, thumb2_negsi2_short): New patterns and peepholes. From-SVN: r133152
2008-03-12arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.Paul Brook1-0/+5
2008-03-12 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2. From-SVN: r133151
2008-03-12i386.md (int_cond): New code iterator.Uros Bizjak1-0/+13
* config/i386/i386.md (int_cond): New code iterator. (fp_cond): Ditto. ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle and sleu expanders usign int_cond code iterator. ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge, sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator. ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble and bleu expanders usign int_cond code iterator. ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge, bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator. From-SVN: r133150
2008-03-12arm.c (use_return_insn): Use offsets->saved_regs_mask instead of ↵Paul Brook1-0/+19
{arm,thumb}_compute_save_reg_mask. 2008-03-12 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask instead of {arm,thumb}_compute_save_reg_mask. (output_return_instruction): Ditto. (thumb_unexpanded_epilogue): Ditto. (thumb1_expand_prologue): Ditto. (thumb1_output_function_prologue): Ditto. (arm_set_return_address): Ditto. (thumb_set_return_address): Ditto. (arm_get_frame_offsets): Set offsets->saved_regs_mask. Push extra regs to achieve stack alignment. (thumb1_compute_save_reg_mask): Fix compiler warning. (arm_output_epilogue): Use offsets->saved_regs_mask. Adjust stack pointer by poping call clobered registers. (arm_expand_prologue): Use offsets->saved_regs_mask. Adjust stack pointer by pushing extra registers. * gcc/config/arm.h (arm_stack_offsets): Add saved_regs_mask. From-SVN: r133148
2008-03-12re PR rtl-optimization/34522 (inefficient code for long long multiply when ↵Paolo Bonzini1-0/+6
only low bits are needed) 2008-03-12 Paolo Bonzini <bonzini@gnu.org> PR tree-opt/35422 * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing conversion to the operands of a multiplication. testsuite: 2008-03-12 Paolo Bonzini <bonzini@gnu.org> PR tree-opt/35422 * gcc.dg/vect/slp-7.c: Change target keywords required for vectorizing third loop. * gcc.target/i386/pr35422.c: New. From-SVN: r133144
2008-03-12Makefile.in (OBJS-common): Add tree-ssa-phiprop.oRichard Guenther1-0/+9
2008-03-12 Richard Guenther <rguenther@suse.de> * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o. * timevar.def (TV_TREE_PHIPROP): Add. * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added pass description. Use TV_TREE_PHIPROP. * tree-ssa-forwprop.c: Remove phiprop code. From-SVN: r133140
2008-03-12re PR middle-end/35549 (Invalid use of copy-in/out for shared vars in nested ↵Jakub Jelinek1-0/+11
parallels) PR middle-end/35549 * omp-low.c (maybe_lookup_decl): Constify first argument. (use_pointer_for_field): Change last argument from bool to omp_context *. Disallow shared copy-in/out in nested parallel if decl is shared in outer parallel too. (build_outer_var_ref, scan_sharing_clauses, lower_rec_input_clauses, lower_copyprivate_clauses, lower_send_clauses, lower_send_shared_vars): Adjust callers. * testsuite/libgomp.c/pr35549.c: New test. From-SVN: r133136
2008-03-12tree-vectorizer.c (free_stmt_vec_info): New function.Victor Kaplansky1-0/+17
2008-03-12 Victor Kaplansky <victork@il.ibm.com> Ira Rosen <irar@il.ibm.com> * tree-vectorizer.c (free_stmt_vec_info): New function. (destroy_loop_vec_info): Move code to free_stmt_vec_info(). Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES.. * tree-vectorizer.h (free_stmt_vec_info): Declare. * tree-vect-transform.c (vectorizable_conversion): Free vec_oprnds0 if it was allocated. (vect_permute_store_chain): Remove unused VECs. (vectorizable_store): Free VECs that are allocated in the.. function. (vect_transform_strided_load, vectorizable_load): Likewise. (vect_remove_stores): Simplify the code. (vect_transform_loop): Move code to vect_remove_stores(). Call vect_remove_stores() and free_stmt_vec_info(). Co-Authored-By: Ira Rosen <irar@il.ibm.com> From-SVN: r133134