OSDN Git Service

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