OSDN Git Service

PR tree-optimization/33655
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1b4731d..03230d1 100644 (file)
@@ -1,3 +1,269 @@
+2007-10-09  James E. Wilson  <wilson@specifix.com>
+
+       PR tree-optimization/33655
+       PR middle-end/22156
+       * tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
+       convert it to bitsizetype before size_binop call.
+
+2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/33572
+       * tree-inline.c (update_ssa_across_abnormal_edges): Tolerate
+       the absence of a corresponding edge from the exit block.
+
+2007-10-09  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR middle-end/22156
+       * tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
+       bit-field layout.
+       (sra_build_assignment): Likewise.  Set up mask depending on
+       precision, not type.
+       (sra_build_bf_assignment): Use BYTES_BIG_ENDIAN.  Don't overflow
+       computing bit masks.
+       (sra_build_elt_assignment): Don't view-convert from signed to
+       unsigned.
+       (sra_explode_bitfield_assignment): Use bit-field type if
+       possible.  Use BYTES_BIG_ENDIAN.
+
+2007-10-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR middle-end/22156
+       * tree-sra.c (scalarize_lsdt): Fix thinko in testing whether
+       the original stmt can throw.
+       (sra_build_bf_assignment): Fix type mismatch when applying negated
+       mask.
+
+2007-10-08  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Register
+       '#pragma mark' to be executed at preprocessing time.
+
+2007-10-08  Ollie Wild  <aaw@google.com>
+
+       * varasm.c (compare_constant): Removed call to
+       lang_hooks.expand_constant.
+       (copy_constants): Removed call to lang_hooks.expand_constant.
+       (compute_reloc_for_constant): Removed call to
+       lang_hooks.expand_constant.
+       (output_addressed_constants): Removed call to
+       lang_hooks.expand_constant.
+       (constructor_static_from_elts_p): Removed call to
+       lang_hooks.expand_constant.
+       (output_constant): Removed calls to lang_hooks.expand_constant.
+       * langhooks.h (struct lang_hooks): Removed field expand_constant.
+       * langhooks-def.h (lhd_return_tree): Removed.
+       (LANG_HOOKS_EXPAND_CONSTANT): Removed.
+       (LANG_HOOKS_INITIALIZER): Removed LANG_HOOKS_EXPAND_CONSTANT.
+       * langhooks.c (lhd_return_tree): Removed.
+
+2007-10-08  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * combine.c (setup_incoming_promotions): Ensure that
+       arguments that have not undergone mode promotions do not
+       incorrectly get marked as being sign- or zero-extended.
+
+2007-10-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33693
+       PR middle-end/33695
+       PR middle-end/33697
+       * fold-const.c (fold_binary): Use correct types in folding
+       of a * (1 << b) to (a << b).  Likewise for ~A & ~B to ~(A | B)
+       and building of RROTATE_EXPR.
+
+2007-10-08  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33691
+       PR middle-end/33694
+       PR middle-end/33696
+       * fold-const.c (fold_binary): Use the correct types when
+       folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
+       (fold_binary): Use the correct types when folding
+       (-A) - B to (-B) - A.
+       (fold_unary): Use the correct types when folding ~(X).
+
+2007-10-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * doc/invoke.texi (Wall): fix formatting issues.
+       
+2007-10-07  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * simplify-rtx.c (simplify_binary_operation_1): Canonicalize
+       truncated shift counts.
+
+2007-10-07  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
+       syntax for ASSEMBLER_DIALECT.
+       * config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
+
+2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+            Nathan Froyd  <froydnj@codesourcery.com>
+
+       * dwarf2out.c (dwarf2out_frame_init): Check for DWARF2_FRAME_INFO
+       when determining whether to record INCOMING_RETURN_ADDR_RTX.
+
+2007-10-06  Eric Botcazou  <ebotcazou@adacore.com>
+
+       Revert:
+       2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
+       * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
+       the function, temporarily point the debug interface to the null one.
+
+2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/33655
+       PR middle-end/22156
+       * tree-sra.c (bitfield_overlaps_p): Handle array and complex
+       elements.
+
+2007-10-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR tree-optimization/33572
+       * tree-cfg.c (verify_stmts): Check for missing PHI defs.
+       * tree-inline.c (update_ssa_across_eh_edges): Renamed to...
+       (update_ssa_across_abnormal_edges): ... this.  Set slots in the
+       return PHI node.
+       (copy_edges_for_bb): Handle nonlocal label edges.
+       (make_nonlocal_label_edges): Deleted.
+       (optimize_inline_calls): Don't call it.
+
+2007-10-05  Hans-Peter Nilsson  <hp@axis.com>
+
+       * gthr-single.h: Revert last change.
+
+2007-10-05  Michael Matz  <matz@suse.de>
+
+       PR middle-end/33667
+       * lower-subreg.c (decompose_multiword_subregs): Use
+       validate_unshare_change().
+
+2007-10-05  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * ra-conflict.c: Include "sparseset.h".
+       (conflicts): Change to HOST_WIDEST_FAST_INT.
+       (allocnos_live): Redefine variable as a sparseset.
+       (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE, GET_ALLOCNO_LIVE): Delete macros.
+       (allocno_row_words): Removed global variable.
+       (partial_bitnum, max_bitnum, adjacency_pool, adjacency): New variables.
+       (CONFLICT_BITNUM, CONFLICT_BITNUM_FAST): New defines.
+       (conflict_p, set_conflict_p, set_conflicts_p): New functions.
+       (record_one_conflict_between_regnos): Cache allocno values and reuse.
+       Use set_conflict_p.
+       (record_one_conflict): Update uses of allocnos_live to use
+       the sparseset routines.  Use set_conflicts_p.
+       (mark_reg_store): Likewise.
+       (set_reg_in_live): Likewise.
+       (global_conflicts): Update uses of allocnos_live.
+       Use the new adjacency list to visit an allocno's neighbors
+       rather than iterating over all possible allocnos.
+       Call set_conflicts_p to setup conflicts rather than adding
+       them manually.
+       * global.c: Comments updated.  
+       (CONFLICTP): Delete define.
+       (regno_compare): New function.  Add prototype.
+       (global_alloc): Sort the allocno to regno mapping according to
+       which basic blocks the regnos are referenced in.  Modify the
+       conflict bit matrix to a compressed triangular bitmatrix.
+       Only allocate the conflict bit matrix and adjacency lists if
+       we are actually going to allocate something.
+       (expand_preferences): Use conflict_p.  Update uses of allocnos_live.
+       (prune_preferences): Use the FOR_EACH_CONFLICT macro to visit an
+       allocno's neighbors rather than iterating over all possible allocnos.
+       (mirror_conflicts): Removed function.
+       (dump_conflicts): Iterate over regnos rather than allocnos so
+       that all dump output will be sorted by regno number.
+       Use the FOR_EACH_CONFLICT macro.
+       * ra.h: Comments updated.
+       (conflicts): Update prototype to HOST_WIDEST_FAST_INT.
+       (partial_bitnum, max_bitnum, adjacency, adjacency_pool): Add prototypes.
+       (ADJACENCY_VEC_LENGTH, FOR_EACH_CONFLICT): New defines.
+       (adjacency_list_d, adjacency_iterator_d): New types.
+       (add_neighbor, adjacency_iter_init, adjacency_iter_done,
+       adjacency_iter_next, regno_basic_block): New static inline functions.
+       (EXECUTE_IF_SET_IN_ALLOCNO_SET): Removed define.
+       (conflict_p): Add function prototype.
+       * sparseset.h, sparseset.c: New files.
+       * Makefile.in (OBJS-common): Add sparseset.o.
+       (sparseset.o): New rule.
+
+2007-10-05  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33666
+       * fold-const.c (fold_unary): Do not fold (long long)(int)ptr
+       to (long long)ptr.
+
+2007-10-05  Michael Matz  <matz@suse.de>
+
+       PR inline-asm/33600
+       * function.c (match_asm_constraints_1): Check for input
+       being used in the outputs.
+
+2007-10-05  Richard Guenther  <rguenther@suse.de>
+
+       * tree-cfg.c (verify_gimple_expr): Accept OBJ_TYPE_REF.
+
+2007-10-05  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       PR target/33635
+       * config/mips/mips.c (mips_register_move_cost): Rewrite to use
+       subset checks.  Make the cost of FPR -> FPR moves depend on
+       mips_mode_ok_for_mov_fmt_p.
+
+2007-10-04  Doug Kwan  <dougkwan@google.com>
+
+       * gthr-posix.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
+       support of conditional variables.
+       * gthr-posix95.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables. (__GTHREAD_HAS_COND): Macro defined to signify
+       support of conditional variables.
+       * gthr-single.h (__gthread_cond_broadcast, __gthread_cond_wait,
+       __gthread_cond_wait_recursive): Add to extend interface for POSIX
+       conditional variables.
+       * gthr.h: Update comments to document new interface.
+
+2007-10-04  Geoffrey Keating  <geoffk@apple.com>
+
+       * cgraphunit.c (cgraph_build_static_cdtor): Don't set
+       DECL_IGNORED_P.
+
+2007-10-04  Anatoly Sokolov <aesok@post.ru>
+
+       * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P.
+
+2007-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/33641
+       * tree-cfg.c (verify_gimple_expr): Operand one of POINTER_PLUS_EXPR
+       does not need to be of INTEGER_TYPE.
+       (verify_gimple_2): New function split out from ...
+       (verify_gimple_1): ... here.  ICE if there was an error during
+       verification.
+
+2007-10-04  Michael Matz  <matz@suse.de>
+
+       PR rtl-optimization/33653
+       * dce.c (deletable_insn_p_1): Use volatile_refs_p().
+       * dse.c (scan_insn): Same.
+
+2007-10-04  Kazu Hirata  <kazu@codesourcery.com>
+
+       * config.gcc: Remove USE_GAS for m68k targets.
+
+2007-10-04  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/33627
+       * tree-gimple.h (canonicalize_cond_expr_cond): Declare.
+       * tree-gimple.c (canonicalize_cond_expr_cond): New function,
+       split out from ...
+       * tree-ssa-forwprop.c (combine_cond_expr_cond): ... here.
+       * tree-ssa-ifcombine.c (ifcombine_iforif): Use it.
+
 2007-10-04  Anatoly Sokolov <aesok@post.ru>
 
        * config/avr/avr.c (commands_in_file, commands_in_prologues,