OSDN Git Service

2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
2         PR doc/45587
3         * doc/md.texi: Fixed modes on several standard pattern names.
4
5 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
6
7         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
8         (ashl<mode>3): ...this.
9         (loongson_psra<V_suffix>): Rename to...
10         (ashr<mode>3): ...this.
11         (loongson_psrl<V_suffix>): Rename to...
12         (lshr<mode>3): ...this.
13         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14         (CODE_FOR_loongson_psllw): Define.
15         (CODE_FOR_loongson_psrlh): Define.
16         (CODE_FOR_loongson_psrlw): Define.
17         (CODE_FOR_loongson_psrah): Define.
18         (CODE_FOR_loongson_psraw): Define.
19
20 2010-09-07  Richard Henderson  <rth@redhat.com>
21
22         * tree-vect-data-refs.c: Include tm_p.h.
23         * Makefile.in (tree-vect-data-refs.o): Update deps.
24         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
25         Move delarations outside #ifdef RTX_CODE.
26
27 2010-09-07  Richard Henderson  <rth@redhat.com>
28
29         * final.c (rest_of_handle_final): Unconditionally do 
30         output_function_exception_table before assemble_end_function.
31
32 2010-09-07  Jan Hubicka  <jh@suse.cz>
33
34         * tree-inline.c (tree_inlinable_function_p): Do not test DECL_REPLACEABLE_P.
35         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys, update_callee_keys,
36         cgraph_decide_inlining): Test function availability.
37         * cif-code.def (OVERWRITABLE): New code.
38
39 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
40             Jack Howarth <howarth@bromo.med.uc.edu>
41
42         PR target/36502
43         PR target/42313
44         PR target/44651
45         * gcc/config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
46         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
47         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
48         MAX macro.
49
50 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
51
52         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
53         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
54
55 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
56
57         * config.gcc: Don't append t-android for Android targets.
58
59         * config/t-android: Removed.
60
61 2010-09-07  Richard Henderson  <rth@redhat.com>
62
63         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
64         * doc/tm.texi.in: Add doc marker.
65         * doc/tm.texi: Rebuild.
66         * except.c (switch_to_exception_section): Always build.
67         (output_one_function_exception_table): Move section switch,
68         personality output, and label output ...
69         (output_function_exception_table): ... here.  Use the new
70         personality hook.
71
72         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
73         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
74         TARGET_ASM_INIT_SECTIONS): New.
75         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
76         make static.
77         (TARGET_ASM_UNWIND_EMIT): Update to match.
78         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
79
80         * config/arm/arm.c (arm_asm_emit_except_personality): New.
81         (arm_asm_init_sections): New.
82         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
83
84 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
85
86         * config/arm/arm.md: Remove unused variable.
87
88 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
89
90         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
91         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
92         (m32r_memory_move_cost): New function.
93
94 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
95
96         * config.gcc: Append t-android for Android targets.
97
98         * config/t-android: New.
99
100 2010-09-07  Richard Henderson  <rth@redhat.com>
101
102         * target.def (unwind_emit_before_insn): New hook.
103         * doc/tm.texi.in: Add @hook marker for it.
104         * doc/tm.texi: Rebuild.
105         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
106
107 2010-09-07  Martin Jambor  <mjambor@suse.cz>
108
109         PR fortran/43665
110         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
111         are any type attributes.
112
113 2010-09-07  Jan Hubicka  <jh@suse.cz>
114
115         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
116         array_ref_low_bound in string access folding.
117
118 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
119
120         PR target/45206
121         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
122         eh_return fixup sequence.
123
124 2010-09-07  Jan Hubicka  <jh@suse.cz>
125
126         * gimple-fold.c (maybe_fold_reference): Verify that operand is
127         gimple_min_invariant.
128
129 2010-09-07  Richard Guenther  <rguenther@suse.de>
130
131         PR middle-end/45569
132         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
133         nor CONSTRUCTOR can trap.
134         * tree-complex.c (update_complex_assignment): Update EH info.
135
136 2010-09-07  Richard Guenther  <rguenther@suse.de>
137
138         PR middle-end/45569
139         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
140         * passes.c (execute_function_todo): Do not verify anything if
141         we saw errors.
142
143 2010-09-07  Richard Guenther  <rguenther@suse.de>
144
145         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
146
147 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
148
149         PR target/43137
150         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
151         New define_mode_attrs.
152         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
153         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
154         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
155         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
156         Remove pool_range attribute.
157         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
158         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
159         pool_range and neg_pool_range attributes.
160         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
161         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
162         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
163
164 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
165
166         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
167         check glibc.
168
169 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
170
171         PR target/22152
172         * config/i386/mmx.md (*mov<mode>_internal_rex64,
173         *mov<mode>_internal_avx, *mov<mode>_internal,
174         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
175         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
176
177 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
178
179         * c-typeck.c (do_warn_double_promotion): Remove.
180         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
181         Objective-C++ too.
182
183 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
184
185         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
186         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
187         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
188         argument type to reg_class_t. Change result type to bool.
189         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
190
191 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
192
193         PR libobjc/19850
194         * gthr-posix.h (__gthread_objc_thread_detach): Use
195         _objc_thread_attribs when detaching a thread.
196         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
197
198 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
199
200         PR target/45524
201         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
202         * configure: Regenerated.
203
204 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
205
206         * combine.c (try_combine): Set subst_low_luid to i0.
207
208 2010-09-06  Richard Guenther  <rguenther@suse.de>
209
210         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
211         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
212         (build_aligned_type): Declare.
213         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
214         (check_aligned_type): New function.
215         (build_aligned_type): Likewise.
216         * expr.c (expand_assignment): Handle misaligned stores via
217         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
218         (expand_expr_real_1): Likewise.
219         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
220         * tree-vect-stmts.c (vectorizable_store): Do not build
221         MISALIGNED_INDIRECT_REF but initialize alignment information.
222         (vectorizable_load): Likewise.
223         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
224         handling.
225         * cfgexpand.c (expand_debug_expr): Likewise.
226         * dwarf2out.c (loc_list_from_tree): Likewise.
227         * fold-const.c (maybe_lvalue_p): Likewise.
228         (operand_equal_p): Likewise.
229         (build_fold_addr_expr_with_type_loc): Likewise.
230         * gimplify.c (gimplify_addr_expr): Likewise.
231         (gimplify_expr): Likewise.
232         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
233         (verify_gimple_assign_single): Likewise.
234         * tree-dump.c (dequeue_and_dump): Likewise.
235         (tree_could_trap_p): Likewise.
236         * tree-predcom.c (ref_at_iteration): Likewise.
237         * tree-pretty-print.c (dump_generic_node): Likewise.
238         (op_code_prio): Likewise.
239         (op_symbol_code): Likewise.
240         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
241         * tree-ssa-loop-im.c (for_each_index): Likewise.
242         (gen_lsm_tmp_name): Likewise.
243         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
244         (find_interesting_uses_address): Likewise.
245         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
246         * tree-ssa-operands.c (get_expr_operands): Likewise.
247         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
248         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
249         (ao_ref_init_from_vn_reference): Likewise.
250         * tree.c (staticp): Likewise.
251         (build1_stat): Likewise.
252         (reference_alias_ptr_type): Likewise.
253         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
254         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
255         MISALIGNED_INDIRECT_REF handling.
256
257 2010-09-06  Richard Guenther  <rguenther@suse.de>
258
259         PR tree-optimization/45534
260         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
261         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
262         on the target.
263         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
264         valid on the target.
265
266 2010-09-06  Andreas Schwab  <schwab@redhat.com>
267
268         * configure.ac: Quote argument of AC_MSG_WARN.
269         * configure: Regenerate.
270
271 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
272
273         * sel-sched.c (move_cond_jump): Correct arguments to
274         maybe_tidy_empty_bb.
275         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
276
277 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
278
279         PR rtl-optimization/44919
280         * sel-sched.c (move_cond_jump): Remove assert, check that
281         the several blocks case can only happen with mutually exclusive
282         insns instead.  Rewrite the movement code to support moving through
283         several basic blocks.
284
285 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
286
287         * config/i386/i386.md (iptrsize): New mode attribute.
288         (tp_seg): Ditto.
289         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
290         mode iterator.
291         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
292         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
293         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
294         (stack_tls_protect_set_<mode>): Ditto from
295         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
296         of thread base pointer load.
297         (stack_tls_protect_test_<mode>): Ditto from
298         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
299         of thread base pointer load.
300         (stack_protect_set): Rewrite using indirect functions.
301         (stack_protect_test): Ditto.
302         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
303         (ix86_print_operand): Handle '@'.
304
305 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
306
307         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
308         MINUS_EXPR.
309
310 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
311
312         * doc/invoke.texi: Document -Wdouble-promotion.
313         * c-typeck.c (convert_arguments): Check for implicit conversions
314         from float to double.
315         (do_warn_double_promotion): New function.
316         (build_conditional_expr): Use it.
317         (build_binary_op): Likewise.
318
319 2010-09-05  Richard Guenther  <rguenther@suse.de>
320
321         PR tree-optimization/45535
322         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
323         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
324         dereferencing it.
325         (indirect_refs_may_alias_p): Likewise.
326
327 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
328
329         * config/sh/sh.c (sh_option_override): Make static.
330         Adjust comments.  Declare.
331         (sh_function_value_regno_p): Likewise.
332         (sh_register_move_cost): Modify the arguments, make static.
333         Adjust comments.  Declare.
334         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
335         TARGET_FUNCTION_VALUE_REGNO_P): Define.
336         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
337         REGISTER_MOVE_COST): Delete.
338         * config/sh/sh-protos.h (sh_override_options): Delete.
339         (sh_register_move_cost): Delete.
340         (sh_function_value_regno_p): Delete.
341
342 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
343
344         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
345         m32r_function_value_regno_p): New functions.
346         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
347         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
348         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
349         FUNCTION_VALUE_REGNO_P): Remove.
350
351 2010-09-04  Jan Hubicka  <jh@suse.cz>
352
353         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
354         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
355         fold_read_from_constant_string.
356
357         * gimple.h (canonicalize_constructor_val): Declare.
358         * gimple-fold.c (canonicalize_constructor_val): New function.
359         (get_symbol_constant_value):Use it.
360         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
361
362 2010-09-04  Jan Hubicka  <jh@suse.cz>
363
364         * tree-switch-conversion.c (build_one_array): Set constructor to be
365         static.
366         * varpool.c (varpool_finalize_decl): Compute const_value_known.
367
368 2010-09-04  Richard Guenther  <rguenther@suse.de>
369
370         PR bootstrap/45519
371         * tree-flow.h (force_gimple_operand_1): Declare.
372         (force_gimple_operand_gsi_1): Likewise.
373         * gimplify.c (force_gimple_operand_1): New worker taking a
374         gimple predicate for ...
375         (force_gimple_operand): ... which now wraps it.
376         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
377         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
378         last change.
379         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
380         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
381         (create_mem_ref): Likewise.
382
383 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
384
385         * config/i386/predicates.md (sse_reg_operand): New predicate.
386         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
387         predicate for operand 1.
388         (XFmode push splitter): Use fp_register_operand predicate
389         for operand 1.
390         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
391         (SF-DF float_extend push splitter): Add reload_completed insn
392         predicate.
393         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
394         MODEF mode macro.  Add reload_completed insn predicate.
395
396 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
397
398         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
399         (struct df_extract_ref): Remove.
400         (union df_ref_d): Remove extract_ref member.
401         (df_ref_create): Remove last three arguments.
402         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
403         * df-scan.c (df_ref_record): Remove last three arguments, do not
404         pass them to df_ref_create_structure.
405         (df_uses_record): Remove first and last three arguments.  Replace
406         first argument with DF_REF_REGULAR, adjust calls to remove the
407         width, offset and mode.  Always call recursively on the second
408         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
409         (df_ref_create_structure): Remove first argument.
410         (struct df_scan_problem_data): Remove ref_extract_pool.
411         (df_scan_free_internal): Do not free it.
412         (df_scan_alloc): Do not allocate it.
413         (df_ref_create): Remove last three arguments, do not pass them to
414         df_ref_create_structure.
415         (df_free_ref): Remove DF_REF_EXTRACT case.
416         (df_notes_rescan): Adjust call to df_uses_record.
417         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
418         Remove DF_REF_EXTRACT case.
419         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
420         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
421         and SUBREG definitions.
422         (df_get_conditional_uses): Remove references to width/offset/mode,
423         adjust call to df_ref_create_structure.
424         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
425         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
426         calls to df_uses_record and df_ref_record.
427         * fwprop.c (update_df): Remove references to width/offset/mode,
428         adjust call to df_ref_create.
429
430 2010-09-03  Jan Hubicka  <jh@suse.cz>
431
432         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
433         (build_cdtor_fns): Update use of build_cdtor.
434
435 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
436
437         * doc/options.texi (SeparateAlias): Document.
438         * opt-functions.awk (switch_flags): Handle SeparateAlias.
439         * opth-gen.awk: Generate enumeration names for options marked
440         SeparateAlias, but not for those marked Ignore.
441         * opts-common.c (generate_canonical_option): Don't output separate
442         argument for options marked CL_SEPARATE_ALIAS.
443         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
444         * opts.h (CL_SEPARATE_ALIAS): New.
445         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
446         CL_COMMON): Adjust definitions.
447         * config/i386/darwin.opt, config/mips/sde.opt: New.
448         * common.opt (fdump-final-insns): New.
449         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
450         i386/darwin.opt.
451         (mips*-sde-elf*): Add mips/sde.opt.
452         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
453         -mno-data-in-code and -mcode-xonly here.
454         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
455         * gcc.c (option_map): Add "j" to --dump entry.
456         (translate_options): Don't translate -d to -foutput-class-dir= here.
457
458 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
459
460         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
461         DR_IS_WRITE.
462         (compute_all_dependences): Same.
463         (create_rdg_edge_for_ddr): Same.
464         * tree-data-ref.h (DR_IS_WRITE): New.
465         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
466         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
467         (write_memrefs_written_at_least_once): Same.
468         * tree-predcom.c (suitable_component_p): Same.
469         (determine_roots_comp): Same.
470         (execute_load_motion): Same.
471         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
472         (vect_enhance_data_refs_alignment): Same.
473         (vect_analyze_group_access): Same.
474
475 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
476
477         PR testsuite/42843
478         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
479         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
480
481 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
482
483         * dwarf2out.c (file scope): Remove #if0'd code.
484         (gen_subprogram_die): Same.
485
486 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
487
488         PR middle-end/45484
489         * dwarf2out.c (flush_queued_reg_saves): Rename to...
490         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
491         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
492         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
493         * config/i386/i386.c (output_set_got): Call it.
494
495 2010-09-03  Michael Matz  <matz@suse.de>
496
497         PR middle-end/45415
498         * tree-sra.c (sra_modify_assign): If we modify the statement,
499         say so.
500
501         * tree-ssa.c (verify_ssa): Check number of operands and links
502         per statement to agree.
503
504 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
505             Iain Sandoe  <iains@gcc.gnu.org>
506
507         PR target/45476
508         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
509         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
510         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
511
512 2010-09-03  Richard Guenther  <rguenther@suse.de>
513
514         * lto-streamer-out.c (output_function): Output function
515         start and end loci.
516         * lto-streamer-in.c (input_function): Input function start
517         and end loci.
518
519 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
520
521         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
522         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
523         * configure: Regenerate.
524         * aclocal.m4: Regenerate.
525
526 2010-09-03  Jan Hubicka  <jh@suse.cz>
527
528         PR lto/44812
529         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
530         on functions/variables in other partition.
531
532 2010-09-03  Jan Hubicka  <jh@suse.cz>
533
534         * cgraph.h (struct varpool_node): Add const_value_known.
535         (varpool_decide_const_value_known): Declare.
536         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
537         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
538         (input_varpool_node): Restore const_value_known.
539         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
540         initializer folding.
541         * ipa.c (ipa_discover_readonly_nonaddressable_var,
542         function_and_variable_visibility): Compute const_value_known.
543         * gimple-fold.c (get_symbol_constant_value): Use varpool for
544         initializer folding.
545         * varpool.c (varpool_decide_const_value_known): New function.
546
547 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
548
549         * config/i386/i386.md: Remove empty preparation statements
550         from splitters.
551
552 2010-09-03  Jan Hubicka  <jh@suse.cz>
553
554         * passes.c (rest_of_decl_compilation): Do not add local vars into
555         varpool.
556         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
557         static or extern vars are in varpool.
558         (varpool_finalize_decl): Sanity check that only static vars are
559         finalized.
560
561 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
562
563         PR debug/45500
564         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
565         not just generic vectors with BLKmode.
566
567 2010-09-03  Richard Guenther  <rguenther@suse.de>
568
569         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
570         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
571         * tree.h (TMR_SYMBOL): Remove.
572         (TMR_BASE, TMR_OFFSET): Adjust.
573         (TMR_INDEX2): New.
574         * alias.c (ao_ref_from_mem): Use TMR_BASE.
575         * builtins.c (get_object_alignment): Merge TMR_BASE and
576         TMR_SYMBOL handling.
577         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
578         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
579         handling.  Also allow TARGET_MEM_REF as base address.
580         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
581         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
582         base.  Gimplify TMR_INDEX2.
583         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
584         * tree-dfa.c (get_ref_base_and_extent): Likewise.
585         (get_addr_base_and_unit_offset): Likewise.
586         * tree-eh.c (tree_could_trap_p): Likewise.
587         * tree-pretty-print.c (dump_generic_node): Likewise.
588         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
589         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
590         base to index2.
591         (get_address_description): Reconstruct addres description
592         from merged TMR_BASE and TMR_INDEX2.
593         (maybe_fold_tmr): Fold propagated addresses.
594         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
595         MEM_REF and TARGET_MEM_REF paths.
596         (indirect_refs_may_alias_p): Likewise.
597         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
598         instead of TMR_SYMBOL.
599         * tree-ssa-operands.c (get_tmr_operands): Simplify.
600         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
601         according to changes ...
602         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
603         Split TARGET_MEM_REF into two fields plus the base.
604         * tree.c (mem_ref_offset): Simplify.
605         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
606         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
607         Strip NOPs when folding MEM_REF addresses.
608         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
609         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
610         (fold_gimple_assign): ... not here.
611
612 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
613
614         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
615         * config/mips/mips.c (mips_shift_truncation_mask): New function.
616         (TARGET_SHIFT_TRUNCATION_MASK): Define.
617
618 2010-09-02  Richard Henderson  <rth@redhat.com>
619
620         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
621         instead of readelf in the test.
622         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
623         in the .debug_frame section for coff targets.
624         * configure: Rebuild.
625
626 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
627
628         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
629         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
630         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
631         (m32c_class_likely_spilled_p): Make static. Change argument type to
632         reg_class_t. Change result type to bool.
633
634 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
635
636         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
637         to convert (double)(long) into a single FRIZ instruction or not
638         when -ffast-math is used.
639
640         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
641         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
642         or FRIZ instruction if -ffast-math.
643         * config/rs6000/rs6000.md (friz): Ditto.
644
645         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
646
647 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
648
649         * opth-gen.awk (quote, comma): Remove unused variables.
650
651 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
652
653         * arm.c (arm_override_options): Correct fall-back code to use
654         SUBTARGET_CPU_DEFAULT.
655
656 2010-09-02  Julian Brown  <julian@codesourcery.com>
657
658         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
659         unspecs.
660         (vcond<mode>, vcondu<mode>): New expanders.
661         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
662         comparisons with zero.
663         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
664         * config/arm/constraints.md (Dz): New constraint.
665
666 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
667
668         * target.def (class_likely_spilled_p): New hook.
669         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
670         * doc/tm.texi: Regenerate.
671         * targhooks.c (default_class_likely_spilled_p): New function.
672         * targhooks.h (default_class_likely_spilled_p): Declare.
673         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
674         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
675         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
676         Use fixed_reg_set instead of fixed_regs.
677         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
678         * calls.c (avoid_likely_spilled_reg): Ditto.
679         * ira-conflicts.c (ira_build_conflicts): Ditto.
680         * ira.c (update_equiv_regs): Ditto.
681         * mode-switching.c (create_pre_exit): Ditto.
682         * regmove.c (find_matches): Ditto.
683         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
684         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
685         (small_register_class_p): New inline function.
686         (push_secondary_reload, find_reusable_reload, find_reloads): Use
687         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
688
689         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
690         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
691         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
692
693 2010-09-02  Richard Guenther  <rguenther@suse.de>
694
695         PR tree-optimization/44937
696         PR tree-optimization/45412
697         * ipa-split.c (split_function): Properly remove PHI nodes.
698
699 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
700
701         * opts.h (struct cl_option): Add warn_message field.
702         (struct cl_decoded_option): Add warn_message field.
703         * doc/options.texi (Ignore, Warn): Document.
704         * opt-functions.awk (needs_state_p): Don't consider aliases or
705         ignored options to need state saved.
706         * optc-gen.awk: Handle Warn and Ignore.
707         * opth-gen.awk: Output OPT_SPECIAL_ignore.
708         * opts-common.c (decode_cmdline_option): Set warn_message field.
709         Handle ignored options.
710         (decode_cmdline_options_to_array, generate_option,
711         generate_option_input_file): Set warn_message field.
712         (read_cmdline_option): Generate warnings from warn_message field.
713         Handle ignored options.
714         * common.opt (Wunreachable-code, fargument-alias,
715         fargument-noalias, fargument-noalias-global,
716         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
717         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
718         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
719         ftree-salias): Mark Ignore.
720         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
721         -mintel-syntax and -mno-intel-syntax here.
722         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
723         using Warn.
724         * opts.c (common_handle_option): Don't handle options marked as
725         ignored.
726         (enable_warning_as_error): Handle ignored options.
727
728 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
729
730         PR driver/44076
731         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
732         alias_target fields.
733         * opt-functions.awk (opt_sanitized_name): Don't handle
734         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
735         * optc-gen.awk: Generate alias fields.
736         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
737         Don't generate such constants for aliases.
738         * opts-common.c (generate_canonical_option): New.
739         (decode_cmdline_option): Handle aliases.  Use
740         generate_canonical_option for known options instead of copying the
741         input option text.
742         * doc/options.texi (Alias): Document.
743         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
744         fstack-check, specs): Mark as aliases.
745         * gcc.c (driver_handle_option): Canonicalize -L options to joined
746         arguments.
747         (driver_handle_option): Don't handle OPT_specs.
748         * opts.c (common_handle_option): Don't handle options marked as
749         aliases.
750         (enable_warning_as_error): Handle aliases.
751         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
752         OPT_Wlarger_than_eq.
753         * tree-optimize.c (tree_rest_of_compilation): Use
754         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
755
756 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
757
758         * config/i386/i386.md (nonmemory_operand): New mode attribute.
759         (push memory peephole2): Macroize peepholes using SWI mode iterator.
760         (move immediate to memory peephole2): Macroize peepholes using
761         SWI124 mode iterator.
762         (non-pairable NOT peephole2): Macroize peepholes using SWI124
763         mode iterator.
764         (simple lea add peephole2): Macroize peepholes using SWI48
765         mode iterator.
766         (simple lea mult peephole2): Ditto.
767         (imul by 3,5,9 to lea peephole2): Ditto.
768         (mov $-1, reg peephole2): Macroize peepholes using SWI248
769         mode iterator.
770         (imul $32bit_imm,mem,reg peephole2): Ditto.
771         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
772
773 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
774
775         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
776
777 2010-09-02  Olivier Hainque  <hainque@adacore.com>
778
779         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
780         (allocno_priority_compare_func): Use it instead of a straight
781         difference computation over priorities.
782
783 2010-09-02  Andi Kleen  <ak@linux.intel.com>
784
785         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
786
787 2010-09-02  Ira Rosen  <irar@il.ibm.com>
788
789         * tree-vectorizer.h (get_later_stmt): New function.
790         (vect_analyze_data_ref_dependences): Add argument.
791         * tree-vect-loop.c (vect_analyze_loop): Update call to
792         vect_analyze_data_ref_dependences.
793         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
794         New function.
795         (vect_analyze_data_ref_dependence): Add argument for basic block
796         dependencies. Check dependencies in basic block vectorization.
797         (vect_analyze_data_ref_dependences): Add argument and update call to
798         vect_analyze_data_ref_dependences.
799         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
800         (vect_bb_vectorizable_with_dependencies): New.
801         (vect_slp_analyze_bb): Check dependencies in basic block.
802         (vect_schedule_slp_instance): Insert stores before the last store in
803         SLP instance.
804
805 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
806
807         PR target/45476
808         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
809         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
810
811 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
812
813         PR middle-end/45458
814         * bb-reorder.c (add_labels_and_missing_jumps): Treat
815         bbs ending with throwing insns like blocks ending with a call.
816         (fix_up_fall_thru_edges): Likewise.
817
818 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
819
820         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
821         (m32c_function_arg_advance): Delete.
822         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
823         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
824         comments.  Take a const_tree and a bool.  Declare.
825         (m32c_function_arg_advance): Likewise.
826         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
827
828 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
829
830         PR target/45476
831         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
832         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
833         * config/i386/mingw32.h: ... here.
834
835 2010-09-01  Andi Kleen  <ak@linux.intel.com>
836
837         PR lto/45475
838         * lto-streamer-in.c (lto_input_ts_target_option): Add.
839         (lto_input_tree_pointers): Call lto_input_ts_target_option.
840         * lto-streamer-out (lto_output_ts_target_option): Add.
841         (lto_output_tree_pointers): Call lto_output_ts_target_option.
842
843 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
844
845         PR/target 45452
846         * config/i386/cygwin.h: Change order of specified import libraries.
847         * config/i386/mingw32.h: Likewise.
848         * config/i386/t-cygwin: Likewise.
849         * config/i386/t-mingw32: Likewise.
850         * config/i386/t-mingw-w32: Likewise.
851         * config/i386/t-mingw-w64: Likewise.
852
853 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
854
855         * config/arm/neon-schedgen.ml (core): New type.
856         (allCores): List of supported cores.
857         (availability_table): Add supported cores.
858         (collate_bypasses): Accept core as a parameter.
859         (worst_case_latencies_and_bypasses): Accept core as a parameter.
860         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
861         and coreStr to get tune attribute and prefix for functional units.
862         (emit_bypasses): Accept core name and use it.
863         (calculate_per_core_availability_table): New.
864         (filter_core): New.
865         (calculate_core_availability_table): New.
866         (main): Use calculate_core_availablity_table.
867         * config/arm/cortex-a8-neon.md: Update copyright year.
868         Regenerated from ml file and merged in.
869         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
870         cortex_a8_neon_mrc.
871
872 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
873
874         * Makefile.in (tree-switch-conversion.o): Update dependencies.
875
876 2010-09-01  Richard Guenther  <rguenther@suse.de>
877
878         * alias.c (ao_ref_from_mem): Adjust.
879         * builtins.c (get_object_alignment): Likewise.
880         * cfgexpand.c (expand_debug_expr): Likewise.
881         * gimple.c (get_base_address): Likewise.
882         * tree-dfa.c (get_ref_base_and_extent): Likewise.
883         (get_addr_base_and_unit_offset): Likewise.  Fix for
884         both TMR_SYMBOL and TMR_BASE being set.
885         * tree-eh.c (tree_could_trap_p): Likewise.
886         * gimplify.c (gimplify_expr): Do not attempt to gimplify
887         TMR_SYMBOL.  Always gimplify TMR_BASE.
888         * tree-cfg.c (verify_types_in_gimple_reference): Verify
889         TMR_BASE if there is a TMR_SYMBOL.
890         * tree-pretty-print.c (dump_generic_node): Adjust.
891         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
892         (tree_mem_ref_addr): Likewise.
893         (create_mem_ref_raw): Likewise.
894         (move_fixed_address_to_symbol): Likewise.
895         (create_mem_ref): Likewise.
896         (dump_mem_address): Likewise.
897         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
898         Fix for both TMR_SYMBOL and TMR_BASE being set.
899         (indirect_refs_may_alias_p): Likewise.
900         * tree-ssa-operands.c (get_tmr_operands): Adjust.
901         * tree.def (TARGET_MEM_REF): Adjust documentation.
902
903 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
904
905         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
906         Rename from X86_TUNE_ADD_ESP_4.
907         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
908         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
909         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
910         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
911         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
912         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
913         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
914         * config/i386/i386.c (initial_ix86_tune_features)
915         <X86_TUNE_SINGLE_POP>: Invert members.
916         <X86_TUNE_DOUBLE_POP>: Ditto.
917         <X86_TUNE_SINGLE_PUSH>: Ditto.
918         <X86_TUNE_DOUBLE_PUSH>: Ditto.
919         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
920         No longer exported.
921         (push peephole2 patterns): Macroize peepholes using P mode iterator.
922         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
923         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
924         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
925
926 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
927
928         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
929         a volatile LHS if the constructor has only one element.
930
931 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
932
933         PR bootstrap/45321
934         * tree.c (stdarg_p): Make fntype parameter const.
935         * tree.h (stdarg_p): Likewise.
936         (function_args_iterator): Remove unused fntype field.
937         (function_args_iter_init): Do not initialize fntype
938         field.  Make fntype parameter const.
939
940 2010-09-01  Richard Guenther  <rguenther@suse.de>
941
942         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
943         estimate.
944         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
945         (execute_vrp): Compute number of iteration estimates.
946         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
947         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
948         * tree-data-ref.c (estimated_loop_iterations): Adjust.
949         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
950         Infer loop bounds from undefined behavior based on a new parameter.
951         (estimate_numbers_of_iterations): Likewise.
952         (scev_probably_wraps_p): Adjust.
953         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
954
955 2010-09-01  Nick Clifton  <nickc@redhat.com>
956
957         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
958         where appropriate.
959         (xstormy16_legitimate_address_p): Use true and false instead of 1
960         and 0.
961         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
962         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
963         magic constant 2.
964         (xstormy16_expand_call): Fix comment at start of function.
965
966 2010-09-01  Nick Clifton  <nickc@redhat.com>
967
968         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
969         when pushing accumulator register.
970         (rx_get_stack_layout): Always save call clobbered registers inside
971         interrupt handlers.
972         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
973
974 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
975
976         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
977         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
978
979         * libgcc-std.ver (GCC_4.6.0): Define version.
980
981 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
982
983         * tree-nested.c (convert_all_function_calls): Iterate until after the
984         sum of static chains in the nest doesn't change.
985
986 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
987
988         * config/m32c/m32c.c (classes_intersect): Remove.
989         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
990         reg_classes_intersect_p instead of classes_intersect.
991         (class_can_hold_mode): Change arguments type from enum reg_class to
992         reg_class_t.  Use reg_class_contents instead of class_contents.
993         (m32c_register_move_cost): Make static. Change arguments type from
994         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
995         classes_intersect. Use reg_class_contents instead of class_contents.
996         (m32c_memory_move_cost): Make static. Change arguments type from
997         enum reg_class to reg_class_t.
998         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
999         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1000         * config/m32c/m32c-protos.h (m32c_register_move_cost,
1001         m32c_memory_move_cost): Remove.
1002
1003 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1004
1005         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
1006         (arm_function_arg): Delete.
1007         (arm_needs_doubleword_align): Take a const_tree.
1008         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1009         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
1010         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
1011         (arm_function_arg): Make static.  Take a const_tree and a bool.
1012         (arm_function_arg_advance): Likewise.
1013         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1014
1015 2010-08-31  Andi Kleen  <ak@linux.intel.com>
1016
1017         * common.opt (fwhopr=): Update for -fwhopr=jobserver
1018         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
1019         * lto-wrapper.c (run_gcc): Add jobserver mode.
1020         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
1021         argument.
1022
1023 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
1024
1025         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
1026         (popsi1): Ditto.
1027         (*popdi1_epilogue): Ditto.
1028         (*popsi1_epilogue): Ditto.
1029         (popsi, popdi peephole2 patterns): Update peepholes for changed
1030         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
1031
1032         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
1033         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
1034
1035         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
1036         (override_options): Do not initialize removed ix86_gen_pop1.
1037         (gen_pop): New static function.
1038         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
1039         (release_scratch_register_on_entry): Ditto.
1040         (ix86_restore_reg_using_pop): Ditto.
1041         (ix86_expand_epilogue): Ditto.
1042
1043 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
1044
1045         PR middle-end/45461
1046         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
1047
1048 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1049
1050         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
1051         semicolons.
1052
1053 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1054
1055         * doc/extend.texi: Fix documentation of the return value of
1056         __builtin_choose_expr.
1057
1058 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1059
1060         * config/v850/v850-protos.h (function_arg): Delete.
1061         * config/v850/v850.h (FUNCTION_ARG): Delete.
1062         (FUNCTION_ARG_ADVANCE): Move code to...
1063         * config/v850/v850.c (v850_function_arg_advance): ...here.
1064         (v850_function_arg): Make static.  Take a const_tree and a bool.
1065         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1066
1067 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1068
1069         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
1070         these...
1071         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1072         ...and these...
1073         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
1074         ..to here..
1075         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
1076         ...and here.
1077         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1078
1079 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
1080
1081         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
1082         Delete.
1083         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1084         * config/rx/rx.c (rx_function_arg_size): Make static.
1085         (rx_function_arg): Likewise.
1086         (rx_function_arg_advance): New function.
1087         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1088
1089 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
1090
1091         * config/arm/arm.c (arm_override_options): Remove superfluous test.
1092         Fix indentation.
1093
1094 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
1095
1096         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
1097         (dwarf2out_decl) <CONST_DECL>: Likewise.
1098
1099 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
1100
1101         Stack usage support
1102         * common.opt (-fstack-usage): New option.
1103         * doc/invoke.texi (Debugging options): Document it.
1104         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
1105         allocate_dynamic_stack_space.
1106         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
1107         and propagate it to allocate_dynamic_stack_space.
1108         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
1109         * calls.c (initialize_argument_information): Pass TRUE as 4th
1110         argument to allocate_dynamic_stack_space.
1111         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
1112         to 1 when pushing a variable-sized argument onto the stack.  Pass
1113         TRUE as 4th argument to allocate_dynamic_stack_space.
1114         Update current_function_pushed_stack_size.
1115         (emit_library_call_value_1): Likewise.
1116         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
1117         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
1118         attempt to find an upper bound.  Remove redundant code for the
1119         SETJMP_VIA_SAVE_AREA case.
1120         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
1121         * function.h (struct stack_usage): New structure.
1122         (current_function_static_stack_size): New macro.
1123         (current_function_dynamic_stack_size): Likewise.
1124         (current_function_pushed_stack_size): Likewise.
1125         (current_function_dynamic_alloc_count): Likewise.
1126         (current_function_has_unbounded_dynamic_stack_size): Likewise.
1127         (current_function_allocates_dynamic_stack_space): Likewise.
1128         (struct function): Add new field 'su'.
1129         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
1130         add the value of the dynamic offset to the dynamic stack usage.
1131         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
1132         for variable-sized objects.
1133         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
1134         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
1135         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
1136         BUILT_IN_ALLOCA for variable-sized objects.
1137         * output.h (output_stack_usage): Declare.
1138         * toplev.c (stack_usage_file): New file pointer.
1139         (output_stack_usage): New function.
1140         (open_auxiliary_file): Likewise.
1141         (lang_dependent_init): Open file if flag_stack_usage is set.
1142         (finalize): Close file if stack_usage_file is not null.
1143         * tree.h (ALLOCA_FOR_VAR_P): New macro.
1144         * config/alpha/alpha.c (compute_frame_size): New function.
1145         (alpha_expand_prologue): Use it.
1146         (alpha_start_function): Likewise.
1147         (alpha_expand_epilogue): Likewise.  Set stack usage info.
1148         * config/i386/i386.c (ix86_expand_prologue): Likewise.
1149         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
1150         * config/mips/mips.c (mips_expand_prologue): Likewise.
1151         * config/pa/pa.c (hppa_expand_prologue): Likewise.
1152         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1153         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
1154
1155 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
1156
1157         PR tree-optimization/45427
1158         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
1159         Handle the case that the exit is never taken correctly.
1160         (number_of_iterations_ne): Pass exit_must_be_taken to
1161         number_of_iterations_ne_max.
1162
1163 2010-08-30  Catherine Moore  <clm@codesourcery.com>
1164
1165         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
1166         Infer -mdspr2 for the the 74K.
1167
1168 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
1169
1170         PR debug/45419
1171         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
1172
1173         PR middle-end/45423
1174         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
1175         and TRUTH_{AND,OR,XOR}_EXPR.
1176         * c-parser.c (c_parser_omp_atomic): Handle boolean
1177         {PRE,POST}_{INC,DEC}REMENT.
1178
1179 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
1180
1181         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
1182         (function_arg): Delete.
1183         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1184         (FUNCTION_INCOMING_ARG): Delete.
1185         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
1186         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
1187         and a bool.
1188         (function_arg): Rename to...
1189         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
1190         a bool.
1191         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
1192         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1193         (TARGET_FUNCTION_INCOMING_ARG): Define.
1194
1195 2010-08-30  Richard Guenther  <rguenther@suse.de>
1196
1197         PR tree-optimization/21602
1198         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
1199         using points-to information.
1200
1201 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
1202
1203         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
1204
1205 2010-08-30  Richard Guenther  <rguenther@suse.de>
1206
1207         PR tree-optimization/45449
1208         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
1209         variables.
1210
1211 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
1212
1213         * opts.h (CL_ERR_NEGATIVE): Define.
1214         * opts.c (unknown_option_callback): Don't postpone warnings for
1215         options marked with CL_ERR_NEGATIVE.
1216         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
1217         for negative versions of CL_REJECT_NEGATIVE options.
1218
1219 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
1220
1221         * config/i386/i386.md (zero_extendsidi2_1): Rename from
1222         zero_extendsidi2_32.
1223         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
1224         using SWI12 mode iterator.
1225         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
1226         to define_insn_and_split pattern.
1227         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
1228         using SWI24 mode iterator.
1229         (*zero_extendqi<mode>2_and): Macroize insn from
1230         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
1231         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
1232         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
1233         SWI24 mode iterator.
1234         (*zero_extendqi<mode>2_movzbl): Ditto from
1235         *zero_extendqi{hi,si}2_movzbl.
1236         (extendsidi2_1): Rename from extendsidi2_32.
1237         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
1238         SWI12 mode iterator.
1239
1240 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1241
1242         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
1243         general purpose registers.
1244         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
1245         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
1246         with general purpose registers and memory operands.  Add associated
1247         CCImode post-reload splitter.
1248         * config/ia64/div.md: Change BImode to CCImode throughout.
1249
1250 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
1251
1252         * config/ia64/ia64.md (cstorebi4): Fix thinko.
1253
1254 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
1255
1256         * config/picochip/picochip.c (reorder_var_tracking_notes): This
1257         function was dropping debug insns which caused PR45299.
1258
1259 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
1260
1261         * config/i386/sse.md (extsuffix): New code attribute.
1262         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
1263         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
1264         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
1265         and sse4_1_zero_extendv4qiv4si2.
1266         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
1267         and sse4_1_zero_extendv2qiv2di2.
1268         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
1269         and sse4_1_zero_extendv4hiv4si2.
1270         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
1271         and sse4_1_zero_extendv2hiv2di2.
1272         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
1273         and sse4_1_zero_extendv2siv2di2
1274
1275         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
1276         using any_extend code iterator.
1277         (*avx_<s>mulv8hi3_highpart): Macroize insn from
1278         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
1279         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
1280
1281         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
1282         gen_sse4_1_sign_extend* functions.
1283         (struct builtin_description bdesc_args): Ditto.
1284
1285 2010-08-27  Xinliang David Li  <davidxl@google.com>
1286
1287         PR/45422
1288         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
1289         (iv_ca_set_no_cp): Update used inv expr count.
1290         (iv_ca_set_cp): Ditto.
1291         (iv_ca_new): Initialize new member.
1292         (iv_ca_free): Free memory.
1293
1294 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1295
1296         * config/sh/sh-protos.h (sh_function_arg): Delete.
1297         (sh_function_arg_advance): Delete.
1298         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1299         (PASS_IN_REG_P): Eliminate cast.
1300         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
1301         const_tree and a bool.
1302         (sh_function_arg): Likewise.
1303         (sh_output_mi_thunk): Call sh_function_arg_advance) and
1304         sh_function_arg.
1305         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1306
1307 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
1308             Kaz Kojima  <kkojima@gcc.gnu.org>
1309
1310         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
1311         when possible.
1312         (sh_expand_epilogue): Likewise.
1313         * config/sh/sh.md (movml_push_banked): New insn.
1314         (movml_pop_banked): Likewise.
1315
1316 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
1317
1318         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
1319         gen_regexp_oneof, gen_regexp_sequence): Use the string found
1320         in vector element 0 rather than the original string when there's
1321         only one element.
1322         (gen_regexp): Remove extra semicolon.
1323
1324         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
1325         thumb2_movsf_vfp): Set attribute "insn".
1326         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
1327         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
1328         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
1329         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
1330         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
1331         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
1332         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
1333         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
1334         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
1335         if_not_arith, if_arith_not, cond_move_not): Likewise.
1336
1337 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1338
1339         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
1340         New declaration.
1341         (rs6000_allocate_stack_temp): Ditto.
1342         (rs6000_expand_convert_si_to_sfdf): Ditto.
1343
1344         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
1345         line.  Update the options set if power6 or power7 server/embedded
1346         type options are used.  If we give a warning for no vsx under
1347         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
1348         (rs6000_allocate_stack_temp): New function to allocate a stack
1349         tempoary and adjust the address so it meets either REG+OFFSET or
1350         REG+REG addressing requirements.
1351         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
1352         that they can be used with the LFIWAX/LFIWZX instrucitons.
1353         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
1354         converting signed/unsigned SImode to either SFmode/DFmode.
1355
1356         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
1357         whether certain instructions can be generated.
1358         (TARGET_FCTIDZ): Ditto.
1359         (TARGET_STFIWX): Ditto.
1360         (TARGET_LFIWAX): Ditto.
1361         (TARGET_LFIWZX): Ditto.
1362         (TARGET_FCFIDS): Ditto.
1363         (TARGET_FCFIDU): Ditto.
1364         (TARGET_FCFIDUS): Ditto.
1365         (TARGET_FCTIDUZ): Ditto.
1366         (TARGET_FCTIWUZ): Ditto.
1367
1368         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
1369         (UNSPEC_FCTID): Ditto.
1370         (UNSPEC_LFIWAX): Ditto.
1371         (UNSPEC_LFIWZX): Ditto.
1372         (UNSPEC_FCTIWUZ): Ditto.
1373         (rreg): Use correct constraints.
1374         (SI_CONVERT_FP): New mode attribute for floating point conversion
1375         tests.
1376         (E500_CONVERT): Ditto.
1377         (lfiwax): New insns for converting from integer to floating point
1378         utilizing newer instructions.  Attempt to optimize conversions
1379         that come from memory so that we don't load the value into a GPR,
1380         spill it to the stack and reload it into a FPR.
1381         (floatsi<mode>2_lfiwax): Ditto.
1382         (floatsi<mode>2_lfiwax_mem): Ditto.
1383         (floatsi<mode>2_lfiwax_mem2): Ditto.
1384         (lfiwzx): Ditto.
1385         (floatunssi<mode>2_lfiwzx): Ditto.
1386         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1387         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1388         (floatdidf2_mem): Ditto.
1389         (floatunsdidf2_fcfidu): Ditto.
1390         (floatunsdidf2_mem): Ditto.
1391         (floatunsdisf2): Ditto.
1392         (floatunsdisf2_fcfidus): Ditto.
1393         (floatunsdisf2_mem): Ditto.
1394         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
1395         Use FCFID on 32-bit hosts that support it.
1396         (floatsidf2_internal): Ditto.
1397         (floatunssisf2): Ditto.
1398         (floatunssidf2): Ditto.
1399         (floatunssidf2_internal): Ditto.
1400         (floatsisf2): Ditto.
1401         (floatdidf2): Ditto.
1402         (floatdidf2_fpr): Ditto.
1403         (floatunsdidf2): Ditto.
1404         (floatdisf2): Ditto.
1405         (floatdisf2_fcfids): Ditto.
1406         (floatdisf2_internal1): Ditto.
1407         (fixuns_truncsfsi2): Delete, merge into common pattern for both
1408         SF/DF.  Add power7 support.
1409         (fix_truncsfsi2): Ditto.
1410         (fixuns_truncdfsi2): Ditto.
1411         (fixuns_truncdfdi2): Ditto.
1412         (fix_truncdfsi2): Ditto.
1413         (fix_truncdfsi2_internal): Ditto.
1414         (fix_truncdfsi2_internal_gfxopt): Ditto.
1415         (fix_truncdfsi2_mfpgpr): Ditto.
1416         (fctiwz): Ditto.
1417         (btruncdf2): Ditto.
1418         (btruncdf2_fpr): Ditto.
1419         (btructsf2): Ditto.
1420         (ceildf2): Ditto.
1421         (ceildf2_fpr): Ditto.
1422         (ceilsf2): Ditto.
1423         (floordf2): Ditto.
1424         (floordf2_fpr): Ditto.
1425         (floorsf2): Ditto.
1426         (rounddf2): Ditto.
1427         (rounddf2_fpr): Ditto.
1428         (roundsf2): Ditto.
1429         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
1430         (fix_trunc<mode>di2): Ditto.
1431         (fixuns_trunc<mode>si2): Ditto.
1432         (fixuns_trunc<mode>di2): Ditto.
1433         (fctiwz_<mode>): Ditto.
1434         (btrunc<mode>2): Ditto.
1435         (btrunc<mode>2_fpr): Ditto.
1436         (ceil<mode>2): Ditto.
1437         (ceil<mode>2_fpr): Ditto.
1438         (floor<mode>2): Ditto.
1439         (float<mode>2_fpr): Ditto.
1440         (round<mode>2): Ditto.
1441         (round<mode>2_fpr): Ditto.
1442         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
1443         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1444         (fix_truncdfsi2_internal): Ditto.
1445         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
1446         converted value on stack, loaded into GPR, and then stored into
1447         the final destination.
1448         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
1449         FCTIDZ.
1450         (lrint<mode>di2): New insn, provide the lrint builtin functions.
1451         (ftruncdf2): Delete, unused.
1452         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
1453
1454         * config/rs6000/vsx.md (toplevel): Update copyright year.
1455         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
1456         (VSr3): Ditto.
1457
1458 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
1459             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1460
1461         * gengtype.c (output_type_enum): Test the right union member.
1462
1463 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
1464
1465         PR target/41484
1466         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
1467         operands for operand 1.
1468         (sse4_1_extendv4qiv4si2): Ditto.
1469         (sse4_1_extendv2qiv2di2): Ditto.
1470         (sse4_1_extendv4hiv4si2): Ditto.
1471         (sse4_1_extendv2hiv2di2): Ditto.
1472         (sse4_1_extendv2siv2di2): Ditto.
1473         (sse4_1_zero_extendv8qiv8hi2): Ditto.
1474         (sse4_1_zero_extendv4qiv4si2): Ditto.
1475         (sse4_1_zero_extendv2qiv2di2): Ditto.
1476         (sse4_1_zero_extendv4hiv4si2): Ditto.
1477         (sse4_1_zero_extendv2hiv2di2): Ditto.
1478         (sse4_1_zero_extendv2siv2di2): Ditto.
1479         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
1480         (*sse4_1_extendv4qiv4si2): Ditto.
1481         (*sse4_1_extendv2qiv2di2): Ditto.
1482         (*sse4_1_extendv4hiv4si2): Ditto.
1483         (*sse4_1_extendv2hiv2di2): Ditto.
1484         (*sse4_1_extendv2siv2di2): Ditto.
1485         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
1486         (*sse4_1_zero_extendv4qiv4si2): Ditto.
1487         (*sse4_1_zero_extendv2qiv2di2): Ditto.
1488         (*sse4_1_zero_extendv4hiv4si2): Ditto.
1489         (*sse4_1_zero_extendv2hiv2di2): Ditto.
1490         (*sse4_1_zero_extendv2siv2di2): Ditto.
1491
1492 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1493
1494         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
1495         (mips_function_arg): Delete.
1496         (mips_function_arg_boundary): Take a const_tree.
1497         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
1498         (mips_arg_info): Likewise.
1499         (mips_setup_incoming_varargs): Call mips_function_arg_advance
1500         instead of FUNCTION_ARG_ADVANCE.
1501         (mips_function_arg_advance): Adjust prototype.  Make static.
1502         (mips_function_arg): Likewise.
1503         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1504         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1505
1506 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
1507
1508         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1509         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
1510         (function_arg): Delete.
1511         (function_arg_boundary): Take a const_tree.
1512         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
1513         (rs6000_spe_function_arg): Likewise.
1514         (rs6000_parm_start): Likewise.
1515         (rs6000_arg_size): Likewise.
1516         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
1517         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
1518         (rs6000_mixed_function_arg): Likewise.
1519         (function_arg): Rename to...
1520         (rs6000_function_arg): ...this.
1521         (function_arg_advance): Rename to...
1522         (rs6000_function_arg_advance_1): ...this
1523         (rs6000_function_arg_advance): New function.  Call it.
1524         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
1525         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
1526         (rs6000_function_value): Likewise.
1527         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1528
1529 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1530
1531         * config/arm/arm.md (enabled): Test the value of arch_enabled
1532         rather than just using it.
1533
1534 2010-08-27  Olivier Hainque  <hainque@adacore.com>
1535             Eric Botcazou  <ebotcazou@adacore.com>
1536
1537         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
1538         cover all the possible offsets from this base.
1539         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
1540
1541 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
1542
1543         PR tree-optimization/44485
1544         * calls.c (flags_from_decl_or_type): For const or pure
1545         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
1546         together with ECF_CONST resp. ECF_PURE.
1547         * builtins.c (expand_builtin): Use flags_from_decl_or_type
1548         instead of querying flags directly.
1549         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
1550         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
1551
1552 2010-08-26  Richard Guenther  <rguenther@suse.de>
1553
1554         PR tree-optimization/45255
1555         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
1556         and externals are also invariant.
1557
1558 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR rtl-optimization/44858
1561         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
1562         newi2pat, make sure they don't affect newpat.
1563
1564         PR rtl-optimization/45400
1565         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
1566         SUBREG_REG if both modes are of MODE_INT class.
1567
1568 2010-08-25  Julian Brown  <julian@codesourcery.com>
1569
1570         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
1571         * config/arm/arm.md (generic_sched): No for Cortex-A5.
1572         (generic_vfp): Likewise.
1573         (cortex-a5.md): Include.
1574         * config/arm/cortex-a5.md: New.
1575
1576 2010-08-25  Richard Guenther  <rguenther@suse.de>
1577
1578         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
1579         * gimple.c (gimple_get_alias_set): Remove special handling
1580         for pointers.
1581
1582 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1583
1584         PR middle-end/45355
1585         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
1586         dead_or_set_p when computing i0_feeds_i2_n.
1587
1588         * combine.c (find_split_point): Undo canonicalization of multiply-add
1589         to (minus x (mult)) when it seems likely that this will increase the
1590         chances of a split.
1591
1592 2010-08-25  Richard Guenther  <rguenther@suse.de>
1593
1594         PR lto/44562
1595         * lto-streamer.c (lto_record_common_node): Do not mess with
1596         TYPE_CANONICAL when not in lto.
1597         * gimple.c (gimple_register_type): Likewise.
1598
1599 2010-08-25  Richard Guenther  <rguenther@suse.de>
1600
1601         PR tree-optimization/45316
1602         * tree-ssa-pre.c (eliminate): Properly clean EH info.
1603
1604 2010-08-25  Richard Guenther  <rguenther@suse.de>
1605
1606         PR tree-optimization/45393
1607         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
1608         and clean EH info.  Avoid SSA update.
1609         (execute_cse_sincos): Cleanup the CFG if it has changed.
1610
1611 2010-08-25  Richard Guenther  <rguenther@suse.de>
1612
1613         PR middle-end/45379
1614         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
1615         TARGET_MEM_REF in alignment computation.
1616
1617 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1618
1619         PR tree-optimization/45059
1620         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
1621         type conversions from newop{1,2}.  Assert t is a comparison and
1622         newop{1,2} after the stripping are gimple vals.
1623
1624 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
1625
1626         * config/arm/iterators.md (VU, SE, V_widen_l): New.
1627         (V_unpack, US): New.
1628         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
1629         (vec_unpack<US>_lo_<mode>): Likewise.
1630         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
1631         (neon_vec_unpack<US>_lo_<mode>): Likewise.
1632         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
1633         (vec_widen_<US>mult_hi_<mode>): Likewise.
1634         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
1635         (neon_vec_<US>mult_hi_<mode>"): Likewise.
1636         (neon_unpack<US>_<mode>): Widening move intermediate step for
1637         vectorizing without -mvectorize-with-neon-quad.
1638         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
1639         for vectorizing without -mvectorize-with-neon-quad.
1640         * config/arm/predicates.md (vect_par_constant_high): Check for
1641         high-half lanes of a vector.
1642         (vect_par_constant_low): Check for low-half lanes of a vector.
1643
1644 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1645
1646         * tree-if-conv.c (struct ifc_dr): New.
1647         (IFC_DR): New.
1648         (DR_WRITTEN_AT_LEAST_ONCE): New.
1649         (DR_RW_UNCONDITIONALLY): New.
1650         (memref_read_or_written_unconditionally): Use the cached values
1651         when possible.
1652         (write_memref_written_at_least_once): Same.
1653         (if_convertible_loop_p): Initialize and free DR->aux fields.
1654
1655 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1656
1657         * gimple.c (gimple_could_trap_p_1): Not static anymore.
1658         Pass an extra bool parameter include_mem.
1659         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
1660         (gimple_assign_rhs_could_trap_p): Same.
1661         * gimple.h (gimple_could_trap_p_1): Declared.
1662         * tree-data-ref.h (same_data_refs_base_objects): New.
1663         (same_data_refs): New.
1664         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
1665         (write_memrefs_written_at_least_once): New.
1666         (ifcvt_memrefs_wont_trap): New.
1667         (operations_could_trap): New.
1668         (ifcvt_could_trap_p): New.
1669         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
1670         Gets a vector of data refs.
1671         (if_convertible_stmt_p): Same.
1672         (if_convertible_loop_p_1): New.
1673         (if_convertible_loop_p): Call if_convertible_loop_p_1.
1674
1675 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
1676
1677         * common.opt (ftree-loop-if-convert-stores): New flag.
1678         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
1679         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
1680         the created statement before GSI.
1681         (if_convertible_phi_p): Allow virtual phi nodes when
1682         flag_loop_if_convert_stores is set.
1683         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
1684         Do not handle types that do not match is_gimple_reg_type.
1685         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
1686         when flag_loop_if_convert_stores is set, as LHS can contain
1687         memory refs.
1688         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
1689         to if_convertible_gimple_assign_stmt_p.
1690         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
1691         (replace_phi_with_cond_gimple_assign_stmt): Renamed
1692         predicate_scalar_phi.  Do not handle virtual phi nodes.
1693         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
1694         Call predicate_scalar_phi.
1695         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
1696         just after the labels for flag_loop_if_convert_stores, otherwise
1697         insert the predicate in the end of the BB.
1698         (predicate_mem_writes): New.
1699         (combine_blocks): Call predicate_all_scalar_phis.  When
1700         flag_loop_if_convert_stores is set, call predicate_mem_writes.
1701         (tree_if_conversion): Call mark_sym_for_renaming when
1702         flag_loop_if_convert_stores is set.
1703         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
1704         flag_loop_if_convert_stores is set.
1705
1706 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
1707
1708         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
1709         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
1710         (pa_function_value): Make static.
1711         (override_options): Rename to...
1712         (pa_option_override): ...this. Make static.
1713         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
1714         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
1715         TARGET_OPTION_OVERRIDE): Define.
1716         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
1717         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
1718         Remove.
1719         * config/pa/pa-protos.h (override_options): Remove.
1720
1721 2010-08-24  Richard Guenther  <rguenther@suse.de>
1722
1723         PR middle-end/45379
1724         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
1725         if addr->index is NULL or zero.
1726         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
1727         TARGET_MEM_REF more properly.
1728         (indirect_ref_may_alias_decl_p): Likewise.
1729         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
1730         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
1731
1732 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
1733
1734         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
1735         (m32c_override_options): Rename to...
1736         (m32c_option_override): ...this. Make static.
1737         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
1738         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
1739         Remove.
1740         * config/m32c/m32c-protos.h (m32c_override_options,
1741         m32c_function_value_regno_p): Remove.
1742
1743 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1744
1745         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
1746         Fix a typo in a previous commit.
1747
1748 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
1749
1750         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
1751         Pre-initialize innerloop_iters to one.
1752
1753 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
1754
1755         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
1756         existing static function global.
1757
1758         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
1759         is changed to global.
1760
1761         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
1762         may_be_nonaddressable_p on base, and don't collect this reference
1763         if the address of the base could not be taken.
1764
1765 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1766
1767         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
1768         enable the compiler to autovectorize mathmetical functions for
1769         power7 using the Mathematical Acceleration Subsystem library.
1770
1771         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
1772         handle which vector math library we have.
1773         (rs6000_override_options): Add -mveclibabi=mass support.
1774         (rs6000_builtin_vectorized_libmass): New function to handle auto
1775         vectorizing math functions that are in the MASS library.
1776         (rs6000_builtin_vectorized_function): Call it.
1777
1778         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1779         -mveclibabi=mass.
1780
1781 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1782
1783         PR boehm-gc/34544
1784         * gthr-posix.h (__gthread_active_init): Delete.
1785         (__gthread_active_p): Do activity check here.
1786         Don't include errno.h on hppa-hpux.  Update comment.
1787         * gthr-posix95.h (__gthread_active_init): Delete.
1788         (__gthread_active_p): Do activity check here.
1789         Don't include errno.h on hppa-hpux.  Update comment.
1790         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
1791         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
1792         add -lpthread when -mt or -pthread is specified.
1793         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
1794         (LINK_GCC_C_SEQUENCE_SPEC): Define.
1795         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
1796         (stublib.c, pthread_default_stacksize_np-stub.o,
1797         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
1798         $(T)libgcc_stub.a): Add methods.
1799         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
1800         (stublib.c, pthread_default_stacksize_np-stub.o,
1801         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
1802         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
1803         pthread_mutex_unlock): New stubs.
1804
1805 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1806
1807         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
1808         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
1809         options.
1810         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
1811         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
1812         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
1813         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
1814         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
1815         "-l".
1816         * cppspec.c: Include opts.h.
1817         (lang_specific_driver): Use cl_decoded_option structures.
1818         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
1819         * doc/tm.texi: Regenerate.
1820         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
1821         (driver_handle_option): Allow driver options needing no special
1822         processing.
1823         (process_command): Decode options before call to
1824         lang_specific_driver.  Pass decoded options to
1825         lang_specific_driver.
1826         * gcc.h (lang_specific_driver): Update prototype.
1827         * gccspec.c: Include opts.h.
1828         (lang_specific_driver): Use cl_decoded_option structures.
1829         * opts-common.c (option_ok_for_language, generate_option,
1830         generate_option_input_file): New.
1831         (decode_cmdline_option): Use option_ok_for_language.
1832         (decode_cmdline_options_to_array): Use generate_option_input_file.
1833         (handle_generated_option): Use generate_option.
1834         * opts.h (generate_option, generate_option_input_file): Declare.
1835
1836 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
1837
1838         * config/mips/mips.c (mips_override_options): Rename to...
1839         (mips_option_override): ...this. Make static.
1840         (TARGET_OPTION_OVERRIDE): Define.
1841         (mips_in_small_data_p): Update comment.
1842         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
1843         (FIXED_REGISTERS): Update comment.
1844         * config/mips/mips-protos.h (mips_override_options): Remove.
1845
1846 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1847
1848         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
1849
1850 2010-08-21  Olivier Hainque  <hainque@adacore.com>
1851
1852         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
1853         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
1854
1855 2010-08-20  Jan Hubicka  <jh@suse.cz>
1856
1857         * tree-pass.h (pass_ipa_cdtor_merge): New function.
1858         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
1859         heap allocated.
1860         (record_cdtor_fn): Move to ipa.c; do not test for
1861         have_ctors_dtors.
1862         (build_cdtor): Move to ipa.c; add code avoiding construction
1863         when target have ctors/dtors and there is only one ctor/dtor at given
1864         priority.
1865         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
1866         sort; reverse order of constructors.
1867         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
1868         (cgraph_finalize_function): Do not call record_cdtor_fn.
1869         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
1870         (cgraph_build_static_cdtor): Move to ipa.c.
1871         * ipa.c: Include target.h and tree-iterator.h.
1872         (cgraph_build_static_cdtor, static_ctors, static_dtors,
1873         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
1874         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
1875         pass_ipa_cdtor_merge): New.
1876         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
1877         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
1878         bounds access.
1879
1880 2010-08-20  Jan Hubicka  <jh@suse.cz>
1881
1882         PR c++/45307
1883         PR c++/17736
1884         * cgraph.h (cgraph_only_called_directly_p,
1885         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
1886         static cdtors.
1887         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
1888         are not needed.
1889         (cgraph_finalize_function): Static cdtors are reachable.
1890         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
1891
1892 2010-08-20  Jan Hubicka  <jh@suse.cz>
1893
1894         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
1895         flag_wpa.
1896         * lto-streamer-out.c (lto_output): Likewise.
1897         * passes.c (ipa_write_optimization_summaries): Initialize statement
1898         uids.
1899
1900 2010-08-20  Olivier Hainque  <hainque@adacore.com>
1901
1902         * tree.h (alias_diag_flags): New enum.
1903         (alias_pair): Add an 'emitted_diags' field.
1904         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
1905         (assemble_alias): Initialize emitted_diags of new pairs.
1906
1907 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1908
1909         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
1910         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1911         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
1912         (STACK_CHECK_PROTECT): Define.
1913         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
1914         (output_probe_stack_range): Likewise.
1915         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
1916         builtin stack checking is enabled.
1917         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
1918         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
1919         (probe_stack_range): New insn.
1920
1921 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1922
1923         PR target/45336
1924         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
1925         short first.
1926
1927         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
1928         char first.
1929
1930 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1931
1932         PR target/45336
1933         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
1934         to cover zero extension into 64-bit register.
1935         (*sse2_pextrw): Likewise.
1936         (*sse4_1_pextrd_zext): New insn.
1937
1938 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1939
1940         revert r163410, partially revert r163267.
1941         * config/rs6000/darwin.h (LIB_SPEC): Remove.
1942         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
1943         Darwin versions.
1944
1945 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1946
1947         PR middle-end/44974
1948         * builtins.c (expand_builtin): Don't optimize away
1949         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
1950
1951 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
1952
1953         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
1954         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
1955         alternative 1 of operand 2.
1956
1957 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1958             Paolo Bonzini  <bonzini@gnu.org>
1959
1960         * simplify-rtx.c (simplify_unary_operation_1): Optimize
1961         (sign_extend (zero_extend (...)) and
1962         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
1963
1964 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1965
1966         PR rtl-optimization/45353
1967         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
1968         after bb_note is a BARRIER.
1969
1970 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
1971
1972         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
1973         linking libgcc.a.
1974
1975 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
1976             Michael Matz  <matz@suse.de>
1977
1978         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
1979
1980 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1981
1982         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
1983         (ggc_mark_roots): ...here.
1984
1985 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1986
1987         * vec.h (FOR_EACH_VEC_ELT): Define.
1988         * c-decl.c: Use it.
1989         * cfgloop.c: Likewise.
1990         * cfgloopmanip.c: Likewise.
1991         * cgraph.c: Likewise.
1992         * cgraphunit.c: Likewise.
1993         * combine.c: Likewise.
1994         * config/bfin/bfin.c: Likewise.
1995         * config/mips/mips.c: Likewise.
1996         * config/rs6000/rs6000.c: Likewise.
1997         * dbxout.c: Likewise.
1998         * df-scan.c: Likewise.
1999         * dominance.c: Likewise.
2000         * dse.c: Likewise.
2001         * dwarf2out.c: Likewise.
2002         * except.c: Likewise.
2003         * expr.c: Likewise.
2004         * function.c: Likewise.
2005         * gcse.c: Likewise.
2006         * genattr.c: Likewise.
2007         * ggc-common.c: Likewise.
2008         * gimplify.c: Likewise.
2009         * graphite-blocking.c: Likewise.
2010         * graphite-clast-to-gimple.c: Likewise.
2011         * graphite-dependences.c: Likewise.
2012         * graphite-interchange.c: Likewise.
2013         * graphite-poly.c: Likewise.
2014         * graphite-scop-detection.c: Likewise.
2015         * graphite-sese-to-poly.c: Likewise.
2016         * graphite.c: Likewise.
2017         * haifa-sched.c: Likewise.
2018         * ifcvt.c: Likewise.
2019         * implicit-zee.c: Likewise.
2020         * ipa-prop.c: Likewise.
2021         * ipa-struct-reorg.c: Likewise.
2022         * ipa.c: Likewise.
2023         * ira-build.c: Likewise.
2024         * ira-color.c: Likewise.
2025         * ira-emit.c: Likewise.
2026         * lambda-code.c: Likewise.
2027         * loop-invariant.c: Likewise.
2028         * loop-unroll.c: Likewise.
2029         * lower-subreg.c: Likewise.
2030         * lto-cgraph.c: Likewise.
2031         * lto-opts.c: Likewise.
2032         * lto-streamer-in.c: Likewise.
2033         * lto-streamer-out.c: Likewise.
2034         * lto-streamer.c: Likewise.
2035         * lto-symtab.c: Likewise.
2036         * matrix-reorg.c: Likewise.
2037         * opts.c: Likewise.
2038         * predict.c: Likewise.
2039         * print-tree.c: Likewise.
2040         * sdbout.c: Likewise.
2041         * sel-sched-dump.c: Likewise.
2042         * sel-sched-ir.c: Likewise.
2043         * sel-sched.c: Likewise.
2044         * sese.c: Likewise.
2045         * stor-layout.c: Likewise.
2046         * tree-cfg.c: Likewise.
2047         * tree-cfgcleanup.c: Likewise.
2048         * tree-chrec.c: Likewise.
2049         * tree-data-ref.c: Likewise.
2050         * tree-emutls.c: Likewise.
2051         * tree-inline.c: Likewise.
2052         * tree-into-ssa.c: Likewise.
2053         * tree-loop-distribution.c: Likewise.
2054         * tree-loop-linear.c: Likewise.
2055         * tree-mudflap.c: Likewise.
2056         * tree-outof-ssa.c: Likewise.
2057         * tree-parloops.c: Likewise.
2058         * tree-predcom.c: Likewise.
2059         * tree-pretty-print.c: Likewise.
2060         * tree-scalar-evolution.c: Likewise.
2061         * tree-ssa-live.c: Likewise.
2062         * tree-ssa-loop-im.c: Likewise.
2063         * tree-ssa-loop-ivcanon.c: Likewise.
2064         * tree-ssa-loop-ivopts.c: Likewise.
2065         * tree-ssa-loop-manip.c: Likewise.
2066         * tree-ssa-loop-niter.c: Likewise.
2067         * tree-ssa-loop-prefetch.c: Likewise.
2068         * tree-ssa-phiprop.c: Likewise.
2069         * tree-ssa-pre.c: Likewise.
2070         * tree-ssa-reassoc.c: Likewise.
2071         * tree-ssa-sccvn.c: Likewise.
2072         * tree-ssa-structalias.c: Likewise.
2073         * tree-ssa.c: Likewise.
2074         * tree-vect-data-refs.c: Likewise.
2075         * tree-vect-loop-manip.c: Likewise.
2076         * tree-vect-loop.c: Likewise.
2077         * tree-vect-patterns.c: Likewise.
2078         * tree-vect-slp.c: Likewise.
2079         * tree-vect-stmts.c: Likewise.
2080         * tree-vrp.c: Likewise.
2081         * tree.c: Likewise.
2082         * value-prof.c: Likewise.
2083         * var-tracking.c: Likewise.
2084         * varasm.c: Likewise.
2085         * vmsdbgout.c: Likewise.
2086
2087 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2088             Richard Guenther  <richard.guenther@gmail.com>
2089
2090         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
2091         copy the src value and return a copy.
2092         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
2093         (C++ Volatiles): Adjust to describe C++ semantics only.
2094
2095 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
2096
2097         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
2098         be zero or nonzero.
2099         * doc/tm.texi: Regenerate.
2100         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
2101         * df-scan.c (df_get_exit_block_use_set), reginfo.c
2102         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
2103         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
2104         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
2105         to 1.
2106
2107 2010-08-20  Olivier Hainque  <hainque@adacore.com>
2108
2109         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
2110         an extra nop past a sibling call at the very end.
2111
2112 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2113
2114         PR bootstrap/45350
2115         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
2116         a comment.
2117
2118 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2119
2120         * target.def (function_arg, function_incoming_arg): Remove const
2121         qualifier on CUMULATIVE_ARGS parameter.
2122         * targhooks.h (default_function_arg, default_function_incoming_arg):
2123         Likewise.
2124         * targhooks.c (default_function_arg, default_function_incoming_arg):
2125         Likewise.
2126         * config/i386/i386.c (ix86_function_arg): Likewise.
2127
2128 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
2129
2130         PR target/45336
2131         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
2132         SIGN_EXTENDs or ZERO_EXTENDs.
2133
2134 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
2135
2136         PR target/42172
2137         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
2138         Take its cost into account if nonnull.
2139         (insn_a_feeds_b): New static function.
2140         (combine_instructions): Look for four-insn combinations.
2141         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
2142         them into account when computing all_adjacent and looking for other
2143         uses.
2144         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
2145         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
2146         (try_combine): New arg I0.  Handle four-insn combinations.
2147         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
2148         like ELIM_I1.
2149
2150 2010-08-19  Jason Merrill  <jason@redhat.com>
2151
2152         PR c++/45307
2153         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
2154         if ctor is empty.
2155         (gimplify_modify_expr_rhs): Adjust.
2156
2157 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
2158
2159         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
2160         bitmap_bit_p.
2161         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
2162         * dominance.c (iterate_fix_dominators): Likewise.
2163         * dse.c (set_usage_bits): Likewise.
2164         (set_position_unneeded, record_store): Likewise.
2165         * gimple-fold.c (get_maxval_strlen): Likewise.
2166         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
2167         * ipa-inline.c (update_caller_keys): Likewise.
2168         * ipa-split.c (verify_non_ssa_vars): Likewise.
2169         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
2170         (close_type_exposed_parameter, close_type_full_escape): Likewise.
2171         (close_addressof_down): Likewise.
2172         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
2173         (setup_allocno_left_conflicts_size): Likewise.
2174         (ira_reassign_conflict_allocnos): Likewise.
2175         (ira_reassign_pseudos): Likewise.
2176         * ira-emit.c (change_loop): Likewise.
2177         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
2178         * lto-streamer-out.c (write_symbol): Likewise.
2179         * predict.c (expr_expected_value_1): Likewise.
2180         * regstat.c (regstat_bb_compute_ri): Likewise.
2181         * sel-sched.c (create_block_for_bookkeeping): Likewise.
2182         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
2183         * stmt.c (expand_case): Likewise.
2184         * tree-eh.c (emit_eh_dispatch): Likewise.
2185         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
2186         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
2187         Likewise.
2188         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
2189         (rdg_build_components): Likewise.
2190         * tree-object-size.c (collect_object_sizes_for): Likewise.
2191         * tree-sra.c (convert_callers): Likewise.
2192         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
2193         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
2194         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
2195
2196 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2197
2198         * config/i386/i386.md (*lea_1): Use P mode iterator.
2199         (lea add splitter): Also handle DImode operands.
2200         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
2201         predicate.  Do not use ix86_lea_for_add_ok.
2202         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
2203         (lea ashift splitter): Also handle DImode operands.
2204         (DImode lea ashift splitter): Remove splitter.
2205
2206 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
2207
2208         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
2209         ix86_binary_operator_ok.
2210
2211 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
2212
2213         PR rtl-optimization/44691
2214         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
2215         is not a register.
2216
2217 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2218
2219         PR target/45070
2220         * config/arm/arm.c (arm_output_epilogue): Ensure that return
2221          value of size 1-3 is handled correctly.
2222
2223 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
2224
2225         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
2226         type for the conditional has wide enough range.
2227
2228 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2229
2230         PR target/45327
2231         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
2232         ix86_binary_operator_ok.
2233
2234 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
2235
2236         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
2237         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
2238         code to output insn mnemonic.  Fix comment.
2239         (*addsi_1_zext): Add r-r-0 alternative 1.
2240         <TYPE_LEA>: Split insn to lea.
2241         <default>: Handle alternative 1.
2242         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
2243         multi-level if_then_else RTX to set "type" attribute.
2244         <default>: Handle alternative 2.
2245         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
2246         Use cond RTX instead of multi-level if_then_else RTX to set
2247         "type" attribute.
2248         <default>: Handle alternatives 2 and 4.
2249         (lea splitters): Update calls to ix86_lea_for_add_ok.
2250
2251         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
2252         argument.
2253         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
2254
2255 2010-08-18  Richard Guenther  <rguenther@suse.de>
2256
2257         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
2258         use operand helpers.
2259
2260 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
2261
2262         PR middle-end/45292
2263         * optabs.c (expand_bool_compare_and_swap): Expand pending
2264         pops before trying the optab.
2265
2266 2010-08-18  Yao Qi  <yao@codesourcery.com>
2267
2268         PR target/45094
2269         * config/arm/arm.c (output_move_double): Fix typo generating
2270         instructions ('ldr'->'str').
2271
2272 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2273
2274         PR rtl-optimization/42575
2275         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
2276         live ranges.
2277
2278 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2279
2280         * config/arm/arm-protos.h (arm_expand_sync): New.
2281         (arm_output_memory_barrier, arm_output_sync_insn): New.
2282         (arm_sync_loop_insns): New.
2283         * config/arm/arm.c (FL_ARCH7): New.
2284         (FL_FOR_ARCH7): Include FL_ARCH7.
2285         (arm_arch7): New.
2286         (arm_print_operand): Support %C markup.
2287         (arm_legitimize_sync_memory): New.
2288         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
2289         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
2290         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
2291         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
2292         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
2293         (arm_process_output_sync_insn, arm_output_sync_insn): New.
2294         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
2295         * config/arm/arm.h (struct arm_sync_generator): New.
2296         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
2297         (TARGET_HAVE_MEMORY_BARRIER): New.
2298         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
2299         * config/arm/arm.md: Include sync.md.
2300         (UNSPEC_MEMORY_BARRIER): New.
2301         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
2302         (VUNSPEC_SYNC_OP):New.
2303         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
2304         (sync_result, sync_memory, sync_required_value): New attributes.
2305         (sync_new_value, sync_t1, sync_t2): Likewise.
2306         (sync_release_barrier, sync_op): Likewise.
2307         (length): Add logic to length attribute defintion to call
2308         arm_sync_loop_insns when appropriate.
2309         * config/arm/sync.md: New file.
2310
2311 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2312
2313         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
2314         ENABLE_TREE_CHECKING.
2315         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
2316         and GCC >= 4.3.
2317
2318 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
2319
2320         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
2321         or optimizing for size, always avoid lea if possible.
2322
2323         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
2324
2325 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
2326
2327         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
2328         Dunmmy function with NULL return unless the target is
2329         OSX >= 10.6 (Darwin10).
2330
2331 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
2332
2333         * gcc.c (spec_function): Add remove-outfile.
2334         (remove_outfile_spec_function): New function.
2335         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2336         * invoke.texi (replace-outfile): Document.
2337
2338 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
2339
2340         PR target/45296
2341         * reginfo.c (globalize_reg): Reject stack registers.
2342
2343 2010-08-17  Richard Guenther  <rguenther@suse.de>
2344
2345         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
2346         list of conditional equivalences.
2347         (free_all_edge_infos): Adjust.
2348         (record_equivalences_from_incoming_edge): Likewise.
2349         (record_cond): Likewise.
2350         (build_and_record_new_cond): Likewise.
2351         (record_conditions): Likewise.
2352         (dom_opt_leave_block): Likewise.
2353
2354 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
2355
2356         * doc/invoke.texi (ms-extension): Add documentation.
2357
2358 2010-08-17  Richard Guenther  <rguenther@suse.de>
2359
2360         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
2361
2362 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
2363
2364         PR c/40563
2365         * c-decl.c (diagnose_uninitialized_cst_member): New function.
2366         (finish_decl): Use it to issue a -Wc++-compat warning about
2367         uninitialized const field in struct or union.
2368
2369         (finish_struct): Use strip_array_types.
2370
2371 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2372
2373         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
2374         functions.
2375         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
2376         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
2377         call block_nreverse here.
2378         (blocks_nreverse): Rename decl temporary to block.
2379
2380 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
2381
2382         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
2383         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
2384         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
2385         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
2386         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
2387         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
2388         thumb2_iorsi3): Delete.
2389         (orsi_notsi_si): No longer a named pattern.
2390         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
2391         * config/arm/predicates.md (shift_amount_operand): New.
2392         (mult_operator): New.
2393         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
2394         attr enabled): New.
2395         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
2396         arch matches t2.
2397         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
2398         (not_shiftsi_compare0): Likewise, renamed from
2399         arm_notsi_shiftsi_compare0.
2400         (not_shiftsi_compare0_scratch): Likweise, renamed from
2401         arm_notsi_shiftsi_compare0_scratch.
2402         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
2403         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
2404         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
2405         so that the register alternative is disabled when the shift_operator
2406         is MULT.  Use "M" as the constraint for constants.
2407         (arith_shiftsi splitter): Enable for TARGET_32BIT.
2408         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
2409         constraint for constants.
2410         (arith_shiftsi_compare0_scratch): Likewise.
2411         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
2412         Handle Thumb2 alternative.
2413
2414 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2415
2416         * doc/options.texi (NoDriverArg): Document.
2417         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
2418         -MDX and -MMDX.
2419         * opt-functions.awk (switch_flags): Handle NoDriverArg.
2420         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
2421         marking for CL_NO_DRIVER_ARG options when in the driver.
2422         * opts.h (CL_NO_DRIVER_ARG): Define.
2423         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2424         CL_COMMON): Update values.
2425
2426 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2427
2428         * common.opt: Add driver options.
2429         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
2430         * doc/options.texi (Driver, RejectDriver): Document.
2431         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
2432         print_prog_name, print_multi_directory, print_sysroot,
2433         print_multi_os_directory, print_multi_lib,
2434         print_sysroot_headers_suffix, report_times, combine_flag,
2435         use_pipes, wrapper_string): Remove.
2436         (save_switch, driver_unknown_option_callback,
2437         driver_wrong_lang_callback, driver_post_handling_callback,
2438         driver_handle_option): New.
2439         (spec_lang, last_language_n_infiles): Make file-scope static
2440         instead of local to process_command.
2441         (process_command): Use decode_cmdline_options_to_array and
2442         read_cmdline_option for option processing.  Compute have_c in
2443         prescan of decoded options.
2444         * opt-functions.awk (switch_flags): Handle Driver and
2445         RejectDriver.
2446         (var_type, var_type_struct): Handle Separate options as generating
2447         const char * variables.
2448         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
2449         CL_TARGET to be passed by caller if required.
2450         (decode_cmdline_options_to_array): Update comment.
2451         * opts.c (complain_wrong_lang): Handle options only valid for the
2452         driver.
2453         (decode_options): Update call to decode_cmdline_options_to_array.
2454         (print_filtered_help): Ignore driver-only options.
2455         (print_specific_help): Ignore CL_DRIVER.
2456         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
2457         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
2458         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
2459         Update values.
2460
2461 2010-08-16  Richard Guenther  <rguenther@suse.de>
2462
2463         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2464         TARGET_MEM_REF a bit.
2465         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
2466         (create_mem_ref_raw): Always create TMR_OFFSET, store the
2467         alias pointer type via it.
2468         (copy_mem_ref_info): Adjust.
2469         (maybe_fold_tmr): Likewise.
2470         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
2471         (reference_alias_ptr_type): Likewise.
2472         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
2473         adjust documentation of TMR_OFFSET operand.
2474         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
2475         use the alias pointer type.
2476         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
2477         initialize mem attrs but the TMR itself.
2478         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
2479         similar to MEM_REF.
2480         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
2481         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
2482         (unshare_and_remove_ssa_names): Likewise.
2483         (copy_ref_info): Adjust.
2484         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
2485         TARGET_MEM_REF case.
2486         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
2487         at TMR_ORIGINAL.
2488         * tree.h (TMR_ORIGINAL): Remove.
2489         * gimple.c (get_base_address): For TARGET_MEM_REF with a
2490         symbol return that.
2491         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
2492         with a symbol.
2493         (get_addr_base_and_unit_offset): Likewise.
2494         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
2495         TARGET_MEM_REFs.
2496         (indirect_ref_may_alias_decl_p): Likewise.
2497         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
2498
2499 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
2500
2501         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
2502         with GCC version 4.6, the default setting (when not optimizing
2503         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
2504         been changed to -fomit-frame-pointer.
2505
2506 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
2507
2508         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
2509         Darwin10.  Do not link libgcc.a for Darwin >= 9.
2510
2511 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
2512
2513         * doc/invoke.texi (Warning Options): Fix terminology and markup
2514         in the description of how unknown warning options are handled.
2515
2516 2010-08-15  Ira Rosen  <irar@il.ibm.com>
2517
2518         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
2519         in basic blocks.
2520         (vect_supportable_dr_alignment): Check alignment for basic blocks.
2521         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
2522         data references.
2523         (vect_bb_vectorization_profitable_p): New function.
2524         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
2525         check if it's worthwhile to vectorize the basic block.
2526
2527 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
2528
2529         * reload.h (register_move_cost, memory_move_secondary_cost,
2530         secondary_reload_class): Adjust prototype.
2531         * rtl.h (reg_class_subset_p): Adjust prototype.
2532         * reload.c (secondary_reload_class): Change arguments type from
2533         enum reg_class to reg_class_t. Change result type to reg_class_t.
2534         * reginfo.c (register_move_cost, reg_class_subset_p): Change
2535         arguments type from enum reg_class to reg_class_t.
2536         (memory_move_secondary_cost): Change arguments type from
2537         enum reg_class to reg_class_t. Change type of saved_flags to
2538         reg_class_t.
2539
2540         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2541         Remove macros.
2542         (mips_cost): Remove.
2543         (struct mips_rtx_cost_data): Moved to mips.c.
2544         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
2545         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
2546         (mips_cost): Make static.
2547         (mips_canonicalize_move_class): Change argument type to reg_class_t.
2548         Change result type to reg_class_t.
2549         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
2550         type from enum reg_class to reg_class_t.
2551         (mips_register_move_cost): Make static. Change arguments
2552         type from enum reg_class to reg_class_t.
2553         (mips_memory_move_cost): New function.
2554         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2555
2556 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
2557
2558         PR rtl-optimization/43358
2559         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
2560         of a single hard register, using simplify_subreg_regno to decide
2561         what that register should be.
2562
2563 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
2564
2565         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
2566         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
2567         (loongson_pmull<V_suffix>): Rename to...
2568         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
2569
2570 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
2571
2572         * gcc/configure.ac: Enable -fomit-frame-pointer on darwin
2573         which support dwarf2.
2574         * config/i386/i386.c (override_options): Same.
2575
2576 2010-08-13  Jie Zhang  <jie@codesourcery.com>
2577
2578         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
2579
2580 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
2581
2582         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
2583         -MMD.
2584
2585 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
2586
2587         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
2588         up dot_prod pattern searching if a stmt is outside the loop.
2589
2590 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
2591             Uros Bizjak  <ubizjak@gmail.com>
2592
2593         * config.gcc: Handle --enable-frame-pointer.
2594
2595         * configure.ac: Add --enable-frame-pointer.
2596         * configure: Regenerated.
2597
2598         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
2599         (override_options): If not configured with --enable-frame-pointer,
2600         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
2601         optimizing for size), -fasynchronous-unwind-tables and
2602         -maccumulate-outgoing-args by default.
2603
2604 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2605
2606         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
2607
2608         PR middle-end/45262
2609         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
2610         -a overflows.  Normalize the range.
2611
2612 2010-08-12  Richard Guenther  <rguenther@suse.de>
2613
2614         PR tree-optimization/45232
2615         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
2616         for types with undefined overflow.
2617         (reassociate_bb): Allow re-associating of bit and min/max
2618         operations for types with undefined overflow.
2619         * tree-ssa-forwprop.c (associate_plusminus): New function.
2620         (tree_ssa_forward_propagate_single_use_vars): Call it.
2621
2622 2010-08-12  Richard Guenther  <rguenther@suse.de>
2623
2624         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
2625         * tree-ssa-alias.c (get_ptr_info): Move ...
2626         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
2627         align and misalign fields conservatively.
2628         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
2629         derive alignment information.
2630         (evaluate_stmt): Derive alignment information from memory
2631         allocation functions.
2632         * tree.h (get_pointer_alignment): Make unsigned.
2633         * builtins.c (get_object_alignment): Use alignment information we
2634         have computed for pointers.
2635         (get_pointer_alignment): Likewise.  Make conservative, return
2636         and unsigned value.
2637         (expand_builtin_strlen): Adjust.
2638         (expand_builtin_memcmp): Likewise.
2639         (expand_builtin_strcmp): Likewise.
2640         (expand_builtin_strncmp): Likewise.
2641         (get_builtin_sync_mem): Use at least mode alignment.
2642         (fold_builtin_memset): Adjust.
2643         (fold_builtin_memory_op): Likewise.
2644         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
2645         information also dump pointer alignment knowledge.
2646         (dump_gimple_stmt): Likewise.
2647
2648 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
2649
2650         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
2651         (EMPTY_FIELD_BOUNDARY): Remove.
2652         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
2653
2654 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
2655
2656         PR debug/45259
2657         * caller-save.c (save_call_clobbered_regs): Only swap notes with
2658         DEBUG_INSNs if n_regs_saved.
2659
2660 2010-08-12  Wei Guozhi  <carrot@google.com>
2661
2662         PR target/44999
2663         * config/arm/arm.md (andsi3): Change to zero extension if possible.
2664         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
2665
2666 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
2667
2668         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
2669
2670         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
2671
2672 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2673
2674         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
2675         the case removed in the previous patch, when the only phi argument
2676         is defined in the same loop as the phi node itself.  Handle it
2677         separately from the invariant case by both propagating it outside
2678         the region and replacing the phi node with an assign.
2679
2680 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2681
2682         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
2683         constant phi nodes with one argument are is_gimple_min_invariant
2684         and SSA_NAME_IS_DEFAULT_DEF.
2685
2686 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2687
2688         * graphite-cloog-util.c (oppose_constraint):
2689         Extend loop counter's value range (CLOOG_ORG).
2690         (cloog_matrix_to_ppl_constraint): Same.
2691         (new_Constraint_System_from_Cloog_matrix): Same.
2692         * graphite-cloog-compat.h (matrix_num_type): New.
2693
2694 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2695
2696         * graphite.c (graphite_initialize): Do not initialize
2697         CLooG and initialize the Parma Polyhedra Library
2698         manually when using CLOOG_ORG.
2699         (graphite_finalize): Do not finalize CLooG and finalize
2700         the Parma Polyhedra Library manually when using CLOOG_ORG.
2701         * graphite-cloog-compat.h (cloog_initialize): Hide function
2702         when using CLOOG_ORG.
2703         (cloog_finalize): Same.
2704
2705 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2706
2707         * graphite-clast-to-gimple.c (free_scattering): Change
2708         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
2709         (CLOOG_ORG).
2710         (build_cloog_prog): Same.
2711         * graphite-cloog-compat.h (cloog_domain): Removed.
2712         (cloog_scattering): New.
2713         (cloog_set_domain): Removed.
2714         (cloog_set_scattering): New.
2715         (cloog_next_domain): Removed.
2716         (cloog_next_scattering): New.
2717         (cloog_set_next_domain): Removed.
2718         (cloog_set_next_scattering): New.
2719         (CloogScatteringList): New.
2720         (CloogScattering): New.
2721         (cloog_scattering_free): New.
2722         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
2723         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
2724         New.
2725
2726 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2727
2728         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
2729         CloogState.
2730         (set_cloog_options): Same.
2731         (print_clast_stmt): Same.
2732         (scop_to_clast): Same.
2733         (print_generated_program): Same.
2734         (gloog): Same.
2735         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
2736         (scop_to_clast): Extend with CloogState.
2737         * graphite-cloog-util.c: Include graphite-cloog-compat.h
2738         (new_Cloog_Domain_from_ppl_Polyhedron):
2739         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
2740         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
2741         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
2742         * graphite-cloog-util.h (build_cloog_prog): Same.
2743         * graphite-cloog-copat.h (build_cloog_prog): New.
2744         (CloogState): New.
2745         (cloog_state_malloc): New.
2746         (cloog_state_free): New.
2747         (cloog_loop_malloc): New.
2748         (cloog_options_malloc): New.
2749         (cloog_statement_alloc): New.
2750         (cloog_domain_from_cloog_matrix): New.
2751         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
2752         (new_Cloog_Domain_from_ppl_Polyhedron): New.
2753
2754 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2755
2756         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
2757         type of NAME now depends on used CLooG version.
2758         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
2759         (gcc_type_for_clast_expr): Same.
2760         (print_clast_stmt): Replace pprint with clast_pprint.
2761         * graphite-cloog-compat.h: Provide compatibility macros for
2762         CLooG Legacy.
2763         (clast_name_p): New.
2764         (clast_expr_term): New.
2765         (clast_expr_red): New.
2766         (clast_expr_bin): New.
2767         (clast_pprint): New.
2768
2769 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2770
2771         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
2772         compatible to newer CLooG releases (CLOOG_ORG).
2773         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
2774         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
2775         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
2776         (build_cloog_prog) : New.
2777         (cloog_program_extract_scalars): New.
2778         (cloog_program_scatter): New.
2779
2780 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2781
2782         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
2783         conditionally (CLOOG_ORG).
2784         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
2785         (cloog_statement_usr): New.
2786         (cloog_domain): Same.
2787         (cloog_set_domain): Same.
2788         (cloog_next_domain): Same.
2789         (cloog_set_next_domain): Same.
2790         (cloog_program_nb_scattdims): Same.
2791         (cloog_program_set_nb_scattdims): Same.
2792         (cloog_program_names): Same.
2793         (cloog_program_set_names): Same.
2794         (cloog_program_set_context): Same.
2795         (cloog_program_set_loop): Same.
2796         (cloog_program_blocklist): Same.
2797         (cloog_program_set_blocklist): Same.
2798         (cloog_program_scaldims): Same.
2799         (cloog_program_set_scaldims): Same.
2800         (cloog_names_nb_parameters): Same.
2801         (cloog_names_set_nb_parameters): Same.
2802         (cloog_names_parameters): Same.
2803         (cloog_names_set_parameters): Same.
2804         (cloog_names_set_nb_iterators): Same.
2805         (cloog_names_set_iterators): Same.
2806         (cloog_names_set_nb_scattering): Same.
2807         (cloog_names_set_scattering): Same.
2808         (cloog_statement_set_usr): Same.
2809         (cloog_loop_set_next): Same.
2810         (cloog_loop_set_domain): Same.
2811         (cloog_loop_set_block): Same.
2812         (cloog_block_list_next): Same.
2813         (cloog_block_list_set_next):
2814         (cloog_block_list_set_block): Same.
2815
2816 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2817
2818         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
2819         a bool.
2820         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2821         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2822         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
2823         when something has been changed.
2824         (rewrite_commutative_reductions_out_of_ssa): Same.
2825
2826 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2827
2828         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
2829         handle the case when def is in the sese region.
2830         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
2831         for invariant expressions.
2832         (rewrite_cross_bb_phi_deps): Removed.
2833         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
2834         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
2835         rewrite_cross_bb_phi_deps.
2836
2837 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2838
2839         * graphite-sese-to-poly.c
2840         (rewrite_commutative_reductions_out_of_ssa_loop): Call
2841         scev_analyzable_p only on is_gimple_reg
2842
2843 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2844
2845         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
2846         (rewrite_close_phi_out_of_ssa): Propagate constant values or
2847         parametric expressions outside the scop region.
2848         (rewrite_cross_bb_scalar_deps): Same.
2849         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
2850
2851 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2852
2853         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
2854         SSA_NAME_DEF_STMT only on SSA_NAMEs.
2855
2856 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2857
2858         * tree-scalar-evolution.c (instantiate_scev_name): Do not
2859         instantiate default definitions.
2860
2861 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
2862             Sebastian Pop  <sebastian.pop@amd.com>
2863
2864         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
2865         (loop_exits_from_bb_p): New.
2866         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
2867         (loop_exits_from_bb_p): Declared.
2868         * graphite-scop-detection.c (scopdet_basic_block_info): Call
2869         loop_exits_to_bb_p.
2870
2871 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2872
2873         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
2874         extra parameter for the region.  Call scev_analyzable_p.
2875         (rewrite_reductions_out_of_ssa): Update call to
2876         rewrite_close_phi_out_of_ssa.
2877         (rewrite_cross_bb_phi_deps): Same.
2878         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
2879         parameter for the region.  Call scev_analyzable_p.
2880         (rewrite_commutative_reductions_out_of_ssa): Update call to
2881         rewrite_commutative_reductions_out_of_ssa_loop.
2882
2883 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2884
2885         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
2886
2887 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2888
2889         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
2890         SSA scalar phi nodes that can be scev_analyzable_p.
2891
2892 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2893
2894         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
2895         handle SSA_NAME_IS_DEFAULT_DEF.
2896
2897 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2898
2899         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
2900
2901 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2902
2903         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
2904         case non close-phi nodes with one argument.
2905
2906 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2907
2908         * sese.h (scev_analyzable_p): Scevs could be expressions without
2909         chrecs and still be scev_analyzable_p.
2910
2911 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2912
2913         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
2914
2915 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2916
2917         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
2918         * cfgloop.h (struct loop): Remove single_iv field.
2919         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
2920         (scop_canonicalize_loops): Removed.
2921         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
2922         over all the loop phi nodes in loop->header.
2923         (build_poly_scop): Remove use of scop_canonicalize_loops.
2924
2925 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2926
2927         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
2928         handle GIMPLE_CALL.
2929
2930 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2931
2932         * tree-chrec.c (chrec_apply): Should only apply to the specified
2933         variable.  Also handle multivariate chains of recurrences that
2934         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
2935
2936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2937
2938         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
2939         (debug_clast_name_indexes_1): Removed.
2940         (debug_clast_name_indexes): Removed.
2941         (pbb_to_depth_to_oldiv): Removed.
2942         (build_iv_mapping): Replace the use of rename_map with iv_map.
2943         (translate_clast_user): Remove uses of rename_map.  Allocate and
2944         free iv_map.
2945         (translate_clast_for_loop): Remove uses of rename_map.
2946         (translate_clast_for): Same.
2947         (translate_clast_guard): Same.
2948         (translate_clast): Same.
2949         (gloog): Same.
2950         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
2951         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
2952         * sese.c (set_rename): Now static.
2953         (rename_variables_in_stmt): Removed.
2954         (rename_uses): New.
2955         (is_parameter): Removed.
2956         (is_iv): Removed.
2957         (expand_scalar_variables_call): Removed.
2958         (expand_scalar_variables_ssa_name): Removed.
2959         (expand_scalar_variables_expr): Removed.
2960         (expand_scalar_variables_stmt): Removed.
2961         (expand_scalar_variables): Removed.
2962         (rename_variables): Removed.
2963         (remove_condition): Removed.
2964         (get_true_edge_from_guard_bb): Removed.
2965         (get_false_edge_from_guard_bb): Removed.
2966         (struct igp): Removed.
2967         (default_before_guard): Removed.
2968         (convert_for_phi_arg): Removed.
2969         (add_guard_exit_phis): Removed.
2970         (insert_guard_phis): Removed.
2971         (graphite_copy_stmts_from_block): Now also uses iv_map and a
2972         region.  Do not copy conditions.  Do not copy induction variables.
2973         Call rename_uses.
2974         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
2975         the translated statement.  Use the iv_map for the induction
2976         variable renaming.
2977         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2978         (set_rename): Removed declaration.
2979         (scev_analyzable_p): ...here.
2980         * tree-chrec.c (chrec_apply_map): New.
2981         * tree-chrec.h (chrec_apply_map): Declared.
2982
2983 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
2984
2985         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
2986         insert_loop_close_phis.
2987         * sese.c (name_defined_in_loop_p): Removed.
2988         (expr_defined_in_loop_p): Removed.
2989         (alive_after_loop): Removed.
2990         (close_phi_not_yet_inserted_p): Removed.
2991         (struct alep): Removed.
2992         (add_loop_exit_phis): Removed.
2993         (insert_loop_close_phis): Removed.
2994
2995 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2996
2997         * graphite-cloog-util.c
2998         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
2999         * graphite-poly.c
3000         (psct_scattering_dim_for_loop_depth): Same.
3001
3002 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3003
3004         * graphite-cloog-util.h: Added cloog.h.
3005         * graphite-blocking.c: Removed cloog.h.
3006         * graphite-dependences.c: Same.
3007         * graphite-interchange.c: Same.
3008         * graphite-poly.c: Same.
3009         * graphite-ppl.c: Same.
3010         * graphite-scop-detection.c: Same.
3011         * graphite-sese-to-poly.c:
3012         Removed cloog.h.
3013         Removed graphite-clast-to-gimple.h.
3014         (check_poly_representation): Removed (unused).
3015         * graphite-sese-to-poly.h
3016         (check_poly_representation): Removed (unused).
3017
3018 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3019
3020         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
3021         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
3022         (graphite-cloog-util.o): New.
3023         (graphite-ppl.o): Added graphite-cloog-util.h.
3024         * graphite-clast-to-gimple.c:
3025         Added graphite-cloog-util.h to include statements.
3026         * graphite-cloog-util.c: New.
3027         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
3028         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3029         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3030         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3031         (insert_constraint_into_matrix): Same.
3032         (ppl_Constrain_System_number_of_constraints): Same.
3033         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3034         (oppose_constraint): Same.
3035         (cloog_matrix_to_ppl_constraint): Same.
3036         (new_Constraint_System_from_Cloog_Matrix): Same.
3037         * graphite-cloog-util.h: New.
3038         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
3039         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3040         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3041         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3042         (insert_constraint_into_matrix): Same.
3043         * graphite-ppl.c:
3044         Added graphite-cloog-util.h to include statements.
3045         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
3046         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3047         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3048         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3049         (insert_constraint_into_matrix): Same.
3050         (ppl_Constrain_System_number_of_constraints): Same.
3051         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
3052         (oppose_constraint): Same.
3053         (cloog_matrix_to_ppl_constraint): Same.
3054         (new_Constraint_System_from_Cloog_Matrix): Same.
3055         * graphite-ppl.h:
3056         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
3057         graphite-cloog-util.h.
3058         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3059         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
3060         (new_C_Polyhedron_from_Cloog_Matrix): Same.
3061         (insert_constraint_into_matrix): Same.
3062
3063 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3064
3065         * graphite-clast-to-gimple.c
3066         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
3067         (precision_for_interval): Same.
3068         (gcc_type_for_interval): Same.
3069         (compute_type_for_level): Same.
3070         * graphite-interchange.c
3071         (lst_interchange_profitable_p): Same.
3072         * graphite-poly.c
3073         (psct_scattering_dim_for_loop_depth): Same.
3074         * graphite-ppl.c
3075         (ppl_max_for_le_pointset): Same.
3076         (ppl_min_for_le_pointset): Same.
3077
3078 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3079
3080         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
3081         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
3082
3083 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3084
3085         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
3086         rewrite_close_phi_out_of_ssa.
3087
3088 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3089
3090         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
3091
3092 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3093
3094         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
3095         rename_map.
3096         * sese.c (debug_rename_map): Same.
3097         (get_rename): Same.
3098         (set_rename): Same.
3099         (rename_variables_in_stmt): Same.
3100         (expand_scalar_variables_call): Same.
3101         (expand_scalar_variables_ssa_name): Same.
3102         (expand_scalar_variables_expr): Same.
3103         (expand_scalar_variables_stmt): Same.
3104         (expand_scalar_variables): Same.
3105         (rename_variables): Same.
3106         (graphite_copy_stmts_from_block): Same.
3107         (copy_bb_and_scalar_dependences): Same.
3108
3109 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3110
3111         * graphite-clast-to-gimple.c (copy_renames): Removed.
3112         (translate_clast_for): Do not call copy_renames.
3113         (translate_clast_guard): Same.
3114
3115 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3116
3117         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
3118         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
3119         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
3120         before rewrite_cross_bb_scalar_deps.
3121
3122 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3123
3124         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
3125         Early return in when flag_associative_math is not set.
3126
3127 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3128
3129         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
3130         of SSA copies on edges except for loop->latch.
3131
3132 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3133
3134         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
3135         Split out of rewrite_reductions_out_of_ssa.
3136         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
3137         Declared.
3138         * graphite.c (graphite_transform_loops): Call it.
3139
3140 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3141
3142         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
3143
3144 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
3145
3146         * dbgcnt.def (graphite_scop): New counter.
3147         * graphite.c: Include dbgcnt.h.
3148         (graphite_transform_loops): Use new counter to limit transformations.
3149         * Makefile.in (graphite.o): Depend on DBGCNT_H.
3150
3151 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3152
3153         * passes.c (init_optimization_passes): Add pass_graphite.
3154         Schedule a pass_copy_prop before pass_graphite_transforms.
3155         * timevar.def (TV_GRAPHITE): Declared.
3156         * tree-pass.h (pass_graphite): Declared.
3157         * tree-ssa-loop.c (pass_graphite): New.
3158
3159 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3160
3161         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
3162         Remove calls to rename_nb_iterations and rename_sese_parameters.
3163         * graphite-clast-to-gimple.h (gloog): Update declaration.
3164         * graphite.c (graphite_transform_loops): Update call to gloog.
3165         * sese.c (rename_variables_in_expr): Removed.
3166         (rename_nb_iterations): Removed.
3167         (rename_sese_parameters): Removed.
3168         * sese.h (rename_nb_iterations): Removed.
3169         (rename_sese_parameters): Removed.
3170
3171 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3172
3173         * graphite-clast-to-gimple.c (gloog): Remove call to
3174         sese_adjust_liveout_phis.
3175         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
3176         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
3177         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
3178         rewrite_phi_out_of_ssa.
3179         * sese.c (get_vdef_before_sese): Removed.
3180         (sese_adjust_vphi): Removed.
3181         (sese_adjust_liveout_phis): Removed.
3182         * sese.h (sese_adjust_liveout_phis): Removed.
3183
3184 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3185
3186         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
3187         argument for the place after which to insert the out of SSA copy.
3188         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
3189         (rewrite_phi_out_of_ssa): Same.
3190         (rewrite_cross_bb_scalar_deps): Same.
3191         (insert_copyout): Removed.
3192         (insert_copyin): Removed.
3193         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
3194         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
3195         insert_copyin.
3196
3197 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3198
3199         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
3200         (rewrite_reductions_out_of_ssa): Same.
3201         (rewrite_commutative_reductions_out_of_ssa): Same.
3202         (build_poly_scop): Do not call these functions.
3203         * graphite-sese-to-poly.h (build_poly_scop): Declared.
3204         (rewrite_reductions_out_of_ssa): Declared.
3205         (rewrite_commutative_reductions_out_of_ssa): Declared.
3206         * graphite.c (graphite_transform_loops): Call on every scop
3207         rewrite_commutative_reductions_out_of_ssa before calling
3208         rewrite_reductions_out_of_ssa and build_scop_bbs.
3209
3210 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3211
3212         * graphite-dependences.c (dot_deps): Make system call to dotty run
3213         in background.
3214         (dot_deps_stmt): Same.
3215         * graphite-poly.c (dot_lst): Same.
3216
3217 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3218
3219         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
3220         phi_arg_in_outermost_loop.
3221         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
3222         (remove_invariant_phi): Same.
3223
3224 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
3225
3226         * target.def (output_addr_const_extra): New hook.
3227         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
3228         * doc/tm.texi: Regenerate.
3229         * targhooks.c (default_asm_output_addr_const_extra): New function.
3230         * targhooks.h (default_asm_output_addr_const_extra): Declare.
3231         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
3232         target hook.
3233
3234         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3235         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
3236         * config/i386/i386.h (output_addr_const_extra): Rename to...
3237         (i386_asm_output_addr_const_extra): ...this. Make static.
3238         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3239
3240 2010-08-11  Richard Henderson  <rth@redhat.com>
3241
3242         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
3243
3244 2010-08-11  Nick Clifton  <nickc@redhat.com>
3245
3246         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
3247         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
3248         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
3249         stormy16-lib2-cmpsi.c.
3250
3251         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
3252         -O2.
3253
3254 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
3255
3256         * opts.h (struct cl_option_handler_func): Make handler take
3257         cl_decoded_option structure as parameter, not individual elements.
3258         (struct cl_option_handlers): Make callbacks take cl_decoded_option
3259         structure as parameter, not individual elements.
3260         (handle_option): Take cl_decoded_option structure as parameter,
3261         not individual elements.
3262         (handle_generated_option): Declare.
3263         * opts-common.c (handle_option): Take cl_decoded_option structure
3264         as parameter, not individual elements.  Update calls to callback
3265         and handler functions.
3266         (handle_generated_option): New.
3267         (read_cmdline_option): Update calls to callback functions and
3268         handle_option.
3269         * opts.c (common_handle_option, complain_wrong_lang,
3270         unknown_option_callback, post_handling_callback,
3271         lang_handle_option, target_handle_option): Take cl_decoded_option
3272         structure as parameter, not individual elements.
3273         (lang_handle_option, target_handle_option, common_handle_option):
3274         Assert option has at most one argument.
3275         (enable_warning_as_error): Call handle_generated_option instead of
3276         handle_option.  Do not pass -Werror argument as argument of
3277         generated option.
3278
3279 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3280
3281         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
3282         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
3283         (SUBWORD_BOOL_CAS): Likewise.
3284         (SUBWORD_SYNC_OP): Likewise.
3285         (SUBWORD_TEST_AND_SET): Likewise.
3286         (FETCH_AND_OP_WORD): Parenthesise INF_OP
3287         (SUBWORD_SYNC_OP): Likewise.
3288         (OP_AND_FETCH_WORD): Likewise.
3289
3290 2010-08-10  Xinliang David Li  <davidxl@google.com>
3291
3292         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
3293         compute max/min offset in address.
3294
3295 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
3296
3297         * ira-live.c: Include sbitmap.h.
3298         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
3299         Compress live ranges even more.
3300
3301 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3302
3303         * coverage.c (ctr_labels): Delete.
3304
3305 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3306
3307         PR bootstrap/45177
3308         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
3309         test here from arm_gen_load_multiple_1.
3310         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
3311         multiple_operation_profitable_p.
3312
3313 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3314
3315         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
3316         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
3317
3318 2010-08-10  Richard Henderson  <rth@redhat.com>
3319
3320         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
3321         after saving registers.  Assert that SSE registers are only saved
3322         with a sufficiently aligned frame.
3323         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
3324         remove stack_realign_fp handling.
3325         (ix86_expand_prologue): Save int registers before stack_realign_fp,
3326         and do not mark the stack alignment as frame related.
3327         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
3328
3329         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
3330         saves when re-aligning the stack.
3331
3332 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3333
3334         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
3335         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
3336         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
3337
3338 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
3339
3340         * dwarf2out.c (struct die_struct): Move die_tag to the end.
3341
3342 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
3343
3344         * config/arm/iterators.md: New file.
3345         * config/arm/arm.md: Include iterators.md.
3346         (QHSI): Move to new file.
3347         (LTUGEU, cnb, optab, ior_xor): Likewise.
3348         * config/arm/iwmmxt.md (VMMX): Move to new file.
3349         (VSHFT, MMX_char): Likewise.
3350         * config/arm/neon.md (VD): Move to new file.
3351         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
3352         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
3353         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
3354         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
3355         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
3356         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
3357         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
3358         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
3359         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
3360         (Is_d_reg, V_mode_nunits): Likewise.
3361         * config/arm/vec-common.md (VALL): Move to new file.
3362         (VALLW, VINT, VINTW): Likewise.
3363
3364 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
3365
3366         PR middle-end/45182
3367         * combine.c (make_compound_operation): Don't try to convert
3368         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
3369
3370 2010-08-10  Richard Guenther  <rguenther@suse.de>
3371
3372         * tree.h (get_object_alignment): Adjust prototype.
3373         * builtins.c (get_object_alignment): Return unsigned int,
3374         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
3375         and TARGET_MEM_REF properly.
3376         (get_pointer_alignment): Adjust.
3377         * emit-rtl.c (get_mem_align_offset): Adjust comment.
3378         (set_mem_attributes_minus_bitpos): Adjust.
3379         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
3380
3381 2010-08-10  Richard Guenther  <rguenther@suse.de>
3382
3383         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
3384         (copy_prop_visit_assignment): Simplify.
3385         (copy_prop_visit_stmt): Also visit assignments from
3386         constants.
3387         (copy_prop_visit_phi_node): Use operand_equal_p.
3388
3389 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3390
3391         * ipa-split.c (find_split_points): Free stack.
3392
3393 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3394
3395         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
3396         * tree.c (tree_node_kind): Delete corresponding entries.
3397
3398 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
3399
3400         * alias.c (may_alias_p): Remove unused ret.
3401
3402 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
3403
3404         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
3405         alias_sets_conflict_p.
3406         (walk_mems_1): Moved from alias.c.
3407         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
3408         in alias.c.
3409         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
3410         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
3411         * alias.c (walk_mems_2): Moved to ddg.c.
3412         (walk_mems_1): Ditto.
3413         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
3414         to ddg.c.
3415         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
3416         disambiguation.
3417         *(may_alias_p): New function to check whether two memory expression
3418         may alias or not. Currently used in buidling inter-iteration memory
3419         dependence.
3420         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
3421         (insn_alias_sets_conflict_p): Removed
3422         *rtl.h (may_alias_p): New function prototype.
3423
3424 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
3425
3426         * tree.c (nreverse): Assert that we don't have a BLOCK.
3427