OSDN Git Service

a0d6e785bbe1deee78f6439d5d8cbac9b38d88de
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-21  Richard Guenther  <rguenther@suse.de>
2
3         * dwarf2out.c (is_cu_die): New function.
4         (add_pubtype): Use it.
5         (gen_subprogram_die): Likewise.
6         (gen_struct_or_union_type_die): Likewise.
7         (dwarf2out_finish): Likewise.
8         (comp_unit_die): Rename to ...
9         (single_comp_unit_die): ... this.
10         (comp_unit_die): New function lazily constructing and
11         returning single_comp_unit_die.
12         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13         base_type_die, subrange_type_die, modified_type_die,
14         lower_bound_default, add_bound_info, add_prototyped_attribute,
15         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
16         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
17         force_decl_die, gen_namespace_die, dwarf2out_decl,
18         dwarf2out_start_source_file, dwarf2out_end_source_file,
19         prune_unused_types, dwarf2out_finish): Use it.
20         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
21         the global list of translation-unit decls.
22         (dwarf2out_init): Do not create single_comp_unit_die here.
23         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
24
25 2010-09-21  Richard Guenther  <rguenther@suse.de>
26
27         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
28         for bool for C++.
29
30 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
31
32         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
33         (qhs_extenddi_cstr): Likewise.
34         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
35         them for the source operand.
36
37 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
38
39         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
40         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
41         (ix86_split_ashr): Ditto.
42         (ix86_split_lshr): Ditto.
43
44 2010-09-21  Richard Guenther  <rguenther@suse.de>
45
46         PR tree-optimization/45580
47         * tree-ssa-propagate.c (substitute_and_fold): Always replace
48         regular uses.
49         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
50         virtuals fold the call into a regular indirect one.
51
52 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
53
54         PR rtl-optimization/42775
55         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
56         scheduling is enabled.
57
58 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
59
60         PR rtl-optimization/45728
61         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
62         gen_lowpart_common first and if that fails, force_reg first
63         before calling gen_lowpart.
64
65         PR middle-end/45678
66         * cfgexpand.c (expand_one_stack_var_at): Use
67         crtl->max_used_stack_slot_alignment as max_align, instead
68         of maximum of that and PREFERRED_STACK_BOUNDARY.
69         Don't call update_stack_alignment.
70
71 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
72
73         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
74         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
75         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
76         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
77         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
78         (build_nonstandard_integer_type): Likewise.
79         (build_range_type_1): New function, built from...
80         (build_range_type): ...this.  Call build_range_type_1.
81         (build_nonshared_range_type): New function.
82         (build_array_type_1): New function, built from...
83         (build_array_type: ...this.  Call build_array_type_1.
84         (build_nonshared_array_type): New function.
85         * tree.h (build_nonshared_range_type): Declare.
86         (build_nonshared_array_type): Likewise.
87
88 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
89
90         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
91         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
92         (arm_class_likely_spilled_p): New function.
93
94 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
95
96         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
97         indirect functions.
98         (ix86_split_ashl): Ditto.
99         (ix86_split_ashr): Ditto.
100         (ix86_split_lshr): Ditto.
101         (ix86_adjust_counter): Ditto.
102
103 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
104
105         * c-family/c-common.h (constant_string_class): Documented with
106         comment identical to the one already in c-common.c.
107
108 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
109
110         * dwarf2out.c (any_cfis_emitted): New static variable.
111         (add_fde_cfi): Set it.
112         (dwarf2out_frame_debug): Clear it before processing,
113         if it is set afterwards, flush any queued reg saves.
114
115         PR debug/45124
116         * dwarf2out.c (add_accessibility_attribute): Assume
117         DW_ACCESS_private as the default for dwarf_version > 2
118         and DW_TAG_class_type parent.
119         (gen_inheritance_die): Assume DW_ACCESS_public as the default
120         for dwarf_version > 2 and parent other than DW_TAG_class_type.
121
122 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
123
124         PR target/45726
125         * arm.md (arm_movt): Only enable on machines with MOVT.
126
127 2010-09-20  Jie Zhang  <jie@codesourcery.com>
128
129         * config/arm/arm.c (arm_address_offset_is_imm): New.
130         (arm_early_store_addr_dep): New.
131         (arm_early_load_addr_dep): New.
132         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
133         (arm_early_load_addr_dep): Declare.
134         (arm_address_offset_is_imm): Declare.
135         * config/arm/cortex-m4.md: New file.
136         * config/arm/cortex-m4-fpu.md: New file.
137         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
138         (attr generic_sched): Exclude cortexm4.
139         (attr generic_vfp): Exclude cortexm4.
140
141 2010-09-20  Richard Guenther  <rguenther@suse.de>
142
143         PR middle-end/45704
144         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
145
146 2010-09-20  Jan Hubicka  <jh@suse.cz>
147
148         PR tree-optimize/45605
149         * cgraph.h (const_value_known_p): Declare.
150         (varpool_decide_const_value_known): Remove.
151         * tree-ssa-ccp.c (get_base_constructor): Use it.
152         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
153         * expr.c (string_constant): Likewise.
154         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
155         * ipa.c (ipa_discover_readonly_nonaddressable_var,
156         function_and_variable_visibility): Likewise.
157         * gimplify.c (gimplify_call_expr): Likewise.
158         * gimple-fold.c (get_symbol_constant_value): Likewise.
159         * varpool.c (varpool_decide_const_value_known): Replace by...
160         (const_value_known_p): ... this one; handle other kinds of DECLs
161         too and work for automatic vars.
162         (varpool_finalize_decl): Use const_value_known_p.
163
164 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
165
166         PR target/45726
167         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
168
169 2010-09-20  Richard Guenther  <rguenther@suse.de>
170
171         PR tree-optimization/45705
172         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
173
174 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
175
176         PR rtl-optimization/45695
177         * combine.c (try_combine): When splitting a two set pattern,
178         make sure the pattern which will be put into i2 doesn't use REGs
179         or MEMs set by insns in between i2 and i3.
180
181 2010-09-19  Jan Hubicka  <jh@suse.cz>
182
183         PR lto/44246
184         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
185         processing same node twice.
186
187 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
188
189         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
190         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
191         (bfin_class_likely_spilled_p): New function
192
193 2010-09-19  Ira Rosen  <irar@il.ibm.com>
194
195         PR tree-optimization/45714
196         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
197         created in vectorizable_call instead of the original statement in
198         def stmt updates.
199
200 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
201
202         * config/i386/i386-protos.h (split_double_mode): New prototype.
203         (split_di, split_ti): Remove prototypes.
204         * config/i386/i386.c (split_double_mode): New function.
205         (split_di, split_ti): Remove.
206         (ix86_expand_branch): Use split_double_mode.
207         (ix86_split_to_parts): Ditto.
208         (ix86_split_ashl): Ditto.
209         (ix86_split_ashr): Ditto.
210         (ix86_split_lshr): Ditto.
211         (ix86_force_to_memory): Ditto.
212         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
213
214 2010-09-18  Jan Hubicka  <jh@suse.cz>
215
216         PR tree-optimization/45453
217         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
218         virtual functions are reachable.
219         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
220         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
221         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
222         when modifying function.
223
224 2010-09-18  Jan Hubicka  <jh@suse.cz>
225
226         PR tree-optimization/45605
227         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
228         * gimple-fold.c (static_object_in_other_unit_p): New function.
229         (canonicalize_constructor_val): Use it.
230         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
231         returning NULL.
232         (gimple_fold_obj_type_ref_known_binfo): Use
233         static_object_in_other_unit_p.
234
235 2010-09-18  Richard Guenther  <rguenther@suse.de>
236
237         PR tree-optimization/45709
238         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
239         insertions until after all PHI nodes of the block are processed.
240
241 2010-09-18  Tijl Coosemans <tijl@coosemans.org>
242
243         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
244
245 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
246
247         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
248
249 2010-09-18  Richard Guenther  <rguenther@suse.de>
250
251         PR tree-optimization/45709
252         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
253
254 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
255
256         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
257         (dot_deps_stmt): Same.
258         * graphite-poly.c (dot_lst): Same.
259         * graphite-scop-detection.c (dot_all_scops): Same.
260         (dot_scop): Same.
261
262 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
263
264         Revert:
265         2009-12-16  Ben Elliston  <bje@au.ibm.com>
266
267         * tree-data-ref.c (dot_rdg_1): Added back.
268         (dot_rdg): Same.  Added "#if 0" around system call.
269
270 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
271             Richard Henderson  <rth@redhat.com>
272
273         * config/i386/i386.c (initial_ix86_tune_features): Add
274         X86_TUNE_PAD_SHORT_FUNCTION.
275         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
276         (ix86_count_insn): New.
277         (ix86_pad_short_function): Likewise.
278         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
279
280         * config/i386/i386.h (ix86_tune_indices): Add
281         X86_TUNE_PAD_SHORT_FUNCTION.
282         (TARGET_PAD_SHORT_FUNCTION): New.
283
284         * config/i386/i386.md (UNSPEC_NOPS): New.
285         (nops): Likewise.
286
287 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
288
289         PR middle-end/45234
290         * calls.c (expand_call): Make sure that all variable sized
291         adjustments are multiple of preferred stack boundary after
292         stack alignment.
293
294 2010-09-17  DJ Delorie  <dj@redhat.com>
295
296         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
297         passed an invalid value, print an error instead of ICEing.
298         (valid_psw_flag): New.
299         (rx_expand_builtin): Call it for setpsw/clrpsw.
300         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
301
302         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
303         (bitclr_in_memory): Likewise.
304         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
305
306 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
307
308         PR middle-end/45678
309         * cfgexpand.c (update_stack_alignment): New.
310         (get_decl_align_unit): Use it.
311         (expand_one_stack_var_at): Call update_stack_alignment.
312
313 2010-09-17  Richard Guenther  <rguenther@suse.de>
314
315         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
316         Properly copy the read string.
317
318 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
319
320         * doc/options.texi (Variable): Document.
321         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
322         generate target_flags declarations explicitly.  Don't define
323         VarExists variables for the driver.
324         * common.opt (target_flags): New Variable record.
325         (flag_dump_unnumbered, flag_dump_unnumbered_links,
326         flag_var_tracking, flag_var_tracking_assignments,
327         flag_var_tracking_assignments_toggle): Don't mark variables with
328         VarExists.
329         * config/i386/i386.c (ix86_isa_flags): Don't define here.
330         * config/i386/i386.opt (ix86_isa_flags): Define here.
331         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
332         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
333         VarExists.
334         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
335         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
336         Only define for generator programs.
337         * rtlanal.c (target_flags): Remove.
338         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
339         flag_var_tracking_assignments_toggle): Remove.
340
341 2010-09-17  Michael Matz  <matz@suse.de>
342
343         PR tree-optimization/43432
344         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
345         Accept backwards consecutive accesses.
346         (vect_create_data_ref_ptr): If step is negative generate
347         decreasing IVs.
348         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
349         (perm_mask_for_reverse, reverse_vec_elements): New functions.
350         (vectorizable_load): Handle loads with negative steps when easily
351         possible.
352
353 2010-09-03  Jan Hubicka  <jh@suse.cz>
354
355         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
356
357 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
358
359         * config/v850/v850.c (v850_function_value_regno_p): Make static.
360         Adjust comments. Declare.
361         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
362         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
363
364 2010-09-17  Richard Guenther  <rguenther@suse.de>
365
366         * common.opt (combine): Remove.
367         * gcc.c (default_compilers): Remove specs testing combine.
368         The C compilers no longer can combine.
369         (option_map): Remove -combine.
370         (display_help): Remove -combine.
371         (driver_handle_option): Remove OPT_combine handling.
372         (compile_input_file_p): Remove.
373         (do_spec): Remove code concerning combine.
374         (main): Likewise.
375         * doc/invoke.texi: Remove traces of -combine.
376         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
377
378 2010-09-17  Richard Guenther  <rguenther@suse.de>
379
380         PR middle-end/45678
381         * builtins.c (fold_builtin_memory_op): Always properly adjust
382         alignment of memory accesses.
383
384 2010-09-16  Jan Hubicka  <jh@suse.cz>
385
386         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
387         processing clone.
388
389 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
390
391         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
392
393         * config/i386/i386.c (predict_jump): Add prototype.
394         (flag_opts): Add -m8bit-idiv.
395         (ix86_split_idivmod): New.
396
397         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
398         Add 2 splitters for SI/DI mode divide.
399         (divmod<mode>4_1): New pattern.
400         (udivmod<mode>4_1): Likewise.
401         (testdi_ccno_1): Likewise.
402
403         * config/i386/i386.opt (m8bit-idiv): New.
404
405         * doc/invoke.texi: Document -m8bit-idiv.
406
407 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
408
409         PR bootstrap/45680
410         * config/i386/i386.c (min_insn_size): Moved out of the
411         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
412
413 2010-09-16  Jan Hubicka  <jh@suse.cz>
414
415         * lto-cgraph.c (lto_output_node): Fix handling of clones.
416         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
417         unreachable clones with reachable clones.
418         * tree-inline.c (copy_bb): Fix sanity checking when producing
419         unreachable clone.
420
421 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
422
423         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
424         (TARGET_MEMORY_MOVE_COST): Define.
425         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
426
427 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
428
429         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
430         maybe_tidy_empty_bb.
431
432         Revert:
433         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
434         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
435
436 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
437
438         * target.def (target_option.optimization): New hook.
439         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
440         TARGET_OPTION_OPTIMIZATION hook.
441         * doc/tm.texi: Regenerate.
442         * hooks.c (hook_void_int_int): New.
443         * hooks.h (hook_void_int_int): Declare.
444         * opts.c: Don't include tm_p.h.
445         (decode_options): Use targetm.target_option.optimization instead
446         of OPTIMIZATION_OPTIONS.
447         * system.h (OPTIMIZATION_OPTIONS): Poison.
448         * config/arm/arm-protos.h (arm_optimization_options): Remove.
449         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
450         (arm_optimization_options): Rename to arm_option_optimization.
451         Make static.
452         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
453         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
454         (cris_option_optimization): New.
455         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
456         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
457         (crx_option_optimization): New.
458         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
459         * config/frv/frv-protos.h (frv_optimization_options): Remove.
460         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
461         (frv_optimization_options): Rename to frv_option_optimization.
462         Make static.
463         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
464         * config/h8300/h8300.c (h8300_option_optimization): New.
465         (TARGET_OPTION_OPTIMIZATION): Define.
466         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
467         * config/i386/i386-protos.h (optimization_options): Remove.
468         * config/i386/i386.c (optimization_options): Rename to
469         ix86_option_optimization.  Make static.
470         (TARGET_OPTION_OPTIMIZATION): Define.
471         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
472         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
473         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
474         (ia64_optimization_options): Rename to ia64_option_optimization.
475         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
476         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
477         commented-out definition.
478         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
479         instead of OPTIMIZATION_OPTIONS.
480         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
481         (m32r_option_optimization): New.
482         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
483         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
484         Remove.
485         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
486         (mcore_option_optimization): New.
487         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
488         * config/mep/mep-protos.h (mep_optimization_options): Remove.
489         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
490         (mep_optimization_options): Rename to mep_option_optimization.
491         Make static.  Take unused level and size parameters.
492         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
493         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
494         (mmix_option_optimization): New.
495         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
496         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
497         (pdp11_option_optimization): New.
498         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
499         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
500         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
501         (optimization_options): Rename to rs6000_option_optimization.
502         Make static.
503         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
504         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
505         * config/rx/rx.c (rx_set_optimization_options): Rename to
506         rx_option_optimization.  Make static.  Take unused level and size
507         parameters.
508         (TARGET_OPTION_OPTIMIZATION): Define.
509         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
510         * config/s390/s390-protos.h (optimization_options): Remove.
511         * config/s390/s390.c (optimization_options): Rename to
512         s390_option_optimization.  Make static.  Don't mark size parameter
513         unused.
514         (TARGET_OPTION_OPTIMIZATION): Define.
515         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
516         * config/sh/sh-protos.h (sh_optimization_options): Remove.
517         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
518         (sh_optimization_options): Rename to sh_option_optimization.  Make
519         static.  Don't mark parameters unused.
520         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
521         * config/spu/spu-protos.h (spu_optimization_options): Remove.
522         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
523         (spu_optimization_options): Rename to spu_option_optimization.
524         Make static.
525         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
526         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
527         (v850_option_optimization): New.
528         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
529         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
530         (xtensa_option_optimization): New.
531         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
532
533 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
534
535         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
536         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
537         * doc/tm.texi: Regenerate.
538         * system.h (OVERRIDE_OPTIONS): Poison.
539         * target.def (override): Default to hook_void_void.
540         * targhooks.c (default_target_option_override): Remove.
541         * genmodes.c, machmode.def: Update comments mentioning
542         OVERRIDE_OPTIONS.
543         * config/alpha/alpha-modes.def: Update comment mentioning
544         alpha_override_options.
545         * config/alpha/alpha-protos.h (override_options): Remove.
546         * config/alpha/alpha.c (override_options): Rename to
547         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
548         (TARGET_OPTION_OVERRIDE): Define.
549         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
550         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
551         of OVERRIDE_OPTIONS.
552         * config/arc/arc-protos.h (arc_init): Remove.
553         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
554         (arc_init): Rename to arc_option_override.  Make static.
555         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
556         (OVERRIDE_OPTIONS): Remove.
557         * config/arm/arm-protos.h (arm_override_options): Remove.
558         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
559         (arm_override_options): Rename to arm_option_override.  Make
560         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
561         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
562         * config/arm/arm.md: Update comment referring to arm_override_options.
563         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
564         instead of OVERRIDE_OPTIONS.
565         * config/avr/avr-protos.h (avr_override_options): Remove.
566         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
567         (avr_override_options): Rename to avr_option_override.  Make static.
568         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
569         * config/bfin/bfin-protos.h (override_options): Remove (twice).
570         * config/bfin/bfin.c (override_options): Rename to
571         bfin_option_override.  Make static.
572         (TARGET_OPTION_OVERRIDE): Define.
573         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
574         * config/cris/cris-protos.h (cris_override_options): Remove.
575         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
576         (cris_override_options): Rename to cris_option_override.  Make static.
577         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
578         * config/frv/frv-protos.h (frv_override_options): Remove.
579         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
580         (frv_override_options): Rename to frv_option_override.  Make static.
581         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
582         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
583         * config/h8300/h8300.c (h8300_init_once): Rename to
584         h8300_option_override.  Make static.
585         (TARGET_OPTION_OVERRIDE): Define.
586         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
587         * config/i386/i386-protos.h (override_options): Remove.
588         * config/i386/i386.c (override_options): Rename to
589         ix86_option_override_internal.  Make static.  Comments referring
590         to this function and callers changed.
591         (ix86_option_override): New.
592         (TARGET_OPTION_OVERRIDE): Define.
593         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
594         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
595         * config/ia64/ia64.c (ia64_file_start): Update comment referring
596         to ia64_override_options.
597         * config/iq2000/iq2000-protos.h (override_options): Remove.
598         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
599         (override_options): Rename to iq2000_option_override.  Make static.
600         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
601         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
602         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
603         (lm32_override_options): Rename to lm32_option_override.  Make static.
604         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
605         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
606         (m32r_option_override): New.
607         (m32r_init): Update comment.
608         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
609         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
610         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
611         (m68hc11_override_options): Rename to m68hc11_option_override.
612         Make static.  Return void.
613         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
614         * config/m68k/m68k-protos.h (override_options): Remove.
615         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
616         (override_options): Rename to m68k_option_override.  Make static.
617         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
618         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
619         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
620         (mcore_override_options): Rename to mcore_option_override.  Make
621         static.
622         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
623         * config/mep/mep-protos.h (mep_override_options): Remove.
624         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
625         (mep_override_options): Rename to mep_option_override.  Make static.
626         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
627         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
628         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
629         (mmix_override_options): Rename to mmix_option_override.  Make static.
630         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
631         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
632         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
633         (mn10300_override_options): Rename to mn10300_option_override.
634         Make static.
635         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
636         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
637         * config/moxie/moxie.c (moxie_override_options): Rename to
638         moxie_option_override.  Make static.
639         (TARGET_OPTION_OVERRIDE): Define.
640         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
641         * config/picochip/picochip-protos.h (picochip_override_options):
642         Remove.  Update comment referring to picochip_override_options.
643         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
644         (picochip_override_options): Rename to picochip_option_override.
645         Make static.  Update comment and definition of
646         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
647         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
648         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
649         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
650         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
651         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
652         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
653         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
654         instead of OVERRIDE_OPTIONS.
655         * config/rs6000/rs6000-modes.def: Update comment referring to
656         rs6000_override_options.
657         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
658         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
659         (rs6000_override_options): Rename to
660         rs6000_option_override_internal.  Make static.  Commented
661         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
662         (rs6000_option_override): New.
663         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
664         instead of OVERRIDE_OPTIONS.
665         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
666         * config/s390/s390-protos.h (override_options): Remove.
667         * config/s390/s390.c (override_options): Rename to
668         s390_option_override.  Make static.
669         (TARGET_OPTION_OVERRIDE): Define.
670         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
671         * config/score/score-protos.h (score_override_options): Remove.
672         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
673         (score_override_options): Rename to score_option_override.  Make
674         static.
675         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
676         Update comment referring to override_options.
677         * config/score/score3.c (score3_override_options): Rename to
678         score3_option_override.
679         * config/score/score3.h (score3_override_options): Rename to
680         score3_option_override.
681         * config/score/score7.c (score7_override_options): Rename to
682         score7_option_override.
683         * config/score/score7.h (score7_override_options): Rename to
684         score7_option_override.
685         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
686         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
687         (sparc_override_options): Rename to sparc_option_override.  Make
688         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
689         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
690         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
691         instead of OVERRIDE_OPTIONS.
692         * config/spu/spu-protos.h (spu_override_options): Remove.
693         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
694         (spu_override_options): Rename to spu_option_override.  Make
695         static.
696         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
697         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
698         OVERRIDE_OPTIONS.
699         * config/vax/vax-protos.h (override_options): Remove.
700         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
701         (override_options): Rename to vax_option_override.  Make static.
702         Call SUBTARGET_OVERRIDE_OPTIONS.
703         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
704         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
705         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
706         * config/xtensa/xtensa-protos.h (override_options): Remove.
707         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
708         (override_options): Rename to xtensa_option_override.  Make static.
709         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
710
711 2010-09-16  Richard Guenther  <rguenther@suse.de>
712
713         PR tree-optimization/45623
714         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
715         (get_constraint_for_component_ref): If computing a constraint
716         for the rhs handle type punning through unions.
717         (get_constraint_for_address_of): Adjust.
718         (get_constraint_for_1): Likewise.
719         (get_constraint_for): Likewise.
720         (get_constraint_for_rhs): New function.
721         (do_structure_copy): Adjust.
722         (make_constraint_to): Likewise.
723         (handle_const_call): Likewise.
724         (find_func_aliases): Likewise.
725         (process_ipa_clobber): Likewise.
726         (create_variable_info_for): Likewise.
727
728 2010-09-16  Ira Rosen  <irar@il.ibm.com>
729
730         * tree-vectorizer.c: Fix documentation.
731         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
732         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
733         is_pattern_stmt_p, is_loop_header_bb_p,
734         stmt_vinfo_set_inside_of_loop_cost,
735         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
736         known_alignment_for_access_p): Likewise.
737         * tree-vect-loop.c: Fix documentation.
738         (vect_get_cost): Start function name from new line.
739         * tree-vect-data-refs.c: Fix documentation.
740         * tree-vect_stmts.c: Likewise.
741         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
742         (vectorizable_store): Free vec_oprnds if allocated.
743         (vectorizable_condition): Initialize several variables to avoid
744         warnings.
745         * tree-vect-slp.c: Fix documentation.
746
747 2010-09-16  Richard Guenther  <rguenther@suse.de>
748
749         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
750         is TS_TRANSLATION_UNIT_DECL.
751         (initialize_tree_contains_struct): Adjust.
752         (all_translation_units): New global vector.
753         (build_translation_unit_decl): New function.
754         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
755         (struct tree_translation_unit_decl): New.
756         (all_translation_units): Declare.
757         (union tree_node): Add translation_unit_decl member.
758         (build_translation_unit_decl): Declare.
759         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
760         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
761         New function.
762         (pack_value_fields): Call it.
763         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
764         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
765         (lto_output_tree_pointers): Call it.
766         * lto-streamer-in.c (lto_input_tree_ref): Handle references
767         to TRANSLATION_UNIT_DECL.
768         (unpack_ts_translation_unit_decl_value_fields): New function.
769         (unpack_value_fields): Call it.
770         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
771         (lto_input_tree_pointers): Call it.
772         * lto-streamer.c (check_handled_ts_structures): Adjust.
773         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
774         * c-decl.c (all_translation_units): Remove.
775         (pop_scope): Use build_translation_unit_decl.
776         (collect_all_refs): Adjust.
777         (for_each_global_decl): Likewise.
778         (c_write_global_declarations): Likewise.
779
780 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
781
782         PR bootstrap/45686
783         * fold-const.c (fold_checksum_tree): Change slot from const void **
784         to void **, use CONST_CAST_TREE to store into *slot.
785
786 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
787
788         * config/i386/i386.md: Remove unneeded empty conditions and
789         preparation statements from expanders.
790         * config/i386/mmx.md: Ditto.
791         * config/i386/sse.md: Ditto.
792
793 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
794
795         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
796
797 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
798
799         PR rtl-optimization/45593
800         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
801         insns that were in delay slots as stand-alone insns.
802
803 2010-09-15  Ian Lance Taylor  <iant@google.com>
804
805         * incpath.c (remove_duplicates): If name is not a directory, issue
806         a warning rather than an error.
807
808 2010-09-15  Martin Jambor  <mjambor@suse.cz>
809
810         PR middle-end/45644
811         * tree-sra.c (create_access): Check for bit-fields directly.
812
813 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
814
815         PR tree-optimization/45633
816         * tree-cfg.c (verify_gimple_assign_binary): Allow
817         MINUS_EXPR with lhs and rhs1 pointer vector and
818         rhs2 sizetype vector.
819         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
820         or vector pointer use TER to optimize pointer subtraction.
821
822 2010-09-15  Jie Zhang  <jie@codesourcery.com>
823
824         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
825         fcmpd to fcmps.
826
827 2010-09-15  Ian Lance Taylor  <iant@google.com>
828
829         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
830
831 2010-09-15  Ian Lance Taylor  <iant@google.com>
832
833         * function.c (get_arg_pointer_save_area): Set
834         arg_pointer_save_area_init to true.
835
836 2010-09-15  Martin Jambor  <mjambor@suse.cz>
837
838         * tree-sra.c (generate_subtree_copies): Updated comment.
839         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
840         obtained from the statement iterator instead.
841         (load_assign_lhs_subreplacements): Removed parameters lhs and
842         right_offset, which is obtained from top_racc instead.  Parameter lacc
843         is now expected to be the root of the processed tree rather than root's
844         first child.  Updated all callers.
845
846 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
847
848         * config/pdp11/pdp11.c (register_move_cost): Rename to
849         pdp11_register_move_cost.
850         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
851         pdp11_register_move_cost.
852         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
853         pdp11_register_move_cost instead of register_move_cost.
854
855 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
856
857         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
858         pattern for vmovn. Expansion in case of non 
859         -mvectorize-with-neon-quad.
860         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
861         non- -mvectorize-with-neon-quad case.
862         (move_lo_quad_<mode>): New expansion to vmov into low part.
863         (move_hi_quad_<mode>): New expansion to vmov into high part.
864         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
865         (move_lo_quad_v4sf): Likewise.
866         (move_lo_quad_v8hi): Likewise.
867         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
868         low part.
869         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
870         high part.
871         * config/arm/iterators.md (ANY128): New mode iterator.
872         (V_narrow_pack): New mode attribute.
873         (V_HALF): Add attribute.
874         (V_DOUBLE): Add attribute.
875         (V_mode_nunits): Add attribute.
876
877 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
878
879         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
880         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
881
882 2010-09-15  Olivier Hainque  <hainque@adacore.com>
883             Jose Ruiz  <ruiz@adacore.com>
884
885         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
886         * config/alpha/osf5-unwind.h: New file.
887
888 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
889
890         PR bootstrap/45672
891         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
892         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
893         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
894
895 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
896
897         * c-lang.h (struct lang_type): Add variable_size GTY option.
898
899 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
900
901         PR bootstrap/45672
902         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
903
904 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
905
906         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
907         result isn't used in memory address.
908
909 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
910
911         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
912         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
913         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
914         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
915         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
916         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
917
918         * target.def: Add units_per_simd_word to vectorize.
919
920         * targhooks.c (default_units_per_simd_word): New.
921         * targhooks.h (default_units_per_simd_word): Likewise.
922         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
923         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
924         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
925         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
926         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
927         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
928         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
929         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
930
931         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
932         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
933
934         * tree-vect-stmts.c: Don't include "tm_p.h".
935         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
936         with targetm.vectorize.units_per_simd_word.
937
938         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
939
940         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
941
942         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
943         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
944
945         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
946         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
947
948         * doc/tm.texi: Regenerated.
949
950 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
951
952         * tree-vect-stmts.c: Include "tm_p.h".
953
954         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
955         out of RTX_CODE.
956
957 2010-09-14  Martin Jambor  <mjambor@suse.cz>
958
959         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
960         location of generated statement.  Changed all callers.
961         (build_ref_for_model): New parameter loc which used to set location of
962         all generated expressions.  Changed all callers.
963         (generate_subtree_copies): Likewise.
964         (init_subtree_with_zero): Likewise.
965         (sra_modify_expr): Set locations of all generated statements and
966         expressions to the location the original statement.
967         (handle_unscalarized_data_in_subtree): Likewise.
968         (load_assign_lhs_subreplacements): Likewise.
969         (sra_modify_constructor_assign): Likewise.
970         (sra_modify_assign): Likewise.
971
972 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
973
974         PR target/45277
975         PR target/45363
976         PR target/45407
977         * doc/install.texi (sparc*-*-*): New section.
978         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
979
980 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
981
982         PR middle-end/45567
983         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
984         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
985         (expand_builtin): Adjust caller.
986         (expand_builtin_unop): Only use subtarget if it has the right mode.
987
988 2010-09-14  Tristan Gingold  <gingold@adacore.com>
989
990         * configure.ac (plugins): Fix typos.
991         * configure: Regenerate.
992
993 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
994
995         PR debug/45660
996         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
997         gen_type_die for function/method return type.
998
999 2010-09-14  Ira Rosen  <irar@il.ibm.com>
1000
1001         PR tree-optimization/45470
1002         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
1003         can throw an exception.
1004         * tree-vect-stmts.c (vectorizable_call): Likewise.
1005
1006 2010-09-14  DJ Delorie  <dj@redhat.com>
1007
1008         PR target/44749
1009         * config/mep/mep-protos.h (mep_save_register_info,
1010         mep_reinit_regs, mep_init_regs): Declare.
1011
1012         * config/mep/mep.c: Move all target definitions to the end of the
1013         file to avoid the need for duplicate declarations.
1014         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
1015         (mep_reorg_erepeat): Remove unused variables.
1016         (mep_expand_builtin): Likewise.
1017
1018         * config/mep/mep-pragma.c: Don't include rtl.h.
1019         (INVALID_REGNUM): New.
1020         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
1021         functions.
1022         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
1023         Avoid enum/integer math.
1024
1025 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
1026
1027         PR target/44749
1028         * config/mep/t-mep (GTM_H): Add insn-constants.h.
1029         * config/mep/mep.c (mep_conditional_register_usage): Take no
1030         parameters.
1031         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
1032         prototype.
1033         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
1034         call to mep_conditional_register_usage.
1035
1036 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
1037
1038         PR debug/43937
1039         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
1040         the DECL as well.
1041
1042 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
1043
1044         PR rtl-optimization/45617
1045         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
1046         even if low N bits of X aren't known to be zero.
1047
1048 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
1049
1050         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
1051
1052         * config/i386/i386.c (initial_ix86_tune_features): Add
1053         X86_TUNE_VECTORIZE_DOUBLE.
1054         (ix86_units_per_simd_word): New.
1055
1056         * config/i386/i386.h (ix86_tune_indices): Add
1057         X86_TUNE_VECTORIZE_DOUBLE.
1058         (TARGET_VECTORIZE_DOUBLE): New.
1059         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
1060
1061 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
1062
1063         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
1064         (new_temp_expr_table): Allocate call_cnt vector.
1065         (free_temp_expr_table): Free it.
1066         (process_replaceable): Add call_cnt parm and set in vector.
1067         (find_replaceable_in_bb): Skip replacement if def/use span a call.
1068         (debug_ter): Dump call_cnt value, remove stderr uses.
1069
1070 2010-09-13  Jan Hubicka  <jh@suse.cz>
1071
1072         * tree.c (build_zero_cst): New.
1073         * tree.h (build_zero_cst): Declare.
1074         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
1075         (get_base_constructor): Break out from ...
1076         (fold_const_aggregate_ref): Here; handle empty constructors.
1077
1078 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1079
1080         * config/arm/arm.md: (define_attr "conds"): Update comment.
1081         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
1082         conds attribute to clob.
1083         (arm_sync_compare_and_swapsi): Likewise.
1084         (arm_sync_compare_and_swap<mode>): Likewise.
1085         (arm_sync_lock_test_and_setsi): Likewise.
1086         (arm_sync_lock_test_and_set<mode>): Likewise.
1087         (arm_sync_new_<sync_optab>si): Likewise.
1088         (arm_sync_new_nandsi): Likewise.
1089         (arm_sync_new_<sync_optab><mode>): Likewise.
1090         (arm_sync_new_nand<mode>): Likewise.
1091         (arm_sync_old_<sync_optab>si): Likewise.
1092         (arm_sync_old_nandsi): Likewise.
1093         (arm_sync_old_<sync_optab><mode>): Likewise.
1094         (arm_sync_old_nand<mode>): Likewise.
1095
1096 2010-09-13  Olivier Hainque  <hainque@adacore.com>
1097
1098         * fwprop.c (forward_propagate_and_simplify): Only attach a
1099         REG_EQUAL note to an insn if the destination is a register.
1100         * gcse.c (try_replace_reg): Likewise.
1101
1102 2010-09-13  Richard Guenther  <rguenther@suse.de>
1103
1104         PR tree-optimization/45611
1105         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
1106         (copy_ref_info): Likewise.
1107
1108 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
1109
1110         PR debug/45604
1111         PR debug/45419
1112         PR debug/45408
1113         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1114         types of MEM_REF pointer types to the same type.
1115
1116 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
1117
1118         PR rtl-optimization/41087
1119         * ifcvt.c (noce_get_condition): Don't allow conditions with
1120         side-effects.
1121
1122 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
1123
1124         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1125         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
1126         * config/frv/frv.c (frv_register_move_cost): Make static. Change
1127         arguments type to reg_class_t. Add mode argument.
1128         (frv_memory_move_cost): New.
1129         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
1130
1131 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
1132
1133         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
1134         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
1135
1136 2010-09-10  Jan Hubicka  <jh@suse.cz>
1137
1138         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
1139
1140 2010-09-10  Richard Guenther  <rguenther@suse.de>
1141
1142         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
1143         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
1144         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
1145         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
1146         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
1147
1148 2010-09-10  Richard Guenther  <rguenther@suse.de>
1149
1150         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
1151         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
1152         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
1153         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
1154
1155 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
1156
1157         PR middle-end/45634
1158         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
1159         of string folding is of integral type.
1160
1161 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
1162
1163         * doc/invoke.texi (-x): Fix typo.
1164
1165 2010-09-10  Richard Guenther  <rguenther@suse.de>
1166
1167         PR debug/44115
1168         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
1169         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1170         Output DECL_DEBUG_EXPR.
1171         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1172         Input DECL_DEBUG_EXPR.
1173
1174 2010-09-10  Richard Guenther  <rguenther@suse.de>
1175
1176         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
1177         (build_index_type): Implement in terms of build_range_type.
1178         (build_range_type): Do not allow NULL_TREE type, improve
1179         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
1180         if we didn't hash.
1181         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
1182         create a distinct copy of the type.
1183
1184 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
1185
1186         * configure: Regenerated.
1187         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
1188
1189 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1190
1191         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
1192         * config/arm/cortex-a9-neon.md: New and partially generated.
1193         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
1194
1195 2010-09-10  Richard Guenther  <rguenther@suse.de>
1196
1197         * tree.h (build_index_2_type): Remove.
1198         * tree.c (build_index_2_type): Remove.
1199
1200 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
1201
1202         PR bootstrap/45630
1203         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
1204         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
1205         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
1206
1207 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1208
1209         PR tree-optimization/44972
1210         * tree-sra.c: Include toplev.h.
1211         (build_ref_for_offset): Entirely reimplemented.
1212         (build_ref_for_model): New function.
1213         (build_user_friendly_ref_for_offset): New function.
1214         (analyze_access_subtree): Removed build_ref_for_offset check.
1215         (propagate_subaccesses_across_link): Likewise.
1216         (create_artificial_child_access): Use
1217         build_user_friendly_ref_for_offset.
1218         (propagate_subaccesses_across_link): Likewise.
1219         (ref_expr_for_all_replacements_p): Removed.
1220         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
1221         (sra_modify_expr): Use build_ref_for_model.
1222         (load_assign_lhs_subreplacements): Likewise.
1223         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1224         checks for return values of build_ref_for_offset.
1225         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1226         build_ref_for_offset.
1227         * ipa-prop.h: Include gimple.h
1228         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1229         (ipa_analyze_indirect_call_uses): Update comment.
1230         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1231         (IPA_PROP_H): Likewise.
1232
1233 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1234
1235         PR tree-optimization/44972
1236         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1237         calling build_ref_for_offset.
1238
1239 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1240
1241         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1242         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1243         * config/arm/arm-tune.md: Regenerate.
1244         * doc/invoke.texi (ARM Options): Document it.
1245
1246 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
1247
1248         * config/i386/i386.c: Include sched-int.h.
1249         (TARGET_SCHED_DISPATCH): Defined.
1250         (TARGET_SCHED_DISPATCH_DO): Defined.
1251         (DISPATCH_WINDOW_SIZE): Defined.
1252         (MAX_DISPATCH_WINDOWS): Defined.
1253         (MAX_INSN): Defined.
1254         (MAX_IMM): Defined.
1255         (MAX_IMM_SIZE): Defined.
1256         (MAX_IMM_32): Defined.
1257         (MAX_IMM_64): Defined.
1258         (MAX_LOAD): Defined.
1259         (MAX_STORE): Defined.
1260         (BIG): Defined.
1261         (dispatch_group): New.
1262         (num_allowable_groups): New.
1263         (group_name): New.
1264         (sched_insn_info_s): New.
1265         (dispatch_windows_s): New.
1266         (imm_info_s): New.
1267         (dispatch_window_list): New.
1268         (dispatch_window_list1): New.
1269         (get_mem_group): New.
1270         (is_cmp): New.
1271         (dispatch_violation): New.
1272         (is_branch): New.
1273         (is_prefetch): New.
1274         (init_window): New.
1275         (allocate_window): New.
1276         (init_dispatch_sched): New.
1277         (is_end_basic_block): New.
1278         (process_end_window): New.
1279         (allocate_next_window): New.
1280         (find_constant_1): New.
1281         (find_constant): New.
1282         (get_num_immediates): New.
1283         (has_immediate): New.
1284         (get_insn_path): New.
1285         (get_insn_group): New.
1286         (count_num_restricted): New.
1287         (fits_dispatch_window): New.
1288         (add_insn_window): New.
1289         (add_to_dispatch_window): New.
1290         (debug_dispatch_window_file): New.
1291         (debug_dispatch_window): New.
1292         (debug_insn_dispatch_info_file): New.
1293         (debug_ready_dispatch): New.
1294         (do_dispatch): New.
1295         (has_dispatch): New.
1296         * config/i386/i386.h (debug_ready_dispatch): Declared.
1297         (debug_dispatch_window): Declared.
1298         * config/i386/i386.opt (mdispatch-scheduler): New flag.
1299         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1300         (TARGET_SCHED_DISPATCH_DO): New.
1301         * doc/tm.texi: Regererated.
1302         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1303         ready_remove_first_dispatch
1304         (schedule_block): Call targetm.sched.dispatch and
1305         targetm.sched.dispatch_do.
1306         (sched_init): Call targetm.sched.dispatch and
1307         targetm.sched.dispatch_do.
1308         (ready_remove_first_dispatch): New.
1309         (number_in_ready): New.
1310         (get_ready_element): New.
1311         * hooks.c (hook_bool_rtx_int_false): New.
1312         (hook_void_rtx_int): New.
1313         * hooks.h (hook_bool_rtx_int_false): Declared.
1314         (hook_void_rtx_int): Declared.
1315         * sched-int.h (IS_DISPATCH_ON): Defined.
1316         (IS_CMP): Defined.
1317         (DISPATCH_VIOLATION): Defined.
1318         (FITS_DISPATCH_WINDOW): Defined.
1319         (DISPATCH_INIT): Defined.
1320         (ADD_TO_DISPATCH_WINDOW): Defined.
1321         (get_ready_element): Declared.
1322         (number_in_ready): Declared.
1323         * target.def (dispatch): Defined.
1324         (dispatch_do): Defined.
1325
1326 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1327
1328         PR middle-end/45312
1329         * reload1.c (merge_assigned_reloads): Remove.
1330         (reload_as_needed): Don't call it.
1331
1332 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
1333
1334         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1335         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1336         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1337
1338 2010-09-09  Matthias Klose  <doko@ubuntu.com>
1339
1340         PR bootstrap/43847
1341         * configure.ac (--enable-plugin): Enhance for cross builds.
1342         * configure: Regenerate.
1343
1344 2010-09-09  Jan Hubicka  <jh@suse.cz>
1345
1346         PR tree-optimization/45598
1347         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1348         string folding is of integral type.
1349
1350 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1351
1352         * configure.ac (gnu_indirect_function): New test.
1353         * configure: Rebuilt.
1354         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1355         * defaults.h (IFUNC_ASM_TYPE): Provide default.
1356
1357         * doc/extend.texi (Function Attributes): Document ifunc.
1358         * varasm.c (do_assemble_alias): Deal with ifuncs too.
1359
1360 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
1361
1362         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1363         epilogue instruction move.
1364
1365 2010-09-09  Jan Hubicka  <jh@suse.cz>
1366
1367         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1368         command line to allow more partitions than input files.
1369
1370 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1371
1372         PR middle-end/44554
1373         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1374
1375 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1376
1377         PR middle-end/40386
1378         * ira.c (pseudo_for_reload_consideration_p): Don't use
1379         flag_ira_share_spill_slots.
1380
1381 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1382
1383         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1384         point zero operands that fit into a single GPR.
1385         (s390_preferred_reload_class): Ensure we only return general-purpose
1386         register classes.
1387         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1388         floating-point zero operands into GPRs.
1389         ("*mov<mode>_64"): Likewise.
1390         ("mov<mode>"): Likewise using lhi.
1391
1392 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1393
1394         * config/s390/s390.c (s390_symref_operand_p): Return false for
1395         literal pool references.
1396         (s390_check_qrst_address): Update caller.
1397
1398 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1399
1400         * config/i386/predicates.md (ext_register_operand): Check that
1401         SUBREG_REG is really a register before looking for REGNO.
1402         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1403         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1404
1405 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1406
1407         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1408         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1409         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1410         * print-rtl.c (print_rtx): Likewise.
1411         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1412         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1413         for ADDR_EXPR with non-addressable object.
1414         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1415         (struct dw_val_struct): Add v.val_decl_ref.
1416         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1417         Handle DW_OP_GNU_implicit_pointer.
1418         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1419         (get_ref_die_offset_label): New function.
1420         (implicit_ptr_descriptor): New function.
1421         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1422         (loc_descriptor): Likewise.
1423         (gen_variable_die): Put even definitions into decl_die_table.
1424         (resolve_addr_in_expr): Resolve still unresolved
1425         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1426         return false.
1427         (dwarf2out_finish): Call output_location_lists after outputting
1428         .debug_info and .debug_abbrev instead of before.
1429
1430 2010-09-09  Roland McGrath  <roland@redhat.com>
1431
1432         * dwarf2out.c (DWARF_REF_SIZE): Define.
1433         (size_of_loc_descr): Use it for DW_OP_call_ref.
1434
1435 2010-09-09  Alan Modra  <amodra@gmail.com>
1436
1437         * doc/invoke.text: Reinstate mcmodel=medium.
1438         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1439         CMODEL_MEDIUM as default.
1440         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1441         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1442         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1443         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1444
1445 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1446
1447         PR target/45250
1448         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1449         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1450         (builtin_longjmp): Likewise.
1451         (allocate_stack): Use hard_frame_pointer_rtx instead of
1452         frame_pointer_rtx.
1453         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1454         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1455         (pa_can_eliminate): Likewise.
1456         (TARGET_INTERNAL_ARG_POINTER): Define.
1457         (TARGET_CAN_ELIMINATE): Define.
1458         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1459         pointer.
1460         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1461         (pa_internal_arg_pointer, pa_can_eliminate,
1462         pa_initial_elimination_offset): New.
1463         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1464         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1465         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1466         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1467         Define.
1468         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1469         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1470         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1471         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1472         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1473         new soft frame pointer.
1474         * config/pa/pa64-regs.h: Likewise.
1475
1476 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1477
1478         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1479         numerical constant.
1480         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1481
1482 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1483
1484         PR debug/45531
1485         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1486
1487 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1488
1489         PR debug/45419
1490         PR debug/45408
1491         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1492         qualifiers in otherwise equal MEM_REF pointer types.
1493         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1494         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1495
1496 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1497
1498         PR target/44392
1499         * config/arm/arm.md (bswapsi2): Handle condition correctly
1500         for armv6 and optimize_size.
1501
1502 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1503
1504         PR other/18555
1505         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1506
1507 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1508
1509         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1510         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1511         ix86_expand_strlen, legitimate_pic_address_disp_p,
1512         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1513         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1514         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1515         prototype to bool.
1516         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1517         return_in_memory_ms_64, ix86_check_movabs,
1518         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1519         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1520         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1521         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1522         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1523         ix86_secondary_memory_needed): Change to bool.  Return
1524         "true" and "false" values.
1525         * config/i386/i386.md: Return "true" and "false" values.
1526
1527 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1528
1529         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1530         run_expensive_tests.
1531
1532 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1533
1534         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1535
1536 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1537
1538         PR other/45443
1539         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1540         at -O3.
1541
1542 2010-09-08  Richard Guenther  <rguenther@suse.de>
1543
1544         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1545         (visit): Adjust.
1546         (iterative_hash_gimple_type): Likewise.
1547         (gimple_type_hash): Likewise.
1548         (gimple_register_type): Likewise.
1549         (print_gimple_types_stats): Likewise.
1550         (free_gimple_type_tables): Likewise.
1551
1552 2010-09-08  Michael Matz  <matz@suse.de>
1553
1554         PR tree-optimization/43430
1555         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1556         copies for conditional statements if it's not part of a reduction.
1557
1558 2010-09-08  Michael Matz  <matz@suse.de>
1559
1560         PR tree-optimization/33244
1561         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1562         empty loop latches.
1563
1564 2010-09-08  Richard Guenther  <rguenther@suse.de>
1565
1566         PR tree-optimization/45578
1567         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1568         Be more careful when transfering alignment information to
1569         the new induction variable.
1570         (copy_ref_info): Likewise.
1571
1572 2010-09-08  Richard Guenther  <rguenther@suse.de>
1573
1574         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1575         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1576
1577 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1578
1579         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1580         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1581
1582 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1583
1584         PR doc/45587
1585         * doc/md.texi: Fixed modes on several standard pattern names.
1586
1587 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1588
1589         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1590         (ashl<mode>3): ...this.
1591         (loongson_psra<V_suffix>): Rename to...
1592         (ashr<mode>3): ...this.
1593         (loongson_psrl<V_suffix>): Rename to...
1594         (lshr<mode>3): ...this.
1595         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1596         (CODE_FOR_loongson_psllw): Define.
1597         (CODE_FOR_loongson_psrlh): Define.
1598         (CODE_FOR_loongson_psrlw): Define.
1599         (CODE_FOR_loongson_psrah): Define.
1600         (CODE_FOR_loongson_psraw): Define.
1601
1602 2010-09-07  Richard Henderson  <rth@redhat.com>
1603
1604         * tree-vect-data-refs.c: Include tm_p.h.
1605         * Makefile.in (tree-vect-data-refs.o): Update deps.
1606         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1607         Move delarations outside #ifdef RTX_CODE.
1608
1609 2010-09-07  Richard Henderson  <rth@redhat.com>
1610
1611         * final.c (rest_of_handle_final): Unconditionally do
1612         output_function_exception_table before assemble_end_function.
1613
1614 2010-09-07  Jan Hubicka  <jh@suse.cz>
1615
1616         * tree-inline.c (tree_inlinable_function_p): Do not test
1617         DECL_REPLACEABLE_P.
1618         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1619         update_callee_keys, cgraph_decide_inlining): Test function availability.
1620         * cif-code.def (OVERWRITABLE): New code.
1621
1622 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1623             Jack Howarth <howarth@bromo.med.uc.edu>
1624
1625         PR target/36502
1626         PR target/42313
1627         PR target/44651
1628         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1629         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1630         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1631         MAX macro.
1632
1633 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1634
1635         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1636         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1637
1638 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1639
1640         * config.gcc: Don't append t-android for Android targets.
1641
1642         * config/t-android: Removed.
1643
1644 2010-09-07  Richard Henderson  <rth@redhat.com>
1645
1646         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1647         * doc/tm.texi.in: Add doc marker.
1648         * doc/tm.texi: Rebuild.
1649         * except.c (switch_to_exception_section): Always build.
1650         (output_one_function_exception_table): Move section switch,
1651         personality output, and label output ...
1652         (output_function_exception_table): ... here.  Use the new
1653         personality hook.
1654
1655         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1656         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1657         TARGET_ASM_INIT_SECTIONS): New.
1658         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1659         make static.
1660         (TARGET_ASM_UNWIND_EMIT): Update to match.
1661         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1662
1663         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1664         (arm_asm_init_sections): New.
1665         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1666
1667 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1668
1669         * config/arm/arm.md: Remove unused variable.
1670
1671 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1672
1673         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1674         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1675         (m32r_memory_move_cost): New function.
1676
1677 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1678
1679         * config.gcc: Append t-android for Android targets.
1680
1681         * config/t-android: New.
1682
1683 2010-09-07  Richard Henderson  <rth@redhat.com>
1684
1685         * target.def (unwind_emit_before_insn): New hook.
1686         * doc/tm.texi.in: Add @hook marker for it.
1687         * doc/tm.texi: Rebuild.
1688         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1689
1690 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1691
1692         PR fortran/43665
1693         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1694         are any type attributes.
1695
1696 2010-09-07  Jan Hubicka  <jh@suse.cz>
1697
1698         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1699         array_ref_low_bound in string access folding.
1700
1701 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1702
1703         PR target/45206
1704         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1705         eh_return fixup sequence.
1706
1707 2010-09-07  Jan Hubicka  <jh@suse.cz>
1708
1709         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1710         gimple_min_invariant.
1711
1712 2010-09-07  Richard Guenther  <rguenther@suse.de>
1713
1714         PR middle-end/45569
1715         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1716         nor CONSTRUCTOR can trap.
1717         * tree-complex.c (update_complex_assignment): Update EH info.
1718
1719 2010-09-07  Richard Guenther  <rguenther@suse.de>
1720
1721         PR middle-end/45569
1722         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1723         * passes.c (execute_function_todo): Do not verify anything if
1724         we saw errors.
1725
1726 2010-09-07  Richard Guenther  <rguenther@suse.de>
1727
1728         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1729
1730 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1731
1732         PR target/43137
1733         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1734         New define_mode_attrs.
1735         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1736         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1737         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1738         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1739         Remove pool_range attribute.
1740         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1741         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1742         pool_range and neg_pool_range attributes.
1743         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1744         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1745         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1746
1747 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1748
1749         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1750         check glibc.
1751
1752 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1753
1754         PR target/22152
1755         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1756         *mov<mode>_internal_avx, *mov<mode>_internal,
1757         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1758         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1759
1760 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1761
1762         * c-typeck.c (do_warn_double_promotion): Remove.
1763         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1764         Objective-C++ too.
1765
1766 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1767
1768         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1769         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1770         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1771         argument type to reg_class_t. Change result type to bool.
1772         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1773
1774 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1775
1776         PR libobjc/19850
1777         * gthr-posix.h (__gthread_objc_thread_detach): Use
1778         _objc_thread_attribs when detaching a thread.
1779         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1780
1781 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1782
1783         PR target/45524
1784         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1785         * configure: Regenerated.
1786
1787 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1788
1789         * combine.c (try_combine): Set subst_low_luid to i0.
1790
1791 2010-09-06  Richard Guenther  <rguenther@suse.de>
1792
1793         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1794         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1795         (build_aligned_type): Declare.
1796         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1797         (check_aligned_type): New function.
1798         (build_aligned_type): Likewise.
1799         * expr.c (expand_assignment): Handle misaligned stores via
1800         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1801         (expand_expr_real_1): Likewise.
1802         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1803         * tree-vect-stmts.c (vectorizable_store): Do not build
1804         MISALIGNED_INDIRECT_REF but initialize alignment information.
1805         (vectorizable_load): Likewise.
1806         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1807         handling.
1808         * cfgexpand.c (expand_debug_expr): Likewise.
1809         * dwarf2out.c (loc_list_from_tree): Likewise.
1810         * fold-const.c (maybe_lvalue_p): Likewise.
1811         (operand_equal_p): Likewise.
1812         (build_fold_addr_expr_with_type_loc): Likewise.
1813         * gimplify.c (gimplify_addr_expr): Likewise.
1814         (gimplify_expr): Likewise.
1815         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1816         (verify_gimple_assign_single): Likewise.
1817         * tree-dump.c (dequeue_and_dump): Likewise.
1818         (tree_could_trap_p): Likewise.
1819         * tree-predcom.c (ref_at_iteration): Likewise.
1820         * tree-pretty-print.c (dump_generic_node): Likewise.
1821         (op_code_prio): Likewise.
1822         (op_symbol_code): Likewise.
1823         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1824         * tree-ssa-loop-im.c (for_each_index): Likewise.
1825         (gen_lsm_tmp_name): Likewise.
1826         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1827         (find_interesting_uses_address): Likewise.
1828         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1829         * tree-ssa-operands.c (get_expr_operands): Likewise.
1830         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1831         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1832         (ao_ref_init_from_vn_reference): Likewise.
1833         * tree.c (staticp): Likewise.
1834         (build1_stat): Likewise.
1835         (reference_alias_ptr_type): Likewise.
1836         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1837         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1838         MISALIGNED_INDIRECT_REF handling.
1839
1840 2010-09-06  Richard Guenther  <rguenther@suse.de>
1841
1842         PR tree-optimization/45534
1843         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1844         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1845         on the target.
1846         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1847         valid on the target.
1848
1849 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1850
1851         * configure.ac: Quote argument of AC_MSG_WARN.
1852         * configure: Regenerate.
1853
1854 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1855
1856         * sel-sched.c (move_cond_jump): Correct arguments to
1857         maybe_tidy_empty_bb.
1858         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1859
1860 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1861
1862         PR rtl-optimization/44919
1863         * sel-sched.c (move_cond_jump): Remove assert, check that
1864         the several blocks case can only happen with mutually exclusive
1865         insns instead.  Rewrite the movement code to support moving through
1866         several basic blocks.
1867
1868 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1869
1870         * config/i386/i386.md (iptrsize): New mode attribute.
1871         (tp_seg): Ditto.
1872         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1873         mode iterator.
1874         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1875         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1876         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1877         (stack_tls_protect_set_<mode>): Ditto from
1878         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1879         of thread base pointer load.
1880         (stack_tls_protect_test_<mode>): Ditto from
1881         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1882         of thread base pointer load.
1883         (stack_protect_set): Rewrite using indirect functions.
1884         (stack_protect_test): Ditto.
1885         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1886         (ix86_print_operand): Handle '@'.
1887
1888 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1889
1890         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1891         MINUS_EXPR.
1892
1893 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1894
1895         * doc/invoke.texi: Document -Wdouble-promotion.
1896         * c-typeck.c (convert_arguments): Check for implicit conversions
1897         from float to double.
1898         (do_warn_double_promotion): New function.
1899         (build_conditional_expr): Use it.
1900         (build_binary_op): Likewise.
1901
1902 2010-09-05  Richard Guenther  <rguenther@suse.de>
1903
1904         PR tree-optimization/45535
1905         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1906         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1907         dereferencing it.
1908         (indirect_refs_may_alias_p): Likewise.
1909
1910 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1911
1912         * config/sh/sh.c (sh_option_override): Make static.
1913         Adjust comments.  Declare.
1914         (sh_function_value_regno_p): Likewise.
1915         (sh_register_move_cost): Modify the arguments, make static.
1916         Adjust comments.  Declare.
1917         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1918         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1919         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1920         REGISTER_MOVE_COST): Delete.
1921         * config/sh/sh-protos.h (sh_override_options): Delete.
1922         (sh_register_move_cost): Delete.
1923         (sh_function_value_regno_p): Delete.
1924
1925 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1926
1927         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1928         m32r_function_value_regno_p): New functions.
1929         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1930         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1931         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1932         FUNCTION_VALUE_REGNO_P): Remove.
1933
1934 2010-09-04  Jan Hubicka  <jh@suse.cz>
1935
1936         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1937         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1938         fold_read_from_constant_string.
1939
1940         * gimple.h (canonicalize_constructor_val): Declare.
1941         * gimple-fold.c (canonicalize_constructor_val): New function.
1942         (get_symbol_constant_value):Use it.
1943         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1944
1945 2010-09-04  Jan Hubicka  <jh@suse.cz>
1946
1947         * tree-switch-conversion.c (build_one_array): Set constructor to be
1948         static.
1949         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1950
1951 2010-09-04  Richard Guenther  <rguenther@suse.de>
1952
1953         PR bootstrap/45519
1954         * tree-flow.h (force_gimple_operand_1): Declare.
1955         (force_gimple_operand_gsi_1): Likewise.
1956         * gimplify.c (force_gimple_operand_1): New worker taking a
1957         gimple predicate for ...
1958         (force_gimple_operand): ... which now wraps it.
1959         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1960         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1961         last change.
1962         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1963         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1964         (create_mem_ref): Likewise.
1965
1966 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1967
1968         * config/i386/predicates.md (sse_reg_operand): New predicate.
1969         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1970         predicate for operand 1.
1971         (XFmode push splitter): Use fp_register_operand predicate
1972         for operand 1.
1973         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1974         (SF-DF float_extend push splitter): Add reload_completed insn
1975         predicate.
1976         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1977         MODEF mode macro.  Add reload_completed insn predicate.
1978
1979 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1980
1981         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1982         (struct df_extract_ref): Remove.
1983         (union df_ref_d): Remove extract_ref member.
1984         (df_ref_create): Remove last three arguments.
1985         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1986         * df-scan.c (df_ref_record): Remove last three arguments, do not
1987         pass them to df_ref_create_structure.
1988         (df_uses_record): Remove first and last three arguments.  Replace
1989         first argument with DF_REF_REGULAR, adjust calls to remove the
1990         width, offset and mode.  Always call recursively on the second
1991         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1992         (df_ref_create_structure): Remove first argument.
1993         (struct df_scan_problem_data): Remove ref_extract_pool.
1994         (df_scan_free_internal): Do not free it.
1995         (df_scan_alloc): Do not allocate it.
1996         (df_ref_create): Remove last three arguments, do not pass them to
1997         df_ref_create_structure.
1998         (df_free_ref): Remove DF_REF_EXTRACT case.
1999         (df_notes_rescan): Adjust call to df_uses_record.
2000         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2001         Remove DF_REF_EXTRACT case.
2002         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
2003         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
2004         and SUBREG definitions.
2005         (df_get_conditional_uses): Remove references to width/offset/mode,
2006         adjust call to df_ref_create_structure.
2007         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2008         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
2009         calls to df_uses_record and df_ref_record.
2010         * fwprop.c (update_df): Remove references to width/offset/mode,
2011         adjust call to df_ref_create.
2012
2013 2010-09-03  Jan Hubicka  <jh@suse.cz>
2014
2015         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
2016         (build_cdtor_fns): Update use of build_cdtor.
2017
2018 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
2019
2020         * doc/options.texi (SeparateAlias): Document.
2021         * opt-functions.awk (switch_flags): Handle SeparateAlias.
2022         * opth-gen.awk: Generate enumeration names for options marked
2023         SeparateAlias, but not for those marked Ignore.
2024         * opts-common.c (generate_canonical_option): Don't output separate
2025         argument for options marked CL_SEPARATE_ALIAS.
2026         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
2027         * opts.h (CL_SEPARATE_ALIAS): New.
2028         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2029         CL_COMMON): Adjust definitions.
2030         * config/i386/darwin.opt, config/mips/sde.opt: New.
2031         * common.opt (fdump-final-insns): New.
2032         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2033         i386/darwin.opt.
2034         (mips*-sde-elf*): Add mips/sde.opt.
2035         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
2036         -mno-data-in-code and -mcode-xonly here.
2037         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
2038         * gcc.c (option_map): Add "j" to --dump entry.
2039         (translate_options): Don't translate -d to -foutput-class-dir= here.
2040
2041 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
2042
2043         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
2044         DR_IS_WRITE.
2045         (compute_all_dependences): Same.
2046         (create_rdg_edge_for_ddr): Same.
2047         * tree-data-ref.h (DR_IS_WRITE): New.
2048         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
2049         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
2050         (write_memrefs_written_at_least_once): Same.
2051         * tree-predcom.c (suitable_component_p): Same.
2052         (determine_roots_comp): Same.
2053         (execute_load_motion): Same.
2054         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
2055         (vect_enhance_data_refs_alignment): Same.
2056         (vect_analyze_group_access): Same.
2057
2058 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2059
2060         PR testsuite/42843
2061         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
2062         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2063
2064 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
2065
2066         * dwarf2out.c (file scope): Remove #if0'd code.
2067         (gen_subprogram_die): Same.
2068
2069 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2070
2071         PR middle-end/45484
2072         * dwarf2out.c (flush_queued_reg_saves): Rename to...
2073         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
2074         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
2075         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
2076         * config/i386/i386.c (output_set_got): Call it.
2077
2078 2010-09-03  Michael Matz  <matz@suse.de>
2079
2080         PR middle-end/45415
2081         * tree-sra.c (sra_modify_assign): If we modify the statement,
2082         say so.
2083
2084         * tree-ssa.c (verify_ssa): Check number of operands and links
2085         per statement to agree.
2086
2087 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2088             Iain Sandoe  <iains@gcc.gnu.org>
2089
2090         PR target/45476
2091         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
2092         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
2093         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2094
2095 2010-09-03  Richard Guenther  <rguenther@suse.de>
2096
2097         * lto-streamer-out.c (output_function): Output function
2098         start and end loci.
2099         * lto-streamer-in.c (input_function): Input function start
2100         and end loci.
2101
2102 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2103
2104         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
2105         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
2106         * configure: Regenerate.
2107         * aclocal.m4: Regenerate.
2108
2109 2010-09-03  Jan Hubicka  <jh@suse.cz>
2110
2111         PR lto/44812
2112         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
2113         on functions/variables in other partition.
2114
2115 2010-09-03  Jan Hubicka  <jh@suse.cz>
2116
2117         * cgraph.h (struct varpool_node): Add const_value_known.
2118         (varpool_decide_const_value_known): Declare.
2119         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
2120         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
2121         (input_varpool_node): Restore const_value_known.
2122         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
2123         initializer folding.
2124         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2125         function_and_variable_visibility): Compute const_value_known.
2126         * gimple-fold.c (get_symbol_constant_value): Use varpool for
2127         initializer folding.
2128         * varpool.c (varpool_decide_const_value_known): New function.
2129
2130 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2131
2132         * config/i386/i386.md: Remove empty preparation statements
2133         from splitters.
2134
2135 2010-09-03  Jan Hubicka  <jh@suse.cz>
2136
2137         * passes.c (rest_of_decl_compilation): Do not add local vars into
2138         varpool.
2139         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
2140         static or extern vars are in varpool.
2141         (varpool_finalize_decl): Sanity check that only static vars are
2142         finalized.
2143
2144 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2145
2146         PR debug/45500
2147         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
2148         not just generic vectors with BLKmode.
2149
2150 2010-09-03  Richard Guenther  <rguenther@suse.de>
2151
2152         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
2153         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
2154         * tree.h (TMR_SYMBOL): Remove.
2155         (TMR_BASE, TMR_OFFSET): Adjust.
2156         (TMR_INDEX2): New.
2157         * alias.c (ao_ref_from_mem): Use TMR_BASE.
2158         * builtins.c (get_object_alignment): Merge TMR_BASE and
2159         TMR_SYMBOL handling.
2160         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
2161         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
2162         handling.  Also allow TARGET_MEM_REF as base address.
2163         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
2164         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
2165         base.  Gimplify TMR_INDEX2.
2166         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
2167         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2168         (get_addr_base_and_unit_offset): Likewise.
2169         * tree-eh.c (tree_could_trap_p): Likewise.
2170         * tree-pretty-print.c (dump_generic_node): Likewise.
2171         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
2172         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
2173         base to index2.
2174         (get_address_description): Reconstruct addres description
2175         from merged TMR_BASE and TMR_INDEX2.
2176         (maybe_fold_tmr): Fold propagated addresses.
2177         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
2178         MEM_REF and TARGET_MEM_REF paths.
2179         (indirect_refs_may_alias_p): Likewise.
2180         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
2181         instead of TMR_SYMBOL.
2182         * tree-ssa-operands.c (get_tmr_operands): Simplify.
2183         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
2184         according to changes ...
2185         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
2186         Split TARGET_MEM_REF into two fields plus the base.
2187         * tree.c (mem_ref_offset): Simplify.
2188         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
2189         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2190         Strip NOPs when folding MEM_REF addresses.
2191         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
2192         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
2193         (fold_gimple_assign): ... not here.
2194
2195 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
2196
2197         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
2198         * config/mips/mips.c (mips_shift_truncation_mask): New function.
2199         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2200
2201 2010-09-02  Richard Henderson  <rth@redhat.com>
2202
2203         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
2204         instead of readelf in the test.
2205         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
2206         in the .debug_frame section for coff targets.
2207         * configure: Rebuild.
2208
2209 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2210
2211         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
2212         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
2213         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2214         (m32c_class_likely_spilled_p): Make static. Change argument type to
2215         reg_class_t. Change result type to bool.
2216
2217 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2218
2219         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
2220         to convert (double)(long) into a single FRIZ instruction or not
2221         when -ffast-math is used.
2222
2223         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2224         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2225         or FRIZ instruction if -ffast-math.
2226         * config/rs6000/rs6000.md (friz): Ditto.
2227
2228         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2229
2230 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2231
2232         * opth-gen.awk (quote, comma): Remove unused variables.
2233
2234 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
2235
2236         * arm.c (arm_override_options): Correct fall-back code to use
2237         SUBTARGET_CPU_DEFAULT.
2238
2239 2010-09-02  Julian Brown  <julian@codesourcery.com>
2240
2241         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2242         unspecs.
2243         (vcond<mode>, vcondu<mode>): New expanders.
2244         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2245         comparisons with zero.
2246         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2247         * config/arm/constraints.md (Dz): New constraint.
2248
2249 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2250
2251         * target.def (class_likely_spilled_p): New hook.
2252         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2253         * doc/tm.texi: Regenerate.
2254         * targhooks.c (default_class_likely_spilled_p): New function.
2255         * targhooks.h (default_class_likely_spilled_p): Declare.
2256         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2257         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2258         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2259         Use fixed_reg_set instead of fixed_regs.
2260         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2261         * calls.c (avoid_likely_spilled_reg): Ditto.
2262         * ira-conflicts.c (ira_build_conflicts): Ditto.
2263         * ira.c (update_equiv_regs): Ditto.
2264         * mode-switching.c (create_pre_exit): Ditto.
2265         * regmove.c (find_matches): Ditto.
2266         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2267         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2268         (small_register_class_p): New inline function.
2269         (push_secondary_reload, find_reusable_reload, find_reloads): Use
2270         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2271
2272         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2273         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2274         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2275
2276 2010-09-02  Richard Guenther  <rguenther@suse.de>
2277
2278         PR tree-optimization/44937
2279         PR tree-optimization/45412
2280         * ipa-split.c (split_function): Properly remove PHI nodes.
2281
2282 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2283
2284         * opts.h (struct cl_option): Add warn_message field.
2285         (struct cl_decoded_option): Add warn_message field.
2286         * doc/options.texi (Ignore, Warn): Document.
2287         * opt-functions.awk (needs_state_p): Don't consider aliases or
2288         ignored options to need state saved.
2289         * optc-gen.awk: Handle Warn and Ignore.
2290         * opth-gen.awk: Output OPT_SPECIAL_ignore.
2291         * opts-common.c (decode_cmdline_option): Set warn_message field.
2292         Handle ignored options.
2293         (decode_cmdline_options_to_array, generate_option,
2294         generate_option_input_file): Set warn_message field.
2295         (read_cmdline_option): Generate warnings from warn_message field.
2296         Handle ignored options.
2297         * common.opt (Wunreachable-code, fargument-alias,
2298         fargument-noalias, fargument-noalias-global,
2299         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2300         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2301         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2302         ftree-salias): Mark Ignore.
2303         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2304         -mintel-syntax and -mno-intel-syntax here.
2305         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2306         using Warn.
2307         * opts.c (common_handle_option): Don't handle options marked as
2308         ignored.
2309         (enable_warning_as_error): Handle ignored options.
2310
2311 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2312
2313         PR driver/44076
2314         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2315         alias_target fields.
2316         * opt-functions.awk (opt_sanitized_name): Don't handle
2317         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2318         * optc-gen.awk: Generate alias fields.
2319         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2320         Don't generate such constants for aliases.
2321         * opts-common.c (generate_canonical_option): New.
2322         (decode_cmdline_option): Handle aliases.  Use
2323         generate_canonical_option for known options instead of copying the
2324         input option text.
2325         * doc/options.texi (Alias): Document.
2326         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2327         fstack-check, specs): Mark as aliases.
2328         * gcc.c (driver_handle_option): Canonicalize -L options to joined
2329         arguments.
2330         (driver_handle_option): Don't handle OPT_specs.
2331         * opts.c (common_handle_option): Don't handle options marked as
2332         aliases.
2333         (enable_warning_as_error): Handle aliases.
2334         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2335         OPT_Wlarger_than_eq.
2336         * tree-optimize.c (tree_rest_of_compilation): Use
2337         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2338
2339 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2340
2341         * config/i386/i386.md (nonmemory_operand): New mode attribute.
2342         (push memory peephole2): Macroize peepholes using SWI mode iterator.
2343         (move immediate to memory peephole2): Macroize peepholes using
2344         SWI124 mode iterator.
2345         (non-pairable NOT peephole2): Macroize peepholes using SWI124
2346         mode iterator.
2347         (simple lea add peephole2): Macroize peepholes using SWI48
2348         mode iterator.
2349         (simple lea mult peephole2): Ditto.
2350         (imul by 3,5,9 to lea peephole2): Ditto.
2351         (mov $-1, reg peephole2): Macroize peepholes using SWI248
2352         mode iterator.
2353         (imul $32bit_imm,mem,reg peephole2): Ditto.
2354         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2355
2356 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
2357
2358         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2359
2360 2010-09-02  Olivier Hainque  <hainque@adacore.com>
2361
2362         PR middle-end/44763
2363         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2364         (allocno_priority_compare_func): Use it instead of a straight
2365         difference computation over priorities.
2366
2367 2010-09-02  Andi Kleen  <ak@linux.intel.com>
2368
2369         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2370
2371 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2372
2373         * tree-vectorizer.h (get_later_stmt): New function.
2374         (vect_analyze_data_ref_dependences): Add argument.
2375         * tree-vect-loop.c (vect_analyze_loop): Update call to
2376         vect_analyze_data_ref_dependences.
2377         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2378         New function.
2379         (vect_analyze_data_ref_dependence): Add argument for basic block
2380         dependencies. Check dependencies in basic block vectorization.
2381         (vect_analyze_data_ref_dependences): Add argument and update call to
2382         vect_analyze_data_ref_dependences.
2383         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2384         (vect_bb_vectorizable_with_dependencies): New.
2385         (vect_slp_analyze_bb): Check dependencies in basic block.
2386         (vect_schedule_slp_instance): Insert stores before the last store in
2387         SLP instance.
2388
2389 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2390
2391         PR target/45476
2392         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2393         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2394
2395 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2396
2397         PR middle-end/45458
2398         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2399         bbs ending with throwing insns like blocks ending with a call.
2400         (fix_up_fall_thru_edges): Likewise.
2401
2402 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2403
2404         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2405         (m32c_function_arg_advance): Delete.
2406         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2407         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2408         comments.  Take a const_tree and a bool.  Declare.
2409         (m32c_function_arg_advance): Likewise.
2410         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2411
2412 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2413
2414         PR target/45476
2415         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2416         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2417         * config/i386/mingw32.h: ... here.
2418
2419 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2420
2421         PR lto/45475
2422         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2423         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2424         * lto-streamer-out (lto_output_ts_target_option): Add.
2425         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2426
2427 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2428
2429         PR/target 45452
2430         * config/i386/cygwin.h: Change order of specified import libraries.
2431         * config/i386/mingw32.h: Likewise.
2432         * config/i386/t-cygwin: Likewise.
2433         * config/i386/t-mingw32: Likewise.
2434         * config/i386/t-mingw-w32: Likewise.
2435         * config/i386/t-mingw-w64: Likewise.
2436
2437 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2438
2439         * config/arm/neon-schedgen.ml (core): New type.
2440         (allCores): List of supported cores.
2441         (availability_table): Add supported cores.
2442         (collate_bypasses): Accept core as a parameter.
2443         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2444         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2445         and coreStr to get tune attribute and prefix for functional units.
2446         (emit_bypasses): Accept core name and use it.
2447         (calculate_per_core_availability_table): New.
2448         (filter_core): New.
2449         (calculate_core_availability_table): New.
2450         (main): Use calculate_core_availablity_table.
2451         * config/arm/cortex-a8-neon.md: Update copyright year.
2452         Regenerated from ml file and merged in.
2453         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2454         cortex_a8_neon_mrc.
2455
2456 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2457
2458         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2459
2460 2010-09-01  Richard Guenther  <rguenther@suse.de>
2461
2462         * alias.c (ao_ref_from_mem): Adjust.
2463         * builtins.c (get_object_alignment): Likewise.
2464         * cfgexpand.c (expand_debug_expr): Likewise.
2465         * gimple.c (get_base_address): Likewise.
2466         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2467         (get_addr_base_and_unit_offset): Likewise.  Fix for
2468         both TMR_SYMBOL and TMR_BASE being set.
2469         * tree-eh.c (tree_could_trap_p): Likewise.
2470         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2471         TMR_SYMBOL.  Always gimplify TMR_BASE.
2472         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2473         TMR_BASE if there is a TMR_SYMBOL.
2474         * tree-pretty-print.c (dump_generic_node): Adjust.
2475         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2476         (tree_mem_ref_addr): Likewise.
2477         (create_mem_ref_raw): Likewise.
2478         (move_fixed_address_to_symbol): Likewise.
2479         (create_mem_ref): Likewise.
2480         (dump_mem_address): Likewise.
2481         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2482         Fix for both TMR_SYMBOL and TMR_BASE being set.
2483         (indirect_refs_may_alias_p): Likewise.
2484         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2485         * tree.def (TARGET_MEM_REF): Adjust documentation.
2486
2487 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2488
2489         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2490         Rename from X86_TUNE_ADD_ESP_4.
2491         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2492         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2493         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2494         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2495         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2496         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2497         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2498         * config/i386/i386.c (initial_ix86_tune_features)
2499         <X86_TUNE_SINGLE_POP>: Invert members.
2500         <X86_TUNE_DOUBLE_POP>: Ditto.
2501         <X86_TUNE_SINGLE_PUSH>: Ditto.
2502         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2503         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2504         No longer exported.
2505         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2506         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2507         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2508         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2509
2510 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2511
2512         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2513         a volatile LHS if the constructor has only one element.
2514
2515 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2516
2517         PR bootstrap/45321
2518         * tree.c (stdarg_p): Make fntype parameter const.
2519         * tree.h (stdarg_p): Likewise.
2520         (function_args_iterator): Remove unused fntype field.
2521         (function_args_iter_init): Do not initialize fntype
2522         field.  Make fntype parameter const.
2523
2524 2010-09-01  Richard Guenther  <rguenther@suse.de>
2525
2526         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2527         estimate.
2528         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2529         (execute_vrp): Compute number of iteration estimates.
2530         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2531         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2532         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2533         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2534         Infer loop bounds from undefined behavior based on a new parameter.
2535         (estimate_numbers_of_iterations): Likewise.
2536         (scev_probably_wraps_p): Adjust.
2537         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2538
2539 2010-09-01  Nick Clifton  <nickc@redhat.com>
2540
2541         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2542         where appropriate.
2543         (xstormy16_legitimate_address_p): Use true and false instead of 1
2544         and 0.
2545         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2546         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2547         magic constant 2.
2548         (xstormy16_expand_call): Fix comment at start of function.
2549
2550 2010-09-01  Nick Clifton  <nickc@redhat.com>
2551
2552         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2553         when pushing accumulator register.
2554         (rx_get_stack_layout): Always save call clobbered registers inside
2555         interrupt handlers.
2556         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2557
2558 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2559
2560         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2561         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2562
2563         * libgcc-std.ver (GCC_4.6.0): Define version.
2564
2565 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2566
2567         * tree-nested.c (convert_all_function_calls): Iterate until after the
2568         sum of static chains in the nest doesn't change.
2569
2570 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2571
2572         * config/m32c/m32c.c (classes_intersect): Remove.
2573         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2574         reg_classes_intersect_p instead of classes_intersect.
2575         (class_can_hold_mode): Change arguments type from enum reg_class to
2576         reg_class_t.  Use reg_class_contents instead of class_contents.
2577         (m32c_register_move_cost): Make static. Change arguments type from
2578         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2579         classes_intersect. Use reg_class_contents instead of class_contents.
2580         (m32c_memory_move_cost): Make static. Change arguments type from
2581         enum reg_class to reg_class_t.
2582         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2583         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2584         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2585         m32c_memory_move_cost): Remove.
2586
2587 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2588
2589         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2590         (arm_function_arg): Delete.
2591         (arm_needs_doubleword_align): Take a const_tree.
2592         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2593         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2594         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2595         (arm_function_arg): Make static.  Take a const_tree and a bool.
2596         (arm_function_arg_advance): Likewise.
2597         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2598
2599 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2600
2601         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2602         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2603         * lto-wrapper.c (run_gcc): Add jobserver mode.
2604         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2605         argument.
2606
2607 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2608
2609         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2610         (popsi1): Ditto.
2611         (*popdi1_epilogue): Ditto.
2612         (*popsi1_epilogue): Ditto.
2613         (popsi, popdi peephole2 patterns): Update peepholes for changed
2614         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2615
2616         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2617         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2618
2619         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2620         (override_options): Do not initialize removed ix86_gen_pop1.
2621         (gen_pop): New static function.
2622         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2623         (release_scratch_register_on_entry): Ditto.
2624         (ix86_restore_reg_using_pop): Ditto.
2625         (ix86_expand_epilogue): Ditto.
2626
2627 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2628
2629         PR middle-end/45461
2630         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2631
2632 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2633
2634         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2635         semicolons.
2636
2637 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2638
2639         * doc/extend.texi: Fix documentation of the return value of
2640         __builtin_choose_expr.
2641
2642 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2643
2644         * config/v850/v850-protos.h (function_arg): Delete.
2645         * config/v850/v850.h (FUNCTION_ARG): Delete.
2646         (FUNCTION_ARG_ADVANCE): Move code to...
2647         * config/v850/v850.c (v850_function_arg_advance): ...here.
2648         (v850_function_arg): Make static.  Take a const_tree and a bool.
2649         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2650
2651 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2652
2653         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2654         these...
2655         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2656         ...and these...
2657         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2658         ..to here..
2659         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2660         ...and here.
2661         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2662
2663 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2664
2665         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2666         Delete.
2667         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2668         * config/rx/rx.c (rx_function_arg_size): Make static.
2669         (rx_function_arg): Likewise.
2670         (rx_function_arg_advance): New function.
2671         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2672
2673 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2674
2675         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2676         Fix indentation.
2677
2678 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2679
2680         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2681         (dwarf2out_decl) <CONST_DECL>: Likewise.
2682
2683 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2684
2685         Stack usage support
2686         * common.opt (-fstack-usage): New option.
2687         * doc/invoke.texi (Debugging options): Document it.
2688         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2689         allocate_dynamic_stack_space.
2690         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2691         and propagate it to allocate_dynamic_stack_space.
2692         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2693         * calls.c (initialize_argument_information): Pass TRUE as 4th
2694         argument to allocate_dynamic_stack_space.
2695         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2696         to 1 when pushing a variable-sized argument onto the stack.  Pass
2697         TRUE as 4th argument to allocate_dynamic_stack_space.
2698         Update current_function_pushed_stack_size.
2699         (emit_library_call_value_1): Likewise.
2700         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2701         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2702         attempt to find an upper bound.  Remove redundant code for the
2703         SETJMP_VIA_SAVE_AREA case.
2704         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2705         * function.h (struct stack_usage): New structure.
2706         (current_function_static_stack_size): New macro.
2707         (current_function_dynamic_stack_size): Likewise.
2708         (current_function_pushed_stack_size): Likewise.
2709         (current_function_dynamic_alloc_count): Likewise.
2710         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2711         (current_function_allocates_dynamic_stack_space): Likewise.
2712         (struct function): Add new field 'su'.
2713         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2714         add the value of the dynamic offset to the dynamic stack usage.
2715         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2716         for variable-sized objects.
2717         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2718         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2719         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2720         BUILT_IN_ALLOCA for variable-sized objects.
2721         * output.h (output_stack_usage): Declare.
2722         * toplev.c (stack_usage_file): New file pointer.
2723         (output_stack_usage): New function.
2724         (open_auxiliary_file): Likewise.
2725         (lang_dependent_init): Open file if flag_stack_usage is set.
2726         (finalize): Close file if stack_usage_file is not null.
2727         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2728         * config/alpha/alpha.c (compute_frame_size): New function.
2729         (alpha_expand_prologue): Use it.
2730         (alpha_start_function): Likewise.
2731         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2732         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2733         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2734         * config/mips/mips.c (mips_expand_prologue): Likewise.
2735         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2736         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2737         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2738
2739 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2740
2741         PR tree-optimization/45427
2742         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2743         Handle the case that the exit is never taken correctly.
2744         (number_of_iterations_ne): Pass exit_must_be_taken to
2745         number_of_iterations_ne_max.
2746
2747 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2748
2749         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2750         Infer -mdspr2 for the the 74K.
2751
2752 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2753
2754         PR debug/45419
2755         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2756
2757         PR middle-end/45423
2758         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2759         and TRUTH_{AND,OR,XOR}_EXPR.
2760         * c-parser.c (c_parser_omp_atomic): Handle boolean
2761         {PRE,POST}_{INC,DEC}REMENT.
2762
2763 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2764
2765         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2766         (function_arg): Delete.
2767         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2768         (FUNCTION_INCOMING_ARG): Delete.
2769         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2770         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2771         and a bool.
2772         (function_arg): Rename to...
2773         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2774         a bool.
2775         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2776         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2777         (TARGET_FUNCTION_INCOMING_ARG): Define.
2778
2779 2010-08-30  Richard Guenther  <rguenther@suse.de>
2780
2781         PR tree-optimization/21602
2782         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2783         using points-to information.
2784
2785 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
2786
2787         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2788
2789 2010-08-30  Richard Guenther  <rguenther@suse.de>
2790
2791         PR tree-optimization/45449
2792         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2793         variables.
2794
2795 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
2796
2797         * opts.h (CL_ERR_NEGATIVE): Define.
2798         * opts.c (unknown_option_callback): Don't postpone warnings for
2799         options marked with CL_ERR_NEGATIVE.
2800         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2801         for negative versions of CL_REJECT_NEGATIVE options.
2802
2803 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2804
2805         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2806         zero_extendsidi2_32.
2807         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2808         using SWI12 mode iterator.
2809         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2810         to define_insn_and_split pattern.
2811         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2812         using SWI24 mode iterator.
2813         (*zero_extendqi<mode>2_and): Macroize insn from
2814         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2815         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2816         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2817         SWI24 mode iterator.
2818         (*zero_extendqi<mode>2_movzbl): Ditto from
2819         *zero_extendqi{hi,si}2_movzbl.
2820         (extendsidi2_1): Rename from extendsidi2_32.
2821         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2822         SWI12 mode iterator.
2823
2824 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2825
2826         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2827         general purpose registers.
2828         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2829         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2830         with general purpose registers and memory operands.  Add associated
2831         CCImode post-reload splitter.
2832         * config/ia64/div.md: Change BImode to CCImode throughout.
2833
2834 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2835
2836         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2837
2838 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2839
2840         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2841         function was dropping debug insns which caused PR45299.
2842
2843 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2844
2845         * config/i386/sse.md (extsuffix): New code attribute.
2846         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2847         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2848         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2849         and sse4_1_zero_extendv4qiv4si2.
2850         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2851         and sse4_1_zero_extendv2qiv2di2.
2852         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2853         and sse4_1_zero_extendv4hiv4si2.
2854         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2855         and sse4_1_zero_extendv2hiv2di2.
2856         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2857         and sse4_1_zero_extendv2siv2di2
2858
2859         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2860         using any_extend code iterator.
2861         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2862         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2863         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2864
2865         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2866         gen_sse4_1_sign_extend* functions.
2867         (struct builtin_description bdesc_args): Ditto.
2868
2869 2010-08-27  Xinliang David Li  <davidxl@google.com>
2870
2871         PR/45422
2872         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2873         (iv_ca_set_no_cp): Update used inv expr count.
2874         (iv_ca_set_cp): Ditto.
2875         (iv_ca_new): Initialize new member.
2876         (iv_ca_free): Free memory.
2877
2878 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2879
2880         * config/sh/sh-protos.h (sh_function_arg): Delete.
2881         (sh_function_arg_advance): Delete.
2882         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2883         (PASS_IN_REG_P): Eliminate cast.
2884         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2885         const_tree and a bool.
2886         (sh_function_arg): Likewise.
2887         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2888         sh_function_arg.
2889         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2890
2891 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2892             Kaz Kojima  <kkojima@gcc.gnu.org>
2893
2894         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2895         when possible.
2896         (sh_expand_epilogue): Likewise.
2897         * config/sh/sh.md (movml_push_banked): New insn.
2898         (movml_pop_banked): Likewise.
2899
2900 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2901
2902         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2903         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2904         in vector element 0 rather than the original string when there's
2905         only one element.
2906         (gen_regexp): Remove extra semicolon.
2907
2908         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2909         thumb2_movsf_vfp): Set attribute "insn".
2910         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2911         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2912         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2913         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2914         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2915         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2916         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2917         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2918         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2919         if_not_arith, if_arith_not, cond_move_not): Likewise.
2920
2921 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2922
2923         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2924         New declaration.
2925         (rs6000_allocate_stack_temp): Ditto.
2926         (rs6000_expand_convert_si_to_sfdf): Ditto.
2927
2928         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2929         line.  Update the options set if power6 or power7 server/embedded
2930         type options are used.  If we give a warning for no vsx under
2931         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2932         (rs6000_allocate_stack_temp): New function to allocate a stack
2933         tempoary and adjust the address so it meets either REG+OFFSET or
2934         REG+REG addressing requirements.
2935         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2936         that they can be used with the LFIWAX/LFIWZX instrucitons.
2937         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2938         converting signed/unsigned SImode to either SFmode/DFmode.
2939
2940         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2941         whether certain instructions can be generated.
2942         (TARGET_FCTIDZ): Ditto.
2943         (TARGET_STFIWX): Ditto.
2944         (TARGET_LFIWAX): Ditto.
2945         (TARGET_LFIWZX): Ditto.
2946         (TARGET_FCFIDS): Ditto.
2947         (TARGET_FCFIDU): Ditto.
2948         (TARGET_FCFIDUS): Ditto.
2949         (TARGET_FCTIDUZ): Ditto.
2950         (TARGET_FCTIWUZ): Ditto.
2951
2952         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2953         (UNSPEC_FCTID): Ditto.
2954         (UNSPEC_LFIWAX): Ditto.
2955         (UNSPEC_LFIWZX): Ditto.
2956         (UNSPEC_FCTIWUZ): Ditto.
2957         (rreg): Use correct constraints.
2958         (SI_CONVERT_FP): New mode attribute for floating point conversion
2959         tests.
2960         (E500_CONVERT): Ditto.
2961         (lfiwax): New insns for converting from integer to floating point
2962         utilizing newer instructions.  Attempt to optimize conversions
2963         that come from memory so that we don't load the value into a GPR,
2964         spill it to the stack and reload it into a FPR.
2965         (floatsi<mode>2_lfiwax): Ditto.
2966         (floatsi<mode>2_lfiwax_mem): Ditto.
2967         (floatsi<mode>2_lfiwax_mem2): Ditto.
2968         (lfiwzx): Ditto.
2969         (floatunssi<mode>2_lfiwzx): Ditto.
2970         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2971         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2972         (floatdidf2_mem): Ditto.
2973         (floatunsdidf2_fcfidu): Ditto.
2974         (floatunsdidf2_mem): Ditto.
2975         (floatunsdisf2): Ditto.
2976         (floatunsdisf2_fcfidus): Ditto.
2977         (floatunsdisf2_mem): Ditto.
2978         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2979         Use FCFID on 32-bit hosts that support it.
2980         (floatsidf2_internal): Ditto.
2981         (floatunssisf2): Ditto.
2982         (floatunssidf2): Ditto.
2983         (floatunssidf2_internal): Ditto.
2984         (floatsisf2): Ditto.
2985         (floatdidf2): Ditto.
2986         (floatdidf2_fpr): Ditto.
2987         (floatunsdidf2): Ditto.
2988         (floatdisf2): Ditto.
2989         (floatdisf2_fcfids): Ditto.
2990         (floatdisf2_internal1): Ditto.
2991         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2992         SF/DF.  Add power7 support.
2993         (fix_truncsfsi2): Ditto.
2994         (fixuns_truncdfsi2): Ditto.
2995         (fixuns_truncdfdi2): Ditto.
2996         (fix_truncdfsi2): Ditto.
2997         (fix_truncdfsi2_internal): Ditto.
2998         (fix_truncdfsi2_internal_gfxopt): Ditto.
2999         (fix_truncdfsi2_mfpgpr): Ditto.
3000         (fctiwz): Ditto.
3001         (btruncdf2): Ditto.
3002         (btruncdf2_fpr): Ditto.
3003         (btructsf2): Ditto.
3004         (ceildf2): Ditto.
3005         (ceildf2_fpr): Ditto.
3006         (ceilsf2): Ditto.
3007         (floordf2): Ditto.
3008         (floordf2_fpr): Ditto.
3009         (floorsf2): Ditto.
3010         (rounddf2): Ditto.
3011         (rounddf2_fpr): Ditto.
3012         (roundsf2): Ditto.
3013         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
3014         (fix_trunc<mode>di2): Ditto.
3015         (fixuns_trunc<mode>si2): Ditto.
3016         (fixuns_trunc<mode>di2): Ditto.
3017         (fctiwz_<mode>): Ditto.
3018         (btrunc<mode>2): Ditto.
3019         (btrunc<mode>2_fpr): Ditto.
3020         (ceil<mode>2): Ditto.
3021         (ceil<mode>2_fpr): Ditto.
3022         (floor<mode>2): Ditto.
3023         (float<mode>2_fpr): Ditto.
3024         (round<mode>2): Ditto.
3025         (round<mode>2_fpr): Ditto.
3026         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
3027         (fixuns_trunc<mode>si2_stfiwx): Ditto.
3028         (fix_truncdfsi2_internal): Ditto.
3029         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
3030         converted value on stack, loaded into GPR, and then stored into
3031         the final destination.
3032         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
3033         FCTIDZ.
3034         (lrint<mode>di2): New insn, provide the lrint builtin functions.
3035         (ftruncdf2): Delete, unused.
3036         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
3037
3038         * config/rs6000/vsx.md (toplevel): Update copyright year.
3039         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
3040         (VSr3): Ditto.
3041
3042 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
3043             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3044
3045         * gengtype.c (output_type_enum): Test the right union member.
3046
3047 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
3048
3049         PR target/41484
3050         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
3051         operands for operand 1.
3052         (sse4_1_extendv4qiv4si2): Ditto.
3053         (sse4_1_extendv2qiv2di2): Ditto.
3054         (sse4_1_extendv4hiv4si2): Ditto.
3055         (sse4_1_extendv2hiv2di2): Ditto.
3056         (sse4_1_extendv2siv2di2): Ditto.
3057         (sse4_1_zero_extendv8qiv8hi2): Ditto.
3058         (sse4_1_zero_extendv4qiv4si2): Ditto.
3059         (sse4_1_zero_extendv2qiv2di2): Ditto.
3060         (sse4_1_zero_extendv4hiv4si2): Ditto.
3061         (sse4_1_zero_extendv2hiv2di2): Ditto.
3062         (sse4_1_zero_extendv2siv2di2): Ditto.
3063         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
3064         (*sse4_1_extendv4qiv4si2): Ditto.
3065         (*sse4_1_extendv2qiv2di2): Ditto.
3066         (*sse4_1_extendv4hiv4si2): Ditto.
3067         (*sse4_1_extendv2hiv2di2): Ditto.
3068         (*sse4_1_extendv2siv2di2): Ditto.
3069         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
3070         (*sse4_1_zero_extendv4qiv4si2): Ditto.
3071         (*sse4_1_zero_extendv2qiv2di2): Ditto.
3072         (*sse4_1_zero_extendv4hiv4si2): Ditto.
3073         (*sse4_1_zero_extendv2hiv2di2): Ditto.
3074         (*sse4_1_zero_extendv2siv2di2): Ditto.
3075
3076 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3077
3078         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
3079         (mips_function_arg): Delete.
3080         (mips_function_arg_boundary): Take a const_tree.
3081         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
3082         (mips_arg_info): Likewise.
3083         (mips_setup_incoming_varargs): Call mips_function_arg_advance
3084         instead of FUNCTION_ARG_ADVANCE.
3085         (mips_function_arg_advance): Adjust prototype.  Make static.
3086         (mips_function_arg): Likewise.
3087         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3088         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3089
3090 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3091
3092         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3093         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
3094         (function_arg): Delete.
3095         (function_arg_boundary): Take a const_tree.
3096         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
3097         (rs6000_spe_function_arg): Likewise.
3098         (rs6000_parm_start): Likewise.
3099         (rs6000_arg_size): Likewise.
3100         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
3101         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
3102         (rs6000_mixed_function_arg): Likewise.
3103         (function_arg): Rename to...
3104         (rs6000_function_arg): ...this.
3105         (function_arg_advance): Rename to...
3106         (rs6000_function_arg_advance_1): ...this
3107         (rs6000_function_arg_advance): New function.  Call it.
3108         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
3109         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
3110         (rs6000_function_value): Likewise.
3111         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3112
3113 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3114
3115         * config/arm/arm.md (enabled): Test the value of arch_enabled
3116         rather than just using it.
3117
3118 2010-08-27  Olivier Hainque  <hainque@adacore.com>
3119             Eric Botcazou  <ebotcazou@adacore.com>
3120
3121         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
3122         cover all the possible offsets from this base.
3123         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
3124
3125 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
3126
3127         PR tree-optimization/44485
3128         * calls.c (flags_from_decl_or_type): For const or pure
3129         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
3130         together with ECF_CONST resp. ECF_PURE.
3131         * builtins.c (expand_builtin): Use flags_from_decl_or_type
3132         instead of querying flags directly.
3133         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
3134         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3135
3136 2010-08-26  Richard Guenther  <rguenther@suse.de>
3137
3138         PR tree-optimization/45255
3139         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
3140         and externals are also invariant.
3141
3142 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR rtl-optimization/44858
3145         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
3146         newi2pat, make sure they don't affect newpat.
3147
3148         PR rtl-optimization/45400
3149         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
3150         SUBREG_REG if both modes are of MODE_INT class.
3151
3152 2010-08-25  Julian Brown  <julian@codesourcery.com>
3153
3154         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
3155         * config/arm/arm.md (generic_sched): No for Cortex-A5.
3156         (generic_vfp): Likewise.
3157         (cortex-a5.md): Include.
3158         * config/arm/cortex-a5.md: New.
3159
3160 2010-08-25  Richard Guenther  <rguenther@suse.de>
3161
3162         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
3163         * gimple.c (gimple_get_alias_set): Remove special handling
3164         for pointers.
3165
3166 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3167
3168         PR middle-end/45355
3169         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
3170         dead_or_set_p when computing i0_feeds_i2_n.
3171
3172         * combine.c (find_split_point): Undo canonicalization of multiply-add
3173         to (minus x (mult)) when it seems likely that this will increase the
3174         chances of a split.
3175
3176 2010-08-25  Richard Guenther  <rguenther@suse.de>
3177
3178         PR lto/44562
3179         * lto-streamer.c (lto_record_common_node): Do not mess with
3180         TYPE_CANONICAL when not in lto.
3181         * gimple.c (gimple_register_type): Likewise.
3182
3183 2010-08-25  Richard Guenther  <rguenther@suse.de>
3184
3185         PR tree-optimization/45316
3186         * tree-ssa-pre.c (eliminate): Properly clean EH info.
3187
3188 2010-08-25  Richard Guenther  <rguenther@suse.de>
3189
3190         PR tree-optimization/45393
3191         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
3192         and clean EH info.  Avoid SSA update.
3193         (execute_cse_sincos): Cleanup the CFG if it has changed.
3194
3195 2010-08-25  Richard Guenther  <rguenther@suse.de>
3196
3197         PR middle-end/45379
3198         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
3199         TARGET_MEM_REF in alignment computation.
3200
3201 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3202
3203         PR tree-optimization/45059
3204         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
3205         type conversions from newop{1,2}.  Assert t is a comparison and
3206         newop{1,2} after the stripping are gimple vals.
3207
3208 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
3209
3210         * config/arm/iterators.md (VU, SE, V_widen_l): New.
3211         (V_unpack, US): New.
3212         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
3213         (vec_unpack<US>_lo_<mode>): Likewise.
3214         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
3215         (neon_vec_unpack<US>_lo_<mode>): Likewise.
3216         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
3217         (vec_widen_<US>mult_hi_<mode>): Likewise.
3218         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
3219         (neon_vec_<US>mult_hi_<mode>"): Likewise.
3220         (neon_unpack<US>_<mode>): Widening move intermediate step for
3221         vectorizing without -mvectorize-with-neon-quad.
3222         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
3223         for vectorizing without -mvectorize-with-neon-quad.
3224         * config/arm/predicates.md (vect_par_constant_high): Check for
3225         high-half lanes of a vector.
3226         (vect_par_constant_low): Check for low-half lanes of a vector.
3227
3228 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3229
3230         * tree-if-conv.c (struct ifc_dr): New.
3231         (IFC_DR): New.
3232         (DR_WRITTEN_AT_LEAST_ONCE): New.
3233         (DR_RW_UNCONDITIONALLY): New.
3234         (memref_read_or_written_unconditionally): Use the cached values
3235         when possible.
3236         (write_memref_written_at_least_once): Same.
3237         (if_convertible_loop_p): Initialize and free DR->aux fields.
3238
3239 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3240
3241         * gimple.c (gimple_could_trap_p_1): Not static anymore.
3242         Pass an extra bool parameter include_mem.
3243         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3244         (gimple_assign_rhs_could_trap_p): Same.
3245         * gimple.h (gimple_could_trap_p_1): Declared.
3246         * tree-data-ref.h (same_data_refs_base_objects): New.
3247         (same_data_refs): New.
3248         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3249         (write_memrefs_written_at_least_once): New.
3250         (ifcvt_memrefs_wont_trap): New.
3251         (operations_could_trap): New.
3252         (ifcvt_could_trap_p): New.
3253         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3254         Gets a vector of data refs.
3255         (if_convertible_stmt_p): Same.
3256         (if_convertible_loop_p_1): New.
3257         (if_convertible_loop_p): Call if_convertible_loop_p_1.
3258
3259 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3260
3261         * common.opt (ftree-loop-if-convert-stores): New flag.
3262         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3263         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
3264         the created statement before GSI.
3265         (if_convertible_phi_p): Allow virtual phi nodes when
3266         flag_loop_if_convert_stores is set.
3267         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3268         Do not handle types that do not match is_gimple_reg_type.
3269         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
3270         when flag_loop_if_convert_stores is set, as LHS can contain
3271         memory refs.
3272         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
3273         to if_convertible_gimple_assign_stmt_p.
3274         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3275         (replace_phi_with_cond_gimple_assign_stmt): Renamed
3276         predicate_scalar_phi.  Do not handle virtual phi nodes.
3277         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3278         Call predicate_scalar_phi.
3279         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3280         just after the labels for flag_loop_if_convert_stores, otherwise
3281         insert the predicate in the end of the BB.
3282         (predicate_mem_writes): New.
3283         (combine_blocks): Call predicate_all_scalar_phis.  When
3284         flag_loop_if_convert_stores is set, call predicate_mem_writes.
3285         (tree_if_conversion): Call mark_sym_for_renaming when
3286         flag_loop_if_convert_stores is set.
3287         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3288         flag_loop_if_convert_stores is set.
3289
3290 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
3291
3292         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3293         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3294         (pa_function_value): Make static.
3295         (override_options): Rename to...
3296         (pa_option_override): ...this. Make static.
3297         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3298         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3299         TARGET_OPTION_OVERRIDE): Define.
3300         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3301         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3302         Remove.
3303         * config/pa/pa-protos.h (override_options): Remove.
3304
3305 2010-08-24  Richard Guenther  <rguenther@suse.de>
3306
3307         PR middle-end/45379
3308         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3309         if addr->index is NULL or zero.
3310         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3311         TARGET_MEM_REF more properly.
3312         (indirect_ref_may_alias_decl_p): Likewise.
3313         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3314         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3315
3316 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
3317
3318         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3319         (m32c_override_options): Rename to...
3320         (m32c_option_override): ...this. Make static.
3321         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3322         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3323         Remove.
3324         * config/m32c/m32c-protos.h (m32c_override_options,
3325         m32c_function_value_regno_p): Remove.
3326
3327 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3328
3329         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3330         Fix a typo in a previous commit.
3331
3332 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
3333
3334         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3335         Pre-initialize innerloop_iters to one.
3336
3337 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3338
3339         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3340         existing static function global.
3341
3342         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3343         is changed to global.
3344
3345         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3346         may_be_nonaddressable_p on base, and don't collect this reference
3347         if the address of the base could not be taken.
3348
3349 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3350
3351         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3352         enable the compiler to autovectorize mathmetical functions for
3353         power7 using the Mathematical Acceleration Subsystem library.
3354
3355         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3356         handle which vector math library we have.
3357         (rs6000_override_options): Add -mveclibabi=mass support.
3358         (rs6000_builtin_vectorized_libmass): New function to handle auto
3359         vectorizing math functions that are in the MASS library.
3360         (rs6000_builtin_vectorized_function): Call it.
3361
3362         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3363         -mveclibabi=mass.
3364
3365 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3366
3367         PR boehm-gc/34544
3368         * gthr-posix.h (__gthread_active_init): Delete.
3369         (__gthread_active_p): Do activity check here.
3370         Don't include errno.h on hppa-hpux.  Update comment.
3371         * gthr-posix95.h (__gthread_active_init): Delete.
3372         (__gthread_active_p): Do activity check here.
3373         Don't include errno.h on hppa-hpux.  Update comment.
3374         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3375         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3376         add -lpthread when -mt or -pthread is specified.
3377         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3378         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3379         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3380         (stublib.c, pthread_default_stacksize_np-stub.o,
3381         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3382         $(T)libgcc_stub.a): Add methods.
3383         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3384         (stublib.c, pthread_default_stacksize_np-stub.o,
3385         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3386         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3387         pthread_mutex_unlock): New stubs.
3388
3389 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3390
3391         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3392         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3393         options.
3394         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3395         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3396         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3397         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3398         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3399         "-l".
3400         * cppspec.c: Include opts.h.
3401         (lang_specific_driver): Use cl_decoded_option structures.
3402         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3403         * doc/tm.texi: Regenerate.
3404         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3405         (driver_handle_option): Allow driver options needing no special
3406         processing.
3407         (process_command): Decode options before call to
3408         lang_specific_driver.  Pass decoded options to
3409         lang_specific_driver.
3410         * gcc.h (lang_specific_driver): Update prototype.
3411         * gccspec.c: Include opts.h.
3412         (lang_specific_driver): Use cl_decoded_option structures.
3413         * opts-common.c (option_ok_for_language, generate_option,
3414         generate_option_input_file): New.
3415         (decode_cmdline_option): Use option_ok_for_language.
3416         (decode_cmdline_options_to_array): Use generate_option_input_file.
3417         (handle_generated_option): Use generate_option.
3418         * opts.h (generate_option, generate_option_input_file): Declare.
3419
3420 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3421
3422         * config/mips/mips.c (mips_override_options): Rename to...
3423         (mips_option_override): ...this. Make static.
3424         (TARGET_OPTION_OVERRIDE): Define.
3425         (mips_in_small_data_p): Update comment.
3426         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3427         (FIXED_REGISTERS): Update comment.
3428         * config/mips/mips-protos.h (mips_override_options): Remove.
3429
3430 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3431
3432         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3433
3434 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3435
3436         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3437         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3438
3439 2010-08-20  Jan Hubicka  <jh@suse.cz>
3440
3441         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3442         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3443         heap allocated.
3444         (record_cdtor_fn): Move to ipa.c; do not test for
3445         have_ctors_dtors.
3446         (build_cdtor): Move to ipa.c; add code avoiding construction
3447         when target have ctors/dtors and there is only one ctor/dtor at given
3448         priority.
3449         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3450         sort; reverse order of constructors.
3451         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3452         (cgraph_finalize_function): Do not call record_cdtor_fn.
3453         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3454         (cgraph_build_static_cdtor): Move to ipa.c.
3455         * ipa.c: Include target.h and tree-iterator.h.
3456         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3457         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3458         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3459         pass_ipa_cdtor_merge): New.
3460         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3461         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3462         bounds access.
3463
3464 2010-08-20  Jan Hubicka  <jh@suse.cz>
3465
3466         PR c++/45307
3467         PR c++/17736
3468         * cgraph.h (cgraph_only_called_directly_p,
3469         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3470         static cdtors.
3471         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3472         are not needed.
3473         (cgraph_finalize_function): Static cdtors are reachable.
3474         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3475
3476 2010-08-20  Jan Hubicka  <jh@suse.cz>
3477
3478         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3479         flag_wpa.
3480         * lto-streamer-out.c (lto_output): Likewise.
3481         * passes.c (ipa_write_optimization_summaries): Initialize statement
3482         uids.
3483
3484 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3485
3486         * tree.h (alias_diag_flags): New enum.
3487         (alias_pair): Add an 'emitted_diags' field.
3488         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3489         (assemble_alias): Initialize emitted_diags of new pairs.
3490
3491 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3492
3493         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3494         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3495         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3496         (STACK_CHECK_PROTECT): Define.
3497         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3498         (output_probe_stack_range): Likewise.
3499         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3500         builtin stack checking is enabled.
3501         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3502         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3503         (probe_stack_range): New insn.
3504
3505 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3506
3507         PR target/45336
3508         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3509         short first.
3510
3511         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3512         char first.
3513
3514 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3515
3516         PR target/45336
3517         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3518         to cover zero extension into 64-bit register.
3519         (*sse2_pextrw): Likewise.
3520         (*sse4_1_pextrd_zext): New insn.
3521
3522 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3523
3524         revert r163410, partially revert r163267.
3525         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3526         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3527         Darwin versions.
3528
3529 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3530
3531         PR middle-end/44974
3532         * builtins.c (expand_builtin): Don't optimize away
3533         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3534
3535 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3536
3537         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3538         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3539         alternative 1 of operand 2.
3540
3541 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3542             Paolo Bonzini  <bonzini@gnu.org>
3543
3544         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3545         (sign_extend (zero_extend (...)) and
3546         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3547
3548 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3549
3550         PR rtl-optimization/45353
3551         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3552         after bb_note is a BARRIER.
3553
3554 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3555
3556         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3557         linking libgcc.a.
3558
3559 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3560             Michael Matz  <matz@suse.de>
3561
3562         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3563
3564 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3565
3566         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3567         (ggc_mark_roots): ...here.
3568
3569 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3570
3571         * vec.h (FOR_EACH_VEC_ELT): Define.
3572         * c-decl.c: Use it.
3573         * cfgloop.c: Likewise.
3574         * cfgloopmanip.c: Likewise.
3575         * cgraph.c: Likewise.
3576         * cgraphunit.c: Likewise.
3577         * combine.c: Likewise.
3578         * config/bfin/bfin.c: Likewise.
3579         * config/mips/mips.c: Likewise.
3580         * config/rs6000/rs6000.c: Likewise.
3581         * dbxout.c: Likewise.
3582         * df-scan.c: Likewise.
3583         * dominance.c: Likewise.
3584         * dse.c: Likewise.
3585         * dwarf2out.c: Likewise.
3586         * except.c: Likewise.
3587         * expr.c: Likewise.
3588         * function.c: Likewise.
3589         * gcse.c: Likewise.
3590         * genattr.c: Likewise.
3591         * ggc-common.c: Likewise.
3592         * gimplify.c: Likewise.
3593         * graphite-blocking.c: Likewise.
3594         * graphite-clast-to-gimple.c: Likewise.
3595         * graphite-dependences.c: Likewise.
3596         * graphite-interchange.c: Likewise.
3597         * graphite-poly.c: Likewise.
3598         * graphite-scop-detection.c: Likewise.
3599         * graphite-sese-to-poly.c: Likewise.
3600         * graphite.c: Likewise.
3601         * haifa-sched.c: Likewise.
3602         * ifcvt.c: Likewise.
3603         * implicit-zee.c: Likewise.
3604         * ipa-prop.c: Likewise.
3605         * ipa-struct-reorg.c: Likewise.
3606         * ipa.c: Likewise.
3607         * ira-build.c: Likewise.
3608         * ira-color.c: Likewise.
3609         * ira-emit.c: Likewise.
3610         * lambda-code.c: Likewise.
3611         * loop-invariant.c: Likewise.
3612         * loop-unroll.c: Likewise.
3613         * lower-subreg.c: Likewise.
3614         * lto-cgraph.c: Likewise.
3615         * lto-opts.c: Likewise.
3616         * lto-streamer-in.c: Likewise.
3617         * lto-streamer-out.c: Likewise.
3618         * lto-streamer.c: Likewise.
3619         * lto-symtab.c: Likewise.
3620         * matrix-reorg.c: Likewise.
3621         * opts.c: Likewise.
3622         * predict.c: Likewise.
3623         * print-tree.c: Likewise.
3624         * sdbout.c: Likewise.
3625         * sel-sched-dump.c: Likewise.
3626         * sel-sched-ir.c: Likewise.
3627         * sel-sched.c: Likewise.
3628         * sese.c: Likewise.
3629         * stor-layout.c: Likewise.
3630         * tree-cfg.c: Likewise.
3631         * tree-cfgcleanup.c: Likewise.
3632         * tree-chrec.c: Likewise.
3633         * tree-data-ref.c: Likewise.
3634         * tree-emutls.c: Likewise.
3635         * tree-inline.c: Likewise.
3636         * tree-into-ssa.c: Likewise.
3637         * tree-loop-distribution.c: Likewise.
3638         * tree-loop-linear.c: Likewise.
3639         * tree-mudflap.c: Likewise.
3640         * tree-outof-ssa.c: Likewise.
3641         * tree-parloops.c: Likewise.
3642         * tree-predcom.c: Likewise.
3643         * tree-pretty-print.c: Likewise.
3644         * tree-scalar-evolution.c: Likewise.
3645         * tree-ssa-live.c: Likewise.
3646         * tree-ssa-loop-im.c: Likewise.
3647         * tree-ssa-loop-ivcanon.c: Likewise.
3648         * tree-ssa-loop-ivopts.c: Likewise.
3649         * tree-ssa-loop-manip.c: Likewise.
3650         * tree-ssa-loop-niter.c: Likewise.
3651         * tree-ssa-loop-prefetch.c: Likewise.
3652         * tree-ssa-phiprop.c: Likewise.
3653         * tree-ssa-pre.c: Likewise.
3654         * tree-ssa-reassoc.c: Likewise.
3655         * tree-ssa-sccvn.c: Likewise.
3656         * tree-ssa-structalias.c: Likewise.
3657         * tree-ssa.c: Likewise.
3658         * tree-vect-data-refs.c: Likewise.
3659         * tree-vect-loop-manip.c: Likewise.
3660         * tree-vect-loop.c: Likewise.
3661         * tree-vect-patterns.c: Likewise.
3662         * tree-vect-slp.c: Likewise.
3663         * tree-vect-stmts.c: Likewise.
3664         * tree-vrp.c: Likewise.
3665         * tree.c: Likewise.
3666         * value-prof.c: Likewise.
3667         * var-tracking.c: Likewise.
3668         * varasm.c: Likewise.
3669         * vmsdbgout.c: Likewise.
3670
3671 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3672             Richard Guenther  <richard.guenther@gmail.com>
3673
3674         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3675         copy the src value and return a copy.
3676         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3677         (C++ Volatiles): Adjust to describe C++ semantics only.
3678
3679 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
3680
3681         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3682         be zero or nonzero.
3683         * doc/tm.texi: Regenerate.
3684         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3685         * df-scan.c (df_get_exit_block_use_set), reginfo.c
3686         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3687         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3688         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3689         to 1.
3690
3691 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3692
3693         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3694         an extra nop past a sibling call at the very end.
3695
3696 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3697
3698         PR bootstrap/45350
3699         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
3700         a comment.
3701
3702 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3703
3704         * target.def (function_arg, function_incoming_arg): Remove const
3705         qualifier on CUMULATIVE_ARGS parameter.
3706         * targhooks.h (default_function_arg, default_function_incoming_arg):
3707         Likewise.
3708         * targhooks.c (default_function_arg, default_function_incoming_arg):
3709         Likewise.
3710         * config/i386/i386.c (ix86_function_arg): Likewise.
3711
3712 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
3713
3714         PR target/45336
3715         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3716         SIGN_EXTENDs or ZERO_EXTENDs.
3717
3718 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3719
3720         PR target/42172
3721         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
3722         Take its cost into account if nonnull.
3723         (insn_a_feeds_b): New static function.
3724         (combine_instructions): Look for four-insn combinations.
3725         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
3726         them into account when computing all_adjacent and looking for other
3727         uses.
3728         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
3729         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
3730         (try_combine): New arg I0.  Handle four-insn combinations.
3731         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
3732         like ELIM_I1.
3733
3734 2010-08-19  Jason Merrill  <jason@redhat.com>
3735
3736         PR c++/45307
3737         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3738         if ctor is empty.
3739         (gimplify_modify_expr_rhs): Adjust.
3740
3741 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3742
3743         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3744         bitmap_bit_p.
3745         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3746         * dominance.c (iterate_fix_dominators): Likewise.
3747         * dse.c (set_usage_bits): Likewise.
3748         (set_position_unneeded, record_store): Likewise.
3749         * gimple-fold.c (get_maxval_strlen): Likewise.
3750         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3751         * ipa-inline.c (update_caller_keys): Likewise.
3752         * ipa-split.c (verify_non_ssa_vars): Likewise.
3753         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3754         (close_type_exposed_parameter, close_type_full_escape): Likewise.
3755         (close_addressof_down): Likewise.
3756         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3757         (setup_allocno_left_conflicts_size): Likewise.
3758         (ira_reassign_conflict_allocnos): Likewise.
3759         (ira_reassign_pseudos): Likewise.
3760         * ira-emit.c (change_loop): Likewise.
3761         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3762         * lto-streamer-out.c (write_symbol): Likewise.
3763         * predict.c (expr_expected_value_1): Likewise.
3764         * regstat.c (regstat_bb_compute_ri): Likewise.
3765         * sel-sched.c (create_block_for_bookkeeping): Likewise.
3766         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3767         * stmt.c (expand_case): Likewise.
3768         * tree-eh.c (emit_eh_dispatch): Likewise.
3769         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3770         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3771         Likewise.
3772         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3773         (rdg_build_components): Likewise.
3774         * tree-object-size.c (collect_object_sizes_for): Likewise.
3775         * tree-sra.c (convert_callers): Likewise.
3776         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3777         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3778         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3779
3780 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3781
3782         * config/i386/i386.md (*lea_1): Use P mode iterator.
3783         (lea add splitter): Also handle DImode operands.
3784         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
3785         predicate.  Do not use ix86_lea_for_add_ok.
3786         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
3787         (lea ashift splitter): Also handle DImode operands.
3788         (DImode lea ashift splitter): Remove splitter.
3789
3790 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3791
3792         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
3793         ix86_binary_operator_ok.
3794
3795 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
3796
3797         PR rtl-optimization/44691
3798         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3799         is not a register.
3800
3801 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3802
3803         PR target/45070
3804         * config/arm/arm.c (arm_output_epilogue): Ensure that return
3805          value of size 1-3 is handled correctly.
3806
3807 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3808
3809         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3810         type for the conditional has wide enough range.
3811
3812 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3813
3814         PR target/45327
3815         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3816         ix86_binary_operator_ok.
3817
3818 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3819
3820         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3821         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
3822         code to output insn mnemonic.  Fix comment.
3823         (*addsi_1_zext): Add r-r-0 alternative 1.
3824         <TYPE_LEA>: Split insn to lea.
3825         <default>: Handle alternative 1.
3826         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
3827         multi-level if_then_else RTX to set "type" attribute.
3828         <default>: Handle alternative 2.
3829         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3830         Use cond RTX instead of multi-level if_then_else RTX to set
3831         "type" attribute.
3832         <default>: Handle alternatives 2 and 4.
3833         (lea splitters): Update calls to ix86_lea_for_add_ok.
3834
3835         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3836         argument.
3837         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3838
3839 2010-08-18  Richard Guenther  <rguenther@suse.de>
3840
3841         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3842         use operand helpers.
3843
3844 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3845
3846         PR middle-end/45292
3847         * optabs.c (expand_bool_compare_and_swap): Expand pending
3848         pops before trying the optab.
3849
3850 2010-08-18  Yao Qi  <yao@codesourcery.com>
3851
3852         PR target/45094
3853         * config/arm/arm.c (output_move_double): Fix typo generating
3854         instructions ('ldr'->'str').
3855
3856 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3857
3858         PR rtl-optimization/42575
3859         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3860         live ranges.
3861
3862 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3863
3864         * config/arm/arm-protos.h (arm_expand_sync): New.
3865         (arm_output_memory_barrier, arm_output_sync_insn): New.
3866         (arm_sync_loop_insns): New.
3867         * config/arm/arm.c (FL_ARCH7): New.
3868         (FL_FOR_ARCH7): Include FL_ARCH7.
3869         (arm_arch7): New.
3870         (arm_print_operand): Support %C markup.
3871         (arm_legitimize_sync_memory): New.
3872         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3873         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3874         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3875         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3876         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3877         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3878         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3879         * config/arm/arm.h (struct arm_sync_generator): New.
3880         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3881         (TARGET_HAVE_MEMORY_BARRIER): New.
3882         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3883         * config/arm/arm.md: Include sync.md.
3884         (UNSPEC_MEMORY_BARRIER): New.
3885         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3886         (VUNSPEC_SYNC_OP):New.
3887         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3888         (sync_result, sync_memory, sync_required_value): New attributes.
3889         (sync_new_value, sync_t1, sync_t2): Likewise.
3890         (sync_release_barrier, sync_op): Likewise.
3891         (length): Add logic to length attribute defintion to call
3892         arm_sync_loop_insns when appropriate.
3893         * config/arm/sync.md: New file.
3894
3895 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3896
3897         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3898         ENABLE_TREE_CHECKING.
3899         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3900         and GCC >= 4.3.
3901
3902 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3903
3904         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3905         or optimizing for size, always avoid lea if possible.
3906
3907         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3908
3909 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3910
3911         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3912         Dunmmy function with NULL return unless the target is
3913         OSX >= 10.6 (Darwin10).
3914
3915 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3916
3917         * gcc.c (spec_function): Add remove-outfile.
3918         (remove_outfile_spec_function): New function.
3919         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3920         * invoke.texi (replace-outfile): Document.
3921
3922 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3923
3924         PR target/45296
3925         * reginfo.c (globalize_reg): Reject stack registers.
3926
3927 2010-08-17  Richard Guenther  <rguenther@suse.de>
3928
3929         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3930         list of conditional equivalences.
3931         (free_all_edge_infos): Adjust.
3932         (record_equivalences_from_incoming_edge): Likewise.
3933         (record_cond): Likewise.
3934         (build_and_record_new_cond): Likewise.
3935         (record_conditions): Likewise.
3936         (dom_opt_leave_block): Likewise.
3937
3938 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3939
3940         * doc/invoke.texi (ms-extension): Add documentation.
3941
3942 2010-08-17  Richard Guenther  <rguenther@suse.de>
3943
3944         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3945
3946 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3947
3948         PR c/40563
3949         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3950         (finish_decl): Use it to issue a -Wc++-compat warning about
3951         uninitialized const field in struct or union.
3952
3953         (finish_struct): Use strip_array_types.
3954
3955 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3956
3957         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3958         functions.
3959         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3960         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3961         call block_nreverse here.
3962         (blocks_nreverse): Rename decl temporary to block.
3963
3964 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3965
3966         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3967         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3968         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3969         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3970         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3971         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3972         thumb2_iorsi3): Delete.
3973         (orsi_notsi_si): No longer a named pattern.
3974         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3975         * config/arm/predicates.md (shift_amount_operand): New.
3976         (mult_operator): New.
3977         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3978         attr enabled): New.
3979         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3980         arch matches t2.
3981         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3982         (not_shiftsi_compare0): Likewise, renamed from
3983         arm_notsi_shiftsi_compare0.
3984         (not_shiftsi_compare0_scratch): Likweise, renamed from
3985         arm_notsi_shiftsi_compare0_scratch.
3986         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3987         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3988         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3989         so that the register alternative is disabled when the shift_operator
3990         is MULT.  Use "M" as the constraint for constants.
3991         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3992         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3993         constraint for constants.
3994         (arith_shiftsi_compare0_scratch): Likewise.
3995         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3996         Handle Thumb2 alternative.
3997
3998 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3999
4000         * doc/options.texi (NoDriverArg): Document.
4001         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
4002         -MDX and -MMDX.
4003         * opt-functions.awk (switch_flags): Handle NoDriverArg.
4004         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
4005         marking for CL_NO_DRIVER_ARG options when in the driver.
4006         * opts.h (CL_NO_DRIVER_ARG): Define.
4007         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4008         CL_COMMON): Update values.
4009
4010 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
4011
<