| 2008-12-31 Uros Bizjak <ubizjak@gmail.com> |
| |
| * sched-deps.c (sched_analyze_2) [UNSPEC_VOLATILE]: Flush pending |
| memory loads and stores. |
| |
| 2008-12-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38505 |
| * tree-ssa-ccp.c (may_propagate_address_into_dereference): Return |
| false if ADDR's operand has incomplete type. |
| |
| Revert: |
| 2008-12-15 Jakub Jelinek <jakub@redhat.com> |
| PR middle-end/38505 |
| * tree-ssa.c (useless_type_conversion_p_1): Return |
| false if inner_type is incomplete and outer_type is complete. |
| |
| 2008-12-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38676 |
| * gimplify.c (gimple_regimplify_operands): For GIMPLE_SWITCH |
| only regimplify switch index. |
| |
| 2008-12-30 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38645 |
| * tree-ssa-ccp.c (fold_gimple_assign): Use the correct pointer |
| type. |
| * tree-ssa-dom.c (cprop_operand): Simplify. Do not propagate |
| volatileness changing operands. |
| |
| 2008-12-30 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * tree-cfg.c (verify_eh_throw_stmt_node): Return nonzero, |
| to visit all EH statement and fix EH checking. |
| |
| 2008-12-31 Seongbae Park <seongbae.park@gmail.com> |
| |
| Revert: |
| 2008-12-29 Seongbae Park <seongbae.park@gmail.com> |
| * tree-profile.c (tree_init_ic_make_global_vars): Make static |
| variables TLS. |
| |
| 2008-12-30 Andrew Pinski <pinskia@gmail.com> |
| |
| PR middle-end/38661 |
| * tree-switch-conversion.c (build_constructors): Test for wrapping of |
| pos case. |
| |
| 2008-12-30 Steven Bosscher <steven@gcc.gnu.org> |
| |
| PR middle-end/38584 |
| * ipa-inline.c (compute_inline_parameters): When not optimizing, |
| don't compute the inline parameters, just set them to 0 instead. |
| |
| 2008-12-30 Paolo Bonzini <bonzini@gnu.org> |
| |
| PR tree-optimization/38572 |
| * tree-vrp.c (vrp_visit_phi_node): Look out for invalid ranges |
| and change them to VARYING. |
| |
| 2008-12-30 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/38564 |
| * fold-const.c (fold_comparison): Use the correct result type. |
| |
| 2008-12-30 Dorit Nuzman <dorit@il.ibm.com> |
| Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/38529 |
| * tree-vect-transform (vect_transform_stmt): Handle inner-loop stmts |
| whose DEF is used in the loop-nest that is being vectorized, but |
| outside the immediately enclosing loop. |
| |
| 2008-12-29 Seongbae Park <seongbae.park@gmail.com> |
| |
| * tree-profile.c (tree_init_ic_make_global_vars): Make static |
| variables TLS. |
| |
| 2008-12-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/36191 |
| * tree-complex.c (expand_complex_libcall): Call |
| maybe_clean_or_replace_eh_stmt and gimple_purge_dead_eh_edges |
| instead of passing true as 3rd argument to gsi_replace. |
| |
| 2008-12-28 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/38652 |
| * dse.c: Include target.h. |
| * Makefile.in (dse.o): Depend on $(TARGET_H). |
| |
| 2008-12-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR driver/38381 |
| * gcc.c (process_command): Accept also -b with configuration name |
| in the next argument. |
| * doc/invoke.texi (-b): Document that no hyphen is required if |
| configuration name is in the next argument after -b. |
| |
| 2008-12-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38641 |
| * gimple-pretty-print.c (dump_binary_rhs): Print |
| VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, |
| VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, VEC_PACK_FIX_TRUNC_EXPR, |
| VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR |
| VEC_INTERLEAVE_HIGH_EXPR and VEC_INTERLEAVE_LOW_EXPR similarly |
| to COMPLEX_EXPR, MIN_EXPR and MAX_EXPR. |
| |
| PR middle-end/38633 |
| * tree-cfg.c (replace_block_vars_by_duplicates): Only call |
| replace_by_duplicate_decl for VAR_DECLs or CONST_DECLs. |
| |
| 2008-12-24 Kazu Hirata <kazu@codesourcery.com> |
| |
| * Makefile.in (GTFILES): Add $(srcdir)/expr.h. |
| * expr.h: Fix the declaration of block_clear_fn. |
| |
| 2008-12-23 Andrew Pinski <pinski@gmail.com> |
| |
| PR middle-end/38590 |
| * fold-const.c (fold_binary): Call fold_convert on arguments to |
| fold_build2 for negative divide optimization. |
| |
| 2008-12-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/31150 |
| * dse.c (struct store_info): Add const_rhs field. |
| (clear_rhs_from_active_local_stores): Clear also const_rhs. |
| (record_store): Try also cselib_expand_value_rtx to get a constant. |
| (find_shift_sequence, get_stored_val): Use const_rhs instead of |
| rhs if worthwhile. |
| * cselib.c (cselib_record_sets): If !cselib_record_memory and |
| there is just one set from read-only MEM, look at REG_EQUAL or |
| REG_EQUIV note. |
| |
| * dse.c (struct store_info): Add redundant_reason field. |
| (record_store): When storing the same constant as has been stored by |
| an earlier store, set redundant_reason field to the earlier store's |
| insn_info_t. Don't delete cannot_delete insns. |
| (find_shift_sequence): Remove read_info argument, add read_mode |
| and require_cst arguments. Return early if require_cst and |
| constant wouldn't be returned. |
| (get_stored_val): New function. |
| (replace_read): Use it. |
| (scan_insn): Put even cannot_delete insns with exactly 1 store |
| into active_local_stores. |
| (dse_step1): Don't delete cannot_delete insns. Remove redundant |
| constant stores if contains_cselib_groups and earlier store storing |
| the same value hasn't been eliminated. |
| (dse_step6): Renamed to dse_step7. New function. |
| (dse_step7): Renamed from dse_step6. |
| (rest_of_handle_dse): Call dse_step6 and dse_step7 at the end. |
| * cselib.c (cselib_expand_value_rtx): Don't wrap CONST_INTs |
| into CONST unless really necessary. Handle SUBREG, unary, |
| ternary, bitfield and compares specially, to be able to simplify |
| operations on constants. |
| (expand_loc): Try to optimize LO_SUM. |
| |
| * dse.c (get_call_args): New function. |
| (scan_insn): Don't handle BUILT_IN_BZERO. For memset, attempt |
| to get call arguments and if successful and both len and val are |
| constants, handle the call as (mem:BLK) (const_int) store. |
| |
| * dse.c (struct store_info): Add is_large bool field, change |
| positions_needed into a union of a bitmask and bitmap + count. |
| (free_store_info): Free bitmap if is_large. |
| (set_usage_bits): Don't look at stores where |
| offset + width >= MAX_OFFSET. |
| (set_position_unneeded, set_all_positions_unneeded, |
| any_positions_needed_p, all_positions_needed_p): New static inline |
| functions. |
| (record_store): Handle BLKmode stores of CONST_INT, if |
| MEM_SIZE is set on the MEM. Use the new positions_needed |
| accessor inlines. |
| (replace_read): Handle reads from BLKmode CONST_INT stores. |
| (check_mem_read_rtx): Use all_positions_needed_p function. |
| (dse_step1): Free large positions_needed bitmaps and clear is_large. |
| |
| * dse.c (struct store_info): Change begin and end types to |
| HOST_WIDE_INT. |
| |
| * dse.c (record_store): Fix check for unused store. |
| |
| * expr.c (block_clear_fn): No longer static. |
| * expr.h (block_clear_fn): Declare. |
| * dse.c (scan_insn): Memset and bzero can just read their arguments. |
| |
| * config/i386/i386.c (expand_setmem_via_rep_stos): Add ORIG_VALUE |
| argument. If ORIG_VALUE is const0_rtx and COUNT is constant, |
| set MEM_SIZE on DESTMEM. |
| (ix86_expand_setmem): Adjust callers. |
| |
| PR target/38488 |
| * expr.h (get_mem_align_offset): New prototype. |
| * emit-rtl.c (get_mem_align_offset): New function. |
| * config/i386/i386.c (expand_movmem_via_rep_mov): Set MEM_SIZE |
| correctly. |
| (expand_constant_movmem_prologue, expand_constant_setmem_prologue): |
| New functions. |
| (ix86_expand_movmem): Optimize if COUNT_EXP |
| is constant, desired_align > align and dst & (desired_align - 1) |
| is computable at compile time. |
| (ix86_expand_setmem): Likewise. |
| |
| * builtins.c (get_memory_rtx): Try to derive MEM_ATTRS from not yet |
| resolved SAVE_EXPR or POINTER_PLUS_EXPR. |
| |
| 2008-12-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/elf.h (ASM_OUTPUT_EXTERNAL): New macro. |
| |
| PR target/34571 |
| * config/alpha/predicates.md (symbolic_operand): Return 1 for a |
| label_ref with an offset. |
| |
| 2008-12-21 Andrew Pinski <pinskia@gmail.com> |
| |
| PR target/38300 |
| * configure: Regenerate. |
| |
| 2008-12-21 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips-dsp.md (mips_lbux): Turn into a define_expand, |
| changing operand 1 to a pmode_register_operand. |
| (mips_lhx, mips_lwx): Likewise. |
| (mips_lbux_<mode>, mips_lhx_<mode>, mips_lwx_<mode>): New patterns. |
| * config/mips/mips.c (mips_prepare_builtin_arg): Get the mode of |
| the value from the argument expression. |
| |
| 2008-12-21 Jan Hubicka <jh@suse.cz> |
| Kai Tietz <kai.tietz@onevision.com> |
| |
| * i386.md (UNSPEC_MS_TO_SYSV_CALL): New constant. |
| (call_1_rex64_ms_sysv, call_value_0_rex64_ms_sysv, |
| call_value_1_rex64_ms_sysv): New patterns. |
| * i386.c (function_arg_ms_64): Pass magical value of -2 as callarg. |
| (ix86_expand_call): Emit extra clobbers for ms->sysv ABI calls. |
| |
| 2008-12-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_pad_noreturn): New static function. |
| (alpha_reorg): Call alpha_pad_noreturn. |
| |
| 2008-12-21 Denis Chertykov <denisc@overta.ru> |
| |
| * config/avr/avr.md ("andsi3"): Fix wrong cc attribute. |
| |
| 2008-12-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/37610 |
| * configure.ac (gcc_cv_as_cfi_advance_working): Fall back to 'no' |
| if readelf is nowhere to be found. |
| * configure: Regenerate. |
| |
| 2008-12-19 Andrew Haley <aph@redhat.com> |
| |
| * builtins.c, tree-ssa-loop-ivopts.c, fixed-value.c: |
| Fix comments. |
| |
| 2008-12-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/38548 |
| * arm/t-linux (LIB1ASMFUNCS): Add _arm_addsubdf3 and _arm_addsubsf3. |
| * arm/lib1funcs.asm (clzsi2): Use RET macro for return instruction. |
| |
| 2008-12-19 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR bootstrap/38578 |
| * arm.c (load_multiple_sequence): Initialize ORDER array. |
| (store_multiple_sequence): Likewise. |
| (output_move_double): Make reg0 unsigned. |
| (arm_output_epilogue): Make amount unsigned. |
| (arm_expand_prologue): Move declaration of dwarf before block |
| statements. |
| |
| 2008-12-19 Steve Ellcey <sje@cup.hp.com> |
| |
| * df-scan.c (df_hard_reg_init): Move declaration of i. |
| |
| 2008-12-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/37739 |
| * config.host: For powerpc*-*-linux* host with 32-bit GCC, |
| use rs6000/x-linux-relax snippet if ld is new enough, |
| otherwise use rs6000/x-linux-O1. |
| * config/rs6000/x-linux-relax: New file. |
| * config/x-cflags-O1: New file. |
| |
| 2008-12-18 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_generate_compare): Condition |
| choice of e500 comparison instructions on flag_finite_math_only && |
| !flag_trapping_math, not flag_unsafe_math_optimizations. |
| * config/rs6000/rs6000.md (abstf2): Condition choice of e500 |
| instructions on flag_finite_math_only && !flag_trapping_math, not |
| flag_unsafe_math_optimizations. |
| (bltgt, sltgt): Disable for TARGET_HARD_FLOAT && !TARGET_FPRS. |
| * config/rs6000/spe.md (cmpsfeq_gpr, tstsfeq_gpr, cmpsfgt_gpr, |
| tstsfgt_gpr, cmpsflt_gpr, tstsflt_gpr, cmpdfeq_gpr, tstdfeq_gpr, |
| cmpdfgt_gpr, tstdfgt_gpr, cmpdflt_gpr, tstdflt_gpr, cmptfeq_gpr, |
| tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr): |
| Condition choice of comparison instructions on |
| flag_finite_math_only && !flag_trapping_math, not |
| flag_unsafe_math_optimizations. |
| |
| 2008-12-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * configure: Regenerate. |
| |
| 2008-12-18 Jan Hubicka <jh@suse.cz> |
| Kai Tietz <kai.tietz@onevision.com> |
| |
| * df-scan.c (persistent_obstack, df_invalidated_by_call): Remove. |
| (df_scan_start_dump, df_get_call_refs, df_hard_reg_init): Rename |
| df_invalidated_by_call to invalidated_by_call_regset. |
| * df.h (df_invalidated_by_call): Remove. |
| * regclass.c (regs_invalidated_by_call_regset, persistent_obstack): |
| New variables. |
| (init_reg_sets_1): Initialize regs_invalidated_by_call_regset. |
| (globalize_reg): Likewise. |
| * df-problems.c (df_rd_local_compute, df_lr_confluence_n, |
| df_byte_lr_alloc): Rename df_invalidated_by_call to |
| invalidated_by_call_regset. |
| * basic-block.h (regs_invalidated_by_call_regset): Declare. |
| |
| 2008-12-18 Jan Hubicka <jh@suse.cz> |
| Kai Tietz <kai.tietz@onevision.com> |
| |
| * ira-cost.c (copy_cost): Lazilly initialize move_cost if needed. |
| |
| 2008-12-18 Jan Hubicka <jh@suse.cz> |
| Kai Tietz <kai.tietz@onevision.com> |
| |
| * i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current |
| function ABI. |
| * i386.c (ix86_call_abi_override): Do not trigger target re-init and |
| do not try to modify call used regs. |
| (ix86_maybe_switch_abi): New function. |
| (TARGET_EXPAND_TO_RTL_HOOK): New macro. |
| |
| 2008-12-18 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR rtl-optimization/37922 |
| * dse.c (bb_info): Added regs_live field. |
| (look_for_hardregs): New function. |
| (replace_read): Added regs_live parameter and code to check that |
| shift sequence does not clobber live hardregs. |
| (check_mem_read_rtx): Added parameter to replace_read. |
| (dse_step1): Added regs_live bitmap and initialize it. |
| (rest_of_handle_dse): Added DF_NOTES problem and earlier call to |
| df_analyze. |
| * df-problems.c Renamed to df_simulate_initialize_backwards. |
| (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. |
| (df_simulate_artificial_refs_at_top): Renamed to |
| df_simulate_finalize_backwards. |
| (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, |
| df_simulate_finalize_backwards): New functions. |
| * df.h (df_simulate_artificial_refs_at_end): Renamed to |
| df_simulate_initialize_backwards. |
| (df_simulate_one_insn): Renamed to df_simulate_one_insn_backwards. |
| (df_simulate_artificial_refs_at_top): Renamed to |
| df_simulate_finalize_backwards. |
| (df_simulate_initialized_forwards, df_simulate_one_insn_forwards, |
| df_simulate_finalize_backwards): New functions. |
| * ra-conflict.c (global_conflicts): Renamed |
| df_simulate_artificial_refs_at_end to |
| df_simulate_initialize_backwards. |
| * sel-sched.c (propagate_lv_set): Renamed df_simulate_one_insn to |
| df_simulate_one_insn_backwards. |
| * ifcvt.c (dead_or_predicable): Renamed |
| df_simulate_artificial_refs_at_end to |
| df_simulate_initialize_backwards. Renamed df_simulate_one_insn to |
| df_simulate_one_insn_backwards. |
| * recog.c (peephole2_optimize): Ditto. |
| * rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq): Ditto. |
| |
| 2008-12-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38533 |
| * tree-ssa-reassoc.c (remove_visited_stmt_chain): New function. |
| (rewrite_expr_tree): Add moved argument, move stmts together if |
| needed. Call remove_visited_stmt_chain. |
| (linearize_expr_tree): Don't move stmts here. |
| (reassociate_bb): Call remove_visited_stmt_chain if num ops is 1. |
| Adjust rewrite_expr_tree caller. |
| |
| PR middle-end/38505 |
| * tree-ssa.c (useless_type_conversion_p_1): Return |
| false if inner_type is incomplete and outer_type is complete. |
| |
| 2008-12-17 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * doc/install.texi (Prerequisites): Document PPL and CLooG-PPL |
| dependences and the configure options. |
| (Configuration): Document --with-cloog, --with-ppl, --with-cloog-lib, |
| --with-ppl-lib, --with-cloog-incude, --with-ppl-include. |
| |
| 2008-12-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/38556 |
| * calls.c (expand_call): Check outgoing_reg_parm_stack_space |
| only if REG_PARM_STACK_SPACE is defined. |
| |
| 2008-12-17 Jan Hubicka <jh@suse.cz> |
| Kai Tietz <kai.tietz@onevision.com> |
| |
| * calls.c (expand_call): Do not sibcall if |
| outgoing_reg_parm_stack_space does not match. |
| |
| 2008-12-16 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (avr_mcu_t): Add attiny87, attiny327, at90pwm81, |
| atmega16m1, at90scr100, atmega128rfa1, m3000f, m3000s and m3001b |
| devices. |
| * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). |
| * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). |
| |
| 2008-12-16 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| PR target/38842 |
| * config/picochip/picochip.opt (mae): Squeezed the comments onto one |
| line. |
| |
| 2008-12-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| * configure.ac (gcc_cv_ld_hidden): Sun ld on Solaris 9 and up |
| supports hidden. |
| * configure: Regenerate. |
| |
| 2008-12-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/37436 |
| * arm.c (arm_legitimate_index): Only accept addresses that are in |
| canonical form. |
| * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate. |
| * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate |
| for operand1. |
| (extendqisi2): Likewise. |
| (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op |
| predicate for operand1. |
| |
| 2008-12-15 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips.c (mips_output_conditional_branch): Assert that |
| openrands[1] is a CODE_LABEL. |
| |
| 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_expand_builtin_direct): Set TARGET to |
| the result of mips_prepare_builtin_target. |
| |
| 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_abicalls |
| if TARGET_ABICALLS is true. |
| |
| 2008-12-15 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.md (move_doubleword_fpr<mode>): Use |
| TARGET_FLOAT64 && !TARGET_64BIT to detect the mxhc1 case. |
| |
| 2008-12-15 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| * config/picochip/picochip.c (picochip_override_options): Disable CFI |
| asm and change the signature of brev and byteSwap functions to use |
| unsigned values. |
| * config/picochip/picochip.md (commsTestPort): This is a complex |
| instruction and should not be vliwed. Don't set insn type. |
| |
| 2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com> |
| * config/s390/s390.c (s390_swap_cmp): New function. |
| (s390_non_addr_reg_read_p): New function. |
| (s390_z10_optimize_cmp): New function. |
| (s390_reorg): Added call to s390_optimize_cmp. |
| * config/s390/s390.md (nop1): New insn. |
| |
| 2008-12-12 Rainer Emrich <r.emrich@de.tecosim.com> |
| |
| PR bootstrap/38383 |
| * pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Don't hardcode search path |
| for the milli.a library. |
| |
| 2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com> |
| Peter Bergner <bergner@vnet.ibm.com> |
| |
| PR target/24779 |
| * config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the |
| TOC into the call pattern. |
| (call_indirect_aix64): Likewise. |
| (call_value_indirect_aix32): Likewise. |
| (call_value_indirect_aix64): Likewise. |
| (call_indirect_nonlocal_aix32_internal): New insn and split patterns |
| to split off the load of the TOC. |
| (call_indirect_nonlocal_aix32): Enable only after reload. |
| (call_indirect_nonlocal_aix64_internal): New insn and split patterns |
| to split off the load of the TOC. |
| (call_indirect_nonlocal_aix64): Enable only after reload. |
| (call_value_indirect_nonlocal_aix32_internal): New insn and split |
| patterns to split off the load of the TOC. |
| (call_value_indirect_nonlocal_aix32): Enable only after reload. |
| (call_value_indirect_nonlocal_aix64_internal): New insn and split |
| patterns to split off the load of the TOC. |
| (call_value_indirect_nonlocal_aix64): Enable only after reload. |
| |
| 2008-12-12 Andreas Schwab <schwab@suse.de> |
| |
| Revert: |
| 2008-12-12 Andreas Schwab <schwab@suse.de> |
| * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on |
| a BARRIER insn. |
| |
| 2008-12-12 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/32044 |
| * tree-scalar-evolution.h (expression_expensive_p): Declare. |
| * tree-scalar-evolution.c (expression_expensive_p): New function. |
| (scev_const_prop): Avoid introducing expensive expressions. |
| * tree-ssa-loop-ivopts.c (may_eliminate_iv): Ditto. |
| |
| 2008-12-12 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/38409 |
| * graphite.c (nb_reductions_in_loop): Use simple_iv. |
| |
| 2008-12-12 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> |
| |
| * config/i386/x86intrin.h: New header file to support all x86 |
| intrinsics |
| * config.gcc (extra_headers): For x86 and x86-64, add x86intrin.h |
| |
| 2008-12-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/38402 |
| * gcc/doc/md.texi: Remove Y and document Yz, Y2, Yi and Ym |
| constraints for x86. |
| |
| 2008-12-12 Andreas Schwab <schwab@suse.de> |
| |
| * cfgrtl.c (rtl_verify_flow_info_1): Don't apply BLOCK_FOR_INSN on |
| a BARRIER insn. |
| |
| 2008-12-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/sync.md (memory_barrier): Remove mem:BLK from operands. |
| Use Pmode for scratch reg. |
| (*mb_internal): Use (match_dup 0) for unspec operand. |
| |
| 2008-12-12 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr): Don't shift by |
| floor_log2 of zero. Negate widened zero. |
| |
| 2008-12-12 Ben Elliston <bje@au.ibm.com> |
| |
| * config/fp-bit.c (nan): Rename from this ... |
| (makenan): ... to this. |
| |
| 2008-12-11 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips.md (*branch_bit<bbv><mode>, |
| *branch_bit<bbv><mode>_inverted): Renumber operands so that the |
| label becomes operands[1]. |
| |
| 2008-12-11 Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| PR tree-optimization/38446 |
| * graphite.c (register_bb_in_sese): New. |
| (bb_in_sese_p): Check if bb belongs to sese region by explicitly |
| looking at the bbs in the region. |
| * graphite.h (sese): Add region_basic_blocks pointer set to |
| structure and initialize at the time of defining new scop. |
| |
| 2008-12-11 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE. |
| (find_params_in_bb): Do not free data refs. |
| (free_graphite_bb): Add FIXME on disabled free_data_refs. |
| |
| 2008-12-11 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite.c (struct ivtype_map_elt): New. |
| (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map, |
| new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts, |
| gcc_type_for_cloog_iv): New. |
| (loop_iv_stack_patch_for_consts): Use the type of the induction |
| variable from the original loop, except for the automatically |
| generated loops, i.e., in the case of a strip-mined loop, in |
| which case there is no original loop: in that case just use |
| integer_type_node. |
| (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES. |
| (free_graphite_bb): Free GBB_CLOOG_IV_TYPES. |
| (clast_name_to_gcc): Accept params to be NULL. |
| (clast_to_gcc_expression): Take an extra parameter for the type. |
| Convert to that type all the expressions built by this function. |
| (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New. |
| (graphite_translate_clast_equation): Compute the type of the |
| clast_equation before translating its LHS and RHS. |
| (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New. |
| (graphite_create_new_loop): Compute the type of the induction |
| variable before translating the lower and upper bounds and before |
| creating the induction variable. |
| (rename_variables_from_edge, rename_phis_end_scop): New. |
| (copy_bb_and_scalar_dependences): Call rename_phis_end_scop. |
| (sese_add_exit_phis_edge): Do not use integer_zero_node. |
| (find_cloog_iv_in_expr, compute_cloog_iv_types_1, |
| compute_cloog_iv_types): New. |
| (gloog): Call compute_cloog_iv_types before starting the |
| translation of the clast. |
| |
| * graphite.h (struct graphite_bb): New field cloog_iv_types. |
| (GBB_CLOOG_IV_TYPES): New. |
| (debug_ivtype_map): Declared. |
| (oldiv_for_loop): New. |
| |
| 2008-12-10 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| PR middle-end/38459 |
| * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS. |
| (param_index): Assert if parameter is not know after parameter |
| detection. |
| (find_params_in_bb): Detect params directly in GBB_CONDITIONS. |
| (find_scop_parameters): Mark, that we have finished parameter |
| detection. |
| (graphite_transform_loops): Move condition detection before parameter |
| detection. |
| * graphite.h (struct scop): Add SCOP_ADD_PARAMS. |
| |
| 2008-12-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR testsuite/35677 |
| * emutls.c (__emutls_get_address): Make sure offset is really zero |
| before initializing the object's offset. |
| |
| 2008-12-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/38253 |
| * gimplify.c (gimplify_init_constructor): Don't force constructor |
| into memory if there is just one nonzero element. |
| |
| 2008-12-11 Sebastian Pop <sebastian.pop@amd.com> |
| |
| Fix testsuite/gfortran.dg/graphite/id-4.f90. |
| * graphite.c (scan_tree_for_params): Do not compute the multiplicand |
| when not needed. |
| |
| 2008-12-11 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * graphite.c (build_scops_1): Initialize open_scop.exit |
| and sinfo.last. |
| |
| 2008-12-11 Sebastian Pop <sebastian.pop@amd.com> |
| Jan Sjodin <jan.sjodin@amd.com> |
| Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| PR middle-end/37852 |
| PR middle-end/37883 |
| PR middle-end/37928 |
| PR middle-end/37980 |
| PR middle-end/38038 |
| PR middle-end/38039 |
| PR middle-end/38073 |
| PR middle-end/38083 |
| PR middle-end/38125 |
| |
| * tree-phinodes.c (remove_phi_nodes): New, extracted from... |
| * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block): |
| ... here. |
| * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared. |
| * Makefile.in (graphite.o): Depend on value-prof.h. |
| (graphite.o-warn): Removed -Wno-error. |
| * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list |
| to be a NULL pointer. Call update_stmt. Return the newly created |
| cannonical induction variable. |
| |
| * graphite.h (debug_rename_map): Declared. Fix some comments. |
| |
| * graphite.c: Reimplement the code generation from graphite to gimple. |
| Include value-prof.h. |
| (loop_iv_stack_get_iv): Do not return NULL for constant substitutions. |
| (get_old_iv_from_ssa_name): Removed. |
| (graphite_stmt_p): New. |
| (new_graphite_bb): Test for useful statements before building a |
| graphite statement for the basic block. |
| (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug |
| in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without reason. |
| (recompute_all_dominators, graphite_verify, |
| nb_reductions_in_loop, graphite_loop_normal_form): New. |
| (scop_record_loop): Call graphite_loop_normal_form. |
| (build_scop_loop_nests): Iterate over all the blocks of the |
| function instead of relying on the incomplete information from |
| SCOP_BBS. Return the success of the operation. |
| (find_params_in_bb): Use the data from GBB_DATA_REFS. |
| (add_bb_domains): Removed. |
| (build_loop_iteration_domains): Don't call add_bb_domains. |
| Add the iteration domain only to the basic blocks that have been |
| translated to graphite. |
| (build_scop_conditions_1): Add constraints only if the basic |
| block have been translated to graphite. |
| (build_scop_data_accesses): Completely disabled until data |
| dependence is correctly implemented. |
| (debug_rename_elt, debug_rename_map_1, debug_rename_map): New. |
| (remove_all_edges_1, remove_all_edges): Removed. |
| (get_new_name_from_old_name): New. |
| (graphite_rename_variables_in_stmt): Renamed. |
| rename_variables_in_stmt. Call get_new_name_from_old_name. |
| Use replace_exp and update_stmt. |
| (is_old_iv): Renamed is_iv. |
| (expand_scalar_variables_stmt): Extra parameter for renaming map. |
| Use replace_exp and update_stmt. |
| (expand_scalar_variables_expr): Same. Use the map to get the |
| new names for the renaming of induction variables and for the |
| renaming of variables after a basic block has been copied. |
| (expand_scalar_variables): Same. |
| (graphite_rename_variables): Renamed rename_variables. |
| (move_phi_nodes): Removed. |
| (get_false_edge_from_guard_bb): New. |
| (build_iv_mapping): Do not insert the induction variable of a |
| loop in the renaming iv map if the basic block does not belong |
| to that loop. |
| (register_old_new_names, graphite_copy_stmts_from_block, |
| copy_bb_and_scalar_dependences): New. |
| (translate_clast): Heavily reimplemented: copy basic blocks, |
| do not move them. Finally, in call cleanup_tree_cfg in gloog. |
| At each translation step call graphite_verify ensuring the |
| consistency of the SSA, loops and dominators information. |
| (collect_virtual_phis, find_vdef_for_var_in_bb, |
| find_vdef_for_var_1, find_vdef_for_var, |
| patch_phis_for_virtual_defs): Removed huge hack. |
| (mark_old_loops, remove_dead_loops, skip_phi_defs, |
| collect_scop_exit_phi_args, patch_scop_exit_phi_args, |
| gbb_can_be_ignored, scop_remove_ignoreable_gbbs): Removed. |
| (remove_sese_region, ifsese, if_region_entry, if_region_exit, |
| if_region_get_condition_block, if_region_set_false_region, |
| create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p, |
| sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb, |
| sese_add_exit_phis_edge, sese_add_exit_phis_var, |
| rewrite_into_sese_closed_ssa): New. |
| (gloog): Remove dead code. Early return if code cannot be |
| generated. Call cleanup_tree_cfg once the scop has been code |
| generated. |
| (graphite_trans_scop_block, graphite_trans_loop_block): Do not |
| block loops with less than two loops. |
| (graphite_apply_transformations): Remove the call to |
| scop_remove_ignoreable_gbbs. |
| (limit_scops): When build_scop_loop_nests fails, continue on next |
| scop. Fix open_scop.entry. |
| (graphite_transform_loops): Call recompute_all_dominators: force the |
| recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS. |
| Call initialize_original_copy_tables and free_original_copy_tables |
| to be able to copy basic blocks during code generation. |
| When build_scop_loop_nests fails, continue on next scop. |
| (value_clast): New union. |
| (clast_to_gcc_expression): Fix type cast warning. |
| |
| 2008-12-10 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/36792 |
| * tree-ssa-pre.c (compute_avail): Handle tcc_comparison like |
| tcc_binary. |
| |
| 2008-12-10 Daniel Berlin <dberlin@dberlin.org> |
| |
| PR tree-optimization/36792 |
| * tree-ssa-pre.c (compute_avail): Don't insert defs into maximal set. |
| |
| 2008-12-10 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR target/37033 |
| * dwarf2out.c (saved_do_cfi_asm): New. |
| (dwarf2out_do_frame): Take it into account. |
| (dwarf2out_d_cfi_asm): Likewise. Set it when appropriate. |
| |
| 2008-12-10 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR middle-end/38271 |
| * tree-sra.c (sra_build_bf_assignment): Avoid warnings for |
| variables initialized from SRAed bit fields. |
| |
| 2008-12-10 Martin Guy <martinwguy@yahoo.it> |
| |
| PR target/37668 |
| * arm.c (arm_size_rtx_costs, case NEG): Don't fall through if the |
| result will be in an FPU register. |
| |
| 2008-12-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/37170 |
| PR target/38448 |
| * final.c (output_addr_const) <SYMBOL_REF>: Call assemble_external |
| on the associated SYMBOL_REF_DECL node, if any. |
| |
| 2008-12-09 David Daney <ddaney@caviumnetworks.com> |
| |
| * config/mips/sync.md (sync_<optab>_12): Replace |
| MIPS_SYNC_OP_12_NOT_NOP with MIPS_SYNC_OP_12_AND. |
| (sync_old_<optab>_12): Remove third paramater to |
| MIPS_SYNC_OLD_OP_12 macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOP |
| with MIPS_SYNC_OLD_OP_12_AND. |
| (sync_new_<optab>_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOP |
| with MIPS_SYNC_NEW_OP_12_AND. |
| (sync_nand_12): Replace MIPS_SYNC_OP_12_NOT_NOT with |
| MIPS_SYNC_OP_12_XOR, reduce length attribute to 40. |
| (sync_old_nand_12): Remove third paramater to MIPS_SYNC_OLD_OP_12 |
| macro, replace MIPS_SYNC_OLD_OP_12_NOT_NOT with |
| MIPS_SYNC_OLD_OP_12_XOR and reduce length attribute to 40. |
| (sync_new_nand_12): Replace MIPS_SYNC_NEW_OP_12_NOT_NOT with |
| MIPS_SYNC_NEW_OP_12_XOR. |
| * config/mips/mips.h (MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP, |
| MIPS_SYNC_OP_12_NOT_NOT,MIPS_SYNC_OLD_OP_12_NOT_NOP, |
| MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_NEW_OP_12, |
| MIPS_SYNC_NEW_OP_12_NOT_NOP, MIPS_SYNC_NEW_OP_12_NOT_NOT, |
| MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Rewritten |
| to implement new __sync_nand semantics. |
| (MIPS_SYNC_OLD_OP_12): Implement new __sync_nand semantics, and |
| remove third parameter. |
| (MIPS_SYNC_OLD_OP_12_NOT_NOP_REG, |
| MIPS_SYNC_OLD_OP_12_NOT_NOT_REG): Removed. |
| (MIPS_SYNC_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OP_12_AND. |
| (MIPS_SYNC_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OP_12_XOR. |
| (MIPS_SYNC_OLD_OP_12_NOT_NOP): Renamed to MIPS_SYNC_OLD_OP_12_AND. |
| (MIPS_SYNC_OLD_OP_12_NOT_NOT): Renamed to MIPS_SYNC_OLD_OP_12_XOR. |
| (MIPS_SYNC_NEW_OP_12_NOT_NOP): Renamed to MIPS_SYNC_NEW_OP_12_AND. |
| (MIPS_SYNC_NEW_OP_12_NOT_NOT): Renamed to MIPS_SYNC_NEW_OP_12_XOR |
| |
| 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| * graphite.c (graphite_transform_loops): Always call find_transform () |
| in ENABLE_CHECKING. So we test these code paths, even if we do not |
| generate code. |
| |
| 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| * graphite.c (print_graphite_bb): Fix printing to file != dump_file. |
| |
| 2008-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38454 |
| * function.h (struct function): Add always_inline_functions_inlined. |
| * ipa-inline.c (cgraph_early_inlining): Set it to true. |
| * tree-optimize.c (execute_fixup_cfg): Likewise. |
| * builtins.c (avoid_folding_inline_builtin): New function. |
| (fold_call_expr): Don't optimize always_inline builtins before |
| inlining. |
| (fold_call_stmt): Likewise. |
| (fold_builtin_call_array): Likewise. Don't call |
| fold_builtin_varargs for BUILT_IN_MD builtins. |
| |
| PR tree-optimization/37416 |
| * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle NOP_EXPR. |
| |
| 2008-12-09 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/sourcebuild.texi (Test Directives): Fix formatting. |
| |
| 2008-12-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description. |
| |
| * doc/invoke.texi (-fira-region): Describe new option. |
| (-fira-algorithm): Change the values. |
| |
| * ira-conflicts.c (build_conflict_bit_table, |
| build_allocno_conflicts): Use ira_reg_classes_intersect_p. |
| (ira_build_conflicts): Use flag flag_ira_region instead of |
| flag_ira_algorithm. Prohibit usage of callee-saved likely spilled |
| base registers for allocnos crossing calls. |
| |
| * flags.h (enum ira_algorithm): Redefine. |
| (enum ira_region): New. |
| (flag_ira_region): New. |
| |
| * cfgloopanal.c (estimate_reg_pressure_cost): Use flag_ira_region |
| instead of flag_ira_algorithm. |
| |
| * toplev.c (flag_ira_algorithm): Change the initial value. |
| (flag_ira_region): New. |
| |
| * ira-int.h (ira_reg_classes_intersect_p, |
| ira_reg_class_super_classes): New. |
| |
| * ira-color.c (update_copy_costs): Use |
| ira_reg_classes_intersect_p. Use right class to find hard reg index. |
| (update_conflict_hard_regno_costs): Ditto. Add a new parameter. |
| (assign_hard_reg): Ditto. Pass additional argument to |
| update_conflict_hard_regno_costs. Do not uncoalesce for priority |
| coloring. |
| (allocno_priorities, setup_allocno_priorities, |
| allocno_priority_compare_func): Move before color_allocnos. |
| (color_allocnos): Add priority coloring. Use flag flag_ira_region |
| instead of flag_ira_algorithm. |
| (move_spill_restore): Check classes of the same reg allocno from |
| different regions. |
| (update_curr_costs): Use ira_reg_classes_intersect_p. |
| (ira_reassign_conflict_allocnos): Ditto. |
| |
| * opts.c (decode_options): Always set up flag_ira. Set up |
| flag_ira_algorithm. Warn CB can not be used for architecture. |
| (common_handle_option): Modify code for -fira-algorithm. Add code |
| to process -fira-region. |
| |
| * ira-lives.c (update_allocno_pressure_excess_length): Process |
| superclasses too. |
| (set_allocno_live, clear_allocno_live, mark_reg_live, |
| mark_reg_dead, process_bb_node_lives): Ditto. |
| |
| * ira-emit.c (ira_emit): Fix insn codes. |
| |
| * ira-build.c (propagate_allocno_info): Use flag flag_ira_region |
| instead of flag_ira_algorithm. |
| (allocno_range_compare_func): Ignore classes for priority coloring. |
| (setup_min_max_conflict_allocno_ids): Ditto. |
| (ira_flattening): Use ira_reg_classes_intersect_p. |
| |
| * genpreds.c (write_enum_constraint_num): Output CONSTRAINT__LIMIT. |
| |
| * common.opt (fira-algorithm): Modify. |
| (fira-region): New. |
| |
| * ira.c (setup_class_hard_regs): Initialize. |
| (setup_cover_and_important_classes): Modify code setting class |
| related info for priority coloring. |
| (setup_class_translate): Ditto. |
| (ira_reg_classes_intersect_p, ira_reg_class_super_classes): New. |
| (setup_reg_class_intersect_union): Rename to |
| setup_reg_class_relations. Add code for setting up new variables. |
| (find_reg_class_closure): Do not check targetm.ira_cover_classes. |
| (ira): Use flag flag_ira_region instead of flag_ira_algorithm. |
| |
| * ira-costs.c (common_classes): New. |
| (print_costs): Use flag flag_ira_region instead of flag_ira_algorithm. |
| (find_allocno_class_costs): Ditto. Use common_classes. Translate |
| alt_class. |
| (ira_costs): Allocate/deallocate common_classes. |
| |
| * config/m32c/m32.h (REG_ALLOC_ORDER): Add reg 19. |
| (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): New entries for |
| R02A_REGS. |
| |
| * reload1.c (choose_reload_regs): Use MODE_INT for partial ints in |
| smallest_mode_for_size. |
| |
| 2008-12-10 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/linux-unwind.h (get_regs): Constify casts. |
| |
| 2008-12-09 Jan Hubicka <jh@suse.cz> |
| |
| * predict.c (estimate_bb_frequencies): Fix test if profile is present. |
| |
| 2008-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/35468 |
| * tree-ssa-ccp.c (fold_stmt_r): Don't fold reads from constant |
| string on LHS. |
| |
| 2008-12-09 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38445 |
| * tree-ssa-structalias.c (emit_pointer_definition): Only visit |
| names once. |
| (emit_alias_warning): Adjust. |
| |
| 2008-12-09 Andrew Haley <aph@redhat.com> |
| |
| * fixed-value.c (do_fixed_add): Add comment. |
| * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise. |
| * builtins.c (fold_builtin_sqrt): Likewise. |
| |
| 2008-12-09 Kai Tietz <kai.tietz@onevision.com> |
| |
| PR/38366 |
| * function.c (aggregate_value_p): Get fntype from CALL_EXPR in any |
| case. |
| * calls.c (nitialize_argument_information): Add fntype argument |
| and use it for calls.promote_function_args. |
| (expand_call): Pass fntype to aggregate_value_p if no fndecl |
| available and pass additional fntype to |
| initialize_argument_information. |
| * config/i386/i386.c (ix86_reg_parm_stack_space): Remove cfun part |
| to get function abi type. |
| (init_cumulative_args): Use for abi kind detection fntype, when no |
| fndecl is available. |
| |
| 2008-12-09 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.md (movti, movdi_64, movdi_31, |
| *movsi_zarch, *movhi, *movqi, *mov<mode>_64, *mov<mode>_31, |
| *mov<mode>_64dfp, *mov<mode>_64, *mov<mode>_31, mov<mode>): Remove |
| Q->Q alternative. |
| (Integer->BLKmode splitter): Removed. |
| |
| 2008-12-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_set_memflags): Process memory |
| references in full insn sequence. |
| |
| 2008-12-09 Jason Merrill <jason@redhat.com> |
| |
| * gimplify.c (gimplify_init_constructor): Revert to using < rather |
| than <= for sparseness test. |
| |
| PR c++/38410 |
| * gimplify.c (gimplify_init_constructor): Don't write out a static |
| copy of the CONSTRUCTOR for TREE_ADDRESSABLE types or small sparse |
| initializers. |
| |
| 2008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| PR middle-end/38084 |
| Fix testsuite/gfortran.dg/graphite/id-3.f90. |
| * graphite.c (scopdet_basic_block_info): Fix bug that found some |
| regions more than once. |
| |
| 2008-12-09 Ben Elliston <bje@au.ibm.com> |
| |
| * emutls.c (__emutls_get_address): Prototype. |
| (__emutls_register_common): Likewise. |
| |
| * config/dfp-bit.c (DFP_TO_INT): Remove unnecessary cast. |
| |
| 2008-12-09 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/darwin-ldouble.c (fmsub): Remove unused variable, v. |
| |
| 2008-12-08 Steve Ellcey <sje@cup.hp.com> |
| |
| * config/ia64/ia64.md (UNSPECV_GOTO_RECEIVER): New constant. |
| (nonlocal_goto_receiver): New instruction. |
| |
| 2008-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/35443 |
| * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR. |
| |
| PR c/35442 |
| * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle |
| VIEW_CONVERT_EXPR the same as CASE_CONVERT. |
| |
| 2008-12-08 Richard Henderson <rth@redhat.com> |
| |
| PR 38240 |
| * tree.h (TYPE_MODE): Invoke vector_type_mode when needed. |
| (SET_TYPE_MODE): New. |
| * c-decl.c (parser_xref_tag): Use it. |
| (finish_enum): Likewise. |
| * tree.c (build_pointer_type_for_mode): Likewise. |
| (build_reference_type_for_mode, build_index_type): Likewise. |
| (build_range_type, make_vector_type): Likewise. |
| (build_common_tree_nodes_2): Likewise. |
| * stor-layout.c (compute_record_mode): Likewise. |
| (finalize_type_size, layout_type, make_fract_type): Likewise. |
| (make_accum_type, initialize_sizetypes): Likewise. |
| (vector_type_mode): New. |
| * function.c (allocate_struct_function): Call |
| invoke_set_current_function_hook before querying anything else. |
| |
| * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx. |
| |
| 2008-12-08 Luis Machado <luisgpm@br.ibm.com> |
| |
| * alias.c (find_base_term): Synch LO_SUM handling with what |
| find_base_value does. |
| |
| 2008-12-08 Andrew Haley <aph@redhat.com> |
| Kamaraju Kusumanchi <raju.mailinglists@gmail.com> |
| |
| * gimple.h (gimple_build_try): Fix declaration. |
| |
| * builtins.c (fold_builtin_sqrt): Don't use a conditional operator. |
| * fixed-value.c (do_fixed_add): Likewise. |
| * tree-ssa-loop-ivopts.c (iv_ca_cost): Likewise. |
| |
| 2008-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/36802 |
| * omp-low.c (use_pointer_for_field): Only call maybe_lookup_decl |
| on parallel and task contexts. |
| |
| 2008-12-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple.c (recalculate_side_effects) <tcc_constant>: New case. |
| |
| 2008-12-07 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38405 |
| * tree-vrp.c (simplify_truth_ops_using_ranges): Make sure to |
| not sign-extend truth values. |
| |
| 2008-12-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (scalarize_use): Create another temporary with the proper |
| type for signed types in the use_all && !is_output bitfield case. |
| |
| 2008-12-06 Steven Bosscher <steven@gcc.gnu.org> |
| |
| PR rtl-optimization/36365 |
| * df-core.c (df_worklist_dataflow_overeager): Remove. |
| (df_worklist_dataflow): Don't call it, use double-queue only. |
| * params.def (PARAM_DF_DOUBLE_QUQUQ_THRESHOLD_FACTOR): Remove. |
| |
| 2008-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38428 |
| * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set |
| gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile. |
| |
| 2008-12-07 Ben Elliston <bje@au.ibm.com> |
| |
| * gthr-single.h (__gthread_once): Adjust prototype to match all |
| other gthreads models. |
| |
| 2008-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/i386.c (override_options): Use CPU_AMDFAM10 |
| instead of PROCESSOR_AMDFAM10 for barcelona's schedule. |
| |
| PR middle-end/38422 |
| * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR |
| operands to mult_type if it isn't narrower than op0's type. |
| |
| 2008-12-06 Jan Hubicka <jh@suse.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/38074 |
| * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0 |
| entry frequency. |
| * predict.c (combine_predictions_for_bb): Ignore predictor predicting |
| in both dirrection for first match heuristics. |
| (tree_bb_level_predictions): Disable noreturn heuristic when there |
| is no returning path. |
| |
| 2008-12-05 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| PR rtl-optimization/38272 |
| * reload1.c (choose_reload_regs): Keep reload_spill_index correct |
| in all cases. |
| |
| 2008-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/35336 |
| * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF. |
| (pp_c_expression): Likewise. |
| |
| 2008-12-05 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR c/38416 |
| * c-parser.c (struct c_token): Make pragma_kind 8 bits. |
| |
| 2008-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37248 |
| * fold-const.c (make_bit_field_ref): Change bitpos and bitsize |
| arguments to HOST_WIDE_INT. If type has different signedness |
| than unsignedp or different precision from bitsize, create |
| the right type for BIT_FIELD_REF and cast to type. |
| (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT. |
| |
| Revert: |
| 2008-03-05 Richard Guenther <rguenther@suse.de> |
| PR c++/35336 |
| * fold-const.c (fold_truthop): Remove code generating |
| BIT_FIELD_REFs of structure bases. |
| (fold_binary): Likewise. |
| (make_bit_field_ref): Remove. |
| (optimize_bit_field_compare): Remove. |
| (all_ones_mask_p): Remove. |
| |
| 2008-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-sra.c (sra_explode_bitfield_assignment): Always |
| call unsigned_type_for, if the precision is higher than |
| needed, call build_nonstandard_integer_type. |
| |
| PR debug/38367 |
| * function.c (assign_parm_find_stack_rtl): If promoted_mode |
| is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for |
| big endian. |
| |
| PR middle-end/38338 |
| * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn |
| only if internal_arg_pointer is a non-virtual pseudo. |
| |
| 2008-12-05 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for |
| TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500. |
| * config/rs6000/spe.md (e500_cr_ior_compare): Likewise. |
| |
| 2008-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/37716 |
| * gimplify.c (gimplify_expr): Allow COND_EXPR if |
| gimplify_ctxp->allow_rhs_cond_expr. |
| |
| 2008-12-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_fold_vector_minmax): Create |
| VIEW_CONVERT_EXPR to convert output to long_integer_type_node. |
| |
| (alpha_emit_conditional_branch): Do not generate direct branch |
| for UNORDERED comparisons. |
| |
| 2008-12-05 Andreas Schwab <schwab@suse.de> |
| |
| * config/rs6000/linux-unwind.h (frob_update_context): Check for |
| NULL lr. |
| |
| 2008-12-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/38408 |
| * fold-const.c (fold_checksum_tree): Change buf type to union |
| tree_node. |
| |
| 2008-12-05 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR bootstrap/38262 |
| * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS. |
| (BACKENDLIBS): New. |
| (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS. |
| |
| 2008-12-05 Ben Elliston <bje@au.ibm.com> |
| |
| * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and |
| comma_loc. |
| (c_parser_initelt): Initialise des_loc and ellipsis_loc. |
| |
| 2008-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| Gary Funck <gary@intrepid.com> |
| |
| * cse.c (lookup_as_function): Delete mode frobbing code. |
| (equiv_constant): Re-implement it there for SUBREGs. |
| |
| 2008-12-04 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/36509 |
| * Makefile.in (tree-ssa-alias-warnings.o): Remove. |
| (tree-ssa-structalias.o): Remove errors.h dependency. |
| (tree-ssa-reassoc.o): Likewise. |
| * tree-ssa-reassoc.c: Do not include errors.h. |
| * tree-ssa-alias-warnings.c: Remove. |
| * tree-ssa-alias.c (compute_may_aliases): Remove call to |
| strict_aliasing_warning_backend. |
| * tree-ssa-structalias.c (emit_pointer_definition): New function. |
| (emit_alias_warning): Likewise. |
| (set_uids_in_ptset): Warn for clear cases of type-punning. |
| * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING |
| on INDIRECT_REFs. |
| |
| 2008-12-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cse.c (equiv_constant): Fix pasto. |
| |
| 2008-12-04 Nick Clifton <nickc@redhat.com> |
| |
| * config/stormy16/stormy16.md: Remove extraneous spaces and quotes. |
| * config/stormy16/stormy16.c: Remove extraneous spaces and fix up |
| formatting of quotes. |
| |
| 2008-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38371 |
| * fold-const.c (fold_checksum_tree): Allow modification of |
| TYPE_NEXT_VARIANT. |
| |
| 2008-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38360 |
| * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't |
| have the right number of arguments. |
| |
| 2008-12-03 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/36326 |
| * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for |
| non-BLKmode types. |
| |
| 2008-12-03 Tomas Bily <tbily@suse.cz> |
| |
| PR middle-end/38250 |
| * tree-loop-distribution.c (build_size_arg): New function. |
| (generate_memset_zero): Checks if dr_analyze_innermost succeed. |
| Reorganized generating of stmts. |
| * testsuite/gcc.dg/tree-ssa/pr38250.c: New file. |
| * tree-data-ref.c (dr_analyze_innermost): Returns bool. |
| Indicate if analysis succeed. |
| * tree-data-ref.h (dr_analyze_innermost): Returns bool. |
| * tree-predcom.c (valid_initializer_p, find_looparound_phi): |
| Uses new definition of dr_analyze_innermost. |
| |
| 2008-12-03 Ben Elliston <bje@au.ibm.com> |
| |
| * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime. |
| |
| 2008-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/37716 |
| * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct |
| all the needed operations as trees and gimplify_assign it to dst. |
| |
| PR target/37610 |
| * configure.ac (gcc_cv_readelf): Look for readelf. |
| (gcc_cv_as_cfi_advance_working): Check for working |
| cfi advances with code alignment factor > 1. |
| (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances |
| don't work properly. |
| * configure: Regenerated. |
| |
| 2008-12-03 Eric Botcazou <ebotcazou@adacore.com> |
| Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR rtl-optimization/38281 |
| * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2, |
| set it to NULL_RTX afterwards. |
| |
| * emit-rtl.c (set_insn_deleted): Fix formatting. |
| |
| 2008-12-02 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_expand_builtin): Fix the mode of the |
| error return value. |
| * config/mips/mips.md (IMOVE32): New mode iterator. |
| (movsi): Generalize with IMOVE32. |
| (*movsi_internal): Likewise. |
| (*mov<mode>_mips16): Likewise. |
| (*lwxs): Likewise. |
| |
| 2008-12-02 Nathan Sidwell <nathan@codesourcery.com> |
| Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of |
| PC-relative addressing when compiling for uclinux PIC. |
| (__cmpdf_internal, __cmpsf_internal): Hide. |
| (__cmpdf, __cmpsf): Use PIC call sequence. |
| |
| 2008-12-02 Andreas Tobler <a.tobler@schweiz.org> |
| Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| * config/i386/t-darwin64: Add m32 multilib support. |
| |
| 2008-12-02 Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later. |
| |
| 2008-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38343 |
| * builtins.c (fold_builtin_memory_op): Convert len to sizetype |
| before using it in POINTER_PLUS_EXPR. |
| |
| 2008-12-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38359 |
| * fold-const.c (fold_binary): Fold -1 >> x to -1 only for |
| non-negative x. |
| |
| 2008-12-02 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/37861 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check |
| for INDIRECT_REFs. |
| (forward_propagate_addr_into_variable_array_index): Check that the |
| offset is not computed from a MULT_EXPR, use is_gimple_assign rather |
| than the gimple code directly. |
| |
| 2008-12-02 Ben Elliston <bje@au.ibm.com> |
| |
| * config/spu/float_disf.c (__floatdisf): Prototype. |
| * config/spu/float_unsdisf.c (__float_undisf): Likewise. |
| * config/spu/float_unssidf.c (__float_unssidf): Constify cast. |
| * config/spu/float_unsdidf.c (__float_unsdidf): Likewise. |
| |
| 2008-12-02 DJ Delorie <dj@redhat.com> |
| |
| * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate. |
| (DWARF_CIE_DATA_ALIGNMENT): Define. |
| |
| * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): |
| Invert add/sub for INCOMING_FRAME_SP_OFFSET. |
| (xstormy16_expand_prologue): Likewise. |
| (xstormy16_expand_builtin_va_start): Likewise. |
| (xstormy16_gimplify_va_arg_expr): Likewise. |
| |
| 2008-12-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38343 |
| * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs |
| potentially returned from folding memcpy. |
| (expand_builtin_stpcpy_args): Similarly for folding strcpy. |
| (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored. |
| |
| 2008-12-02 Danny Smith <dannysmith@users.sourceforge.net> |
| |
| PR target/38054 |
| * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall |
| decoration of function RTL names here on Ada language. |
| |
| 2008-12-01 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/38280 |
| * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func, |
| ira_rebuild_regno_allocno_list): New functions. |
| (regno_allocnos): New static variable. |
| (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos. |
| Call ira_rebuild_regno_allocno_list. |
| |
| 2008-12-01 David Daney <ddaney@caviumnetworks.com> |
| Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/linux64.h (DRIVER_SELF_SPECS): Add |
| LINUX_DRIVER_SELF_SPECS. |
| |
| 2008-12-01 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/37514 |
| * reload1.c (reload_as_needed): Invalidate reg_last_reload |
| from previous insns. |
| |
| 2008-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/38348 |
| * c-omp.c (c_finish_omp_for): Only transform pointer |
| ++ or -- into MODIFY_EXPR if second argument is non-NULL. |
| |
| PR rtl-optimization/38245 |
| * tree-vrp.c (abs_extent_range): New function. |
| (extract_range_from_binary_expr): Compute range |
| for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE |
| or includes zero or if vr1 is VR_RANGE and op0 has some |
| other range. |
| |
| 2008-12-01 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/37908 |
| * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND |
| case by calculating ~(new_reg & val) instead of (~new_reg & val). |
| * config/alpha/sync.md (sync_nand<mode>): Change insn RTX |
| to (not:I48MODE (and:I48MODE (...))). |
| (sync_old_nand<mode>): Ditto. |
| (sync_new_nand<mode>): Ditto. |
| |
| 2008-12-01 Nick Clifton <nickc@redhat.com> |
| |
| * config/stormy16/stormy16.md (CARRY_REG): New constant. |
| Replace uses of the "y" register class with direct references to |
| the CARRY_REG register. |
| * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch |
| register with clobbers of the carry register. |
| (xstormy16_secondary_reload_class): Do not return CARRY_REGS. |
| (xstormy16_split_cbranch): Remove redundant carry parameter. |
| (xstormy16_expand_arith): Likewise. |
| * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS. |
| (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS, |
| REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. |
| (CARRY_REGNUM): Define. |
| * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch): |
| Update prototype. |
| (xstormy16_expand_arith): Likewise. |
| |
| 2008-12-01 Chen Liqin <liqin.chen@sunplusct.com> |
| |
| * config/score/score.h (IRA_COVER_CLASSES): Define. |
| |
| 2008-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/38287 |
| * config/sparc/sparc.md (divsi3 expander): Remove constraints. |
| (divsi3_sp32): Add new alternative with 'K' for operand #2. |
| (cmp_sdiv_cc_set): Factor common string. |
| (udivsi3_sp32): Add new alternative with 'K' for operand #2. |
| Add TARGET_V9 case. |
| (cmp_udiv_cc_set): Factor common string. |
| |
| 2008-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/38283 |
| * varasm.c (emutls_finish): Fix common registration. |
| |
| 2008-11-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/29987 |
| * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine. |
| |
| 2008-11-29 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for |
| operand wrapped in NOT. Emit NAND as (ior (not X) (not Y)). |
| (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)). |
| * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL. |
| Call rs6000_emit_sync with CODE=NOT and unmodified operands. |
| Ignore sub-word case for now. |
| (sync_nand<mode>_internal): Represent NAND in RTL. |
| (sync_old_nand<mode): Same. |
| (sync_old_name<mode>_internal): Same. |
| (sync_new_nand<mode>): Same. |
| (sync_new_nand<mode>_internal): Same. |
| (sync_boolcshort_internal): Expect NAND. |
| |
| 2008-11-28 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/37955 |
| PR tree-optimization/37742 |
| * tree-vect-transform.c (vectorizable_store): Remove assert for |
| compatible aliases. |
| (vectorizable_load): Likewise. |
| |
| 2008-11-27 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (intra_create_variable_infos): Make |
| a constraint for the static chain parameter. |
| |
| 2008-11-27 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.opt (micplb): New option. |
| * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it. |
| * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS, |
| ENABLE_WA_INDIRECT_CALLS): New macros. |
| * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to |
| all 54x CPUs. |
| (indirect_call_p): New function. |
| (workaround_speculation): Handle anomaly 05-00-0426 when |
| ENABLE_WA_INDIRECT_CALLS is true. |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define |
| __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS. |
| * doc/invoke.texi (Blackfin Options): Document -micplb. |
| |
| 2008-11-26 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/mov.md ("extendhipsi2"): New. |
| |
| * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate. |
| |
| * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class. |
| * config/m32c/mov.md (zero_extendqihi2): Likewise. |
| |
| 2008-11-26 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips.md (clear_hazard): Rename to |
| clear_hazard_<mode>. Use mode-specific addition. |
| (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si |
| or gen_clear_hazard_di depending on the size of Pmode. |
| |
| 2008-11-26 DJ Delorie <dj@redhat.com> |
| |
| * configure.ac: Test m32c-elf-gas for .loc. |
| * configure: Likewise. |
| |
| 2008-11-26 Janis Johnson <janis187@us.ibm.com> |
| |
| PR testsuite/28870 |
| * doc/sourcebuild.texi (Test Directives): Add dg-timeout and |
| dg-timeout-factor. |
| |
| 2008-11-26 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sync.md (memory_barrier_nosse): Disable also for |
| TARGET_64BIT. Remove special asm template for TARGET_64BIT case. |
| (memory_barrier): Do not generate memory_barrier_nosse instruction |
| for TARGET_64BIT. |
| * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT. |
| |
| 2008-11-26 Fredrik Unger <fred@tree.se> |
| |
| * config/soft-fp/floatuntisf.c (__floatuntisf): Correct |
| function name from __floatundisf. |
| * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to |
| DFtype. |
| |
| 2008-11-25 Daniel Berlin <dberlin@dberlin.org> |
| Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/37869 |
| * tree-ssa-structalias.c (struct constraint_graph): Remove |
| pt_used and number_incoming members. |
| (build_pred_graph): Do not allocate them. |
| (condense_visit): Do not use them. |
| (label_visit): Likewise. |
| (free_var_substitution_info): Do not free them. |
| |
| 2008-11-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * doc/invoke.texi (ira-max-loops-num): Change semantics. |
| |
| * ira-int.h (struct ira_loop_tree_node): New member to_remove_p. |
| |
| * ira-color.c (allocno_spill_priority): New function. |
| (remove_allocno_from_bucket_and_push, push_allocno_to_spill): |
| Print more info about the spilled allocno. |
| (push_allocnos_to_stack): Use allocno_spill_priority. Add more |
| checks on bad spill. |
| |
| * ira-build.c (loop_node_to_be_removed_p): Remove. |
| (loop_compare_func, mark_loops_for_removal): New functions. |
| (remove_uneccesary_loop_nodes_from_loop_t): Use member |
| to_remove_p. |
| (remove_unnecessary_allocnos): Call mark_loops_for_removal. |
| |
| * ira.c (ira): Don't change flag_ira_algorithm. |
| |
| * params.def (ira-max-loops-num): Change the value. |
| |
| 2008-11-25 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up. |
| Disable unsupported alternative for ColdFire, |
| add new alternative that ColdFire can handle. |
| |
| 2008-11-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * regrename.c (merge_overlapping_regs): Add registers artificially |
| defined at the top of the basic block to the set of live ones just |
| before the first insn. |
| |
| 2008-11-25 H.J. Lu <hongjiu.lu@intel.com> |
| Joey Ye <joey.ye@intel.com> |
| |
| PR middle-end/37843 |
| * config/i386/i386.c (ix86_function_ok_for_sibcall): Return |
| false if we need to align the outgoing stack. |
| (ix86_update_stack_boundary): Check parm_stack_boundary. |
| |
| 2008-11-25 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/38151 |
| PR middle-end/38236 |
| * tree-ssa-alias.c (struct alias_info): Remove written_vars. |
| Remove dereferenced_ptrs_store and dereferenced_ptrs_load |
| in favor of dereferenced_ptrs. |
| (init_alias_info): Adjust. |
| (delete_alias_info): Likewise. |
| (compute_flow_insensitive_aliasing): Properly |
| include all aliased variables. |
| (update_alias_info_1): Use dereferenced_ptrs. |
| (setup_pointers_and_addressables): Likewise. |
| (get_smt_for): Honor ref-all pointers and pointers with known alias |
| set properly. |
| * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers. |
| |
| 2008-11-25 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/38254 |
| * config/i386/sync.md (memory_barrier_nosse): New insn pattern. |
| (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2. |
| |
| 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo. |
| |
| 2008-11-24 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define. |
| |
| 2008-11-24 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| PR target/35018 |
| * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes. |
| (addsi_lshrsi_31): Add ColdFire-friendly alternatives. |
| |
| 2008-11-24 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from |
| UNSPECV_CMPXCHG_[12]. |
| * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of |
| UNSPECV_CMPXCHG_[12]. |
| |
| PR target/36793 |
| * config/i386/sync.md (memory_barrier): New expander. |
| |
| 2008-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37135 |
| * dse.c (find_shift_sequence): Optimize extraction from a constant. |
| |
| 2008-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * pa.c (function_arg): Revert 2008-10-26 change. |
| |
| 2008-11-23 Helge Deller <deller@gmx.de> |
| |
| * pa/linux-atomic.c (EBUSY): Define if not _LP64. |
| (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call |
| succeeded and lws_ret is not equal to oldval. |
| |
| 2008-11-23 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used. |
| |
| 2008-11-22 Andreas Schwab <schwab@suse.de> |
| |
| * varasm.c (default_file_start): Suppress ASM_APP_OFF also with |
| -dA and -dP. |
| |
| 2008-11-22 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>. |
| Use constant 1 as the operand. |
| * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode. |
| Rename gen_rdhwr to gen_rdhwr_synci_step_si or |
| gen_rdhwr_synci_step_di depending on the size of Pmode. |
| |
| 2008-11-22 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/38222 |
| * config/i386/i386.md (SWI248): New mode iterator. |
| (SWI32): Remove mode iterator. |
| (popcount<mode>2): Rename from popcounthi2, popcountsi2 and |
| popcounthi2 insn patterns. Macroize pattern using SWI248 mode |
| iterator. Generate popcnt mnemonic without mode extensions |
| for Darwin x86 targets. |
| (*popcount<mode>2_cmp): Ditto. |
| (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode |
| extensions for Darwin x86 targets. |
| |
| 2008-11-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define |
| only if HAVE_AS_SPARC_UA_PCREL is defined. |
| |
| 2008-11-22 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * ira-costs.c (find_allocno_class_costs): Work out the maximum |
| allocno_costs value of the classees with the lowest total_costs |
| value. Use this to set ALLOCNO_COVER_CLASS_COST here... |
| (setup_allocno_cover_class_and_costs): ...rather than here. |
| Use the ALLOCNO_COVER_CLASS_COST for all registers in the |
| preferred class. |
| |
| 2008-11-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37323 |
| * builtins.c (expand_builtin_apply_args): Emit sequence before |
| parm_birth_insn instead of after entry_of_function's first insn. |
| |
| PR middle-end/37316 |
| * function.c (assign_parm_remove_parallels): Pass |
| data->passed_type as third argument to emit_group_store. |
| |
| PR target/37170 |
| * final.c (mark_symbol_refs_as_used): New function. |
| * output.h (mark_symbol_refs_as_used): New prototype. |
| * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed. |
| (s390_output_pool_entry): Use mark_symbol_refs_as_used. |
| * config/arm/arm.md (consttable_4): Likewise. |
| |
| PR target/37880 |
| * doc/invoke.texi: Adjust wording of -mcmodel=medium description. |
| |
| 2008-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38200 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only |
| propagate x = &a into *x = b if conversion from b to a's type is |
| useless. |
| |
| 2008-11-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * caller-save.c (insert_one_insn): Take into account REG_INC notes |
| for the liveness computation of the new insn. |
| |
| 2008-11-21 DJ Delorie <dj@redhat.com> |
| |
| * config/stormy16/stormy16.md (movqi_internal, movhi_internal): |
| Moves to/from below100 space (W) can only use r0-r7. |
| |
| 2008-11-21 Paolo Carlini <paolo.carlini@oracle.com> |
| |
| PR other/38214 |
| * doc/invoke.texi (Optimization Options): Fix typo. |
| |
| 2008-11-21 H.J. Lu <hongjiu.lu@intel.com> |
| Xuepeng Guo <xuepeng.guo@intel.com> |
| |
| * config.gcc (extra_headers): For x86 and x86-64, remove |
| gmmintrin.h, add immintrin.h and avxintrin.h. |
| |
| * config/i386/gmmintrin.h: Renamed to ... |
| * config/i386/avxintrin.h: This. Issue an error if |
| _IMMINTRIN_H_INCLUDED is undedined. |
| |
| * config/i386/immintrin.h: New. |
| |
| 2008-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/38208 |
| * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use |
| mode of PLUS, not mode of the eliminated register. |
| |
| 2008-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3. |
| * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3. |
| (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3. |
| (sse2_nand<mode>3): Rename to sse2_andnot<mode>3. |
| (*sse_nand<mode>3): Rename to *sse_andnot<mode>3. |
| (*avx_nand<mode>3): Rename to *avx_andnot<mode>3. |
| (*nand<mode>3): Rename to *andnot<mode>3. |
| (*nandtf3): rename to *andnottf3. |
| * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]: |
| Use CODE_FOR_mmx_andnotv2si3. |
| [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3. |
| [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3. |
| [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3. |
| [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3. |
| [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3. |
| |
| 2008-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/37908 |
| * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND |
| case by calculating ~(new_reg & val) instead of (~new_reg & val). |
| * config/ia64/sync.md (sync_nand<mode>): Change insn RTX |
| to (not:IMODE (and:IMODE (...))). |
| (sync_old_nand<mode>): Ditto. |
| (sync_new_nand<mode>): Ditto. |
| |
| 2008-11-20 Joseph Myers <joseph@codesourcery.com> |
| |
| * config/arm/thumb2.md (thumb2_casesi_internal, |
| thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4. |
| |
| 2008-11-20 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic |
| nand to the changed 4.4 semantic. |
| |
| 2008-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/29215 |
| * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined. |
| (fold_builtin_memory_op): Handle even the case where just one |
| of src and dest is an address of a var decl component, using |
| TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant |
| and readonly_data_expr src check. |
| * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut |
| up warnings. |
| |
| PR rtl-optimization/36998 |
| * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset |
| arguments. Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))). |
| (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust |
| stack_adjust_offset callers. |
| (dwarf2out_stack_adjust): Likewise. Handle insns in annulled |
| branches properly. |
| (compute_barrier_args_size): Handle insns in annulled branches |
| properly. |
| |
| 2008-11-20 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/38151 |
| * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]: |
| Handle cases when integer argument crosses argument register boundary. |
| |
| 2008-11-20 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| PR bootstrap/33100 |
| * config.gcc (i[34567]86-*-solaris2*): Don't include |
| i386/t-crtstuff here. |
| Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host. |
| * config/i386/t-sol2: Move to libgcc/config/i386. |
| |
| 2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org> |
| |
| PR driver/21706 |
| * tlink.c: Include "libiberty.h". |
| (initial_cwd): Change type into char *. |
| (tlink_init): Call getpwd instead of getcwd. |
| |
| 2008-11-19 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR rtl-optimization/32283 |
| * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base |
| of the induction variable to decide whether it may wrap. |
| * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the |
| initialization of the bound before the loop. |
| * simplify-rtx.c (simplify_binary_operation_1): Add two |
| simplifications regarding AND. |
| (simplify_plus_minus): Only fail if no simplification is possible. |
| * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple. |
| |
| 2008-11-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/36631 |
| * gimplify.c (gimplify_call_expr): Defer most of the cannot inline |
| checking until GIMPLE lowering. |
| * gimple-low.c (check_call_args): New function. |
| (lower_stmt) <case GIMPLE_CALL>: Call it. |
| |
| 2008-11-19 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize |
| with the same type as the first operand of the AND expression. |
| |
| 2008-11-19 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR bootstrap/37859 |
| * ira-int.h (struct ira_loop_tree_node): New member |
| entered_from_non_parent_p. |
| |
| * ira-color.c (print_loop_title): Print loop bbs. |
| |
| * ira-emit.c (entered_from_non_parent_p, |
| setup_entered_from_non_parent_p): New functions. |
| (not_modified_p): Rename to store_can_be_removed_p. Check there |
| is no side entries. |
| (generate_edge_moves): Use store_can_be_removed_p instead of |
| not_modified_p. |
| (ira_emit): Call setup_entered_from_non_parent_p. |
| |
| * ira-build.c (copy_info_to_removed_store_destinations): |
| Accumulate CALL_FREQ, CALL_CROSSED_NUM, and |
| ALLOCNO_EXCESS_PRESSURE_POINTS_NUM. |
| (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always |
| update all accumulated attributes. |
| |
| 2008-11-19 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR bootstrap/37790 |
| * ira-int.h (ira_copy_allocno_live_range_list, |
| ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p, |
| ira_finish_allocno_live_range_list): New prototypes. |
| (ira_allocno_live_ranges_intersect_p, |
| ira_pseudo_live_ranges_intersect_p): Remove. |
| |
| * ira-conflicts.c (ira_allocno_live_ranges_intersect_p, |
| ira_pseudo_live_ranges_intersect_p): Rename to |
| allocnos_have_intersected_live_ranges_p and |
| pseudos_have_intersected_live_ranges_p. Move them from here to ... |
| |
| * ira-color.c: ... here |
| (coalesced_allocno_conflict_p): Use |
| allocnos_have_intersected_live_ranges_p. |
| (coalesced_allocnos_living_at_program_points, |
| coalesced_allocnos_live_at_points_p, |
| set_coalesced_allocnos_live_points): Remove. |
| (slot_coalesced_allocnos_live_ranges, |
| slot_coalesced_allocno_live_ranges_intersect_p, |
| setup_slot_coalesced_allocno_live_ranges): New. |
| (coalesce_spill_slots): Use ranges of coalesced allocnos. |
| (ira_sort_regnos_for_alter_reg): Use |
| allocnos_have_intersected_live_ranges_p. |
| (ira_reuse_stack_slot): Use |
| pseudos_have_intersected_live_ranges_p. |
| |
| * global.c (pseudo_for_reload_consideration_p): Check |
| flag_ira_share_spill_slots too. |
| |
| * ira-build.c (copy_allocno_live_range_list): Rename to |
| ira_copy_allocno_live_range_list. Make it external. |
| (merge_ranges): Rename to ira_merge_allocno_live_ranges. Make it |
| external. |
| (ira_allocno_live_ranges_intersect_p): New. |
| (ira_finish_allocno_live_range_list): New. |
| (finish_allocno): Use it. |
| (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges. |
| (copy_info_to_removed_store_destinations): Ditto. Use |
| ira_copy_allocno_live_range_list. |
| (ira_flattening): Use ira_merge_allocno_live_ranges. |
| |
| * ira.c (too_high_register_pressure_p): New function. |
| (ira): Switch off sharing spill slots if the pressure is too high. |
| |
| 2008-11-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with |
| non-sizetype offsets if their precision matches that of the pointer. |
| * expr.c (expand_expr_real_1): Always sign-extend the offset |
| operand of a POINTER_PLUS_EXPR. |
| |
| 2008-11-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| * config.gcc: Unobsolete mips-sgi-irix[56]*. |
| (mips-sgi-irix[56]*): No need to use fixproto. |
| |
| 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com> |
| Paul Brook <paul@codesourcery.com> |
| |
| * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid |
| executable stack. |
| |
| 2008-11-19 Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs. |
| |
| 2008-11-19 Razya Ladelsky <razya@il.ibm.com> |
| |
| PR target/38156 |
| * tree-parloops.c (loop_parallel_p): NULL vect_dump. |
| (separate_decls_in_region): Create shared struct even when there |
| are only reductions. |
| |
| 2008-11-19 Hariharan Sandanagobalane <hariharan@picochip.com> |
| |
| * config/picochip/picochip.c (headers): Remove an unnecessary |
| header file. |
| |
| 2008-11-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR target/36133 |
| * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines. |
| * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for |
| shift instructions. |
| * config/m68k/m68k.md: Adjust all conditional branches that use the |
| carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE. |
| |
| 2008-11-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/37362 |
| * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high" |
| is a register or zero operand in the correct mode before generating |
| mtch1 insn or a register operand in the correct mode before generating |
| mfch1 insn. |
| (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand. |
| |
| 2008-11-18 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*. |
| (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to |
| mipsisa*-*-elf*. Handle mipsisa64r2*. |
| * config/mips/sde.h (LINK_SPEC): Handle -mips64r2. |
| * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add |
| mips64r2. |
| (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. |
| * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add |
| mips64r2. |
| (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64. Add mips64r2/mips16. |
| Fix mips16 if mips64 or mips64r2 are multilib defaults. |
| * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add |
| mips64r2. |
| |
| 2008-11-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/38130 |
| * config/i386/i386.md (allocate_stack_worker_32, |
| allocate_stack_worker_64): Don't use match_dup between input and |
| output operand. |
| (allocate_stack): Adjust gen_stack_worker_{32,64} caller. |
| * config/i386/i386.c (ix86_expand_prologue): Likewise. |
| |
| 2008-11-18 Kai Tietz <kai.tietz@onevision.com> |
| |
| * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def |
| is forced when trying to do a symbol link for it. |
| |
| 2008-11-17 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * expmed.c (extract_bit_field_1): Also use a temporary and |
| convert_extracted_bit_field when the conversion from ext_mode to |
| the target mode requires explicit truncation. |
| |
| 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first. |
| Tweak formatting. |
| * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator |
| registers when not optimizing. |
| |
| 2008-11-17 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.md (*mul_acc_si): Remove middle alternative |
| and its associated define_split. Expose the all-d alternative |
| to the register allocator, but mark it with "?". Mark the first |
| alternative with "*?*?". |
| (*mul_sub_si): Likewise. |
| (*mul_acc_si_r3900): New pattern. |
| |
| 2008-11-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/38140 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If |
| propagating x = &a into *x = b, add a cast if not useless |
| type conversion or don't optimize if another stmt would be |
| needed. |
| |
| 2008-11-17 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/37908 |
| * optabs.c (expand_sync_operation): Properly handle NAND case |
| by calculating ~(t1 & val) instead of (~t1 & val). |
| * builtins.c (expand_builtin_sync_operation): Warn for changed |
| semantics in NAND builtins. |
| * c.opt (Wsync-nand): New warning option. Describe -Wsync-nand. |
| |
| * doc/invoke.texi (Warning options): Add Wsync-nand. |
| * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct |
| __sync_fetch_and_nand builtin operation in the example. Add a note |
| about changed semantics in GCC 4.4. |
| [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin |
| operation in the example. Add a note about changed semantics in |
| GCC 4.4. |
| |
| 2008-11-16 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_function_body_availability): Fix test of externally |
| visible. |
| |
| 2008-11-16 Joshua Kinard <kumba@gentoo.org> |
| |
| * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000 |
| to -mips4. |
| |
| 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/38052 |
| * config/mips/mips.c (mips_cfun_call_saved_reg_p) |
| (mips_cfun_might_clobber_call_saved_reg_p): New functions, |
| split out from... |
| (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP |
| rather than call_really_used_regs when handling $gp. |
| |
| 2008-11-16 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR target/38052 |
| * config/mips/mips.c (machine_function): Update the comment |
| above global_pointer. |
| (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate |
| that a function doesn't need a global pointer. |
| (mips_current_loadgp_style): Update accordingly. |
| (mips_restore_gp): Likewise. |
| (mips_output_cplocal): Likewise. |
| (mips_expand_prologue): Likewise. |
| |
| 2008-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode' |
| parameter. Use DImode for computing the number of registers. |
| (function_arg): Adjust for above change. |
| (function_value): Likewise. |
| |
| 2008-11-15 Zdenek Dvorak <ook@ucw.cz> |
| |
| PR tree-optimization/37950 |
| * tree-flow-inline.h (memory_partition): Return NULL when aliases were |
| not computed for the current function. |
| |
| 2008-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/38123 |
| * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between |
| gpr and other COMPONENT_REFs. |
| |
| 2008-11-15 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/38051 |
| * tree-ssa-alias.c (update_alias_info_1): Manually find |
| written variables. |
| |
| 2008-11-15 Joshua Kinard <kumba@gentoo.org> |
| |
| * doc/invoke.texi (-mfix-r10000): Document. |
| * config/mips/mips.opt (mfix-r10000): New option. |
| * config/mips/mips-protos.h (mips_output_sync_loop): Declare. |
| * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?. |
| (MIPS_COMPARE_AND_SWAP_12): Likewise. |
| (MIPS_SYNC_OP): Likewise. |
| (MIPS_SYNC_OP_12): Likewise. |
| (MIPS_SYNC_OLD_OP_12): Likewise. |
| (MIPS_SYNC_NEW_OP_12): Likewise. |
| (MIPS_SYNC_OLD_OP): Likewise. |
| (MIPS_SYNC_NAND): Likewise. |
| (MIPS_SYNC_OLD_NAND): Likewise. |
| (MIPS_SYNC_EXCHANGE): Likewise. |
| (MIPS_SYNC_EXCHANGE_12): Likewise. |
| (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely |
| delay slots. |
| (MIPS_SYNC_NEW_NAND): Likewise. |
| * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'. |
| (mips_init_print_operand_punct): Treat '~' as a punctuation character. |
| (mips_output_sync_loop): New function. |
| (mips_override_options): Make -march=r10000 imply -mfix-r10000. |
| Make -mfix-r10000 require branch-likely instructions. |
| * config/mips/sync.md (sync_compare_and_swap<mode>): Use |
| mips_output_sync_loop. |
| (compare_and_swap_12): Likewise. |
| (sync_add<mode>): Likewise. |
| (sync_<optab>_12): Likewise. |
| (sync_old_<optab>_12): Likewise. |
| (sync_new_<optab>_12): Likewise. |
| (sync_nand_12): Likewise. |
| (sync_old_nand_12): Likewise. |
| (sync_new_nand_12): Likewise. |
| (sync_sub<mode>): Likewise. |
| (sync_old_add<mode>): Likewise. |
| (sync_old_sub<mode>): Likewise. |
| (sync_new_add<mode>): Likewise. |
| (sync_new_sub<mode>): Likewise. |
| (sync_<optab><mode>): Likewise. |
| (sync_old_<optab><mode>): Likewise. |
| (sync_new_<optab><mode>): Likewise. |
| (sync_nand<mode>): Likewise. |
| (sync_old_nand<mode>): Likewise. |
| (sync_new_nand<mode>): Likewise. |
| (sync_lock_test_and_set<mode>): Likewise. |
| (test_and_set_12): Likewise. |
| |
| 2008-11-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gcc.c (cc1_options): Fix comment. |
| |
| 2008-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/37561 |
| * c-typeck.c (build_unary_op): Don't call get_unwidened. Use |
| argtype instead of result_type. |
| |
| 2008-11-14 Adam Nemet <anemet@caviumnetworks.com> |
| |
| * ira-int.h (struct ira_loop_tree_node): Improve comments for |
| subloop_next/next and subloops/childen fields. |
| |
| 2008-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default. |
| (STANDARD_INCLUDE_DIR): Redefine to "/include". |
| (LOCAL_INCLUDE_DIR): Undefine. |
| * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define. |
| |
| 2008-11-14 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/37397 |
| * ira-int.h (struct ira_allocno): New member bad_spill_p. |
| (ALLOCNO_BAD_SPILL_P): New macro. |
| |
| * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P. |
| |
| * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P. |
| (create_cap_allocno, propagate_allocno_info, |
| remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P. |
| (update_bad_spill_attribute): New function. |
| (ira_build): Call it. |
| |
| * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P. |
| |
| 2008-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/38104 |
| * gimplify.c (gimple_regimplify_operands): Add referenced vars |
| before calling mark_symbols_for_renaming, not after it. |
| |
| 2008-11-14 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change. |
| (OVERRIDE_OPTIONS): Likewise. |
| |
| 2008-11-14 Maxim Kuvyrkov <maxim@codesourcery.com> |
| Andrew Stubbs <ams@codesourcery.com> |
| Gunnar Von Boehn <gunnar@genesi-usa.com> |
| |
| PR target/36134 |
| * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring |
| the shorter LEA insn over ADD.L where possible. |
| |
| 2008-11-14 Thomas Schwinge <tschwinge@gnu.org> |
| |
| * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd |
| systems, which are assumend to always provide SSP-support in glibc. |
| Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*' |
| case. |
| * configure: Regenerate. |
| |
| 2008-11-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/36125 |
| * function.c (gimplify_parameters): For callee copies parameters, |
| move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy. |
| |
| 2008-11-13 Thomas Schwinge <tschwinge@gnu.org> |
| |
| PR target/28102 |
| * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*', |
| x86 parts into the `i[34567]86-*-linux*' and parts that are |
| independent of the processor architecture into the `*-*-linux*' cases. |
| (*-*-linux*): Consider `linux.opt' only for Linux-based configurations. |
| * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine. |
| (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine. |
| [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine. |
| * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine. |
| (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead... |
| (LINUX_TARGET_OS_CPP_BUILTINS): Redefine. |
| |
| 2008-11-13 Ruan Beihong <ruanbeihong@gmail.com> |
| |
| * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns. |
| * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc. |
| (ls2_idiv): Likewise idiv3. |
| (ls2_prefetch): New reservation. |
| * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF. |
| * config/mips/mips.md (type): Add imul3nc and idiv3. |
| (length): Handle idiv3. |
| (any_mod): New code_iterator. |
| (u): Handle MOD and UMOD. |
| (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets. |
| (prefetch): Handle TARGET_LOONGSON_2EF. |
| |
| 2008-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/27017 |
| * dwarf2out.c (prune_unused_types_walk_local_classes): New function. |
| (prune_unused_types_walk): Call it for non-perennial local classes. |
| Set die_mark to 2 if recursing on children. If die_mark is 1 on |
| entry, just set it to 2 and recurse on children, don't walk attributes |
| again. |
| |
| 2008-11-13 Martin Michlmayr <tbm@cyrius.com> |
| |
| * c-common.c (warn_about_parentheses): Add missing whitespace |
| in warning. |
| |
| 2008-11-13 Paul Brook <paul@codesourcery.com> |
| |
| * doc/invoke.texi: Document --fix-cortex-m3. |
| * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if |
| Cortex-M3 cpu is selected. |
| (output_move_double): Avoid overlapping base register and first |
| destination register when fix_cm3_ldrd. |
| * config/arm/arm.opt: Add mfix-cortex-m3-ldrd. |
| |
| 2008-11-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/38100 |
| * gimple.h (gimple_range_check_failed): Remove prototype. |
| * gimple.c (gimple_check_failed): Don't check GCC_VERSION |
| in guarding #if. |
| (gimple_range_check_failed): Removed. |
| |
| 2008-11-13 Andrew Haley <aph@redhat.com> |
| |
| PR bootstrap/38088 |
| * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific |
| __LONG_LONG_MAX__. |
| |
| 2008-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/36478 |
| Revert: |
| 2007-05-07 Mike Stump <mrs@apple.com> |
| * doc/invoke.texi (Warning Options): Document that -Wempty-body |
| also checks for and while statements in C++. |
| |
| 2008-11-12 Dodji Seketeli <dodji@redhat.com> |
| |
| PR debug/27574 |
| * cgraph.h: New abstract_and_needed member to struct cgraph_node. |
| * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions |
| - which clones are reachable - as "abstract and needed". |
| * cgraph.c (cgraph_release_function_body): If a node is |
| "abstract and needed", do not release its DECL_INITIAL() content |
| that will be needed to emit debug info. |
| |
| 2008-11-12 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/27880 |
| * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro |
| to set HAVE_GETIPINFO. |
| * aclocal.m4: Include ../config/unwind_ipinfo.m4. |
| * configure: Regenerate. |
| * config.in: Regenerate. |
| |
| 2008-11-12 Jack Howarth <howarth@bromo.med.uc.edu> |
| |
| PR bootstrap/38010 |
| * gcc/config.gcc: Use darwin9.h on darwin10 as well. |
| |
| 2008-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| Revert: |
| 2008-10-21 Jakub Jelinek <jakub@redhat.com> |
| * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs. |
| |
| 2008-11-12 Jason Merrill <jason@redhat.com> |
| |
| PR c++/38007 |
| * c-common.c (c_common_signed_or_unsigned_type): Remove C++ |
| special casing. |
| |
| 2008-11-12 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb, |
| atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and |
| atmega32u6 devices. |
| * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). |
| * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). |
| |
| 2008-11-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> |
| |
| * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove |
| packed-stack special handling. |
| (FRAME_ADDR_RTX): Add definition. |
| |
| 2008-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/35366 |
| * fold-const.c (native_encode_string): New function. |
| (native_encode_expr): Use it for STRING_CST. |
| |
| 2008-11-12 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the |
| insns if the intermediate value will be used later. |
| |
| 2008-11-12 Andreas Schwab <schwab@suse.de> |
| |
| * config/m68k/m68k.c (print_operand): Mask off extra extension |
| bits when writing out the representation of real values. |
| |
| 2008-11-12 Ira Rosen <irar@il.ibm.com> |
| |
| PR tree-optimization/38079 |
| * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file |
| with vect_dump. |
| |
| 2008-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/35334 |
| * c-pretty-print.c (pp_c_complex_expr): New function. |
| (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it. |
| |
| PR target/35366 |
| * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment |
| than INNER and INNER is a constant, forcibly align INNER as much |
| as needed. |
| |
| 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * cse.c (fold_rtx): Remove redundant gen_rtx_CONST. |
| |
| 2008-11-11 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| PR rtl-optimization/37363 |
| * simplify-rtx.c (simplify_plus_minus): Don't create |
| (const (minus ...)) expresisons. |
| |
| 2008-11-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO |
| handling. |
| |
| 2008-11-10 Catherine Moore <clm@codesourcery.com> |
| |
| * config.gcc (mips64vrel-*-elf*): Include the tm_file |
| prior to vr.h. |
| * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New. |
| (BASE_DRIVER_SELF_SPECS): Remove. |
| (DRIVER_SELF_SPECS): New definition. |
| * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Include |
| BASE_DRIVER_SELF_SPECS. |
| * config/mips/sde.h: Likewise. |
| * config/mips/iris6.h: Likewise. |
| * config/mips/vr.h: Likewise. |
| * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New. |
| |
| 2008-11-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimizations/37948 |
| * ira-int.h (struct ira_allocno_copy): New member constraint_p. |
| (ira_create_copy, ira_add_allocno_copy): New parameter. |
| |
| * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it |
| to ira_add_allocno_copy. |
| (process_reg_shuffles, add_insn_allocno_copies): Pass a new |
| parameter to process_regs_for_copy. |
| (propagate_copies): Pass a new parameter to ira_add_allocno_copy. |
| Fix typo in passing second allocno to ira_add_allocno_copy. |
| |
| * ira-color.c (update_conflict_hard_regno_costs): Use head of |
| coalesced allocnos list. |
| (assign_hard_reg): Ditto. Check that assigned allocnos are not in |
| the graph. |
| (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket. |
| (add_ira_allocno_to_ordered_bucket): Rename to |
| add_allocno_to_ordered_bucket. |
| (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use |
| head of coalesced allocnos list. |
| (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP. |
| Check that it is aready calculated. |
| (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill. |
| (setup_allocno_left_conflicts_num): Use head of coalesced allocnos |
| list. |
| (coalesce_allocnos): Do extended coalescing too. |
| |
| * ira-emit.c (add_range_and_copies_from_move_list): Pass a new |
| parameter to ira_add_allocno_copy. |
| |
| * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new |
| parameter. |
| (print_copy): Print copy origination too. |
| |
| * ira-costs.c (scan_one_insn): Use alloc_pref for load from |
| equivalent memory. |
| |
| 2008-11-10 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR rtl-optimization/37514 |
| * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set |
| flag_ira_share_spill_slots to 2 if it's already non-zero. |
| (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if |
| flag_ira_share_spill_slots is 2. |
| |
| 2008-11-10 Kevin Buettner <kevinb@redhat.com> |
| |
| * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2. |
| (prologue_enter_32): Set FB to SP - 4. |
| |
| 2008-11-10 DJ Delorie <dj@redhat.com> |
| |
| * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB |
| constraint for single-bit-clear in lower byte of HI constant, vs |
| Imb which just ignores the upper byte. |
| * config/m32c/predicates.md (m32c_1mask8_operand): Use it. |
| * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it. |
| (iorhi3_16): Check for single bit set, not single bit clear. |
| |
| 2008-11-10 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets. |
| |
| * doc/sourcebuild.texi (Torture Tests): Fix formatting in example. |
| |
| 2008-11-10 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * calls.c (store_unaligned_arguments_into_pseudos): Deal only with |
| values living in memory and use more precise alignment information. |
| |
| 2008-11-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/35314 |
| * tree-mudflap.c (mf_build_check_statement_for): Split then_block |
| after __mf_check call if the call must end a bb. |
| |
| 2008-11-10 Ralph Loader <suckfish@ihug.co.nz> |
| |
| PR middle-end/37807 |
| PR middle-end/37809 |
| * combine.c (force_to_mode): Do not process vector types. |
| |
| * rtlanal.c (nonzero_bits1): Do not process vector types. |
| (num_sign_bit_copies1): Likewise. |
| |
| 2008-11-09 Thomas Schwinge <tschwinge@gnu.org> |
| |
| * config/i386/gnu.h: Add copyright and licensing header. |
| * config/gnu.h: Likewise. |
| |
| 2008-11-07 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| * fwprop.c (fwprop_done): Call df_remove_problem. |
| |
| 2008-11-07 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR middle-end/37379 |
| * tree-scalar-evolution.c (instantiate_scev_1): Return |
| chrec_dont_know for VL_EXP_CLASS_P. |
| |
| 2008-11-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * reg-stack.c (reg_to_stack): Add missing braces in memset |
| size calculation. |
| |
| 2008-11-06 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/arm/bpabi.h (PROFILE_HOOK): New undef. |
| (NO_PROFILE_COUNTERS): New define. |
| |
| 2008-11-06 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/26397 |
| * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define. |
| |
| 2008-11-06 Kazu Hirata <kazu@codesourcery.com> |
| |
| PR target/35574 |
| * config/sparc/constraints.md (D): New. |
| * config/sparc/predicates.md (const_double_or_vector_operand): New. |
| * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the |
| 'D' constraint. |
| * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64): |
| Use the 'D' constraint in addition to 'F' in some alternatives. |
| (DF splitter): Generalize for V64mode. |
| * doc/md.texi (SPARC): Document the 'D' constraint. |
| |
| 2008-11-06 Uros Bizjak <ubizjak@gmail.com> |
| |
| * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan. |
| |
| 2008-11-06 Ben Elliston <bje@au.ibm.com> |
| |
| * gcc.c: Remove ancient comment about a bug in Sun cc. |
| |
| 2008-11-05 Janis Johnson <janis187@us.ibm.com> |
| |
| * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS. |
| |
| 2008-11-06 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_override_options): Comment fix. |
| |
| 2008-11-06 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option |
| description. |
| |
| 2008-11-05 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR target/38016 |
| * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not |
| just MEM_P. |
| |
| 2008-11-05 Martin Jambor <mjambor@suse.cz> |
| |
| PR middle-end/37861 |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn |
| pointer arithmetics into array_ref if the array is accessed |
| through an indirect_ref. |
| |
| 2008-11-05 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/37742 |
| * tree-ssa.c (useless_type_conversion_p_1): Check different restrict |
| qualified pointer conversion before stripping qualifiers. |
| * gimplify.c (create_tmp_from_val): Use correctly qualified type. |
| * tree-flow.h (may_propagate_address_into_dereference): Declare. |
| * tree-ssa-ccp.c (may_propagate_address_into_dereference): New |
| function. |
| (ccp_fold): Use it. |
| * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions, |
| properly canonicalize binary ops. |
| (forward_propagate_addr_expr_1): Use |
| may_propagate_address_into_dereference. |
| |
| 2008-11-05 Uros Bizjak <ubizjak@gmail.com> |
| |
| PR middle-end/37286 |
| * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]: |
| Initialize uninitialized input registers with a NaN. |
| |
| 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| PR middle-end/37833 |
| |
| * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. |
| |
| 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| PR middle-end/37943 |
| |
| * graphite.c (scopdet_basic_block_info): Fix loops with multiple |
| exits and conditions. |
| * testsuite/gcc.dg/graphite/pr37943.c: New. |
| |
| 2008-11-04 Jakub Jelinek <jakub@redhat.com> |
| Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR c/35430 |
| * c-common.c (warn_for_sign_compare): For complex result_type |
| use component's type. |
| |
| 2008-11-04 Jakub Jelinek <jakuB@redhat.com> |
| |
| * print-tree.c (print_node): Use code instead of TREE_CODE (node). |
| |
| * print-tree.c (print_node): Don't print DECL_INITIAL |
| for PARM_DECL. |
| |
| PR c/37106 |
| * c-common.c (parse_optimize_options): Save and restore |
| flag_strict_aliasing around decode_options call. |
| |
| 2008-11-04 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/driver-i386.c (enum vendor_signatures): New enum. |
| (host_detect_local_cpu): Use it instead of casted strings to |
| compare vendor signatures. |
| |
| 2008-11-03 Mikael Pettersson <mikpe@it.uu.se> |
| |
| PR target/37989 |
| * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a |
| or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC. |
| |
| 2008-11-03 Catherine Moore <clm@codesourcery.com> |
| |
| * config/mips.c (mips_conditional_register_usage): Handle the |
| DSP control register. |
| * doc/extend.texi: Document the DSP control register. |
| |
| 2008-11-03 Steve Ellcey <sje@cup.hp.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (expand_omp_for_generic): If iter_type has different |
| precision than type and type is a pointer type, cast n1 and n2 |
| first to an integer type with the same precision as pointers |
| and only afterwards to iter_type. |
| |
| 2008-11-03 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation. |
| (UNSPEC_GOTSYM_OFF): New unspec. |
| (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands. |
| (pic_add_dot_plus_eight): Likewise. |
| (tls_load_dot_plus_eight): Likewise. Update peephole2. |
| * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the |
| UNSPEC_PIC_BASE operands. |
| * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF. |
| (arm_output_addr_const_extra): Handle it. |
| |
| 2008-11-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial |
| integer class to full integer class if the offset is not word-aligned. |
| |
| 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| |
| PR rtl-opt/37782 |
| * loop-doloop.c (doloop_modify): Add from_mode argument that says what |
| mode count is in. |
| (doloop_optimize): Update call to doloop_modify. |
| |
| 2008-11-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (bitfield_overlaps_p): Fix oversight. |
| |
| 2008-11-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| PR other/37463 |
| * configure.ac (gcc_cv_ld_ro_rw_mix): Move before |
| gcc_cv_as_cfi_directive. |
| (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports |
| merging read-only and read-write sections or assembler emits |
| read-write .eh_frame sections. |
| * configure: Regenerate. |
| |
| 2008-11-03 Nathan Froyd <froydnj@codesourcery.com> |
| |
| Revert: |
| 2008-10-31 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence |
| problem. |
| (rs6000_emit_prologue): Invert logic. |
| * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit |
| (reg:P 11) instead of match_operand. |
| (*save_fpregs_<mode>): Likewise. |
| (*restore_gpregs_<mode>): Likewise. |
| (*return_and_restore_gpregs_<mode>): Likewise. |
| (*return_and_restore_fpregs_<mode>): Likewise. |
| * config/rs6000/spe.md (*save_gpregs_spe): Use explicit |
| (reg:P 11) insted of match_operand. |
| (*restore_gpregs_spe): Likewise. |
| (*return_and_restore_gpregs_spe): Likewise. |
| |
| 2008-11-03 Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| PR tree-optimization/37684 |
| * gcc.dg/graphite/pr37684.c: New. |
| * graphite.c (exclude_component_ref): New. |
| (is_simple_operand): Call exclude_component_ref. |
| |
| 2008-11-03 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/36908 |
| * testsuite/gcc.dg/tree-ssa/pr36908.c: New. |
| * tree-loop-distribution.c (number_of_rw_in_rdg): New. |
| (number_of_rw_in_partition): New. |
| (partition_contains_all_rw): New. |
| (ldist_gen): Do not distribute when one of the partitions |
| contains all the memory operations. |
| |
| 2008-11-03 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and |
| EDGE_IRREDUCIBLE_LOOP. |
| |
| 2008-11-03 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case |
| where we have one entry point in the loop which isn't the head. |
| |
| 2008-11-03 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/37573 |
| * tree-data-ref.c (split_constant_offset_1): Fix tuplification. |
| |
| 2008-11-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37858 |
| * passes.c (execute_one_pass): Don't look at cfun->curr_properties |
| for ipa and simple ipa passes. |
| |
| 2008-11-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/37542 |
| * tree-ssa-pre.c (fully_constant_expression): Handle more cases. |
| * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo. |
| (vn_nary_op_lookup_stmt): Adjust for unary reference trees. |
| (vn_nary_op_insert_stmt): Likewise. |
| (visit_use): Likewise. |
| |
| 2008-11-02 Anatoly Sokolov <aesok@post.ru> |
| |
| * config/avr/avr.md (UNSPEC_SWAP): Remove constants. |
| (*swap): Remove. |
| (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8, |
| rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns. |
| (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4, |
| ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5, |
| lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6 |
| peephole2's): Replace unspec with rotate. |
| * config/avr/avr.c (avr_rtx_costs): Add ROTATE. |
| |
| 2008-11-02 Richard Guenther <rguenther@suse.de> |
| |
| PR tree-optimization/37991 |
| * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove. |
| * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static. |
| (set_ssa_val_to): Print if the value changed. |
| (simplify_binary_expression): Strip useless conversions. |
| |
| 2008-11-01 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR target/37939 |
| * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI |
| operand. |
| |
| 2008-11-01 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/37976 |
| * builtins.c (fold_builtin_strspn): Return a size_t. |
| (fold_builtin_strcspn): Likewise. |
| |
| 2008-10-31 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (rs6000_file_start): Output gnu |
| attribute for struct return convention. |
| |
| 2008-10-31 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/crtsavres.asm: Really, really delete. |
| |
| 2008-10-31 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence |
| problem. |
| (rs6000_emit_prologue): Invert logic. |
| * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit |
| (reg:P 11) instead of match_operand. |
| (*save_fpregs_<mode>): Likewise. |
| (*restore_gpregs_<mode>): Likewise. |
| (*return_and_restore_gpregs_<mode>): Likewise. |
| (*return_and_restore_fpregs_<mode>): Likewise. |
| * config/rs6000/spe.md (*save_gpregs_spe): Use explicit |
| (reg:P 11) insted of match_operand. |
| (*restore_gpregs_spe): Likewise. |
| (*return_and_restore_gpregs_spe): Likewise. |
| |
| 2008-10-28 Luis Machado <luisgpm@br.ibm.com> |
| |
| * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the |
| list of word switches that take args. |
| |
| 2008-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function. |
| (s390_output_pool_entry): Call it through for_each_rtx. |
| |
| PR middle-end/37730 |
| * expr.c (store_constructor): For vectors, if target is a MEM, use |
| target's MEM_ALIAS_SET instead of elttype alias set. |
| |
| 2008-10-29 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/37909 |
| * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has |
| no address. |
| |
| 2008-10-29 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/37878 |
| * config/rs6000/predicates.md (word_offset_memref_operand): |
| Restructure code and look inside auto-inc/dec addresses. |
| |
| 2008-10-29 Steve Ellcey <sje@cup.hp.com> |
| |
| PR target/32277 |
| * libgcov.c (__gcov_indirect_call_profiler): Check |
| TARGET_VTABLE_USES_DESCRIPTORS. |
| |
| 2008-10-29 Stefan Schulze Frielinghaus <xxschulz@de.ibm.com> |
| |
| * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define. |
| (INITIAL_FRAME_POINTER_OFFSET): Remove. |
| * config/spu/spu.c (spu_initial_elimination_offset): Calculate new |
| offset if eliminating soft frame pointer. |
| * config/spu/spu.md (stack_protect_set, stack_protect_test) |
| (stack_protect_test_si): Add initial machine description |
| for Stack Smashing Protector |
| |
| 2008-10-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org> |
| |
| PR 11492 |
| * c-common.c (min_precision): Move to... |
| * tree.c (tree_int_cst_min_precision): ... to here. Renamed. |
| * tree.h (tree_int_cst_min_precision): Declare. |
| * c-common.h (min_precision): Delete declaration. |
| * fold-const.c (tree_binary_nonnegative_warnv_p): Handle |
| multiplication of non-negative integer constants. |
| * c-decl.c (check_bitfield_type_and_width): Rename min_precision to |
| tree_int_cst_min_precision. |
| (finish_enum): Likewise. |
| |
| 2008-10-29 Joseph Myers <joseph@codesourcery.com> |
| |
| PR middle-end/36578 |
| * convert.c (convert_to_real): Do not optimize conversions of |
| binary arithmetic operations between binary and decimal |
| floating-point types. Consider mode of target type in determining |
| decimal type for arithmetic. Unless |
| flag_unsafe_math_optimizations, do not optimize binary conversions |
| where this may change rounding behavior. |
| * real.c (real_can_shorten_arithmetic): New. |
| * real.h (real_can_shorten_arithmetic): Declare. |
| |
| 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315, |
| ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New. |
| * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as |
| appropriate. |
| (must_save_p): For some workarounds, interrupts need to clobber a |
| P register. |
| (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0 |
| and LC1 for WA_05000257. |
| (expand_interrupt_handler_prologue): Add dummy read of CHIPID for |
| WA_05000283 and WA_05000315. |
| * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant. |
| (movbi): Add alternative to set CC to 1; improve code for setting |
| CC to 0. |
| (dummy_load): New pattern. |
| |
| 2008-10-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37870 |
| * expmed.c (extract_bit_field_1): If int_mode_for_mode returns |
| BLKmode for non-memory, convert using a wider MODE_INT mode |
| or through memory. |
| |
| PR middle-end/37913 |
| * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs |
| that haven't been removed yet. |
| |
| 2008-10-29 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (struct machine_function): New member |
| has_loopreg_clobber. |
| (bfin_expand_movmem): Set it when generating memcpy insns. |
| (n_regs_saved_by_prologue, expand_prologue_reg_save, |
| expand_epilogue_reg_restore): If we have hardware loops, |
| memcpy insns (indicated by has_loopreg_clobber) or function |
| calls, we need to save the loop registers. |
| |
| 2008-10-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (core2_cost): Fix typos in comments. |
| |
| 2008-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/37924 |
| * combine.c (make_compound_operation): Don't call make_extraction with |
| non-positive length. |
| (simplify_shift_const_1): Canonicalize count even if complement_p. |
| |
| 2008-10-28 Joseph Myers <joseph@codesourcery.com> |
| |
| * convert.c (strip_float_extensions): Do not remove or introduce |
| conversions between binary and decimal floating-point types. |
| |
| 2008-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37931 |
| * fold-const.c (distribute_bit_expr): Convert common, left and |
| right arguments to type. |
| |
| 2008-10-28 Nick Clifton <nickc@redhat.com> |
| |
| * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define. |
| * config/mn10300/mn10300.c (fp_regs_to_save): Test the |
| call_really_used_regs array rather than the call_used_regs array. |
| (mn10300_get_live_callee_saved_regs, expand_prologue, |
| expand_epilogue, output_tst): Likewise. |
| |
| 2008-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/37378 |
| * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here. |
| (df_get_entry_block_def_set): Neither here. |
| (df_get_regular_block_artificial_uses): Add EH_USES registers. |
| |
| PR tree-optimization/37879 |
| * predict.c (tree_estimate_probability): Check if last_stmt is |
| non-NULL before dereferencing it. |
| |
| 2008-10-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * ira-int.h (ira_allocno): Add member updated_cover_class_cost. |
| (ALLOCNO_UPDATED_COVER_CLASS_COST): New. |
| (ira_fast_allocation): Remove the prototype. |
| |
| * ira-color.c (update_copy_costs, allocno_cost_compare_func, |
| assign_hard_reg, calculate_allocno_spill_cost): Use updated costs. |
| (color_pass): Modify the updated costs. |
| (ira_color): Rename to color. Make it static. |
| (ira_fast_allocation): Rename to fast_allocation. Make it static. |
| (ira_color): New function. |
| |
| * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost |
| change. |
| |
| * ira-lives.c (last_call_num, allocno_saved_at_call): New |
| variables. |
| (set_allocno_live, clear_allocno_live, mark_ref_live, |
| mark_ref_dead): Invalidate corresponding element of |
| allocno_saved_at_call. |
| (process_bb_node_lives): Increment last_call_num. Setup |
| allocno_saved_at_call. Don't increase ALLOCNO_CALL_FREQ if the |
| allocno was already saved. |
| (ira_create_allocno_live_ranges): Initiate last_call_num and |
| allocno_saved_at_call. |
| |
| * ira-build.c (ira_create_allocno): Initiate |
| ALLOCNO_UPDATED_COVER_CLASS_COST. |
| (create_cap_allocno, propagate_allocno_info, |
| remove_unnecessary_allocnos): Remove setting updated costs. |
| (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST. |
| |
| * ira.c (ira): Don't call ira_fast_allocation. |
| |
| * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up |
| updated costs. |
| |
| 2008-10-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/37813 |
| * ira-conflicts.c (process_regs_for_copy): Remove class subset check. |
| |
| * ira-int.h (ira_hard_regno_cover_class): New. |
| |
| * ira-lives.c (mark_reg_live, mark_reg_dead, |
| process_bb_node_lives): Use ira_hard_regno_cover_class. |
| |
| * ira.c (reg_class ira_hard_regno_cover_class): New global variable. |
| (setup_hard_regno_cover_class): New function. |
| (ira_init): Call setup_hard_regno_cover_class. |
| |
| * ira-costs.c (cost_class_nums): Add comment. |
| (find_allocno_class_costs): Initiate cost_class_nums. |
| (setup_allocno_cover_class_and_costs): Check cost_class_nums. |
| |
| 2008-10-27 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/37884 |
| * ira-build.c (copy_live_ranges_to_removed_store_destinations): |
| Rename to copy_info_to_removed_store_destinations. Propagate |
| conflict hard regs and register stack attribute. |
| |
| 2008-10-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/37316 |
| * pa.c (function_arg_padding): Pad complex and vector types |
| upward in 64-bit runtime. |
| (function_arg): Use BLKmode for PARALLEL in 64-bit runtime. |
| |
| 2008-10-26 Matthias Klose <doko@ubuntu.com> |
| |
| * doc/install.texi: Document requirements on antlr. |
| |
| 2008-10-25 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers |
| first. |
| |
| 2008-10-24 Michael Meissner <meissner@linux.vnet.ibm.com> |
| |
| PR target/37841 |
| * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET |
| is defined, use it to modify the constant offset. |
| |
| * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro. |
| |
| * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char |
| and short arguments to the correct location as mandated by the ABI. |
| |
| 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR rtl-optimization/37769 |
| * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed. |
| |
| 2008-10-24 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to |
| unwind-dw2-Os-4-200.o. |
| |
| 2008-10-24 Joseph Myers <joseph@codesourcery.com> |
| |
| * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto. |
| (convert_for_assignment): Remove ic_argpass_nonproto cases. |
| |
| 2008-10-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/36038 |
| * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases |
| add sizetype IV with initial value zero instead of pointer type. |
| |
| 2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c/7543 |
| * value-prof.c (gimple_stringop_fixed_value): Use parentheses |
| around bit operation. |
| * profile.c (is_edge_inconsistent): Likewise. |
| * fold-const.c (truth_value_p): Move from here... |
| * tree.h (truth_value_p): ... to here. |
| * c-tree.h (c_expr): Update description of original_code. |
| * c-typeck.c (parser_build_unary_op): Set original_code. |
| (parser_build_binary_op): Update call to warn_about_parentheses. |
| * c-common.c (warn_about_parentheses): Take two additional |
| arguments of the operands. Use a switch. Quote operators |
| appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P. |
| Add warning about !x | y and !x & y. |
| * c-common.h (warn_about_parentheses): Update declaration. |
| |
| 2008-10-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (lang_checks_parallelized, check_gcc_parallelize, |
| check_p_tool, check_p_vars, check_p_subno, check_p_comma, |
| check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs): |
| New variables. |
| (check-subtargets, check-%-subtargets, check-parallel-%): New targets. |
| (check-%): For test targets listed in lang_checks_parallelized |
| if -j is used and RUNTESTFLAGS doesn't specify tests to execute, |
| run the testing in multiple make goals, possibly parallel, and |
| afterwards run dg-extract-results.sh to merge the sum and log files. |
| |
| 2008-10-24 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.c (mips_canonicalize_move_class): New function. |
| (mips_move_to_gpr_cost): Likewise. |
| (mips_move_from_gpr_cost): Likewise. |
| (mips_register_move_cost): Make more fine-grained. |
| |
| 2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de> |
| |
| * graphite.c (graphite_apply_transformations): Check for |
| -fgraphite-identity. |
| * toplev.c (process_options): Add graphite_identity. |
| * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity. |
| |
| 2008-10-23 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh, |
| mulhisihl and mulhisihh builtins. |
| |
| From Jie Zhang <jie.zhang@analog.com> |
| * config/bfin/bfin.md (composev2hi): Put operands into vector |
| with correct order. |
| |
| 2008-10-22 Chao-ying Fu <fu@mips.com> |
| |
| * config/mips/mips.opt (msmartmips): Accept -mno-smartmips. |
| |
| 2008-10-22 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| From Mike Frysinger <michael.frysinger@analog.com> |
| * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512, |
| BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518. |
| * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516, |
| and bf518. Add 0.2 for bf522, bf523, bf524, bf526, and bf527. |
| Add 0.6 for bf533, bf532, and bf531. Add 0.5 for bf538 and bf539. |
| Add 0.2 for bf542, bf544, bf547, bf548, and bf549. |
| * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__ |
| for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__ |
| for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518. Define |
| __ADSPBF51x__ for all of them. |
| * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for |
| -mcpu bf512, bf514, bf516, and bf518. |
| * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for |
| bf512-none, bf514-none, bf516-none, and bf518-none. |
| * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. |
| * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. |
| * doc/invoke.texi (Blackfin Options): Document that |
| -mcpu now accepts bf512, bf514, bf516, and bf518. |
| |
| 2008-10-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37882 |
| * fold-const.c (build_range_type): For 1 .. signed_max |
| range call build_nonstandard_inter_type if signed_type_for |
| returned a type with bigger precision. |
| |
| 2008-10-22 Richard Guenther <rguenther@suse.de> |
| |
| * tree.def (COMPLEX_TYPE): Constrain element type. |
| * tree.c (build_complex_type): Assert that. |
| * tree-ssa-structalias.c (could_have_pointers): Complex types |
| cannot have pointers. |
| |
| 2008-10-22 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c/30949 |
| * c-typeck.c (convert_for_assignment): Do not give declaration's |
| location for builtins. Spell out which type was expected and which |
| was given. |
| |
| 2008-10-22 Nick Clifton <nickc@redhat.com> |
| |
| * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define. Do not allow |
| the fdpic register to be a target when running in fdpic mode. |
| |
| 2008-10-22 Rafael Espindola <espindola@google.com> |
| |
| * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the |
| newly created statements. |
| |
| 2008-10-22 Kaz Kojima <kkojima@gcc.gnu.org> |
| |
| PR target/37633 |
| * config/sh/sh.c (sh_hard_regno_mode_ok): New function. |
| * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it. |
| * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare. |
| |
| 2008-10-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/37880 |
| * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option. |
| Adjust -mcmodel=medium description for 2005-07-31 changes. |
| |
| 2008-10-22 Jan Hubicka <jh@suse.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/35853 |
| * doc/invoke.texi: Remove references to obsoleted -d dumps. |
| |
| 2008-10-21 Richard Henderson <rth@redhat.com> |
| |
| PR 37815 |
| * emit-rtl.c (get_spill_slot_decl): Export. |
| * emit-rtl.h (get_spill_slot_decl): Declare. |
| * var-tracking.c (vt_add_function_parameters): Relax assertion |
| on the contents of MEM_EXPR in a PARM_DECL to include a spill slot. |
| |
| 2008-10-21 Bob Wilson <bob.wilson@acm.org> |
| |
| * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a |
| REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead |
| of from insn. |
| |
| 2008-10-21 Adam Nemet <anemet@caviumnetworks.com> |
| |
| PR middle-end/37669 |
| * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be |
| processed by get_maxval_strlen. |
| |
| 2008-10-21 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/35485 |
| * tree.c (get_file_function_name): Copy first_global_object_name. |
| Centralize call to clean_symbol_name. |
| |
| 2008-10-21 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h. |
| * config/svr4.h (SVR4_ASM_SPEC): New. |
| (ASM_SPEC): Inherit from SVR4_ASM_SPEC. |
| * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC. |
| |
| * doc/invoke.texi (Option Summary): Add -T to linker options. |
| (Link Options): Document -T. |
| |
| 2008-10-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-inline.c (tree_inlinable_function_p): Remove tuples |
| debugging hack. |
| |
| * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs. |
| |
| PR debug/37020 |
| * c-decl.c (merge_decls): Don't call outlining_inline_function hook. |
| |
| 2008-10-20 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant |
| part of expression. |
| |
| 2008-10-20 Tobias Schlüter <tobi@gcc.gnu.org> |
| |
| * doc/install.texi: Fix typos in previous patch. |
| |
| 2008-10-19 Tobias Schlüter <tobi@gcc.gnu.org> |
| |
| * doc/install.texi: Document in-tree building of gcc and mpfr. |
| |
| 2008-10-19 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut. |
| |
| 2008-10-19 Manuel López-Ibáñez <manu@gcc.gnu.org> |
| |
| PR c/30260 |
| * c-decl.c (finish_enum): Convert non-integer enumerators to enum type. |
| (build_enumerator): Convert enumerators that fit in integer to |
| integer type. |
| |
| 2008-10-18 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (unnamed peephole2): Do not force memory |
| operands of arith or logical instructions into registers for |
| non-TARGET_READ_MODIFY targets. |
| |
| (ffs_cmove): Change operand 0 predicate to register_operand. |
| Change operand 1 predicate to nonimmediate_operand. |
| (ffsdi2): Ditto. |
| (*ffs_no_cmove): Change operand 0 predicate to register_operand. |
| |
| 2008-10-18 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard |
| VIEW_CONVERT_EXPR case against invalid gimple. |
| |
| 2008-10-17 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * c-parser.c (c_parser_binary_expression): Silence the |
| uninitialized variable warning emitted for binary_loc. |
| |
| 2008-10-16 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (phi_translate_set): Add constants to phi |
| translation cache. |
| |
| 2008-10-16 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/33192 |
| * c-typeck.c (build_unary_op): Use omit_one_operand for |
| IMAGPART_EXPR of real argument. |
| |
| 2008-10-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/37664 |
| * fold-const.c (fold_binary): When optimizing comparison with |
| highest or lowest type's value, don't consider TREE_OVERFLOW. |
| |
| 2008-10-16 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/35483 |
| * Makefile.in (coverage.o): Depend on $(TM_P_H). |
| * coverage.c: Include tm_p.h. |
| * config/rs6000/x-aix (jc1): Override LDFLAGS. |
| * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip |
| dollar signs from PREFIX. |
| * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME |
| instead of manual strip_name_encoding. |
| |
| 2008-10-16 Richard Guenther <rguenther@suse.de> |
| |
| PR middle-end/37418 |
| * tree-ssa.c (useless_type_conversion_p_1): Do not treat |
| volatile qualified functions or methods as relevant. |
| |
| 2008-10-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/37525 |
| * tree.c (int_fits_type_p): Rewrite using double_int. Zero extend |
| sizetype unsigned constants, both in the case of C and bounds. |
| |
| 2008-10-15 Jan Hubicka <jh@suse.cz> |
| |
| * ira-emit.c (change_regs): Return false when replacing reg by itself. |
| |
| 2008-10-14 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/37633 |
| * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check |
| HARD_REGNO_CALL_PART_CLOBBERED. |
| |
| 2008-10-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/37535 |
| * ira-lives.c (mark_early_clobbers): Remove. |
| (make_pseudo_conflict, check_and_make_def_use_conflicts, |
| check_and_make_def_conflicts, |
| make_early_clobber_and_input_conflicts, |
| mark_hard_reg_early_clobbers): New functions. |
| (process_bb_node_lives): Call |
| make_early_clobber_and_input_conflicts and |
| mark_hard_reg_early_clobbers. Make hard register inputs live again. |
| |
| * doc/rtl.texi (clobber): Change descriotion of RA behaviour for |
| early clobbers of pseudo-registers. |
| |
| 2008-10-15 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/37674 |
| * ira-build.c (ira_flattening): Recalculate |
| ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS |
| from the scratch instead of the propagation. |
| |
| 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * doc/rtl.texi (const_double): Remove the "addr" operand. |
| Describe CONST_DOUBLE_* macros under const_double rather |
| than const_vector. |
| (const_fixed): Fix the operand description. |
| (const): Add an @findex directive. |
| (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description |
| after the constant rtl table. |
| (fix): Combine floating-point and fixed-point descriptions. |
| Fix hyphenation. |
| * sched-deps.c (sched_analyze_2): Remove reference to |
| CONST_DOUBLE_CHAIN. |
| |
| 2008-10-15 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle |
| UNSPEC_GOTSYM_OFFs. |
| * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true |
| for UNSPEC_GOTSYM_OFFs. |
| * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec. |
| (add_GOT_to_pic_reg): Use it. |
| * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF. |
| |
| 2008-10-15 Jan Sjodin <jan.sjodin@amd.com> |
| Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| PR tree-optimization/37485 |
| * graphite.c (gmp_cst_to_tree): Moved. |
| (iv_stack_entry_is_constant): New. |
| (iv_stack_entry_is_iv): New. |
| (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv. |
| (loop_iv_stack_insert_constant): New. |
| (loop_iv_stack_pop): Use new datatpype. |
| (loop_iv_stack_get_iv): Same. |
| (loop_iv_stack_get_iv_from_name): Same. |
| (loop_iv_stack_debug): Renamed to debug_loop_iv_stack. |
| (loop_iv_stack_patch_for_consts): New. |
| (loop_iv_stack_remove_constants): New. |
| (graphite_create_new_loop): Use loop_iv_stack_push_iv. |
| (translate_clast): Call loop_iv_stack_patch_for_consts and |
| loop_iv_stack_remove_constants. |
| (gloog): Use new datatype. Redirect construction edge to end |
| block to avoid accidental deletion. |
| * graphite.h (enum iv_stack_entry_kind): New. Tag for data in |
| iv stack entry. |
| (union iv_stack_entry_data): New. Data in iv stack entry. |
| (struct iv_stack_entry): New. Datatype for iv stack entries. |
| |
| 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> |
| |
| * tree-data-ref.c (stmt_simple_memref_p): Fix memleak. |
| * graphite.c (free_scop): Same. |
| (build_scops): Same. |
| (free_scattering): New. |
| (build_cloog_prog): Call free_scattering. |
| (patch_phis_for_virtual_defs): Fix memleak. |
| (graphite_trans_bb_strip_mine): Same. |
| (limit_scops): Same. |
| |
| 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> |
| Harsha Jagasia <harsha.jagasia@amd.com> |
| |
| PR tree-optimization/37828 |
| * graphite.c (graphite_trans_loop_block): Do not loop block |
| single nested loops. |
| |
| 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> |
| |
| PR tree-optimization/37686 |
| * tree-loop-linear.c (linear_transform_loops): Build a |
| loop nest vector. Pass it to lambda_compute_access_matrices. |
| * tree-data-ref.h (struct access_matrix): Store the loop nest |
| relative to which it encodes the information. |
| (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST. |
| (am_vector_index_for_loop): Reimplemented: iterate over the |
| loop nest for finding the loop index in the access matrix. |
| (lambda_compute_access_matrices): Update declaration. |
| * lambda-code.c (build_access_matrix): Pass the loop nest and |
| record it. |
| (lambda_compute_access_matrices): Same. |
| |
| 2008-10-15 Andreas Krebbel <krebbel1@de.ibm.com> |
| |
| * config/s390/s390.h (TARGET_DFP): This requires TARGET_HARD_FLOAT. |
| * config/s390/s390.md: Replace "TARGET_HARD_FLOAT && |
| TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this |
| already implies hard float. Also fix several insn condition |
| with TARGET_DFP which shall require TARGET_HARD_DFP instead. |
| |
| 2008-10-15 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/35483 |
| Based on patches by Laurent Vivier. |
| * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore. |
| * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare. |
| * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate |
| dollar sign to underscore. |
| (ASM_OUTPUT_EXTERNAL): Same. |
| (ASM_OUTPUT_LABELREF): New. |
| * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New. |
| |
| * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define. |
| * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define. |
| * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define. |
| * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define. |
| |
| 2008-10-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/36881 |
| * tree-switch-conversion.c (check_final_bb): For flag_pic, check |
| that each value doesn't need runtime relocations, for !flag_pic |
| check that each value is just a valid initializer constant. |
| |
| 2008-10-14 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS, |
| LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS, |
| COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS. |
| Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and |
| GR_AND_ACC_REGS. |
| (REG_CLASS_NAMES): Update accordingly. |
| (REG_CLASS_CONTENTS): Likewise. Use the class name in the comments, |
| rather than an unpredictable descriptive string. |
| * config/mips/mips.c (mips_register_move_cost): Remove comment. |
| (mips_register_move_cost): Check for specific COP*_REGS classes, |
| instead of ALL_COP_AND_GR_REGS. |
| (mips_ira_cover_classes): New function. |
| (mips_secondary_reload_class): Remove MTLO and MTHI workarounds. |
| (TARGET_IRA_COVER_CLASSES): Define. |
| |
| 2008-10-14 Douglas Gregor <doug.gregor@gmail.com> |
| |
| PR c++/37553 |
| * tree.c (build_type_attribute_qual_variant): Hash on the |
| unqualified type, and don't overwrite an existing |
| (type_hash_eq): Make the TYPE_NAME of the types significant, to |
| allow distinguishing between wchar_t and its underlying type. This |
| also means that we'll retain a little more typedef information. |
| |
| 2008-10-14 Andrey Belevantsev <abel@ispras.ru> |
| Dmitry Melnik <dm@ispras.ru> |
| Dmitry Zhurikhin <zhur@ispras.ru> |
| Alexander Monakov <amonakov@ispras.ru> |
| Maxim Kuvyrkov <maxim@codesourcery.com> |
| |
| * target.h (struct gcc_target): Update prototypes of needs_block_p |
| and gen_spec_check. |
| * haifa-sched.c (create_check_block_twin): Update calls to the above. |
| * sel-sched.c (create_speculation_check): Likewise. |
| * doc/tm.texi: Provide documentation for new target hooks. |
| |
| * config/ia64/ia64.c: Include sel-sched.h. Rewrite speculation hooks. |
| (ia64_gen_spec_insn): Removed. |
| (get_spec_check_gen_function, insn_can_be_in_speculative_p, |
| ia64_gen_spec_check): New static functions. |
| (ia64_alloc_sched_context, ia64_init_sched_context, |
| ia64_set_sched_context, ia64_clear_sched_context, |
| ia64_free_sched_context, ia64_get_insn_spec_ds, |
| ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions. |
| (ia64_needs_block_p): Change prototype. |
| (ia64_gen_check): Rename to ia64_gen_spec_check. |
| (ia64_adjust_cost): Rename to ia64_adjust_cost_2. Add new parameter |
| into declaration, add special memory dependencies handling. |
| (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT, |
| TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT, |
| TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS, |
| TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P): |
| Define new target hooks. |
| (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK. |
| (ia64_optimization_options): Turn on selective scheduling with -O3, |
| disable -fauto-inc-dec. Set mflag_sched_control_spec to true by |
| default with selective scheduling. |
| (ia64_override_options): Initialize align_loops and align_functions |
| to 32 and 64, respectively. Set global selective scheduling flags |
| according to target-dependent flags. |
| (rtx_needs_barrier): Support UNSPEC_LDS_A. |
| (group_barrier_needed): Use new mstop-bit-before-check flag. |
| Add heuristic. |
| (dfa_state_size): Make global. |
| (spec_check_no, max_uid): Remove. |
| (mem_ops_in_group, current_cycle): New variables. |
| (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload. |
| Initialize new variables. |
| (is_load_p, record_memory_reference): New functions. |
| (ia64_dfa_sched_reorder): Lower priority of loads when limit is |
| reached. |
| (ia64_variable_issue): Change use of current_sched_info to |
| sched_deps_info. Update comment. Note if a load or a store is issued. |
| (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle |
| advance if maximal number of loads or stores was issued on current |
| cycle. |
| (scheduled_good_insn): New static helper function. |
| (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when |
| a group barrier is needed. Fix vertical spacing. Guard the code |
| doing state transition with last_scheduled_insn check. |
| Mark that a stop bit should be before current insn if there was a |
| cycle advance. Update current_cycle and mem_ops_in_group. |
| (ia64_h_i_d_extended): Change use of current_sched_info to |
| sched_deps_info. Reallocate stops_p by larger chunks. |
| (struct _ia64_sched_context): New structure. |
| (ia64_sched_context_t): New typedef. |
| (ia64_alloc_sched_context, ia64_init_sched_context, |
| ia64_set_sched_context, ia64_clear_sched_context, |
| ia64_free_sched_context): New static functions. |
| (gen_func_t): New typedef. |
| (get_spec_load_gen_function): New function. |
| (SPEC_GEN_EXTEND_OFFSET): Declare. |
| (ia64_set_sched_flags): Check common_sched_info instead of *flags. |
| (get_mode_no_for_insn): Change the condition that prevents use of |
| special hardware registers so it can now handle pseudos. |
| (get_spec_unspec_code): New function. |
| (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds, |
| ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions. |
| (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks |
| during selective scheduling. |
| (ia64_speculate_insn): Use ds_get_speculation_types when |
| determining whether we need to change the pattern. |
| (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare. |
| (ia64_spec_check_src_p): Support new speculation/check codes. |
| (struct bundle_state): New field. |
| (issue_nops_and_insn): Initialize it. |
| (insert_bundle_state): Minimize mid-bundle stop bits. |
| (important_for_bundling_p): New function. |
| (get_next_important_insn): Use important_for_bundling_p. |
| (bundling): When shifting TImode from unimportant insns, ignore |
| also group barriers. Assert that best state is found before |
| the backward bundling pass. Print number of mid-bundle stop bits. |
| Minimize mid-bundle stop bits. Check correct calculation of |
| mid-bundle stop bits. |
| (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting. |
| (final_emit_insn_group_barriers): Emit stop bits before insns starting |
| a new cycle. |
| (sel2_run): New variable. |
| (ia64_reorg): When flag_selective_scheduling2 is set, run the |
| selective scheduling pass instead of schedule_ebbs. |
| |
| * config/ia64/ia64.md (speculable1, speculable2): New attributes. |
| (UNSPEC_LDS_A): New UNSPEC. |
| (movqi_internal, movhi_internal, movsi_internal, movdi_internal, |
| movti_internal, movsf_internal, movdf_internal, |
| movxf_internal): Make visible. Add speculable* attributes. |
| (output_c_nc): New mode attribute. |
| (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a, |
| mov<mode>_nc, zero_extend<mode>di2_nc, |
| advanced_load_check_nc_<mode>): New insns. |
| (zero_extend*): Add speculable* attributes. |
| |
| * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option. |
| (msched-stop-bits-after-every-cycle): Likewise. |
| (msched-max-memory-insns, msched-max-memory-insns-hard-limit): |
| Likewise. |
| (msched-spec-verbose): Remove. |
| (msched-prefer-non-data-spec-insns, |
| msched-prefer-non-control-spec-insns, |
| msched-count-spec-in-critical-path, |
| msel-sched-dont-check-control-spec): Use Target Report Var |
| instead of Common Report Var. |
| |
| * config/ia64/itanium2.md: Remove incorrect bypass. |
| |
| * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h. |
| |
| 2008-10-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37805 |
| * opts.c (common_handle_option): Don't ICE on -fhelp=joined |
| and -fhelp=separate. |
| |
| 2008-10-14 Ben Elliston <bje@au.ibm.com> |
| |
| * config/rs6000/rs6000.md (cell_micro): Fix formatting. |
| |
| 2008-10-13 Joseph Myers <joseph@codesourcery.com> |
| |
| * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on |
| non-integer modes. |
| |
| 2008-10-13 Matthias Klose <doko@ubuntu.com> |
| |
| * config/pa/linux-atomic.c: Work around missing header file |
| for hppa64-linux-gnu targets. |
| |
| 2008-10-13 Andrew Pinski <andrew_pinski@playstation.sony.com> |
| Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com> |
| Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> |
| Grace Cao <grace_cao@playstation.sony.com> |
| |
| * doc/invoke.texi (-mgen-cell-microcode): Document. |
| (-mwarn-cell-microcode): Document. |
| * cfglayout.c (locator_location): Export. |
| * rtl.h (locator_location): Define prototype. |
| * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): |
| New predicate. |
| * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype. |
| * config/rs6000/rs6000.opt (mgen-cell-microcode): New option. |
| (mwarn-cell-microcode): New option. |
| * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable. |
| (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for |
| cell and not already set. |
| Turn off string instructions if not generating cell microcode. |
| (rs6000_final_prescan_insn): New function that warns about microcoded |
| instructions. |
| * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define. |
| * config/rs6000/rs6000.md |
| Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if |
| the instruction would have been microcoded on the Cell. Set |
| cell_micro to always on unnamed patterns for the string instructions. |
| (cell_micro): Update definition, remove load/store conditional |
| microcoded. |
| (sign_extend:DI): Define new pattern for non microcoded version. |
| (sign_extend:SI): Likewise. |
| (compare (div:P)): Set cell_micro to not. |
| (andsi3): Define as an expand. |
| (andsi3_mc): New pattern. |
| (andsi3_nomc): New pattern. |
| (andsi3_internal0_nomc): New pattern. |
| (andsi3_internal2): Rename to ... |
| (andsi3_internal2_mc): this and enable iff generating microcode. |
| (andsi3_internal3): Rename to ... |
| (andsi3_internal3_mc): this and enable iff generating microcode. |
| (andsi3_internal4): Enable iif generating microcode. |
| (andsi3_internal5): Rename to .. |
| (andsi3_internal5_mc): this and enable iff generating microcode. |
| (andsi3_internal5_nomc): New pattern. |
| (extzvdi_internal1): Enable iff generating microcode. |
| (extzvdi_internal2): Likewise. |
| (rotlsi3_internal7): Set cell_micro to always if non immediate form. |
| (anddi3): Change to expand. |
| (anddi3_mc): Rename from anddi3. |
| (anddi3_no_mc): New pattern. |
| (anddi3_internal2): Rename to .. |
| (anddi3_internal2_mc): this and enable iff generating microcode. |
| (anddi3_internal2_nomc): New pattern. |
| (anddi3_internal3): Rename to .. |
| (anddi3_internal3_mc): this and enable iff generating microcode. |
| (anddi3_internal3_nomc): New pattern. |
| (movti_string): Set cell_micro to always if TARGET_STRING. |
| (stmsi8): Set cell_micro to always. |
| (stmsi7): Likewise. |
| (stmsi6): Likewise. |
| (stmsi5): Likewise. |
| (stmsi4): Likewise. |
| (stmsi3): Likewise. |
| (stmsi8_power): Likewise. |
| (stmsi7_power): Likewise. |
| (stmsi6_power): Likewise. |
| (stmsi5_power): Likewise. |
| (stmsi4_power): Likewise. |
| (stmsi3_power): Likewise. |
| (movsi_update2): Enable iff generating microcode. |
| (movhi_update3): Likewise. |
| (lmw): Set cell_micro to always. |
| |
| 2008-10-13 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant. |
| * config/s390/s390.c (machine_function): Remove |
| decomposed_literal_pool_addresses_ok_p. |
| (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of |
| the difference of two labels. |
| (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET. |
| (s390_pool_offset): New function. |
| (s390_find_constant, s390_find_execute, s390_dump_pool): Use it. |
| (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p. |
| |
| 2008-10-13 Nathan Froyd <froydnj@codesourcery.com> |
| |
| * doc/install.texi (powerpc-*-*): Require binutils 2.15. |
| (powerpc*-*-linux-gnu*): Describe. |
| * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro. |
| * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm, |
| config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm, |
| config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm, |
| config/rs6000/e500crtres32gpr.asm, |
| config/rs6000/e500crtres64gpr.asm, |
| config/rs6000/e500crtres64gprctr.asm, |
| config/rs6000/e500crtrest32gpr.asm, |
| config/rs6000/e500crtrest64gpr.asm, |
| config/rs6000/e500crtresx32gpr.asm, |
| config/rs6000/e500crtresx64gpr.asm, |
| config/rs6000/e500crtsav32gpr.asm, |
| config/rs6000/e500crtsav64gpr.asm, |
| config/rs6000/e500crtsav64gprctr.asm, |
| config/rs6000/e500crtsavg32gpr.asm, |
| config/rs6000/e500crtsavg64gpr.asm, |
| config/rs6000/e500crtsavg64gprctr.asm: Use it. |
| * config/rs6000/crtsavres.asm: Really remove. |
| |
| 2008-10-13 Kai Tietz <kai.tietz@onevision.com> |
| |
| Fix PR/25502 |
| * c-format.c (convert_format_name_to_system_name): Use |
| TARGET_OVERRIDES_FORMAT_INIT. |
| * config.gcc (extra_options): Add for mingw targets mingw.opt. |
| * config/i386/mingw.opt: New. |
| * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New. |
| * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New. |
| (ms_printf_length_specs): Removed const specifier. |
| * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New. |
| * doc/invoke.texi (Wno-pedantic-ms-format): New. |
| |
| 2008-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals. |
| * doc/install.texi: Bump recommended MPFR to 2.3.2. |
| |
| 2008-10-12 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR middle-end/37808 |
| * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make |
| sure that ref has valid bb. |
| |
| 2008-10-12 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/37447 |
| * Makefile.in (reload1.o): Depend on EMIT_RTL_H. |
| * alias.c (value_addr_p, stack_addr_p): Remove. |
| (nonoverlapping_memrefs_p): Remove IRA special case. |
| * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New. |
| * emit-rtl.h (set_mem_attrs_for_spill): Declare. |
| * reload1.c (alter_reg): Use it. |
| |
| 2008-10-12 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/driver-i386.c (detect_caches_cpuid2): Use array |
| of registers instead of eax, ebx, ecx and edx. Use for loop |
| and check register for non-zero value before the call |
| to decode_caches_intel. |
| |
| 2008-10-11 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR rtl-optimization/37448 |
| * df.h (df_ref_class): New enum. |
| (DF_REF_TYPE_NAMES, df_ref_extract): Removed. |
| (struct df_ref): Replaced with union df_ref_d. |
| (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref): |
| New members of df_ref_d union. |
| (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG, |
| DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN, |
| DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS, |
| DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG, |
| DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET, |
| DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d. |
| (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros. |
| (df_scan_bb_info, df_bb_regno_first_def_find, |
| df_bb_regno_last_def_find, df_find_def, df_find_use, |
| df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, |
| debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy, |
| df_ref_create, df_ref_remove, df_compute_accessed_bytes, |
| df_get_artificial_defs, df_get_artificial_uses, union_defs) |
| Replaced struct df_ref * with df_ref. |
| * df-scan.c (df_collection_rec, df_null_ref_rec, |
| df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref, |
| df_grow_ref_info, df_ref_create, df_reg_chain_unlink, |
| df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain, |
| df_ref_chain_delete, df_free_collection_rec, df_insn_rescan, |
| df_reorganize_refs_by_reg_by_reg, |
| df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg, |
| df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs, |
| df_sort_and_compress_refs, df_install_ref, df_install_refs, |
| df_ref_record, df_get_conditional_uses, df_get_call_refs, |
| df_bb_refs_record, df_exit_block_uses_collect, |
| df_record_exit_block_uses, df_reg_chain_mark, |
| df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct |
| df_ref * with df_ref. |
| (df_ref_record, df_uses_record, df_ref_create_structure): Added |
| df_ref_class parameter. |
| (df_scan_problem_data): Added new pools for different types of refs. |
| (df_scan_free_internal, df_scan_alloc, df_free_ref, |
| df_ref_create_structure): Processed new ref pools. |
| (df_scan_start_dump): Added counts of refs and insns. |
| (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record, |
| df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, |
| df_entry_block_defs_collect, df_exit_block_uses_collect): Added |
| code to pass df_ref_class down to ref creation functions. |
| (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1, |
| df_reg_chain_mark): Use macros to hide references to df_refs. |
| (df_ref_chain_change_bb): Removed. |
| (df_insn_change_bb): Remove calls to df_ref_insn_change_bb. |
| (df_ref_equal_p, df_ref_compare, df_ref_create_structure): |
| Enhanced to understand df_ref union structure. |
| * fwprop.c (local_ref_killed_between_p, use_killed_between, |
| all_uses_available_at, update_df, try_fwprop_subst, |
| forward_propagate_subreg, forward_propagate_and_simplify, |
| forward_propagate_into, fwprop, fwprop_addr): Replaced struct |
| df_ref * with df_ref. |
| (use_killed_between, all_uses_available_at): Use macros to hide |
| references to df_refs. |
| * regstat.c (regstat_bb_compute_ri, |
| regstat_bb_compute_calls_crossed): Replaced struct df_ref * with |
| df_ref. |
| * see.c (see_handle_relevant_defs, see_handle_relevant_uses, |
| see_handle_relevant_refs, see_analyze_one_def, |
| see_update_relevancy, see_propagate_extensions_to_uses): Replaced |
| struct df_ref * with df_ref. |
| * ra-conflict.c (record_one_conflict, clear_reg_in_live, |
| global_conflicts): Replaced struct df_ref * with df_ref. |
| * ddg.c (create_ddg_dep_from_intra_loop_link, |
| add_cross_iteration_register_deps, build_inter_loop_deps): |
| Replaced struct df_ref * with df_ref. |
| (create_ddg_dep_from_intra_loop_link, |
| add_cross_iteration_register_deps): Use macros to hide references |
| to df_refs. |
| * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct |
| df_ref * with df_ref. |
| * df-core.c (df_bb_regno_first_def_find, |
| df_bb_regno_last_def_find, df_find_def, df_find_use, |
| df_refs_chain_dump, df_regs_chain_dump, df_ref_debug, |
| debug_df_ref): Replaced struct df_ref * with df_ref. |
| (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs. |
| * cse.c (cse_extended_basic_block): Replaced struct df_ref * with |
| df_ref. |
| * web.c (union_defs, entry_register, replace_ref, web_main): |
| Replaced struct df_ref * with df_ref. |
| (union_defs, replace_ref): Use macros to hide references to df_refs. |
| * global.c (compute_regs_asm_clobbered, build_insn_chain): |
| Replaced struct df_ref * with df_ref. |
| * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref. |
| * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets): |
| Replaced struct df_ref * with df_ref. |
| * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p, |
| mark_ref_dead, process_bb_node_lives): Replaced struct df_ref * |
| with df_ref. |
| * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref. |
| * df-byte-scan.c (df_compute_accessed_bytes_extract, |
| df_compute_accessed_bytes_strict_low_part, |
| df_compute_accessed_bytes_subreg, df_compute_accessed_bytes): |
| Replaced struct df_ref * with df_ref. |
| (df_compute_accessed_bytes): Use macros to hide references to df_refs. |
| * init-regs.c (initialize_uninitialized_regs): Replaced struct |
| df_ref * with df_ref. |
| * loop-invariant.c (invariant_for_use, hash_invariant_expr_1, |
| check_dependency, check_dependencies, record_uses): Replaced |
| struct df_ref * with df_ref. |
| (invariant_for_use, check_dependency): Use macros to hide |
| references to df_refs. |
| * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def, |
| get_biv_step_1, get_biv_step, record_iv, iv_analyze_def, |
| iv_analyze, biv_p): Replaced struct df_ref * with df_ref. |
| (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide |
| references to df_refs. |
| * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref * |
| with df_ref. |
| * combine.c (create_log_links): Replaced struct df_ref * with df_ref. |
| * df-problems.c (df_rd_bb_local_compute_process_def, |
| df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create, |
| df_chain_unlink_1, df_chain_unlink, df_chain_copy, |
| df_chain_remove_problem, df_chain_create_bb_process_use, |
| df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump, |
| df_byte_lr_check_regs, df_byte_lr_bb_local_compute, |
| df_byte_lr_simulate_defs, df_byte_lr_simulate_uses, |
| df_byte_lr_simulate_artificial_refs_at_top, |
| df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note, |
| df_note_bb_compute, df_note_add_problem, df_simulate_defs, |
| df_simulate_uses, df_simulate_artificial_refs_at_end, |
| df_simulate_artificial_refs_at_top): Replaced struct df_ref * with |
| df_ref. |
| (df_chain_dump): Use macros to hide references to df_refs. |
| * config/mips/mips.c (r10k_simplify_address): Replaced struct |
| df_ref * with df_ref. |
| * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes, |
| mark_artificial_uses, mark_reg_dependencies, |
| byte_dce_process_block): Replaced struct df_ref * with df_ref. |
| |
| 2008-10-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in |
| head comment. |
| (array_ref_element_size): Likewise. |
| (array_ref_low_bound): Likewise. |
| (array_ref_up_bound): Likewise. |
| * expr.c (contains_packed_reference): Likewise. |
| (array_ref_element_size): Likewise. |
| (array_ref_low_bound): Likewise. |
| (array_ref_up_bound): Likewise. |
| * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal |
| with ARRAY_RANGE_REF. |
| (idx_find_step): Likewise. |
| (idx_record_use): Likewise. |
| (strip_offset_1): Likewise. |
| (idx_remove_ssa_names): Likewise. |
| |
| 2008-10-11 Uros Bizjak <ubizjak@gmail.com> |
| Andi Kleen <ak@linux.intel.com> |
| |
| * config/i386/cpuid.h (__cpuid_count): New defines. |
| * config/i386/driver-i386.c (struct cache_desc): New structure. |
| (describe_cache): Use struct cache_desc to pass cache descriptions. |
| (detect_l2_cache): Ditto. Rename from decode_l2_cache. |
| (detect_caches_amd): Use struct cache_desc to describe caches. |
| (decode_caches_intel): Use struct cache_desc to pass cache |
| descriptions. Update descriptions to match latest (rev -032, |
| December 2007) CPUID documentation. Do not check valid bit here. |
| Check for Xeon MP value 0x49 problems. |
| (detect_caches_cpuid2): New function, split from detect_caches_intel. |
| Check valid bit before calling decode_caches_intel. Detect number |
| of times to repeat CPUID instruction. |
| (detect_caches_cpuid4): New function. |
| (detect_caches_intel): Depending on max_level, call |
| detect_caches_cpuid2 or detect_caches_cpuid4. Call detect_l2_cache |
| only when other methods fail to provide valid L2 cache description. |
| |
| 2008-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR middle-end/37608 |
| * pa.md (call, call_value): Generate an rtx for register r4 and pass |
| it to PIC call patterns. |
| (call_symref_pic): Revise pattern to expose PIC register save. Remove |
| code generation and attributes from pattern. Change peephole2 to |
| split for noreturn case. Revise split pattern for non noreturn case. |
| (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic, |
| call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise. |
| * pa.c (attr_length_call): Simplify extraction of call rtx. Add some |
| asserts. |
| |
| 2008-10-11 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT. |
| (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT |
| and fp_type. |
| (divdf3): Reformat long line. |
| |
| 2008-10-11 Michael J. Eager <eager@eagercon.com> |
| |
| * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret |
| -mfpu options. |
| (rs6000_handle_option): Process -mfpu options. |
| * config/rs6000/rs6000.h (TARGET_XILINX_FPU): New. |
| (enum fpu_type_t): New. |
| * config/rs6000/rs6000.md (attr fp_type): New. Include xfpu.md. |
| (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set |
| fp_type. |
| (floatsisf2): Remove TARGET_SINGLE_FPU condition. |
| (floatdidf2): Add TARGET_SINGLE_FPU condition. |
| * config/rs6000/rs6000.opt (-mfpu): New. |
| (-mxilinx-fpu): New. |
| * config/rs6000/sysv4.h (DRIVER_SELF_SPECS): New. |
| * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU. |
| * config/rs6000/xfpu.md: New. Define Xilinx pipeline. |
| * gcc/config.gcc: powerpc-xilinx-eabi target: New. |
| * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option. |
| |
| 2008-10-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/35760 |
| * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create |
| LO_SUM on Darwin if mode has just one unit. |
| |
| 2008-10-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR debug/37002 |
| * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which |
| has been optimized out. |
| |
| 2008-10-10 Richard Sandiford <rdsandiford@googlemail.com> |
| |
| * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P |
| instead of PIC_DIRECT_ADDR_P. |
| (SECONDARY_INPUT_RELOAD_CLASS): Likewise. |
| (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete. |
| (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P. |
| (PIC_OFFSET_P): Rename to... |
| (PCREL_SYMOFF_P): ...this. |
| (PIC_DIRECT_ADDR_P): Delete. |
| (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of |
| PIC_OFFSET_P. |
| (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a |
| single argument. Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16, |
| UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF. |
| * config/sh/sh.c (print_operand): Remove CONST handling. |
| (unspec_caller_rtx_p): Rewrite to use split_const and check |
| the operands of UNSPEC bases. |
| (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC) |
| with (unspec [A B] UNSPEC_SYMOFF). |
| (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and |
| UNSPEC_PCREL_SYMOFF. |
| (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. |
| * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec. |
| (UNSPEC_EXTRACT_U16): Likewise. |
| (UNSPEC_SYMOFF): Likewise. |
| (UNSPEC_PCREL_SYMOFF): Likewise. |
| (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions |
| of constants. |
| (movsi_const_16bit): Likewise. |
| (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise. |
| (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC) |
| with (unspec [A B] UNSPEC_PCREL_SYMOFF). |
| (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B) |
| with (unspec [A B] UNSPEC_SYMOFF). |
| (symPLT_label2reg): Replace (minus A (minus B pc)) with |
| (unspec [A B] PCREL_UNSPEC_SYMOFF). |
| * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16. |
| (Csu): Likewise UNSPEC_EXTRACT_U16. |
| (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P. |
| (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P. |
| |
| 2008-10-10 Stepan Kasal <skasal@redhat.com> |
| |
| * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples |
| for loop strip mining and loop blocking. |
| |
| 2008-10-10 Alexandre Oliva <aoliva@redhat.com> |
| |
| * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't |
| vary types depending on debug info. |
| |
| 2008-10-10 Alexandre Oliva <aoliva@redhat.com> |
| |
| * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME |
| before ensuring it's already computed. |
| |
| 2008-10-09 Jakub Jelinek <jakub@redhat.com> |
| |
| * rtl.h (locator_eq): New decl. |
| * cfglayout.c (locator_scope): New function. |
| (insn_scope): Use it. |
| (locator_eq): New function. |
| (fixup_reorder_chain): Search for last insn in src bb |
| that has locator set or first insn in dest bb. Use |
| locator_eq instead of == to compare locators. |
| * cfgrtl.c (cfg_layout_merge_blocks): Likewise. |
| * cfgcleanup.c (try_forward_edges): Use locator_eq instead of |
| == to compare locators. |
| |
| * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block |
| as used. |
| * gimple-low.c (lower_function_body, lower_gimple_return, |
| lower_builtin_setjmp): Set gimple_block on the newly created stmts. |
| * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set |
| goto_block on edges if goto_locus is known. |
| |
| PR middle-end/37774 |
| * tree.h (get_object_alignment): Declare. |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): Call |
| get_object_alignment if needed. |
| * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand |
| handling to ... |
| (get_object_alignment): ... here. New function. Try harder to |
| determine alignment from get_inner_reference returned offset. |
| |
| 2008-10-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * graphite.c (gloog): Don't call find_unreachable_blocks |
| before delte_unreachable_blocks. |
| |
| * cfgexpand.c (expand_gimple_cond): Convert also goto_block and |
| goto_locus of true_edge into RTL locator. |
| |
| 2008-10-08 Uros Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG. |
| (*jcc_btdi_mask_rex64): Ditto. |
| (*jcc_btsi): Ditto. |
| (*jcc_btsi_mask): Ditto. |
| (*jcc_btsi_1): Ditto. |
| (*jcc_btsi_mask_1): Ditto. |
| |
| 2008-10-08 Paul Brook <paul@codesourcery.com> |
| |
| * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI |
| compatible profiler (__gnu_mcount_nc). |
| (SUBTARGET_FRAME_POINTER_REQUIRED): Define. |
| |
| 2008-10-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.c (initial_ix86_tune_features): Add |
| X86_TUNE_USE_VECTOR_FP_CONVERTS. |
| * config/i386/i386.h (ix86_tune_indices): Likewise. |
| (TARGET_USE_VECTOR_FP_CONVERTS): New. |
| |
| * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS |
| instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC) |
| for FP to FP splitters. |
| |
| 2008-10-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert |
| splitter. |
| |
| 2008-10-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/36635 |
| PR target/37290 |
| PR rtl-optimization/37341 |
| * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges |
| to ORIG_BB, pass through ORIG_BB recursively. |
| (cse_condition_code_reg): Adjust caller. |
| |
| 2008-10-08 Kai Tietz <kai.tietz@onevision.com> |
| |
| * sdbout.c (sdbout_one_type): Treat the value type |
| CONST_DECL for enumerals. |
| |
| 2008-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.md: Remove trailing white spaces. |
| |
| 2008-10-07 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| PR rtl-optimization/37448 |
| * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field. |
| (stuct alloc_pool_descriptor) [created, allocated, current, peak]: |
| Make unsigned long. |
| (struct output_info) [count]: Renamed total_created and made |
| unsigned long. |
| (struct output_info) [size]: Renamed total_allocated and made |
| unsigned long. |
| (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free): |
| Properly keep track of desc->size. |
| (print_statistics, dump_alloc_pool_statistics): Enhance the |
| printing of statistics to print the number of elements and to use |
| unsigned longs. |
| |
| 2008-10-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/37576 |
| * opts.h (CL_SAVE): Move up to flags range. |
| (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, |
| CL_COMMON): Renumber. |
| (CL_MIN_OPTION_CLASS): Set to CL_PARAMS. |
| * opts.c (common_handle_option): Revert last change. |
| |
| 2008-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386-protos.h (ix86_schedule): New. |
| |
| * config/i386/i386.c (ix86_schedule): New. |
| (override_options): Add schedule to processor_alias_table. Set |
| ix86_schedule from the schedule field in processor_alias_table. |
| (ix86_function_specific_save): Save ix86_schedule. |
| (ix86_function_specific_restore): Restore ix86_schedule. |
| |
| * config/i386/i386.md (cpu): Map to ix86_schedule instead of |
| ix86_tune. Add none and remove i386, i486, pentium4, nocona |
| and generic32. |
| |
| * config/i386/i386.opt: Add schedule. |
| |
| * config/i386/ppro.md: Remove generic32. |
| |
| 2008-10-07 Simon Martin <simartin@users.sourceforge.net> |
| |
| PR c/35437 |
| * expr.c (count_type_elements): Handle ERROR_MARK. |
| |
| 2008-10-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/29609 |
| PR debug/36690 |
| PR debug/37616 |
| * basic-block.h (struct edge_def): Add goto_block field. |
| * cfglayout.c (fixup_reorder_chain): Ensure that there is at least |
| one insn with locus corresponding to edge's goto_locus if !optimize. |
| * profile.c (branch_prob): Copy edge's goto_block. |
| * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for |
| emitted jumps. |
| (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus |
| locator in between the merged basic blocks if !optimize and needed. |
| * cfgexpand.c (expand_gimple_cond): Convert goto_block and |
| goto_locus into RTL locator. For unconditional jump use that |
| locator for the jump insn. |
| (expand_gimple_cond): Convert goto_block and goto_locus into |
| RTL locator for all remaining edges. For unconditional jump |
| use that locator for the jump insn. |
| * cfgcleanup.c (try_forward_edges): Avoid the optimization if |
| there is more than one edge or insn locator along the forwarding |
| edges and !optimize. If there is just one, set e->goto_locus. |
| * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also |
| edge's goto_block. |
| (move_block_to_fn): Adjust edge's goto_block. |
| |
| 2008-10-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR middle-end/37731 |
| * expmed.c (expand_mult): Properly check DImode constant in |
| CONST_DOUBLE. |
| |
| 2008-10-07 Jakub Jelinek <jakub@redhat.com> |
| |