OSDN Git Service

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