OSDN Git Service

* pa/linux-atomic.c (EBUSY): Define if not _LP64.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d3884d1..1a5ab35 100644 (file)
@@ -1,3 +1,294 @@
+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_ope): 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]*.
 
 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
 
-        PR target/38156
-        * tree-parloops.c (loop_parallel_p): NULL vect_dump.
+       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-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.
+       parameter.  Use DImode for computing the number of registers.
        (function_arg): Adjust for above change.
        (function_value): Likewise.