re PR rtl-optimization/45678 (crash on vector code with -m32 -msse)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/45678
4         * cfgexpand.c (expand_one_stack_var_at): Use
5         crtl->max_used_stack_slot_alignment as max_align, instead
6         of maximum of that and PREFERRED_STACK_BOUNDARY.
7         Don't call update_stack_alignment.
8
9 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
10
11         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
12         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
13         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
14         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
15         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
16         (build_nonstandard_integer_type): Likewise.
17         (build_range_type_1): New function, built from...
18         (build_range_type): ...this.  Call build_range_type_1.
19         (build_nonshared_range_type): New function.
20         (build_array_type_1): New function, built from...
21         (build_array_type: ...this.  Call build_array_type_1.
22         (build_nonshared_array_type): New function.
23         * tree.h (build_nonshared_range_type): Declare.
24         (build_nonshared_array_type): Likewise.
25
26 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
27
28         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
29         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
30         (arm_class_likely_spilled_p): New function.
31
32 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
33
34         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
35         indirect functions.
36         (ix86_split_ashl): Ditto.
37         (ix86_split_ashr): Ditto.
38         (ix86_split_lshr): Ditto.
39         (ix86_adjust_counter): Ditto.
40
41 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
42
43         * c-family/c-common.h (constant_string_class): Documented with
44         comment identical to the one already in c-common.c.
45
46 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
47
48         * dwarf2out.c (any_cfis_emitted): New static variable.
49         (add_fde_cfi): Set it.
50         (dwarf2out_frame_debug): Clear it before processing,
51         if it is set afterwards, flush any queued reg saves.
52
53         PR debug/45124
54         * dwarf2out.c (add_accessibility_attribute): Assume
55         DW_ACCESS_private as the default for dwarf_version > 2
56         and DW_TAG_class_type parent.
57         (gen_inheritance_die): Assume DW_ACCESS_public as the default
58         for dwarf_version > 2 and parent other than DW_TAG_class_type.
59
60 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
61
62         PR target/45726
63         * arm.md (arm_movt): Only enable on machines with MOVT.
64
65 2010-09-20  Jie Zhang  <jie@codesourcery.com>
66
67         * config/arm/arm.c (arm_address_offset_is_imm): New.
68         (arm_early_store_addr_dep): New.
69         (arm_early_load_addr_dep): New.
70         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
71         (arm_early_load_addr_dep): Declare.
72         (arm_address_offset_is_imm): Declare.
73         * config/arm/cortex-m4.md: New file.
74         * config/arm/cortex-m4-fpu.md: New file.
75         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
76         (attr generic_sched): Exclude cortexm4.
77         (attr generic_vfp): Exclude cortexm4.
78
79 2010-09-20  Richard Guenther  <rguenther@suse.de>
80
81         PR middle-end/45704
82         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
83
84 2010-09-20  Jan Hubicka  <jh@suse.cz>
85
86         PR tree-optimize/45605
87         * cgraph.h (const_value_known_p): Declare.
88         (varpool_decide_const_value_known): Remove.
89         * tree-ssa-ccp.c (get_base_constructor): Use it.
90         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
91         * expr.c (string_constant): Likewise.
92         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
93         * ipa.c (ipa_discover_readonly_nonaddressable_var,
94         function_and_variable_visibility): Likewise.
95         * gimplify.c (gimplify_call_expr): Likewise.
96         * gimple-fold.c (get_symbol_constant_value): Likewise.
97         * varpool.c (varpool_decide_const_value_known): Replace by...
98         (const_value_known_p): ... this one; handle other kinds of DECLs
99         too and work for automatic vars.
100         (varpool_finalize_decl): Use const_value_known_p.
101
102 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
103
104         PR target/45726
105         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
106
107 2010-09-20  Richard Guenther  <rguenther@suse.de>
108
109         PR tree-optimization/45705
110         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
111
112 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
113
114         PR rtl-optimization/45695
115         * combine.c (try_combine): When splitting a two set pattern,
116         make sure the pattern which will be put into i2 doesn't use REGs
117         or MEMs set by insns in between i2 and i3.
118
119 2010-09-19  Jan Hubicka  <jh@suse.cz>
120
121         PR lto/44246
122         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
123         processing same node twice.
124
125 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
126
127         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
128         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
129         (bfin_class_likely_spilled_p): New function
130
131 2010-09-19  Ira Rosen  <irar@il.ibm.com>
132
133         PR tree-optimization/45714
134         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
135         created in vectorizable_call instead of the original statement in
136         def stmt updates.
137
138 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
139
140         * config/i386/i386-protos.h (split_double_mode): New prototype.
141         (split_di, split_ti): Remove prototypes.
142         * config/i386/i386.c (split_double_mode): New function.
143         (split_di, split_ti): Remove.
144         (ix86_expand_branch): Use split_double_mode.
145         (ix86_split_to_parts): Ditto.
146         (ix86_split_ashl): Ditto.
147         (ix86_split_ashr): Ditto.
148         (ix86_split_lshr): Ditto.
149         (ix86_force_to_memory): Ditto.
150         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
151
152 2010-09-18  Jan Hubicka  <jh@suse.cz>
153
154         PR tree-optimization/45453
155         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
156         virtual functions are reachable.
157         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
158         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
159         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
160         when modifying function.
161
162 2010-09-18  Jan Hubicka  <jh@suse.cz>
163
164         PR tree-optimization/45605
165         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
166         * gimple-fold.c (static_object_in_other_unit_p): New function.
167         (canonicalize_constructor_val): Use it.
168         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
169         returning NULL.
170         (gimple_fold_obj_type_ref_known_binfo): Use
171         static_object_in_other_unit_p.
172
173 2010-09-18  Richard Guenther  <rguenther@suse.de>
174
175         PR tree-optimization/45709
176         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
177         insertions until after all PHI nodes of the block are processed.
178
179 2010-09-18  Tijl Coosemans <tijl@coosemans.org>
180
181         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
182
183 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
184
185         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
186
187 2010-09-18  Richard Guenther  <rguenther@suse.de>
188
189         PR tree-optimization/45709
190         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
191
192 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
193
194         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
195         (dot_deps_stmt): Same.
196         * graphite-poly.c (dot_lst): Same.
197         * graphite-scop-detection.c (dot_all_scops): Same.
198         (dot_scop): Same.
199
200 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
201
202         Revert:
203         2009-12-16  Ben Elliston  <bje@au.ibm.com>
204
205         * tree-data-ref.c (dot_rdg_1): Added back.
206         (dot_rdg): Same.  Added "#if 0" around system call.
207
208 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
209             Richard Henderson  <rth@redhat.com>
210
211         * config/i386/i386.c (initial_ix86_tune_features): Add
212         X86_TUNE_PAD_SHORT_FUNCTION.
213         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
214         (ix86_count_insn): New.
215         (ix86_pad_short_function): Likewise.
216         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
217
218         * config/i386/i386.h (ix86_tune_indices): Add
219         X86_TUNE_PAD_SHORT_FUNCTION.
220         (TARGET_PAD_SHORT_FUNCTION): New.
221
222         * config/i386/i386.md (UNSPEC_NOPS): New.
223         (nops): Likewise.
224
225 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
226
227         PR middle-end/45234
228         * calls.c (expand_call): Make sure that all variable sized
229         adjustments are multiple of preferred stack boundary after
230         stack alignment.
231
232 2010-09-17  DJ Delorie  <dj@redhat.com>
233
234         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
235         passed an invalid value, print an error instead of ICEing.
236         (valid_psw_flag): New.
237         (rx_expand_builtin): Call it for setpsw/clrpsw.
238         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
239
240         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
241         (bitclr_in_memory): Likewise.
242         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
243
244 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
245
246         PR middle-end/45678
247         * cfgexpand.c (update_stack_alignment): New.
248         (get_decl_align_unit): Use it.
249         (expand_one_stack_var_at): Call update_stack_alignment.
250
251 2010-09-17  Richard Guenther  <rguenther@suse.de>
252
253         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
254         Properly copy the read string.
255
256 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
257
258         * doc/options.texi (Variable): Document.
259         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
260         generate target_flags declarations explicitly.  Don't define
261         VarExists variables for the driver.
262         * common.opt (target_flags): New Variable record.
263         (flag_dump_unnumbered, flag_dump_unnumbered_links,
264         flag_var_tracking, flag_var_tracking_assignments,
265         flag_var_tracking_assignments_toggle): Don't mark variables with
266         VarExists.
267         * config/i386/i386.c (ix86_isa_flags): Don't define here.
268         * config/i386/i386.opt (ix86_isa_flags): Define here.
269         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
270         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
271         VarExists.
272         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
273         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
274         Only define for generator programs.
275         * rtlanal.c (target_flags): Remove.
276         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
277         flag_var_tracking_assignments_toggle): Remove.
278
279 2010-09-17  Michael Matz  <matz@suse.de>
280
281         PR tree-optimization/43432
282         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
283         Accept backwards consecutive accesses.
284         (vect_create_data_ref_ptr): If step is negative generate
285         decreasing IVs.
286         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
287         (perm_mask_for_reverse, reverse_vec_elements): New functions.
288         (vectorizable_load): Handle loads with negative steps when easily
289         possible.
290
291 2010-09-03  Jan Hubicka  <jh@suse.cz>
292
293         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
294
295 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
296
297         * config/v850/v850.c (v850_function_value_regno_p): Make static.
298         Adjust comments. Declare.
299         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
300         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
301
302 2010-09-17  Richard Guenther  <rguenther@suse.de>
303
304         * common.opt (combine): Remove.
305         * gcc.c (default_compilers): Remove specs testing combine.
306         The C compilers no longer can combine.
307         (option_map): Remove -combine.
308         (display_help): Remove -combine.
309         (driver_handle_option): Remove OPT_combine handling.
310         (compile_input_file_p): Remove.
311         (do_spec): Remove code concerning combine.
312         (main): Likewise.
313         * doc/invoke.texi: Remove traces of -combine.
314         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
315
316 2010-09-17  Richard Guenther  <rguenther@suse.de>
317
318         PR middle-end/45678
319         * builtins.c (fold_builtin_memory_op): Always properly adjust
320         alignment of memory accesses.
321
322 2010-09-16  Jan Hubicka  <jh@suse.cz>
323
324         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
325         processing clone.
326
327 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
328
329         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
330
331         * config/i386/i386.c (predict_jump): Add prototype.
332         (flag_opts): Add -m8bit-idiv.
333         (ix86_split_idivmod): New.
334
335         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
336         Add 2 splitters for SI/DI mode divide.
337         (divmod<mode>4_1): New pattern.
338         (udivmod<mode>4_1): Likewise.
339         (testdi_ccno_1): Likewise.
340
341         * config/i386/i386.opt (m8bit-idiv): New.
342
343         * doc/invoke.texi: Document -m8bit-idiv.
344
345 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
346
347         PR bootstrap/45680
348         * config/i386/i386.c (min_insn_size): Moved out of the
349         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
350
351 2010-09-16  Jan Hubicka  <jh@suse.cz>
352
353         * lto-cgraph.c (lto_output_node): Fix handling of clones.
354         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
355         unreachable clones with reachable clones.
356         * tree-inline.c (copy_bb): Fix sanity checking when producing
357         unreachable clone.
358
359 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
360
361         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
362         (TARGET_MEMORY_MOVE_COST): Define.
363         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
364
365 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
366
367         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
368         maybe_tidy_empty_bb.
369
370         Revert:
371         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
372         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
373
374 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
375
376         * target.def (target_option.optimization): New hook.
377         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
378         TARGET_OPTION_OPTIMIZATION hook.
379         * doc/tm.texi: Regenerate.
380         * hooks.c (hook_void_int_int): New.
381         * hooks.h (hook_void_int_int): Declare.
382         * opts.c: Don't include tm_p.h.
383         (decode_options): Use targetm.target_option.optimization instead
384         of OPTIMIZATION_OPTIONS.
385         * system.h (OPTIMIZATION_OPTIONS): Poison.
386         * config/arm/arm-protos.h (arm_optimization_options): Remove.
387         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
388         (arm_optimization_options): Rename to arm_option_optimization.
389         Make static.
390         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
391         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
392         (cris_option_optimization): New.
393         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
394         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
395         (crx_option_optimization): New.
396         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
397         * config/frv/frv-protos.h (frv_optimization_options): Remove.
398         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
399         (frv_optimization_options): Rename to frv_option_optimization.
400         Make static.
401         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
402         * config/h8300/h8300.c (h8300_option_optimization): New.
403         (TARGET_OPTION_OPTIMIZATION): Define.
404         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
405         * config/i386/i386-protos.h (optimization_options): Remove.
406         * config/i386/i386.c (optimization_options): Rename to
407         ix86_option_optimization.  Make static.
408         (TARGET_OPTION_OPTIMIZATION): Define.
409         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
410         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
411         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
412         (ia64_optimization_options): Rename to ia64_option_optimization.
413         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
414         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
415         commented-out definition.
416         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
417         instead of OPTIMIZATION_OPTIONS.
418         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
419         (m32r_option_optimization): New.
420         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
421         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
422         Remove.
423         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
424         (mcore_option_optimization): New.
425         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
426         * config/mep/mep-protos.h (mep_optimization_options): Remove.
427         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
428         (mep_optimization_options): Rename to mep_option_optimization.
429         Make static.  Take unused level and size parameters.
430         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
431         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
432         (mmix_option_optimization): New.
433         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
434         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
435         (pdp11_option_optimization): New.
436         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
437         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
438         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
439         (optimization_options): Rename to rs6000_option_optimization.
440         Make static.
441         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
442         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
443         * config/rx/rx.c (rx_set_optimization_options): Rename to
444         rx_option_optimization.  Make static.  Take unused level and size
445         parameters.
446         (TARGET_OPTION_OPTIMIZATION): Define.
447         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
448         * config/s390/s390-protos.h (optimization_options): Remove.
449         * config/s390/s390.c (optimization_options): Rename to
450         s390_option_optimization.  Make static.  Don't mark size parameter
451         unused.
452         (TARGET_OPTION_OPTIMIZATION): Define.
453         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
454         * config/sh/sh-protos.h (sh_optimization_options): Remove.
455         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
456         (sh_optimization_options): Rename to sh_option_optimization.  Make
457         static.  Don't mark parameters unused.
458         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
459         * config/spu/spu-protos.h (spu_optimization_options): Remove.
460         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
461         (spu_optimization_options): Rename to spu_option_optimization.
462         Make static.
463         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
464         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
465         (v850_option_optimization): New.
466         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
467         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
468         (xtensa_option_optimization): New.
469         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
470
471 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
472
473         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
474         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
475         * doc/tm.texi: Regenerate.
476         * system.h (OVERRIDE_OPTIONS): Poison.
477         * target.def (override): Default to hook_void_void.
478         * targhooks.c (default_target_option_override): Remove.
479         * genmodes.c, machmode.def: Update comments mentioning
480         OVERRIDE_OPTIONS.
481         * config/alpha/alpha-modes.def: Update comment mentioning
482         alpha_override_options.
483         * config/alpha/alpha-protos.h (override_options): Remove.
484         * config/alpha/alpha.c (override_options): Rename to
485         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
486         (TARGET_OPTION_OVERRIDE): Define.
487         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
488         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
489         of OVERRIDE_OPTIONS.
490         * config/arc/arc-protos.h (arc_init): Remove.
491         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
492         (arc_init): Rename to arc_option_override.  Make static.
493         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
494         (OVERRIDE_OPTIONS): Remove.
495         * config/arm/arm-protos.h (arm_override_options): Remove.
496         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
497         (arm_override_options): Rename to arm_option_override.  Make
498         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
499         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
500         * config/arm/arm.md: Update comment referring to arm_override_options.
501         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
502         instead of OVERRIDE_OPTIONS.
503         * config/avr/avr-protos.h (avr_override_options): Remove.
504         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
505         (avr_override_options): Rename to avr_option_override.  Make static.
506         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
507         * config/bfin/bfin-protos.h (override_options): Remove (twice).
508         * config/bfin/bfin.c (override_options): Rename to
509         bfin_option_override.  Make static.
510         (TARGET_OPTION_OVERRIDE): Define.
511         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
512         * config/cris/cris-protos.h (cris_override_options): Remove.
513         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
514         (cris_override_options): Rename to cris_option_override.  Make static.
515         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
516         * config/frv/frv-protos.h (frv_override_options): Remove.
517         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
518         (frv_override_options): Rename to frv_option_override.  Make static.
519         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
520         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
521         * config/h8300/h8300.c (h8300_init_once): Rename to
522         h8300_option_override.  Make static.
523         (TARGET_OPTION_OVERRIDE): Define.
524         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
525         * config/i386/i386-protos.h (override_options): Remove.
526         * config/i386/i386.c (override_options): Rename to
527         ix86_option_override_internal.  Make static.  Comments referring
528         to this function and callers changed.
529         (ix86_option_override): New.
530         (TARGET_OPTION_OVERRIDE): Define.
531         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
532         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
533         * config/ia64/ia64.c (ia64_file_start): Update comment referring
534         to ia64_override_options.
535         * config/iq2000/iq2000-protos.h (override_options): Remove.
536         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
537         (override_options): Rename to iq2000_option_override.  Make static.
538         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
539         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
540         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
541         (lm32_override_options): Rename to lm32_option_override.  Make static.
542         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
543         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
544         (m32r_option_override): New.
545         (m32r_init): Update comment.
546         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
547         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
548         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
549         (m68hc11_override_options): Rename to m68hc11_option_override.
550         Make static.  Return void.
551         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
552         * config/m68k/m68k-protos.h (override_options): Remove.
553         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
554         (override_options): Rename to m68k_option_override.  Make static.
555         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
556         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
557         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
558         (mcore_override_options): Rename to mcore_option_override.  Make
559         static.
560         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
561         * config/mep/mep-protos.h (mep_override_options): Remove.
562         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
563         (mep_override_options): Rename to mep_option_override.  Make static.
564         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
565         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
566         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
567         (mmix_override_options): Rename to mmix_option_override.  Make static.
568         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
569         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
570         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
571         (mn10300_override_options): Rename to mn10300_option_override.
572         Make static.
573         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
574         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
575         * config/moxie/moxie.c (moxie_override_options): Rename to
576         moxie_option_override.  Make static.
577         (TARGET_OPTION_OVERRIDE): Define.
578         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
579         * config/picochip/picochip-protos.h (picochip_override_options):
580         Remove.  Update comment referring to picochip_override_options.
581         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
582         (picochip_override_options): Rename to picochip_option_override.
583         Make static.  Update comment and definition of
584         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
585         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
586         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
587         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
588         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
589         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
590         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
591         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
592         instead of OVERRIDE_OPTIONS.
593         * config/rs6000/rs6000-modes.def: Update comment referring to
594         rs6000_override_options.
595         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
596         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
597         (rs6000_override_options): Rename to
598         rs6000_option_override_internal.  Make static.  Commented
599         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
600         (rs6000_option_override): New.
601         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
602         instead of OVERRIDE_OPTIONS.
603         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
604         * config/s390/s390-protos.h (override_options): Remove.
605         * config/s390/s390.c (override_options): Rename to
606         s390_option_override.  Make static.
607         (TARGET_OPTION_OVERRIDE): Define.
608         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
609         * config/score/score-protos.h (score_override_options): Remove.
610         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
611         (score_override_options): Rename to score_option_override.  Make
612         static.
613         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
614         Update comment referring to override_options.
615         * config/score/score3.c (score3_override_options): Rename to
616         score3_option_override.
617         * config/score/score3.h (score3_override_options): Rename to
618         score3_option_override.
619         * config/score/score7.c (score7_override_options): Rename to
620         score7_option_override.
621         * config/score/score7.h (score7_override_options): Rename to
622         score7_option_override.
623         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
624         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
625         (sparc_override_options): Rename to sparc_option_override.  Make
626         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
627         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
628         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
629         instead of OVERRIDE_OPTIONS.
630         * config/spu/spu-protos.h (spu_override_options): Remove.
631         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
632         (spu_override_options): Rename to spu_option_override.  Make
633         static.
634         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
635         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
636         OVERRIDE_OPTIONS.
637         * config/vax/vax-protos.h (override_options): Remove.
638         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
639         (override_options): Rename to vax_option_override.  Make static.
640         Call SUBTARGET_OVERRIDE_OPTIONS.
641         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
642         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
643         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
644         * config/xtensa/xtensa-protos.h (override_options): Remove.
645         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
646         (override_options): Rename to xtensa_option_override.  Make static.
647         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
648
649 2010-09-16  Richard Guenther  <rguenther@suse.de>
650
651         PR tree-optimization/45623
652         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
653         (get_constraint_for_component_ref): If computing a constraint
654         for the rhs handle type punning through unions.
655         (get_constraint_for_address_of): Adjust.
656         (get_constraint_for_1): Likewise.
657         (get_constraint_for): Likewise.
658         (get_constraint_for_rhs): New function.
659         (do_structure_copy): Adjust.
660         (make_constraint_to): Likewise.
661         (handle_const_call): Likewise.
662         (find_func_aliases): Likewise.
663         (process_ipa_clobber): Likewise.
664         (create_variable_info_for): Likewise.
665
666 2010-09-16  Ira Rosen  <irar@il.ibm.com>
667
668         * tree-vectorizer.c: Fix documentation.
669         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
670         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
671         is_pattern_stmt_p, is_loop_header_bb_p,
672         stmt_vinfo_set_inside_of_loop_cost,
673         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
674         known_alignment_for_access_p): Likewise.
675         * tree-vect-loop.c: Fix documentation.
676         (vect_get_cost): Start function name from new line.
677         * tree-vect-data-refs.c: Fix documentation.
678         * tree-vect_stmts.c: Likewise.
679         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
680         (vectorizable_store): Free vec_oprnds if allocated.
681         (vectorizable_condition): Initialize several variables to avoid
682         warnings.
683         * tree-vect-slp.c: Fix documentation.
684
685 2010-09-16  Richard Guenther  <rguenther@suse.de>
686
687         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
688         is TS_TRANSLATION_UNIT_DECL.
689         (initialize_tree_contains_struct): Adjust.
690         (all_translation_units): New global vector.
691         (build_translation_unit_decl): New function.
692         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
693         (struct tree_translation_unit_decl): New.
694         (all_translation_units): Declare.
695         (union tree_node): Add translation_unit_decl member.
696         (build_translation_unit_decl): Declare.
697         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
698         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
699         New function.
700         (pack_value_fields): Call it.
701         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
702         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
703         (lto_output_tree_pointers): Call it.
704         * lto-streamer-in.c (lto_input_tree_ref): Handle references
705         to TRANSLATION_UNIT_DECL.
706         (unpack_ts_translation_unit_decl_value_fields): New function.
707         (unpack_value_fields): Call it.
708         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
709         (lto_input_tree_pointers): Call it.
710         * lto-streamer.c (check_handled_ts_structures): Adjust.
711         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
712         * c-decl.c (all_translation_units): Remove.
713         (pop_scope): Use build_translation_unit_decl.
714         (collect_all_refs): Adjust.
715         (for_each_global_decl): Likewise.
716         (c_write_global_declarations): Likewise.
717
718 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
719
720         PR bootstrap/45686
721         * fold-const.c (fold_checksum_tree): Change slot from const void **
722         to void **, use CONST_CAST_TREE to store into *slot.
723
724 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
725
726         * config/i386/i386.md: Remove unneeded empty conditions and
727         preparation statements from expanders.
728         * config/i386/mmx.md: Ditto.
729         * config/i386/sse.md: Ditto.
730
731 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
732
733         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
734
735 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
736
737         PR rtl-optimization/45593
738         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
739         insns that were in delay slots as stand-alone insns.
740
741 2010-09-15  Ian Lance Taylor  <iant@google.com>
742
743         * incpath.c (remove_duplicates): If name is not a directory, issue
744         a warning rather than an error.
745
746 2010-09-15  Martin Jambor  <mjambor@suse.cz>
747
748         PR middle-end/45644
749         * tree-sra.c (create_access): Check for bit-fields directly.
750
751 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
752
753         PR tree-optimization/45633
754         * tree-cfg.c (verify_gimple_assign_binary): Allow
755         MINUS_EXPR with lhs and rhs1 pointer vector and
756         rhs2 sizetype vector.
757         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
758         or vector pointer use TER to optimize pointer subtraction.
759
760 2010-09-15  Jie Zhang  <jie@codesourcery.com>
761
762         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
763         fcmpd to fcmps.
764
765 2010-09-15  Ian Lance Taylor  <iant@google.com>
766
767         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
768
769 2010-09-15  Ian Lance Taylor  <iant@google.com>
770
771         * function.c (get_arg_pointer_save_area): Set
772         arg_pointer_save_area_init to true.
773
774 2010-09-15  Martin Jambor  <mjambor@suse.cz>
775
776         * tree-sra.c (generate_subtree_copies): Updated comment.
777         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
778         obtained from the statement iterator instead.
779         (load_assign_lhs_subreplacements): Removed parameters lhs and
780         right_offset, which is obtained from top_racc instead.  Parameter lacc
781         is now expected to be the root of the processed tree rather than root's
782         first child.  Updated all callers.
783
784 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
785
786         * config/pdp11/pdp11.c (register_move_cost): Rename to
787         pdp11_register_move_cost.
788         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
789         pdp11_register_move_cost.
790         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
791         pdp11_register_move_cost instead of register_move_cost.
792
793 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
794
795         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
796         pattern for vmovn. Expansion in case of non 
797         -mvectorize-with-neon-quad.
798         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
799         non- -mvectorize-with-neon-quad case.
800         (move_lo_quad_<mode>): New expansion to vmov into low part.
801         (move_hi_quad_<mode>): New expansion to vmov into high part.
802         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
803         (move_lo_quad_v4sf): Likewise.
804         (move_lo_quad_v8hi): Likewise.
805         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
806         low part.
807         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
808         high part.
809         * config/arm/iterators.md (ANY128): New mode iterator.
810         (V_narrow_pack): New mode attribute.
811         (V_HALF): Add attribute.
812         (V_DOUBLE): Add attribute.
813         (V_mode_nunits): Add attribute.
814
815 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
816
817         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
818         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
819
820 2010-09-15  Olivier Hainque  <hainque@adacore.com>
821             Jose Ruiz  <ruiz@adacore.com>
822
823         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
824         * config/alpha/osf5-unwind.h: New file.
825
826 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
827
828         PR bootstrap/45672
829         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
830         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
831         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
832
833 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
834
835         * c-lang.h (struct lang_type): Add variable_size GTY option.
836
837 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
838
839         PR bootstrap/45672
840         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
841
842 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
843
844         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
845         result isn't used in memory address.
846
847 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
848
849         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
850         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
851         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
852         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
853         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
854         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
855
856         * target.def: Add units_per_simd_word to vectorize.
857
858         * targhooks.c (default_units_per_simd_word): New.
859         * targhooks.h (default_units_per_simd_word): Likewise.
860         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
861         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
862         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
863         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
864         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
865         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
866         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
867         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
868
869         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
870         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
871
872         * tree-vect-stmts.c: Don't include "tm_p.h".
873         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
874         with targetm.vectorize.units_per_simd_word.
875
876         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
877
878         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
879
880         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
881         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
882
883         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
884         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
885
886         * doc/tm.texi: Regenerated.
887
888 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
889
890         * tree-vect-stmts.c: Include "tm_p.h".
891
892         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
893         out of RTX_CODE.
894
895 2010-09-14  Martin Jambor  <mjambor@suse.cz>
896
897         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
898         location of generated statement.  Changed all callers.
899         (build_ref_for_model): New parameter loc which used to set location of
900         all generated expressions.  Changed all callers.
901         (generate_subtree_copies): Likewise.
902         (init_subtree_with_zero): Likewise.
903         (sra_modify_expr): Set locations of all generated statements and
904         expressions to the location the original statement.
905         (handle_unscalarized_data_in_subtree): Likewise.
906         (load_assign_lhs_subreplacements): Likewise.
907         (sra_modify_constructor_assign): Likewise.
908         (sra_modify_assign): Likewise.
909
910 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
911
912         PR target/45277
913         PR target/45363
914         PR target/45407
915         * doc/install.texi (sparc*-*-*): New section.
916         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
917
918 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
919
920         PR middle-end/45567
921         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
922         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
923         (expand_builtin): Adjust caller.
924         (expand_builtin_unop): Only use subtarget if it has the right mode.
925
926 2010-09-14  Tristan Gingold  <gingold@adacore.com>
927
928         * configure.ac (plugins): Fix typos.
929         * configure: Regenerate.
930
931 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
932
933         PR debug/45660
934         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
935         gen_type_die for function/method return type.
936
937 2010-09-14  Ira Rosen  <irar@il.ibm.com>
938
939         PR tree-optimization/45470
940         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
941         can throw an exception.
942         * tree-vect-stmts.c (vectorizable_call): Likewise.
943
944 2010-09-14  DJ Delorie  <dj@redhat.com>
945
946         PR target/44749
947         * config/mep/mep-protos.h (mep_save_register_info,
948         mep_reinit_regs, mep_init_regs): Declare.
949
950         * config/mep/mep.c: Move all target definitions to the end of the
951         file to avoid the need for duplicate declarations.
952         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
953         (mep_reorg_erepeat): Remove unused variables.
954         (mep_expand_builtin): Likewise.
955
956         * config/mep/mep-pragma.c: Don't include rtl.h.
957         (INVALID_REGNUM): New.
958         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
959         functions.
960         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
961         Avoid enum/integer math.
962
963 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
964
965         PR target/44749
966         * config/mep/t-mep (GTM_H): Add insn-constants.h.
967         * config/mep/mep.c (mep_conditional_register_usage): Take no
968         parameters.
969         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
970         prototype.
971         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
972         call to mep_conditional_register_usage.
973
974 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
975
976         PR debug/43937
977         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
978         the DECL as well.
979
980 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
981
982         PR rtl-optimization/45617
983         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
984         even if low N bits of X aren't known to be zero.
985
986 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
987
988         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
989
990         * config/i386/i386.c (initial_ix86_tune_features): Add
991         X86_TUNE_VECTORIZE_DOUBLE.
992         (ix86_units_per_simd_word): New.
993
994         * config/i386/i386.h (ix86_tune_indices): Add
995         X86_TUNE_VECTORIZE_DOUBLE.
996         (TARGET_VECTORIZE_DOUBLE): New.
997         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
998
999 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
1000
1001         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
1002         (new_temp_expr_table): Allocate call_cnt vector.
1003         (free_temp_expr_table): Free it.
1004         (process_replaceable): Add call_cnt parm and set in vector.
1005         (find_replaceable_in_bb): Skip replacement if def/use span a call.
1006         (debug_ter): Dump call_cnt value, remove stderr uses.
1007
1008 2010-09-13  Jan Hubicka  <jh@suse.cz>
1009
1010         * tree.c (build_zero_cst): New.
1011         * tree.h (build_zero_cst): Declare.
1012         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
1013         (get_base_constructor): Break out from ...
1014         (fold_const_aggregate_ref): Here; handle empty constructors.
1015
1016 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1017
1018         * config/arm/arm.md: (define_attr "conds"): Update comment.
1019         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
1020         conds attribute to clob.
1021         (arm_sync_compare_and_swapsi): Likewise.
1022         (arm_sync_compare_and_swap<mode>): Likewise.
1023         (arm_sync_lock_test_and_setsi): Likewise.
1024         (arm_sync_lock_test_and_set<mode>): Likewise.
1025         (arm_sync_new_<sync_optab>si): Likewise.
1026         (arm_sync_new_nandsi): Likewise.
1027         (arm_sync_new_<sync_optab><mode>): Likewise.
1028         (arm_sync_new_nand<mode>): Likewise.
1029         (arm_sync_old_<sync_optab>si): Likewise.
1030         (arm_sync_old_nandsi): Likewise.
1031         (arm_sync_old_<sync_optab><mode>): Likewise.
1032         (arm_sync_old_nand<mode>): Likewise.
1033
1034 2010-09-13  Olivier Hainque  <hainque@adacore.com>
1035
1036         * fwprop.c (forward_propagate_and_simplify): Only attach a
1037         REG_EQUAL note to an insn if the destination is a register.
1038         * gcse.c (try_replace_reg): Likewise.
1039
1040 2010-09-13  Richard Guenther  <rguenther@suse.de>
1041
1042         PR tree-optimization/45611
1043         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
1044         (copy_ref_info): Likewise.
1045
1046 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
1047
1048         PR debug/45604
1049         PR debug/45419
1050         PR debug/45408
1051         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1052         types of MEM_REF pointer types to the same type.
1053
1054 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
1055
1056         PR rtl-optimization/41087
1057         * ifcvt.c (noce_get_condition): Don't allow conditions with
1058         side-effects.
1059
1060 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
1061
1062         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1063         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
1064         * config/frv/frv.c (frv_register_move_cost): Make static. Change
1065         arguments type to reg_class_t. Add mode argument.
1066         (frv_memory_move_cost): New.
1067         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
1068
1069 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
1070
1071         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
1072         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
1073
1074 2010-09-10  Jan Hubicka  <jh@suse.cz>
1075
1076         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
1077
1078 2010-09-10  Richard Guenther  <rguenther@suse.de>
1079
1080         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
1081         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
1082         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
1083         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
1084         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
1085
1086 2010-09-10  Richard Guenther  <rguenther@suse.de>
1087
1088         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
1089         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
1090         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
1091         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
1092
1093 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
1094
1095         PR middle-end/45634
1096         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
1097         of string folding is of integral type.
1098
1099 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
1100
1101         * doc/invoke.texi (-x): Fix typo.
1102
1103 2010-09-10  Richard Guenther  <rguenther@suse.de>
1104
1105         PR debug/44115
1106         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
1107         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1108         Output DECL_DEBUG_EXPR.
1109         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1110         Input DECL_DEBUG_EXPR.
1111
1112 2010-09-10  Richard Guenther  <rguenther@suse.de>
1113
1114         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
1115         (build_index_type): Implement in terms of build_range_type.
1116         (build_range_type): Do not allow NULL_TREE type, improve
1117         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
1118         if we didn't hash.
1119         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
1120         create a distinct copy of the type.
1121
1122 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
1123
1124         * configure: Regenerated.
1125         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
1126
1127 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1128
1129         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
1130         * config/arm/cortex-a9-neon.md: New and partially generated.
1131         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
1132
1133 2010-09-10  Richard Guenther  <rguenther@suse.de>
1134
1135         * tree.h (build_index_2_type): Remove.
1136         * tree.c (build_index_2_type): Remove.
1137
1138 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
1139
1140         PR bootstrap/45630
1141         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
1142         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
1143         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
1144
1145 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1146
1147         PR tree-optimization/44972
1148         * tree-sra.c: Include toplev.h.
1149         (build_ref_for_offset): Entirely reimplemented.
1150         (build_ref_for_model): New function.
1151         (build_user_friendly_ref_for_offset): New function.
1152         (analyze_access_subtree): Removed build_ref_for_offset check.
1153         (propagate_subaccesses_across_link): Likewise.
1154         (create_artificial_child_access): Use
1155         build_user_friendly_ref_for_offset.
1156         (propagate_subaccesses_across_link): Likewise.
1157         (ref_expr_for_all_replacements_p): Removed.
1158         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
1159         (sra_modify_expr): Use build_ref_for_model.
1160         (load_assign_lhs_subreplacements): Likewise.
1161         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1162         checks for return values of build_ref_for_offset.
1163         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1164         build_ref_for_offset.
1165         * ipa-prop.h: Include gimple.h
1166         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1167         (ipa_analyze_indirect_call_uses): Update comment.
1168         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1169         (IPA_PROP_H): Likewise.
1170
1171 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1172
1173         PR tree-optimization/44972
1174         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1175         calling build_ref_for_offset.
1176
1177 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1178
1179         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1180         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1181         * config/arm/arm-tune.md: Regenerate.
1182         * doc/invoke.texi (ARM Options): Document it.
1183
1184 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
1185
1186         * config/i386/i386.c: Include sched-int.h.
1187         (TARGET_SCHED_DISPATCH): Defined.
1188         (TARGET_SCHED_DISPATCH_DO): Defined.
1189         (DISPATCH_WINDOW_SIZE): Defined.
1190         (MAX_DISPATCH_WINDOWS): Defined.
1191         (MAX_INSN): Defined.
1192         (MAX_IMM): Defined.
1193         (MAX_IMM_SIZE): Defined.
1194         (MAX_IMM_32): Defined.
1195         (MAX_IMM_64): Defined.
1196         (MAX_LOAD): Defined.
1197         (MAX_STORE): Defined.
1198         (BIG): Defined.
1199         (dispatch_group): New.
1200         (num_allowable_groups): New.
1201         (group_name): New.
1202         (sched_insn_info_s): New.
1203         (dispatch_windows_s): New.
1204         (imm_info_s): New.
1205         (dispatch_window_list): New.
1206         (dispatch_window_list1): New.
1207         (get_mem_group): New.
1208         (is_cmp): New.
1209         (dispatch_violation): New.
1210         (is_branch): New.
1211         (is_prefetch): New.
1212         (init_window): New.
1213         (allocate_window): New.
1214         (init_dispatch_sched): New.
1215         (is_end_basic_block): New.
1216         (process_end_window): New.
1217         (allocate_next_window): New.
1218         (find_constant_1): New.
1219         (find_constant): New.
1220         (get_num_immediates): New.
1221         (has_immediate): New.
1222         (get_insn_path): New.
1223         (get_insn_group): New.
1224         (count_num_restricted): New.
1225         (fits_dispatch_window): New.
1226         (add_insn_window): New.
1227         (add_to_dispatch_window): New.
1228         (debug_dispatch_window_file): New.
1229         (debug_dispatch_window): New.
1230         (debug_insn_dispatch_info_file): New.
1231         (debug_ready_dispatch): New.
1232         (do_dispatch): New.
1233         (has_dispatch): New.
1234         * config/i386/i386.h (debug_ready_dispatch): Declared.
1235         (debug_dispatch_window): Declared.
1236         * config/i386/i386.opt (mdispatch-scheduler): New flag.
1237         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1238         (TARGET_SCHED_DISPATCH_DO): New.
1239         * doc/tm.texi: Regererated.
1240         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1241         ready_remove_first_dispatch
1242         (schedule_block): Call targetm.sched.dispatch and
1243         targetm.sched.dispatch_do.
1244         (sched_init): Call targetm.sched.dispatch and
1245         targetm.sched.dispatch_do.
1246         (ready_remove_first_dispatch): New.
1247         (number_in_ready): New.
1248         (get_ready_element): New.
1249         * hooks.c (hook_bool_rtx_int_false): New.
1250         (hook_void_rtx_int): New.
1251         * hooks.h (hook_bool_rtx_int_false): Declared.
1252         (hook_void_rtx_int): Declared.
1253         * sched-int.h (IS_DISPATCH_ON): Defined.
1254         (IS_CMP): Defined.
1255         (DISPATCH_VIOLATION): Defined.
1256         (FITS_DISPATCH_WINDOW): Defined.
1257         (DISPATCH_INIT): Defined.
1258         (ADD_TO_DISPATCH_WINDOW): Defined.
1259         (get_ready_element): Declared.
1260         (number_in_ready): Declared.
1261         * target.def (dispatch): Defined.
1262         (dispatch_do): Defined.
1263
1264 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1265
1266         PR middle-end/45312
1267         * reload1.c (merge_assigned_reloads): Remove.
1268         (reload_as_needed): Don't call it.
1269
1270 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
1271
1272         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1273         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1274         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1275
1276 2010-09-09  Matthias Klose  <doko@ubuntu.com>
1277
1278         PR bootstrap/43847
1279         * configure.ac (--enable-plugin): Enhance for cross builds.
1280         * configure: Regenerate.
1281
1282 2010-09-09  Jan Hubicka  <jh@suse.cz>
1283
1284         PR tree-optimization/45598
1285         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1286         string folding is of integral type.
1287
1288 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1289
1290         * configure.ac (gnu_indirect_function): New test.
1291         * configure: Rebuilt.
1292         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1293         * defaults.h (IFUNC_ASM_TYPE): Provide default.
1294
1295         * doc/extend.texi (Function Attributes): Document ifunc.
1296         * varasm.c (do_assemble_alias): Deal with ifuncs too.
1297
1298 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
1299
1300         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1301         epilogue instruction move.
1302
1303 2010-09-09  Jan Hubicka  <jh@suse.cz>
1304
1305         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1306         command line to allow more partitions than input files.
1307
1308 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1309
1310         PR middle-end/44554
1311         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1312
1313 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1314
1315         PR middle-end/40386
1316         * ira.c (pseudo_for_reload_consideration_p): Don't use
1317         flag_ira_share_spill_slots.
1318
1319 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1320
1321         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1322         point zero operands that fit into a single GPR.
1323         (s390_preferred_reload_class): Ensure we only return general-purpose
1324         register classes.
1325         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1326         floating-point zero operands into GPRs.
1327         ("*mov<mode>_64"): Likewise.
1328         ("mov<mode>"): Likewise using lhi.
1329
1330 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1331
1332         * config/s390/s390.c (s390_symref_operand_p): Return false for
1333         literal pool references.
1334         (s390_check_qrst_address): Update caller.
1335
1336 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1337
1338         * config/i386/predicates.md (ext_register_operand): Check that
1339         SUBREG_REG is really a register before looking for REGNO.
1340         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1341         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1342
1343 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1344
1345         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1346         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1347         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1348         * print-rtl.c (print_rtx): Likewise.
1349         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1350         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1351         for ADDR_EXPR with non-addressable object.
1352         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1353         (struct dw_val_struct): Add v.val_decl_ref.
1354         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1355         Handle DW_OP_GNU_implicit_pointer.
1356         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1357         (get_ref_die_offset_label): New function.
1358         (implicit_ptr_descriptor): New function.
1359         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1360         (loc_descriptor): Likewise.
1361         (gen_variable_die): Put even definitions into decl_die_table.
1362         (resolve_addr_in_expr): Resolve still unresolved
1363         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1364         return false.
1365         (dwarf2out_finish): Call output_location_lists after outputting
1366         .debug_info and .debug_abbrev instead of before.
1367
1368 2010-09-09  Roland McGrath  <roland@redhat.com>
1369
1370         * dwarf2out.c (DWARF_REF_SIZE): Define.
1371         (size_of_loc_descr): Use it for DW_OP_call_ref.
1372
1373 2010-09-09  Alan Modra  <amodra@gmail.com>
1374
1375         * doc/invoke.text: Reinstate mcmodel=medium.
1376         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1377         CMODEL_MEDIUM as default.
1378         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1379         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1380         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1381         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1382
1383 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1384
1385         PR target/45250
1386         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1387         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1388         (builtin_longjmp): Likewise.
1389         (allocate_stack): Use hard_frame_pointer_rtx instead of
1390         frame_pointer_rtx.
1391         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1392         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1393         (pa_can_eliminate): Likewise.
1394         (TARGET_INTERNAL_ARG_POINTER): Define.
1395         (TARGET_CAN_ELIMINATE): Define.
1396         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1397         pointer.
1398         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1399         (pa_internal_arg_pointer, pa_can_eliminate,
1400         pa_initial_elimination_offset): New.
1401         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1402         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1403         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1404         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1405         Define.
1406         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1407         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1408         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1409         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1410         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1411         new soft frame pointer.
1412         * config/pa/pa64-regs.h: Likewise.
1413
1414 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1415
1416         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1417         numerical constant.
1418         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1419
1420 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1421
1422         PR debug/45531
1423         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1424
1425 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1426
1427         PR debug/45419
1428         PR debug/45408
1429         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1430         qualifiers in otherwise equal MEM_REF pointer types.
1431         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1432         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1433
1434 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1435
1436         PR target/44392
1437         * config/arm/arm.md (bswapsi2): Handle condition correctly
1438         for armv6 and optimize_size.
1439
1440 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1441
1442         PR other/18555
1443         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1444
1445 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1446
1447         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1448         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1449         ix86_expand_strlen, legitimate_pic_address_disp_p,
1450         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1451         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1452         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1453         prototype to bool.
1454         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1455         return_in_memory_ms_64, ix86_check_movabs,
1456         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1457         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1458         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1459         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1460         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1461         ix86_secondary_memory_needed): Change to bool.  Return
1462         "true" and "false" values.
1463         * config/i386/i386.md: Return "true" and "false" values.
1464
1465 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1466
1467         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1468         run_expensive_tests.
1469
1470 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1471
1472         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1473
1474 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1475
1476         PR other/45443
1477         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1478         at -O3.
1479
1480 2010-09-08  Richard Guenther  <rguenther@suse.de>
1481
1482         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1483         (visit): Adjust.
1484         (iterative_hash_gimple_type): Likewise.
1485         (gimple_type_hash): Likewise.
1486         (gimple_register_type): Likewise.
1487         (print_gimple_types_stats): Likewise.
1488         (free_gimple_type_tables): Likewise.
1489
1490 2010-09-08  Michael Matz  <matz@suse.de>
1491
1492         PR tree-optimization/43430
1493         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1494         copies for conditional statements if it's not part of a reduction.
1495
1496 2010-09-08  Michael Matz  <matz@suse.de>
1497
1498         PR tree-optimization/33244
1499         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1500         empty loop latches.
1501
1502 2010-09-08  Richard Guenther  <rguenther@suse.de>
1503
1504         PR tree-optimization/45578
1505         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1506         Be more careful when transfering alignment information to
1507         the new induction variable.
1508         (copy_ref_info): Likewise.
1509
1510 2010-09-08  Richard Guenther  <rguenther@suse.de>
1511
1512         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1513         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1514
1515 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1516
1517         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1518         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1519
1520 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1521
1522         PR doc/45587
1523         * doc/md.texi: Fixed modes on several standard pattern names.
1524
1525 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1526
1527         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1528         (ashl<mode>3): ...this.
1529         (loongson_psra<V_suffix>): Rename to...
1530         (ashr<mode>3): ...this.
1531         (loongson_psrl<V_suffix>): Rename to...
1532         (lshr<mode>3): ...this.
1533         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1534         (CODE_FOR_loongson_psllw): Define.
1535         (CODE_FOR_loongson_psrlh): Define.
1536         (CODE_FOR_loongson_psrlw): Define.
1537         (CODE_FOR_loongson_psrah): Define.
1538         (CODE_FOR_loongson_psraw): Define.
1539
1540 2010-09-07  Richard Henderson  <rth@redhat.com>
1541
1542         * tree-vect-data-refs.c: Include tm_p.h.
1543         * Makefile.in (tree-vect-data-refs.o): Update deps.
1544         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1545         Move delarations outside #ifdef RTX_CODE.
1546
1547 2010-09-07  Richard Henderson  <rth@redhat.com>
1548
1549         * final.c (rest_of_handle_final): Unconditionally do
1550         output_function_exception_table before assemble_end_function.
1551
1552 2010-09-07  Jan Hubicka  <jh@suse.cz>
1553
1554         * tree-inline.c (tree_inlinable_function_p): Do not test
1555         DECL_REPLACEABLE_P.
1556         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1557         update_callee_keys, cgraph_decide_inlining): Test function availability.
1558         * cif-code.def (OVERWRITABLE): New code.
1559
1560 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1561             Jack Howarth <howarth@bromo.med.uc.edu>
1562
1563         PR target/36502
1564         PR target/42313
1565         PR target/44651
1566         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1567         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1568         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1569         MAX macro.
1570
1571 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1572
1573         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1574         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1575
1576 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1577
1578         * config.gcc: Don't append t-android for Android targets.
1579
1580         * config/t-android: Removed.
1581
1582 2010-09-07  Richard Henderson  <rth@redhat.com>
1583
1584         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1585         * doc/tm.texi.in: Add doc marker.
1586         * doc/tm.texi: Rebuild.
1587         * except.c (switch_to_exception_section): Always build.
1588         (output_one_function_exception_table): Move section switch,
1589         personality output, and label output ...
1590         (output_function_exception_table): ... here.  Use the new
1591         personality hook.
1592
1593         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1594         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1595         TARGET_ASM_INIT_SECTIONS): New.
1596         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1597         make static.
1598         (TARGET_ASM_UNWIND_EMIT): Update to match.
1599         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1600
1601         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1602         (arm_asm_init_sections): New.
1603         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1604
1605 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1606
1607         * config/arm/arm.md: Remove unused variable.
1608
1609 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1610
1611         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1612         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1613         (m32r_memory_move_cost): New function.
1614
1615 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1616
1617         * config.gcc: Append t-android for Android targets.
1618
1619         * config/t-android: New.
1620
1621 2010-09-07  Richard Henderson  <rth@redhat.com>
1622
1623         * target.def (unwind_emit_before_insn): New hook.
1624         * doc/tm.texi.in: Add @hook marker for it.
1625         * doc/tm.texi: Rebuild.
1626         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1627
1628 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1629
1630         PR fortran/43665
1631         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1632         are any type attributes.
1633
1634 2010-09-07  Jan Hubicka  <jh@suse.cz>
1635
1636         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1637         array_ref_low_bound in string access folding.
1638
1639 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1640
1641         PR target/45206
1642         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1643         eh_return fixup sequence.
1644
1645 2010-09-07  Jan Hubicka  <jh@suse.cz>
1646
1647         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1648         gimple_min_invariant.
1649
1650 2010-09-07  Richard Guenther  <rguenther@suse.de>
1651
1652         PR middle-end/45569
1653         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1654         nor CONSTRUCTOR can trap.
1655         * tree-complex.c (update_complex_assignment): Update EH info.
1656
1657 2010-09-07  Richard Guenther  <rguenther@suse.de>
1658
1659         PR middle-end/45569
1660         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1661         * passes.c (execute_function_todo): Do not verify anything if
1662         we saw errors.
1663
1664 2010-09-07  Richard Guenther  <rguenther@suse.de>
1665
1666         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1667
1668 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1669
1670         PR target/43137
1671         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1672         New define_mode_attrs.
1673         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1674         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1675         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1676         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1677         Remove pool_range attribute.
1678         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1679         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1680         pool_range and neg_pool_range attributes.
1681         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1682         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1683         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1684
1685 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1686
1687         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1688         check glibc.
1689
1690 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1691
1692         PR target/22152
1693         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1694         *mov<mode>_internal_avx, *mov<mode>_internal,
1695         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1696         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1697
1698 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1699
1700         * c-typeck.c (do_warn_double_promotion): Remove.
1701         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1702         Objective-C++ too.
1703
1704 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1705
1706         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1707         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1708         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1709         argument type to reg_class_t. Change result type to bool.
1710         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1711
1712 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1713
1714         PR libobjc/19850
1715         * gthr-posix.h (__gthread_objc_thread_detach): Use
1716         _objc_thread_attribs when detaching a thread.
1717         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1718
1719 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1720
1721         PR target/45524
1722         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1723         * configure: Regenerated.
1724
1725 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1726
1727         * combine.c (try_combine): Set subst_low_luid to i0.
1728
1729 2010-09-06  Richard Guenther  <rguenther@suse.de>
1730
1731         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1732         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1733         (build_aligned_type): Declare.
1734         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1735         (check_aligned_type): New function.
1736         (build_aligned_type): Likewise.
1737         * expr.c (expand_assignment): Handle misaligned stores via
1738         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1739         (expand_expr_real_1): Likewise.
1740         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1741         * tree-vect-stmts.c (vectorizable_store): Do not build
1742         MISALIGNED_INDIRECT_REF but initialize alignment information.
1743         (vectorizable_load): Likewise.
1744         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1745         handling.
1746         * cfgexpand.c (expand_debug_expr): Likewise.
1747         * dwarf2out.c (loc_list_from_tree): Likewise.
1748         * fold-const.c (maybe_lvalue_p): Likewise.
1749         (operand_equal_p): Likewise.
1750         (build_fold_addr_expr_with_type_loc): Likewise.
1751         * gimplify.c (gimplify_addr_expr): Likewise.
1752         (gimplify_expr): Likewise.
1753         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1754         (verify_gimple_assign_single): Likewise.
1755         * tree-dump.c (dequeue_and_dump): Likewise.
1756         (tree_could_trap_p): Likewise.
1757         * tree-predcom.c (ref_at_iteration): Likewise.
1758         * tree-pretty-print.c (dump_generic_node): Likewise.
1759         (op_code_prio): Likewise.
1760         (op_symbol_code): Likewise.
1761         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1762         * tree-ssa-loop-im.c (for_each_index): Likewise.
1763         (gen_lsm_tmp_name): Likewise.
1764         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1765         (find_interesting_uses_address): Likewise.
1766         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1767         * tree-ssa-operands.c (get_expr_operands): Likewise.
1768         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1769         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1770         (ao_ref_init_from_vn_reference): Likewise.
1771         * tree.c (staticp): Likewise.
1772         (build1_stat): Likewise.
1773         (reference_alias_ptr_type): Likewise.
1774         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1775         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1776         MISALIGNED_INDIRECT_REF handling.
1777
1778 2010-09-06  Richard Guenther  <rguenther@suse.de>
1779
1780         PR tree-optimization/45534
1781         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1782         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1783         on the target.
1784         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1785         valid on the target.
1786
1787 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1788
1789         * configure.ac: Quote argument of AC_MSG_WARN.
1790         * configure: Regenerate.
1791
1792 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1793
1794         * sel-sched.c (move_cond_jump): Correct arguments to
1795         maybe_tidy_empty_bb.
1796         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1797
1798 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1799
1800         PR rtl-optimization/44919
1801         * sel-sched.c (move_cond_jump): Remove assert, check that
1802         the several blocks case can only happen with mutually exclusive
1803         insns instead.  Rewrite the movement code to support moving through
1804         several basic blocks.
1805
1806 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1807
1808         * config/i386/i386.md (iptrsize): New mode attribute.
1809         (tp_seg): Ditto.
1810         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1811         mode iterator.
1812         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1813         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1814         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1815         (stack_tls_protect_set_<mode>): Ditto from
1816         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1817         of thread base pointer load.
1818         (stack_tls_protect_test_<mode>): Ditto from
1819         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1820         of thread base pointer load.
1821         (stack_protect_set): Rewrite using indirect functions.
1822         (stack_protect_test): Ditto.
1823         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1824         (ix86_print_operand): Handle '@'.
1825
1826 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1827
1828         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1829         MINUS_EXPR.
1830
1831 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1832
1833         * doc/invoke.texi: Document -Wdouble-promotion.
1834         * c-typeck.c (convert_arguments): Check for implicit conversions
1835         from float to double.
1836         (do_warn_double_promotion): New function.
1837         (build_conditional_expr): Use it.
1838         (build_binary_op): Likewise.
1839
1840 2010-09-05  Richard Guenther  <rguenther@suse.de>
1841
1842         PR tree-optimization/45535
1843         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1844         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1845         dereferencing it.
1846         (indirect_refs_may_alias_p): Likewise.
1847
1848 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1849
1850         * config/sh/sh.c (sh_option_override): Make static.
1851         Adjust comments.  Declare.
1852         (sh_function_value_regno_p): Likewise.
1853         (sh_register_move_cost): Modify the arguments, make static.
1854         Adjust comments.  Declare.
1855         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1856         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1857         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1858         REGISTER_MOVE_COST): Delete.
1859         * config/sh/sh-protos.h (sh_override_options): Delete.
1860         (sh_register_move_cost): Delete.
1861         (sh_function_value_regno_p): Delete.
1862
1863 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1864
1865         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1866         m32r_function_value_regno_p): New functions.
1867         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1868         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1869         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1870         FUNCTION_VALUE_REGNO_P): Remove.
1871
1872 2010-09-04  Jan Hubicka  <jh@suse.cz>
1873
1874         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1875         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1876         fold_read_from_constant_string.
1877
1878         * gimple.h (canonicalize_constructor_val): Declare.
1879         * gimple-fold.c (canonicalize_constructor_val): New function.
1880         (get_symbol_constant_value):Use it.
1881         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1882
1883 2010-09-04  Jan Hubicka  <jh@suse.cz>
1884
1885         * tree-switch-conversion.c (build_one_array): Set constructor to be
1886         static.
1887         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1888
1889 2010-09-04  Richard Guenther  <rguenther@suse.de>
1890
1891         PR bootstrap/45519
1892         * tree-flow.h (force_gimple_operand_1): Declare.
1893         (force_gimple_operand_gsi_1): Likewise.
1894         * gimplify.c (force_gimple_operand_1): New worker taking a
1895         gimple predicate for ...
1896         (force_gimple_operand): ... which now wraps it.
1897         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1898         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1899         last change.
1900         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1901         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1902         (create_mem_ref): Likewise.
1903
1904 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1905
1906         * config/i386/predicates.md (sse_reg_operand): New predicate.
1907         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1908         predicate for operand 1.
1909         (XFmode push splitter): Use fp_register_operand predicate
1910         for operand 1.
1911         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1912         (SF-DF float_extend push splitter): Add reload_completed insn
1913         predicate.
1914         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1915         MODEF mode macro.  Add reload_completed insn predicate.
1916
1917 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1918
1919         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1920         (struct df_extract_ref): Remove.
1921         (union df_ref_d): Remove extract_ref member.
1922         (df_ref_create): Remove last three arguments.
1923         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1924         * df-scan.c (df_ref_record): Remove last three arguments, do not
1925         pass them to df_ref_create_structure.
1926         (df_uses_record): Remove first and last three arguments.  Replace
1927         first argument with DF_REF_REGULAR, adjust calls to remove the
1928         width, offset and mode.  Always call recursively on the second
1929         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1930         (df_ref_create_structure): Remove first argument.
1931         (struct df_scan_problem_data): Remove ref_extract_pool.
1932         (df_scan_free_internal): Do not free it.
1933         (df_scan_alloc): Do not allocate it.
1934         (df_ref_create): Remove last three arguments, do not pass them to
1935         df_ref_create_structure.
1936         (df_free_ref): Remove DF_REF_EXTRACT case.
1937         (df_notes_rescan): Adjust call to df_uses_record.
1938         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1939         Remove DF_REF_EXTRACT case.
1940         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1941         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1942         and SUBREG definitions.
1943         (df_get_conditional_uses): Remove references to width/offset/mode,
1944         adjust call to df_ref_create_structure.
1945         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1946         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1947         calls to df_uses_record and df_ref_record.
1948         * fwprop.c (update_df): Remove references to width/offset/mode,
1949         adjust call to df_ref_create.
1950
1951 2010-09-03  Jan Hubicka  <jh@suse.cz>
1952
1953         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1954         (build_cdtor_fns): Update use of build_cdtor.
1955
1956 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1957
1958         * doc/options.texi (SeparateAlias): Document.
1959         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1960         * opth-gen.awk: Generate enumeration names for options marked
1961         SeparateAlias, but not for those marked Ignore.
1962         * opts-common.c (generate_canonical_option): Don't output separate
1963         argument for options marked CL_SEPARATE_ALIAS.
1964         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1965         * opts.h (CL_SEPARATE_ALIAS): New.
1966         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1967         CL_COMMON): Adjust definitions.
1968         * config/i386/darwin.opt, config/mips/sde.opt: New.
1969         * common.opt (fdump-final-insns): New.
1970         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1971         i386/darwin.opt.
1972         (mips*-sde-elf*): Add mips/sde.opt.
1973         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1974         -mno-data-in-code and -mcode-xonly here.
1975         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1976         * gcc.c (option_map): Add "j" to --dump entry.
1977         (translate_options): Don't translate -d to -foutput-class-dir= here.
1978
1979 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1980
1981         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1982         DR_IS_WRITE.
1983         (compute_all_dependences): Same.
1984         (create_rdg_edge_for_ddr): Same.
1985         * tree-data-ref.h (DR_IS_WRITE): New.
1986         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1987         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1988         (write_memrefs_written_at_least_once): Same.
1989         * tree-predcom.c (suitable_component_p): Same.
1990         (determine_roots_comp): Same.
1991         (execute_load_motion): Same.
1992         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1993         (vect_enhance_data_refs_alignment): Same.
1994         (vect_analyze_group_access): Same.
1995
1996 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1997
1998         PR testsuite/42843
1999         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
2000         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2001
2002 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
2003
2004         * dwarf2out.c (file scope): Remove #if0'd code.
2005         (gen_subprogram_die): Same.
2006
2007 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2008
2009         PR middle-end/45484
2010         * dwarf2out.c (flush_queued_reg_saves): Rename to...
2011         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
2012         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
2013         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
2014         * config/i386/i386.c (output_set_got): Call it.
2015
2016 2010-09-03  Michael Matz  <matz@suse.de>
2017
2018         PR middle-end/45415
2019         * tree-sra.c (sra_modify_assign): If we modify the statement,
2020         say so.
2021
2022         * tree-ssa.c (verify_ssa): Check number of operands and links
2023         per statement to agree.
2024
2025 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2026             Iain Sandoe  <iains@gcc.gnu.org>
2027
2028         PR target/45476
2029         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
2030         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
2031         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2032
2033 2010-09-03  Richard Guenther  <rguenther@suse.de>
2034
2035         * lto-streamer-out.c (output_function): Output function
2036         start and end loci.
2037         * lto-streamer-in.c (input_function): Input function start
2038         and end loci.
2039
2040 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2041
2042         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
2043         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
2044         * configure: Regenerate.
2045         * aclocal.m4: Regenerate.
2046
2047 2010-09-03  Jan Hubicka  <jh@suse.cz>
2048
2049         PR lto/44812
2050         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
2051         on functions/variables in other partition.
2052
2053 2010-09-03  Jan Hubicka  <jh@suse.cz>
2054
2055         * cgraph.h (struct varpool_node): Add const_value_known.
2056         (varpool_decide_const_value_known): Declare.
2057         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
2058         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
2059         (input_varpool_node): Restore const_value_known.
2060         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
2061         initializer folding.
2062         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2063         function_and_variable_visibility): Compute const_value_known.
2064         * gimple-fold.c (get_symbol_constant_value): Use varpool for
2065         initializer folding.
2066         * varpool.c (varpool_decide_const_value_known): New function.
2067
2068 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2069
2070         * config/i386/i386.md: Remove empty preparation statements
2071         from splitters.
2072
2073 2010-09-03  Jan Hubicka  <jh@suse.cz>
2074
2075         * passes.c (rest_of_decl_compilation): Do not add local vars into
2076         varpool.
2077         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
2078         static or extern vars are in varpool.
2079         (varpool_finalize_decl): Sanity check that only static vars are
2080         finalized.
2081
2082 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2083
2084         PR debug/45500
2085         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
2086         not just generic vectors with BLKmode.
2087
2088 2010-09-03  Richard Guenther  <rguenther@suse.de>
2089
2090         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
2091         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
2092         * tree.h (TMR_SYMBOL): Remove.
2093         (TMR_BASE, TMR_OFFSET): Adjust.
2094         (TMR_INDEX2): New.
2095         * alias.c (ao_ref_from_mem): Use TMR_BASE.
2096         * builtins.c (get_object_alignment): Merge TMR_BASE and
2097         TMR_SYMBOL handling.
2098         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
2099         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
2100         handling.  Also allow TARGET_MEM_REF as base address.
2101         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
2102         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
2103         base.  Gimplify TMR_INDEX2.
2104         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
2105         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2106         (get_addr_base_and_unit_offset): Likewise.
2107         * tree-eh.c (tree_could_trap_p): Likewise.
2108         * tree-pretty-print.c (dump_generic_node): Likewise.
2109         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
2110         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
2111         base to index2.
2112         (get_address_description): Reconstruct addres description
2113         from merged TMR_BASE and TMR_INDEX2.
2114         (maybe_fold_tmr): Fold propagated addresses.
2115         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
2116         MEM_REF and TARGET_MEM_REF paths.
2117         (indirect_refs_may_alias_p): Likewise.
2118         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
2119         instead of TMR_SYMBOL.
2120         * tree-ssa-operands.c (get_tmr_operands): Simplify.
2121         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
2122         according to changes ...
2123         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
2124         Split TARGET_MEM_REF into two fields plus the base.
2125         * tree.c (mem_ref_offset): Simplify.
2126         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
2127         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2128         Strip NOPs when folding MEM_REF addresses.
2129         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
2130         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
2131         (fold_gimple_assign): ... not here.
2132
2133 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
2134
2135         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
2136         * config/mips/mips.c (mips_shift_truncation_mask): New function.
2137         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2138
2139 2010-09-02  Richard Henderson  <rth@redhat.com>
2140
2141         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
2142         instead of readelf in the test.
2143         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
2144         in the .debug_frame section for coff targets.
2145         * configure: Rebuild.
2146
2147 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2148
2149         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
2150         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
2151         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2152         (m32c_class_likely_spilled_p): Make static. Change argument type to
2153         reg_class_t. Change result type to bool.
2154
2155 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2156
2157         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
2158         to convert (double)(long) into a single FRIZ instruction or not
2159         when -ffast-math is used.
2160
2161         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2162         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2163         or FRIZ instruction if -ffast-math.
2164         * config/rs6000/rs6000.md (friz): Ditto.
2165
2166         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2167
2168 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2169
2170         * opth-gen.awk (quote, comma): Remove unused variables.
2171
2172 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
2173
2174         * arm.c (arm_override_options): Correct fall-back code to use
2175         SUBTARGET_CPU_DEFAULT.
2176
2177 2010-09-02  Julian Brown  <julian@codesourcery.com>
2178
2179         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2180         unspecs.
2181         (vcond<mode>, vcondu<mode>): New expanders.
2182         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2183         comparisons with zero.
2184         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2185         * config/arm/constraints.md (Dz): New constraint.
2186
2187 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2188
2189         * target.def (class_likely_spilled_p): New hook.
2190         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2191         * doc/tm.texi: Regenerate.
2192         * targhooks.c (default_class_likely_spilled_p): New function.
2193         * targhooks.h (default_class_likely_spilled_p): Declare.
2194         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2195         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2196         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2197         Use fixed_reg_set instead of fixed_regs.
2198         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2199         * calls.c (avoid_likely_spilled_reg): Ditto.
2200         * ira-conflicts.c (ira_build_conflicts): Ditto.
2201         * ira.c (update_equiv_regs): Ditto.
2202         * mode-switching.c (create_pre_exit): Ditto.
2203         * regmove.c (find_matches): Ditto.
2204         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2205         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2206         (small_register_class_p): New inline function.
2207         (push_secondary_reload, find_reusable_reload, find_reloads): Use
2208         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2209
2210         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2211         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2212         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2213
2214 2010-09-02  Richard Guenther  <rguenther@suse.de>
2215
2216         PR tree-optimization/44937
2217         PR tree-optimization/45412
2218         * ipa-split.c (split_function): Properly remove PHI nodes.
2219
2220 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2221
2222         * opts.h (struct cl_option): Add warn_message field.
2223         (struct cl_decoded_option): Add warn_message field.
2224         * doc/options.texi (Ignore, Warn): Document.
2225         * opt-functions.awk (needs_state_p): Don't consider aliases or
2226         ignored options to need state saved.
2227         * optc-gen.awk: Handle Warn and Ignore.
2228         * opth-gen.awk: Output OPT_SPECIAL_ignore.
2229         * opts-common.c (decode_cmdline_option): Set warn_message field.
2230         Handle ignored options.
2231         (decode_cmdline_options_to_array, generate_option,
2232         generate_option_input_file): Set warn_message field.
2233         (read_cmdline_option): Generate warnings from warn_message field.
2234         Handle ignored options.
2235         * common.opt (Wunreachable-code, fargument-alias,
2236         fargument-noalias, fargument-noalias-global,
2237         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2238         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2239         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2240         ftree-salias): Mark Ignore.
2241         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2242         -mintel-syntax and -mno-intel-syntax here.
2243         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2244         using Warn.
2245         * opts.c (common_handle_option): Don't handle options marked as
2246         ignored.
2247         (enable_warning_as_error): Handle ignored options.
2248
2249 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2250
2251         PR driver/44076
2252         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2253         alias_target fields.
2254         * opt-functions.awk (opt_sanitized_name): Don't handle
2255         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2256         * optc-gen.awk: Generate alias fields.
2257         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2258         Don't generate such constants for aliases.
2259         * opts-common.c (generate_canonical_option): New.
2260         (decode_cmdline_option): Handle aliases.  Use
2261         generate_canonical_option for known options instead of copying the
2262         input option text.
2263         * doc/options.texi (Alias): Document.
2264         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2265         fstack-check, specs): Mark as aliases.
2266         * gcc.c (driver_handle_option): Canonicalize -L options to joined
2267         arguments.
2268         (driver_handle_option): Don't handle OPT_specs.
2269         * opts.c (common_handle_option): Don't handle options marked as
2270         aliases.
2271         (enable_warning_as_error): Handle aliases.
2272         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2273         OPT_Wlarger_than_eq.
2274         * tree-optimize.c (tree_rest_of_compilation): Use
2275         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2276
2277 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2278
2279         * config/i386/i386.md (nonmemory_operand): New mode attribute.
2280         (push memory peephole2): Macroize peepholes using SWI mode iterator.
2281         (move immediate to memory peephole2): Macroize peepholes using
2282         SWI124 mode iterator.
2283         (non-pairable NOT peephole2): Macroize peepholes using SWI124
2284         mode iterator.
2285         (simple lea add peephole2): Macroize peepholes using SWI48
2286         mode iterator.
2287         (simple lea mult peephole2): Ditto.
2288         (imul by 3,5,9 to lea peephole2): Ditto.
2289         (mov $-1, reg peephole2): Macroize peepholes using SWI248
2290         mode iterator.
2291         (imul $32bit_imm,mem,reg peephole2): Ditto.
2292         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2293
2294 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
2295
2296         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2297
2298 2010-09-02  Olivier Hainque  <hainque@adacore.com>
2299
2300         PR middle-end/44763
2301         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2302         (allocno_priority_compare_func): Use it instead of a straight
2303         difference computation over priorities.
2304
2305 2010-09-02  Andi Kleen  <ak@linux.intel.com>
2306
2307         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2308
2309 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2310
2311         * tree-vectorizer.h (get_later_stmt): New function.
2312         (vect_analyze_data_ref_dependences): Add argument.
2313         * tree-vect-loop.c (vect_analyze_loop): Update call to
2314         vect_analyze_data_ref_dependences.
2315         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2316         New function.
2317         (vect_analyze_data_ref_dependence): Add argument for basic block
2318         dependencies. Check dependencies in basic block vectorization.
2319         (vect_analyze_data_ref_dependences): Add argument and update call to
2320         vect_analyze_data_ref_dependences.
2321         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2322         (vect_bb_vectorizable_with_dependencies): New.
2323         (vect_slp_analyze_bb): Check dependencies in basic block.
2324         (vect_schedule_slp_instance): Insert stores before the last store in
2325         SLP instance.
2326
2327 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         PR target/45476
2330         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2331         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2332
2333 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2334
2335         PR middle-end/45458
2336         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2337         bbs ending with throwing insns like blocks ending with a call.
2338         (fix_up_fall_thru_edges): Likewise.
2339
2340 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2341
2342         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2343         (m32c_function_arg_advance): Delete.
2344         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2345         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2346         comments.  Take a const_tree and a bool.  Declare.
2347         (m32c_function_arg_advance): Likewise.
2348         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2349
2350 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2351
2352         PR target/45476
2353         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2354         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2355         * config/i386/mingw32.h: ... here.
2356
2357 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2358
2359         PR lto/45475
2360         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2361         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2362         * lto-streamer-out (lto_output_ts_target_option): Add.
2363         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2364
2365 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2366
2367         PR/target 45452
2368         * config/i386/cygwin.h: Change order of specified import libraries.
2369         * config/i386/mingw32.h: Likewise.
2370         * config/i386/t-cygwin: Likewise.
2371         * config/i386/t-mingw32: Likewise.
2372         * config/i386/t-mingw-w32: Likewise.
2373         * config/i386/t-mingw-w64: Likewise.
2374
2375 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2376
2377         * config/arm/neon-schedgen.ml (core): New type.
2378         (allCores): List of supported cores.
2379         (availability_table): Add supported cores.
2380         (collate_bypasses): Accept core as a parameter.
2381         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2382         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2383         and coreStr to get tune attribute and prefix for functional units.
2384         (emit_bypasses): Accept core name and use it.
2385         (calculate_per_core_availability_table): New.
2386         (filter_core): New.
2387         (calculate_core_availability_table): New.
2388         (main): Use calculate_core_availablity_table.
2389         * config/arm/cortex-a8-neon.md: Update copyright year.
2390         Regenerated from ml file and merged in.
2391         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2392         cortex_a8_neon_mrc.
2393
2394 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2395
2396         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2397
2398 2010-09-01  Richard Guenther  <rguenther@suse.de>
2399
2400         * alias.c (ao_ref_from_mem): Adjust.
2401         * builtins.c (get_object_alignment): Likewise.
2402         * cfgexpand.c (expand_debug_expr): Likewise.
2403         * gimple.c (get_base_address): Likewise.
2404         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2405         (get_addr_base_and_unit_offset): Likewise.  Fix for
2406         both TMR_SYMBOL and TMR_BASE being set.
2407         * tree-eh.c (tree_could_trap_p): Likewise.
2408         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2409         TMR_SYMBOL.  Always gimplify TMR_BASE.
2410         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2411         TMR_BASE if there is a TMR_SYMBOL.
2412         * tree-pretty-print.c (dump_generic_node): Adjust.
2413         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2414         (tree_mem_ref_addr): Likewise.
2415         (create_mem_ref_raw): Likewise.
2416         (move_fixed_address_to_symbol): Likewise.
2417         (create_mem_ref): Likewise.
2418         (dump_mem_address): Likewise.
2419         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2420         Fix for both TMR_SYMBOL and TMR_BASE being set.
2421         (indirect_refs_may_alias_p): Likewise.
2422         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2423         * tree.def (TARGET_MEM_REF): Adjust documentation.
2424
2425 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2426
2427         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2428         Rename from X86_TUNE_ADD_ESP_4.
2429         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2430         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2431         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2432         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2433         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2434         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2435         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2436         * config/i386/i386.c (initial_ix86_tune_features)
2437         <X86_TUNE_SINGLE_POP>: Invert members.
2438         <X86_TUNE_DOUBLE_POP>: Ditto.
2439         <X86_TUNE_SINGLE_PUSH>: Ditto.
2440         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2441         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2442         No longer exported.
2443         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2444         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2445         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2446         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2447
2448 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2449
2450         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2451         a volatile LHS if the constructor has only one element.
2452
2453 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2454
2455         PR bootstrap/45321
2456         * tree.c (stdarg_p): Make fntype parameter const.
2457         * tree.h (stdarg_p): Likewise.
2458         (function_args_iterator): Remove unused fntype field.
2459         (function_args_iter_init): Do not initialize fntype
2460         field.  Make fntype parameter const.
2461
2462 2010-09-01  Richard Guenther  <rguenther@suse.de>
2463
2464         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2465         estimate.
2466         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2467         (execute_vrp): Compute number of iteration estimates.
2468         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2469         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2470         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2471         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2472         Infer loop bounds from undefined behavior based on a new parameter.
2473         (estimate_numbers_of_iterations): Likewise.
2474         (scev_probably_wraps_p): Adjust.
2475         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2476
2477 2010-09-01  Nick Clifton  <nickc@redhat.com>
2478
2479         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2480         where appropriate.
2481         (xstormy16_legitimate_address_p): Use true and false instead of 1
2482         and 0.
2483         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2484         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2485         magic constant 2.
2486         (xstormy16_expand_call): Fix comment at start of function.
2487
2488 2010-09-01  Nick Clifton  <nickc@redhat.com>
2489
2490         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2491         when pushing accumulator register.
2492         (rx_get_stack_layout): Always save call clobbered registers inside
2493         interrupt handlers.
2494         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2495
2496 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2497
2498         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2499         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2500
2501         * libgcc-std.ver (GCC_4.6.0): Define version.
2502
2503 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2504
2505         * tree-nested.c (convert_all_function_calls): Iterate until after the
2506         sum of static chains in the nest doesn't change.
2507
2508 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2509
2510         * config/m32c/m32c.c (classes_intersect): Remove.
2511         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2512         reg_classes_intersect_p instead of classes_intersect.
2513         (class_can_hold_mode): Change arguments type from enum reg_class to
2514         reg_class_t.  Use reg_class_contents instead of class_contents.
2515         (m32c_register_move_cost): Make static. Change arguments type from
2516         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2517         classes_intersect. Use reg_class_contents instead of class_contents.
2518         (m32c_memory_move_cost): Make static. Change arguments type from
2519         enum reg_class to reg_class_t.
2520         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2521         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2522         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2523         m32c_memory_move_cost): Remove.
2524
2525 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2526
2527         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2528         (arm_function_arg): Delete.
2529         (arm_needs_doubleword_align): Take a const_tree.
2530         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2531         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2532         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2533         (arm_function_arg): Make static.  Take a const_tree and a bool.
2534         (arm_function_arg_advance): Likewise.
2535         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2536
2537 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2538
2539         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2540         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2541         * lto-wrapper.c (run_gcc): Add jobserver mode.
2542         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2543         argument.
2544
2545 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2546
2547         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2548         (popsi1): Ditto.
2549         (*popdi1_epilogue): Ditto.
2550         (*popsi1_epilogue): Ditto.
2551         (popsi, popdi peephole2 patterns): Update peepholes for changed
2552         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2553
2554         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2555         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2556
2557         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2558         (override_options): Do not initialize removed ix86_gen_pop1.
2559         (gen_pop): New static function.
2560         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2561         (release_scratch_register_on_entry): Ditto.
2562         (ix86_restore_reg_using_pop): Ditto.
2563         (ix86_expand_epilogue): Ditto.
2564
2565 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2566
2567         PR middle-end/45461
2568         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2569
2570 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2571
2572         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2573         semicolons.
2574
2575 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2576
2577         * doc/extend.texi: Fix documentation of the return value of
2578         __builtin_choose_expr.
2579
2580 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2581
2582         * config/v850/v850-protos.h (function_arg): Delete.
2583         * config/v850/v850.h (FUNCTION_ARG): Delete.
2584         (FUNCTION_ARG_ADVANCE): Move code to...
2585         * config/v850/v850.c (v850_function_arg_advance): ...here.
2586         (v850_function_arg): Make static.  Take a const_tree and a bool.
2587         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2588
2589 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2590
2591         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2592         these...
2593         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2594         ...and these...
2595         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2596         ..to here..
2597         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2598         ...and here.
2599         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2600
2601 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2602
2603         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2604         Delete.
2605         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2606         * config/rx/rx.c (rx_function_arg_size): Make static.
2607         (rx_function_arg): Likewise.
2608         (rx_function_arg_advance): New function.
2609         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2610
2611 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2612
2613         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2614         Fix indentation.
2615
2616 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2617
2618         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2619         (dwarf2out_decl) <CONST_DECL>: Likewise.
2620
2621 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2622
2623         Stack usage support
2624         * common.opt (-fstack-usage): New option.
2625         * doc/invoke.texi (Debugging options): Document it.
2626         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2627         allocate_dynamic_stack_space.
2628         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2629         and propagate it to allocate_dynamic_stack_space.
2630         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2631         * calls.c (initialize_argument_information): Pass TRUE as 4th
2632         argument to allocate_dynamic_stack_space.
2633         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2634         to 1 when pushing a variable-sized argument onto the stack.  Pass
2635         TRUE as 4th argument to allocate_dynamic_stack_space.
2636         Update current_function_pushed_stack_size.
2637         (emit_library_call_value_1): Likewise.
2638         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2639         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2640         attempt to find an upper bound.  Remove redundant code for the
2641         SETJMP_VIA_SAVE_AREA case.
2642         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2643         * function.h (struct stack_usage): New structure.
2644         (current_function_static_stack_size): New macro.
2645         (current_function_dynamic_stack_size): Likewise.
2646         (current_function_pushed_stack_size): Likewise.
2647         (current_function_dynamic_alloc_count): Likewise.
2648         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2649         (current_function_allocates_dynamic_stack_space): Likewise.
2650         (struct function): Add new field 'su'.
2651         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2652         add the value of the dynamic offset to the dynamic stack usage.
2653         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2654         for variable-sized objects.
2655         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2656         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2657         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2658         BUILT_IN_ALLOCA for variable-sized objects.
2659         * output.h (output_stack_usage): Declare.
2660         * toplev.c (stack_usage_file): New file pointer.
2661         (output_stack_usage): New function.
2662         (open_auxiliary_file): Likewise.
2663         (lang_dependent_init): Open file if flag_stack_usage is set.
2664         (finalize): Close file if stack_usage_file is not null.
2665         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2666         * config/alpha/alpha.c (compute_frame_size): New function.
2667         (alpha_expand_prologue): Use it.
2668         (alpha_start_function): Likewise.
2669         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2670         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2671         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2672         * config/mips/mips.c (mips_expand_prologue): Likewise.
2673         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2674         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2675         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2676
2677 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2678
2679         PR tree-optimization/45427
2680         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2681         Handle the case that the exit is never taken correctly.
2682         (number_of_iterations_ne): Pass exit_must_be_taken to
2683         number_of_iterations_ne_max.
2684
2685 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2686
2687         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2688         Infer -mdspr2 for the the 74K.
2689
2690 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2691
2692         PR debug/45419
2693         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2694
2695         PR middle-end/45423
2696         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2697         and TRUTH_{AND,OR,XOR}_EXPR.
2698         * c-parser.c (c_parser_omp_atomic): Handle boolean
2699         {PRE,POST}_{INC,DEC}REMENT.
2700
2701 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2702
2703         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2704         (function_arg): Delete.
2705         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2706         (FUNCTION_INCOMING_ARG): Delete.
2707         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2708         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2709         and a bool.
2710         (function_arg): Rename to...
2711         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2712         a bool.
2713         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2714         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2715         (TARGET_FUNCTION_INCOMING_ARG): Define.
2716
2717 2010-08-30  Richard Guenther  <rguenther@suse.de>
2718
2719         PR tree-optimization/21602
2720         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2721         using points-to information.
2722
2723 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
2724
2725         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2726
2727 2010-08-30  Richard Guenther  <rguenther@suse.de>
2728
2729         PR tree-optimization/45449
2730         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2731         variables.
2732
2733 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
2734
2735         * opts.h (CL_ERR_NEGATIVE): Define.
2736         * opts.c (unknown_option_callback): Don't postpone warnings for
2737         options marked with CL_ERR_NEGATIVE.
2738         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2739         for negative versions of CL_REJECT_NEGATIVE options.
2740
2741 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2742
2743         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2744         zero_extendsidi2_32.
2745         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2746         using SWI12 mode iterator.
2747         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2748         to define_insn_and_split pattern.
2749         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2750         using SWI24 mode iterator.
2751         (*zero_extendqi<mode>2_and): Macroize insn from
2752         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2753         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2754         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2755         SWI24 mode iterator.
2756         (*zero_extendqi<mode>2_movzbl): Ditto from
2757         *zero_extendqi{hi,si}2_movzbl.
2758         (extendsidi2_1): Rename from extendsidi2_32.
2759         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2760         SWI12 mode iterator.
2761
2762 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2763
2764         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2765         general purpose registers.
2766         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2767         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2768         with general purpose registers and memory operands.  Add associated
2769         CCImode post-reload splitter.
2770         * config/ia64/div.md: Change BImode to CCImode throughout.
2771
2772 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2773
2774         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2775
2776 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2777
2778         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2779         function was dropping debug insns which caused PR45299.
2780
2781 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2782
2783         * config/i386/sse.md (extsuffix): New code attribute.
2784         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2785         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2786         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2787         and sse4_1_zero_extendv4qiv4si2.
2788         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2789         and sse4_1_zero_extendv2qiv2di2.
2790         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2791         and sse4_1_zero_extendv4hiv4si2.
2792         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2793         and sse4_1_zero_extendv2hiv2di2.
2794         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2795         and sse4_1_zero_extendv2siv2di2
2796
2797         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2798         using any_extend code iterator.
2799         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2800         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2801         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2802
2803         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2804         gen_sse4_1_sign_extend* functions.
2805         (struct builtin_description bdesc_args): Ditto.
2806
2807 2010-08-27  Xinliang David Li  <davidxl@google.com>
2808
2809         PR/45422
2810         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2811         (iv_ca_set_no_cp): Update used inv expr count.
2812         (iv_ca_set_cp): Ditto.
2813         (iv_ca_new): Initialize new member.
2814         (iv_ca_free): Free memory.
2815
2816 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2817
2818         * config/sh/sh-protos.h (sh_function_arg): Delete.
2819         (sh_function_arg_advance): Delete.
2820         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2821         (PASS_IN_REG_P): Eliminate cast.
2822         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2823         const_tree and a bool.
2824         (sh_function_arg): Likewise.
2825         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2826         sh_function_arg.
2827         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2828
2829 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2830             Kaz Kojima  <kkojima@gcc.gnu.org>
2831
2832         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2833         when possible.
2834         (sh_expand_epilogue): Likewise.
2835         * config/sh/sh.md (movml_push_banked): New insn.
2836         (movml_pop_banked): Likewise.
2837
2838 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2839
2840         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2841         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2842         in vector element 0 rather than the original string when there's
2843         only one element.
2844         (gen_regexp): Remove extra semicolon.
2845
2846         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2847         thumb2_movsf_vfp): Set attribute "insn".
2848         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2849         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2850         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2851         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2852         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2853         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2854         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2855         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2856         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2857         if_not_arith, if_arith_not, cond_move_not): Likewise.
2858
2859 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2860
2861         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2862         New declaration.
2863         (rs6000_allocate_stack_temp): Ditto.
2864         (rs6000_expand_convert_si_to_sfdf): Ditto.
2865
2866         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2867         line.  Update the options set if power6 or power7 server/embedded
2868         type options are used.  If we give a warning for no vsx under
2869         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2870         (rs6000_allocate_stack_temp): New function to allocate a stack
2871         tempoary and adjust the address so it meets either REG+OFFSET or
2872         REG+REG addressing requirements.
2873         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2874         that they can be used with the LFIWAX/LFIWZX instrucitons.
2875         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2876         converting signed/unsigned SImode to either SFmode/DFmode.
2877
2878         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2879         whether certain instructions can be generated.
2880         (TARGET_FCTIDZ): Ditto.
2881         (TARGET_STFIWX): Ditto.
2882         (TARGET_LFIWAX): Ditto.
2883         (TARGET_LFIWZX): Ditto.
2884         (TARGET_FCFIDS): Ditto.
2885         (TARGET_FCFIDU): Ditto.
2886         (TARGET_FCFIDUS): Ditto.
2887         (TARGET_FCTIDUZ): Ditto.
2888         (TARGET_FCTIWUZ): Ditto.
2889
2890         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2891         (UNSPEC_FCTID): Ditto.
2892         (UNSPEC_LFIWAX): Ditto.
2893         (UNSPEC_LFIWZX): Ditto.
2894         (UNSPEC_FCTIWUZ): Ditto.
2895         (rreg): Use correct constraints.
2896         (SI_CONVERT_FP): New mode attribute for floating point conversion
2897         tests.
2898         (E500_CONVERT): Ditto.
2899         (lfiwax): New insns for converting from integer to floating point
2900         utilizing newer instructions.  Attempt to optimize conversions
2901         that come from memory so that we don't load the value into a GPR,
2902         spill it to the stack and reload it into a FPR.
2903         (floatsi<mode>2_lfiwax): Ditto.
2904         (floatsi<mode>2_lfiwax_mem): Ditto.
2905         (floatsi<mode>2_lfiwax_mem2): Ditto.
2906         (lfiwzx): Ditto.
2907         (floatunssi<mode>2_lfiwzx): Ditto.
2908         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2909         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2910         (floatdidf2_mem): Ditto.
2911         (floatunsdidf2_fcfidu): Ditto.
2912         (floatunsdidf2_mem): Ditto.
2913         (floatunsdisf2): Ditto.
2914         (floatunsdisf2_fcfidus): Ditto.
2915         (floatunsdisf2_mem): Ditto.
2916         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2917         Use FCFID on 32-bit hosts that support it.
2918         (floatsidf2_internal): Ditto.
2919         (floatunssisf2): Ditto.
2920         (floatunssidf2): Ditto.
2921         (floatunssidf2_internal): Ditto.
2922         (floatsisf2): Ditto.
2923         (floatdidf2): Ditto.
2924         (floatdidf2_fpr): Ditto.
2925         (floatunsdidf2): Ditto.
2926         (floatdisf2): Ditto.
2927         (floatdisf2_fcfids): Ditto.
2928         (floatdisf2_internal1): Ditto.
2929         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2930         SF/DF.  Add power7 support.
2931         (fix_truncsfsi2): Ditto.
2932         (fixuns_truncdfsi2): Ditto.
2933         (fixuns_truncdfdi2): Ditto.
2934         (fix_truncdfsi2): Ditto.
2935         (fix_truncdfsi2_internal): Ditto.
2936         (fix_truncdfsi2_internal_gfxopt): Ditto.
2937         (fix_truncdfsi2_mfpgpr): Ditto.
2938         (fctiwz): Ditto.
2939         (btruncdf2): Ditto.
2940         (btruncdf2_fpr): Ditto.
2941         (btructsf2): Ditto.
2942         (ceildf2): Ditto.
2943         (ceildf2_fpr): Ditto.
2944         (ceilsf2): Ditto.
2945         (floordf2): Ditto.
2946         (floordf2_fpr): Ditto.
2947         (floorsf2): Ditto.
2948         (rounddf2): Ditto.
2949         (rounddf2_fpr): Ditto.
2950         (roundsf2): Ditto.
2951         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2952         (fix_trunc<mode>di2): Ditto.
2953         (fixuns_trunc<mode>si2): Ditto.
2954         (fixuns_trunc<mode>di2): Ditto.
2955         (fctiwz_<mode>): Ditto.
2956         (btrunc<mode>2): Ditto.
2957         (btrunc<mode>2_fpr): Ditto.
2958         (ceil<mode>2): Ditto.
2959         (ceil<mode>2_fpr): Ditto.
2960         (floor<mode>2): Ditto.
2961         (float<mode>2_fpr): Ditto.
2962         (round<mode>2): Ditto.
2963         (round<mode>2_fpr): Ditto.
2964         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2965         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2966         (fix_truncdfsi2_internal): Ditto.
2967         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2968         converted value on stack, loaded into GPR, and then stored into
2969         the final destination.
2970         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2971         FCTIDZ.
2972         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2973         (ftruncdf2): Delete, unused.
2974         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2975
2976         * config/rs6000/vsx.md (toplevel): Update copyright year.
2977         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2978         (VSr3): Ditto.
2979
2980 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2981             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2982
2983         * gengtype.c (output_type_enum): Test the right union member.
2984
2985 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2986
2987         PR target/41484
2988         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2989         operands for operand 1.
2990         (sse4_1_extendv4qiv4si2): Ditto.
2991         (sse4_1_extendv2qiv2di2): Ditto.
2992         (sse4_1_extendv4hiv4si2): Ditto.
2993         (sse4_1_extendv2hiv2di2): Ditto.
2994         (sse4_1_extendv2siv2di2): Ditto.
2995         (sse4_1_zero_extendv8qiv8hi2): Ditto.
2996         (sse4_1_zero_extendv4qiv4si2): Ditto.
2997         (sse4_1_zero_extendv2qiv2di2): Ditto.
2998         (sse4_1_zero_extendv4hiv4si2): Ditto.
2999         (sse4_1_zero_extendv2hiv2di2): Ditto.
3000         (sse4_1_zero_extendv2siv2di2): Ditto.
3001         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
3002         (*sse4_1_extendv4qiv4si2): Ditto.
3003         (*sse4_1_extendv2qiv2di2): Ditto.
3004         (*sse4_1_extendv4hiv4si2): Ditto.
3005         (*sse4_1_extendv2hiv2di2): Ditto.
3006         (*sse4_1_extendv2siv2di2): Ditto.
3007         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
3008         (*sse4_1_zero_extendv4qiv4si2): Ditto.
3009         (*sse4_1_zero_extendv2qiv2di2): Ditto.
3010         (*sse4_1_zero_extendv4hiv4si2): Ditto.
3011         (*sse4_1_zero_extendv2hiv2di2): Ditto.
3012         (*sse4_1_zero_extendv2siv2di2): Ditto.
3013
3014 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3015
3016         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
3017         (mips_function_arg): Delete.
3018         (mips_function_arg_boundary): Take a const_tree.
3019         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
3020         (mips_arg_info): Likewise.
3021         (mips_setup_incoming_varargs): Call mips_function_arg_advance
3022         instead of FUNCTION_ARG_ADVANCE.
3023         (mips_function_arg_advance): Adjust prototype.  Make static.
3024         (mips_function_arg): Likewise.
3025         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3026         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3027
3028 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3029
3030         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3031         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
3032         (function_arg): Delete.
3033         (function_arg_boundary): Take a const_tree.
3034         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
3035         (rs6000_spe_function_arg): Likewise.
3036         (rs6000_parm_start): Likewise.
3037         (rs6000_arg_size): Likewise.
3038         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
3039         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
3040         (rs6000_mixed_function_arg): Likewise.
3041         (function_arg): Rename to...
3042         (rs6000_function_arg): ...this.
3043         (function_arg_advance): Rename to...
3044         (rs6000_function_arg_advance_1): ...this
3045         (rs6000_function_arg_advance): New function.  Call it.
3046         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
3047         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
3048         (rs6000_function_value): Likewise.
3049         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3050
3051 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3052
3053         * config/arm/arm.md (enabled): Test the value of arch_enabled
3054         rather than just using it.
3055
3056 2010-08-27  Olivier Hainque  <hainque@adacore.com>
3057             Eric Botcazou  <ebotcazou@adacore.com>
3058
3059         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
3060         cover all the possible offsets from this base.
3061         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
3062
3063 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
3064
3065         PR tree-optimization/44485
3066         * calls.c (flags_from_decl_or_type): For const or pure
3067         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
3068         together with ECF_CONST resp. ECF_PURE.
3069         * builtins.c (expand_builtin): Use flags_from_decl_or_type
3070         instead of querying flags directly.
3071         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
3072         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3073
3074 2010-08-26  Richard Guenther  <rguenther@suse.de>
3075
3076         PR tree-optimization/45255
3077         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
3078         and externals are also invariant.
3079
3080 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3081
3082         PR rtl-optimization/44858
3083         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
3084         newi2pat, make sure they don't affect newpat.
3085
3086         PR rtl-optimization/45400
3087         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
3088         SUBREG_REG if both modes are of MODE_INT class.
3089
3090 2010-08-25  Julian Brown  <julian@codesourcery.com>
3091
3092         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
3093         * config/arm/arm.md (generic_sched): No for Cortex-A5.
3094         (generic_vfp): Likewise.
3095         (cortex-a5.md): Include.
3096         * config/arm/cortex-a5.md: New.
3097
3098 2010-08-25  Richard Guenther  <rguenther@suse.de>
3099
3100         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
3101         * gimple.c (gimple_get_alias_set): Remove special handling
3102         for pointers.
3103
3104 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3105
3106         PR middle-end/45355
3107         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
3108         dead_or_set_p when computing i0_feeds_i2_n.
3109
3110         * combine.c (find_split_point): Undo canonicalization of multiply-add
3111         to (minus x (mult)) when it seems likely that this will increase the
3112         chances of a split.
3113
3114 2010-08-25  Richard Guenther  <rguenther@suse.de>
3115
3116         PR lto/44562
3117         * lto-streamer.c (lto_record_common_node): Do not mess with
3118         TYPE_CANONICAL when not in lto.
3119         * gimple.c (gimple_register_type): Likewise.
3120
3121 2010-08-25  Richard Guenther  <rguenther@suse.de>
3122
3123         PR tree-optimization/45316
3124         * tree-ssa-pre.c (eliminate): Properly clean EH info.
3125
3126 2010-08-25  Richard Guenther  <rguenther@suse.de>
3127
3128         PR tree-optimization/45393
3129         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
3130         and clean EH info.  Avoid SSA update.
3131         (execute_cse_sincos): Cleanup the CFG if it has changed.
3132
3133 2010-08-25  Richard Guenther  <rguenther@suse.de>
3134
3135         PR middle-end/45379
3136         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
3137         TARGET_MEM_REF in alignment computation.
3138
3139 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3140
3141         PR tree-optimization/45059
3142         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
3143         type conversions from newop{1,2}.  Assert t is a comparison and
3144         newop{1,2} after the stripping are gimple vals.
3145
3146 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
3147
3148         * config/arm/iterators.md (VU, SE, V_widen_l): New.
3149         (V_unpack, US): New.
3150         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
3151         (vec_unpack<US>_lo_<mode>): Likewise.
3152         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
3153         (neon_vec_unpack<US>_lo_<mode>): Likewise.
3154         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
3155         (vec_widen_<US>mult_hi_<mode>): Likewise.
3156         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
3157         (neon_vec_<US>mult_hi_<mode>"): Likewise.
3158         (neon_unpack<US>_<mode>): Widening move intermediate step for
3159         vectorizing without -mvectorize-with-neon-quad.
3160         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
3161         for vectorizing without -mvectorize-with-neon-quad.
3162         * config/arm/predicates.md (vect_par_constant_high): Check for
3163         high-half lanes of a vector.
3164         (vect_par_constant_low): Check for low-half lanes of a vector.
3165
3166 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3167
3168         * tree-if-conv.c (struct ifc_dr): New.
3169         (IFC_DR): New.
3170         (DR_WRITTEN_AT_LEAST_ONCE): New.
3171         (DR_RW_UNCONDITIONALLY): New.
3172         (memref_read_or_written_unconditionally): Use the cached values
3173         when possible.
3174         (write_memref_written_at_least_once): Same.
3175         (if_convertible_loop_p): Initialize and free DR->aux fields.
3176
3177 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3178
3179         * gimple.c (gimple_could_trap_p_1): Not static anymore.
3180         Pass an extra bool parameter include_mem.
3181         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3182         (gimple_assign_rhs_could_trap_p): Same.
3183         * gimple.h (gimple_could_trap_p_1): Declared.
3184         * tree-data-ref.h (same_data_refs_base_objects): New.
3185         (same_data_refs): New.
3186         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3187         (write_memrefs_written_at_least_once): New.
3188         (ifcvt_memrefs_wont_trap): New.
3189         (operations_could_trap): New.
3190         (ifcvt_could_trap_p): New.
3191         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3192         Gets a vector of data refs.
3193         (if_convertible_stmt_p): Same.
3194         (if_convertible_loop_p_1): New.
3195         (if_convertible_loop_p): Call if_convertible_loop_p_1.
3196
3197 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3198
3199         * common.opt (ftree-loop-if-convert-stores): New flag.
3200         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3201         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
3202         the created statement before GSI.
3203         (if_convertible_phi_p): Allow virtual phi nodes when
3204         flag_loop_if_convert_stores is set.
3205         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3206         Do not handle types that do not match is_gimple_reg_type.
3207         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
3208         when flag_loop_if_convert_stores is set, as LHS can contain
3209         memory refs.
3210         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
3211         to if_convertible_gimple_assign_stmt_p.
3212         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3213         (replace_phi_with_cond_gimple_assign_stmt): Renamed
3214         predicate_scalar_phi.  Do not handle virtual phi nodes.
3215         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3216         Call predicate_scalar_phi.
3217         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3218         just after the labels for flag_loop_if_convert_stores, otherwise
3219         insert the predicate in the end of the BB.
3220         (predicate_mem_writes): New.
3221         (combine_blocks): Call predicate_all_scalar_phis.  When
3222         flag_loop_if_convert_stores is set, call predicate_mem_writes.
3223         (tree_if_conversion): Call mark_sym_for_renaming when
3224         flag_loop_if_convert_stores is set.
3225         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3226         flag_loop_if_convert_stores is set.
3227
3228 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
3229
3230         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3231         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3232         (pa_function_value): Make static.
3233         (override_options): Rename to...
3234         (pa_option_override): ...this. Make static.
3235         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3236         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3237         TARGET_OPTION_OVERRIDE): Define.
3238         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3239         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3240         Remove.
3241         * config/pa/pa-protos.h (override_options): Remove.
3242
3243 2010-08-24  Richard Guenther  <rguenther@suse.de>
3244
3245         PR middle-end/45379
3246         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3247         if addr->index is NULL or zero.
3248         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3249         TARGET_MEM_REF more properly.
3250         (indirect_ref_may_alias_decl_p): Likewise.
3251         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3252         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3253
3254 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
3255
3256         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3257         (m32c_override_options): Rename to...
3258         (m32c_option_override): ...this. Make static.
3259         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3260         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3261         Remove.
3262         * config/m32c/m32c-protos.h (m32c_override_options,
3263         m32c_function_value_regno_p): Remove.
3264
3265 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3266
3267         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3268         Fix a typo in a previous commit.
3269
3270 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
3271
3272         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3273         Pre-initialize innerloop_iters to one.
3274
3275 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3276
3277         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3278         existing static function global.
3279
3280         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3281         is changed to global.
3282
3283         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3284         may_be_nonaddressable_p on base, and don't collect this reference
3285         if the address of the base could not be taken.
3286
3287 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3288
3289         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3290         enable the compiler to autovectorize mathmetical functions for
3291         power7 using the Mathematical Acceleration Subsystem library.
3292
3293         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3294         handle which vector math library we have.
3295         (rs6000_override_options): Add -mveclibabi=mass support.
3296         (rs6000_builtin_vectorized_libmass): New function to handle auto
3297         vectorizing math functions that are in the MASS library.
3298         (rs6000_builtin_vectorized_function): Call it.
3299
3300         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3301         -mveclibabi=mass.
3302
3303 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3304
3305         PR boehm-gc/34544
3306         * gthr-posix.h (__gthread_active_init): Delete.
3307         (__gthread_active_p): Do activity check here.
3308         Don't include errno.h on hppa-hpux.  Update comment.
3309         * gthr-posix95.h (__gthread_active_init): Delete.
3310         (__gthread_active_p): Do activity check here.
3311         Don't include errno.h on hppa-hpux.  Update comment.
3312         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3313         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3314         add -lpthread when -mt or -pthread is specified.
3315         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3316         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3317         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3318         (stublib.c, pthread_default_stacksize_np-stub.o,
3319         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3320         $(T)libgcc_stub.a): Add methods.
3321         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3322         (stublib.c, pthread_default_stacksize_np-stub.o,
3323         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3324         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3325         pthread_mutex_unlock): New stubs.
3326
3327 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3328
3329         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3330         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3331         options.
3332         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3333         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3334         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3335         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3336         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3337         "-l".
3338         * cppspec.c: Include opts.h.
3339         (lang_specific_driver): Use cl_decoded_option structures.
3340         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3341         * doc/tm.texi: Regenerate.
3342         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3343         (driver_handle_option): Allow driver options needing no special
3344         processing.
3345         (process_command): Decode options before call to
3346         lang_specific_driver.  Pass decoded options to
3347         lang_specific_driver.
3348         * gcc.h (lang_specific_driver): Update prototype.
3349         * gccspec.c: Include opts.h.
3350         (lang_specific_driver): Use cl_decoded_option structures.
3351         * opts-common.c (option_ok_for_language, generate_option,
3352         generate_option_input_file): New.
3353         (decode_cmdline_option): Use option_ok_for_language.
3354         (decode_cmdline_options_to_array): Use generate_option_input_file.
3355         (handle_generated_option): Use generate_option.
3356         * opts.h (generate_option, generate_option_input_file): Declare.
3357
3358 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3359
3360         * config/mips/mips.c (mips_override_options): Rename to...
3361         (mips_option_override): ...this. Make static.
3362         (TARGET_OPTION_OVERRIDE): Define.
3363         (mips_in_small_data_p): Update comment.
3364         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3365         (FIXED_REGISTERS): Update comment.
3366         * config/mips/mips-protos.h (mips_override_options): Remove.
3367
3368 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3369
3370         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3371
3372 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3373
3374         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3375         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3376
3377 2010-08-20  Jan Hubicka  <jh@suse.cz>
3378
3379         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3380         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3381         heap allocated.
3382         (record_cdtor_fn): Move to ipa.c; do not test for
3383         have_ctors_dtors.
3384         (build_cdtor): Move to ipa.c; add code avoiding construction
3385         when target have ctors/dtors and there is only one ctor/dtor at given
3386         priority.
3387         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3388         sort; reverse order of constructors.
3389         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3390         (cgraph_finalize_function): Do not call record_cdtor_fn.
3391         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3392         (cgraph_build_static_cdtor): Move to ipa.c.
3393         * ipa.c: Include target.h and tree-iterator.h.
3394         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3395         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3396         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3397         pass_ipa_cdtor_merge): New.
3398         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3399         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3400         bounds access.
3401
3402 2010-08-20  Jan Hubicka  <jh@suse.cz>
3403
3404         PR c++/45307
3405         PR c++/17736
3406         * cgraph.h (cgraph_only_called_directly_p,
3407         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3408         static cdtors.
3409         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3410         are not needed.
3411         (cgraph_finalize_function): Static cdtors are reachable.
3412         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3413
3414 2010-08-20  Jan Hubicka  <jh@suse.cz>
3415
3416         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3417         flag_wpa.
3418         * lto-streamer-out.c (lto_output): Likewise.
3419         * passes.c (ipa_write_optimization_summaries): Initialize statement
3420         uids.
3421
3422 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3423
3424         * tree.h (alias_diag_flags): New enum.
3425         (alias_pair): Add an 'emitted_diags' field.
3426         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3427         (assemble_alias): Initialize emitted_diags of new pairs.
3428
3429 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3430
3431         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3432         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3433         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3434         (STACK_CHECK_PROTECT): Define.
3435         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3436         (output_probe_stack_range): Likewise.
3437         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3438         builtin stack checking is enabled.
3439         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3440         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3441         (probe_stack_range): New insn.
3442
3443 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3444
3445         PR target/45336
3446         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3447         short first.
3448
3449         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3450         char first.
3451
3452 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3453
3454         PR target/45336
3455         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3456         to cover zero extension into 64-bit register.
3457         (*sse2_pextrw): Likewise.
3458         (*sse4_1_pextrd_zext): New insn.
3459
3460 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3461
3462         revert r163410, partially revert r163267.
3463         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3464         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3465         Darwin versions.
3466
3467 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3468
3469         PR middle-end/44974
3470         * builtins.c (expand_builtin): Don't optimize away
3471         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3472
3473 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3474
3475         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3476         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3477         alternative 1 of operand 2.
3478
3479 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3480             Paolo Bonzini  <bonzini@gnu.org>
3481
3482         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3483         (sign_extend (zero_extend (...)) and
3484         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3485
3486 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3487
3488         PR rtl-optimization/45353
3489         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3490         after bb_note is a BARRIER.
3491
3492 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3493
3494         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3495         linking libgcc.a.
3496
3497 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3498             Michael Matz  <matz@suse.de>
3499
3500         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3501
3502 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3503
3504         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3505         (ggc_mark_roots): ...here.
3506
3507 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3508
3509         * vec.h (FOR_EACH_VEC_ELT): Define.
3510         * c-decl.c: Use it.
3511         * cfgloop.c: Likewise.
3512         * cfgloopmanip.c: Likewise.
3513         * cgraph.c: Likewise.
3514         * cgraphunit.c: Likewise.
3515         * combine.c: Likewise.
3516         * config/bfin/bfin.c: Likewise.
3517         * config/mips/mips.c: Likewise.
3518         * config/rs6000/rs6000.c: Likewise.
3519         * dbxout.c: Likewise.
3520         * df-scan.c: Likewise.
3521         * dominance.c: Likewise.
3522         * dse.c: Likewise.
3523         * dwarf2out.c: Likewise.
3524         * except.c: Likewise.
3525         * expr.c: Likewise.
3526         * function.c: Likewise.
3527         * gcse.c: Likewise.
3528         * genattr.c: Likewise.
3529         * ggc-common.c: Likewise.
3530         * gimplify.c: Likewise.
3531         * graphite-blocking.c: Likewise.
3532         * graphite-clast-to-gimple.c: Likewise.
3533         * graphite-dependences.c: Likewise.
3534         * graphite-interchange.c: Likewise.
3535         * graphite-poly.c: Likewise.
3536         * graphite-scop-detection.c: Likewise.
3537         * graphite-sese-to-poly.c: Likewise.
3538         * graphite.c: Likewise.
3539         * haifa-sched.c: Likewise.
3540         * ifcvt.c: Likewise.
3541         * implicit-zee.c: Likewise.
3542         * ipa-prop.c: Likewise.
3543         * ipa-struct-reorg.c: Likewise.
3544         * ipa.c: Likewise.
3545         * ira-build.c: Likewise.
3546         * ira-color.c: Likewise.
3547         * ira-emit.c: Likewise.
3548         * lambda-code.c: Likewise.
3549         * loop-invariant.c: Likewise.
3550         * loop-unroll.c: Likewise.
3551         * lower-subreg.c: Likewise.
3552         * lto-cgraph.c: Likewise.
3553         * lto-opts.c: Likewise.
3554         * lto-streamer-in.c: Likewise.
3555         * lto-streamer-out.c: Likewise.
3556         * lto-streamer.c: Likewise.
3557         * lto-symtab.c: Likewise.
3558         * matrix-reorg.c: Likewise.
3559         * opts.c: Likewise.
3560         * predict.c: Likewise.
3561         * print-tree.c: Likewise.
3562         * sdbout.c: Likewise.
3563         * sel-sched-dump.c: Likewise.
3564         * sel-sched-ir.c: Likewise.
3565         * sel-sched.c: Likewise.
3566         * sese.c: Likewise.
3567         * stor-layout.c: Likewise.
3568         * tree-cfg.c: Likewise.
3569         * tree-cfgcleanup.c: Likewise.
3570         * tree-chrec.c: Likewise.
3571         * tree-data-ref.c: Likewise.
3572         * tree-emutls.c: Likewise.
3573         * tree-inline.c: Likewise.
3574         * tree-into-ssa.c: Likewise.
3575         * tree-loop-distribution.c: Likewise.
3576         * tree-loop-linear.c: Likewise.
3577         * tree-mudflap.c: Likewise.
3578         * tree-outof-ssa.c: Likewise.
3579         * tree-parloops.c: Likewise.
3580         * tree-predcom.c: Likewise.
3581         * tree-pretty-print.c: Likewise.
3582         * tree-scalar-evolution.c: Likewise.
3583         * tree-ssa-live.c: Likewise.
3584         * tree-ssa-loop-im.c: Likewise.
3585         * tree-ssa-loop-ivcanon.c: Likewise.
3586         * tree-ssa-loop-ivopts.c: Likewise.
3587         * tree-ssa-loop-manip.c: Likewise.
3588         * tree-ssa-loop-niter.c: Likewise.
3589         * tree-ssa-loop-prefetch.c: Likewise.
3590         * tree-ssa-phiprop.c: Likewise.
3591         * tree-ssa-pre.c: Likewise.
3592         * tree-ssa-reassoc.c: Likewise.
3593         * tree-ssa-sccvn.c: Likewise.
3594         * tree-ssa-structalias.c: Likewise.
3595         * tree-ssa.c: Likewise.
3596         * tree-vect-data-refs.c: Likewise.
3597         * tree-vect-loop-manip.c: Likewise.
3598         * tree-vect-loop.c: Likewise.
3599         * tree-vect-patterns.c: Likewise.
3600         * tree-vect-slp.c: Likewise.
3601         * tree-vect-stmts.c: Likewise.
3602         * tree-vrp.c: Likewise.
3603         * tree.c: Likewise.
3604         * value-prof.c: Likewise.
3605         * var-tracking.c: Likewise.
3606         * varasm.c: Likewise.
3607         * vmsdbgout.c: Likewise.
3608
3609 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3610             Richard Guenther  <richard.guenther@gmail.com>
3611
3612         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3613         copy the src value and return a copy.
3614         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3615         (C++ Volatiles): Adjust to describe C++ semantics only.
3616
3617 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
3618
3619         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3620         be zero or nonzero.
3621         * doc/tm.texi: Regenerate.
3622         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3623         * df-scan.c (df_get_exit_block_use_set), reginfo.c
3624         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3625         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3626         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3627         to 1.
3628
3629 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3630
3631         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3632         an extra nop past a sibling call at the very end.
3633
3634 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3635
3636         PR bootstrap/45350
3637         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
3638         a comment.
3639
3640 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3641
3642         * target.def (function_arg, function_incoming_arg): Remove const
3643         qualifier on CUMULATIVE_ARGS parameter.
3644         * targhooks.h (default_function_arg, default_function_incoming_arg):
3645         Likewise.
3646         * targhooks.c (default_function_arg, default_function_incoming_arg):
3647         Likewise.
3648         * config/i386/i386.c (ix86_function_arg): Likewise.
3649
3650 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
3651
3652         PR target/45336
3653         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3654         SIGN_EXTENDs or ZERO_EXTENDs.
3655
3656 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3657
3658         PR target/42172
3659         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
3660         Take its cost into account if nonnull.
3661         (insn_a_feeds_b): New static function.
3662         (combine_instructions): Look for four-insn combinations.
3663         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
3664         them into account when computing all_adjacent and looking for other
3665         uses.
3666         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
3667         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
3668         (try_combine): New arg I0.  Handle four-insn combinations.
3669         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
3670         like ELIM_I1.
3671
3672 2010-08-19  Jason Merrill  <jason@redhat.com>
3673
3674         PR c++/45307
3675         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3676         if ctor is empty.
3677         (gimplify_modify_expr_rhs): Adjust.
3678
3679 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3680
3681         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3682         bitmap_bit_p.
3683         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3684         * dominance.c (iterate_fix_dominators): Likewise.
3685         * dse.c (set_usage_bits): Likewise.
3686         (set_position_unneeded, record_store): Likewise.
3687         * gimple-fold.c (get_maxval_strlen): Likewise.
3688         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3689         * ipa-inline.c (update_caller_keys): Likewise.
3690         * ipa-split.c (verify_non_ssa_vars): Likewise.
3691         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3692         (close_type_exposed_parameter, close_type_full_escape): Likewise.
3693         (close_addressof_down): Likewise.
3694         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3695         (setup_allocno_left_conflicts_size): Likewise.
3696         (ira_reassign_conflict_allocnos): Likewise.
3697         (ira_reassign_pseudos): Likewise.
3698         * ira-emit.c (change_loop): Likewise.
3699         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3700         * lto-streamer-out.c (write_symbol): Likewise.
3701         * predict.c (expr_expected_value_1): Likewise.
3702         * regstat.c (regstat_bb_compute_ri): Likewise.
3703         * sel-sched.c (create_block_for_bookkeeping): Likewise.
3704         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3705         * stmt.c (expand_case): Likewise.
3706         * tree-eh.c (emit_eh_dispatch): Likewise.
3707         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3708         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3709         Likewise.
3710         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3711         (rdg_build_components): Likewise.
3712         * tree-object-size.c (collect_object_sizes_for): Likewise.
3713         * tree-sra.c (convert_callers): Likewise.
3714         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3715         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3716         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3717
3718 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3719
3720         * config/i386/i386.md (*lea_1): Use P mode iterator.
3721         (lea add splitter): Also handle DImode operands.
3722         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
3723         predicate.  Do not use ix86_lea_for_add_ok.
3724         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
3725         (lea ashift splitter): Also handle DImode operands.
3726         (DImode lea ashift splitter): Remove splitter.
3727
3728 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3729
3730         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
3731         ix86_binary_operator_ok.
3732
3733 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
3734
3735         PR rtl-optimization/44691
3736         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3737         is not a register.
3738
3739 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3740
3741         PR target/45070
3742         * config/arm/arm.c (arm_output_epilogue): Ensure that return
3743          value of size 1-3 is handled correctly.
3744
3745 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3746
3747         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3748         type for the conditional has wide enough range.
3749
3750 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3751
3752         PR target/45327
3753         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3754         ix86_binary_operator_ok.
3755
3756 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3757
3758         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3759         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
3760         code to output insn mnemonic.  Fix comment.
3761         (*addsi_1_zext): Add r-r-0 alternative 1.
3762         <TYPE_LEA>: Split insn to lea.
3763         <default>: Handle alternative 1.
3764         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
3765         multi-level if_then_else RTX to set "type" attribute.
3766         <default>: Handle alternative 2.
3767         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3768         Use cond RTX instead of multi-level if_then_else RTX to set
3769         "type" attribute.
3770         <default>: Handle alternatives 2 and 4.
3771         (lea splitters): Update calls to ix86_lea_for_add_ok.
3772
3773         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3774         argument.
3775         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3776
3777 2010-08-18  Richard Guenther  <rguenther@suse.de>
3778
3779         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3780         use operand helpers.
3781
3782 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3783
3784         PR middle-end/45292
3785         * optabs.c (expand_bool_compare_and_swap): Expand pending
3786         pops before trying the optab.
3787
3788 2010-08-18  Yao Qi  <yao@codesourcery.com>
3789
3790         PR target/45094
3791         * config/arm/arm.c (output_move_double): Fix typo generating
3792         instructions ('ldr'->'str').
3793
3794 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3795
3796         PR rtl-optimization/42575
3797         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3798         live ranges.
3799
3800 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3801
3802         * config/arm/arm-protos.h (arm_expand_sync): New.
3803         (arm_output_memory_barrier, arm_output_sync_insn): New.
3804         (arm_sync_loop_insns): New.
3805         * config/arm/arm.c (FL_ARCH7): New.
3806         (FL_FOR_ARCH7): Include FL_ARCH7.
3807         (arm_arch7): New.
3808         (arm_print_operand): Support %C markup.
3809         (arm_legitimize_sync_memory): New.
3810         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3811         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3812         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3813         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3814         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3815         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3816         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3817         * config/arm/arm.h (struct arm_sync_generator): New.
3818         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3819         (TARGET_HAVE_MEMORY_BARRIER): New.
3820         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3821         * config/arm/arm.md: Include sync.md.
3822         (UNSPEC_MEMORY_BARRIER): New.
3823         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3824         (VUNSPEC_SYNC_OP):New.
3825         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3826         (sync_result, sync_memory, sync_required_value): New attributes.
3827         (sync_new_value, sync_t1, sync_t2): Likewise.
3828         (sync_release_barrier, sync_op): Likewise.
3829         (length): Add logic to length attribute defintion to call
3830         arm_sync_loop_insns when appropriate.
3831         * config/arm/sync.md: New file.
3832
3833 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3834
3835         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3836         ENABLE_TREE_CHECKING.
3837         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3838         and GCC >= 4.3.
3839
3840 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3841
3842         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3843         or optimizing for size, always avoid lea if possible.
3844
3845         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3846
3847 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3848
3849         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3850         Dunmmy function with NULL return unless the target is
3851         OSX >= 10.6 (Darwin10).
3852
3853 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3854
3855         * gcc.c (spec_function): Add remove-outfile.
3856         (remove_outfile_spec_function): New function.
3857         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3858         * invoke.texi (replace-outfile): Document.
3859
3860 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3861
3862         PR target/45296
3863         * reginfo.c (globalize_reg): Reject stack registers.
3864
3865 2010-08-17  Richard Guenther  <rguenther@suse.de>
3866
3867         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3868         list of conditional equivalences.
3869         (free_all_edge_infos): Adjust.
3870         (record_equivalences_from_incoming_edge): Likewise.
3871         (record_cond): Likewise.
3872         (build_and_record_new_cond): Likewise.
3873         (record_conditions): Likewise.
3874         (dom_opt_leave_block): Likewise.
3875
3876 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3877
3878         * doc/invoke.texi (ms-extension): Add documentation.
3879
3880 2010-08-17  Richard Guenther  <rguenther@suse.de>
3881
3882         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3883
3884 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3885
3886         PR c/40563
3887         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3888         (finish_decl): Use it to issue a -Wc++-compat warning about
3889         uninitialized const field in struct or union.
3890
3891         (finish_struct): Use strip_array_types.
3892
3893 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3894
3895         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3896         functions.
3897         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3898         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3899         call block_nreverse here.
3900         (blocks_nreverse): Rename decl temporary to block.
3901
3902 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3903
3904         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3905         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3906         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3907         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3908         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3909         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3910         thumb2_iorsi3): Delete.
3911         (orsi_notsi_si): No longer a named pattern.
3912         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3913         * config/arm/predicates.md (shift_amount_operand): New.
3914         (mult_operator): New.
3915         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3916         attr enabled): New.
3917         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3918         arch matches t2.
3919         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3920         (not_shiftsi_compare0): Likewise, renamed from
3921         arm_notsi_shiftsi_compare0.
3922         (not_shiftsi_compare0_scratch): Likweise, renamed from
3923         arm_notsi_shiftsi_compare0_scratch.
3924         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3925         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3926         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3927         so that the register alternative is disabled when the shift_operator
3928         is MULT.  Use "M" as the constraint for constants.
3929         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3930         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3931         constraint for constants.
3932         (arith_shiftsi_compare0_scratch): Likewise.
3933         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3934         Handle Thumb2 alternative.
3935
3936 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3937
3938         * doc/options.texi (NoDriverArg): Document.
3939         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
3940         -MDX and -MMDX.
3941         * opt-functions.awk (switch_flags): Handle NoDriverArg.
3942         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
3943         marking for CL_NO_DRIVER_ARG options when in the driver.
3944         * opts.h (CL_NO_DRIVER_ARG): Define.
3945         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3946         CL_COMMON): Update values.
3947
3948 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3949
3950         * common.opt: Add driver options.
3951         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
3952         * doc/options.texi (Driver, RejectDriver): Document.
3953         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
3954         print_prog_name, print_multi_directory, print_sysroot,
3955         print_multi_os_directory, print_multi_lib,
3956         print_sysroot_headers_suffix, report_times, combine_flag,
3957         use_pipes, wrapper_string): Remove.
3958         (save_switch, driver_unknown_option_callback,
3959         driver_wrong_lang_callback, driver_post_handling_callback,
3960         driver_handle_option): New.
3961         (spec_lang, last_language_n_infiles): Make file-scope static
3962         instead of local to process_command.
3963         (process_command): Use decode_cmdline_options_to_array and
3964         read_cmdline_option for option processing.  Compute have_c in
3965         prescan of decoded options.
3966         * opt-functions.awk (switch_flags): Handle Driver and
3967         RejectDriver.
3968         (var_type, var_type_struct): Handle Separate options as generating
3969         const char * variables.
3970         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
3971         CL_TARGET to be passed by caller if required.
3972         (decode_cmdline_options_to_array): Update comment.
3973         * opts.c (complain_wrong_lang): Handle options only valid for the
3974         driver.
3975         (decode_options): Update call to decode_cmdline_options_to_array.
3976         (print_filtered_help): Ignore driver-only options.
3977         (print_specific_help): Ignore CL_DRIVER.
3978         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
3979         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
3980         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
3981         Update values.
3982
3983 2010-08-16  Richard Guenther  <rguenther@suse.de>
3984
3985         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3986         TARGET_MEM_REF a bit.
3987         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
3988         (create_mem_ref_raw): Always create TMR_OFFSET, store the
3989         alias pointer type via it.
3990         (copy_mem_ref_info): Adjust.
3991         (maybe_fold_tmr): Likewise.
3992         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
3993         (reference_alias_ptr_type): Likewise.
3994         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
3995         adjust documentation of TMR_OFFSET operand.
3996         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
3997         use the alias pointer type.
3998         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
3999         initialize mem attrs but the TMR itself.
4000         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
4001         similar to MEM_REF.
4002         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
4003         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
4004         (unshare_and_remove_ssa_names): Likewise.
4005         (copy_ref_info): Adjust.
4006         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
4007         TARGET_MEM_REF case.
4008         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
4009         at TMR_ORIGINAL.
4010         * tree.h (TMR_ORIGINAL): Remove.
4011         * gimple.c (get_base_address): For TARGET_MEM_REF with a
4012         symbol return that.
4013         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
4014         with a symbol.
4015         (get_addr_base_and_unit_offset): Likewise.
4016         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
4017         TARGET_MEM_REFs.
4018         (indirect_ref_may_alias_decl_p): Likewise.
4019         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
4020
4021 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
4022
4023         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
4024         with GCC version 4.6, the default setting (when not optimizing
4025         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
4026         been changed to -fomit-frame-pointer.
4027
4028 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
4029
4030         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
4031         Darwin10.  Do not link libgcc.a for Darwin >= 9.
4032
4033 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
4034
4035         * doc/invoke.texi (Warning Options): Fix terminology and markup
4036         in the description of how unknown warning options are handled.
4037
4038 2010-08-15  Ira Rosen  <irar@il.ibm.com>
4039
4040         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
4041         in basic blocks.
4042         (vect_supportable_dr_alignment): Check alignment for basic blocks.
4043         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
4044         data references.
4045         (vect_bb_vectorization_profitable_p): New function.
4046         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
4047         check if it's worthwhile to vectorize the basic block.
4048
4049 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
4050
4051         * reload.h (register_move_cost, memory_move_secondary_cost,
4052         secondary_reload_class): Adjust prototype.
4053         * rtl.h (reg_class_subset_p): Adjust prototype.
4054         * reload.c (secondary_reload_class): Change arguments type from
4055         enum reg_class to reg_class_t. Change result type to reg_class_t.
4056         * reginfo.c (register_move_cost, reg_class_subset_p): Change
4057         arguments type from enum reg_class to reg_class_t.
4058         (memory_move_secondary_cost): Change arguments type from
4059         enum reg_class to reg_class_t. Change type of saved_flags to
4060         reg_class_t.
4061
4062         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4063         Remove macros.
4064         (mips_cost): Remove.
4065         (struct mips_rtx_cost_data): Moved to mips.c.
4066         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
4067         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
4068         (mips_cost): Make static.
4069         (mips_canonicalize_move_class): Change argument type to reg_class_t.
4070         Change result type to reg_class_t.
4071         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
4072         type from enum reg_class to reg_class_t.
4073         (mips_register_move_cost): Make static. Change arguments
4074         type from enum reg_class to reg_class_t.
4075         (mips_memory_move_cost): New function.
4076         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4077
4078 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
4079
4080         PR rtl-optimization/43358
4081         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
4082         of a single hard register, using simplify_subreg_regno to decide
4083         what that register should be.
4084
4085 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
4086
4087         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
4088         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
4089         (loongson_pmull<V_suffix>): Rename to...
4090         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
4091
4092 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
4093
4094         * configure.ac: Enable -fomit-frame-pointer on darwin
4095         which support dwarf2.
4096         * config/i386/i386.c (override_options): Same.
4097
4098 2010-08-13  Jie Zhang  <jie@codesourcery.com>
4099
4100         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
4101
4102 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
4103
4104         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
4105         -MMD.
4106
4107 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
4108
4109         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
4110         up dot_prod pattern searching if a stmt is outside the loop.
4111
4112 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
4113             Uros Bizjak  <ubizjak@gmail.com>
4114
4115         * config.gcc: Handle --enable-frame-pointer.
4116
4117         * configure.ac: Add --enable-frame-pointer.
4118         * configure: Regenerated.
4119
4120         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
4121         (override_options): If not configured with --enable-frame-pointer,
4122         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
4123         optimizing for size), -fasynchronous-unwind-tables and
4124         -maccumulate-outgoing-args by default.
4125
4126 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4127
4128         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
4129
4130         PR middle-end/45262
4131         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
4132         -a overflows.  Normalize the range.
4133
4134 2010-08-12  Richard Guenther  <rguenther@suse.de>
4135
4136         PR tree-optimization/45232
4137         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
4138         for types with undefined overflow.
4139         (reassociate_bb): Allow re-associating of bit and min/max
4140         operations for types with undefined overflow.
4141         * tree-ssa-forwprop.c (associate_plusminus): New function.
4142         (tree_ssa_forward_propagate_single_use_vars): Call it.
4143
4144 2010-08-12  Richard Guenther  <rguenther@suse.de>
4145
4146         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
4147         * tree-ssa-alias.c (get_ptr_info): Move ...
4148         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
4149         align and misalign fields conservatively.
4150         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
4151         derive alignment information.
4152         (evaluate_stmt): Derive alignment information from memory
4153         allocation functions.
4154         * tree.h (get_pointer_alignment): Make unsigned.
4155         * builtins.c (get_object_alignment): Use alignment information we
4156         have computed for pointers.
4157         (get_pointer_alignment): Likewise.  Make conservative, return
4158         and unsigned value.
4159         (expand_builtin_strlen): Adjust.
4160         (expand_builtin_memcmp): Likewise.
4161         (expand_builtin_strcmp): Likewise.
4162         (expand_builtin_strncmp): Likewise.
4163         (get_builtin_sync_mem): Use at least mode alignment.
4164         (fold_builtin_memset): Adjust.
4165         (fold_builtin_memory_op): Likewise.
4166         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
4167         information also dump pointer alignment knowledge.
4168         (dump_gimple_stmt): Likewise.
4169
4170 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
4171
4172         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
4173         (EMPTY_FIELD_BOUNDARY): Remove.
4174         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
4175
4176 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4177
4178         PR debug/45259
4179         * caller-save.c (save_call_clobbered_regs): Only swap notes with
4180         DEBUG_INSNs if n_regs_saved.
4181
4182 2010-08-12  Wei Guozhi  <carrot@google.com>
4183
4184         PR target/44999
4185         * config/arm/arm.md (andsi3): Change to zero extension if possible.
4186         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
4187
4188 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
4189
4190         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
4191
4192         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
4193
4194 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4195
4196         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
4197         the case removed in the previous patch, when the only phi argument
4198         is defined in the same loop as the phi node itself.  Handle it
4199         separately from the invariant case by both propagating it outside
4200         the region and replacing the phi node with an assign.
4201
4202 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4203
4204         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
4205         constant phi nodes with one argument are is_gimple_min_invariant
4206         and SSA_NAME_IS_DEFAULT_DEF.
4207
4208 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4209
4210         * graphite-cloog-util.c (oppose_constraint):
4211         Extend loop counter's value range (CLOOG_ORG).
4212         (cloog_matrix_to_ppl_constraint): Same.
4213         (new_Constraint_System_from_Cloog_matrix): Same.
4214         * graphite-cloog-compat.h (matrix_num_type): New.
4215
4216 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4217
4218         * graphite.c (graphite_initialize): Do not initialize
4219         CLooG and initialize the Parma Polyhedra Library
4220         manually when using CLOOG_ORG.
4221         (graphite_finalize): Do not finalize CLooG and finalize
4222         the Parma Polyhedra Library manually when using CLOOG_ORG.
4223         * graphite-cloog-compat.h (cloog_initialize): Hide function
4224         when using CLOOG_ORG.
4225         (cloog_finalize): Same.
4226
4227 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4228
4229         * graphite-clast-to-gimple.c (free_scattering): Change
4230         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
4231         (CLOOG_ORG).
4232         (build_cloog_prog): Same.
4233         * graphite-cloog-compat.h (cloog_domain): Removed.
4234         (cloog_scattering): New.
4235         (cloog_set_domain): Removed.
4236         (cloog_set_scattering): New.
4237         (cloog_next_domain): Removed.
4238         (cloog_next_scattering): New.
4239         (cloog_set_next_domain): Removed.
4240         (cloog_set_next_scattering): New.
4241         (CloogScatteringList): New.
4242         (CloogScattering): New.
4243         (cloog_scattering_free): New.
4244         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
4245         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
4246         New.
4247
4248 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4249
4250         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
4251         CloogState.
4252         (set_cloog_options): Same.
4253         (print_clast_stmt): Same.
4254         (scop_to_clast): Same.
4255         (print_generated_program): Same.
4256         (gloog): Same.
4257         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
4258         (scop_to_clast): Extend with CloogState.
4259         * graphite-cloog-util.c: Include graphite-cloog-compat.h
4260         (new_Cloog_Domain_from_ppl_Polyhedron):
4261         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
4262         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
4263         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4264         * graphite-cloog-util.h (build_cloog_prog): Same.
4265         * graphite-cloog-copat.h (build_cloog_prog): New.
4266         (CloogState): New.
4267         (cloog_state_malloc): New.
4268         (cloog_state_free): New.
4269         (cloog_loop_malloc): New.
4270         (cloog_options_malloc): New.
4271         (cloog_statement_alloc): New.
4272         (cloog_domain_from_cloog_matrix): New.
4273         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
4274         (new_Cloog_Domain_from_ppl_Polyhedron): New.
4275
4276 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4277
4278         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
4279         type of NAME now depends on used CLooG version.
4280         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
4281         (gcc_type_for_clast_expr): Same.
4282         (print_clast_stmt): Replace pprint with clast_pprint.
4283         * graphite-cloog-compat.h: Provide compatibility macros for
4284         CLooG Legacy.
4285         (clast_name_p): New.
4286         (clast_expr_term): New.
4287         (clast_expr_red): New.
4288         (clast_expr_bin): New.
4289         (clast_pprint): New.
4290
4291 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4292
4293         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
4294         compatible to newer CLooG releases (CLOOG_ORG).
4295         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
4296         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
4297         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
4298         (build_cloog_prog) : New.
4299         (cloog_program_extract_scalars): New.
4300         (cloog_program_scatter): New.
4301
4302 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4303
4304         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
4305         conditionally (CLOOG_ORG).
4306         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
4307         (cloog_statement_usr): New.
4308         (cloog_domain): Same.
4309         (cloog_set_domain): Same.
4310         (cloog_next_domain): Same.
4311         (cloog_set_next_domain): Same.
4312         (cloog_program_nb_scattdims): Same.
4313         (cloog_program_set_nb_scattdims): Same.
4314         (cloog_program_names): Same.
4315         (cloog_program_set_names): Same.
4316         (cloog_program_set_context): Same.
4317         (cloog_program_set_loop): Same.
4318         (cloog_program_blocklist): Same.
4319         (cloog_program_set_blocklist): Same.
4320         (cloog_program_scaldims): Same.
4321         (cloog_program_set_scaldims): Same.
4322         (cloog_names_nb_parameters): Same.
4323         (cloog_names_set_nb_parameters): Same.
4324         (cloog_names_parameters): Same.
4325         (cloog_names_set_parameters): Same.
4326         (cloog_names_set_nb_iterators): Same.
4327         (cloog_names_set_iterators): Same.
4328         (cloog_names_set_nb_scattering): Same.
4329         (cloog_names_set_scattering): Same.
4330         (cloog_statement_set_usr): Same.
4331         (cloog_loop_set_next): Same.
4332         (cloog_loop_set_domain): Same.
4333         (cloog_loop_set_block): Same.
4334         (cloog_block_list_next): Same.
4335         (cloog_block_list_set_next):
4336         (cloog_block_list_set_block): Same.
4337
4338 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4339
4340         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
4341         a bool.
4342         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
4343         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
4344         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
4345         when something has been changed.
4346         (rewrite_commutative_reductions_out_of_ssa): Same.
4347
4348 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4349
4350         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
4351         handle the case when def is in the sese region.
4352         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
4353         for invariant expressions.
4354         (rewrite_cross_bb_phi_deps): Removed.
4355         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
4356         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
4357         rewrite_cross_bb_phi_deps.
4358
4359 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4360
4361         * graphite-sese-to-poly.c
4362         (rewrite_commutative_reductions_out_of_ssa_loop): Call
4363         scev_analyzable_p only on is_gimple_reg
4364
4365 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4366
4367         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
4368         (rewrite_close_phi_out_of_ssa): Propagate constant values or
4369         parametric expressions outside the scop region.
4370         (rewrite_cross_bb_scalar_deps): Same.
4371         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
4372
4373 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4374
4375         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
4376         SSA_NAME_DEF_STMT only on SSA_NAMEs.
4377
4378 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4379
4380         * tree-scalar-evolution.c (instantiate_scev_name): Do not
4381         instantiate default definitions.
4382
4383 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
4384             Sebastian Pop  <sebastian.pop@amd.com>
4385
4386         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
4387         (loop_exits_from_bb_p): New.
4388         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
4389         (loop_exits_from_bb_p): Declared.
4390         * graphite-scop-detection.c (scopdet_basic_block_info): Call
4391         loop_exits_to_bb_p.
4392
4393 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4394
4395         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
4396         extra parameter for the region.  Call scev_analyzable_p.
4397         (rewrite_reductions_out_of_ssa): Update call to
4398         rewrite_close_phi_out_of_ssa.
4399         (rewrite_cross_bb_phi_deps): Same.
4400         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
4401         parameter for the region.  Call scev_analyzable_p.
4402         (rewrite_commutative_reductions_out_of_ssa): Update call to
4403         rewrite_commutative_reductions_out_of_ssa_loop.
4404
4405 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4406
4407         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
4408
4409 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4410
4411         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
4412         SSA scalar phi nodes that can be scev_analyzable_p.
4413
4414 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4415
4416         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
4417         handle SSA_NAME_IS_DEFAULT_DEF.
4418
4419 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4420
4421         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
4422
4423 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4424
4425         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
4426         case non close-phi nodes with one argument.
4427
4428 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4429
4430         * sese.h (scev_analyzable_p): Scevs could be expressions without
4431         chrecs and still be scev_analyzable_p.
4432
4433 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4434
4435         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
4436
4437 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4438
4439         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
4440         * cfgloop.h (struct loop): Remove single_iv field.
4441         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
4442         (scop_canonicalize_loops): Removed.
4443         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
4444         over all the loop phi nodes in loop->header.
4445         (build_poly_scop): Remove use of scop_canonicalize_loops.
4446
4447 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4448
4449         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
4450         handle GIMPLE_CALL.
4451
4452 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4453
4454         * tree-chrec.c (chrec_apply): Should only apply to the specified
4455         variable.  Also handle multivariate chains of recurrences that
4456         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
4457
4458 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4459
4460         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
4461         (debug_clast_name_indexes_1): Removed.
4462         (debug_clast_name_indexes): Removed.
4463         (pbb_to_depth_to_oldiv): Removed.
4464         (build_iv_mapping): Replace the use of rename_map with iv_map.
4465         (translate_clast_user): Remove uses of rename_map.  Allocate and
4466         free iv_map.
4467         (translate_clast_for_loop): Remove uses of rename_map.
4468         (translate_clast_for): Same.
4469         (translate_clast_guard): Same.
4470         (translate_clast): Same.
4471         (gloog): Same.
4472         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
4473         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
4474         * sese.c (set_rename): Now static.
4475         (rename_variables_in_stmt): Removed.
4476         (rename_uses): New.
4477         (is_parameter): Removed.
4478         (is_iv): Removed.
4479         (expand_scalar_variables_call): Removed.
4480         (expand_scalar_variables_ssa_name): Removed.
4481         (expand_scalar_variables_expr): Removed.
4482         (expand_scalar_variables_stmt): Removed.
4483         (expand_scalar_variables): Removed.
4484         (rename_variables): Removed.
4485         (remove_condition): Removed.
4486         (get_true_edge_from_guard_bb): Removed.
4487         (get_false_edge_from_guard_bb): Removed.
4488         (struct igp): Removed.
4489         (default_before_guard): Removed.
4490         (convert_for_phi_arg): Removed.
4491         (add_guard_exit_phis): Removed.
4492         (insert_guard_phis): Removed.
4493         (graphite_copy_stmts_from_block): Now also uses iv_map and a
4494         region.  Do not copy conditions.  Do not copy induction variables.
4495         Call rename_uses.
4496         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
4497         the translated statement.  Use the iv_map for the induction
4498         variable renaming.
4499         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4500         (set_rename): Removed declaration.
4501         (scev_analyzable_p): ...here.
4502         * tree-chrec.c (chrec_apply_map): New.
4503         * tree-chrec.h (chrec_apply_map): Declared.
4504
4505 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4506
4507         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
4508         insert_loop_close_phis.
4509         * sese.c (name_defined_in_loop_p): Removed.
4510         (expr_defined_in_loop_p): Removed.
4511         (alive_after_loop): Removed.
4512         (close_phi_not_yet_inserted_p): Removed.
4513         (struct alep): Removed.
4514         (add_loop_exit_phis): Removed.
4515         (insert_loop_close_phis): Removed.
4516
4517 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4518
4519         * graphite-cloog-util.c
4520         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
4521         * graphite-poly.c
4522         (psct_scattering_dim_for_loop_depth): Same.
4523
4524 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4525
4526         * graphite-cloog-util.h: Added cloog.h.
4527         * graphite-blocking.c: Removed cloog.h.
4528         * graphite-dependences.c: Same.
4529         * graphite-interchange.c: Same.
4530         * graphite-poly.c: Same.
4531         * graphite-ppl.c: Same.
4532         * graphite-scop-detection.c: Same.
4533         * graphite-sese-to-poly.c:
4534         Removed cloog.h.
4535         Removed graphite-clast-to-gimple.h.
4536         (check_poly_representation): Removed (unused).
4537         * graphite-sese-to-poly.h
4538         (check_poly_representation): Removed (unused).
4539
4540 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4541
4542         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
4543         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
4544         (graphite-cloog-util.o): New.
4545         (graphite-ppl.o): Added graphite-cloog-util.h.
4546         * graphite-clast-to-gimple.c:
4547         Added graphite-cloog-util.h to include statements.
4548         * graphite-cloog-util.c: New.
4549         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
4550         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4551         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4552         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4553         (insert_constraint_into_matrix): Same.
4554         (ppl_Constrain_System_number_of_constraints): Same.
4555         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4556         (oppose_constraint): Same.
4557         (cloog_matrix_to_ppl_constraint): Same.
4558         (new_Constraint_System_from_Cloog_Matrix): Same.
4559         * graphite-cloog-util.h: New.
4560         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
4561         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4562         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4563         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4564         (insert_constraint_into_matrix): Same.
4565         * graphite-ppl.c:
4566         Added graphite-cloog-util.h to include statements.
4567         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
4568         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4569         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4570         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4571         (insert_constraint_into_matrix): Same.
4572         (ppl_Constrain_System_number_of_constraints): Same.
4573         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4574         (oppose_constraint): Same.
4575         (cloog_matrix_to_ppl_constraint): Same.
4576         (new_Constraint_System_from_Cloog_Matrix): Same.
4577         * graphite-ppl.h:
4578         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
4579         graphite-cloog-util.h.
4580         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4581         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4582         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4583         (insert_constraint_into_matrix): Same.
4584
4585 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4586
4587         * graphite-clast-to-gimple.c
4588         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
4589         (precision_for_interval): Same.
4590         (gcc_type_for_interval): Same.
4591         (compute_type_for_level): Same.
4592         * graphite-interchange.c
4593         (lst_interchange_profitable_p): Same.
4594         * graphite-poly.c
4595         (psct_scattering_dim_for_loop_depth): Same.
4596         * graphite-ppl.c
4597         (ppl_max_for_le_pointset): Same.
4598         (ppl_min_for_le_pointset): Same.
4599
4600 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4601
4602         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
4603         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
4604
4605 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4606
4607         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
4608         rewrite_close_phi_out_of_ssa.
4609
4610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4611
4612         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
4613
4614 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4615
4616         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
4617         rename_map.
4618         * sese.c (debug_rename_map): Same.
4619         (get_rename): Same.
4620         (set_rename): Same.
4621         (rename_variables_in_stmt): Same.
4622         (expand_scalar_variables_call): Same.
4623         (expand_scalar_variables_ssa_name): Same.
4624         (expand_scalar_variables_expr): Same.
4625         (expand_scalar_variables_stmt): Same.
4626         (expand_scalar_variables): Same.
4627         (rename_variables): Same.
4628         (graphite_copy_stmts_from_block): Same.
4629         (copy_bb_and_scalar_dependences): Same.
4630
4631 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4632
4633         * graphite-clast-to-gimple.c (copy_renames): Removed.
4634         (translate_clast_for): Do not call copy_renames.
4635         (translate_clast_guard): Same.
4636
4637 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4638
4639         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
4640         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
4641         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
4642         before rewrite_cross_bb_scalar_deps.
4643
4644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4645
4646         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
4647         Early return in when flag_associative_math is not set.
4648
4649 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4650
4651         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
4652         of SSA copies on edges except for loop->latch.
4653
4654 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4655
4656         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
4657         Split out of rewrite_reductions_out_of_ssa.
4658         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
4659         Declared.
4660         * graphite.c (graphite_transform_loops): Call it.
4661
4662 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4663
4664         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
4665
4666 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
4667
4668         * dbgcnt.def (graphite_scop): New counter.
4669         * graphite.c: Include dbgcnt.h.
4670         (graphite_transform_loops): Use new counter to limit transformations.
4671         * Makefile.in (graphite.o): Depend on DBGCNT_H.
4672
4673 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4674
4675         * passes.c (init_optimization_passes): Add pass_graphite.
4676         Schedule a pass_copy_prop before pass_graphite_transforms.
4677         * timevar.def (TV_GRAPHITE): Declared.
4678         * tree-pass.h (pass_graphite): Declared.
4679         * tree-ssa-loop.c (pass_graphite): New.
4680
4681 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4682
4683         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
4684         Remove calls to rename_nb_iterations and rename_sese_parameters.
4685         * graphite-clast-to-gimple.h (gloog): Update declaration.
4686         * graphite.c (graphite_transform_loops): Update call to gloog.
4687         * sese.c (rename_variables_in_expr): Removed.
4688         (rename_nb_iterations): Removed.
4689         (rename_sese_parameters): Removed.
4690         * sese.h (rename_nb_iterations): Removed.
4691         (rename_sese_parameters): Removed.
4692
4693 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4694
4695         * graphite-clast-to-gimple.c (gloog): Remove call to
4696         sese_adjust_liveout_phis.
4697         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
4698         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
4699         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
4700         rewrite_phi_out_of_ssa.
4701         * sese.c (get_vdef_before_sese): Removed.
4702         (sese_adjust_vphi): Removed.
4703         (sese_adjust_liveout_phis): Removed.
4704         * sese.h (sese_adjust_liveout_phis): Removed.
4705
4706 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4707
4708         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
4709         argument for the place after which to insert the out of SSA copy.
4710         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
4711         (rewrite_phi_out_of_ssa): Same.
4712         (rewrite_cross_bb_scalar_deps): Same.
4713         (insert_copyout): Removed.
4714         (insert_copyin): Removed.
4715         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
4716         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
4717         insert_copyin.
4718
4719 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4720
4721         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
4722         (rewrite_reductions_out_of_ssa): Same.
4723         (rewrite_commutative_reductions_out_of_ssa): Same.
4724         (build_poly_scop): Do not call these functions.
4725         * graphite-sese-to-poly.h (build_poly_scop): Declared.
4726         (rewrite_reductions_out_of_ssa): Declared.
4727         (rewrite_commutative_reductions_out_of_ssa): Declared.
4728         * graphite.c (graphite_transform_loops): Call on every scop
4729         rewrite_commutative_reductions_out_of_ssa before calling
4730         rewrite_reductions_out_of_ssa and build_scop_bbs.
4731
4732 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4733
4734         * graphite-dependences.c (dot_deps): Make system call to dotty run
4735         in background.
4736         (dot_deps_stmt): Same.
4737         * graphite-poly.c (dot_lst): Same.
4738
4739 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4740
4741         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
4742         phi_arg_in_outermost_loop.
4743         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
4744         (remove_invariant_phi): Same.
4745
4746 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
4747
4748         * target.def (output_addr_const_extra): New hook.
4749         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
4750         * doc/tm.texi: Regenerate.
4751         * targhooks.c (default_asm_output_addr_const_extra): New function.
4752         * targhooks.h (default_asm_output_addr_const_extra): Declare.
4753         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
4754         target hook.
4755
4756         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4757         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
4758         * config/i386/i386.h (output_addr_const_extra): Rename to...
4759         (i386_asm_output_addr_const_extra): ...this. Make static.
4760         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4761
4762 2010-08-11  Richard Henderson  <rth@redhat.com>
4763
4764         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
4765
4766 2010-08-11  Nick Clifton  <nickc@redhat.com>
4767
4768         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
4769         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
4770         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4771         stormy16-lib2-cmpsi.c.
4772
4773         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
4774         -O2.
4775
4776 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
4777
4778         * opts.h (struct cl_option_handler_func): Make handler take
4779         cl_decoded_option structure as parameter, not individual elements.
4780         (struct cl_option_handlers): Make callbacks take cl_decoded_option
4781         structure as parameter, not individual elements.
4782         (handle_option): Take cl_decoded_option structure as parameter,
4783         not individual elements.
4784         (handle_generated_option): Declare.
4785         * opts-common.c (handle_option): Take cl_decoded_option structure
4786         as parameter, not individual elements.  Update calls to callback
4787         and handler functions.
4788         (handle_generated_option): New.
4789         (read_cmdline_option): Update calls to callback functions and
4790         handle_option.
4791         * opts.c (common_handle_option, complain_wrong_lang,
4792         unknown_option_callback, post_handling_callback,
4793         lang_handle_option, target_handle_option): Take cl_decoded_option
4794         structure as parameter, not individual elements.
4795         (lang_handle_option, target_handle_option, common_handle_option):
4796         Assert option has at most one argument.
4797         (enable_warning_as_error): Call handle_generated_option instead of
4798         handle_option.  Do not pass -Werror argument as argument of
4799         generated option.
4800
4801 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4802
4803         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4804         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4805         (SUBWORD_BOOL_CAS): Likewise.
4806         (SUBWORD_SYNC_OP): Likewise.
4807         (SUBWORD_TEST_AND_SET): Likewise.
4808         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4809         (SUBWORD_SYNC_OP): Likewise.
4810         (OP_AND_FETCH_WORD): Likewise.
4811
4812 2010-08-10  Xinliang David Li  <davidxl@google.com>
4813
4814         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
4815         compute max/min offset in address.
4816
4817 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
4818
4819         * ira-live.c: Include sbitmap.h.
4820         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
4821         Compress live ranges even more.
4822
4823 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4824
4825         * coverage.c (ctr_labels): Delete.
4826
4827 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4828
4829         PR bootstrap/45177
4830         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
4831         test here from arm_gen_load_multiple_1.
4832         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
4833         multiple_operation_profitable_p.
4834
4835 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4836
4837         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
4838         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
4839
4840 2010-08-10  Richard Henderson  <rth@redhat.com>
4841
4842         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
4843         after saving registers.  Assert that SSE registers are only saved
4844         with a sufficiently aligned frame.
4845         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
4846         remove stack_realign_fp handling.
4847         (ix86_expand_prologue): Save int registers before stack_realign_fp,
4848         and do not mark the stack alignment as frame related.
4849         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
4850
4851         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
4852         saves when re-aligning the stack.
4853
4854 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4855
4856         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
4857         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
4858         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
4859
4860 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4861
4862         * dwarf2out.c (struct die_struct): Move die_tag to the end.
4863
4864 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
4865
4866         * config/arm/iterators.md: New file.
4867         * config/arm/arm.md: Include iterators.md.
4868         (QHSI): Move to new file.
4869         (LTUGEU, cnb, optab, ior_xor): Likewise.
4870         * config/arm/iwmmxt.md (VMMX): Move to new file.
4871         (VSHFT, MMX_char): Likewise.
4872         * config/arm/neon.md (VD): Move to new file.
4873         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
4874         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
4875         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
4876         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
4877         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
4878         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
4879         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
4880         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
4881         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
4882         (Is_d_reg, V_mode_nunits): Likewise.
4883         * config/arm/vec-common.md (VALL): Move to new file.
4884         (VALLW, VINT, VINTW): Likewise.
4885
4886 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4887
4888         PR middle-end/45182
4889         * combine.c (make_compound_operation): Don't try to convert
4890         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
4891
4892 2010-08-10  Richard Guenther  <rguenther@suse.de>
4893
4894         * tree.h (get_object_alignment): Adjust prototype.
4895         * builtins.c (get_object_alignment): Return unsigned int,
4896         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
4897         and TARGET_MEM_REF properly.
4898         (get_pointer_alignment): Adjust.
4899         * emit-rtl.c (get_mem_align_offset): Adjust comment.
4900         (set_mem_attributes_minus_bitpos): Adjust.
4901         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
4902
4903 2010-08-10  Richard Guenther  <rguenther@suse.de>
4904
4905         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
4906         (copy_prop_visit_assignment): Simplify.
4907         (copy_prop_visit_stmt): Also visit assignments from
4908         constants.
4909         (copy_prop_visit_phi_node): Use operand_equal_p.
4910
4911 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4912
4913         * ipa-split.c (find_split_points): Free stack.
4914
4915 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4916
4917         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
4918         * tree.c (tree_node_kind): Delete corresponding entries.
4919
4920 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4921
4922         * alias.c (may_alias_p): Remove unused ret.
4923
4924 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
4925
4926         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
4927         alias_sets_conflict_p.
4928         (walk_mems_1): Moved from alias.c.
4929         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
4930         in alias.c.
4931         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
4932         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
4933         * alias.c (walk_mems_2): Moved to ddg.c.
4934         (walk_mems_1): Ditto.
4935         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
4936         to ddg.c.
4937         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
4938         disambiguation.
4939         *(may_alias_p): New function to check whether two memory expression
4940         may alias or not. Currently used in buidling inter-iteration memory
4941         dependence.
4942         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
4943         (insn_alias_sets_conflict_p): Removed
4944         *rtl.h (may_alias_p): New function prototype.
4945
4946 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4947
4948         * tree.c (nreverse): Assert that we don't have a BLOCK.
4949
4950 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4951
4952         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
4953         * config/arm/arm.c (arm_get_pcs_model): Likewise.
4954         * config/avr/avr.c (init_cumulative_args): Likewise.
4955         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4956         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4957         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
4958         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
4959         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
4960         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4961         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
4962         * dwarf2out.c (gen_subprogram_die): Likewise.
4963         * function.c (allocate_struct_function): Likewise.
4964         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
4965         (deserves_ellipsis): Delete.
4966
4967 2010-08-09  Richard Guenther  <rguenther@suse.de>
4968
4969         * tree-ssa-copy.c (cached_last_copy_of): Remove.
4970         (valueize_val): New function.
4971         (get_last_copy_of): Remove.
4972         (set_copy_of_val): Simplify.
4973         (dump_copy_of): Likewise.
4974         (copy_prop_visit_cond_stmt): Use valueize_val.
4975         (copy_prop_visit_phi_node): Properly handle unvisited names.
4976         Drop code managing copy-of chains.
4977         (init_copy_prop): Adjust.
4978         (fini_copy_prop): Likewise.
4979         (execute_copy_prop): Remove obsolete comment.
4980
4981 2010-08-09  Richard Guenther  <rguenther@suse.de>
4982
4983         PR middle-end/44632
4984         * function.c (gimplify_parameters): Do not clear addressable
4985         bit of the original parameter.
4986
4987 2010-08-09  Richard Guenther  <rguenther@suse.de>
4988
4989         PR middle-end/45212
4990         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
4991         alignment from MEM_REF offset only if we took it from the
4992         base object.
4993
4994 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
4995
4996         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
4997
4998 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4999
5000         * c-tree.h (build_arg_info): Declare.
5001         * c-decl.c (build_arg_info): Define.
5002         (get_parm_info): Call it.  Delete initialization code.
5003         * c-parser.c (c_parser_parms_declarator): Likewise.
5004         (c_parser_parms_list_declaractor): Likewise.
5005
5006 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5007
5008         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
5009         (struct c_arg_info): Change type of tags field.
5010         * c-decl.c (grokdeclarator): Update for changed type of tags field.
5011         (get_parm_info): Likewise.
5012         (store_parm_decls_newstyle): Likewise.
5013
5014 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5015
5016         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
5017         (branch_island_list): Delete.
5018         (branch_islands): Declare.
5019         (add_compiler_branch_island): Adjust for branch_islands instead of
5020         branch_island_list.
5021         (macho_branch_islands): Likewise.
5022         (no_previous_def): Likewise.
5023         (get_prev_label): Likewise.
5024
5025 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5026
5027         PR boehm-gc/34544
5028         * gthr-posix.h (__gthread_start): Delete.
5029         (__gthread_active_init): Use pthread_default_stacksize_np instead of
5030         pthread_create to determine if hpux pthreads are active.
5031         * gthr-posix95.h (__gthread_start): Delete.
5032         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
5033
5034 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
5035
5036         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
5037         _WIN64 not expanded.
5038
5039 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
5040             H.J. Lu  <hongjiu.lu@intel.com>
5041
5042         PR target/45213
5043         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
5044         to output 32bit SFmode immediate as 8 byte sign extended value.
5045
5046 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5047
5048         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
5049         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
5050         (SUBWORD_BOOL_CAS): Likewise.
5051         (SUBWORD_SYNC_OP): Likewise.
5052         (SUBWORD_TEST_AND_SET): Likewise.
5053         (FETCH_AND_OP_WORD): Parenthesise INF_OP
5054         (SUBWORD_SYNC_OP): Likewise.
5055         (OP_AND_FETCH_WORD): Likewise.
5056
5057 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5058
5059         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
5060         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
5061         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
5062         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
5063         generic part.
5064         (cortex_a9_sched_adjust_cost): New function.
5065         (xscale_sched_adjust_cost): New function.
5066         * config/arm/arm-protos.h (struct tune_params): New field
5067         sched_adjust_cost.
5068         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
5069
5070 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
5071
5072         PR target/44942
5073         * config/sparc/sparc.c (function_arg_advance): Always take into account
5074         the padding, if any.
5075
5076 2010-08-06  Richard Guenther  <rguenther@suse.de>
5077
5078         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
5079         (dump_lattice_value): Dump it.
5080         (get_default_value): Adjust.
5081         (get_constant_value): Likewise.
5082         (set_value_varying): Likewise.
5083         (set_lattice_value): Make sure to not go up the lattice
5084         with bitwise constant values.
5085         (get_value_for_expr): Handle ADDR_EXPRs.
5086         (value_to_double_int): New function.
5087         (get_value_from_alignment): Likewise.
5088         (do_dbg_cnt): Adjust.
5089         (ccp_lattice_meet): Handle partially constant values.
5090         (bit_value_unop_1): New function.
5091         (bit_value_binop_1): Likewise.
5092         (bit_value_unop): Likewise.
5093         (bit_value_binop): Likewise.
5094         (evaluate_stmt): Track partially constant values if
5095         flag_tree_bit_ccp is set.
5096         (ccp_fold_stmt): Dump if we folded a predicate.
5097         (ccp_visit_stmt): Adjust.
5098         * common.opt (ftree-bit-ccp): New flag.
5099         * doc/invoke.texi (ftree-bit-ccp): Document.
5100         * opts.c (decode_options): Enable bit-CCP at -O1.
5101
5102 2010-08-06  Alan Modra  <amodra@gmail.com>
5103
5104         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
5105         and -mrelocatable-lib description.
5106
5107 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
5108
5109         From Martin Thuresson  <martint@google.com>
5110         * postreload.c (reload_cse_simplify_operands): Use
5111         SET_REGNO_RAW instead of SET_REGNO.
5112         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
5113         SET_REGNO.
5114         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
5115         instead of SET_REGNO.
5116         * rtl.h (SET_REGNO_RAW): New macro.
5117
5118 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
5119
5120         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
5121         computations.  Fix formatting issues.
5122         (num_sign_bit_copies1): Likewise.
5123         (canonicalize_condition): Likewise.
5124
5125 2010-08-05  Richard Henderson  <rth@redhat.com>
5126
5127         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
5128         (floor_log2): Use clz_hwi.
5129         (exact_log2): Use ctz_hwi.
5130         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
5131         * builtins.c (fold_builtin_bitop): Use them.
5132         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5133         * combine.c (get_pos_from_mask): Use ctz_hwi.
5134         * double-int.c (double_int_ctz): Likewise.
5135         * explow.c (force_reg): Likewise.
5136         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
5137
5138 2010-08-05  Richard Henderson  <rth@redhat.com>
5139
5140         PR target/45189
5141         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
5142         the alignment constant is properly sign-extended.
5143
5144 2010-08-05  Richard Guenther  <rguenther@suse.de>
5145
5146         * expr.c (store_expr): Use emit_block_move only if both
5147         source and target are MEMs.  Use store_bit_field if only
5148         the target is a MEM.
5149
5150 2010-08-05  Richard Henderson  <rth@redhat.com>
5151
5152         PR debug/45188
5153         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
5154         (INCOMING_RETURN_ADDR_RTX): Likewise.
5155         (dwarf2out_do_frame): Remove conditional compilation.
5156         (dwarf2out_frame_init): Likewise.
5157
5158 2010-08-05  Nicolas Setton  <setton@adacore.com>
5159
5160         * gcov.c (flag_display_progress): New static variable.
5161         (main): Display progress info on standard output if requested.
5162         (options): Add -d/--display-progress.
5163         (print_usage): Print them.
5164         (process_args): Handle them.
5165         * doc/gcov.texi: Document them.
5166
5167 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5168
5169         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
5170         (ipcp_insert_stage): Redirect only edges not flagged with
5171         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
5172         discovered constants.
5173
5174 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5175
5176         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
5177         (struct ipa_param_descriptor): New fields types and
5178         cannot_devirtualize.
5179         (ipa_param_cannot_devirtualize_p): New function.
5180         (ipa_param_types_vec_empty): Likewise.
5181         (ipa_make_edge_direct_to_target): Declare.
5182         * ipa-cp.c: Fixed first stage driver name in initial comment,
5183         described devirtualization there too.
5184         (ipcp_analyze_node): Call ipa_analyze_params_uses.
5185         (ipcp_print_all_lattices): Print devirtualization info.
5186         (ipa_set_param_cannot_devirtualize): New function.
5187         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
5188         lattice to BOTTOM.
5189         (ipcp_init_stage): Merged into...
5190         (ipcp_generate_summary): ...its caller.
5191         (ipcp_change_tops_to_bottom): Also process type lists.
5192         (ipcp_add_param_type): New function.
5193         (ipcp_copy_types): Likewise.
5194         (ipcp_propagate_types): Likewise.
5195         (ipcp_propagate_stage): Also propagate types.
5196         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
5197         Also return true if propagated types require it.
5198         (ipcp_update_callgraph): Dump redirection info.
5199         (ipcp_process_devirtualization_opportunities): New function.
5200         (ipcp_const_param_count): Include known type information.
5201         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
5202         on new node.  Fixed formatting.
5203         * ipa-prop.c (make_edge_direct_to_target): Renamed to
5204         ipa_make_edge_direct_to_target and changed all callers.  Made
5205         externally visible.
5206         (ipa_node_duplication_hook): Duplicate types vector.
5207         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
5208         redirect outgoing calls for which we can't get a decl from the
5209         statement.  Check that we can get a decl from the call statement.
5210         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5211         ipa_analyze_params_uses only when ipa-cp is disabled.
5212         * tree-inline.c (get_indirect_callee_fndecl): Removed.
5213         (expand_call_inline): Do not call get_indirect_callee_fndecl.
5214         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
5215         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
5216
5217 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5218
5219         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
5220         temporary. Emit move from temporary to accum, so REG_EQUAL note will
5221         be attached to this insn in correct mode.
5222
5223 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5224
5225         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
5226         using REGNO of base_reg directly.
5227
5228 2010-08-05  Jie Zhang  <jie@codesourcery.com>
5229
5230         PR tree-optimization/45144
5231         * tree-sra.c (type_consists_of_records_p): Return false
5232         if the record contains bit-field.
5233
5234 2010-08-04  Richard Henderson  <rth@redhat.com>
5235
5236         * config/i386/i386.c (struct ix86_frame): Remove padding and
5237         to_allocate members.
5238         (ix86_compute_frame_layout): Don't store them.
5239         (ix86_can_use_return_insn_p): Use a more direct and more obviously
5240         correct condition for the position of the stack pointer.
5241         (ix86_expand_prologue): Compute remaining stack allocation based
5242         on the ultimate stack pointer offset.
5243         (ix86_expand_epilogue): Use more obvious expressions testing for
5244         the stack pointer already pointing to the saved registers.
5245
5246         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
5247         duplication deconstructing the frame pointer.  Simplify
5248         deallocation of the local stack frame.
5249
5250         * reg-notes.def (CFA_EXPRESSION): New.
5251         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5252         (dwarf2out_frame_debug_cfa_expression): New.
5253         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
5254
5255         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
5256         * config/i386/i386.c (ix86_expand_prologue): Set it.
5257         (ix86_expand_epilogue): Clear it.
5258         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
5259         context, add REG_CFA_EXPRESSION notes.
5260
5261         * config/i386/i386.h (struct machine_frame_state): Rename from
5262         machine_cfa_state.  Add members tracking SP and FP regardless
5263         of the current CFA register.
5264         (ix86_cfa_state): Remove.
5265         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
5266         and sse_reg_save_offset members.
5267         (ix86_compute_frame_layout): Set them.
5268         (gen_push): Increment sp_offset too.
5269         (choose_baseaddr_len, choose_baseaddr): New.
5270         (ix86_emit_save_reg_using_mov): New.
5271         (ix86_emit_save_regs_using_mov): Use it.
5272         (ix86_emit_save_sse_regs_using_mov): Likewise.
5273         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
5274         compare vs the saved red_zone_offset.
5275         (pro_epilogue_adjust_stack): Adjust sp_offset.
5276         (ix86_adjust_stack_and_probe): Likewise.
5277         (ix86_expand_prologue): Set up, use, and validate the new
5278         frame_state_info members.  Use gen_frame_mem.
5279         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
5280         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
5281         new frame_state_info members.
5282         (ix86_emit_leave): Likewise.
5283         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
5284         out-of-range stack pointer offsets here.
5285         (ix86_emit_restore_sse_regs_using_mov): Likewise.
5286         (ix86_expand_epilogue): Use and validate the new frame_state_info
5287         members.  Break up and simplify the logic selecting the
5288         restore_regs_via_mov code path.  Ensure that there will be no
5289         out-of-range stack pointer offsets.
5290
5291         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
5292
5293         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
5294         argument name to reflect the expected tree; fix indentation.
5295         (ix86_asm_output_function_label): Output the entire 32-bit
5296         ms_hook here as bytes ...
5297         (ix86_expand_prologue): ... not here as insns.  Attach the
5298         unwind info for the ms_hook to a blockage insn.
5299         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
5300         (ix86_ms_bitfield_layout_p): Fix indentation.
5301         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
5302
5303         * config/i386/i386.c (ix86_using_red_zone): New.
5304         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
5305         ix86_expand_prologue, ix86_force_to_memory): Use it.
5306
5307         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
5308         saving the int registers.
5309
5310         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
5311         and DWARF2_UNWIND_INFO conditional compilation.
5312
5313 2010-08-04  Richard Henderson  <rth@redhat.com>
5314
5315         PR debug/45171
5316         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
5317         an is_naming_typedef_decl.
5318
5319 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
5320
5321         PR rtl-optimization/45162
5322         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
5323         * dce.c (word_dce_process_block): Likewise.
5324
5325 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
5326
5327         PR target/44583
5328         * config/ia64/constraints.md (Z): New.
5329         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
5330         (xfreg_or_signed_fp01_operand): New.
5331         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
5332         with fr_reg_or_signed_fp01_operand and constraint G with Z.
5333         (subsf3): Ditto.
5334         (*maddsf4): Ditto.
5335         (*msubsf4): Ditto.
5336         (adddf3): Ditto.
5337         (adddf3_trunc): Ditto.
5338         (subdf3): Ditto.
5339         (*subdf3_trunc): Ditto.
5340         (*madddf4): Ditto.
5341         (*madddf4_trunc): Ditto.
5342         (*msubdf4): Ditto.
5343         (*msubdf4_trunc): Ditto.
5344         (addxf3): Replace xfreg_or_fp01_operand with
5345         xfreg_or_signed_fp01_operand and constraint G with Z.
5346         (*addxf3_truncsf): Ditto.
5347         (*addxf3_truncdf): Ditto.
5348         (subxf3): Ditto.
5349         (*subxf3_truncsf): Ditto.
5350         (*subxf3_truncdf): Ditto.
5351         (*maddxf4): Ditto.
5352         (*maddxf4_truncsf): Ditto.
5353         (*maddxf4_truncdf): Ditto.
5354         (*msubxf4): Ditto.
5355         (*msubxf4_truncsf): Ditto.
5356         (*msubxf4_truncdf): Ditto.
5357
5358 2010-08-04  Richard Guenther  <rguenther@suse.de>
5359
5360         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
5361         if either alias-set is zero.
5362
5363 2010-08-04  Richard Guenther  <rguenther@suse.de>
5364
5365         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
5366         * tree-ssa-ccp.c: ... here.
5367         * tree-ssa-copy.c: ... and here.
5368         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
5369         value_range_t): Move ...
5370         * tree-vrp.c: ... here.
5371         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
5372         (substitute_and_fold): Adjust prototype.
5373         * tree-ssa-propagate.c (replace_uses_in): Adjust.
5374         (replace_phi_args_in): Likewise.
5375         (substitute_and_fold): Take callback to query lattice instead
5376         of pointer to lattice.  Replace SSA name defs with lattice
5377         values first.
5378         * tree-ssa-ccp.c (ccp_finalize): Adjust.
5379         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
5380         (get_value): New function.
5381         (fini_copy_prop): Adjust.
5382         * tree-vrp.c (vrp_finalize): Adjust.
5383
5384 2010-08-04  Richard Guenther  <rguenther@suse.de>
5385
5386         PR middle-end/45176
5387         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
5388         points-to set for original MEM_REF.
5389
5390 2010-08-04  Richard Guenther  <rguenther@suse.de>
5391
5392         * tree-ssa-ccp.c (get_constant_value): New function.
5393         (get_rhs_assign_op_for_ccp): Remove.
5394         (valueize_op): New function.
5395         (ccp_fold): Use get_constant_value and valueize_op.
5396         (fold_const_aggregate_ref): Likewise.
5397         (ccp_fold_stmt): Likewise.
5398         (visit_assignment): Simplify.
5399
5400 2010-08-04  Richard Guenther  <rguenther@suse.de>
5401
5402         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
5403         * double-int.h (double_int_ctz): Declare.
5404         * double-int.c (double_int_ctz): New function.
5405
5406 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
5407
5408         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
5409         Define.
5410         picochip_expand_movmemhi : Expand movmem pattern.
5411         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
5412         Declare.
5413         * config/picochip/picochip.md (movmemhi) : New pattern.
5414
5415 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5416
5417         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
5418
5419 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
5420
5421         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
5422         NEG as operand of a MULT by merging it with the other operand.
5423         * combine.c (make_compound_operation): Use trunc_int_for_mode when
5424         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
5425         MULT.
5426         * config/arm/constraints.md (M): Examine only 32 bits of a
5427         HOST_WIDE_INT.
5428         * config/arm/predicates.md (power_of_two_operand): Likewise.
5429
5430 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5431
5432         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
5433         non-NOTE insns.
5434
5435 2010-08-03  Jan Hubicka  <jh@suse.cz>
5436
5437         * ipa-split.c (struct split_point): Add split_part_set_retval.
5438         (find_retval): Forward declare.
5439         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
5440         (consider_split): Compute current->split_part_set_retval.
5441         (visit_bb): Do not look into return value.
5442         (split_function): Handle !split_part_set_retval
5443
5444 2010-08-03  Martin Jambor  <mjambor@suse.cz>
5445
5446         * tree-sra.c (completely_scalarize_record): New parameter REF, create
5447         its own access->expr intead of using build_ref_for_offset.
5448
5449 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
5450
5451         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
5452         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
5453         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
5454         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
5455         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
5456         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
5457         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
5458         DEFAULT_SWITCH_TAKES_ARG.
5459         * config/rx/rx.opt (-patch=): Remove option.
5460         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
5461         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
5462         * doc/invoke.texi (RX Options): Remove -patch=.
5463         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
5464         (option_map): Remove --profile-blocks, --quiet and --silent.
5465
5466 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5467
5468         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
5469         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
5470         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
5471         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5472         Update calls to ix86_expand_compare and ix86_expand_branch.
5473         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
5474         ix86_expand_compare.
5475         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
5476         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5477         Make static.
5478         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
5479         and ix86_compare_op1.  Update calls to ix86_expand_compare.
5480         (ix86_expand_int_movcc): Ditto.
5481         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
5482         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
5483         (ix86_expand_setcc): Ditto.
5484         (ix86_expand_compare): Remove prototype.
5485         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
5486         ix86_compare_op0 and ix86_compare_op1.  Update calls
5487         to ix86_expand_branch to directly pass operands[1] and operands[2].
5488         (cbranchxf4): Ditto.
5489         (cbranch<MODEF:mode>4): Ditto.
5490         (cbranchcc4): Ditto.
5491         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
5492         Update calls to ix86_expand_setcc to directly pass operands[2] and
5493         operands[3].
5494         (cstorexf4): Ditto.
5495         (cstore<MODEF:mode>4): Ditto.
5496         (cstorecc4): Ditto.
5497
5498 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5499
5500         PR target/45063
5501         * caller-save.c (save_call_clobbered_regs): Remove regs from
5502         hard_regs_saved when they are set.
5503
5504 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
5505
5506         PR target/41089
5507         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
5508         as volatile.
5509
5510 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
5511
5512         * common.opt (ftree-loop-distribute-patterns): New.
5513         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
5514         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
5515         at -O3.
5516         * tree-data-ref.c (stores_zero_from_loop): New.
5517         * tree-data-ref.h (stores_zero_from_loop): Declared.
5518         * tree-loop-distribution.c (tree_loop_distribution): Call
5519         stores_zero_from_loop.
5520         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
5521
5522 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5523
5524         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
5525         into account.
5526
5527         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
5528         * config/arm/arm.c (thumb1_code): New variable.
5529         (arm_override_options): Set it.
5530         (thumb1_final_prescan_insn): Keep track of condition code status.
5531         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
5532         jumps that depend on them.
5533         * config/arm/arm.h (thumb1_code): Declare variable.
5534         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
5535         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
5536         thumb1_cc_mode.
5537         (CC_STATUS_INIT): New macro.
5538         * config/arm/constraints.md (Pd): New constraint.
5539         * config/arm/predicates.md (noov_comparison_operator): New predicate.
5540         * config/arm/arm.md (is_thumb1): New define_attr.
5541         (conds): Set default to "clob" when generating Thumb1 code.
5542         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
5543         code are set.  Use two-operand assembly syntax.
5544         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
5545         pattern.
5546         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
5547         codes are set.  Use two-operand assembly syntax.
5548         (zero_extendhisi splitter): Remove constraints.
5549         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
5550         thumb1_movsf_insn): Set conds attribute as appropriate.
5551         (cbranchsi4_insn): Use condition code status from struct
5552         machine_function to determine whether the comparison can be eliminated.
5553         Discourage the alternative using high registers.
5554         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
5555         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
5556         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
5557         subsi3_cbranch): Delete.
5558         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
5559         one subtract and one cbranch insn.
5560
5561         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
5562         thumb2_movdf_soft_insn): Delete patterns.
5563         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
5564         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
5565         (pool_range, neg_pool_range): Use them to define defaults.
5566         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
5567         and allow for TARGET_32BIT.
5568
5569         PR target/40457
5570         * config/arm/arm.h (arm_regs_in_sequence): Declare.
5571         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
5572         load_multiple_sequence, store_multiple_sequence): Delete
5573         declarations.
5574         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
5575         declarations.
5576         * config/arm/ldmstm.md: New file.
5577         * config/arm/arm.c (arm_regs_in_sequence): New array.
5578         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
5579         CHECK_REGS.  All callers changed.
5580         If SAVED_ORDER is nonnull, copy the computed order into it.
5581         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
5582         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
5583         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
5584         If SAVED_ORDER is nonnull, copy the computed order into it.
5585         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
5586         like REGS.  Handle Thumb mode.
5587         (arm_gen_load_multiple_1): New function, broken out of
5588         arm_gen_load_multiple.
5589         (arm_gen_store_multiple_1): New function, broken out of
5590         arm_gen_store_multiple.
5591         (arm_gen_multiple_op): New function, with code from
5592         arm_gen_load_multiple and arm_gen_store_multiple moved here.
5593         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
5594         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
5595         changed.
5596         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
5597         * config/arm/predicates.md (commutative_binary_operator): New.
5598         (load_multiple_operation, store_multiple_operation): Handle more
5599         variants of these patterns with different starting offsets.  Handle
5600         Thumb-1.
5601         * config/arm/arm.md: Include "ldmstm.md".
5602         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
5603         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
5604         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
5605         peepholes): Delete.
5606         * config/arm/ldmstm.md: New file.
5607         * config/arm/arm-ldmstm.ml: New file.
5608
5609         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
5610         if statement which adds extra costs to frame-related expressions.
5611
5612 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5613
5614         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
5615
5616 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
5617
5618         PR target/45142
5619         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
5620         alternative 2.
5621         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
5622         split V4SI operands.
5623
5624 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
5625
5626         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5627         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
5628         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
5629         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5630
5631 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
5632
5633         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
5634         LOCAL_INCLUDE_DIR.
5635
5636 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
5637
5638         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
5639         used in the call to optab_for_tree_code.  Fix the second
5640         is_widening_mult_p call.  Check that both unwidened operands
5641         have the same sign.
5642
5643 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
5644
5645         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
5646
5647 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
5648
5649         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5650
5651 2010-07-30  DJ Delorie  <dj@redhat.com>
5652
5653         * config/rx/predicates.md (rx_constshift_operand): New.
5654         * config/rx/rx.md (zs_cond): New.
5655         (cbranchsi4): Remove mode.
5656         (*cbranchsi4_<code>): Likewise.
5657         (*tstbranchsi4_<code>): New.
5658         (*tstbranchsi4r_<code>): New.
5659         (*tstbranchsi4m_eq): New.
5660         (*tstbranchsi4m_ne): New.
5661         (cbranchsf4): Remove mode.
5662         (*cbranchsf4_<code>): Likewise.
5663
5664 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
5665
5666         * rtlanal.c (simplify_subreg_regno): Don't treat
5667         HARD_FRAME_POINTER_REGNUM specially.
5668
5669 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
5670
5671         * common.opt (-G): Don't define option here.
5672         * config/g.opt: New.
5673         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
5674         rs6000/powerpc and score targets.
5675         * opts.c (common_handle_option): Don't handle -G here.
5676         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
5677         * config/frv/frv.c (frv_handle_option): Handle -G.
5678         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
5679         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
5680         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
5681         * config/mips/mips.c (mips_handle_option): Handle -G.
5682         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
5683         * config/score/score.c (score_handle_option): Handle -G.
5684
5685 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
5686
5687         * config/mmix/mmix.c: Include basic-block.h.
5688
5689 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
5690
5691         PR debug/45055
5692         PR rtl-optimization/45137
5693         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
5694         prototypes.
5695         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
5696         New functions.
5697         * combine.c (next_nonnote_nondebug_insn): Removed.
5698         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
5699         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
5700         * sched-deps.c (sched_analyze_insn): Likewise.
5701         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
5702         * rtlanal.c (canonicalize_condition): Likewise.
5703         * postreload.c (reload_combine_recognize_pattern): Likewise.
5704         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
5705
5706 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
5707
5708         * config/i386/i386.md (int_cond): Remove code iterator.
5709         (fp_cond): Ditto.
5710         (cbranch<mode>4): Use ordered_comparison_operator predicate
5711         for operator0.
5712         (cstore<mode>4): Ditto for operator1.
5713         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
5714         (add<mode>cc): ditto.
5715
5716 2010-07-30  Richard Guenther  <rguenther@suse.de>
5717
5718         PR middle-end/45141
5719         * expr.c (expand_expr_real_1): Check for not handled base address.
5720
5721 2010-07-30  Richard Guenther  <rguenther@suse.de>
5722
5723         * ipa-prop.c (ipa_modify_formal_parameters): Use
5724         build_distinct_type_copy.
5725
5726 2010-07-30  Anthony Green  <green@moxielogic.com>
5727
5728         * config/moxie/rtems.h: New file.
5729         * config.gcc: Add moxie-rtems support.
5730
5731 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5732
5733         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
5734         df flags as in run_fast_df_dce.
5735
5736 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5737
5738         Revert:
5739         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5740
5741         * rtl.def (NOTE): Swap operands 4 and 5.
5742         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
5743         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
5744         Adjust accordingly.
5745         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
5746
5747 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5748
5749         PR debug/45110
5750         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
5751         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
5752         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
5753         formal parameters.
5754         (gen_decl_die): Change return type to dw_die_ref, return what
5755         gen_formal_parameter_die returned.
5756
5757 2010-07-29  Martin Jambor  <mjambor@suse.cz>
5758
5759         * dbgcnt.def (eipa_sra): New counter.
5760         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
5761
5762 2010-07-29  Xinliang David Li  <davidxl@google.com>
5763
5764         PR bootstrap/45119
5765         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
5766         in revision 162652.
5767
5768 2010-07-29  Richard Guenther  <rguenther@suse.de>
5769
5770         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
5771         (TV_TREE_STORE_CCP): Likewise.
5772         (TV_TREE_REDPHI): Likewise.
5773
5774 2010-07-29  Richard Guenther  <rguenther@suse.de>
5775
5776         * double-int.h (double_int_and_not): New function.
5777         * combine.c (try_combine): Use it.
5778         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
5779
5780 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5781
5782         PR rtl-optimization/42575
5783         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
5784         Argument AU removed.  All callers changed.  Ignore artificial refs.
5785         Use return value of df_word_lr_simulate_defs to decide whether an insn
5786         is necessary.
5787         (fast_dce): Rename arg to WORD_LEVEL.
5788         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
5789         static.
5790         (pass_fast_rtl_byte_dce): Delete.
5791         * dce.h (run_word_dce): Declare.
5792         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
5793         All callers changed.  Simplify code to only deal with two-word regs.
5794         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
5795         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
5796         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
5797         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
5798         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
5799         (df_word_lr_mark_ref): Declare.
5800         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
5801         df_word_lr_simulate_uses): Declare or rename from byte variants.
5802         (df_byte_lr_simulate_artificial_refs_at_top,
5803         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5804         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
5805         declarations.
5806         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
5807         (enum df_mm): Delete.
5808         * df-byte-scan.c: Delete file.
5809         * df-problems.c (df_word_lr_problem_data): Renamed from
5810         df_byte_lr_problem_data, all members deleted except for
5811         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
5812         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
5813         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5814         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
5815         df_byte_lr_confluence_0): Delete functions.
5816         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
5817         callers changed.
5818         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
5819         Don't initialize members that were deleted, don't try to discover data
5820         about registers.  Ignore hard regs.
5821         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
5822         (df_word_lr_mark_ref): New function.
5823         (df_word_lr_bb_local_compute): Renamed from
5824         df_byte_bb_lr_local_compute; all callers changed.  Use
5825         df_word_lr_mark_ref.  Assert that artificial refs don't include
5826         pseudos.  Ignore hard registers.
5827         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
5828         Assert that exit block uses don't contain pseudos.
5829         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
5830         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
5831         callers changed.  Ignore hard regs.
5832         (df_word_lr_transfer_function): Renamed from
5833         df_byte_lr_transfer_function; all callers changed.
5834         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
5835         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
5836         changed.
5837         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
5838         callers changed.
5839         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
5840         confluence operator 0 set to NULL.
5841         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
5842         callers changed.
5843         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
5844         Return bool, true if bitmap changed or insn otherwise necessary.
5845         All callers changed.  Simplify using df_word_lr_mark_ref.
5846         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
5847         all callers changed.  Simplify using df_word_lr_mark_ref.
5848         * lower-subreg.c: Include "dce.h"
5849         (decompose_multiword_subregs): Call run_word_dce if df available.
5850         * Makefile.in (lower-subreg.o): Adjust dependencies.
5851         (df-byte-scan.o): Delete.
5852         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
5853
5854 2010-07-29  Richard Guenther  <rguenther@suse.de>
5855
5856         * tree.c (build_vector): Assert that the vector constant
5857         has enough elements.
5858         (build_vector_from_ctor): Pad with trailing zeros.
5859
5860 2010-07-29  Richard Guenther  <rguenther@suse.de>
5861
5862         PR tree-optimization/45120
5863         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5864         Handle offset in DEREFs properly.
5865         (get_constraint_for_1): Handle MEM_REF offset properly.
5866
5867 2010-07-29  Richard Guenther  <rguenther@suse.de>
5868
5869         PR middle-end/45034
5870         * convert.c (convert_to_integer): Always use an unsigned
5871         type for narrowed negate and bitwise not.
5872
5873 2010-07-29  Ira Rosen  <irar@il.ibm.com>
5874
5875         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
5876         to outer loop when creating reduction epilogue for double reduction,
5877         and switch back to the inner loop when updating the phi nodes.
5878         Update uses of outer loop exit phi nodes in double reduction (instead
5879         of uses of reduction).
5880
5881 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5882
5883         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
5884         popcount on power7 and parity on power6 systems.
5885         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
5886         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
5887         instructions.
5888
5889         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
5890         (UNSPEC_PARITY): Ditto.
5891         (SFDF): New iterator for SF/DF.
5892         (rreg2): New mode attribute for floating register constraint.
5893         (TARGET_FLOAT): New mode attribute for whether single/double float
5894         is supported.
5895         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
5896         pattern.
5897         (parity<mode>2_cmpb): New insn for parity on power6 and newer
5898         machines.
5899         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
5900         pattern.  Add support for fcpsgn instruction added in power6.
5901         (copysignsf3): Delete.
5902         (copysigndf3): Delete.
5903         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
5904         instead of if_then_else in RTL to avoid problems with -0.
5905
5906         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
5907         of if_then_else to mirror scalar code.
5908         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
5909         rs6000.md.
5910
5911         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
5912         instead of if_then_else.
5913
5914 2010-07-28  Xinliang David Li  <davidxl@google.com>
5915
5916         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
5917         (dump_cand): Dump var_before/after.
5918         (htab_inv_expr_eq): New function.
5919         (htab_inv_expr_hash): New function.
5920         (tree_ssa_iv_optimize_init): Support pseudo invariants.
5921         (add_candidate_1): consider base type precision.
5922         (set_use_iv_cost): New parameter.
5923         (adjust_setup_cost): Use profile information.
5924         (get_address_cost): Do not hard code width in computing address
5925         offset limits.
5926         (compare_aff_trees): New function.
5927         (get_loop_invariant_expr_id): New function.
5928         (get_computation_cost_at): New parameter and use profile information.
5929         (get_computation_cost): New parameter.
5930         (determine_use_iv_cost_generic): Pass new parameter.
5931         (determine_use_iv_cost_address): Ditto.
5932         (determine_use_iv_cost_condition): Ditto.
5933         (autoinc_possible_for_pair): Ditto.
5934         (determine_use_iv_costs): More dumps.
5935         (iv_ca_get_num_inv_exprs): New function.
5936         (iv_ca_recount_cost): Consider loop invariants in register pressure
5937         cost.
5938         (iv_ca_add_use): New parameter.
5939         (iv_ca_dump): Better dumping.
5940         (iv_ca_extend): New parameter.
5941         (try_add_cand_for): Attempt to get better partial solution.
5942         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
5943         (create_new-ivs): More dumps.
5944         (rewrite_use_compare): Ditto.
5945         (free_loop_data): More cleanup.
5946         (treee_ssa_iv_optimize_finalize): Ditto.
5947
5948 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
5949
5950         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
5951         * config/i386/i386.c (ix86_profile_before_prologue): New.
5952         (override_options): Add special handling for -mfentry.
5953         (ix86_function_regparm): Likewise.
5954         (ix86_function_sseregparm): Likewise.
5955         (ix86_frame_pointer_required): Likewise.
5956         (ix86_expand_prologue): Check for ms_hook_prologue.
5957         (x86_function_profiler): Adjust mcount output.
5958         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
5959         * config/i386/i386.opt (mfentry): New.
5960         * doc/invoke.texi (mfentry): Add documentation.
5961         * doc/tm.texi: Regenerated..
5962         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
5963         * final.c (final_start_function): Replace macro
5964         PROFILE_BEFORE_PROLOGUE by target hook.
5965         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5966         * target.def (profile_before_prologue): New hook.
5967         * targhooks.c (default_profile_before_prologue): New.
5968         * targhooks.h (default_profile_before_prologue): New.
5969
5970 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
5971
5972         PR debug/45105
5973         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
5974
5975         PR debug/45103
5976         * dwarf2out.c (dwarf2out_var_location): Always consider
5977         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
5978
5979 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5980
5981         PR rtl-optimization/45107
5982         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
5983
5984 2010-07-28  Richard Guenther  <rguenther@suse.de>
5985
5986         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
5987         (set_lattice_value): Do not query an old default value.
5988         (get_value_for_expr): New function.  Properly canonicalize
5989         float values.
5990         (ccp_visit_phi_node): Use it.
5991
5992 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
5993
5994         * config/arm/arm.c (arm_pcs_default): Remove static.
5995         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
5996         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
5997         (arm_pcs_default): Declare.
5998
5999 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
6000
6001         * config/rs6000/rs6000.c (rs6000_override_options):
6002         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
6003         ... to darwin_rs6000_override_options.
6004         (rs6000_return_in_memory): Update preceding comment for darwin
6005         64 bit ABI.  Use TARGET_MACHO inline.
6006         (rs6000_darwin64_struct_check_p): New.
6007         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
6008         (function_arg): Likewise.
6009         (rs6000_arg_partial_bytes): Likewise.
6010         (rs6000_function_value): Likewise.
6011
6012 2010-07-28  Andi Kleen <ak@linux.intel.com>
6013
6014         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
6015
6016 2010-07-28  Richard Guenther  <rguenther@suse.de>
6017
6018         PR middle-end/44903
6019         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
6020         targets try harder to not generate unaligned accesses.
6021
6022 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
6023
6024         PR rtl-optimization/45101
6025         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
6026         for gcse-las.
6027
6028 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6029
6030         PR tree-optimization/44885
6031         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
6032         with non-aliased component.
6033
6034 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
6035
6036         * config/darwin-driver.c (SWITCH_TAKES_ARG,
6037         WORD_SWITCH_TAKES_ARG): Remove.
6038         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6039         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
6040         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
6041         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
6042         definitions from gcc.c.
6043         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
6044         defaults.h.
6045         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
6046         Move to defaults.h.
6047         * opts-common.c: Include tm.h.
6048         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
6049         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
6050         Handle more than one argument.  Set canonical_option_num_elements.
6051         (decode_cmdline_options_to_array): Set
6052         canonical_option_num_elements and trailing elements of
6053         canonical_option.
6054         * opts.h (struct cl_decoded_option): Allow four elements in
6055         canonical_option.  Add field canonical_option_num_elements.
6056         * Makefile.in (opts-common.o): Update dependencies.
6057
6058 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6059
6060         PR middle-end/44790
6061         PR middle-end/44993
6062         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
6063         sure the base has address_mode before adding the offset.
6064
6065 2010-07-27  Xinliang David Li <davidxl@google.com>
6066
6067         * tree-flow.h (create_mem_ref): Add one new parameter.
6068         * tree-ssa-address.c (create_mem_ref): New parameter.
6069         (addr_to_parts): Ditto.
6070         (move_variant_to_index): New function.
6071         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
6072
6073 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6074
6075         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
6076         4 and 5.
6077         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
6078         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
6079         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
6080         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
6081         CODE_LABELs and NOTEs.
6082         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
6083         * combine.c (try_combine): Likewise.
6084         * ira.c (setup_prohibited_mode_move_regs): Likewise.
6085         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
6086
6087 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6088
6089         * coretypes.h (struct cl_option_handlers): Declare.
6090         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
6091         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
6092         * langhooks-def.h (lhd_handle_option): Declare.
6093         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
6094         * langhooks.c (lhd_handle_option): New.
6095         * langhooks.h (struct lang_hooks): Update prototype and return
6096         value type of handle_option hook.
6097         * optc-gen.awk: Generate target_flags_explicit definition for the
6098         driver.
6099         * opts-common.c: Include diagnostic.h.
6100         (handle_option): Move from opts.c.  Update prototype and return
6101         value type.  Use handlers structure.
6102         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
6103         handlers structure.
6104         (set_option): Move from opts.c.
6105         * opts.c (common_handle_option): Update prototype and return value
6106         type.  Update calls to handle_option and enable_warning_as_error.
6107         (unknown_option_callback, post_handling_callback,
6108         lang_handle_option, target_handle_option): New.
6109         (handle_option, read_cmdline_option): Move to opts-common.c.
6110         (read_cmdline_options): Update prototype.  Update call to
6111         read_cmdline_option.
6112         (decode_options): Initialize and use handlers structure.
6113         (set_option): Move to opts-common.c.
6114         (enable_warning_as_error): Update prototype.  Update call to
6115         handle_option.
6116         * opts.h (struct cl_option_handler_func, struct
6117         cl_option_handlers): New.
6118         (handle_option, enable_warning_as_error): Update prototypes.
6119         (read_cmdline_option): Declare.
6120         * Makefile.in (opts-common.o): Update dependencies.
6121
6122 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6123
6124         * config/arm/arm.c (params.h): Include.
6125         (arm_override_options): Tune gcse-unrestricted-cost.
6126         * config/arm/t-arm (arm.o): Define dependencies.
6127
6128 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6129
6130         PR target/42495
6131         PR middle-end/42574
6132         * basic-block.h (get_dominated_to_depth): Declare.
6133         * dominance.c (get_dominated_to_depth): New function, use
6134         get_all_dominated_blocks as a base.
6135         (get_all_dominated_blocks): Use get_dominated_to_depth.
6136
6137         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
6138         (hoist_exprs): Remove.
6139         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
6140         (compute_code_hoist_vbeinout): Add debug print outs.
6141         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
6142
6143         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
6144         quadratic behavior.
6145         * params.h (MAX_HOIST_DEPTH): New macro.
6146         * doc/invoke.texi (max-hoist-depth): Document.
6147
6148 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6149
6150         PR rtl-optimization/40956
6151         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
6152         constants.
6153
6154 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6155
6156         PR target/42495
6157         PR middle-end/42574
6158         * config/arm/arm.c (legitimize_pic_address): Use
6159         gen_calculate_pic_address pattern to emit calculation of PIC address.
6160         (will_be_in_index_register): New function.
6161         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
6162         (thumb1_legitimate_address_p): Use it provided !strict_p.
6163         * config/arm/arm.md (calculate_pic_address): New expand and split.
6164
6165 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6166
6167         PR target/42495
6168         PR middle-end/42574
6169         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
6170         * config/arm/arm.md (define_split "J", define_split "K"): Make
6171         IRA/reload friendly.
6172
6173 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6174
6175         * gcse.c (insert_insn_end_basic_block): Update signature, remove
6176         unused checks.
6177         (pre_edge_insert, hoist_code): Update.
6178
6179 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6180
6181         PR target/42495
6182         PR middle-end/42574
6183         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
6184
6185 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6186
6187         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
6188
6189 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6190
6191         PR rtl-optimization/40956
6192         PR target/42495
6193         PR middle-end/42574
6194         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
6195         for hoisting.
6196         (hoist_code): Count occurences in current block too.
6197
6198 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6199
6200         * gcse.c (struct expr:max_distance): New field.
6201         (doing_code_hoisting_p): New static variable.
6202         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
6203         simple expressions, don't change behavior for PRE.  Set max_distance.
6204         (insert_expr_in_table): Set new max_distance field.
6205         (hash_scan_set): Update.
6206         (hoist_expr_reaches_here_p): Stop search after max_distance
6207         instructions.
6208         (find_occr_in_bb): New static function.  Use it in ...
6209         (hoist_code): Calculate sizes of basic block before any changes are
6210         done.  Pass max_distance to hoist_expr_reaches_here_p.
6211         (one_code_hoisting_pass): Set doing_code_hoisting_p.
6212
6213         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
6214         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
6215         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
6216         macros.
6217         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
6218         Document.
6219
6220 2010-07-27  Jeff Law  <law@redhat.com>
6221             Maxim Kuvyrkov  <maxim@codesourcery.com>
6222
6223         * gcse.c (compute_transpout, transpout): Remove, move logic
6224         to prune_expressions.
6225         (compute_pre_data): Move pruning of trapping expressions ...
6226         (prune_expressions): ... here.  New static function.
6227         (compute_code_hoist_data): Use it.
6228         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
6229
6230 2010-07-27  Xinliang David Li  <davidxl@google.com>
6231
6232         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
6233         (rewrite_use_address): Adjust iv update position when needed.
6234
6235 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6236
6237         * dbgcnt.def (hoist_insn): New debug counter.
6238         * gcse.c (hoist_code): Use it.
6239
6240 2010-07-27  Xinliang David Li  <davidxl@google.com>
6241
6242         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
6243         (niter_for_single_dom_exit): Passes additional parameter.
6244         (iv_period): Fix comments.
6245         (may_eliminate_iv): Handles multiple exit loops properly.
6246         (free_tree_niter_desc): New function.
6247         (free_loop_data): Frees up loop iteration descriptors.
6248
6249 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6250
6251         PR target/44542
6252         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
6253         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
6254         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
6255         (expand_one_var): Don't consider DECL_ALIGN for variables for
6256         which expand_one_stack_var_at has been already called.
6257
6258         PR testsuite/44701
6259         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
6260         constraints on IA-64.
6261
6262 2010-07-27  Jie Zhang  <jie@codesourcery.com>
6263
6264         PR target/44290
6265         Revert:
6266         2010-07-23  Jie Zhang  <jie@codesourcery.com>
6267
6268         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6269         false if ! tree_versionable_function_p.
6270
6271 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6272
6273         * dwarf2out.c (add_data_member_location_attribute): Use
6274         add_AT_unsigned instead of add_AT_int if offset is non-negative.
6275
6276 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6277
6278         * postreload.c (try_replace_in_use): New static function.
6279         (reload_combine_recognize_const_pattern): Use it here.  Allow
6280         substituting into a final add insn, and substituting into a memory
6281         reference in an insn that sets the reg.
6282
6283 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6284
6285         * common.opt (o): Add MissingArgError.
6286         * doc/options.texi (MissingArgError): Document.
6287         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
6288         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
6289         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
6290         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
6291         * langhooks.h (struct lang_hooks): Remove missing_argument.
6292         * optc-gen.awk: Handle MissingArgError and output new structure
6293         field initializers.
6294         * opts.c (read_cmdline_option): Use missing_argument_error field
6295         instead of missing_argument langhook.
6296         * opts.h (struct cl_option): Add missing_argument_error field.
6297         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
6298
6299 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6300
6301         PR target/29090
6302         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
6303         Darwin64 ABI, for zero-sized objects.
6304
6305 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6306
6307         PR target/35491
6308         PR target/29090
6309
6310         Merge from Apple local 4.2.1.
6311         2005-05-11  Stan Shebs  <shebs@apple.com>
6312         Fix 64-bit varargs for Darwin (Radar 4028089).
6313         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
6314         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
6315         Add argument, add case for 8-byte register half-filled with a float.
6316         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
6317         single-precision floats specially.
6318
6319 2010-07-27  Ira Rosen  <irar@il.ibm.com>
6320
6321         PR tree-optimization/44152
6322         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
6323         complex numbers for further check.
6324         (vect_supported_load_permutation_p): Check nodes with
6325         complex numbers.
6326
6327 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6328
6329         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
6330         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
6331         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
6332         (LANG_HOOKS_INITIALIZER): Add new hooks.
6333         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
6334         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
6335         and complain_wrong_lang_p.  Update init_options prototype.
6336         * c-objc-common.c (c_initialize_diagnostics): First call
6337         c_common_initialize_diagnostics.
6338         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
6339         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
6340         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
6341         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
6342         (hook_uint_void_0): New.
6343         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
6344         (hook_uint_void_0): New.
6345         * opts-common.c (decode_cmdline_option,
6346         decode_cmdline_options_to_array): Also fill in canonical_option field.
6347         * opts.c (complain_wrong_lang): Use langhook to determine whether
6348         to complain instead of special-casing LTO.
6349         (decode_options): Separate lang_mask determination with
6350         option_lang_mask hook from call of init_options hook.
6351         * opts.h (struct cl_decoded_option): Add canonical_option.
6352
6353 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR tree-optimization/45083
6356         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
6357
6358 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6359
6360         * postreload.c (reload_combine_recognize_const_pattern): Move test
6361         for limiting the insn movement to the right scope.
6362
6363         PR rtl-optimization/45051
6364         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
6365         than reg_mentioned_p.
6366
6367 2010-07-26  Richard Henderson  <rth@redhat.com>
6368
6369         PR target/44132
6370         * tree-emutls.c: New file.
6371         * Makefile.in (OBJS-common): Add it.
6372         * tree-pass.h (pass_ipa_lower_emutls): Declare.
6373         * passes.c (init_optimization_passes): Add it.
6374
6375         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
6376         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
6377         * expr.c (emutls_var_address): Delete.
6378         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
6379         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
6380         (emutls_finish): Delete.
6381         * toplev.c (compile_file): Don't call it.
6382         * tree.h (emutls_decl): Delete.
6383         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
6384         (emutls_finish, emutls_finalize_control_var): Delete.
6385         (emutls_object_type): Move to tree-emutls.c.
6386         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
6387         default_emutls_var_fields, get_emutls_object_type,
6388         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
6389         default_emutls_var_init): Likewise.
6390         (get_variable_section): Don't special case emutls.
6391         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
6392         default_elf_select_section, default_unique_section,
6393         default_encode_section_info): Likewise.
6394         * varpool.c (decide_is_variable_needed): Likewise.
6395         * gimple-iterator.c (update_call_edge_frequencies): New
6396         (gsi_insert_on_edge_immediate): Use it.
6397         (gsi_insert_seq_on_edge_immediate): Likewise.
6398         (gsi_commit_one_edge_insert): Likewise.
6399
6400         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
6401         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
6402         (x86_64_elf_unique_section): Likewise.
6403
6404 2010-07-26  Jan Hubicka  <jh@suse.cz>
6405
6406         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
6407         GTY((skip)).
6408
6409 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
6410
6411         * target.def (output_source_filename): New hook.
6412         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
6413         * doc/tm.texi: Regenerate.
6414         * toplev.c (output_file_directive) Remove function.
6415         * toplev.h (output_file_directive) Remove.
6416         * output.h (default_asm_output_source_filename,
6417         output_file_directive): Declare.
6418         * varasm.h (default_asm_output_source_filename,
6419         output_file_directive): New functions.
6420
6421         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6422         * config/mips/mips-protos.h (mips_output_filename): Remove.
6423         * config/mips/mips.c (mips_output_filename): Make Static.
6424         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6425
6426 2010-07-26  Richard Guenther  <rguenther@suse.de>
6427
6428         PR tree-optimization/43784
6429         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
6430         if the destination is used by the call.
6431
6432 2010-07-26  Richard Guenther  <rguenther@suse.de>
6433
6434         PR middle-end/45073
6435         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
6436         SSA updating on being in SSA form.
6437
6438 2010-07-26  Richard Guenther  <rguenther@suse.de>
6439
6440         PR middle-end/45056
6441         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
6442
6443 2010-07-26  Richard Guenther  <rguenther@suse.de>
6444
6445         PR tree-optimization/45071
6446         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
6447         adjust op->opcode.
6448
6449 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
6450
6451         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
6452         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
6453         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
6454         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
6455         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
6456         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
6457         save_r31, return_r31, save_interrupt, return_interrupt,
6458         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
6459         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
6460         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
6461         new ABI requirements.
6462         (save_r6_r9, L_callt_save_r6_r9): Remove.
6463         * config/v850/predicates.md (even_reg_operand, disp23_operand,
6464         const_float_1_operand const_float_0_operand): New Predicates.
6465         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
6466         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
6467         * config/v850/t-v850: Update multilibs for new target variants.
6468         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
6469         * config/v850/t-v850e: Likewise.
6470         * config/v850/v850.c (v850_issue_rate): New.
6471         (v850_strict_argument_naming): New.
6472         (function_arg): Modify to generate a different ABI.
6473         (print_operand): Update case 'z' to support float modes.
6474         (output_move_single): Modify to generate appropriate and better
6475         assembly.
6476         (v850_float_z_comparison_operator, v850_select_cc_mode,
6477         v850_float_nz_comparison_operator,  v850_gen_float_compare,
6478         v850_gen_compare): New functions to support comparison of float values.
6479         (ep_memory_offset): Add support for V850E2 targets.
6480         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
6481         (INTERRUPT_REGPARM_NUM): Remove.
6482         (compute_register_save_size): Add extra case to save/restore long call.
6483         (use_prolog_function): New function to support prologue.
6484         (expand_prologue): Add support for V850E2 targets and modified
6485         as per the current ABI requirements.
6486         (expand_epilogue): Likewise.
6487         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
6488         (construct_save_jarl): Likewise.
6489         (construct_dispose_instruction): Update as per the current ABI
6490         requirements.
6491         (construct_prepare_instruction): Likewise.
6492         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
6493         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
6494         (CPP_SPEC): Updated to support v850e2 targets.
6495         (STRICT_ALIGNMENT): Modified.
6496         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
6497         (FIXED_REGISTERS): Likewise.
6498         (CALL_USED_REGISTERS): Likewise.
6499         (CONDITIONAL_REGISTER_USAGE): Updated.
6500         (HARD_REGNO_MODE_OK): Updated.
6501         (reg_class): Updated to add even registers.
6502         (REG_CLASS_NAMES): Likewise.
6503         (REG_CLASS_CONTENTS): Likewise.
6504         (REGNO_REG_CLASS): Updated for CC registers.
6505         (REG_CLASS_FROM_LETTER): Added support for even registers.
6506         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
6507         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
6508         ARG_POINTER_REGNUM): Updated.
6509         (FUNCTION_ARG_ADVANCE): Define.
6510         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
6511         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
6512         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
6513         (GO_IF_LEGITIMATE_ADDRESS): Updated.
6514         (SELECT_CC_MODE): Define.
6515         (REGISTER_NAMES): Updated to add psw and fcc registers.
6516         (ADDITIONAL_REGISTER_NAMES): Updated.
6517         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
6518         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
6519         * config/v850/v850.md (define_constants): Define new constants.
6520         (type): Update store,bit1,macc,div,fpu and single attributes.
6521         (cpu): New attribute.
6522         (cc): Add set_z attribute.
6523         (unsign23byte_load, sign23byte_load, unsign23hword_load,
6524         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
6525         23word_store): New instructions for 23-bit displacement load and store.
6526         (movqi_internal, movhi_internal): Update the attributes.
6527         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
6528         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
6529         the attributes.
6530         (v850_tst1): Modified using CC_REGNUM.
6531         (tstsi): Remove.
6532         (cmpsi): Modified as define_expand from define_insn.
6533         (cmpsi_insn, cmpsf, cmpdf): New instructions.
6534         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
6535         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
6536         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
6537         one_cmplsi2): Clobber the CC_REGNUM register.
6538         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
6539         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
6540         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
6541         (setf_insn, set_z_insn, set_nz_insn): New instructions for
6542         v850e2v3 target.
6543         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
6544         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
6545         targets.
6546         (sasf_1, sasf_2): Remove.
6547         (sasf): New instruction.
6548         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
6549         targets. CC_REGNUM register is clobbered and attributes are
6550         updated.
6551         (branch_z_normal, branch_z_invert, branch_nz_normal,
6552         branch_nz_invert): New branch related instructions.
6553         (jump): Updated the attributes.
6554         (switch): Update to support new targets. CC_REGNUM register is
6555         clobbered and attributes are updated.
6556         (call_internal_short, call_internal_long, call_value_internal_short,
6557         call_value_internal_long): Updated the attributes.
6558         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
6559         clobbered and attributes are updated.
6560         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
6561         Update to support new targets. CC_REGNUM register is clobbered.
6562         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
6563         instructions.
6564         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
6565         are updated.
6566         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
6567         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
6568         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
6569         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
6570         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
6571         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
6572         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
6573         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
6574         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
6575         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
6576         point instructions defined for V850e2v3 target.
6577         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
6578         Add support for V850E2 targets and CC_REGNUM register is clobbered.
6579         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
6580         support for new targets.
6581         * config/v850/v850-modes.def: New file.
6582         * config/v850/v850.opt(mstrict-align): Remove.
6583         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
6584         mv850e2v3): New command line options for V850.
6585         * config.gcc: Update the newly added files.
6586         * doc/invoke.texi: Update the newly added command line options for
6587         V850 target.
6588
6589 2010-07-26  Richard Guenther  <rguenther@suse.de>
6590
6591         PR tree-optimization/45052
6592         * ipa-pure-const.c (check_stmt): Check volatileness.
6593
6594 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6595
6596         PR target/44707
6597         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
6598         * config/sparc/sparc.c: Include reload.h.
6599         (legitimize_tls_address): Rename into...
6600         (sparc_legitimize_tls_address): ...this.
6601         (legitimize_pic_address): Rename into...
6602         (sparc_legitimize_pic_address): ...this.
6603         (sparc_expand_move): Adjust to above renaming.
6604         (sparc_tls_referenced_p): Likewise.
6605         (sparc_legitimize_tls_address): Likewise.
6606         (sparc_legitimize_pic_address): Likewise.
6607         (sparc_legitimize_address): Likewise.
6608         (sparc_output_mi_thunk): Likewise.
6609         (sparc_legitimize_reload_address): New global function.  Recognize
6610         (lo_sum (high ...) ...) patterns generated by earlier passes.
6611         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
6612
6613 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6614
6615         PR target/44484
6616         * config/sparc/predicates.md (memory_reg_operand): Delete.
6617         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
6618         (*sync_compare_and_swap): Encode the address form in the pattern.
6619         (*sync_compare_and_swapdi_v8plus): Likewise.
6620
6621 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
6622
6623         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
6624         Streamline paragraph on compatibility with the system compiler.
6625
6626 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
6627
6628         PR middle-end/45035
6629         * alias.c (true_dependence_1): Fix thinko in merge of old
6630         true_dependence and canon_true_dependence.
6631
6632 2010-07-23  Jan Hubicka  <jh@suse.cz>
6633
6634         * lto-streamer-out.c (write_symbol): Fix visibilities of external
6635         references.
6636
6637 2010-07-23  Le-Chun Wu  <lcwu@google.com>
6638
6639         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
6640         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
6641         and an unnecessary assignment.
6642         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
6643         self-assign warning.
6644         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
6645         unnecessary self-init.
6646
6647 2010-07-23  Richard Guenther  <rguenther@suse.de>
6648
6649         PR lto/43071
6650         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
6651         for -flto and -fwhopr.
6652
6653 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
6654
6655         PR target/41943
6656         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
6657         (stmp-int-hdrs): Prefix/postfix headers by include_next.
6658         * config.gcc (user_headers_inc_next_pre): New.
6659         (user_headers_inc_next_post): Likewise.
6660         (*-w64-mingw*): Use for float.h post-fixing, and for
6661         stddef.h/stdarg.h pre-fixing by include_next.
6662         * configure.ac (user_headers_inc_next_post): New.
6663         (user_headers_inc_next_pre): New.
6664         * configure: Regenerated.
6665
6666 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6667
6668         * configure.ac: Don't disable TLS on Solaris 8/9 by default
6669         Set tga_func for Solaris 2/x86 resp. SPARC.
6670         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
6671         (LIB_THREAD_LDFLAGS_SPEC): Define.
6672         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
6673         * configure: Regenerate.
6674         * config.in: Regenerate.
6675         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
6676         -pthread, -threads, LIB_TLS_SPEC with -pthread.
6677         * doc/install.texi (Specific, *-*-solaris2*): Document use of
6678         alternate thread libraries on Solaris 8.
6679         Document TLS patch requirements.
6680         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
6681         Document tls.
6682
6683         PR target/18788
6684         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
6685         -shared.
6686
6687 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
6688
6689         * tree.h (struct tree_base): Add nameless_flag bitfield.
6690         (TYPE_NAMELESS, DECL_NAMELESS): Define.
6691         * omp-low.c (create_omp_child_function, scan_omp_parallel,
6692         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
6693         DECL_ARTIFICIAL where needed.
6694         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
6695         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
6696         has DECL_NAMELESS set.
6697
6698 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6699
6700         PR tree-optimization/44915
6701         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
6702         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
6703         (analyze_function): Likewise.
6704
6705 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6706
6707         PR tree-optimization/44914
6708         * tree-sra.c (sra_modify_function_body): Return true if CFG was
6709         changed, add purging dead eh edges.
6710         (ipa_sra_modify_function_body): Return true if CFG was changed,
6711         simplify purging dead eh edges.
6712         (modify_function): Return true if CFG was changed.
6713         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
6714         was changed.
6715         (ipa_early_sra): Likewise.
6716
6717 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6718
6719         PR target/44290
6720         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
6721         if "naked".
6722         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6723         false if ! tree_versionable_function_p.
6724
6725 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
6726
6727         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
6728         * ipa-pure-const.c (special_builtlin_state): Remove
6729         BUILT_IN_ARGS_INFO case.
6730         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6731         * builtins.c (expand_builtin): Likewise.
6732         (expand_builtin_args_info): Remove.
6733         * doc/tm.texi (__builtin_args_info): Remove.
6734         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
6735         * doc/tm.text.in: Likewise.
6736
6737 2010-07-23  Richard Guenther  <rguenther@suse.de>
6738
6739         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
6740         (lto_symtab_merge_decls_2): Likewise.
6741         * tree-ssa.c (useless_type_conversion_p): Likewise.
6742         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6743         * gimple.c (gtc_visited2, gtc_ob2): Remove.
6744         (struct type_pair_d): Make same_p an array indexed by mode.
6745         Update comment.
6746         (lookup_type_pair): Update initialization.
6747         (struct sccs): Adjust same_p type.
6748         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
6749         Adjust.
6750         (print_gimple_types_stats): Likewise.
6751         * gimple.h (enum gtc_mode): New.
6752         (gimple_types_compatible_p): Adjust prototype.
6753
6754 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
6755
6756         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
6757         again after processing insn.
6758
6759 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6760
6761         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
6762         proper words when !tree_versionable_function_p.
6763
6764 2010-07-23  Richard Guenther  <rguenther@suse.de>
6765
6766         PR tree-optimization/45037
6767         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
6768
6769 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6770
6771         * doc/extend.texi: Remove IP2K from the description of naked attribute.
6772         Add MCORE instead.
6773
6774 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6775
6776         PR lto/44992
6777         * lto-opts.c (lto_write_options): Add NULL file_data argument to
6778         lto_get_section_name.
6779         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
6780         * lto-streamer-out.c (produce_asm): Likewise.
6781         (copy_function): Likewise.
6782         (produce_symtab): Likewise.
6783         (produce_asm_for_decls): Likewise.
6784         * lto-streamer.c (lto_get_section_name): Add file_data argument.
6785         Rewrite to add random postfix to LTO sections.
6786         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
6787         (lto_get_section_name): Add file_data argument to prototype.
6788
6789 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6790
6791         * lto-section-in.c (lto_section_name): Synchronize names
6792         with lto_get_section_name.
6793
6794 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6795
6796         * lto-opts.c (lto_read_file_options): Check for missing section.
6797
6798 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6799
6800         * ira.c (check_allocation): Correctly handle the case where an allocno
6801         with two objects was allocated to a single reg.
6802
6803 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
6804
6805         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
6806         (is_widening_mult_p): Likewise.
6807         (convert_to_widen): Use them.
6808         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
6809         well as integer ones.
6810
6811 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
6812
6813         * alias.c (true_dependence_1): New function, merged version of
6814         true_dependence and canon_true_dependence.
6815         (true_dependence): Simplify.
6816         (canon_true_dependence): Simplify.
6817
6818 2010-07-22  Richard Henderson  <rth@redhat.com>
6819
6820         PR target/45027
6821         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
6822         of V4SFmode for the SSE saves; increase stack alignment if needed.
6823         (ix86_gimplify_va_arg): Don't increase stack alignment here.
6824
6825 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
6826
6827         PR bootstrap/45028
6828         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
6829         call cprop_find_used_regs again via note_uses.
6830
6831 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6832
6833         * alias.c (get_alias_set): Fix formatting issues.
6834
6835 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
6836
6837         PR middle-end/44878
6838         * stmt.c (expand_value_return):  Call promote_function_mode with
6839         a for_return argument of 2 when returning by reference.
6840
6841 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
6842
6843         PR debug/45024
6844         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
6845         unit DIE if we can find the scope DIE.
6846
6847 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6848
6849         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
6850         changed.  Initialize OBJECT_SUBWORD.
6851         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6852         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
6853         all callers changed.
6854         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
6855         (finish_allocno): Likewise.
6856         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
6857         (remove_low_level_allocnos): Likewise.
6858         (update_bad_spill_attribute): Likewise.
6859         (setup_min_max_allocno_live_range_point): Likewise.
6860         (sort_conflict_id_map): Likewise.
6861         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
6862         (ior_hard_reg_conflicts): New function.
6863         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
6864         (compress_conflict_vecs): Iterate over objects, not allocnos.
6865         (ira_add_live_range_to_object): New function.
6866         (object_range_compare_func): Renamed from allocno_range_compare_func.
6867         All callers changed.
6868         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
6869         subobjects, widen the min/max range of the lowest-order object to
6870         potentially include all other such low-order objects.
6871         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
6872         (check_allocation): Likewise.  Use more fine-grained tests for register
6873         conflicts.
6874         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
6875         allocno subobjects.
6876         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
6877         choices about which bits to set in each set.  Don't use
6878         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
6879         using the multiple sets we computed.
6880         (push_allocno_to_stack): Iterate over allocno subobjects.
6881         (all_conflicting_hard_regs_coalesced): New static function.
6882         (setup_allocno_available_regs_num): Use it.
6883         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
6884         subobjects.
6885         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
6886         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6887         by ALLOCNO_NUM_OBJECTS.
6888         (calculate_spill_cost): Likewise.
6889         (color_pass): Express if statement in a more normal way.
6890         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
6891         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
6892         (setup_slot_coalesced_allocno_live_ranges): Likewise.
6893         (allocno_reload_assign): Likewise.
6894         (ira_reassign_pseudos): Likewise.
6895         (fast_allocation): Likewise.
6896         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6897         (print_allocno_conflicts): Likewise.
6898         (ira_build_conflicts): Likewise.
6899         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
6900         callers changed.  Test subword 0 of each allocno for conflicts.
6901         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
6902         callers changed.  Iterate over allocno subobjects.
6903         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
6904         * ira-int.h (struct ira_allocno): New member: num_objects.
6905         Rename object to objects and change it into an array.
6906         (ALLOCNO_OBJECT): Add new argument N.
6907         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
6908         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
6909         (ior_hard_reg_conflicts): Declare.
6910         (ira_add_live_range_to_object): Declare.
6911         (ira_allocno_object_iterator): New.
6912         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
6913         (FOR_EACH_ALLOCNO_OBJECT): New macro.
6914         * ira-lives.c (objects_live): Renamed from allocnos_live; all
6915         uses changed.
6916         (allocnos_processed): New sparseset.
6917         (make_object_born): Renamed from make_allocno_born; take an
6918         ira_object_t argument.  All callers changed.
6919         (make_object_dead): Renamed from make_allocno_dead; take an
6920         ira_object_t argument.  All callers changed.
6921         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
6922         All callers changed.
6923         (mark_pseudo_regno_live): Iterate over allocno subobjects.
6924         (mark_pseudo_regno_dead): Likewise.
6925         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
6926         functions.
6927         (mark_ref_live): Detect subword accesses and call
6928         mark_pseudo_regno_subword_live as appropriate.
6929         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
6930         (process_bb_nodes_live): Deal with object-related updates first; set
6931         and test bits in allocnos_processed to avoid computing allocno
6932         statistics more than once.
6933         (create_start_finish_chains): Iterate over objects, not allocnos.
6934         (print_object_live_ranges): New function.
6935         (print_allocno_live_ranges): Use it.
6936         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
6937         and objects_live.
6938
6939 2010-07-22  Richard Guenther  <rguenther@suse.de>
6940
6941         PR lto/42451
6942         * gimple.c (gtc_next_dfs_num): New global.
6943         (struct sccs): Make value a union, add integer same_p member.
6944         (gtc_visit): New function.
6945         (gimple_types_compatible_p_1): New function, split out from ...
6946         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
6947         (iterative_hash_gimple_type): Adjust for sccs change.
6948
6949 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6950
6951         PR tree-optimization/44891
6952         * tree-sra.c: Include gimple-pretty-print.h.
6953         (replace_uses_with_default_def_ssa_name): Renamed to
6954         get_repl_default_def_ssa_name, return the new SSA name instead of
6955         replacing the old one.
6956         (sra_modify_assign): Dump a message when removing a load, if the LHS
6957         is an SSA_NAME, do not do any propagation, just set the RHS to a
6958         default definition SSA NAME, type convert if necessary.
6959         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
6960
6961 2010-07-22  Richard Guenther  <rguenther@suse.de>
6962
6963         PR tree-optimization/45017
6964         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
6965         TYPE_PRECISION of integral types in addition to size.
6966
6967 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6968
6969         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
6970         when no C library is specified.
6971
6972 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6973
6974         * ipa-prop.h (struct ipa_node_params): Updated comment.
6975         (struct ipa_edge_args): Likewise.
6976         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
6977
6978 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6979
6980         * cgraphunit.c (verify_edge_count_and_frequency): New function.
6981         (verify_cgraph_node): Verify frequencies of indirect edges.
6982         * tree-inline.c (tree_function_versioning): Update frequencies of
6983         indirect edges.
6984
6985 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6986
6987         PR target/43698
6988         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
6989         Set *arm_rev to be predicable.
6990
6991 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6992
6993         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
6994         (LINK_COMMAND_SPEC_A): New.
6995         (DSYMUTIL): New.
6996         (DSYMUTIL_SPEC): New.
6997         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
6998         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
6999
7000 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
7001
7002         * calls.c (load_register_parameters): Move check for zero
7003         sized items so that only the call to
7004         mem_overlaps_already_clobbered_arg_p () is protected.
7005
7006 2010-07-22  Jan Hubicka  <jh@suse.cz>
7007
7008         * ipa-pure-const.c (varying_state): Break out from ...
7009         (get_function_state): ... here; always return varying_state
7010         when state would be NULL otherwise.
7011         (remove_node_data): Do not free varying state.
7012
7013 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
7014
7015         PR bootstrap/44970
7016         PR middle-end/45009
7017         * postreload.c: Include "target.h".
7018         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
7019         into account.
7020         (fixup_debug_insns): Don't copy the rtx.
7021         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
7022         Don't copy when replacing.  Call fixup_debug_insns in the case where
7023         we merged one add with another.
7024         (reload_combine_recognize_pattern): Fail if there aren't any uses.
7025         Try harder to determine whether we're picking a valid index register.
7026         Don't set store_ruid for an insn we're going to scan in the
7027         next iteration.
7028         (reload_combine): Remove unused code.
7029         (reload_combine_note_use): When updating use information for
7030         an old insn, ignore a use that occurs after store_ruid.
7031         * Makefile.in (postreload.o): Update dependencies.
7032
7033         * function.c (record_hard_reg_sets): Restrict the previous change
7034         to cases where the incoming nominal mode is the same as the
7035         incoming promoted mode and everything happens in MODE_INT.
7036
7037 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7038
7039         PR debug/45015
7040         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
7041         ASM_OPERANDS_OUTPUT_IDX.
7042         (adjust_insn): For inline asm with multiple sets ensure first
7043         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
7044         the insn.
7045
7046 2010-07-21  Richard Henderson  <rth@redhat.com>
7047
7048         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
7049         comparison for avoiding xmm register saves.  Emit the xmm register
7050         saves explicitly.
7051         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
7052         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
7053         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
7054         Remove patterns and the associated splitters.
7055
7056 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
7057
7058         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
7059         and imagine parts of a complex, so that they can have the same
7060         base and fall into the same group.
7061
7062 2010-07-21  Richard Guenther  <rguenther@suse.de>
7063
7064         PR lto/45018
7065         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
7066         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
7067         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
7068
7069 2010-07-21  Martin Jambor  <mjambor@suse.cz>
7070
7071         PR tree-optimization/44900
7072         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
7073         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
7074
7075 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
7076
7077         PR middle-end/44738
7078         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
7079
7080 2010-07-21  Richard Guenther  <rguenther@suse.de>
7081
7082         PR middle-end/45013
7083         * tree-ssa.c (useless_type_conversion_p): Dispatch to
7084         gimple_types_compatible_p only when in lto.
7085         * gimple.c (gimple_types_compatible_p): Use canonical types
7086         to speed up comparison.
7087
7088 2010-07-21  Richard Guenther  <rguenther@suse.de>
7089
7090         * tree-flow.h (referenced_var): Move define ...
7091         * tree-flow-inline.h (referenced_var): ... here as an inline
7092         function.  Assert here ...
7093         * tree-dfa.c (referenced_var_lookup): ... instead of here.
7094         * tree-ssa.c (maybe_optimize_var): Check if the variable
7095         is in referenced vars.
7096         (execute_update_addresses_taken): Remove old broken check.
7097         * gimple-pretty-print.c (pp_points_to_solution): Use
7098         referenced_var_lookup.
7099         * tree-into-ssa.c (dump_decl_set): Likewise.
7100
7101 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7102
7103         PR debug/45003
7104         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
7105         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
7106         ZERO_EXTEND here.
7107
7108 2010-07-20  Richard Henderson  <rth@redhat.com>
7109
7110         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
7111
7112 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7113
7114         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
7115         computing the sum of the stack pointer and a large constant.
7116         * config/arm/constraints.md (M): Remove superfluous parentheses.
7117         (Pc): New constraint.
7118
7119 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7120
7121         PR debug/45006
7122         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
7123         operand's type if exp is tcc_unary class tree.
7124
7125 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7126
7127         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
7128         Reverse sense of if_then_else condition.
7129
7130 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7131
7132         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
7133         * config/rs6000/rs6000.c (rs6000_override_options): Set
7134         rs6000_block_move_inline_limit appropriately.
7135         (expand_block_move): Use rs6000_block_move_inline_limit.
7136         * doc/invoke.texi (mblock-move-inline-limit): Document.
7137
7138 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7139
7140         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
7141         FROM and TO.  All callers changed.  Don't look for tracked uses,
7142         just scan the RTL for DEBUG_INSNs and substitute.
7143         (reload_combine_recognize_pattern): Call fixup_debug_insns.
7144         (reload_combine): Ignore DEBUG_INSNs.
7145
7146 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7147
7148         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
7149         depth to 8 from 5.
7150
7151         PR debug/45003
7152         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
7153         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
7154         instead of the result's type.
7155
7156 2010-07-20  Richard Guenther  <rguenther@suse.de>
7157
7158         PR tree-optimization/44977
7159         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
7160         SSA form.
7161
7162 2010-07-20  Richard Guenther  <rguenther@suse.de>
7163
7164         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
7165         (lto_symtab_merge_decls_2): Likewise.
7166         * gimple.h (gimple_types_compatible_p): Declare.
7167         * gimple.c (gimple_queue_type_fixup): Remove.
7168         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
7169         (gimple_compatible_complete_and_incomplete_type_p): New function.
7170         (gimple_types_compatible_p): Adjust.
7171         (gimple_register_type): Remove type fixup code.
7172         (print_gimple_types_stats): Adjust.
7173         (free_gimple_type_tables): Likewise.
7174         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
7175         * tree-ssa.c (useless_type_conversion_p): Likewise.
7176
7177 2010-07-20  Richard Guenther  <rguenther@suse.de>
7178
7179         PR middle-end/44971
7180         PR middle-end/44988
7181         * tree-ssa.c (maybe_optimize_var): New function split out from ...
7182         (execute_update_addresses_taken): ... here.
7183         (non_rewritable_mem_ref_base): Likewise.
7184         (execute_update_addresses_taken): Do not iterate over all referenced
7185         vars but just all local decls and parms.
7186         Properly check call and asm arguments and rewrite call arguments.
7187
7188 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
7189
7190         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
7191         to top level.
7192         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
7193         definitions ...
7194         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
7195         New macro.
7196         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
7197
7198 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
7199
7200         * gengtype.c (start_root_entry): New function, split out from
7201         write_root.  Check whether V is null and raise an error if so.
7202         (write_field_root): Check for V being null.  Don't raise an error here;
7203         set V to null instead.
7204         (write_root): Update comment above function.  Use start_root_entry.
7205
7206 2010-07-19  Xinliang David Li  <davidxl@google.com>
7207
7208         PR testsuite/44932
7209         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
7210         def edges.
7211         (find_uninit_use): Add dump.
7212         (is_use_properly_guarded): Ditto.
7213         (warn_uninitialized_phi): Ditto.
7214         (execute_late_warn_uninitialized): Ditto.
7215
7216 2010-07-19  Richard Guenther  <rguenther@suse.de>
7217
7218         PR middle-end/44941
7219         * expr.c (emit_block_move_hints): Move zero size check first.
7220         Move asserts to more useful places.
7221         * calls.c (load_register_parameters): Check for zero size.
7222
7223 2010-07-19  Richard Henderson  <rth@redhat.com>
7224
7225         * tree-optimize.c (execute_all_early_local_passes): New.  Change
7226         cgraph_state here ...
7227         (execute_early_local_optimizations): ... not here.  Remove.
7228         (pass_early_local_passes, pass_all_early_optimizations): Update.
7229
7230 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
7231
7232         * postreload.c (reload_combine_closest_single_use): Ignore the
7233         number of uses for DEBUG_INSNs.
7234         (fixup_debug_insns): New static function.
7235         (reload_combine_recognize_const_pattern): Use it.  Don't let the
7236         main loop be affected by DEBUG_INSNs.
7237         Really disallow moving adds past a jump insn.
7238         (reload_combine_recognize_pattern): Don't update use_ruid here.
7239         (reload_combine_note_use): Do it here.
7240         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
7241
7242 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
7243
7244         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
7245         of a loop.
7246         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
7247
7248 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
7249
7250         * config/i386/darwin.h: Define darwin_emit_branch_islands.
7251         (TARGET_MACHO_BRANCH_ISLANDS): New.
7252         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
7253         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
7254         default value.
7255         * config/i386/i386.c (output_pic_addr_const): Do not emit
7256         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
7257         (x86_output_mi_thunk): Adjust symbol creation.
7258         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
7259         Remove out of date comment.
7260         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
7261         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7262         (DARWIN_GENERATE_ISLANDS): Ditto.
7263         (output_call):  Do not emit branch islands unless
7264         darwin_emit_branch_islands is set.
7265         * config/darwin.c: Declare darwin_emit_branch_islands.
7266         (machopic_indirect_data_reference): Do not emit unless
7267         darwin_emit_branch_islands is set.
7268         (darwin_override_options): Set darwin_emit_branch_islands
7269         where it is needed.
7270         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7271
7272 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7273
7274         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7275         sse_runtime, sse2_runtime.
7276
7277 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
7278
7279         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
7280         low half of a single-register SCmode return value before ORing
7281         it with the high half.
7282         * config/mips/mips16.S (MERGE_GPRf): Likewise.
7283
7284 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7285
7286         PR target/44805
7287         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
7288         on all targets.
7289
7290 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
7291
7292         PR target/42235
7293         * postreload.c (reload_cse_move2add): Return bool, true if anything.
7294         changed.  All callers changed.
7295         (move2add_use_add2_insn): Likewise.
7296         (move2add_use_add3_insn): Likewise.
7297         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
7298         reload_combine.
7299         (RELOAD_COMBINE_MAX_USES): Bump to 16.
7300         (last_jump_ruid): New static variable.
7301         (struct reg_use): New members CONTAINING_MEM and RUID.
7302         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
7303         (reload_combine_split_one_ruid, reload_combine_split_ruids,
7304         reload_combine_purge_insn_uses, reload_combine_closest_single_use
7305         reload_combine_purge_reg_uses_after_ruid,
7306         reload_combine_recognize_const_pattern): New static functions.
7307         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
7308         is true for our reg and that we have available index regs.
7309         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
7310         callers changed.  Use them to initialize fields in struct reg_use.
7311         (reload_combine): Initialize last_jump_ruid.  Be careful when to
7312         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
7313         Call reload_combine_recognize_const_pattern.
7314         (reload_combine_note_store): Update REAL_STORE_RUID field.
7315
7316 2010-07-16  Jason Merrill  <jason@redhat.com>
7317
7318         * Makefile.in (opts-common.o): Depend on options.h.
7319
7320 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7321
7322         * tree.c (build_common_builtin_nodes): Use build_function_type_list
7323         instead of build_function_type.
7324         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
7325         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7326
7327 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7328
7329         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
7330         do all the work.
7331         (rs6000_emit_int_cmove): Use function pointers for insn generation.
7332         Don't force values into registers unnecessarily.
7333         (output_isel): Assert that we're not given conditions we can't handle.
7334         Delete corresponding code.
7335         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
7336         scc_comparison_operator constraint.  Permit 0 for the consequent
7337         operand.  Permit any GPR for the alternative operand.
7338         (isel_unsigned_<mode>): Likewise.
7339
7340 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR target/44942
7343         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
7344         argument to const_tree.
7345         * config/i386/i386.c (function_arg_advance): If padding needs to be
7346         inserted before argument, increment cum->words by number of padding
7347         words as well.
7348         (contains_aligned_value_p): Change argument to const_tree.
7349         (ix86_function_arg_boundary): Change second argument to const_tree.
7350
7351 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
7352
7353         PR target/42235
7354         * function.c (record_hard_reg_sets): New static function.
7355         (assign_parm_setup_reg): If an optab for extending exists and the
7356         generated code clobbbers no hard regs, emit the insn directly and
7357         create a REG_EQUIV note.
7358
7359 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7360
7361         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
7362         TREE_CHAIN.
7363         * c-typeck.c (push_init_level): Likewise.
7364         (process_init_element): Likewise.
7365
7366 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
7367
7368         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
7369         (integer_three_node): Add.
7370         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
7371         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
7372         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
7373         of call build_int_cst.
7374         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
7375         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
7376         (find_interesting_uses_address): Ditto.
7377         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
7378         * tree-eh.c (lower_eh_constructs_2): Ditto.
7379         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
7380         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
7381         * expmed.c (expand_divmod): Ditto.
7382         * tree-mudflap.c (mx_register_decls): Ditto.
7383         * varasm.c (array_size_for_constructor): Ditto.
7384         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
7385         * c-parser.c (c_parser_postfix_expression): Ditto.
7386
7387 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
7388
7389         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
7390         New static variables.
7391         (reload_combine_recognize_pattern): New static function, broken out
7392         of reload_combine.
7393         (reload_combine): Use it.  Only initialize first_index_reg and
7394         last_index_reg once.
7395
7396 2010-07-15  Richard Henderson  <rth@redhat.com>
7397
7398         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
7399         when done.
7400
7401 2010-07-15  Jan Hubicka  <jh@suse.cz>
7402
7403         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
7404         comdats for broken gold.
7405         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
7406
7407 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7408
7409         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
7410
7411 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7412
7413         * tree.h (DECL_CHAIN): Define.
7414         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
7415         * c-decl.c: Likewise.
7416         * c-parser.c: Likewise.
7417         * c-typeck.c: Likewise.
7418         * cfgexpand.c: Likewise.
7419         * cgraph.c: Likewise.
7420         * cgraphunit.c: Likewise.
7421         * combine.c: Likewise.
7422         * config/alpha/alpha.c: Likewise.
7423         * config/arm/arm.c: Likewise.
7424         * config/frv/frv.c: Likewise.
7425         * config/i386/i386.c: Likewise.
7426         * config/i386/winnt-cxx.c: Likewise.
7427         * config/ia64/ia64.c: Likewise.
7428         * config/iq2000/iq2000.c: Likewise.
7429         * config/mep/mep.c: Likewise.
7430         * config/mips/mips.c: Likewise.
7431         * config/pa/som.h: Likewise.
7432         * config/rs6000/rs6000.c: Likewise.
7433         * config/s390/s390.c: Likewise.
7434         * config/sh/sh.c: Likewise.
7435         * config/sh/symbian-cxx.c: Likewise.
7436         * config/sparc/sparc.c: Likewise.
7437         * config/spu/spu.c: Likewise.
7438         * config/stormy16/stormy16.c: Likewise.
7439         * config/vxworks.c: Likewise.
7440         * config/xtensa/xtensa.c: Likewise.
7441         * coverage.c: Likewise.
7442         * dbxout.c: Likewise.
7443         * dwarf2out.c: Likewise.
7444         * emit-rtl.c: Likewise.
7445         * expr.c: Likewise.
7446         * function.c: Likewise.
7447         * gimple-low.c: Likewise.
7448         * gimple-pretty-print.c: Likewise.
7449         * gimplify.c: Likewise.
7450         * integrate.c: Likewise.
7451         * ipa-inline.c: Likewise.
7452         * ipa-prop.c: Likewise.
7453         * ipa-split.c: Likewise.
7454         * ipa-struct-reorg.c: Likewise.
7455         * ipa-type-escape.c: Likewise.
7456         * langhooks.c: Likewise.
7457         * lto-cgraph.c: Likewise.
7458         * omp-low.c: Likewise.
7459         * stor-layout.c: Likewise.
7460         * tree-cfg.c: Likewise.
7461         * tree-complex.c: Likewise.
7462         * tree-dfa.c: Likewise.
7463         * tree-dump.c: Likewise.
7464         * tree-inline.c: Likewise.
7465         * tree-mudflap.c: Likewise.
7466         * tree-nested.c: Likewise.
7467         * tree-object-size.c: Likewise.
7468         * tree-pretty-print.c: Likewise.
7469         * tree-sra.c: Likewise.
7470         * tree-ssa-live.c: Likewise.
7471         * tree-ssa-loop-niter.c: Likewise.
7472         * tree-ssa-math-opts.c: Likewise.
7473         * tree-ssa-reassoc.c: Likewise.
7474         * tree-ssa-sccvn.c: Likewise.
7475         * tree-ssa-structalias.c: Likewise.
7476         * tree-tailcall.c: Likewise.
7477         * tree-vrp.c: Likewise.
7478         * tree.c: Likewise.
7479         * var-tracking.c: Likewise.
7480         * varasm.c: Likewise.
7481
7482 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7483
7484         PR target/44877
7485         * config/spu/spu.c (spu_expand_builtin_1): Allow references
7486         (as well as pointers) as argument to mask_for_load builtins.
7487
7488 2010-07-15  Richard Guenther  <rguenther@suse.de>
7489
7490         PR tree-optimization/44946
7491         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
7492         with accessing only padding properly.
7493
7494 2010-07-15  Jan Hubicka  <jh@suse.cz>
7495
7496         * ipa.c (function_and_variable_visibility): Variables marked as used
7497         should not be localized.
7498
7499 2010-07-15  Jan Hubicka  <jh@suse.cz>
7500
7501         * cgraph.c: Include lto-streamer.h
7502         (change_decl_assembler_name): Work when assembler name hash is at place.
7503         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
7504         be sure to rename it to avoid name clash.
7505         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
7506         Localize hidden symbols only when locally defined.
7507
7508 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
7509
7510         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
7511
7512 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
7513             Kevin F. Quinn  <kevquinn@gentoo.org>
7514
7515         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
7516         * common.opt: Add -Wtrampolines.
7517         * doc/invoke.texi: Add -Wtrampolines.
7518
7519 2010-07-15  Jie Zhang  <jie@codesourcery.com>
7520
7521         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
7522         cortex_a8_issue_ls.
7523
7524 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
7525
7526         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
7527         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
7528
7529 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7530
7531         * config/spu/spu.c (reg_names): Remove prototype.
7532         (call_used_regs): Likewise.
7533
7534 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7535
7536         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
7537         "unused" with attribute "used".
7538         (__JCR_END__): Likewise.
7539         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
7540         "used" attribute.
7541         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
7542
7543 2010-07-14  Richard Guenther  <rguenther@suse.de>
7544
7545         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
7546         (maybe_fixup_decls): Likewise.
7547         (input_gimple_stmt): Do not fixup anything.
7548         * lto-streamer-out.c (output_gimple_stmt): Make sure all
7549         non-automatic variable uses are wrapped inside a MEM_REF.
7550
7551 2010-07-14  Richard Henderson  <rth@redhat.com>
7552
7553         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
7554         for functions.
7555         * varasm.c (assemble_variable): Remove early exit for functions;
7556         assert that we're given a variable.
7557
7558 2010-07-14  Jie Zhang  <jie@codesourcery.com>
7559
7560         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
7561         cortex_a8_default when neon_type is not none.
7562
7563 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7564
7565         * lower-subreg.c (subreg_context): New static bitmap.
7566         (decompose_multiword_subregs): Allocate and free it.
7567         (find_decomposable_subregs): Set a bit in it for a register that
7568         occurs in a subreg that changes mode but not size.
7569         (can_decompose_p): Test it instead of non_decomposable_context.
7570
7571 2010-07-14  Richard Guenther  <rguenther@suse.de>
7572
7573         PR tree-optimization/44824
7574         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
7575         is_gimple_mem_ref_addr.
7576         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
7577         non-decl_address_invariant_p addresses.
7578
7579 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7580
7581         * reload.c (find_reloads): Revert code to penalize small register
7582         classes that was brought in with the IRA merge.
7583
7584 2010-07-14  Richard Guenther  <rguenther@suse.de>
7585
7586         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
7587         as base of ARRAY_REFs.
7588
7589 2010-07-14  Richard Guenther  <rguenther@suse.de>
7590
7591         PR middle-end/44930
7592         * tree-pretty-print.c (do_niy): Do not print a newline.
7593
7594 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7595
7596         * ira-int.h (struct ira_object): New.
7597         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
7598         (struct ira_allocno): Remove members min, max,
7599         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
7600         conflict_allocnos_num and conflict_vec_p.  Add new member object.
7601         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
7602         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
7603         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
7604         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
7605         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
7606         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
7607         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
7608         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
7609         an ira_object_t rather than ira_allocno_t.  All uses changed.
7610         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7611         contains a vector of ira_object_t; all uses changed.
7612         (ira_objects_num): Declare variable.
7613         (ira_create_allocno_object): Declare function.
7614         (ira_conflict_vector_profitable_p): Adjust prototype.
7615         (ira_allocate_conflict_vec): Renamed from
7616         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
7617         (ira_allocate_object_conflicts): Renamed from
7618         ira_allocate_allocno_conflicts; first arg now ira_object_t.
7619         (struct ira_object_iterator): New.
7620         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
7621         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
7622         to conflict_vec_p.  All uses changed.
7623         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
7624         Changed to take into account that conflicts are now tracked for
7625         objects.
7626         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
7627         Args changed to accept ira_object_t.  All uses changed.
7628         (allocnos_conflict_p): New static function.
7629         (collected_conflict_objects): Renamed from collected_allocno_objects;
7630         now a vector of ira_object_t.  All uses changed.
7631         (build_conflict_bit_table): Changed to take into account that
7632         conflicts are now tracked for objects.
7633         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
7634         (print_allocno_conflicts, ira_build_conflicts): Likewise.
7635         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
7636         setup_allocno_left_conflicts_size, allocno_reload_assign,
7637         fast_allocation): Likewise.
7638         * ira-lives.c (make_hard_regno_born, make_allocno_born)
7639         process_single_reg_class_operands, process_bb_node_lives): Likewise.
7640         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
7641         Likewise.
7642         * ira-build.c (ira_objects_num): New variable.
7643         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7644         contains a vector of ira_object_t; all uses changed.
7645         (ira_object_id_map_vec): Corresponding change.
7646         (object_pool): New static variable.
7647         (initiate_allocnos): Initialize it.
7648         (finish_allocnos): Free it.
7649         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
7650         New functions.
7651         (ira_create_allocno): Don't set members that were removed.
7652         (ira_set_allocno_cover_class): Don't change conflict hard regs.
7653         (merge_hard_reg_conflicts): Changed to take into account that
7654         conflicts are now tracked for objects.
7655         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
7656         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
7657         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
7658         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
7659         setup_min_max_conflict_allocno_ids, ):  Likewise.
7660         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
7661         to ira_object_t; all callers changed.
7662         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
7663         to ira_object_t, all callers changed.
7664         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
7665         to ira_object_t, all callers changed.
7666         (conflict_check, curr_conflict_check_tick): Renamed from
7667         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
7668         changed.
7669         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
7670         arg changed to ira_object_t, all callers changed.
7671         (create_cap_allocno): Call ira_create_allocno_object.
7672         (finish_allocno): Free the corresponding object.
7673         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
7674         callers changed.  Adjusted for dealing with objects.
7675         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
7676         dealing with objects.
7677         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
7678
7679         * ira-int.h (struct live_range): Rename allocno member to object
7680         and change type to ira_object_t.
7681         (struct ira_object): New member live_ranges.
7682         (struct ira_allocno): Remove member live_ranges.
7683         (ALLOCNO_LIVE_RANGES): Remove.
7684         (OBJECT_LIVE_RANGES): New macro.
7685         (ira_create_live_range, ira_copy_live_range_list,
7686         ira_merge_live_range_list, ira_live_ranges_intersect_p,
7687         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
7688         * ira-build.c (ira_create_object): Initialize live ranges here.
7689         (ira_create_allocno): Not here.
7690         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
7691         changed to ira_object_t, all callers changed.
7692         (copy_live_range): Rename from copy_allocno_live_range, all callers
7693         changed.
7694         (ira_copy_live_range_list): Rename from
7695         ira_copy_allocno_live_range_list, all callers changed.
7696         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
7697         all callers changed.
7698         (ira_live_ranges_intersect_p): Rename from
7699         ira_allocno_live_ranges_intersect_p, all callers changed.
7700         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
7701         callers changed.
7702         (ira_finish_live_range_list): Rename from
7703         ira_finish_allocno_live_range_list, all callers changed.
7704         (change_object_in_range_list): Rename from change_allocno_in_range_list,
7705         last arg changed to ira_object_t, all callers changed.
7706         (finish_allocno): Changed to expect live ranges in the allocno's object.
7707         (move_allocno_live_ranges, copy_allocno_live_ranges,
7708         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
7709         ira_flattening, ira_build): Likewise.
7710         * ira-color.c (allocnos_have_intersected_live_ranges_p,
7711         slot_coalesced_allocno_live_ranges_intersect,
7712         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
7713         * ira-conflicts.c (build_conflict_bit_table): Likewise.
7714         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
7715         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
7716         make_allocno_dead, create_start_finish_chains,
7717         remove_some_program_points_and_update_live_ranges,
7718         ira_debug_live_range_list): Likewise.
7719
7720         * ira-int.h (ira_object_conflict_iterator): Rename from
7721         ira_allocno_conflict_iterator.
7722         (ira_object_conflict_iter_init): Rename from
7723         ira_allocno_conflict_iter_init, second arg changed to
7724         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
7725         FOR_EACH_ALLOCNO_CONFLICT.
7726         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
7727         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
7728         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
7729         * ira-conflicts.c (print_allocno_conflicts): Likewise.
7730
7731 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
7732
7733         PR other/44874
7734         * tree-dump.c (dump_options): Add enumerate_locals entry.
7735         Add TDF_NOID exclusion to all entry.
7736         * tree-dump.h (dump_enumerated_decls): Declare.
7737         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
7738         Don't display type uid.
7739         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
7740         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
7741         * tree-ssa-live.c: Include gimple.h.
7742         (numbered_tree_d): New struct.
7743         (numbered_tree): New typedef.
7744         (DEF_VEC_O (numbered_tree): New.
7745         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
7746         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
7747         (dump_enumerated_decls): Likewise.
7748         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
7749         debug info and flag_dump_final_insns, call dump_enumerated_decls.
7750         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
7751         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
7752
7753 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
7754
7755         * expmed.h (MAX_BITS_PER_WORD): Move to...
7756         * defaults.h (MAX_BITS_PER_WORD): ...here.
7757
7758 2010-07-13  DJ Delorie  <dj@redhat.com>
7759
7760         * config/h8300/h8300.c (h8300_init_once): Default to
7761         -fstrict_volatile_bitfields.
7762
7763         * config/sh/sh.c (sh_override_options): Default to
7764         -fstrict_volatile_bitfields.
7765
7766         * config/rx/rx.c (rx_option_override): New.
7767
7768         * config/m32c/m32c.c (m32c_override_options): Default to
7769         -fstrict_volatile_bitfields.
7770
7771 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
7772
7773         * tree.h (build_function_call_expr): Delete.
7774         (build_call_expr_loc_array): New function.
7775         (build_call_expr_loc_vec): New function.
7776         * tree-flow.h (struct omp_region): Change type of ws_args field
7777         to a VEC.
7778         * builtins.c (build_function_call_expr): Delete.
7779         (build_call_expr_loc_array): New function.
7780         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
7781         (build_call_expr): Likewise.
7782         (build_call_expr_loc_vec): New function.
7783         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
7784         build_function_call_expr.
7785         * expr.c (emutls_var_address): Likewise.
7786         * varasm.c (emutls_common_1): Likewise.
7787         * omp-low.c (expand_omp_atomic_mutex): Likewise.
7788         (expand_omp_taskreg): Adjust for new type of region->ws_args.
7789         (get_ws_args_for): Return a VEC instead of a tree.
7790         (expand_parallel_call): Call build_call_expr_loc_vec instead of
7791         build_function_call_expr.
7792         * stor-layout.c (self_referential_size): Likewise.
7793
7794 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7795
7796         PR testsuite/44701
7797         * recog.c (constrain_operands): Allow side-effects in memory
7798         operands if either < or > constraint is used, rather than if
7799         both < and > is used.
7800
7801 2010-07-13  Richard Guenther  <rguenther@suse.de>
7802
7803         PR middle-end/44911
7804         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
7805         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
7806         without name.
7807
7808 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7809
7810         PR target/44761
7811         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
7812         to variable emited.
7813         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
7814         * config/sh/sh.md (symGOT_load): Likewise.
7815         (symDTPOFF2reg): Likewise.
7816         (symTPOFF2reg): Likewise.
7817
7818 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7819
7820         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
7821         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
7822
7823 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7824
7825         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
7826         explanation.
7827         Find ucontext_t * on Solaris 11.
7828         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
7829         Handle new Solaris 11 __sighndlr patterns.
7830
7831 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7832
7833         PR debug/44901
7834         * vec.h (VEC_block_remove): Fix comment.
7835         * tree-ssa-live.c (remove_unused_locals): Don't use
7836         VEC_unordered_remove on local_decls, instead replace a single
7837         vector element in each iteration if at least one element had
7838         to be removed and VEC_truncate at the end.
7839         * omp-low.c (expand_omp_taskreg): Likewise.
7840
7841 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7842
7843         * c-decl.c (finish_function): Fix typo in comment.
7844
7845 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
7846
7847         PR bootstrap/44921
7848         * postreload.c (move2add_use_add3_insn): Silence gcc warning
7849         on min_regno.
7850
7851 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
7852
7853         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
7854         (simplify_stmt_using_ranges): Use it.
7855
7856 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7857
7858         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
7859         member.  Do not mark as GTY(()).
7860         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
7861         (spu_builtin_decls): New static variable.
7862         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
7863         (spu_init_builtins): Likewise.
7864         (spu_builtin_mul_widen_even): Likewise.
7865         (spu_builtin_mul_widen_odd): Likewise.
7866         (spu_builtin_mask_for_load): Likewise.
7867         (spu_builtin_vec_perm): Likewise.
7868         * config/spu/spu-c.c: Include "target.h".
7869         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
7870         of using spu_builtins[].fndecl.
7871
7872 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7873
7874         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
7875         imply -minterlink-mips16.
7876
7877 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7878
7879         * config/mips/mips.h (mips16_globals): Declare.
7880         (SWITCHABLE_TARGET): Define.
7881         * config/mips/mips.c: Include target-globals.h.
7882         (mips16_globals): New variable.
7883         (mips_set_mips16_mode): Use save_target_globals and
7884         restore_target_globals instead of target_reinit.
7885
7886 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7887
7888         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
7889         to say that the function can be called more than once.
7890         * target-globals.c (save_target_globals): Call init_reg_sets.
7891
7892 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7893
7894         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
7895         * bb-reorder.h: New file.
7896         * bb-reorder.c (default_target_bb_reorder): New variable.
7897         (this_target_bb_reorder): New conditional variable.
7898         (uncond_jump_length): Redefine as a macro.
7899         * target-globals.h (this_target_bb_reorder): Declare.
7900         (target_globals): Add a bb_reorder field.
7901         (restore_target_globals): Copy the bb_reorder field to
7902         this_target_bb-reorder.
7903         * target-globals.c: Include bb-reorder.h.
7904         (default_target_globals): Initialize the bb_reorder field.
7905         (save_target_globals): Likewise.
7906
7907 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7908
7909         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
7910         * gcse.h: New file.
7911         * gcse.c: Include gcse.h.
7912         (default_target_gcse): New variable.
7913         (this_target_gcse): New conditional variable.
7914         (can_copy): Redefine as a macro.
7915         (can_copy_init_p): New macro.
7916         (can_copy_p): Remove can_copy_init_p.
7917         * target-globals.h (this_target_gcse): Declare.
7918         (target_globals): Add a gcse field.
7919         (restore_target_globals): Copy the gcse field to this_target_gcse.
7920         * target-globals.c: Include gcse.h.
7921         (default_target_globals): Initialize the gcse field.
7922         (save_target_globals): Likewise.
7923
7924 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7925
7926         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
7927         and x_ira_prohibited_mode_move_regs_initialized_p.
7928         (ira_prohibited_mode_move_regs): Redefine as a macro.
7929         * ira.c (ira_prohibited_mode_move_regs): Delete.
7930         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
7931
7932 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7933
7934         * reload.h (target_reload): Add x_cached_reg_save_code and
7935         x_cached_reg_restore_code.
7936         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
7937         Redefine as macros.
7938
7939 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7940
7941         * Makefile.in (target-globals.o): Depend on builtins.h.
7942         * builtins.h: New file.
7943         * builtins.c: Include builtins.h.
7944         (default_target_builtins): New variable.
7945         (this_target_builtins): New conditional variable.
7946         (apply_args_mode, apply_result_mode): Redefine as macros.
7947         * target-globals.h (this_target_builtins): Declare.
7948         (target_globals): Add a builtins field.
7949         (restore_target_globals): Copy the builtins field to
7950         this_target_builtins.
7951         * target-globals.c: Include builtins.h.
7952         (default_target_globals): Initialize the builtins field.
7953         (save_target_globals): Likewise.
7954
7955 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7956
7957         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
7958         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
7959         from expmed.c.
7960         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
7961         (alg_hash, alg_hash_used_p): New macros.
7962         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
7963         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
7964         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
7965
7966 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7967
7968         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
7969         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
7970         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
7971         (this_op_costs, costs_classes): Redefine as macros.
7972         (record_reg_classes): Don't take op_costs as a parameter.
7973         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
7974         (scan_one_insn): Update call to record_operand_costs.
7975
7976 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7977
7978         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
7979         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
7980         (target_ira_int): New structure.
7981         (default_target_ira_int): Declare.
7982         (this_target_ira_int): Declare as a variable or define as a macro.
7983         (ira_reg_mode_hard_regset, ira_register_move_cost)
7984         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
7985         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
7986         (prohibited_class_mode_regs, ira_important_classes_num)
7987         (ira_important_classes, ira_reg_class_intersect)
7988         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
7989         (ira_reg_class_union): Redefine as macros.
7990         * ira.h (target_ira): New structure.
7991         (default_target_ira): Declare.
7992         (this_target_ira): Declare as a variable or define as a macro.
7993         (ira_available_class_regs, ira_hard_regno_cover_class)
7994         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
7995         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
7996         (ira_class_hard_regs_num): Redefine as macros.
7997         * ira.c (default_target_ira, default_target_ira_int): New variables.
7998         (this_target_ira, this_target_ira_int): New conditional variables.
7999         (ira_reg_mode_hard_regset, ira_memory_move_cost)
8000         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
8001         (ira_class_subset_p): Delete.
8002         (no_unit_alloc_regs): Redefine as a macro.
8003         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
8004         (ira_class_hard_regs_num, ira_class_hard_reg_index)
8005         (ira_available_class_regs): Delete.
8006         (alloc_reg_class_subclasses): Redefine as a macro.
8007         (ira_reg_class_cover_size, ira_reg_class_cover)
8008         (ira_important_classes_num, ira_important_classes)
8009         (ira_important_class_nums, ira_class_translate): Delete.
8010         (cover_class_order): Document the variable's lifetime.
8011         (reorder_important_classes): Don't set ira_important_class_nums.
8012         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
8013         (ira_reg_class_super_classes, ira_reg_class_union)
8014         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
8015         Delete.
8016         (setup_reg_class_nregs): Don't set ira_max_regs.
8017         (prohibited_class_mode_regs): Delete.
8018         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
8019         (target_globals): Add ira and ira_int fields.
8020         (restore_target_globals): Copy the ira field to this_target_ira
8021         and the ira_int field to this_target_ira_int.
8022         * target-globals.c: Include ira-int.h.
8023         (default_target_globals): Initialize the ira and ira_int fields.
8024         (save_target_globals): Likewise.
8025
8026 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8027
8028         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
8029         * cfgloop.h (target_cfgloop): New structure.
8030         (default_target_cfgloop): Declare.
8031         (this_target_cfgloop): Declare as a variable or define as a macro.
8032         (target_avail_regs, target_clobbered_regs, target_res_regs)
8033         (target_reg_cost, target_spill_cost): Redefine as macros.
8034         * cfgloopanal.c (default_target_cfgloop): New variable.
8035         (this_target_cfgloop): New conditional variable.
8036         (target_avail_regs, target_clobbered_regs, target_res_regs)
8037         (target_reg_cost, target_spill_cost): Delete.
8038         * target-globals.h (this_target_cfgloop): Declare.
8039         (target_globals): Add a cfgloop field.
8040         (restore_target_globals): Copy the cfgloop field to
8041         this_target_cfgloop.
8042         * target-globals.c: Include cfgloop.h.
8043         (default_target_globals): Initialize the cfgloop field.
8044         (save_target_globals): Likewise.
8045
8046 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8047
8048         * regs.h (target_regs): Add x_direct_load, x_direct_store and
8049         x_float_extend_from_mem.
8050         (direct_load, direct_store, float_extend_from_mem): New macros.
8051         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
8052
8053 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8054
8055         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
8056         (target-globals.o): Depend on $(LIBFUNCS_H).
8057         * libfuncs.h: Include hashtab.h.
8058         (libfunc_entry): Moved from optabs.c.
8059         (target_libfuncs): New structure.
8060         (default_target_libfuncs): Declare.
8061         (this_target_libfuncs): Declare as a variable or define as a macro.
8062         (libfunc_table): Redefine as a macro.
8063         * optabs.c (default_target_libfuncs): New variable.
8064         (this_target_libfuncs): New conditional variable.
8065         (libfunc_table): Delete.
8066         (libfunc_entry): Moved to optabs.h.
8067         (libfunc_hash): Redefine as a macro.
8068         (hash_libfunc, eq_libfunc): Fix comments.
8069         (init_optabs): Use libfunc_hash to detect cases where the function
8070         has already been called.  Clear the hash table instead of
8071         recreating it.
8072         * target-globals.h (this_target_libfuncs): Declare.
8073         (target_globals): Add a libfuncs field.
8074         (restore_target_globals): Copy the libfuncs field to
8075         this_target_libfuncs.
8076         * target-globals.c: Include libfuncs.h.
8077         (default_target_globals): Initialize the libfuncs field.
8078         (save_target_globals): Likewise.
8079
8080 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8081
8082         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
8083         in all dependency lists.
8084
8085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8086
8087         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
8088         * optabs.h (target_optabs): New structure.
8089         (default_target_optabs): Declare.
8090         (this_target_optabs): Declare as a variable or define as a macro.
8091         (optab_table, convert_optab_table, direct_optab_table): Redefine
8092         as macros.
8093         * optabs.c (default_target_optabs): New variable.
8094         (this_target_optabs): New conditional variable.
8095         (optab_table, convert_optab_table, direct_optab_table): Delete.
8096         * target-globals.h (this_target_optabs): Declare.
8097         (target_globals): Add a optabs field.
8098         (restore_target_globals): Copy the optabs field to
8099         this_target_optabs.
8100         * target-globals.c: Include expr.h and optabs.h.
8101         (default_target_globals): Initialize the optabs field.
8102         (save_target_globals): Likewise.
8103
8104 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8105
8106         * flags.h (target_flagstate): Add x_flag_excess_precision.
8107         (flag_excess_precision): Redefine as a macro.
8108         * toplev.c (flag_excess_precision): Delete.
8109
8110 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8111
8112         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
8113         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
8114         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
8115         (no_caller_save_reg_set): Redefine as a macro.
8116         * reload.h (target_reload): Add x_caller_save_initialized_p and
8117         x_regno_save_mode.
8118         (caller_save_initialized_p): Redefine as a macro.
8119         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
8120         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
8121         (regno_save_mode): Redefine as a macro.
8122
8123 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8124
8125         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
8126         * expmed.h: New file.
8127         * expmed.c (default_target_costs): New variable.
8128         (this_target_costs): New conditional variable.
8129         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
8130         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
8131         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
8132         * target-globals.h (this_target_expmed): Declare.
8133         (target_globals): Add a expmed field.
8134         (restore_target_globals): Copy the expmed field to
8135         this_target_expmed.
8136         * target-globals.c: Include expmed.h.
8137         (default_target_globals): Initialize the expmed field.
8138         (save_target_globals): Likewise.
8139
8140 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8141
8142         * Makefile.in (target-globals.o): Depend on reload.h.
8143         * reload.h (target_reload): New structure.
8144         (default_target_reload): Declare.
8145         (this_target_reload): Declare as a variable or define as a macro.
8146         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
8147         * reload1.c (default_target_reload): New variable
8148         (this_target_reload): New conditional variable.
8149         (indirect_symref_ok, double_reg_address_ok): Delete.
8150         (spill_indirect_levels): Redefine as a macro.
8151         * target-globals.h (this_target_reload): Declare.
8152         (target_globals): Add a reload field.
8153         (restore_target_globals): Copy the reload field to
8154         this_target_reload.
8155         * target-globals.c: Include hard-reg-set.h.
8156         (default_target_globals): Initialize the reload field.
8157         (save_target_globals): Likewise.
8158
8159 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8160
8161         * rtl.h (target_rtl): Add x_static_reg_base_value.
8162         * alias.c (static_reg_base_value): Redefine as a macro.
8163
8164 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8165
8166         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
8167         (GTFILES): Remove reginfo.c.
8168         * rtl.h (target_rtl): Add x_top_of_stack.
8169         (top_of_stack): New macro.
8170         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
8171         (top_of_stack): Delete.
8172
8173 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8174
8175         * regs.h (target_regs): Add x_hard_regs_of_mode,
8176         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
8177         x_may_move_out_cost and x_last_mode_for_init_move_cost.
8178         (have_regs_of_mode, contains_reg_of_mode, move_cost)
8179         (may_move_in_cost, may_move_out_cost): Redefine as macros.
8180         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
8181         (may_move_in_cost, may_move_out_cost): Delete.
8182         (last_mode_for_init_move_cost): Redefine as a macro.
8183
8184 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8185
8186         * hard-reg-set.h (target_hard_regs): New structure.
8187         (default_target_hard_regs): Declare.
8188         (this_target_hard_regs): Declare as a variable or define as a macro.
8189         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
8190         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
8191         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
8192         (reg_class_size, reg_class_subclasses, reg_class_subunion)
8193         (reg_class_superunion, reg_names): Redefine as macros.
8194         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
8195         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
8196         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
8197         (reg_class_contents, reg_class_size, reg_class_subclasses)
8198         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
8199         (default_target_hard_regs): New variable
8200         (this_target_hard_regs, initial_call_really_used_regs)
8201         (initial_reg_alloc_order): New conditional variables.
8202         (initial_reg_names): New variable.
8203         (init_reg_sets): Assert that initial_call_really_used_regs,
8204         initial_reg_alloc_order and initial_reg_names
8205         are all the same size as their variable counterparts.  Use them to
8206         initialize those counterparts.
8207         * target-globals.h (this_target_hard_regs): Declare.
8208         (target_globals): Add a hard_regs field.
8209         (restore_target_globals): Copy the hard_regs field to
8210         this_target_hard_regs.
8211         * target-globals.c: Include hard-reg-set.h.
8212         (default_target_globals): Initialize the hard_regs field.
8213         (save_target_globals): Likewise.
8214
8215 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8216
8217         * Makefile.in (target-globals.o): Depend on $(RTL_H).
8218         * rtl.h (target_rtl): New structure.
8219         (default_target_rtl): Declare.
8220         (this_target_rtl): Declare as a variable or define as a macro.
8221         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
8222         Redefine as macros.
8223         * emit-rtl.c (default_target_rtl): New variable.
8224         (this_target_rtl): New conditional variable.
8225         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
8226         (return_address_pointer_rtx): Delete.
8227         (initial_regno_reg_rtx): New macro.
8228         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
8229         (init_emit_regs): Likewise.
8230         * target-globals.h (this_target_rtl): Declare.
8231         (target_globals): Add a rtl field.
8232         (restore_target_globals): Copy the rtl field to this_target_rtl.
8233         * target-globals.c: Include rtl.h.
8234         (default_target_globals): Initialize the rtl field.
8235         (save_target_globals): Likewise.
8236
8237 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8238
8239         * Makefile.in (target-globals.o): Depend on $(REGS_H).
8240         * regs.h (target_reg_modes): New structure.
8241         (default_target_reg_modes): Declare.
8242         (this_target_reg_modes): Declare as a variable or define as a macro.
8243         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
8244         * reginfo.c (default_target_reg_modes): New variable.
8245         (this_target_reg_modes): New conditional variable.
8246         (hard_regno_nregs, reg_raw_mode): Delete.
8247         * target-globals.h (this_target_regs): Declare.
8248         (target_globals): Add a regs field.
8249         (restore_target_globals): Copy the regs field to this_target_regs.
8250         * target-globals.c: Include regs.h.
8251         (default_target_globals): Initialize the regs field.
8252         (save_target_globals): Likewise.
8253
8254 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8255
8256         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
8257         * doc/tm.texi: Regenerate.
8258         * Makefile.in (OBJS-common): Add target-globals.o.
8259         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
8260         and target-globals.h.
8261         (target-globals.o): New rule.
8262         (GTFILES): Include $(srcdir)/target-globals.h.
8263         * defaults.h (SWITCHABLE_TARGET): Define.
8264         * gengtype.c (open_base_files): Add target-globals.h to the
8265         list of includes.
8266         * target-globals.h: New file.
8267         * target-globals.c: Likewise.
8268
8269         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
8270         * flags.h (target_flag_state): New structure.
8271         (default_target_flag_state): Declare.
8272         (this_target_flag_state): Declare as a variable or define as a macro.
8273         (align_loops_log): Redefine as a macro.
8274         (align_loops_max_skip, align_jumps_log): Likewise.
8275         (align_jumps_max_skip, align_labels_log): Likewise.
8276         (align_labels_max_skip, align_functions_log): Likewise.
8277         * toplev.c (default_target_flag_state): New variable.
8278         (this_target_flag_state): New conditional variable.
8279         (align_loops_log): Delete.
8280         (align_loops_max_skip, align_jumps_log): Likewise.
8281         (align_jumps_max_skip, align_labels_log): Likewise.
8282         (align_labels_max_skip, align_functions_log): Likewise.
8283         * target-globals.h (this_target_flag_state): Declare.
8284         (target_globals): Add a flag_state field.
8285         (restore_target_globals): Copy the flag_state field to
8286         this_target_flag_state.
8287         * target-globals.c: Include flags.h.
8288         (default_target_globals): Initialize the flag_state field.
8289         (save_target_globals): Likewise.
8290
8291 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8292
8293         * postreload.c (reg_symbol_ref[]): New.
8294         (move2add_use_add2_insn): New.
8295         (move2add_use_add3_insn): New.
8296         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
8297         (move2add_note_store): Likewise.
8298
8299 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
8300
8301         PR rtl-optimization/44752
8302         * genautomata.c (main): Don't emit an empty file even if there
8303         is no automaton.
8304
8305 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8306
8307         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
8308         ix86_solaris_return_in_memory.
8309         * config/i386-protos.h: Reflect this.
8310         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8311         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8312         Move ...
8313         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
8314
8315 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8316
8317         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
8318         align the stack when it's going to be saved.
8319
8320 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8321
8322         PR pch/14940
8323         * config/host-solaris.c (mmap_fixed): New function.
8324         (sol_gt_pch_get_address): Use it.
8325         (sol_gt_pch_use_address): Likewise.
8326
8327 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8328
8329         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
8330         pentiumpro on Solaris 8 and 9/x86.
8331         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
8332         Document SSE/SSE2 support.
8333         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
8334
8335 2010-07-12  Andi Kleen  <ak@linux.intel.com>
8336
8337         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
8338         instead of gcc_assert to print better error message for multiple
8339         prevailing defs.
8340
8341 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
8342
8343         * config/i386/i386.c (ix86_asm_output_function_label): Change format
8344         string placeholder from 0x%x to %#x.
8345         (ix86_code_end): Use putc to output '\n'.
8346         (ix86_print_operand) <case ';'>: Use putc to output ';'.
8347
8348 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
8349
8350         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
8351         in directive -export.
8352
8353 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
8354
8355         * reginfo.h (reg_classes_intersect_p): Change arguments type to
8356         reg_class_t.
8357         * rtl.h (reg_classes_intersect_p): Adjust prototype.
8358
8359         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8360         Remove macros.
8361         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
8362         rs6000_memory_move_cost): Remove
8363         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
8364         TARGET_MEMORY_MOVE_COST): Define.
8365         (rs6000_register_move_cost): Make static. Change arguments type from
8366         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
8367         (rs6000_memory_move_cost): Make static. Change arguments type from
8368         'enum reg_class' to reg_class_t.
8369
8370 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
8371
8372         PR middle-end/42505
8373         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
8374         lookup code into....
8375         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
8376         new functions.
8377         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
8378         * cfgloopanal.c (target_clobbered_regs): Define.
8379         (init_set_costs): Initialize target_clobbered_regs.
8380         (estimate_reg_pressure_cost): Add call_p argument.  When true,
8381         adjust the number of available registers to exclude the
8382         call-clobbered registers.
8383         * cfgloop.h (target_clobbered_regs): Declare.
8384         (estimate_reg_pressure_cost): Adjust declaration.
8385         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
8386         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
8387         (determine_set_costs): Dump target_clobbered_regs.
8388         (loop_body_includes_call): New function.
8389         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
8390         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
8391         call_p flag through.
8392         (best_gain_for_invariant): Likewise.
8393         (find_invariants_to_move): Likewise.
8394         (move_single_loop_invariants): Likewise, using already-computed
8395         has_call field.
8396
8397 2010-07-10  Richard Guenther  <rguenther@suse.de>
8398             Joern Rennecke  <joern.rennecke@embecosm.com>
8399
8400         PR debug/44832
8401         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
8402         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
8403         unless they have DECL_IGNORED_P set.
8404
8405 2010-07-10  Richard Guenther  <rguenther@suse.de>
8406
8407         PR lto/44889
8408         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
8409         helper function.
8410         (gimple_types_compatible_p): Similar to pointed-to
8411         types allow and merge a mix of complete and incomplete aggregate.
8412         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
8413         (iterative_hash_gimple_type): Adjust for that.
8414
8415 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
8416
8417         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
8418
8419 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
8420
8421         PR objc/44140
8422         * config/darwin.c (output_objc_section_asm_op): Save and restore
8423         section when outputting ObjC section list.
8424
8425 2010-07-09  Jan Hubicka  <jh@suse.cz>
8426
8427         * lto-streamer-out.c (produce_symtab): Do not write alias
8428         cgraph/varpool nodes.
8429
8430 2010-07-09  Jan Hubicka  <jh@suse.cz>
8431
8432         * tree-inline.c (declare_return_variable): Fix ICE while
8433         inlining DECL_BY_VALUE function not in SSA form
8434
8435 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
8436
8437         PR tree-optimization/44576
8438         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
8439         New.  Pull out from is_loop_prefetching_profitable to implement
8440         the trip count to ahead ratio heuristic.
8441         (mem_ref_count_reasonable_p): New.  Pull out from
8442         is_loop_prefetching_profitable to implement the instruction to
8443         memory reference ratio heuristic.  Also consider not reasonable if
8444         the memory reference count is above a threshold (to avoid
8445         explosive compilation time.
8446         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
8447         is_loop_prefetching_profitable to implement the instruction to
8448         prefetch ratio heuristic.
8449         (is_loop_prefetching_profitable): Removed.
8450         (loop_prefetch_arrays): Distribute the cost analysis across the
8451         function to allow early exit of the prefetch analysis.
8452         is_loop_prefetching_profitable is splitted into three functions,
8453         with each one called as early as possible.
8454         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
8455         number of memory references in a loop is considered too many.
8456
8457 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8458
8459         * reload.c (find_reloads): Don't clear badop if we have a winreg
8460         alternative, but not win, and the class only has fixed regs.
8461         * hard-reg-set.h (class_only_fixed_regs): Declare.
8462         * reginfo.c (class_only_fixed_regs): New array.
8463         (init_reg_sets_1): Initialize it.
8464         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
8465         discourage alternatives using the stack pointer.
8466
8467         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
8468
8469         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
8470
8471         * config/arm/arm.md (cbranchqi4): Fix array size.
8472         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
8473         calculating length.
8474
8475 2010-07-09  Richard Guenther  <rguenther@suse.de>
8476
8477         * gimple.c (struct type_fixup_s): New struct and VEC type.
8478         (gimple_register_type_fixups): New static global.
8479         (gimple_queue_type_fixup): New function.
8480         (gimple_types_compatible_p): Queue type fixups instead of
8481         applying them here.
8482         (gimple_register_type): Apply queued fixups for the
8483         canonical type.  Empty the type fixup queue.
8484
8485 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8486
8487         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
8488         * configure: Regenerate.
8489         * config.in: Ditto.
8490
8491 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8492             Denys Vlasenko  <dvlasenk@redhat.com>
8493             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8494
8495         PR tree-optimization/28632
8496         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
8497         (extract_range_from_binary_expr): Further optimize
8498         BIT_AND_EXPR and BIT_IOR_EXPR.
8499
8500 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
8501
8502         * tree-if-conv.c (fold_or_predicates): New.
8503         (add_to_predicate_list): Call it.
8504
8505 2010-07-09  Richard Guenther  <rguenther@suse.de>
8506
8507         PR middle-end/44890
8508         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
8509         if base is a pointer.
8510         * tree-cfg.c (verify_expr): Update MEM_REF checking.
8511
8512 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
8513
8514         PR target/44877
8515         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
8516         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
8517         builtin mask for load/store builtins.
8518
8519 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8520
8521         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
8522         for "lock addl".
8523         * configure: Regenerate.
8524         * config/i386/i386.c (ix86_print_operand) <case ';'>:
8525         Remove TARGET_MACHO.
8526
8527 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
8528
8529         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
8530         default ISA flags.
8531         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
8532
8533 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
8534
8535         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
8536
8537 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
8538
8539         * config/picochip/picochip.md (commsTestPort): Emit more
8540         efficient sequence for tstport instruction.
8541
8542 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8543
8544         * config/i386/i386.c (ix86_veclib_handler): Make static.
8545
8546 2010-07-09  Richard Guenther  <rguenther@suse.de>
8547
8548         PR tree-optimization/44852
8549         * tree-ssa-alias.c: Include toplev.h for exact_log2.
8550         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
8551         in MEM_REF.
8552         (indirect_refs_may_alias_p): Likewise.
8553         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
8554
8555 2010-07-09  Richard Guenther  <rguenther@suse.de>
8556
8557         PR tree-optimization/44882
8558         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
8559         sets do conflict.
8560         (vectorizable_load): Likewise.
8561
8562 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8563
8564         PR target/40657
8565         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
8566         All callers changed.
8567         Handle the case when we're called for the epilogue.
8568         (thumb_unexpanded_epilogue): Use it.
8569         (thumb1_expand_epilogue): Likewise.
8570
8571 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8572
8573         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
8574         both ranges are range_int_cst_p with non-negative minimum,
8575         try harder to derive smaller range.
8576
8577 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8578
8579         * genrecog.c: Include diagnostic-core.h before toplev.h.
8580         * genoutput.c: Likewise.
8581         * genextract.c: Likewise.
8582         * genautomata.c: Likewise.
8583         * genemit.c: Likewise.
8584         * genpeep.c: Likewise.
8585         * genattrtab.c: Likewise.
8586         * genconditions.c: Likewise.
8587         * genpreds.c: Likewise.
8588
8589 2010-07-08  Andi Kleen  <ak@linux.intel.com>
8590
8591         * lto-section-in.c (lto_section_name): Add missing comma.
8592
8593 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
8594
8595         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
8596         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
8597         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
8598         (ia64_override_options): Rename to...
8599         (ia64_option_override): ... this one. Make static.
8600
8601 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8602
8603         PR middle-end/44843
8604         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
8605         pointed-to type of the offset in a MEM_REF to compute the alignment.
8606
8607 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
8608
8609         * final.c (final_scan_insn): Replace
8610         TARGET_UNWIND_INFO macro check by unwind_emit
8611         hook NULL check.
8612         * targhooks.c (default_unwind_emit): Removed.
8613         * targhooks.h (default_unwind_emit): Likewise.
8614         * target.def (unwind_emit): Set default value to NULL.
8615
8616         * config/i386/i386-protos.h (ix86_asm_output_function_label):
8617         New prototype.
8618         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
8619         for NULL fntype argument and allow 64-bit targets.
8620         (ix86_asm_output_function_label): New function.
8621         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
8622         (ix86_handle_fndecl_attribute): Likewise.
8623         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
8624         * doc/doc/tm.texi: Regenerated.
8625         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
8626         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
8627         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
8628         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8629         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8630         * config/elfos.h: Likewise.
8631         * config/i386/cygming.h: Likewise.
8632         * config/netbsd-aout.h: Likewise.
8633         * config/openbsd.h: Likewise.
8634         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
8635         by ix86_asm_output_function_label function call.
8636         * varasm.c (assemble_start_function): Use
8637         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8638
8639 2010-07-08  Jan Hubicka  <jh@suse.cz>
8640
8641         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
8642         New function.
8643         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
8644         Declare.
8645         * ipa-cp.c (ipcp_estimate_growth): Use it.
8646         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
8647         Likewise.
8648
8649 2010-07-08  Jan Hubicka  <jh@suse.cz>
8650
8651         * tree-inline.c (declare_return_variable): Allocate annotation for new
8652         temporary.
8653
8654 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8655
8656         PR tree-optimization/44710
8657         * tree-if-conv.c (parse_predicate): New.
8658         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
8659         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
8660
8661 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8662
8663         * common.opt (ftree-loop-if-convert): New flag.
8664         * doc/invoke.texi (ftree-loop-if-convert): Documented.
8665         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
8666         when flag_tree_loop_if_convert is set.
8667
8668 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
8669
8670         * config/i386/i386.c: Use short syntax for function calls
8671         through function pointers.
8672         * config/i386/i386.md: Ditto.
8673
8674 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8675
8676         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
8677
8678 2010-07-08  Richard Guenther  <rguenther@suse.de>
8679
8680         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
8681         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
8682
8683 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
8684
8685         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
8686         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
8687         (loc_list_from_tree): Likewise.
8688         (output_loc_operands): Handle outputting DW_OP_const[48]u
8689         with loc->dtprel set.
8690         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
8691
8692 2010-07-08  Jan Hubicka  <jh@suse.cz>
8693
8694         * ipa.c: Include pointer-set.h
8695         (cgraph_externally_visible_p): New attribute ALIASED;
8696         when in LTO, hidden symbols are local unless they are aliased.
8697         (function_and_variable_visibility): Compute aliased nodes;
8698         handle LTO and hidden symbol on functions and vars.
8699         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
8700         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
8701
8702 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8703
8704         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8705         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8706         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8707         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8708         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8709         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
8710         (ix86_gen_probe_stack_range): Likewise.
8711         (override_options): Set them.
8712         (ix86_target_stack_probe): New function.
8713         (ix86_compute_frame_layout): Force use of push instructions to
8714         save registers if stack checking with probes is enabled.
8715         (get_scratch_register_on_entry): New function.
8716         (release_scratch_register_on_entry): Likewise.
8717         (ix86_adjust_stack_and_probe): Likewise.
8718         (output_adjust_stack_and_probe): Likewise.
8719         (ix86_emit_probe_stack_range): Likewise.
8720         (output_probe_stack_range): Likewise.
8721         (ix86_expand_prologue): Emit stack checking code if static built-in
8722         stack checking is enabled.
8723         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
8724         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
8725         (output_adjust_stack_and_probe): Likewise.
8726         (output_probe_stack_range): Likewise.
8727         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8728         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
8729         TARGET_STACK_PROBE.
8730         (allocate_stack_worker_64): Likewise.
8731         (allocate_stack): Likewise.
8732         (adjust_stack_and_probe): New insn.
8733         (probe_stack_range): Likewise.
8734
8735 2010-07-08  Richard Guenther  <rguenther@suse.de>
8736
8737         PR tree-optimization/44831
8738         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
8739         a MEM_REF preserving TBAA info of the original dereference.
8740         Dereference the original pointer if the address is not invariant.
8741         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
8742         at least one invariant address that we are going to dereference.
8743
8744 2010-07-08  Richard Guenther  <rguenther@suse.de>
8745
8746         PR tree-optimization/44861
8747         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
8748         information when building MEM_REFs.
8749         (vectorizable_load): Likewise.
8750         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
8751
8752 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8753
8754         * config/sol2-c.c: Do not include diagnostic-core.h.
8755
8756 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8757
8758         PR bootstrap/44768
8759         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
8760         with respect to current_function_decl. Pass decl of the function.
8761         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
8762         * ipa-inline.c (compute_inline_parameters): Pass decl to
8763         estimated_stack_frame_size.
8764
8765 2010-07-08  Richard Guenther  <rguenther@suse.de>
8766
8767         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8768         New function.
8769         (valueize_refs): Call it.
8770
8771 2010-07-08  Richard Guenther  <rguenther@suse.de>
8772
8773         PR rtl-optimization/44838
8774         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
8775         SSA form do not use pointer equivalence.
8776
8777 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8778
8779         * dwarf2out.c (AT_linkage_name): Delete.
8780         (add_linkage_attr): New function.
8781         (add_linkage_name): Call it to emit the linkage attribute.
8782         (dwarf2out_finish): Likewise.
8783         (move_linkage_attr): Explicitly accept both attribute variants.
8784
8785 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8786
8787         * toplev.h: Do not include diagnostic-core.h.
8788         Include diagnostic-core.h in every file that includes toplev.h.
8789         * c-tree.h: Do not include toplev.h.
8790         * pretty-print.h: Update comment.
8791         * Makefile.in: Update dependencies.
8792         * alias.c: Include diagnostic-core.h in every file that includes
8793         toplev.h.
8794         * attribs.c: Likewise.
8795         * auto-inc-dec.c: Likewise.
8796         * bb-reorder.c: Likewise.
8797         * bt-load.c: Likewise.
8798         * caller-save.c: Likewise.
8799         * calls.c: Likewise.
8800         * cfg.c: Likewise.
8801         * cfganal.c: Likewise.
8802         * cfgbuild.c: Likewise.
8803         * cfgcleanup.c: Likewise.
8804         * cfghooks.c: Likewise.
8805         * cfgloop.c: Likewise.
8806         * combine.c: Likewise.
8807         * config/alpha/alpha.c: Likewise.
8808         * config/arc/arc.c: Likewise.
8809         * config/arm/arm.c: Likewise.
8810         * config/arm/pe.c: Likewise.
8811         * config/avr/avr.c: Likewise.
8812         * config/bfin/bfin.c: Likewise.
8813         * config/cris/cris.c: Likewise.
8814         * config/crx/crx.c: Likewise.
8815         * config/darwin-c.c: Likewise.
8816         * config/darwin.c: Likewise.
8817         * config/fr30/fr30.c: Likewise.
8818         * config/frv/frv.c: Likewise.
8819         * config/h8300/h8300.c: Likewise.
8820         * config/host-darwin.c: Likewise.
8821         * config/i386/i386.c: Likewise.
8822         * config/i386/netware.c: Likewise.
8823         * config/i386/nwld.c: Likewise.
8824         * config/i386/winnt-cxx.c: Likewise.
8825         * config/i386/winnt-stubs.c: Likewise.
8826         * config/i386/winnt.c: Likewise.
8827         * config/ia64/ia64-c.c: Likewise.
8828         * config/ia64/ia64.c: Likewise.
8829         * config/iq2000/iq2000.c: Likewise.
8830         * config/lm32/lm32.c: Likewise.
8831         * config/m32c/m32c-pragma.c: Likewise.
8832         * config/m32c/m32c.c: Likewise.
8833         * config/m32r/m32r.c: Likewise.
8834         * config/m68hc11/m68hc11.c: Likewise.
8835         * config/m68k/m68k.c: Likewise.
8836         * config/mcore/mcore.c: Likewise.
8837         * config/mep/mep-pragma.c: Likewise.
8838         * config/mep/mep.c: Likewise.
8839         * config/mmix/mmix.c: Likewise.
8840         * config/mn10300/mn10300.c: Likewise.
8841         * config/moxie/moxie.c: Likewise.
8842         * config/pa/pa.c: Likewise.
8843         * config/pdp11/pdp11.c: Likewise.
8844         * config/picochip/picochip.c: Likewise.
8845         * config/rs6000/rs6000-c.c: Likewise.
8846         * config/rs6000/rs6000.c: Likewise.
8847         * config/rx/rx.c: Likewise.
8848         * config/s390/s390.c: Likewise.
8849         * config/score/score.c: Likewise.
8850         * config/score/score3.c: Likewise.
8851         * config/score/score7.c: Likewise.
8852         * config/sh/sh.c: Likewise.
8853         * config/sh/symbian-base.c: Likewise.
8854         * config/sh/symbian-c.c: Likewise.
8855         * config/sh/symbian-cxx.c: Likewise.
8856         * config/sol2-c.c: Likewise.
8857         * config/sol2.c: Likewise.
8858         * config/sparc/sparc.c: Likewise.
8859         * config/spu/spu.c: Likewise.
8860         * config/stormy16/stormy16.c: Likewise.
8861         * config/v850/v850-c.c: Likewise.
8862         * config/v850/v850.c: Likewise.
8863         * config/vax/vax.c: Likewise.
8864         * config/vxworks.c: Likewise.
8865         * config/xtensa/xtensa.c: Likewise.
8866         * convert.c: Likewise.
8867         * cse.c: Likewise.
8868         * cselib.c: Likewise.
8869         * dbgcnt.c: Likewise.
8870         * dbxout.c: Likewise.
8871         * ddg.c: Likewise.
8872         * dominance.c: Likewise.
8873         * emit-rtl.c: Likewise.
8874         * explow.c: Likewise.
8875         * expmed.c: Likewise.
8876         * fixed-value.c: Likewise.
8877         * fold-const.c: Likewise.
8878         * fwprop.c: Likewise.
8879         * gcse.c: Likewise.
8880         * ggc-common.c: Likewise.
8881         * ggc-page.c: Likewise.
8882         * ggc-zone.c: Likewise.
8883         * gimple-low.c: Likewise.
8884         * gimplify.c: Likewise.
8885         * graph.c: Likewise.
8886         * haifa-sched.c: Likewise.
8887         * ifcvt.c: Likewise.
8888         * implicit-zee.c: Likewise.
8889         * integrate.c: Likewise.
8890         * ira-build.c: Likewise.
8891         * ira-color.c: Likewise.
8892         * ira-conflicts.c: Likewise.
8893         * ira-costs.c: Likewise.
8894         * ira-lives.c: Likewise.
8895         * ira.c: Likewise.
8896         * lists.c: Likewise.
8897         * loop-doloop.c: Likewise.
8898         * loop-iv.c: Likewise.
8899         * lto-opts.c: Likewise.
8900         * lto-symtab.c: Likewise.
8901         * main.c: Likewise.
8902         * modulo-sched.c: Likewise.
8903         * optabs.c: Likewise.
8904         * params.c: Likewise.
8905         * plugin.c: Likewise.
8906         * postreload-gcse.c: Likewise.
8907         * postreload.c: Likewise.
8908         * predict.c: Likewise.
8909         * profile.c: Likewise.
8910         * real.c: Likewise.
8911         * regcprop.c: Likewise.
8912         * reginfo.c: Likewise.
8913         * regmove.c: Likewise.
8914         * reorg.c: Likewise.
8915         * resource.c: Likewise.
8916         * rtl.c: Likewise.
8917         * rtlanal.c: Likewise.
8918         * sched-deps.c: Likewise.
8919         * sched-ebb.c: Likewise.
8920         * sched-rgn.c: Likewise.
8921         * sdbout.c: Likewise.
8922         * sel-sched-dump.c: Likewise.
8923         * sel-sched-ir.c: Likewise.
8924         * simplify-rtx.c: Likewise.
8925         * stmt.c: Likewise.
8926         * stor-layout.c: Likewise.
8927         * store-motion.c: Likewise.
8928         * targhooks.c: Likewise.
8929         * tree-cfg.c: Likewise.
8930         * tree-cfgcleanup.c: Likewise.
8931         * tree-dump.c: Likewise.
8932         * tree-eh.c: Likewise.
8933         * tree-inline.c: Likewise.
8934         * tree-nomudflap.c: Likewise.
8935         * tree-object-size.c: Likewise.
8936         * tree-optimize.c: Likewise.
8937         * tree-outof-ssa.c: Likewise.
8938         * tree-phinodes.c: Likewise.
8939         * tree-profile.c: Likewise.
8940         * tree-ssa-ccp.c: Likewise.
8941         * tree-ssa-coalesce.c: Likewise.
8942         * tree-ssa-live.c: Likewise.
8943         * tree-ssa-loop-niter.c: Likewise.
8944         * tree-ssa-loop-prefetch.c: Likewise.
8945         * tree-ssa-loop.c: Likewise.
8946         * tree-ssa-structalias.c: Likewise.
8947         * tree-ssa-uninit.c: Likewise.
8948         * tree-ssa.c: Likewise.
8949         * tree-vect-data-refs.c: Likewise.
8950         * tree-vect-loop-manip.c: Likewise.
8951         * tree-vect-loop.c: Likewise.
8952         * tree-vect-patterns.c: Likewise.
8953         * tree-vect-stmts.c: Likewise.
8954         * tree-vrp.c: Likewise.
8955         * varasm.c: Likewise.
8956         * vec.c: Likewise.
8957         * web.c: Likewise.
8958         * xcoffout.c: Likewise.
8959
8960 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
8961
8962         * gengtype.c (write_field_root): New function.
8963         (write_root): Use it.
8964
8965 2010-07-07  Wei Guozhi  <carrot@google.com>
8966
8967         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8968         of lowest bits to lshift/compare): Add a missing line.
8969
8970 2010-07-07  Wei Guozhi  <carrot@google.com>
8971
8972         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8973         of lowest bits to lshift/compare): New.
8974
8975 2010-07-07  Tom Tromey  <tromey@redhat.com>
8976
8977         * doc/tm.texi: Update.
8978         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
8979         Add @hook.
8980         * target.def (want_debug_pub_sections): New hook.
8981         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
8982         * dwarf2out.c (add_pubname_string): Check
8983         targetm.want_debug_pub_sections.
8984         (add_pubname): Likewise.
8985         (add_pubtype): Likewise.
8986
8987 2010-07-07  Jie Zhang  <jie@codesourcery.com>
8988
8989         * genautomata.c (output_automata_list_min_issue_delay_code):
8990         Correctly decompress min_issue_delay.
8991
8992 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8993
8994         PR rtl-optimization/44404
8995         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
8996         possible, use reg_overlap_mentioned_p instead.
8997
8998 2010-07-07  Duncan Sands  <baldrick@free.fr>
8999
9000         PR middle-end/41355
9001         * tree.c (build_function_type_skip_args): Copy the original type using
9002         build_distinct_type_copy rather than copy_node.
9003
9004 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9005
9006         PR target/44850
9007         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
9008         revision 161876.
9009         (ix86_expand_prologue): Likewise.
9010         (ix86_handle_fndecl_attribute): Likewise.
9011         (ix86_asm_declare_function_name): Likewise.
9012         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9013         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9014         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
9015         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
9016         * doc/extend.texi: Likewise.
9017
9018 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9019
9020         PR target/44844
9021         * config/i386/i386.md (rdrand<mode>): Changed to expand to
9022         retry if the carry flag isn't valid.
9023         (rdrand<mode>_1): New.
9024
9025 2010-07-07  Richard Guenther  <rguenther@suse.de>
9026
9027         PR middle-end/44790
9028         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
9029         for expanding the constant offset for MEM_REFs.
9030
9031 2010-07-07  Richard Guenther  <rguenther@suse.de>
9032
9033         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
9034         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
9035         * gimple.h (is_gimple_operand): Remove.
9036         * gimple.c (is_gimple_operand): Likewise.
9037         (walk_gimple_op): Fix wi->val_only setting for calls.
9038         * tree-cfg.c (verify_gimple_call): Fix argument validation.
9039         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
9040         invalid gimple calls.
9041
9042 2010-07-06  Jan Hubicka  <jh@suse.cz>
9043
9044         * lto-cgraph.c (output_cgraph): Add missing declaration.
9045
9046 2010-07-06  Jan Hubicka  <jh@suse.cz>
9047
9048         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
9049         partition.
9050
9051 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
9052
9053         * doc/gimple.texi (GIMPLE_DEBUG): Document.
9054         * doc/rtl.texi (Debug Information): New node.
9055         (NOTE_INSN_VAR_LOCATION): Document.
9056         (debug_insn): Likewise.
9057         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
9058
9059 2010-07-07  Jan Hubicka  <jh@suse.cz>
9060
9061         With parts by Richard Guenther.
9062
9063         PR middle-end/44813
9064         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
9065         for functions passed by reference.
9066         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
9067         in memory when passed by reference.
9068         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
9069         beggining.
9070         * ipa-split.c (split_function): Cleanup way return value is passed;
9071         handle SSA DECL_BY_REFERENCE retvals.
9072         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
9073         DECL_BY_REFERENCE is set.
9074         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
9075         find_what_p_points_to): Handle RESULT_DECL.
9076         * tree-inline.c (declare_return_variable): Get new entry_block argument;
9077         when passing by reference ensure that RESULT_DECL is gimple_val.
9078         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
9079         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
9080
9081 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9082
9083         PR rtl-optimization/44787
9084         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
9085         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
9086
9087 2010-07-06  Jan Hubicka  <jh@suse.cz>
9088
9089         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
9090         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
9091         with body can prevail.
9092         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
9093         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
9094         * cgraph.c (cgraph_get_node_or_alias): New function.
9095         * cgraph.h (cgraph_get_node_or_alias): Declare.
9096
9097 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
9098
9099         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
9100         support.
9101         (ix86_expand_prologue): Likewise.
9102         (ix86_handle_fndecl_attribute): Likewise.
9103         (ix86_asm_declare_function_name): New function for
9104         ASM_DECLARE_FUNCTION_NAME.
9105         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
9106         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
9107         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
9108         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
9109         * doc/extend.texi: Adjust documentation about ms_hook_prologue
9110         attribute.
9111
9112 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9113
9114         * config/i386/i386.md (immediate_operand): New mode attribute.
9115
9116         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
9117         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
9118         using P mode iterator.
9119         (pro_epilogue_adjust_stack_di_2): Rename from
9120         pro_epilogue_adjust_stack_rex64_2.
9121
9122         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
9123
9124 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9125
9126         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
9127         through gen_mov_insv_1 function pointer.
9128         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
9129         gen_truncxf<mode>2 through gen_truncxf function pointer.
9130         (remainder<mode>3): Ditto.
9131         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
9132         (allocate_stack): Call gen_allocate_stack_worker_64 or
9133         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
9134         function pointer.
9135         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
9136         function pointer.
9137
9138 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9139
9140         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
9141         operand constraint instead of <r><i>m.
9142
9143 2010-07-06  Richard Guenther  <rguenther@suse.de>
9144
9145         PR middle-end/44828
9146         * convert.c (convert_to_integer): Watch out for overflowing
9147         MULT_EXPR as well.
9148
9149 2010-07-05  Jan Hubicka  <jh@suse.cz>
9150
9151         * lto-streamer.c (write_symbol_vec): Rename to ...
9152         (write_symbol) ... this one; write only symbol given and when
9153         present in cache. Sanity check that what is defined is present
9154         in cgraph/varpool with body/finalized decl.
9155         (write_symbols_of_kind): Remove.
9156         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
9157         pairs to produce symtab.
9158         (produce_asm_for_decls): Update call of produce_symtab; don't do so
9159         when doing WPA streaming.
9160
9161 2010-07-05  Jan Hubicka  <jh@suse.cz>
9162
9163         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
9164         function is still available to fold into.
9165
9166 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9167
9168         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
9169         * function.h (struct_function): Change type of local_decls field
9170         to a VEC.
9171         (add_local_decl): New function.
9172         (FOR_EACH_LOCAL_DECL): New macro.
9173         * cfgexpand.c (init_vars_expansion): Adjust for new type of
9174         cfun->local_decls.
9175         (estimated_stack_frame_size): Likewise.
9176         (expand_used_vars): Likewise.
9177         * cgraphbuild.c (build_cgraph_edges): Likewise.
9178         * function.c (instantiate_decls_1): Likewise.
9179         * ipa-struct-reorg.c (build_data_structure): Likewise.
9180         * ipa-type-escape.c (analyze_function): Likewise.
9181         * lto-streamer-in.c (input_function): Likewise.
9182         * lto-streamer-out.c (output_function): Likewise.
9183         * tree-ssa-live.c (remove_unused_locals): Likewise.
9184         * tree.c (free_lang_data_in_decl): Likewise.
9185         (find_decls_types_in_node): Likewise.
9186         * omp-low.c (remove_exit_barrier): Likewise.
9187         (expand_omp_taskreg): Likewise.
9188         (list2chain): Rename to...
9189         (vec2chain): ...this.  Adjust.
9190         * cgraphunit.c (assemble_thunk): Call add_local_decl.
9191         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
9192         * gimple-low.c (record_vars_into): Likewise.
9193         * tree-inline.c (remap_decls): Likewise.
9194         (declare_return_variable): Likewise.
9195         (declare_inline_vars): Likewise.
9196         (copy_forbidden): Adjust for new type of cfun->local_decls.
9197         (add_local_variables): New function.
9198         (expand_call_inline): Call it.
9199         (tree_function_versioning): Likewise.
9200
9201 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
9202
9203         AVX Programming Reference (June, 2010)
9204         * config/i386/cpuid.h (bit_F16C): New.
9205         (bit_RDRND): Likewise.
9206         (bit_FSGSBASE): Likewise.
9207
9208         * config/i386/i386-builtin-types.def: Add
9209         "DEF_FUNCTION_TYPE (UINT16)", function types for
9210         float16 <-> float conversions and
9211         "DEF_FUNCTION_TYPE (VOID, UINT64)".
9212
9213         * config/i386/i386-c.c (ix86_target_macros_internal): Support
9214         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
9215         OPTION_MASK_ISA_F16C.
9216
9217         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
9218         (OPTION_MASK_ISA_RDRND_SET): Likewise.
9219         (OPTION_MASK_ISA_F16C_SET): Likewise.
9220         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
9221         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
9222         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
9223         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9224         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
9225         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
9226         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
9227         (override_options): Handle them.
9228         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
9229         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
9230         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
9231         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
9232         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
9233         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
9234         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
9235         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
9236         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
9237         (bdesc_args): Likewise.
9238         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
9239         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
9240         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
9241         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
9242         Handle non-memory store.
9243
9244         * config/i386/i386.h (TARGET_FSGSBASE): New.
9245         (TARGET_RDRND): Likewise.
9246         (TARGET_F12C): Likewise.
9247
9248         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
9249         (UNSPEC_VCVTPS2PH): Likewise.
9250         (UNSPECV_RDFSBASE): Likewise.
9251         (UNSPECV_RDGSBASE): Likewise.
9252         (UNSPECV_WRFSBASE): Likewise.
9253         (UNSPECV_WRGSBASE): Likewise.
9254         (UNSPECV_RDRAND): Likewise.
9255         (rdfsbase<mode>): Likewise.
9256         (rdgsbase<mode>): Likewise.
9257         (wrfsbase<mode>): Likewise.
9258         (wrgsbase<mode>): Likewise.
9259         (rdrand<mode>): Likewise.
9260
9261         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
9262
9263         * config/i386/immintrin.h (_rdrand_u16): New.
9264         (_rdrand_u32): Likewise.
9265         (_readfsbase_u32): Likewise.
9266         (_readfsbase_u64): Likewise.
9267         (_readgsbase_u32): Likewise.
9268         (_readgsbase_u64): Likewise.
9269         (_writefsbase_u32): Likewise.
9270         (_writefsbase_u64): Likewise.
9271         (_writegsbase_u32): Likewise.
9272         (_writegsbase_u64): Likewise.
9273         (_rdrand_u64): Likewise.
9274         (_cvtsh_ss): Likewise.
9275         (_mm_cvtph_ps): Likewise.
9276         (_mm256_cvtph_ps): Likewise.
9277         (_cvtss_sh): Likewise.
9278         (_mm_cvtps_ph): Likewise.
9279         (_mm256_cvtps_ph): Likewise.
9280
9281         * config/i386/sse.md (vcvtph2ps): New.
9282         (*vcvtph2ps_load): Likewise.
9283         (vcvtph2ps256): Likewise.
9284         (vcvtps2ph): Likewise.
9285         (*vcvtps2ph): Likewise.
9286         (*vcvtps2ph_store): Likewise.
9287         (vcvtps2ph256): Likewise.
9288
9289         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
9290
9291         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
9292
9293 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
9294
9295         PR bootstrap/44512
9296         * genenums.c (main): Output include of insn-constants.h
9297         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
9298
9299 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
9300
9301         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
9302         (override_options): Initialize it.
9303         (ix86_expand_prologue): Use it.
9304
9305 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9306
9307         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
9308
9309 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9310
9311         * double-int.h (fit_double_type): Remove declaration.
9312         * double-int.c (fit_double_type): Remove function.
9313         * tree.h (int_fits_type_p): Adjust prototype.
9314         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
9315         instead of fit_double_type.
9316         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
9317         instead of fit_double_type and build_int_cst_wide.
9318         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
9319         instead of fit_double_type and build_int_cst_wide.
9320         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
9321         of fit_double_type.
9322
9323 2010-07-05  Jan Hubicka  <jh@suse.cz>
9324
9325         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
9326         in_other_partition.
9327         * lto-cgraph.c (referenced_from_other_partition_p,
9328         reachable_from_other_partition_p): Use in_other_partition flags.
9329         (output_node, output_varpool_node): COMDAT nodes always have private
9330         copies and thus are never used from other partition.
9331
9332 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9333
9334         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9335         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
9336         * config/ia64/ia64.c Include reload.h.
9337         (ia64_memory_move_cost): New function.
9338         (TARGET_MEMORY_MOVE_COST): Define.
9339         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
9340         memory_move_cost.
9341
9342 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
9343
9344         PR middle-end/42505
9345         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
9346         comments about cost model.
9347         (try_add_cand_for):  Add second strategy for choosing initial set
9348         based on original IVs, controlled by ORIGINALP argument.
9349         (get_initial_solution): Add ORIGINALP argument.
9350         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
9351         (find_optimal_iv_set): Try two different strategies for choosing
9352         the IV set, and return the one with lower cost.
9353
9354 2010-07-05  Richard Guenther  <rguenther@suse.de>
9355
9356         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
9357
9358 2010-07-05  Richard Guenther  <rguenther@suse.de>
9359
9360         * tree.c (reference_alias_ptr_type): New function.
9361         * tree.h (reference_alias_ptr_type): Declare.
9362         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
9363         allow non-TARGET_MEM_REF new refs.
9364         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
9365         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
9366         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
9367         (create_mem_ref): Get alias pointer type.  Adjust calls to
9368         create_mem_ref_raw.
9369         (maybe_fold_tmr): Likewise.
9370         * tree-flow.h (create_mem_ref): Adjust prototype.
9371
9372 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9373
9374         PR c++/44808
9375         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
9376         *from_p is VAR_DECL.
9377
9378 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9379
9380         * tree.h (build_call_list): Remove.
9381         * tree.c (build_call_list): Remove.
9382
9383 2010-07-05  Richard Guenther  <rguenther@suse.de>
9384
9385         * double-int.h (double_int_sub): Declare.
9386         * double-int.c (double_int_sub): New function.
9387         * dwarf2out.c (field_byte_offset): Use it.
9388         * fixed-value.c (do_fixed_add): Likewise.
9389         (do_fixed_multiply): Likewise.
9390         (do_fixed_divide): Likewise.
9391         * tree-predcom.c (add_ref_to_chain): Likewise.
9392         (determine_roots_comp): Likewise.
9393         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
9394
9395 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9396
9397         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
9398         implementations.
9399
9400 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
9401
9402         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
9403         * arm-modes.def (CC_NOTB): Don't define.
9404         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
9405         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
9406         (LTUGEU): New code_iterator.
9407         (cnb, optab): New corresponding code_attrs.
9408         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
9409         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
9410         using LTUGEU.
9411         (addsi3_carryin_shift_<optab>): Likewise.
9412         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
9413         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
9414         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
9415         (subsi3_compare): Renamed from subsi3_compare0_c.
9416         Change CC_NOTB to CC.
9417         (arm_subsi3_insn): Allow constants for operand 0.
9418         (compare_scc peephole for eq case): New.
9419         (compare_scc splitters): Change CC_NOTB to CC.
9420
9421 2010-07-05  Richard Guenther  <rguenther@suse.de>
9422
9423         * tree-ssa-loop-im.c (for_each_index): Do not handle
9424         ALIGN_INDIRECT_REF.
9425         (gen_lsm_tmp_name): Likewise.
9426         * tree-dump.c (dequeue_and_dump): Likewise.
9427         * tree-pretty-print.c (dump_generic_node): Likewise.
9428         (op_code_prio): Likewise.
9429         (op_symbol_code): Likewise.
9430         * tree.c (staticp): Likewise.
9431         (build1_stat): Likewise.
9432         * tree.h (INDIRECT_REF_P): Likewise.
9433         * fold-const.c (maybe_lvalue_p): Likewise.
9434         (operand_equal_p): Likewise.
9435         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9436         (ao_ref_init_from_vn_reference): Likewise.
9437         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
9438         (find_interesting_uses_address): Likewise.
9439         * dwarf2out.c (loc_list_from_tree): Likewise.
9440         * gimplify.c (gimplify_expr): Likewise.
9441         * tree-eh.c (tree_could_trap_p): Likewise.
9442         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9443         * cfgexpand.c (expand_debug_expr): Likewise.
9444         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9445         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
9446         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
9447         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
9448         * tree-ssa-operands.c (get_expr_operands): Likewise.
9449         * expr.c (safe_from_p): Likewise.
9450         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
9451         * tree-vect-data-refs.c (vect_setup_realignment): Build
9452         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
9453         * tree-vect-stmts.c (vectorizable_load): Likewise.
9454         * tree.def (ALIGN_INDIRECT_REF): Remove.
9455
9456 2010-07-05  Richard Guenther  <rguenther@suse.de>
9457
9458         PR tree-optimization/44784
9459         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
9460         for inserted stmts.
9461         (find_or_generate_expression): Fix SCCVN insertion check.
9462
9463 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9464
9465         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
9466         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9467         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
9468         directives.
9469
9470 2010-07-05  Ira Rosen  <irar@il.ibm.com>
9471
9472         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
9473         statements that are not vectorized.
9474         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
9475         in INSIDE_COST.
9476
9477 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
9478
9479         PR bootstrap/44820
9480         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
9481
9482 2010-07-05  Richard Guenther  <rguenther@suse.de>
9483
9484         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
9485         RESULT_DECLs properly.
9486
9487 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
9488
9489         PR rtl-optimization/44695
9490         * config/i386/i386.md (extract_code): Removed.
9491         (<u>divmodqi4): Likewise.
9492         (divmodqi4): New.
9493         (udivmodqi4): Likewise.
9494         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
9495         (udivmodhiqi3): Likewise.
9496
9497 2010-07-04  Jan Hubicka  <jh@suse.cz>
9498
9499         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
9500
9501 2010-07-04  Jan Hubicka  <jh@suse.cz>
9502
9503         * cgraphunit.c (init_cgraph): Only initialize dump file if it
9504         is not already initialized.
9505
9506 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9507
9508         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
9509         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
9510         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
9511         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
9512         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
9513         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
9514         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
9515         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
9516         (sync_new_nand_optab): Redefine as macros.
9517         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
9518         Delete.
9519         (direct_optab_index): New enum.
9520         (direct_optab_d): New structure.
9521         (direct_optab): New typedef.
9522         (direct_optab_table): Declare.
9523         (direct_optab_handler, set_direct_optab_handler): New functions.
9524         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
9525         (sync_lock_release_optab): New macros.
9526         * optabs.c (direct_optab_table): New variable.
9527         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
9528         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
9529         cmpstr_optab and cmpstrn_optab.
9530         (emit_conditional_move): Likewise for movcc_optab.
9531         (can_conditionally_move_p): Likewise for movcc_gen_code.
9532         (init_insn_codes): Clear direct_optab_table.
9533         (init_optabs): Don't initialize the new "direct optabs" here.
9534         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
9535         vcond_gen_code.
9536         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
9537         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
9538         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
9539         (expand_sync_operation): Likewise other sync_*_optabs.
9540         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
9541         to sync_compare_and_swap_optab.
9542         (expand_sync_lock_test_and_set): Use direct_optab_handler for
9543         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
9544         to the names of both.
9545         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
9546         cmpstr_optab and cmpstrn_optab.
9547         (expand_builtin_lock_release): Likewise sync_lock_release.
9548         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
9549         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
9550         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
9551         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
9552         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
9553         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
9554         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
9555         (sync_lock_test_and_set, sync_lock_release): Delete.
9556         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
9557         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
9558         * genopinit.c (optabs): Use set_direct_optab_handler for the new
9559         macro optabs.
9560         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
9561         the "optab" local variable.  Use direct_optab_handler for optab and
9562         sync_compare_and_swap_optab.
9563         * reload1.c (reload_in_optab, reload_out_optab): Delete.
9564         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
9565         reload_in_optab and reload_out_optab.
9566         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9567         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
9568         * config/pa/pa.c (pa_secondary_reload): Likewise.
9569         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
9570         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
9571         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
9572         (VMSupportsCS8_builtin): Likewise.
9573
9574 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9575
9576         * optabs.h (optab_handlers): Change type of insn_code to int.
9577         (optab_handler, set_optab_handler, convert_optab_handler)
9578         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
9579         CODE_FOR_nothing".
9580         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
9581         (init_insn_codes): Zero both the above arrays.
9582         (init_optabs): Never call init_insn_codes first time around.
9583
9584 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9585
9586         * optabs.h (optab_handler, convert_optab_handler): Turn into
9587         inline functions that return an insn code.
9588         (set_optab_handler, set_convert_optab_handler): New functions.
9589         * builtins.c: Replace optab_handler(X)->insn_code with
9590         optab_handler or set_optab_handler thoughout.  Likewise
9591         convert_optab_handler(X)->insn_code with convert_optab_handler
9592         and set_convert_optab_handler.
9593         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
9594         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
9595         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
9596         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
9597         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
9598         config/spu/spu.c: Likewise.
9599
9600 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9601
9602         PR target/44531
9603         * config.gcc (sh*-*-*): Use regular expressions instead of
9604         the 'i' modifier for sed substitutions.
9605
9606 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9607
9608         * gimple.c (gimple_body): Comments added.
9609
9610 2010-07-04  Richard Guenther  <rguenther@suse.de>
9611
9612         PR middle-end/44809
9613         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
9614         of an INDIRECT_REF.
9615
9616 2010-07-04  Richard Guenther  <rguenther@suse.de>
9617
9618         PR tree-optimization/44479
9619         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9620         extra SSA name copy statements which preserves points-to
9621         information.
9622         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9623         Copy points-to information for all pointers.  Properly handle
9624         MEM_REFs.
9625         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
9626         copy statements.
9627         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
9628         dependency.
9629
9630 2010-07-04  Richard Guenther  <rguenther@suse.de>
9631
9632         PR middle-end/44785
9633         * tree-inline.c (initialize_inlined_parameters): Do not
9634         re-use pointer-map slot over remap_type call.
9635
9636 2010-07-04  Richard Guenther  <rguenther@suse.de>
9637
9638         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
9639
9640 2010-07-04  Richard Guenther  <rguenther@suse.de>
9641
9642         PR tree-optimization/44656
9643         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
9644         again after value-replacing in the defintions lhs.
9645
9646 2010-07-04  Ira Rosen  <irar@il.ibm.com>
9647             Revital Eres  <eres@il.ibm.com>
9648
9649         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
9650         Document new arguments.
9651         * doc/tm.texi: Regenerate.
9652         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
9653         Handle unaligned store.
9654         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
9655         * target.def (builtin_vectorization_cost): Add new arguments.
9656         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
9657         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
9658         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
9659         (vect_vfa_segment_size): Fix indentation.
9660         * tree-vectorizer.h (struct _vect_peel_info): New.
9661         (struct _vect_peel_extended_info): New.
9662         (struct _loop_vec_info): Add new field for peeling hash table and a
9663         macro for its access.
9664         (VECT_MAX_COST): Define.
9665         (vect_get_load_cost): Declare.
9666         (vect_get_store_cost, vect_get_known_peeling_cost,
9667         vect_get_single_scalar_iteraion_cost): Likewise.
9668         (vect_supportable_dr_alignment): Add new argument.
9669         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
9670         field.
9671         (destroy_loop_vec_info): Free peeling hash table.
9672         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
9673         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
9674         vect_analyze_slp. Fix indentation.
9675         (vect_get_single_scalar_iteraion_cost): New function.
9676         (vect_get_known_peeling_cost): Likewise.
9677         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
9678         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
9679         statement. Move outside cost calculation inside unknown peeling case.
9680         Call vect_get_known_peeling_cost for known amount of peeling.
9681         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
9682         reference to the print message of forced alignment.
9683         (vect_verify_datarefs_alignment): Update call to
9684         vect_supportable_dr_alignment.
9685         (vect_get_data_access_cost): New function.
9686         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
9687         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
9688         vect_peeling_hash_choose_best_peeling): Likewise.
9689         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
9690         to store all the accesses in the loop and find best possible access to
9691         align using peeling for known alignment case. For unknown alignment
9692         check if stores are preferred or if peeling is worthy.
9693         (vect_find_same_alignment_drs): Analyze pairs of loads too.
9694         (vect_supportable_dr_alignment): Add new argument and check aligned
9695         accesses according to it.
9696         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
9697         (cost_for_stmt): Call vect_get_stmt_cost.
9698         (vect_model_simple_cost): Likewise.
9699         (vect_model_store_cost): Call vect_get_stmt_cost. Call
9700         vect_get_store_cost to calculate the cost of the statement.
9701         (vect_get_store_cost): New function.
9702         (vect_model_load_cost): Call vect_get_stmt_cost. Call
9703         vect_get_load_cost to calculate the cost of the statement.
9704         (vect_get_load_cost): New function.
9705         (vectorizable_store): Update call to vect_supportable_dr_alignment.
9706         (vectorizable_load): Likewise.
9707         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
9708         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
9709         arguments. Handle unaligned store.
9710         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
9711         (rs6000_builtin_support_vector_misalignment): Return true for word and
9712         double word alignments for VSX.
9713         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
9714         vect_supportable_dr_alignment and builtin_vectorization_cost.
9715
9716 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9717
9718         PR target/44597
9719         * config/pa/predicates.md (prefetch_cc_operand): Remove.
9720         (prefetch_nocc_operand): Likewise.
9721         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
9722         (prefetch_20): New insn.
9723         (prefetch_cc): Remove.
9724         (prefetch_nocc): Likewise.
9725
9726 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9727
9728         * expr.c (vector_mode_valid_p): Move to c-common.c.
9729         * expr.h (vector_mode_valid_p): Do not declare here.
9730         * system.h: Poison GCC_EXPR_H in front-ends.
9731         * Makefile.in: Update dependencies.
9732
9733 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9734
9735         PR target/44705
9736         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
9737
9738 2010-07-03  Jan Hubicka  <jh@suse.cz>
9739
9740         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
9741         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
9742         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
9743         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
9744         Likewise.
9745
9746         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
9747         Update timevars.V
9748         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
9749         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
9750         TV_IPA_LTO_DECL_OUT): New.
9751         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
9752
9753 2010-07-03  Jan Hubicka  <jh@suse.cz>
9754
9755         * ipa-inline.c (update_edge_key): Break out from ...
9756         update_callers_keys): ... here;
9757         (update_callee_keys): Update only the edges from caller to callee.
9758         (update_all_calle_keys): Do what update_calle_keys did.
9759         (decide_inlining_of_small_functions): Avoid recomputing of all
9760         callees when badness increase.
9761
9762 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9763
9764         * config/arm/arm.c (arm_attr_length_move_neon): New.
9765         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
9766         * config/arm/neon.md (define_mode_attr V_slen): Remove.
9767         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
9768         to compute length attribute.
9769
9770 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9771
9772         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
9773         as predicate for operand 1 and remove its constraint.
9774         * config/arm/predicates.md (vfp_register_operand): New.
9775         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
9776         (*push_fp_multi): Likewise.
9777
9778 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
9779
9780         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
9781
9782 2010-07-03  Jan Hubicka  <jh@suse.cz>
9783
9784         * config/i386/i386.c (override_options): Revert accidental commit.
9785
9786 2010-07-02  Le-Chun Wu  <lcwu@google.com>
9787
9788         PR c++/44128
9789         * doc/invoke.texi: Update documentation of -Wshadow.
9790
9791 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
9792             Julian Brown  <julian@codesourcery.com>
9793             Sandra Loosemore <sandra@codesourcery.com>
9794
9795         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
9796         comparisons.  Adjust to take both operands.
9797         (arm_select_cc_mode): Handle DImode comparisons.
9798         (arm_gen_compare_reg): Generate a scratch register for DImode
9799         comparisons which require one.  Use xor for Thumb equality checks.
9800         (arm_const_double_by_immediates): New.
9801         (arm_print_operand): Allow 'Q' and 'R' for constants.
9802         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
9803         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
9804         arm_canonicalize_comparison.
9805         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
9806         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9807         prototype.
9808         (arm_const_double_by_immediates): Declare.
9809         * config/arm/constraints.md (Di): New constraint.
9810         * config/arm/predicates.md (arm_immediate_di_operand)
9811         (arm_di_operand, cmpdi_operand): New.
9812         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
9813         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
9814         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
9815         (cstoredi4): Handle non-Cirrus also.
9816
9817 2010-07-02  Julian Brown  <julian@codesourcery.com>
9818             Sandra Loosemore <sandra@codesourcery.com>
9819
9820         PR target/43703
9821         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
9822         (smax<mode>3): Disable for NEON float modes when
9823         flag_unsafe_math_optimizations is false.
9824         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
9825         (*mul<mode>3_neon)
9826         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
9827         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
9828         for NEON float modes when flag_unsafe_math_optimizations is false.
9829         (quad_halves_<code>v4sf): Only enable if
9830         flag_unsafe_math_optimizations is true.
9831         * doc/invoke.texi (ARM Options): Add note about floating point
9832         vectorization requiring -funsafe-math-optimizations.
9833
9834 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9835             Julian Brown  <julian@codesourcery.com>
9836
9837         * config/arm/neon.md (UNSPEC_VABA): Delete.
9838         (UNSPEC_VABAL): Delete.
9839         (UNSPEC_VABS): Delete.
9840         (UNSPEC_VMUL_N): Delete.
9841         (adddi3_neon): New.
9842         (subdi3_neon): New.
9843         (mul<mode>3add<mode>_neon): Make the pattern named.
9844         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
9845         (neon_vadd<mode>): Replace with define_expand, and move the remaining
9846         unspec parts...
9847         (neon_vadd<mode>_unspec): ...to this.
9848         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
9849         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
9850         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
9851         (neon_vaba<mode>): Rewrite in terms of vabd.
9852         (neon_vabal<mode>): Rewrite in terms of vabdl.
9853         (neon_vabs<mode>): Rewrite without unspec.
9854         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
9855         (*arm_subdi3): Likewise.
9856         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
9857         No_op attribute to disable assembly output checks.
9858         * config/arm/arm_neon.h: Regenerated.
9859         * doc/arm-neon-intrinsics.texi: Regenerated.
9860
9861 2010-07-02  Jan Hubicka  <jh@suse.cz>
9862
9863         * ipa-split.c (split_function): For aggregate values, set the return
9864         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
9865         *<retval> = fncall.part ().
9866         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
9867
9868 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9869
9870         * config/arm/neon.md (UNSPEC_VAND): Delete.
9871         (UNSPEC_VBIC): Delete.
9872         (UNSPEC_VCLZ): Delete.
9873         (UNSPEC_VCNT): Delete.
9874         (UNSPEC_VEOR): Delete.
9875         (UNSPEC_VORN): Delete.
9876         (UNSPEC_VORR): Delete.
9877         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
9878         core registers too.
9879         (anddi3_neon): Likewise.
9880         (orndi3_neon): Likewise.
9881         (bicdi3_neon): Likewise.
9882         (xordi3_neon): Likewise.
9883         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
9884         rid of unspec and handle unused operand.
9885         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
9886         * config/arm/predicates.md (imm_for_neon_logic_operand):
9887         Require TARGET_NEON.
9888         (imm_for_neon_inv_logic_operand): Likewise.
9889         * config/arm/arm.md (define_split for logical_binary_operator):
9890         Disable for NEON registers.
9891         (anddi3): Add new define_expand, and rename the insn.  Disable
9892         this insn for NEON, where anddi3_neon now applies.
9893         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
9894         (iordi3): As for anddi3.
9895         (xordi3): Likewise.
9896         * config/arm/neon.ml (Vand): Split DImode variants and mark them
9897         as No_op to disable testing for exact instruction match.
9898         (Vorr): Likewise.
9899         (Veor): Likewise.
9900         (Vbic): Likewise.
9901         (Vorn): Likewise.
9902         * config/arm/arm_neon.h: Regenerated.
9903         * doc/arm-neon-intrinsics.texi: Regenerated.
9904
9905 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9906
9907         * expr.h (emit_stack_probe): Declare.
9908         * explow.c (emit_stack_probe): Make global.
9909         (anti_adjust_stack_and_probe): Fix comments.
9910         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9911         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9912         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9913         * config/sparc/sparc.c: Include except.h.
9914         (sparc_emit_probe_stack_range): New function.
9915         (output_probe_stack_range): Likewise.
9916         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
9917         built-in stack checking is enabled.
9918         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
9919         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9920         (probe_stack_range): New insn.
9921
9922 2010-07-02  Richard Guenther  <rguenther@suse.de>
9923
9924         PR target/43958
9925         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
9926         for argument alignment.
9927
9928 2010-07-02  Jan Hubicka  <jh@suse.cz>
9929
9930         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
9931         walk backwards from entry_bb to check only those basic block of header
9932         that might lead to execution of split part.
9933         (consider_split) ... here.
9934         (find_return_bb): Allow assignment in return BB.
9935         (find_retval): New.
9936         (split_function): Fix name of cloned function; take care of updating
9937         return value in return_bb containing move.
9938
9939 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
9940
9941         PR target/44771
9942         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
9943         used variable insn.
9944
9945 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9946
9947         * implicit-zee.c (combine_reaching_defs): Fix long lines.
9948         (is_set_with_extension_DI): Delete.
9949         (struct zero_extend_info): New structure.
9950         (add_removable_zero_extend): New function.
9951         (find_removable_zero_extends): Use note_stores to find SETs.
9952         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
9953
9954 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9955
9956         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
9957         is_miss_rate_acceptable. Pull total_positions computation
9958         out of the loops.  Early return if miss_positions exceeds
9959         the acceptable threshold.
9960         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
9961         is_miss_rate_acceptable after renaming of compute_miss_rate.
9962
9963 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9964
9965         PR middle-end/44576
9966         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
9967         of 1000) for miss rate if the address diference is greater than or
9968         equal to the cache line size (the two reference will never hit the
9969         same cache line).
9970
9971 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
9972
9973         PR target/42835
9974         * config/arm/arm-modes.def (CC_NOTB): New mode.
9975         * config/arm/arm.c (get_arm_condition_code): Handle it.
9976         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
9977         * config/arm/arm.md (subsi3_compare0_c): New pattern.
9978         (compare_scc): Now a define_and_split.  Add a number of extra
9979         splitters before it.
9980
9981         PR target/42172
9982         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
9983         and ZERO_EXTEND.
9984         (arm_rtx_costs_1): Likewise.
9985         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
9986         * config/arm/arm.md (is_arch6): New attribute.
9987         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
9988         extendqisi2): Tighten the code somewhat, avoiding invalid
9989         RTL to occur in the expander patterns.
9990         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
9991         (thumb1_zero_extendhisi2_v6): Delete.
9992         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
9993         (thumb1_extendhisi2_v6): Delete.
9994         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
9995         (thumb1_extendqisi2_v6): Delete.
9996         (zero_extendhisi2 for register input splitter): New.
9997         (zero_extendqisi2 for register input splitter): New.
9998         (thumb1_extendhisi2 for register input splitter): New.
9999         (extendhisi2 for register input splitter): New.
10000         (extendqisi2 for register input splitter): New.
10001         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
10002         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
10003         and add support for a register alternative requiring a split.
10004         (thumb1_zero_extendqisi2): Likewise.
10005         (arm_zero_extendqisi2): Likewise.
10006         (arm_extendhisi2): Likewise.
10007         (arm_extendqisi2): Likewise.
10008
10009 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10010
10011         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
10012         instead of an unspec.
10013         (neon_expand_vector_init): Likewise.
10014         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
10015         (UNSPEC_VDUP_LANE): Delete.
10016         (UNSPEC VDUP_N): Delete.
10017         (UNSPEC_VGET_HIGH): Delete.
10018         (UNSPEC_VGET_LANE): Delete.
10019         (UNSPEC_VGET_LOW): Delete.
10020         (UNSPEC_VMVN): Delete.
10021         (UNSPEC_VSET_LANE): Delete.
10022         (V_double_vector_mode): New.
10023         (vec_set<mode>_internal): Make code emitted match that for the
10024         corresponding intrinsics.
10025         (vec_setv2di_internal): Likewise.
10026         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
10027         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
10028         (neon_vset_lane<mode>): Combine double and quad patterns and
10029         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
10030         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
10031         (neon_vdup_n<mode>): Rewrite RTL without unspec.
10032         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
10033         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
10034         with neon_vdup_lanev2di, adjusting the pattern from the latter
10035         to be predicable for consistency.
10036         (neon_vdup_lane<mode>_internal): New.
10037         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
10038         to avoid using an unspec.
10039         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
10040         (neon_vdup_lanev2di): Turn into a define_expand.
10041         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
10042         (neon_vget_high<mode>): Replace with....
10043         (neon_vget_highv16qi): New pattern using canonical RTL.
10044         (neon_vget_highv8hi): Likewise.
10045         (neon_vget_highv4si): Likewise.
10046         (neon_vget_highv4sf): Likewise.
10047         (neon_vget_highv2di): Likewise.
10048         (neon_vget_low<mode>): Replace with....
10049         (neon_vget_lowv16qi): New pattern using canonical RTL.
10050         (neon_vget_lowv8hi): Likewise.
10051         (neon_vget_lowv4si): Likewise.
10052         (neon_vget_lowv4sf): Likewise.
10053         (neon_vget_lowv2di): Likewise.
10054
10055         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
10056         test for this emitting vmov.
10057         (Vset_lane): Likewise.
10058         (Vdup_n): Likewise.
10059         (Vmov_n): Likewise.
10060
10061         * doc/arm-neon-intrinsics.texi: Regenerated.
10062
10063 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10064
10065         * config/arm/neon.md (vec_extractv2di): Correct error in register
10066         numbering to reconcile with neon_vget_lanev2di.
10067
10068 2010-07-02  Richard Guenther  <rguenther@suse.de>
10069
10070         * tree-ssa-structalias.c (pt_solution_set_var): New function.
10071         * tree-ssa-alias.h (pt_solution_set_var): Declare.
10072         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
10073         points-to information.
10074
10075 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
10076
10077         * config/s390/s390.c (override_options): Adopt prefetching
10078         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
10079
10080 2010-07-02  Jan Hubicka  <jh@suse.cz>
10081
10082         * df-problems.c (df_kill_notes): Do not collect dead  notes.
10083         (df_set_note): Just call add_reg_note.
10084         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
10085         df_create_unused_note): Do not deal with lists of old notes.
10086         (df_note_bb_compute): Likewise.
10087
10088 2010-07-02  Richard Guenther  <rguenther@suse.de>
10089
10090         * tree-ssa-structalias.c (find_func_aliases): Handle
10091         pointer alignment via BIT_AND_EXPR.
10092         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
10093
10094 2010-07-02  Richard Guenther  <rguenther@suse.de>
10095
10096         * tree-data-ref.c (initialize_data_dependence_relation): Handle
10097         mismatching number of dimensions properly.
10098
10099 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10100
10101         PR target/44707
10102         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
10103         (lo_sum (high ...) ...) patterns generated by earlier passes.
10104
10105 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10106
10107         * doc/install.texi (Prerequisites): Document Perl requirement on
10108         Solaris 2.
10109         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
10110
10111 2010-07-02  Richard Guenther  <rguenther@suse.de>
10112
10113         PR middle-end/44777
10114         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
10115
10116 2010-07-02  Jan Hubicka  <jh@suse.cz>
10117
10118         PR middle-end/44706
10119         * predict.c (predict_paths_for_bb): Handle case when control dependence
10120         BB has only abnormal edges.
10121
10122 2010-07-02  Richard Guenther  <rguenther@suse.de>
10123
10124         PR tree-optimization/44748
10125         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
10126         the embedded conversion in MEM_REFs.
10127
10128 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
10129
10130         * reload.c: Include toplev.h.
10131         * recog.c:  Likewise.
10132         * Makefile.in: Adjust dependencies.
10133
10134 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
10135
10136         PR debug/44694
10137         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
10138         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
10139
10140 2010-07-01  Richard Guenther  <rguenther@suse.de>
10141
10142         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
10143         types for offsets.
10144
10145 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
10146
10147         PR target/44732
10148         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
10149         Fix argument types.
10150
10151 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
10152
10153         PR target/44727
10154         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10155         Make sure operand 0 dies.
10156
10157 2010-07-01  Richard Guenther  <rguenther@suse.de>
10158
10159         PR middle-end/42834
10160         PR middle-end/44468
10161         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
10162         * doc/generic.texi (References to storage): Document MEM_REF.
10163         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
10164         (print_call_name): Likewise.
10165         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
10166         (build_simple_mem_ref_loc): New function.
10167         (mem_ref_offset): Likewise.
10168         * tree.h (build_simple_mem_ref_loc): Declare.
10169         (build_simple_mem_ref): Define.
10170         (mem_ref_offset): Declare.
10171         * fold-const.c: Include tree-flow.h.
10172         (operand_equal_p): Handle MEM_REF.
10173         (build_fold_addr_expr_with_type_loc): Likewise.
10174         (fold_comparison): Likewise.
10175         (fold_unary_loc): Fold
10176         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
10177         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
10178         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
10179         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
10180         (ptr_deref_may_alias_ref_p_1): Likewise.
10181         (ao_ref_base_alias_set): Properly differentiate base object for
10182         offset and TBAA.
10183         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
10184         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
10185         (indirect_refs_may_alias_p): Likewise.
10186         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
10187         chasing code.
10188         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
10189         (call_may_clobber_ref_p_1): Likewise.
10190         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
10191         * expr.c (expand_assignment): Handle MEM_REF.
10192         (store_expr): Handle MEM_REFs from STRING_CSTs.
10193         (store_field): If expanding a MEM_REF of a non-addressable
10194         decl use bitfield operations.
10195         (get_inner_reference): Handle MEM_REF.
10196         (expand_expr_addr_expr_1): Likewise.
10197         (expand_expr_real_1): Likewise.
10198         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
10199         * alias.c (ao_ref_from_mem): Handle MEM_REF.
10200         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
10201         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
10202         (dr_analyze_indices): Likewise.
10203         (dr_analyze_alias): Likewise.
10204         (object_address_invariant_in_loop_p): Likewise.
10205         * gimplify.c (mark_addressable): Handle MEM_REF.
10206         (gimplify_cond_expr): Build MEM_REFs.
10207         (gimplify_modify_expr_to_memcpy): Likewise.
10208         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
10209         (gimple_fold_indirect_ref): Adjust.
10210         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
10211         * tree.def (MEM_REF): New tree code.
10212         * tree-dfa.c: Include toplev.h.
10213         (get_ref_base_and_extent): Handle MEM_REF.
10214         (get_addr_base_and_unit_offset): New function.
10215         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
10216         * gimple-fold.c (may_propagate_address_into_dereference): Handle
10217         MEM_REF.
10218         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
10219         accesses if the array has just one dimension.  Remove always true
10220         parameter.  Do not require type compatibility here.
10221         (maybe_fold_offset_to_component_ref): Remove.
10222         (maybe_fold_stmt_indirect): Remove.
10223         (maybe_fold_reference): Remove INDIRECT_REF handling.
10224         Fold back to non-MEM_REF.
10225         (maybe_fold_offset_to_address): Simplify.  Deal with type
10226         mismatches here.
10227         (maybe_fold_reference): Likewise.
10228         (maybe_fold_stmt_addition): Likewise.  Also handle
10229         &ARRAY + I in addition to &ARRAY[0] + I.
10230         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
10231         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
10232         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
10233         * tree-ssa.c (useless_type_conversion_p): Make most pointer
10234         conversions useless.
10235         (warn_uninitialized_var): Handle MEM_REF.
10236         (maybe_rewrite_mem_ref_base): New function.
10237         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
10238         to SSA form.
10239         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
10240         INDIRECT_REF handling.
10241         (copy_tree_body_r): Handle MEM_REF.
10242         * gimple.c (is_gimple_addressable): Adjust.
10243         (is_gimple_address): Likewise.
10244         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
10245         invariant base are invariant.
10246         (is_gimple_min_lval): Adjust.
10247         (is_gimple_mem_ref_addr): New function.
10248         (get_base_address): Handle MEM_REF.
10249         (count_ptr_derefs): Likewise.
10250         (get_base_loadstore): Likewise.
10251         * gimple.h (is_gimple_mem_ref_addr): Declare.
10252         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
10253         * tree-cfg.c (verify_address): New function, split out from ...
10254         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
10255         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
10256         INDIRECT_REFs.
10257         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
10258         INDIRECT_REF.  Allow conversions.
10259         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
10260         a register does not change its size.
10261         (verify_types_in_gimple_reference): Verify MEM_REF.
10262         (verify_gimple_assign_single): Disallow INDIRECT_REF.
10263         Handle MEM_REF.
10264         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
10265         New.
10266         (mark_address_taken): Handle MEM_REF.
10267         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
10268         (get_asm_expr_operands): Pass opf_not_non_addressable.
10269         (get_expr_operands): Handle opf_[not_]non_addressable.
10270         Handle MEM_REF.  Remove INDIRECT_REF handling.
10271         * tree-vrp.c (check_array_ref): Handle MEM_REF.
10272         (search_for_addr_array): Likewise.
10273         (check_array_bounds): Likewise.
10274         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
10275         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
10276         (ref_always_accessed_p): Likewise.
10277         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
10278         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
10279         Handle MEM_REF.
10280         * cgraphbuild.c (mark_load): Properly check for NULL result
10281         from get_base_address.
10282         (mark_store): Likewise.
10283         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
10284         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
10285         handling for MEM_REF.
10286         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
10287         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
10288         * builtins.c (stabilize_va_list_loc): Use the function ABI
10289         valist type if we couldn't canonicalize the argument type.
10290         Always dereference with the canonical va-list type.
10291         (maybe_emit_free_warning): Handle MEM_REF.
10292         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
10293         memmove to memcpy.
10294         * builtins.c (fold_builtin_memory_op): Use ref-all types
10295         for all memcpy foldings.
10296         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
10297         (build_outer_var_ref): Likewise.
10298         (scan_omp_1_op): Likewise.
10299         (lower_rec_input_clauses): Likewise.
10300         (lower_lastprivate_clauses): Likewise.
10301         (lower_reduction_clauses): Likewise.
10302         (lower_copyprivate_clauses): Likewise.
10303         (expand_omp_atomic_pipeline): Likewise.
10304         (expand_omp_atomic_mutex): Likewise.
10305         (create_task_copyfn): Likewise.
10306         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
10307         Remove old union trick.  Initialize constant offsets.
10308         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
10309         INDIRECT_REF.  Init base_alias_set properly.
10310         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
10311         (vn_reference_fold_indirect): Adjust for MEM_REFs.
10312         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
10313         for ARRAY_REFs.
10314         (may_insert): Remove.
10315         (visit_reference_op_load): Do not test may_insert.
10316         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
10317         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
10318         a field to store the constant offset this op applies.
10319         (run_scc_vn): Adjust prototype.
10320         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
10321         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
10322         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
10323         bother about volatile qualifiers on pointers.
10324         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
10325         * tree-ssa-loop-ivopts.c
10326         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
10327         (strip_offset_1): Likewise.
10328         (find_interesting_uses_address): Replace INDIRECT_REF handling with
10329         MEM_REF handling.
10330         (get_computation_cost_at): Likewise.
10331         * ipa-pure-const.c (check_op): Handle MEM_REF.
10332         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
10333         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
10334         and constants.
10335         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
10336         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
10337         (eliminate_local_variables_1): Likewise.
10338         (create_call_for_reduction_1): Likewise.
10339         (create_loads_for_reductions): Likewise.
10340         (create_loads_and_stores_for_name): Likewise.
10341         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
10342         (ssa_accessed_in_tree): Handle MEM_REF.
10343         (ssa_accessed_in_assign_rhs): Likewise.
10344         (update_type_size): Likewise.
10345         (analyze_accesses_for_call_stmt): Likewise.
10346         (analyze_accesses_for_assign_stmt): Likewise.
10347         (transform_access_sites): Likewise.
10348         (transform_allocation_sites): Likewise.
10349         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
10350         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
10351         not handle INDIRECT_REF.
10352         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
10353         (cond_store_replacement): Likewise.
10354         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
10355         MEM_REF, no not handle INDIRECT_REFs.
10356         (insert_into_preds_of_block): Properly initialize avail.
10357         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
10358         for ARRAY_REFs.  Properly handle reference lookups that
10359         require a bit re-interpretation.
10360         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
10361         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
10362         (build_ref_for_offset_1): Remove.
10363         (build_ref_for_offset): Build MEM_REFs.
10364         (gate_intra_sra): Disable for now.
10365         (sra_ipa_modify_expr): Handle MEM_REF.
10366         (ipa_early_sra_gate): Disable for now.
10367         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
10368         MEM_REF handling.
10369         (disqualify_base_of_expr): Likewise.
10370         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
10371         MEM_REF handling.
10372         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
10373         Use mem_ref_offset.  Remove bogus folding.
10374         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
10375         (make_fancy_name_1): Add support for MEM_REF.
10376         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
10377         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
10378         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
10379         (compute_complex_ancestor_jump_func): Likewise.
10380         (ipa_analyze_virtual_call_uses): Likewise.
10381         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
10382         INDIRECT_REF folding with more generalized MEM_REF folding.
10383         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
10384         (forward_propagate_addr_into_variable_array_index): Also handle
10385         &ARRAY + I in addition to &ARRAY[0] + I.
10386         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
10387         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
10388         creates assignments with overlap.
10389         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
10390         (get_frame_field): Likewise.
10391         (get_nonlocal_debug_decl): Likewise.
10392         (convert_nonlocal_reference_op): Likewise.
10393         (struct nesting_info): Add mem_refs pointer-set.
10394         (create_nesting_tree): Allocate it.
10395         (convert_local_reference_op): Insert to be folded mem-refs.
10396         (fold_mem_refs): New function.
10397         (finalize_nesting_tree_1): Perform defered folding of mem-refs
10398         (free_nesting_tree): Free the pointer-set.
10399         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
10400         (vectorizable_load): Likewise.
10401         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
10402         (propagate_with_phi): Likewise.
10403         * tree-object-size.c (addr_object_size): Handle MEM_REFs
10404         instead of INDIRECT_REFs.
10405         (compute_object_offset): Handle MEM_REF.
10406         (plus_stmt_object_size): Handle MEM_REF.
10407         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
10408         for &MEM_REF.
10409         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
10410         (symbol_marked_for_renaming): Likewise.
10411         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
10412         (fold-const.o): Add $(TREE_FLOW_H).
10413         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
10414         (find_func_clobbers): Likewise.
10415         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
10416         (decompose_access): Likewise.
10417         (replace_field_acc): Likewise.
10418         (replace_field_access_stmt): Likewise.
10419         (insert_new_var_in_stmt): Likewise.
10420         (get_stmt_accesses): Likewise.
10421         (reorg_structs_drive): Disable.
10422         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
10423         (ix86_canonical_va_list_type): Likewise.
10424
10425 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10426
10427         PR other/44566
10428         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
10429         * target.def (struct gcc_target): Replace enum reg_class with
10430         reg_class_t in hook argument / return types.
10431         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
10432         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
10433         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10434         * targhooks.h (default_branch_target_register_class): Likewise.
10435         (default_ira_cover_classes, default_secondary_reload): Likewise.
10436         (default_memory_move_cost, default_register_move_cost): Likewise.
10437         * targhooks.c (default_branch_target_register_class): Likewise.
10438         (default_ira_cover_classes, default_secondary_reload): Likewise.
10439         (default_memory_move_cost, default_register_move_cost): Likewise.
10440         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
10441         * bt-load.c (branch_target_load_optimize): Likewise.
10442         * ira.c (setup_cover_and_important_classes): Likewise.
10443         * ira-costs.c (copy_cost): Likewise.
10444         * reload1.c (emit_input_reload_insns): Likewise.
10445         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10446         * config/frv/frv.c (frv_secondary_reload): Likewise.
10447         * config/s390/s390.c (s390_secondary_reload): Likewise.
10448         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
10449         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
10450         (ix86_register_move_cost): Likewise.
10451         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
10452         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
10453         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
10454         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
10455         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
10456         (rs6000_ira_cover_classes): Likewise.
10457         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
10458         * config/picochip/picochip-protos.h (picochip_secondary_reload):
10459         Likewise.
10460         * config/pa/pa.c (pa_secondary_reload): Likewise.
10461         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
10462         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
10463         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
10464         * doc/tm.texi: Regenerate.
10465
10466 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
10467
10468         PR bootstrrap/44726
10469         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
10470         use.
10471         (build_alias_set_optimal_p): Likewise.
10472         (build_base_obj_set_for_drs): Likewise.
10473
10474 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10475
10476         * target.def: Remove comment about licensing problems of function
10477         declarations.
10478
10479         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
10480         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
10481         * doc/tm.texi: Regenerate.
10482
10483         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
10484         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
10485
10486         * target.def (enum_va_list_p): Use DEFHOOK.
10487         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
10488         Rename ptype to ptree.
10489         * doc/tm.texi: Regenerate.
10490
10491         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
10492         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
10493         * doc/tm.texi: Regenerate.
10494
10495         * target.def (memory_move_cost): Use DEFHOOK.
10496         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
10497         Rename regclass AKA class to rclass.
10498         * doc/tm.texi: Regenerate.
10499
10500         * target.def (pragma_parse): Use DEFHOOK.
10501         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
10502         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
10503         * doc/tm.texi: Regenerate.
10504
10505         * target.def (pass_by_reference): Use DEFHOOK.
10506         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
10507         * doc/tm.texi: Regenerate.
10508
10509         * target.def (resolve_overloaded_builtin): Rename params to arglist.
10510         Use DEFHOOK.
10511         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
10512         * doc/tm.texi: Regenerate.
10513
10514         * target.def (return_pops_args): Use DEFHOOK.
10515         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
10516         Rename stack-size to size.
10517         * doc/tm.texi: Regenerate.
10518
10519         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
10520         last-sched_cycle to last_clock, cur_cycle to clock.
10521         * doc/tm.texi.in: Use @hook.
10522         * doc/tm.texi: Regenerate.
10523
10524         * target.def (print_operand, print_operand_address): Update comment.
10525         (print_operand_punct_valid_p): Likewise.
10526
10527 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10528
10529         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
10530         to rtl.h.
10531         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
10532         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
10533         * rtl-error.h: New.
10534         * regrename.c: Do not include toplev.h. Include rtl-error.h.
10535         * rtl-error.c: Likewise.
10536         * reload.c: Likewise.
10537         * recog.c:  Likewise.
10538         * sel-sched.c: Likewise.
10539         * function.c: Likewise.
10540         * reg-stack.c: Likewise.
10541         * cfgrtl.c: Likewise.
10542         * reload1.c: Likewise.
10543         * final.c: Include rtl-error.
10544         * Makefile.in: Adjust dependencies.
10545
10546 2010-06-30  Jan Hubicka  <jh@suse.cz>
10547
10548         PR middle-end/PR44706
10549         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
10550         to return the value.
10551
10552 2010-06-30  Michael Matz  <matz@suse.de>
10553
10554         PR bootstrap/44699
10555         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
10556         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
10557         a gimple reg, attach the original VDEF to the last store in the
10558         sequence.
10559
10560 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
10561
10562         PR other/44034
10563         * config/darwin.c (darwin_override_options): Use renamed
10564         targetm.asm_out.emit_unwind_label.
10565
10566 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10567
10568         PR tree-optimization/39799
10569         * tree-inline.c (remap_ssa_name): Initialize variable only if
10570         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10571
10572 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
10573
10574         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
10575
10576 2010-06-30  Richard Guenther  <rguenther@suse.de>
10577
10578         PR target/44722
10579         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
10580         against oscillation with reverse peephole2.
10581
10582 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
10583
10584         PR target/44721
10585         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10586         Fix last commit.
10587
10588 2010-06-30  Nick Clifton  <nickc@redhat.com>
10589
10590         * config/rx/rx-modes.def: New file.
10591         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
10592         (CC_REGNUM): Define.
10593         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
10594         register.
10595         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
10596         (SELECT_CC_MODE): Define.
10597         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
10598         (reg:CC CC_REG) instead of (cc0).
10599         (attr "cc"): Delete.
10600         (cbranchsi4): Do not split compare and branch here. Instead move
10601         it to...
10602         (cbranchsi4_<code>): ... here.  New patterns.
10603         (cmpsi): Call rx-compare_redundant to find out if it is necessary
10604         to emit the compare instruction.
10605         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
10606         cc_status flags.
10607         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
10608         FIRST_PSEUDO_REGNUM.
10609         (rx_expand_prologue, rx_expand_epilogue): Likewise.
10610         (rx_notice_update_cc): Delete.
10611         (rx_cc_modes_compatible): New function.
10612         (flags_needed_for_conditional): New function.
10613         (flags_from_mode): New function.
10614         (rx_compare_redundant): New function - scans backwards through
10615         insn list to find out if condition flags are already set correctly.
10616         (TARGET_CC_MODES_COMPATIBLE): Define.
10617         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
10618
10619         * config/rx/rx.h (BRANCH_COST): Define.
10620         (REGISTER_MOVE_COST): Define.
10621         * config/rx/predicates (rx_source_operand): Allow all constant types.
10622         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
10623         (tstsi4): New pattern.
10624         * config/rx/rx.c (rx_memory_move_cost): Define.
10625         (TARGET_MEMORY_MOVE_COST): Define.
10626
10627 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10628
10629         * tree.h (block_may_fallthru): Declare here.
10630         * tree-flow.h (block_may_fallthru): Do not declare here.
10631         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
10632         bitmap.h
10633         * Makefile.in (c-typeck.o): Update dependencies.
10634
10635 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
10636
10637         PR debug/44694
10638         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
10639         * cselib.c (cfa_base_preserved_regno): New static variable.
10640         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
10641         of REGNO (cfa_base_preserved_val->locs->loc).
10642         (cselib_preserve_cfa_base_value): Add regno argument, set
10643         cfa_base_preserved_regno to it.
10644         (cselib_invalidate_regno): Allow removal of registers other than
10645         cfa_base_preserved_regno from cfa_base_preserved_val.
10646         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
10647         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
10648         of MEM addresses, if not on LHS.
10649         (reverse_op): Don't add reverse ops for cfa_base_rtx.
10650         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
10651
10652 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10653
10654         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
10655         static variables.
10656         (peep2_buf_position): New static function.
10657         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
10658         peephole2_optimize): Use it.
10659         (peep2_attempt, peep2_update_life): New static functions, broken out
10660         of peephole2_optimize.
10661         (peep2_fill_buffer): New static function.
10662         (peephole2_optimize): Change the main loop to try to fill the buffer
10663         with the maximum number of insns before matching them against
10664         peepholes.  Use a forward scan.  Remove special case for targets with
10665         conditional execution.
10666         * genrecog.c (change_state): Delete dead code.
10667         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10668         Rewrite so as not to expect the second insn to have had a peephole
10669         applied yet.
10670
10671 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10672
10673         * genhooks.c (emit_findices): Cast field precision to int.
10674         (emit_documentation): Likewise.
10675
10676 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
10677
10678         PR tree-optimization/43801
10679         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
10680         if old_decl was DECL_ONE_ONLY.
10681
10682         PR debug/44668
10683         * dwarf2out.c (add_accessibility_attribute): New function.
10684         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
10685         instead of adding DW_AT_accessibility manually.
10686         (gen_enumeration_type_die, gen_struct_or_union_type_die,
10687         gen_typedef_die): Use it.
10688
10689 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10690
10691         * vmsdbgout.c (full_name): Just output the file name if not native.
10692
10693 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10694
10695         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
10696         (funcnam_table): New static table.
10697         (funcnum_table): New static table.
10698         (write_rtnbeg): Write value saved in funcnum_table.
10699         (write_rtnend): Write value saved in funcnum_table.
10700         (vmsdbgout_begin_function): Save current function info in
10701         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
10702         (vmsdbgout_finish): Iterate over funcnum_table.
10703
10704 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10705
10706         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
10707         (vmsdbgout_type_decl): Declare
10708         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
10709         (FUNC_EPILOGUE_LABEL): New macro
10710         (vmsdbgout_begin_epilogue): New function.
10711         (vmsdbgout_type_decl): New function.
10712
10713 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10714
10715         * vmsdbg.h: Update copyright.
10716
10717 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10718
10719         * vmsdbg.h (DST_K_TBG): New DST constant.
10720         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
10721         (write_modbeg): Cast module_language to avoid warning.
10722         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
10723
10724 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10725
10726         PR other/44034
10727         * target.def, doc/tm.texi.in, genhooks.c: New files.
10728         * target.h: Instead of defining individual hook members,
10729         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
10730         include target.def.
10731         * target-def.h: Instead of defining individual hook initializers,
10732         include target-hooks-def.h.
10733         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
10734         targetm.live_on_entry -> targetm.extra_live_on_entry
10735         targetm.sched.md_finish ->targetm.sched.finish
10736         targetm.sched.md_init -> targetm.sched.init
10737         targetm.sched.md_init_global -> targetm.sched.init_global
10738         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
10739         targetm.asm_out.except_table_label ->
10740           targetm.asm_out.emit_except_table_label
10741         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
10742         targetm.target_help -> targetm.help
10743         targetm.vectorize.builtin_support_vector_misalignment ->
10744           targetm.vectorize.support_vector_misalignment
10745         targetm.file_start_app_off -> targetm.asm_file_start_app_off
10746         targetm.file_start_file_directive ->
10747          targetm.asm_file_start_file_directive
10748         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
10749         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
10750         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
10751         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
10752           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
10753         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
10754           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
10755         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
10756         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
10757         * Makefile.in (TARGET_H): Depend on target.def.
10758         (TARGET_DEF_H): Depend on target-hooks-def.h.
10759         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
10760         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
10761         * doc/tm.texi: Regenerate.
10762
10763         * Makefile.in (s-tm-texi): Remove stray tab / rule.
10764
10765         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
10766         (targetm.sched.init): Likewise.
10767
10768 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10769
10770         PR bootstrap/44713
10771         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
10772         (function_arg_advance_32): Const-ify TYPE parameter.
10773         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
10774         (ix86_function_arg_advance): Change type of NAMED to bool.
10775         (function_arg_32): Const-ify CUM and TYPE parameters.
10776         (function_arg_64): Likewise.  Change type of NAMED to bool.
10777         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
10778         to bool.
10779         (ix86_function_arg): Change type of NAMED to bool.
10780         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
10781         last argument as a bool.
10782
10783 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10784
10785         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
10786         (OVERRIDE_OPTIONS): Add note of obsolescence.
10787         Replace references with references to TARGET_OPTION_OVERRIDE.
10788         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
10789          the macro).
10790         * targhooks.c (default_target_option_override): New function.
10791         * targhooks.h (default_target_option_override): Declare.
10792         * target.h (struct gcc_target): Add override member to
10793         target_option member.
10794         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
10795         targetm.target_option.override call.
10796         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
10797         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
10798
10799 2010-06-29  Jan Hubicka  <jh@suse.cz>
10800
10801         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
10802
10803 2010-06-29  Jan Hubicka  <jh@suse.cz>
10804
10805         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
10806         unreachable.
10807         (rebuild_frequencies): New function.
10808         * predict.h (rebuild_frequencies): Declare.
10809         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
10810         entry block and edge reaching new_entry.
10811         (tree_function_versioning): When doing partial cloning, rebuild
10812         frequencies when done.
10813         * passes.c (execute_function_todo): Use rebild_frequencies.
10814
10815 2010-06-29  Richard Guenther  <rguenther@suse.de>
10816
10817         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
10818         * tree-flow.h (enum noalias_state): Remove.
10819         (struct var_ann_d): Remove noalias_state member.
10820
10821 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10822
10823         PR target/43902
10824         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
10825         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
10826         (maddhidi4): Likewise.
10827
10828         Revert parts of the change for PR25130.
10829         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10830         MEM_ALIAS_SET.
10831
10832 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10833
10834         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
10835         targetm.calls.function_incoming_arg, and
10836         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
10837         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
10838         * target.h (struct gcc_target): Add function_arg_advance,
10839         function_arg, and function_incoming_arg fields.
10840         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
10841         (TARGET_FUNCTION_INCOMING_ARG): Define.
10842         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
10843         and TARGET_FUNCTION_INCOMING_ARG.
10844         * targhooks.h (default_function_arg_advance): Declare.
10845         (default_function_arg, default_function_incoming_arg): Declare.
10846         * targhooks.c (default_function_arg_advance): New function.
10847         (default_function_arg, default_function_incoming_arg): New function.
10848         * config/i386/i386.c (function_arg_advance): Rename to...
10849         (ix86_function_arg_advance): ...this.  Make static.
10850         (function_arg): Rename to...
10851         (ix86_function_arg): ...this.  Make static.
10852         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10853         (TARGET_FUNCTION_ARG): Define.
10854         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
10855         (FUNCTION_ARG): Delete.
10856         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
10857         (function_arg): Delete prototype.
10858
10859 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10860
10861         * reginfo.c (init_reg_sets_1): Adjust comments.
10862         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
10863         * calls.c (prepare_call_address): Likewise.
10864         (emit_call_1): Use targetm.calls.return_pops_args.
10865         (expand_call): Likewise.
10866         * function.c (assign_parms): Likewise.
10867         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
10868         * target.h (struct gcc_target) [struct calls]: Add
10869         return_pops_args field.
10870         * targhooks.h (default_return_pops_args): Declare.
10871         * targhooks.c (default_return_pops_args): Define.
10872         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
10873         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
10874         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
10875         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
10876         documentation.
10877         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
10878         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
10879         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
10880         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
10881         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
10882         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
10883         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
10884         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
10885         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
10886         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
10887         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
10888         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
10889         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
10890         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
10891         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
10892         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
10893         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
10894         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
10895         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
10896         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
10897         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
10898         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
10899         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
10900         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
10901         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
10902         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
10903         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
10904         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
10905         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
10906         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
10907         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
10908         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
10909         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
10910         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
10911         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
10912         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
10913         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
10914         * config/i386/i386.c (ix86_return_pops_args): Make static.
10915         Constify arguments.
10916         (TARGET_RETURN_POPS_ARGS): Define.
10917         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
10918         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
10919         (TARGET_RETURN_POPS_ARGS): Define.
10920         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
10921         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
10922         (TARGET_RETURN_POPS_ARGS): Define.
10923
10924 2010-06-29  Richard Guenther  <rguenther@suse.de>
10925
10926         PR middle-end/44667
10927         * tree-inline.c (initialize_inlined_parameters): Make sure
10928         to remap the inlined parameter variable substitutions types.
10929
10930 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10931
10932         PR rtl-optimization/44659
10933         * combine.c (make_compound_operation) <SUBREG>: Do not return the
10934         result of force_to_mode if it partially re-expanded the compound.
10935
10936 2010-06-28  Jan Hubicka  <jh@suse.cz>
10937
10938         PR middle-end/44671
10939         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
10940         RESULT_DECL.
10941
10942 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
10943
10944         * double-int.h (force_fit_type_double): Remove declaration.
10945         * double-int.c (force_fit_type_double): Move to tree.c.
10946         * tree.h (force_fit_type_double): Declare.
10947         * tree.h (force_fit_type_double): Moved from double-int.c. Use
10948         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
10949         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
10950         * convert.c (convert_to_pointer): Adjust call to
10951         force_fit_type_double.
10952         * tree-vrp.c (extract_range_from_assert,
10953         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
10954         * fold-const.c: Update comment.
10955         (int_const_binop, fold_convert_const_int_from_int,
10956         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
10957         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
10958         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
10959         round_up_loc): Adjust call to force_fit_type_double.
10960
10961 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10962
10963         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
10964
10965 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10966
10967         * tree-sra.c (convert_callers): New parameter, change fndecls of
10968         recursive calls.
10969         (modify_function): Pass the old decl to convert_callers.
10970
10971 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10972
10973         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
10974         ipa_check_create_node_params and ipa_initialize_node_params with
10975         checking asserts they are not necessary.
10976
10977 2010-06-28  Jan Hubicka  <jh@suse.cz>
10978
10979         PR tree-optimization/44687
10980         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
10981
10982 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10983
10984         PR c++/44535
10985         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
10986         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
10987         instead of BINFO_BASE_BINFO.
10988
10989 2010-06-28  Michael Matz  <matz@suse.de>
10990
10991         PR middle-end/44592
10992         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
10993         proper VDEF chain for intermediate stores in the sequence.
10994
10995 2010-06-28  Jan Hubicka  <jh@suse.cz>
10996
10997         PR tree-optimization/44357
10998         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
10999         uninlinable functions.
11000
11001 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11002
11003         * config.gcc (powerpc*-*-*): Handle titan.
11004         * config/rs6000/rs6000.c (titan_cost): New costs.
11005         (rs6000_override_options): Add "titan" to processor_target_table.
11006         Add Titan to branch alignment logic.
11007         Correctly set rs6000_cost for titan.
11008         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
11009         * config/rs6000/titan.md: New file.
11010         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
11011
11012 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11013
11014         * tree-browser.c (TB_history_stack): Convert to a VEC.
11015         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
11016         (TB_history_prev): Likewise.
11017
11018 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11019
11020         * vec.h (vec_heap_free): Add parentheses around free.
11021
11022 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
11023
11024         * system.h: Poison GCC_EXCEPT_H for front-end files.
11025
11026         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
11027         langhook.
11028         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
11029         Define to NULL by default.
11030         * except.h: Define GCC_EXCEPT_H.
11031         (doing_eh): Remove prototype.
11032         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
11033         (lang_protect_cleanup_actions): Remove.
11034         * except.c (lang_protect_cleanup_actions): Remove.
11035         (doing_eh): Remove.
11036         (gen_eh_region): Don't check doing_eh here.
11037         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
11038         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
11039         instead of lang_protect_cleanup_actions.
11040         * omp-low.c (maybe_catch_exception): Likewise.
11041         * Makefile.in: Update dependencies.
11042
11043 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
11044
11045         * cgraph.h (struct varpool_node): new used_from_object_file flag.
11046         (struct cgraph_local_info): new used_from_object_file flag.
11047         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
11048         (cgraph_clone_node): initialize used_from_object_file.
11049         (cgraph_create_virtual_clone): initialize used_from_object_file.
11050         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
11051         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
11052         when compiling with -fwhole-program.
11053         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
11054         internal resolver.
11055         * ipa.c (function_and_variable_visibility): Set externally_visible
11056         flag of varpool_node if used_from_object_file flag is set.
11057         (cgraph_externally_visible_p): check used_from_object_file flag.
11058         * doc/invoke.texi (-fwhole-program option): Change description of
11059         externally_visible attribute accordingly.
11060         * doc/extend.texi (externally_visible): Ditto.
11061
11062 2010-06-27  Jan Hubicka  <jh@suse.cz>
11063
11064         * params.def (max-inline-insns-auto): Default to 40.
11065         * doc/invoke.texi (max-inline-insns-auto): Document the change.
11066
11067 2010-06-27  Jan Hubicka  <jh@suse.cz>
11068
11069         PR middle-end/44671
11070         PR middle-end/44686
11071         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
11072         signature change.
11073         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
11074         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
11075
11076 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
11077
11078         * target.h (struct gcc_target): Add register_move_cost field.
11079         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
11080         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
11081         * targhooks.c (default_register_move_cost): New function.
11082         * targhooks.h (default_register_move_cost): Declare function.
11083         * defaults.h (REGISTER_MOVE_COST): Delete.
11084         * ira-int.h (ira_register_move_cost): Update comment.
11085         * ira.c (ira_register_move_cost): Update comment.
11086         * reload.h (register_move_cost): Declare.
11087         * reginfo.c (register_move_cost): New function.
11088         (move_cost): Update comment.
11089         (init_move_cost, memory_move_secondary_cost): Replace
11090         REGISTER_MOVE_COST with register_move_cost.
11091         * postreload.c (reload_cse_simplify_set): (Ditto.).
11092         * reload.c (find_valid_class, find_reloads): (Ditto.).
11093         * reload1.c (choose_reload_regs): (Ditto.).
11094         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
11095         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
11096         * doc/md.texi (can_create_pseudo_p): Update documentation.
11097
11098         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
11099         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
11100         * config/i386/i386.h (ix86_memory_move_cost): Make static.
11101         (TARGET_MEMORY_MOVE_COST): Define.
11102
11103         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11104         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
11105         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
11106         (TARGET_MEMORY_MOVE_COST): Define.
11107
11108 2010-06-27  Richard Guenther  <rguenther@suse.de>
11109
11110         PR tree-optimization/44683
11111         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
11112         false edge from the inverted condition.
11113
11114 2010-06-27  Richard Guenther  <rguenther@suse.de>
11115
11116         PR middle-end/44684
11117         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
11118         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
11119         for register LHS.  Or non-store assignments.
11120
11121 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11122
11123         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
11124         (sparc_emit_set_const64): Likewise.  Remove disabled code.
11125         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
11126         (sparc_emit_set_const64): Likewise.
11127
11128 2010-06-26  Catherine Moore  <clm@codesourcery.com>
11129
11130         * config/mips/mips.md (alu_type): New attribute.
11131         (type): Infer type from alu_type.
11132         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
11133         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
11134         *subsi3_extended, negsi2, negdi2, *low<mode>,
11135         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
11136         xor<mode>3, *nor<mode>3,
11137         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
11138         *zero_extendhi_truncqi):  Set alu_type instead of type.
11139
11140 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
11141
11142         * config/alpha/alpha.c (alpha_need_linkage): Adjust
11143         splay_tree_new_ggc call.
11144         (alpha_use_linkage): Likewise.
11145
11146 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11147
11148         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
11149         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
11150         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
11151         (static_specs): Remove switches_need_spaces.
11152         (process_command, do_self_spec): Hardcode handling "-o" instead of
11153         checking switches_need_spaces.
11154         * system.h (SWITCHES_NEED_SPACES): Poison.
11155
11156 2010-06-26  Richard Guenther  <rguenther@suse.de>
11157
11158         PR tree-optimization/44393
11159         * tree-loop-distribution.c (generate_loops_for_partition): Fix
11160         stmt removal and VOP renaming.
11161         (generate_memset_zero): Remove redundant stmt updating.
11162         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
11163         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
11164
11165 2010-06-26  Jan Hubicka  <jh@suse.cz>
11166
11167         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
11168         edges comming from header are equivalent.
11169         (visit_bb): Handle PHIs correctly.
11170         * tree-inline.c (copy_phis_for_bb): Be able to copy
11171         PHI from entry edge.
11172         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
11173
11174 2010-06-26  Richard Guenther  <rguenther@suse.de>
11175
11176         PR middle-end/44674
11177         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
11178         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
11179
11180 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11181
11182         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
11183         add_infile, alloc_switch): New.
11184         (process_command): Remove variable lang_n_infiles.  Process
11185         options in a single pass.  Use new functions for allocating
11186         infiles and switches arrays.  Properly skip operands of
11187         -Xpreprocessor and -Xassembler.
11188
11189 2010-06-26  Jan Hubicka  <jh@suse.cz>
11190
11191         PR middle-end/44671
11192         * cgraphunit.c (cgraph_function_versioning): Remove wrong
11193         cgraph_make_decl_local call; fix typo copying RTL data.
11194
11195 2010-06-25  DJ Delorie  <dj@redhat.com>
11196
11197         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
11198         (m32c_output_aligned_common): Likewise.
11199         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11200         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11201         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
11202         (m32c_register_pragmas): Register it.
11203         * config/m32c/m32c.c (m32c_get_pragma_address): New.
11204         (m32c_insert_attributes): Set #pragma address decls volatile.
11205         (pragma_entry_eq): New.
11206         (pragma_entry_hash): New.
11207         (m32c_note_pragma_address): New.
11208         (m32c_get_pragma_address): New.
11209         (m32c_output_aligned_common): New.
11210         * doc/extend.texi: Document the new pragma.
11211
11212         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
11213         also.
11214         * config/m32c/predicates.md (m32c_any_operand): Check the code
11215         instead of memory_operand so as to allow matching volatile MEMs.
11216         (m32c_nonimmediate_operand): Likewise.
11217         (mra_operand): Allow volatiles.
11218
11219 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
11220
11221         PR debug/44610
11222         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
11223         address if the offset is unknown.
11224
11225 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
11226
11227         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
11228         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
11229         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
11230         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
11231         to ia64_start_function. Invoke it.
11232         * config/ia64/ia64.c (ia64_start_function): Call new function
11233         dwarf2out_vms_debug_main_pointer.
11234
11235 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11236
11237         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
11238         statements computing the true predicate.
11239
11240 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11241
11242         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
11243         to boolean_true_node.
11244         (reset_bb_predicate): New.
11245         (predicate_bbs): Call reset_bb_predicate.
11246
11247 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11248
11249         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
11250         (tree_if_conversion): Returns true when something has been changed.
11251         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
11252         changed something.
11253
11254 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11255
11256         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
11257         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
11258         * tree-if-conv.c: Include dbgcnt.h.
11259         (tree_if_conversion): Use if_conversion_tree to count the number of
11260         if-convertible loops.
11261
11262 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
11263
11264         * common.opt (fprefetch-loop-arrays): Re-define
11265         -fprefetch-loop-arrays as a tri-state option with the initial
11266         value of -1.
11267         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
11268         pass only when flag_prefetch_loop_arrays > 0.
11269         * toplev.c (process_options): Note that, with tri-states,
11270         flag_prefetch_loop_arrays>0 means prefetching is enabled.
11271         * config/i386/i386.c (override_options): Enable prefetching at -O3
11272         for a set of CPUs that sw prefetching is helpful.
11273         (software_prefetching_beneficial_p): New.  Return TRUE if software
11274         prefetching is beneficial for the given CPU.
11275
11276 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
11277
11278         PR rtl-optimization/44326
11279         * implicit-zee.c (find_removable_zero_extends): Replace
11280         INSN_P with NONDEBUG_INSN_P.
11281
11282 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11283
11284         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
11285         (struct ipa_node_params): Removed the modification_analysis_done flag.
11286         (ipa_is_param_modified): Removed.
11287         (ipa_analyze_node): Declare.
11288         (ipa_compute_jump_functions): Remove declaration.
11289         (ipa_count_arguments): Likewise.
11290         (ipa_detect_param_modifications): Likewise.
11291         (ipa_analyze_params_uses): Likewise.
11292         * ipa-prop.c (struct param_analysis_info): New type.
11293         (visit_store_addr_for_mod_analysis): Removed.
11294         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
11295         moved down in the file.
11296         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
11297         (ipa_count_arguments): Made static.
11298         (mark_modified): New function.
11299         (is_parm_modified_before_call): New function.
11300         (compute_pass_through_member_ptrs): New parameter parms_info, call
11301         is_parm_modified_before_call instead of ipa_is_param_modified.
11302         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
11303         it to compute_pass_through_member_ptrs.
11304         (ipa_compute_jump_functions): New parameter parms_info, pass it to
11305         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
11306         on the callee if it is analyzed.  Made static.
11307         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
11308         is_parm_modified_before_call instead of ipa_is_param_modified.
11309         (ipa_analyze_call_uses): New parameter parms_info, pass it to
11310         ipa_analyze_indirect_call_uses.
11311         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
11312         ipa_analyze_call_uses.
11313         (ipa_analyze_params_uses): New parameter parms_info, pass it to
11314         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
11315         (ipa_analyze_node): New function.
11316         (ipa_print_node_params): Do not dump the modified flag.
11317         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
11318         it.  Do not stream the modified parameter flag.
11319         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
11320         it.  Do not stream the modified parameter flag.
11321         * ipa-cp.c (ipcp_analyze_node): Removed.
11322         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
11323         with only a call to ipa_analyze_node.
11324         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
11325         node with only a call to ipa_analyze_node.
11326
11327 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11328
11329         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
11330
11331 2010-06-25  Jan Hubicka  <jh@suse.cz>
11332
11333         * tree-pass.h (pass_split_functions): Declare.
11334         * opts.c (decode_options): Enable function splitting at -O2
11335         * timevar.def (TV_IPA_FNSPLIT): New macro.
11336         * ipa-split.c: New file.
11337         * common.opt (-fpartial-inlining): New flag.
11338         * Makefile.in (ipa-split.o): New object file.
11339         * passes.c (init_optimization_passes): Add ipa-split.
11340         * params.def (partial-inlining-entry-probability): New parameters.
11341         * doc/invoke.texi (-fpartial-inlining): New.
11342
11343 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11344
11345         PR 44665
11346         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
11347         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
11348         (gimplify_expr): Likewise.
11349
11350 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11351
11352         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
11353         statements instead of bailing out on them.
11354         (ipa_analyze_indirect_call_uses): Do not require that loads from the
11355         parameter are in the same BB as the condition.  Update comments.
11356
11357 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
11358
11359         PR middle-end/43866
11360         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
11361         true or always false, return NULL_TREE.
11362         (tree_unswitch_single_loop): Optimize conditions even when reaching
11363         max-unswitch-level parameter.  If num > 0, optimize first all conditions
11364         using entry checks, then do still reachable block discovery and consider
11365         only conditions in still reachable basic blocks in the loop.
11366
11367         PR tree-optimization/44539
11368         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
11369         the call doesn't have LHS, but has VDEF.
11370
11371 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11372
11373         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
11374         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
11375         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
11376         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
11377         * system.h (MODIFY_TARGET_NAME): Poison.
11378
11379 2010-06-25  Alan Modra  <amodra@gmail.com>
11380
11381         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
11382         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
11383         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11384         CMODEL_LARGE as default.
11385         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
11386         (offsettable_ok_by_alignment): Delete.
11387         (rs6000_emit_move): Remove mcmodel=medium optimization.
11388
11389 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11390
11391         With large parts from Jim Wilson:
11392         PR target/43902
11393         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
11394         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11395         * optabs.c (optab_for_tree_code): Likewise.
11396         (expand_widen_pattern_expr): Likewise.
11397         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
11398         out of execute_optimize_widening_mul.
11399         (convert_plusminus_to_widen): New function.
11400         (execute_optimize_widening_mul): Use the two new functions.
11401         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
11402         Remove code to generate widening multiply-accumulate.  Add support
11403         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11404         * gimple-pretty-print.c (dump_ternary_rhs): New function.
11405         (dump_gimple_assign): Call it when appropriate.
11406         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
11407         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11408         (expand_gimple_stmt_1): Likewise.
11409         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
11410         WIDEN_MULT_MINUS_EXPR.
11411         * tree-ssa-operands.c (get_expr_operands): Likewise.
11412         * tree-inline.c (estimate_operator_cost): Likewise.
11413         * gimple.c (extract_ops_from_tree_1): Renamed from
11414         extract_ops_from_tree.  Add new arg for a third operand; fill it.
11415         (gimple_build_assign_stat): Support operations with three operands.
11416         (gimple_build_assign_with_ops_stat): Likewise.
11417         (gimple_assign_set_rhs_from_tree): Likewise.
11418         (gimple_assign_set_rhs_with_ops_1): Renamed from
11419         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
11420         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
11421         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
11422         WIDEN_MULT_MINUS_EXPR.
11423         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
11424         (extract_ops_from_tree_1): Adjust declaration.
11425         (gimple_assign_set_rhs_with_ops_1): Likewise.
11426         (gimple_build_assign_with_ops): Pass NULL for last operand.
11427         (gimple_build_assign_with_ops3): New macro.
11428         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
11429         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
11430         functions.
11431         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
11432         (verify_gimple_assign): Call it.
11433         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
11434         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
11435         functions for dealing with three-operand statements.
11436         * tree.c (commutative_ternary_tree_code): New function.
11437         * tree.h (commutative_ternary_tree_code): Declare it.
11438         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
11439         ternary statements.
11440         (gimple_assign_nonzero_warnv_p): Likewise.
11441         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
11442         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
11443         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
11444         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
11445         (struct hashtable_expr): New member ternary in the union.
11446         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
11447         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
11448         (iterative_hash_hashable_expr): Likewise.
11449         (print_expr_hash_elt): Handle EXPR_TERNARY.
11450         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
11451         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
11452         statements.  Handle GIMPLE_TERNARY_RHS.
11453
11454 2010-06-25  Jan Hubicka  <jh@suse.cz>
11455
11456         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
11457
11458 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
11459
11460         PR c/44517
11461         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
11462         parameters are not good.
11463         (c_parser_parameter_declaration): Error unknown type name if the type
11464         name can't start declaration specifiers.
11465
11466 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11467
11468         * gcc.c (translate_options): Don't mention +e in comment.
11469         (process_command): Don't handle +e specially.
11470
11471 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11472
11473         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
11474
11475         * ira-build.c (merge_hard_reg_conflicts): New function.
11476         (create_cap_allocno, copy_info_to_removed_store_destinations,
11477         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
11478         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
11479         (remove_unnecessary_allocnos, remove_low_level_allocnos)
11480         copy_nifo_to_removed_store_destination): Use them.
11481         * ira-lives.c (make_hard_regno_born): New function, split out of
11482         make_regno_born.
11483         (make_allocno_born): Likewise.
11484         (make_hard_regno_dead): New function, split out of make_regno_dead.
11485         (make_allocno_dead): Likewise.
11486         (inc_register_pressure): New function, split out of set_allocno_live.
11487         (dec_register_pressure): New function, split out of clear_allocno_live.
11488         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
11489         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
11490         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
11491         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
11492         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
11493         mark_pseudo_regno_live.
11494         (process_bb_node_lives): Use mark_pseudo_regno_live,
11495         make_hard_regno_born and make_allocno_dead.
11496         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
11497         set_allocno_live, clear_allocno_live): Delete functions.
11498
11499         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
11500         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
11501         functions.
11502         (ira_flattening): Use ira_parent_allocno.
11503         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
11504         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
11505
11506         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
11507         statement.
11508
11509         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
11510         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
11511         minmax_set_iter_cond, minmax_set_iter_next,
11512         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
11513         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
11514         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
11515         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
11516         uses changed.
11517
11518         * ira-int.h (struct live_range, live_range_t): Renamed from struct
11519         ira_allocno_live_range and allocno_live_range_t; all uses changed.
11520         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
11521         All uses changed.
11522
11523 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
11524
11525         * thumb2.md (thumb2_tlobits_cbranch): Delete.
11526         (peephole2 to convert zero_extract/compare of single bit to
11527          lshift/compare): New.
11528
11529 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
11530
11531         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
11532         recursive call and call to 'int_const_binop'.
11533         (build_range_check, fold_cond_expr_with_comparison, unextend,
11534         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
11535         multiple_of_p): Adjust call to const_binop.
11536
11537 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
11538
11539         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
11540         determine size of XFmode operand.
11541         (XFmode extended DFmode push splitter): Ditto.
11542         (XFmode extended SFmode push splitter): Ditto.
11543
11544 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11545
11546         PR target/44588
11547         * config/i386/i386.md (extract_code): New.
11548         (<u>divmodqi4): Likewise.
11549         (divmodhiqi3): Likewise.
11550         (udivmodhiqi3): Likewise.
11551         (<u>divqi3): Remvoved.
11552
11553 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
11554
11555         PR middle-end/44492
11556         * recog.h (struct recog_data): Add is_asm field.
11557         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
11558         present in constraints of inline-asm operand and memory operand
11559         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
11560         (extract_insn): Initialize recog_data.is_asm.
11561         * doc/md.texi (Constraints): Document operand side-effect rules.
11562
11563 2010-06-24  Andi Kleen  <ak@linux.intel.com>
11564
11565         * c-parser.c (c_parser_conditional_expression): Call
11566         warn_for_omitted_condop.
11567         * doc/invoke.texi: Document omitted condop warning.
11568
11569 2010-06-24  Nick Clifton<nickc@redhat.com>
11570
11571         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
11572         insn in the sequence is a jump insn before setting its label.
11573
11574 2010-06-24  Alan Modra  <amodra@gmail.com>
11575
11576         * collect2.c (main): Match exactly --version and --help.
11577
11578 2010-06-24  DJ Delorie  <dj@redhat.com>
11579
11580         * config/m32c/m32c-pragma.c: Don't include rtl.h.
11581
11582 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
11583
11584         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
11585         using X87MODEF mode iterator.
11586         (pushsf splitter): Macroize splitter using P mode iterator.
11587         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
11588         mode iterator.
11589
11590         (*movxf_internal): Rename from *movxf_integer.
11591         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
11592         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
11593         (*movdf_internal): Rename from *movdf_integer.
11594         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
11595         (*movsf_internal): Rename from *movdf_1.
11596
11597 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
11598
11599         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
11600         (const_gimple_seq_node): Removed typedefs.
11601
11602         * gimple.h (gimple_seq_node_d, gimple_seq_node)
11603         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
11604
11605 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
11606
11607         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
11608         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
11609         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
11610         and CODE_FOR_vec_extract_lo_v4df.
11611
11612         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
11613         Changed to define_insn_and_split.
11614         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
11615         (vec_extract_lo_v16hi): Likewise.
11616         (vec_extract_lo_v32qi): Likewise.
11617         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
11618         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
11619
11620 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
11621
11622         PR target/44640
11623         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
11624         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
11625         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
11626         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
11627         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
11628
11629         PR target/44640
11630         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
11631
11632         PR other/44644
11633         * df-core.c (struct df): Rename to df_d.
11634         * df.h (struct df): Likewise.
11635         * dse.h (struct df): Remove forward declaration.
11636         * recog.h (struct insn_data): Rename to:
11637         (struct_insn_data_d).  Adjusted all users.
11638
11639 2010-06-23  Arnaud Charlet  <charlet@adacore.com
11640
11641         PR ada/22220
11642         * doc/install.texi: Update requirements to build GNAT.
11643
11644 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
11645
11646         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
11647         enum type.
11648         (m68k_sched_attr_opx_type): Remove unreachable return.
11649         (m68k_sched_attr_opy_type): Likewise.
11650         (m68k_sched_attr_size): Likewise.
11651         (sched_get_opxy_mem_type): Likewise.
11652         (m68k_sched_attr_op_mem): Likewise.
11653
11654 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
11655
11656         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
11657         new statement and adjust VDEF only if necessary.  Remove superfluous
11658         call to maybe_clean_or_replace_eh_stmt.
11659         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
11660         copy the flags.
11661         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
11662         * tree-inline.c (copy_bb): ...and not there.
11663
11664 2010-06-22  Cary Coutant  <ccoutant@google.com>
11665
11666         * dwarf2out.c (is_nested_in_subprogram): New function.
11667         (should_move_die_to_comdat): Use it.
11668         (copy_ancestor_tree): Don't mark DIEs here.
11669         (copy_decls_walk): Start walk from root of newly-added tree;
11670         mark DIEs here instead.
11671
11672 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11673
11674         * config/i386/i386.md (unit): Also check sseishft1.
11675
11676 2010-06-22  Jan Hubicka  <jh@suse.cz>
11677
11678         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
11679         enabled.
11680
11681 2010-06-22  Jan Hubicka  <jh@suse.cz>
11682
11683         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
11684         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
11685         Return true if something changed.
11686         * df.h (df_confluence_function_n): Return bool.
11687         * df-core.c (df_worklist_propagate_forward,
11688         df_worklist_propagate_backward): Track changes and ages.
11689         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
11690         track ages.
11691         * dse.c (dse_confluence_n): Return always true.
11692
11693 2010-06-22  Jan Hubicka  <jh@suse.cz>
11694
11695         * bitmap.c (bitmap_clear_bit): Micro optimize.
11696
11697 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
11698
11699         * config/i386/i386.md (SWI1248x): New mode iterator.
11700         (SWI48x): Ditto.
11701         (SWI12): Ditto.
11702         (SWI24): Ditto.
11703
11704         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
11705         SWI1248x mode iterator.
11706         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
11707         using SWI124 mode iterator.
11708         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
11709         mode iterator.
11710         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
11711         *pushdi2_prologue_rex64 using P mode iterator.
11712         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
11713         using SWI48 mode iterator.
11714         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
11715         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
11716         using SWI1248x mode iterator.
11717         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
11718         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
11719         SWI48 mode iterator.
11720         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
11721         iterator.
11722         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
11723         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
11724         SWI12 mode iterator.
11725         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
11726         SWI12 mode iterator.
11727         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
11728         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
11729         SWI24 mode iterator.
11730         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
11731         SWI48 mode iterator.
11732         (mov<mode>_insn_1): New expander.
11733         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
11734         using SWI48x mode iterator.
11735
11736         (*movoi_internal_avx): Rename from *movoi_internal.
11737         (*movti_internal_rex64): Rename from *movti_rex64.
11738         (*movti_internal_sse): Rename from *movti_sse.
11739         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
11740         (*movdi_internal): Rename from *movdi_2.
11741         (*movsi_internal): Rename from *movsi_1.
11742         (*movhi_internal): Rename from *movhi_1.
11743         (*movqi_internal): Rename from *movqi_1.
11744
11745         (insv): Update the call to gen_movsi_insv_1 for rename.
11746         * config/i386/i386.c (promote_duplicated_reg): Ditto.
11747
11748 2010-06-22  Jan Hubicka  <jh@suse.cz>
11749
11750         * passes.c (execute_function_todo): Move call of statistics_fini_pass
11751         to ...
11752         (execute_todo) ... this one.
11753
11754 2010-06-22  Alan Modra  <amodra@gmail.com>
11755
11756         PR target/44364
11757         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11758         * caller-save.c (insert_restore, insert_save): Use non-validate
11759         form of adjust_address.
11760
11761 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11762
11763         PR target/39690
11764         * config/pa/pa.c (override_options): Disable
11765         -freorder-blocks-and-partition.
11766
11767 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
11768
11769         PR target/44615
11770         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
11771
11772         * config/i386/i386.md (type): Add sseishft1
11773
11774         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
11775         (ppro_insn_load): Likewise.
11776         (ppro_insn_store): Likewise.
11777         (ppro_insn_both): Likewise.
11778
11779         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
11780         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
11781         for type.
11782         (*vec_extractv2di_1_avx): Likewise.
11783         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
11784         type.  Remove atom_unit.
11785         (*vec_extractv2di_1_sse2): Likewise.
11786
11787 2010-06-21  DJ Delorie  <dj@redhat.com>
11788
11789         * diagnostic.h (diagnostic_classification_change_t): New.
11790         (diagnostic_context): Add history and push/pop list.
11791         (diagnostic_push_diagnostics): Declare.
11792         (diagnostic_pop_diagnostics): Declare.
11793         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
11794         from pragmas in a history chain instead of the global table.
11795         (diagnostic_push_diagnostics): New.
11796         (diagnostic_pop_diagnostics): New.
11797         (diagnostic_report_diagnostic): Scan history chain to find state
11798         of diagnostics as of the diagnostic location.
11799         * opts.c (set_option): Pass UNKNOWN_LOCATION to
11800         diagnostic_classify_diagnostic.
11801         (enable_warning_as_error): Likewise.
11802         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
11803         use in the history chain.
11804         * doc/extend.texi: Document pragma GCC diagnostic changes.
11805
11806 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
11807
11808         * dwarf2out.c (add_linkage_name): New function.  Don't add
11809         anything to DW_TAG_member DIEs.
11810         (add_name_and_src_coords_attributes): Use it.
11811         (gen_variable_die): Call it for C++ static data members if
11812         specification is DW_TAG_member.
11813
11814         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
11815         C++ char16_t and char32_t.
11816
11817         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
11818         * genattrtab.c: Include vecprim.h.
11819         (cached_attrs, cached_attr_count, attrs_seen_once,
11820         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
11821         attrs_cached_after): New variables.
11822         (find_attrs_to_cache): New function.
11823         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
11824         (write_test_expr): Add attrs_cached argument, return it too,
11825         attempt to cache non-const attributes used more than once in
11826         a single case handling.
11827         (write_attr_get): Use find_attrs_to_cache, for caching candidates
11828         emit cached_* variables.  Adjust write_attr_set callers.
11829         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
11830         to find attributes that should be cached in this block.  Adjust
11831         write_test_expr callers.
11832         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
11833         callers.
11834         (make_automaton_attrs): Adjust write_test_expr caller.
11835
11836         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
11837         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
11838         (make_automaton_attrs): If find_tune_attr returns non-NULL,
11839         write separate internal_dfa_insn_code_* and insn_default_latency_*
11840         functions for each attribute's value and emit init_sched_attrs
11841         function and function pointers.
11842         * genattr.c (const_attrs, reservations): New variables.
11843         (gen_attr): Add const attributes to const_attrs vector.
11844         (check_tune_attr, find_tune_attr): New functions.
11845         (main): Add reservations to reservations vector.  If find_tune_attr
11846         returns true, add prototype for init_sched_attrs and make
11847         internal_dfa_insn_code and insn_default_latency function pointers,
11848         otherwise define init_sched_attrs as dummy macro.
11849         * cfgexpand.c: Include insn-attr.h.
11850         (gimple_expand_cfg): Call init_sched_attrs.
11851
11852         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
11853
11854         PR target/44575
11855         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
11856         va_arg from a set of register save slots into a temporary,
11857         if the container is bigger than type size, do the copying
11858         using smaller mode or using memcpy.
11859
11860         PR bootstrap/44426
11861         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
11862         prototype.
11863         (sel_print_to_dot): Remove macro.
11864         (sel_print): Likewise.  New prototype.
11865         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
11866         (sel_print): New function.
11867
11868 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11869
11870         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
11871         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
11872
11873 2010-06-21  Nick Clifton  <nickc@redhat.com>
11874
11875         * config/rx/rx.h (PTRDIFF_TYPE): Define.
11876         (SMALL_REGISTER_CLASS): Define (to zero).
11877         (PRINT_OPERAND): Delete.
11878         (PRINT_OPERAND_ADDRESS): Delete.
11879         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
11880         (rx_print_operand_address): Delete prototype.
11881         * config/rx/rx.c (rx_print_operand): Make static.
11882         Allow %H and %L to handle CONST_DOUBLEs.
11883         (rx_print_operand_address): Make static.
11884         (rx_gen_move_template): Rename local variable 'template' to
11885         out_template.
11886         (rx_function_arg): Do not pass unknown sized objects in registers.
11887         (TARGET_PRINT_OPERAND): Define.
11888         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11889
11890 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
11891
11892         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
11893
11894 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
11895
11896         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
11897         stack-alignment for simple leaf-functions.
11898
11899 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11900
11901         * doc/install.texi: Document bootstrap-lto.
11902
11903 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11904
11905         PR debug/44248
11906         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
11907         (input_function): Drop them here, if VTA is disabled.
11908
11909 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
11910
11911         PR target/44546
11912         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
11913         New predicate.
11914         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
11915         ix86_swapped_fp_comparsion_operator instead of
11916         ix86_fp_comparison_operator.
11917
11918         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
11919         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
11920         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
11921         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
11922         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
11923         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
11924
11925 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
11926
11927         PR other/32998
11928         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
11929         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
11930         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
11931         (decode_cmdline_option): Update for this return value.  Set
11932         orig_option_with_args_text field.  Set arg field for unknown
11933         options.  Make static.
11934         (decode_cmdline_options_to_array): New.
11935         (prune_options): Update handling of find_opt return value.
11936         * opts.c (read_cmdline_option): Take decoded option.  Return void.
11937         (read_cmdline_options): Take decoded options.
11938         (decode_options): Add parameters for decoded options.  Use
11939         decode_cmdline_options_to_array.  Use decoded options for -O
11940         scan.  Use integral_argument for -O parameters.  Update call to
11941         read_cmdline_options.
11942         (enable_warning_as_error): Update handling of find_opt return value.
11943         * opts.h: Update comment on unknown options.
11944         (struct cl_decoded_option): Update comments on opt_index and arg.
11945         Add orig_option_with_args_text.
11946         (decode_cmdline_option): Remove.
11947         (decode_cmdline_options_to_array): Declare.
11948         (decode_options): Update prototype.
11949         * toplev.c (save_argv): Remove.
11950         (save_decoded_options, save_decoded_options_count): New.
11951         (read_integral_parameter): Remove.
11952         (print_switch_values): Use decoded options.
11953         (toplev_main): Don't set save_argv.  Update call to decode_options.
11954         * toplev.h (read_integral_parameter): Remove.
11955         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
11956
11957 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
11958
11959         PR target/44072
11960         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
11961         immediate.
11962         * constraints.md (Pw, Px): New constraints.
11963         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
11964
11965 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
11966
11967         * config/i386/sse.md (fma4modesuffixf4): Removed.
11968         (ssemodesuffixf2s): Likewise.
11969         (ssemodesuffixf4): Likewise.
11970         (ssemodesuffixf2c): Likewise.
11971         (ssescalarmodesuffix2s): Likewise.
11972         (avxmodesuffixf2c): Likewise.
11973         (ssemodesuffix): New.
11974         (ssescalarmodesuffix): Likewise.
11975         Update patterns with ssemodesuffix and ssescalarmodesuffix.
11976
11977 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
11978
11979         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
11980
11981 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11982
11983         * stor-layout.c (debug_rli): Remove unused local variables.
11984
11985 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11986
11987         PR rtl-optimization/40900
11988         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
11989         original expression for later reuse.
11990         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
11991         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
11992
11993 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
11994
11995         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
11996         double_int_fits_in_uhwi_p): Implement as static inline.
11997         (double_int_xor): New inline function.
11998         (double_int_lrotate, double_int_rrotate, double_int_max,
11999         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12000         double_int_smin): Declare.
12001         (lrotate_double, rrotate_double): Remove declaration.
12002         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
12003         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
12004         (double_int_lrotate, double_int_rrotate, double_int_max,
12005         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12006         double_int_smin): New function.
12007         * fold-const.c (int_const_binop): Clean up, use double_int_*
12008         functions.
12009         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
12010         double_int_* and immed_double_int_const functions.
12011
12012 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12013
12014         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
12015         * function.c (types_used_by_cur_var_decl): Likewise.
12016         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
12017
12018 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12019
12020         * tree.h (record_layout_info): Change type of pending_statics field
12021         to a VEC.
12022         * stor-layout.c (start_record_layout): Store NULL into
12023         pending_statics.
12024         (debug_rli): Call debug_vec_tree instead of debug_tree.
12025         (place_field): Likewise.
12026         (finish_record_layout): Likewise.
12027
12028 2010-06-18  Alan Modra  <amodra@gmail.com>
12029
12030         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
12031
12032 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12033
12034         PR target/43740
12035         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
12036         for SET source operand from SET destination operand.
12037
12038 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
12039
12040         PR rtl-optimization/39871
12041         * reload1.c (init_eliminable_invariants): For flag_pic, disable
12042         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
12043         (function_invariant_p): Rule out a plus of frame or arg pointer with
12044         a SYMBOL_REF.
12045         * ira.c (find_reg_equiv_invariant_const): Likewise.
12046
12047 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
12048
12049         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
12050         print_operand_address and puts to output the operand for CONST.
12051
12052 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
12053
12054         PR debug/44572
12055         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
12056         hook.
12057
12058 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12059
12060         * v850-protos.h (print_operand): Delete.
12061         (print_operand_address): Delete.
12062         * v850.h (PRINT_OPERAND): Delete.
12063         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12064         (PRINT_OPERAND_ADDRESS): Delete.
12065         * v850.c (print_operand_address): Rename to...
12066         (v850_print_operand_address): ...this.  Make static. Call
12067         v850_print_operand.
12068         (print_operand): Rename to...
12069         (v850_print_operand): ...this.  Make static.  Call
12070         v850_print_operand_address.
12071         (v850_print_operand_punct_valid_p): New function.
12072         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12073         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12074
12075 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12076
12077         * config/sh/sh-protos.h (print_operand): Delete.
12078         (print_operand_address): Delete.
12079         * config/sh/sh.h (PRINT_OPERAND): Delete.
12080         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12081         (PRINT_OPERAND_ADDRESS): Delete.
12082         * config/sh/sh.c (sh_print_operand_address): Make static.
12083         (sh_print_operand): Make static.  Call sh_print_operand_address
12084         and sh_print_operand.
12085         (sh_print_operand_punct_valid_p): New function.
12086         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12087         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12088
12089 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12090
12091         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
12092         (mcore_print_operand_address): Delete.
12093         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
12094         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12095         (PRINT_OPERAND_ADDRESS): Delete.
12096         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
12097         (mcore_print_operand): Make static.
12098         (mcore_print_operand_punct_valid_p): New function.
12099         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
12100         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12101
12102 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12103
12104         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
12105         (print_operand_address): Delete.
12106         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
12107         (PRINT_OPERAND_ADDRESS): Delete.
12108         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
12109         static.
12110         (m68hc11_print_operand): Make static.
12111         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12112
12113 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12114
12115         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
12116         (m32r_print_operand_address): Delete.
12117         * config/m32r/m32r.h (m32r_punct_chars): Delete.
12118         (PRINT_OPERAND): Delete.
12119         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12120         (PRINT_OPERAND_ADDRESS): Delete.
12121         * config/m32r/m32r.c (m32r_punct_chars): Make static.
12122         (m32r_print_operand_address): Make static.
12123         (m32r_print_operand): Make static.
12124         (m32r_print_operand_punct_valid_p): New function.
12125         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12126         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12127
12128 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12129
12130         * config/iq2000/iq2000-protos.h (print_operand): Delete.
12131         (print_operand_address): Delete.
12132         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
12133         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12134         (PRINT_OPERAND_ADDRESS): Delete.
12135         (iq2000_print_operand_punct): Delete.
12136         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
12137         (iq2000_print_operand_address): Make static.
12138         (iq2000_print_operand): Make static.
12139         (iq2000_print_operand_punct_valid_p): New function.
12140         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12141         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12142
12143 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12144
12145         * config/frv/frv-protos.h (frv_print_operand): Delete.
12146         (frv_print_operand_address): Delete.
12147         * config/frv/frv.h (PRINT_OPERAND): Delete.
12148         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12149         (PRINT_OPERAND_ADDRESS): Delete.
12150         * config/frv/frv.c (frv_print_operand_address): Make static.
12151         (frv_print_operand): Make static.
12152         (frv_print_operand_punct_valid_p): New function.
12153         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12154         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12155
12156 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12157
12158         * tree.h (vec_member): Declare.
12159         * tree.c (vec_member): Define.
12160
12161 2010-06-17  Richard Guenther  <rguenther@suse.de>
12162
12163         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
12164         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
12165
12166 2010-06-17  Richard Guenther  <rguenther@suse.de>
12167
12168         * tree-inline.c (declare_return_variable): Remove bogus code.
12169
12170 2010-06-17  Richard Guenther  <rguenther@suse.de>
12171
12172         * gimplify.c (gimplify_bind_expr): Always promote complex
12173         and vector variables to registers if possible.
12174
12175 2010-06-17  Richard Guenther  <rguenther@suse.de>
12176
12177         * expr.c (get_inner_reference): Use double_int for bit_offset
12178         calculation.
12179
12180 2010-06-16  DJ Delorie  <dj@redhat.com>
12181
12182         * common.opt (-fstrict-volatile-bitfields): new.
12183         * doc/invoke.texi: Document it.
12184         * fold-const.c (optimize_bit_field_compare): For volatile
12185         bitfields, use the field's type to determine the mode, not the
12186         field's size.
12187         * expr.c (expand_assignment): Likewise.
12188         (get_inner_reference): Likewise.
12189         (expand_expr_real_1): Likewise.
12190         * expmed.c (store_fixed_bit_field): Likewise.
12191         (extract_bit_field_1): Likewise.
12192         (extract_fixed_bit_field): Likewise.
12193
12194 2010-06-16  Richard Guenther  <rguenther@suse.de>
12195
12196         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
12197
12198 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
12199
12200         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
12201         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
12202         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
12203         * debug.c: Likewise.
12204         * sdbout.c: Likewise.
12205         * vmsdbgout.c: Likewise.
12206         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
12207         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
12208         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
12209         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
12210         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
12211         * dwarf2out.c (dw_fde_struct): New fields
12212         dw_fde_vms_{end,begin}_prologue.
12213         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
12214         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
12215         (dwarf2out_vms_end_prologue): New function.
12216         (dwarf2out_vms_begin_epilogue): New function.
12217         (dw_val_struct): New value dw_val_class_vms_delta.
12218         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
12219         begin_epilogue for VMS.
12220         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
12221         new static functions.
12222         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
12223         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
12224         static functions.
12225         (print_die): New case dw_val_class_vms_delta.
12226         (attr_checksum): Likewise.
12227         (same_dw_val_p: Likewise.
12228         (size_of_die): Likewise.
12229         (value_format): Likewise.
12230         (output_die): Likewise.
12231         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
12232         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
12233         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
12234         dwarf2out_cfi_begin_epilogue
12235         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
12236
12237 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12238
12239         * config/cris/cris-protos.h (cris_print_operand): Delete.
12240         (cris_print_operand_address): Delete.
12241         * config/cris/cris.h (PRINT_OPERAND): Delete.
12242         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12243         (PRINT_OPERAND_ADDRESS): Delete.
12244         * config/cris/cris.c (cris_print_operand_address): Make static.
12245         (cris_print_operand): Make static.
12246         (cris_print_operand_punct_valid_p): New function.
12247         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12248         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12249
12250 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12251
12252         * config/arm/arm-protos.h (arm_print_operand): Delete.
12253         (arm_print_operand_address): Delete.
12254         * config/arm/arm.h (PRINT_OPERAND): Delete.
12255         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12256         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
12257         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
12258         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
12259         (arm_print_operand): Make static.
12260         (arm_print_operand_punct_valid_p): New function.
12261         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12262         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12263
12264 2010-06-16  Nick Clifton  <nickc@redhat.com>
12265
12266         * config/rx/constraints.md (NEGint4): New constraint.
12267         * config/rx/rx.md (attr cc): Add set_zsc.
12268         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
12269         initialised.
12270         (cmpsf): Likewise.
12271         (call_internal): Clobber the cc0 register.
12272         (call_value_internal): Likewise.
12273         (cstoresi4): Likewise.
12274         (movsieq): Likewise.
12275         (movsine): Likewise.
12276         (addsi3): Add alternative to handle small negative constants.
12277         (sunsi3): Likewise.
12278         (addsi3): Do not set the O bit in the cc0 register.
12279         (adddi3): Likewise.
12280         (subsi3): Likewise.
12281         (subdi3): Likewise.
12282         (andsi3): Reorder alternatives to prefer shorter forms.
12283         (mulsi3): Likewise.
12284         (iorsi3): Likewise.
12285         (negsi2): Note that the cc0 flags are set.
12286         (rotlsi3): Note that only the Z and S bits are set in cc0.
12287         (lshrsi3): Likewise.
12288         (ashlsi3): Likewise.
12289         (subsf3): Use %Q for the MEM operand.
12290         (fix_truncsfsi2): Likewise.
12291         (floatsisf2): Likewise.
12292         (bitset): Remove early clobber from destination.
12293         (bitset_in_memory): Likewise.
12294         (lrintsf2): Clobber the cc0 register.
12295         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
12296         (rx_print_operand): Handle %N.
12297
12298 2010-06-16  Jan Hubicka  <jh@suse.cz>
12299
12300         * df-core.c (df_compact_blocks): Free problem_temps vector.
12301
12302 2010-06-16  Martin Jambor  <mjambor@suse.cz>
12303
12304         PR tree-optimization/43905
12305         * tree-sra.c: Include tree-inline.h.
12306         (create_abstract_origin): Removed.
12307         (modify_function): Version the call graph node instead of creating
12308         abstract origins and dealing with same_body aliases.
12309         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
12310         function is versionable.
12311         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
12312
12313 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
12314
12315         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
12316         (CHOOSE_DYNAMIC_LINKER): Update.
12317
12318 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
12319
12320         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
12321         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
12322         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
12323         *prefetch_3dnow_rex.
12324
12325 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
12326
12327         * target.h (struct asm_out):Add declare_constant_name field.
12328         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12329         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
12330         * output.h (default_asm_declare_constant_name): Declare.
12331         (assemble_label): Update prototype.
12332         * varasm.c (assemble_constant_contents): Use
12333         targetm.asm_out.declare_constant_name target hook.
12334         (assemble_label): Add 'file' argument.
12335         (default_asm_declare_constant_name): New function.
12336         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
12337         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
12338         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
12339
12340         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
12341         * config/darwin.c (darwin_asm_declare_constant_name): New function.
12342         (machopic_output_indirection): Update assemble_label argument list.
12343         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
12344         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12345
12346 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
12347
12348         PR middle-end/44391
12349         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12350         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
12351
12352 2010-06-15  Richard Guenther  <rguenther@suse.de>
12353
12354         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
12355
12356 2010-06-15  Paul Brook  <paul@codesourcery.com>
12357
12358         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
12359         hard-float ABI.
12360
12361 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
12362
12363         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
12364         don't get a vector type for output.
12365
12366 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
12367
12368         PR fortran/44536
12369         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
12370         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
12371         (LANG_HOOKS_DECLS): Add it.
12372         * gimplify.c (omp_notice_variable): Call
12373         lang_hooks.decls.omp_report_decl.
12374
12375 2010-06-15  Martin Jambor  <mjambor@suse.cz>
12376
12377         PR lto/44464
12378         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
12379         on the newly dead SSA name.
12380
12381 2010-06-15  Alan Modra  <amodra@gmail.com>
12382
12383         * doc/invoke.texi: Add mcmodel to powerpc options.
12384         * configure.ac: Add HAVE_LD_LARGE_TOC test.
12385         * configure: Regenerate.
12386         * config.in: Regenerate.
12387         * config/rs6000/linux64.opt (mcmodel): New.
12388         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
12389         (TARGET_CMODEL, SET_CMODEL): Define.
12390         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
12391         select CMODEL_MEDIUM default.
12392         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
12393         (TARGET_CMODEL): Define default.
12394         * config/rs6000/rs6000.c (cmodel): New variable.
12395         (rs6000_explicit_options): Add cmodel field.
12396         (rs6000_handle_option): Handle -mcmodel.
12397         (create_TOC_reference): Add largetoc_reg param.  Generate high,
12398         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
12399         (rs6000_delegitimize_address): Recognise new toc reference rtl
12400         and minimal-toc rtl.
12401         (rs6000_legitimize_reload_address): Handle new toc references.
12402         (print_operand_address): Handle legitimate_constant_pool_address_p
12403         match before lo_sum.
12404         (rs6000_eliminate_indexed_memrefs): Tidy.
12405         (rs6000_emit_move): Tweak threshold for inlining constants.
12406         Keep rs6000_emit_allocate_stack large stack frame offsets
12407         loaded into r0 inline.
12408         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
12409         (tocrel_base, tocrel_offset): New variables.
12410         (toc_relative_expr_p): Set them here.
12411         (print_operand_address): Skip over any offset on constant pool address.
12412         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
12413         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
12414         (offsettable_ok_by_alignment): New function.
12415         (rs6000_emit_move): Address suitably aligned local symbol_refs
12416         relative to the toc pointer for -mcmodel=medium.
12417         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
12418         strict param.  Allow lo_sum version of addressing.  Verify reg
12419         used for -mminimal-toc and -mcmodel != small.  Update all callers.
12420         * config/rs6000/constraints.md: Update for above change.
12421         * config/rs6000/predicates.md: Likewise.
12422         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
12423         code.
12424         (tls_gd): Split for -mcmodel=medium/large.
12425         (tls_gd_high, tls_gd_low): New.
12426         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
12427         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
12428         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
12429         (largetoc_high, largetoc_low): New.
12430         (cmptf_internal2): Add clobber.
12431         * config/rs6000/rs6000-protos.h: Update.
12432
12433 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
12434
12435         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
12436         true if no prefetch is going to be generated for a given group.
12437         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
12438         estimate the prefetch_count.
12439         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
12440         prefetch count by considering the unroll_factor and prefetch_mod
12441         for is_loop_prefetching_profitable.
12442
12443 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
12444
12445         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
12446         anything if the argument is not a MEM.
12447
12448 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12449
12450         PR debug/43650
12451         PR debug/44181
12452         PR debug/44247
12453         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
12454         debug stmts.
12455         (canonicalize_loop_ivs): Likewise.
12456
12457 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12458
12459         PR debug/43656
12460         * haifa-sched.c (setup_insn_reg_pressure_info,
12461         update_register_pressure): Reject debug insns.
12462         (ready_sort): Don't setup reg pressure for debug insns.
12463         (schedule_insn): Don't update reg pressure for debug insns.
12464
12465 2010-06-14  Richard Guenther  <rguenther@suse.de>
12466
12467         * lto-streamer.c (cached_bp): Remove.
12468         (bitpack_delete): Likewise.
12469         (bitpack_create): Likewise.
12470         (bp_get_next_word): Likewise.
12471         (bp_pack_value, bp_unpack_value): Move ...
12472         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
12473         Re-implement.
12474         (struct bitpack_d): Likewise.
12475         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
12476         New inline functions.
12477         * lto-streamer-out.c (lto_output_bitpack): Remove.
12478         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12479         (pack_value_fields): Adjust.
12480         (lto_write_tree): Likewise.
12481         (output_gimple_stmt): Likewise.
12482         (output_function): Likewise.
12483         * lto-streamer-in.c (input_gimple_stmt): Adjust.
12484         (input_function): Likewise.
12485         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12486         (lto_input_bitpack): Remove.
12487         (lto_materialize_tree): Adjust.
12488         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
12489         * lto-cgraph.c (lto_output_edge): Adjust.
12490         (lto_output_node): Likewise.
12491         (lto_output_varpool_node): Likewise.
12492         (lto_output_ref): Likewise.
12493         (input_node): Likewise.
12494         (input_varpool_node): Likewise.
12495         (input_ref): Likewise.
12496         (input_edge): Likewise.
12497         (output_node_opt_summary): Likewise.
12498         (input_node_opt_summary): Likewise.
12499         * ipa-pure-const.c (pure_const_write_summary): Likewise.
12500         (pure_const_read_summary): Likewise.
12501         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
12502         (ipa_read_indirect_edge_info): Likewise.
12503         (ipa_write_node_info): Likewise.
12504         (ipa_read_node_info): Likewise.
12505
12506 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
12507
12508         PR target/44534
12509         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
12510         (vec_extract_lo_v16hi): Likewise.
12511         (vec_extract_lo_v32qi): Likewise.
12512
12513 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12514
12515         PR bootstrap/44426
12516         * tree.h (build_call_expr): Don't define as vararg macro, instead
12517         add a prototype.
12518         * builtins.c (build_call_nofold): Remove.
12519         (expand_builtin_int_roundingfn, expand_builtin_pow,
12520         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
12521         expand_builtin_memset_args, expand_builtin_strcmp,
12522         expand_builtin_strncmp, expand_builtin_memory_chk): Use
12523         build_call_nofold_loc instead of build_call_nofold.
12524         (build_call_expr): New function.
12525
12526         PR tree-optimization/44508
12527         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
12528         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
12529         don't eliminate trivially dead stmts.
12530         * tree-vrp.c (vrp_finalize): Pass false as last argument
12531         to substitute_and_fold.
12532         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
12533         to substitute_and_fold.
12534         * tree-ssa-ccp.c (ccp_finalize): Likewise.
12535
12536         PR bootstrap/44509
12537         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
12538
12539 2010-06-14  Ira Rosen  <irar@il.ibm.com>
12540
12541         PR tree-optimization/44507
12542         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
12543         to build initial vector for BIT_AND_EXPR.
12544         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
12545
12546 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12547
12548         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
12549         adjust z10prop set_attr.
12550
12551 2010-06-13  Jan Hubicka  <jh@suse.cz>
12552
12553         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
12554         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
12555         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
12556         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
12557         datastructure checks into checking asserts.
12558         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
12559         * tree-ssa-sccvn.c (VN_INFO): Likewise.
12560         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
12561         df_ref_create_structure): Likewise.
12562         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
12563         pool_free): Use gcc_checking_assert.
12564         * alias.c (get_alias_set): Likewise.
12565         * var-tracking.c (variable_htab_free, shared_hash_copy,
12566         canonicalize_values_mark, variable_merge_over_cur): Likewise.
12567         * lto-streamer.c (bp_unpack_value): Likewise.
12568
12569 2010-06-13  Richard Guenther  <rguenther@suse.de>
12570
12571         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
12572         Do not stream but initialize TYPE_CANONICAL to NULL.
12573         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
12574         * gimple.c (gimple_types_compatible_p): Disregard
12575         TYPE_STRUCTURAL_EQUALITY_P.
12576         (gimple_register_type): Use TYPE_CANONICAL as cache.
12577         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
12578         before registering common types.
12579         * config/i386/i386.c (ix86_function_arg_boundary): Do not
12580         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
12581         * tree.h (TYPE_CANONICAL): Clarify documentation.
12582
12583 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
12584
12585         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12586         LIBCALL_VALUE): Remove macros.
12587         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
12588         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12589         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12590         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
12591         (ia64_function_value): Make static. Handle receiving the function
12592         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
12593
12594 2010-06-12  Jan Hubicka  <jh@suse.cz>
12595
12596         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
12597         at correct place.
12598
12599 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
12600
12601         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
12602
12603 2010-06-12  Jan Hubicka  <jh@suse.cz>
12604
12605         * df-core.c (df_clear_bb_info): New function.
12606         (df_set_blocks): bb_info is always allocated.
12607         (df_get_bb_info): Use block_info_elt_size.
12608         (df_set_bb_info): Likewise.
12609         (df_compact_blocks): Update for new block_info.
12610         (grow_bb_info): New function.
12611         * df-problems.c (df_grow_bb_info): Move to df-core.c
12612         (df_rd_set_bb_info): Remove.
12613         (df_rd_free_bb_info): Do not free block pool.
12614         (df_rd_alloc): Do not create pool, use check for
12615         obstack presence instead of NULL pointer for new blocks.
12616         (df_rd_free): DO not free alloc pool; clear block_info.
12617         (problem_RD): Add size of block info structure.
12618         (df_lr_set_bb_info): Remove.
12619         (df_lr_free_bb_info): Do not free block pool.
12620         (df_lr_alloc): Do not create pool, use check for
12621         obstack presence instead of NULL pointer for new blocks.
12622         (df_lr_free): DO not free alloc pool; clear block_info.
12623         (problem_LR): Add size of block info structure.
12624         (df_live_set_bb_info): Remove.
12625         (df_live_free_bb_info): Do not free block pool.
12626         (df_live_alloc): Do not create pool, use check for
12627         obstack presence instead of NULL pointer for new blocks.
12628         (df_live_free): DO not free alloc pool; clear block_info.
12629         (problem_LIVE): Add size of block info structure.
12630         (problem_CHAIN): Add size of block info structure.
12631         (df_byte_lr_set_bb_info): Remove.
12632         (df_byte_lr_free_bb_info): Do not free block pool.
12633         (df_byte_lr_alloc): Do not create pool, use check for
12634         obstack presence instead of NULL pointer for new blocks.
12635         (df_byte_lr_free): DO not free alloc pool; clear block_info.
12636         (problem_BYTE_LR): Add size of block info structure.
12637         (problem_NOTE): Add size of block info structure.
12638         (df_byte_MD_set_bb_info): Remove.
12639         (df_byte_MD_free_bb_info): Do not free block pool.
12640         (df_byte_MD_alloc): Do not create pool, use check for
12641         obstack presence instead of NULL pointer for new blocks.
12642         (df_byte_MD_free): DO not free alloc pool; clear block_info.
12643         (problem_BD): Add size of block info structure.
12644         * df-scan.c (df_scan_free_internal): Free block pool.
12645         (df_scan_set_bb_info): Remove.
12646         (df_scan_free_bb_info): Check for artificial_defs instead
12647         of bb_info being non-NULL.
12648         (df_scan_alloc): DO not create df_scan_block pool.
12649         (problem_SCAN): Set size of block info.
12650         (df_bb_refs_record): Do not allocate bb_info.
12651         * df.h (df_problem): Add block_info_elt_size.
12652         (struct dataflow): Change block_info to void *.
12653         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
12654         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
12655         in-line structures.
12656
12657 2010-06-12  Jan Hubicka  <jh@suse.cz>
12658
12659         PR tree-optimize/44485
12660         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
12661         containing use of return value of noreturn function.
12662
12663 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
12664
12665         * targhooks.c (default_function_value): Don't use
12666         FUNCTION_OUTGOING_VALUE.
12667         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
12668         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
12669
12670 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
12671
12672         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
12673         Add crtfastmath.o to extra_parts.
12674         * config/mips/crtfastmath.c: New.
12675         * config/mips/linux.h (ENDFILE_SPEC): New.
12676
12677 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
12678
12679         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
12680         old_type in parameter.
12681         (gcc_type_for_value): Update call to gcc_type_for_interval.
12682         (compute_type_for_level_1): Renamed compute_type_for_level.
12683         Update call to gcc_type_for_interval.
12684
12685 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12686
12687         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
12688         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
12689
12690 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12691
12692         * opts-common.c: Include options.h.
12693         (integral_argument): Move from opts.c.
12694         (decode_cmdline_option): New.  Based on read_cmdline_option.
12695         * opts.c (integral_argument): Move to opts-common.c.
12696         (read_cmdline_option): Move most contents to
12697         decode_cmdline_option.  Use %qs in diagnostics.
12698         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
12699         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
12700         decode_cmdline_option): New.
12701
12702 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12703
12704         PR target/44481
12705         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
12706         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
12707         (partiysi2_cmp): Ditto.
12708         (*partiyhi2_cmp): Ditto.
12709         (*parityqi2_cmp): Remove.
12710
12711 2010-06-11  Jan Hubicka  <jh@suse.cz>
12712
12713         * bitmap.h (bmp_iter_next_bit): New.
12714         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
12715
12716 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
12717             Eric Botcazou  <ebotcazou@adacore.com>
12718
12719         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
12720         computed cost.
12721
12722 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12723
12724         * config/i386/i386.md (unspec): New define_c_enum.
12725         (unspecv): Ditto.
12726
12727 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
12728
12729         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
12730
12731 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
12732
12733         PR middle-end/44483
12734         * tree-if-conv.c (bb_predicate_s): New struct.
12735         (bb_predicate_p): New.
12736         (bb_has_predicate): New.
12737         (bb_predicate): New.
12738         (set_bb_predicate): New.
12739         (bb_predicate_gimplified_stmts): New.
12740         (set_bb_predicate_gimplified_stmts): New.
12741         (add_bb_predicate_gimplified_stmts): New.
12742         (init_bb_predicate): New.
12743         (free_bb_predicate): New.
12744         (is_predicated): Use bb_predicate.
12745         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
12746         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
12747         before processing their successors.
12748         (clean_predicate_lists): Removed.
12749         (find_phi_replacement_condition): Use bb_predicate.
12750         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
12751         computations.
12752         (insert_gimplified_predicates): New.
12753         (combine_blocks): Call insert_gimplified_predicates.
12754         (tree_if_conversion): Call free_bb_predicate instead of
12755         clean_predicate_lists.
12756
12757 2010-10-11  Paul Brook  <paul@codesourcery.com>
12758
12759         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
12760         * config/arm/arm.c (all_architectures): Change v7e-m default to
12761         cortexm4.
12762         * config/arm/arm-cores.def: Add cortex-m4.
12763         * config/arm/arm-tune.md: Regenerate.
12764
12765 2010-06-11  Jan Hubicka  <jh@suse.cz>
12766
12767         * ipa-pure-const.c (special_builtlin_state): New function.
12768         (check_call): Use it instead of special casign BUILT_IN_RETURN.
12769         (propagate_pure_const): Use it.
12770
12771 2010-06-11  Jan Hubicka  <jh@suse.cz>
12772
12773         * df-problems.c (df_live_scratch): Convert to bitmap_head.
12774         (df_live_alloc): Initialize df_live_scratch when initializing
12775         problem_data.
12776         (df_live_transfer_function): Update uses of df_live_scratch.
12777         (df_live_free): Free problem_data; clear df_live_scratch before
12778         releasing the obstack.
12779         (df_md_free): Free problem data.
12780
12781 2010-06-11  Jan Hubicka  <jh@suse.cz>
12782
12783         * doc/invoke.texi (Wsuggest-attribute): Document.
12784         (Wmissing-noreturn): Remove.
12785         * ipa-pure-const.c (warn_function_noreturn): New function.
12786         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
12787         warn_missing_noreturn.
12788         * common.opt (Wsuggest-attribute=noreturn): New.
12789         * tree-flow.h (warn_function_noreturn): Declare.
12790         * tree-cfg.c (execute_warn_function_noreturn): Use
12791         warn_function_noreturn.
12792         (gate_warn_function_noreturn): New.
12793         (pass_warn_function_noreturn): Update.
12794
12795 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12796
12797         * c-typeck.c (handle_warn_cast_qual): Add loc
12798         parameter. Improve warning message.
12799         (build_c_cast): Pass location to handle_warn_cast_qual.
12800
12801 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12802
12803         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
12804         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
12805         insn mnemonic.
12806         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
12807
12808 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
12809
12810         Fix bootstap on mips
12811         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
12812         be naming typedefs.
12813
12814 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
12815
12816         * system.h (helper_const_non_const_cast): New inline for
12817         gcc version <= 4.0.
12818         (CONST_CAST2): For gcc version <= 4.0 use
12819         new helper to do const/non-const casting.
12820
12821 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12822
12823         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
12824         * Makefile.in (OBJS-common): Include insn-enums.o.
12825         (insn-enums.o): New rule.
12826         (simple_generated_c): Add insn-enums.c.
12827         (build/genenums.o): New rule.
12828         (genprogmd): Add "enums".
12829         * genconstants.c (print_enum_type): Declare a C string array
12830         for each enum.
12831         * genenums.c: New file.
12832         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
12833         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
12834         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
12835
12836 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12837
12838         * doc/md.texi (define_enum_attr): Document.
12839         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
12840         * read-md.h (lookup_enum_type): Declare.
12841         * read-md.c (lookup_enum_type): New function.
12842         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
12843         * genattrtab.c (attr_desc): Add an enum_name field.
12844         (evaluate_eq_attr): Take the associated attribute as argument.
12845         Get the enum prefix from the enum_name field, if defined.
12846         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
12847         (simplify_test_exp): Pass attr to evaluate_eq_attr.
12848         (add_attr_value): New function, split out from...
12849         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
12850         (write_test_expr): Pass attr to evaluate_eq_attr.
12851         (write_attr_get): Use the enum_name as the enum tag, if defined.
12852         (write_attr_valueq): Use the enum_name as a prefix, if defined.
12853         (find_attr): Initialize enum_name.
12854         (main): Handle DEFINE_ENUM_ATTR.
12855         * gensupport.c (process_rtx): Likewise.
12856         * config/mips/mips.h (mips_tune_attr): Delete.
12857         * config/mips/mips.md (cpu): Use define_attr_enum.
12858
12859 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12860
12861         * doc/md.texi (define_c_enum, define_enum): Document.
12862         * read-md.h (md_constant): Add a parent_enum field.
12863         (enum_value, enum_type): New structures.
12864         (upcase_string, traverse_enum_types): Declare.
12865         * read-md.c (enum_types): New variable.
12866         (upcase_string, add_constant): New functions.
12867         (handle_constants): Don't create the hash table here.
12868         Use add_constant.
12869         (traverse_md_constants): Don't check for a null md_constants.
12870         (decimal_string, handle_enum, traverse_enum_types): New functions.
12871         (read_md_files): Initialize md_constants and md_enums.
12872         * genconstants.c (print_md_constant): Ignore info argument.
12873         Only print constants that belong to no enum.
12874         (print_enum_type): New function.
12875         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
12876         for each defined enum type.
12877         * config/mips/mips.md (processor): New define_enum.
12878         (unspec): New define_c_enum.
12879         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
12880         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
12881         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
12882         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
12883         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
12884         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
12885         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
12886         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
12887         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
12888         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
12889         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
12890         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
12891         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
12892         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
12893         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
12894         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
12895         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
12896         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
12897         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
12898         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
12899         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
12900         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
12901         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12902         (UNSPEC_RDDSP): Move to mips-dsp.md.
12903         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
12904         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
12905         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
12906         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
12907         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
12908         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
12909         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
12910         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
12911         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
12912         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
12913         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
12914         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
12915         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
12916         Moved to mips-dspr2.md.
12917         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
12918         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
12919         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
12920         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
12921         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
12922         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
12923         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12924         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12925         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12926         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12927         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12928         UNSPEC_LOONGSON_PSADBH)
12929         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12930         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12931         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
12932         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12933         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12934         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12935         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
12936         (cpu): Update comment.
12937         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
12938         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
12939         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
12940         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
12941         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
12942         UNSPEC_LOONGSON_PCMPEQ)
12943         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
12944         UNSPEC_LOONGSON_PINSR_0)
12945         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12946         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12947         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12948         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12949         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12950         UNSPEC_LOONGSON_PSADBH)
12951         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12952         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12953         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
12954         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12955         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12956         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12957         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
12958         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
12959         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
12960         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
12961         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
12962         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
12963         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
12964         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
12965         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
12966         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
12967         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
12968         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
12969         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
12970         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
12971         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
12972         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
12973         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
12974         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
12975         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
12976         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
12977         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12978         (UNSPEC_RDDSP): Moved from mips.md.
12979         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
12980         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
12981         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
12982         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
12983         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
12984         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
12985         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
12986         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
12987         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
12988         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
12989         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
12990         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
12991         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
12992         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
12993         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
12994         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
12995         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
12996         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
12997         (UNSPEC_SCC): Moved from mips.md.
12998         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
12999         "processor_type" to "processor".
13000         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
13001         * config/mips/mips.h (processor_type): Delete.
13002         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
13003         "processor_type" to "processor".
13004
13005 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13006
13007         * configure.ac (tm_include_list): Add insn-constants.h.
13008         * configure: Regenerate.
13009         * Makefile.in (GTM_H): Move insn-constants.h here from...
13010         (TM_H): ...here.
13011         * mkconfig.sh: Remove special handling for insn-constants.h.
13012
13013 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13014
13015         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
13016         (BUILD_MD): ...this new variable.
13017         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
13018         that include the old contents of simple_generated_h and
13019         simple_generated_c.
13020         (simple_generated_h, simple_generated_c): Include them.  Add
13021         insn-constants.h.
13022         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
13023         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
13024         Remove these dependencies from the main rule and include
13025         insn-conditions.md in the command line only if it appears
13026         in the dependency list.
13027         (insn-constants.h, s-constants): Delete.
13028         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
13029         or gensupport.h.
13030         (build/genmddeps.o): Likewise.
13031         (genprogrtl): New variable that contains everything from genprogmd
13032         except mddeps and constants.
13033         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
13034         depend on $(BUILD_MD)
13035         (genprog): New variable.  Make these programs depend on
13036         $(BUILD_ERRORS).
13037         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
13038         (main): Use read_md_files instead of init_rtx_reader_args.
13039         * genconstants.c: As for genmddeps.c.
13040         * read-md.h (read_skip_construct): Declare.
13041         * read-md.c (read_skip_construct): New function.
13042         (handle_file): Allow a null handle_directive, skipping the
13043         construct if so.
13044         (parse_include): Update the comment accordingly.
13045
13046 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13047
13048         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
13049         * genmddeps.c: Include read-md.h.
13050         (main): Call init_rtx_reader_args instead of init_md_reader_args.
13051         * genattr.c (main): Likewise.
13052         * genattrtab.c (main): Likewise.
13053         * genautomata.c (main): Likewise.
13054         * gencodes.c (main): Likewise.
13055         * genconditions.c (main): Likewise.
13056         * genconfig.c (main): Likewise.
13057         * genconstants.c (main): Likewise.
13058         * genemit.c (main): Likewise.
13059         * genextract.c (main): Likewise.
13060         * genflags.c (main): Likewise.
13061         * genopinit.c (main): Likewise.
13062         * genoutput.c (main): Likewise.
13063         * genpeep.c (main): Likewise.
13064         * genrecog.c (main): Likewise.
13065         * genpreds.c (main): Likewise.
13066         * gensupport.h (in_fname): Move to read-md.h.
13067         (init_md_reader_args_cb): Rename to...
13068         (init_rtx_reader_args_cb): ...this and return a bool.
13069         (init_md_reader_args): Rename to...
13070         (init_rtx_reader_args): ...this and return a bool.
13071         (include_callback): Move to read-md.h.
13072         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
13073         (file_name_list, first_dir_md_include): Move to read-md.c
13074         (first_bracket_include): Delete unused variable.
13075         (last_dir_md_include): Move to read-md.c.
13076         (process_include): Delete, moving code to read-md.c:handle_include.
13077         (process_rtx): Don't handle INCLUDE.
13078         (save_string): Delete.
13079         (rtx_handle_directive): New function.
13080         (init_md_reader_args_cb): Rename to...
13081         (init_rtx_reader_args_cb): ...this and return a boolean success value.
13082         Use read_md_args.
13083         (init_md_reader_args): Rename to...
13084         (init_rtx_reader_args): ...this and return a boolean success value.
13085         * rtl.def (INCLUDE): Delete.
13086         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
13087         argument.
13088         * read-rtl.c (read_conditions): Don't gobble ')' here.
13089         (read_mapping): Likewise.
13090         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
13091         Handle top-level non-rtx constructs here rather than in read_rtx_1.
13092         Store the whole queue in *X.  Remove call to init_md_reader.
13093         (read_rtx_1): Rename to...
13094         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
13095         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
13096         here.
13097         (read_nested_rtx): New function.  Handle (nil) here rather than
13098         in read_rtx_code.
13099         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
13100         gobble ')' here.
13101         * read-md.h (directive_handler_t): New type.
13102         (in_fname, include_callback): Moved from read-md.h.
13103         (read_constants, init_md_reader): Delete.
13104         (read_md_files): Declare.
13105         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
13106         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
13107         from gensupport.c.
13108         (read_constants): Rename to...
13109         (handle_constants): ...this.  Don't gobble ')' here.
13110         (handle_include, handle_file, handle_toplevel_file)
13111         (parse_include): New functions, mostly taken from gensupport.c.
13112         (init_md_reader): Subsume into...
13113         (read_md_files): ...this new function.
13114
13115 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13116
13117         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
13118         (unread_char): Decrement read_md_lineno after putting back '\n'.
13119         * read-md.c (fatal_with_file_and_line): Push back any characters
13120         that we decide not to add to the context.
13121         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
13122         fatal_expected_char in cases where '/' ends a line (for example).
13123         (read_name): Don't increment read_md_lineno here.
13124         (read_escape): Likewise.
13125         (read_quoted_string): Likewise.
13126         (read_braced_string): Likewise.
13127
13128 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13129
13130         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
13131         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
13132         * genconstants.c: Include read-md.h.
13133         * read-rtl.c (md_constants): Move to read-md.c.
13134         (md_name): Move to read-md.h.
13135         (initialize_iterators): Use leading_string_hash instead of def_hash
13136         and leading_string_eq_p instead of def_name_eq_p.
13137         (read_name): Move to read-md.c.
13138         (def_hash, def_name_eq_p): Delete.
13139         (read_constants, traverse_md_constants): Move to read-md.c.
13140         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
13141         * read-md.h: Include hashtab.h.
13142         (md_name): Moved from read-rtl.c.
13143         (md_constant): Moved from read-md.h.
13144         (leading_string_hash, leading_string_eq_p, read_name)
13145         (read_constants, traverse_md_constants): Declare.
13146         * read-md.c (md_constants): Moved from read-rtl.c.
13147         (leading_string_hash, leading_string_eq_p): New functions.
13148         (read_name, read_constants, traverse_md_constants): Moved from
13149         read-rtl.c.
13150
13151 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13152
13153         * read-rtl.c (md_name): New structure.
13154         (read_name): Take an md_name instead of a buffer pointer.
13155         Use the "string" field instead of strcpy when expanding constants.
13156         (read_constants): Remove the tmp_char argument.  Update the calls
13157         to read_name, using two local name buffers instead of the tmp_char
13158         argument.  Merge the constant-creation code.
13159         (read_conditions): Remove the tmp_char argument.  Update the calls
13160         to read_name, using a local name buffer instead of the tmp_char
13161         argument.
13162         (read_mapping): Replace tmp_char variable with a local name buffer.
13163         Update the calls to read_name.
13164         (read_rtx_1): Likewise.  Update the calls to read_constants and
13165         read_conditions.
13166
13167 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13168
13169         * Makefile.in (build/read-md.o): Depend on errors.h.
13170         * read-md.h (error_with_line): Declare.
13171         * read-md.c: Include errors.h.
13172         (message_with_line_1): New function, extracted from...
13173         (message_with_line): ...here.
13174         (error_with_line): New function.
13175         * genattrtab.c: If a call to message_with_line is followed by
13176         "have_error = 1;", replace both statements with a call to
13177         error_with_line.
13178         * genoutput.c: Likewise.
13179         * genpreds.c: Likewise.
13180         * genrecog.c: If a call to message_with_line is followed by
13181         "error_count++;", replace both statements with a call to
13182         error_with_line.
13183         (errorcount): Delete.
13184         (main): Don't check it.
13185         * gensupport.c: If a call to message_with_line is followed by
13186         "errors = 1;", replace both statements with a call to error_with_line.
13187         (errors): Delete.
13188         (process_define_cond_exec): Check have_error instead of errors.
13189         (init_md_reader_args_cb): Likewise.  Don't set errors.
13190
13191 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13192
13193         * read-md.h (read_md_file): Declare.
13194         (read_char, unread_char): New functions.
13195         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13196         (read_quoted_string, read_string): Remove FILE * argument.
13197         * read-md.c (read_md_file): New variable.
13198         (read_md_filename, read_md_lineno): Update comments and remove
13199         unnecessary initialization.
13200         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13201         (read_escape, read_quoted_string, read_braced_string, read_string):
13202         Remove FILE * argument.  Update calls accordingly, using read_char
13203         and unread_char instead of getc and ungetc.
13204         * rtl.h (read_rtx): Remove FILE * argument.
13205         * read-rtl.c (iterator_group): Remove FILE * argument from
13206         "find_builtin".
13207         (iterator_traverse_data): Remove "infile" field.
13208         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
13209         (add_mapping, read_name, read_constants, read_conditions)
13210         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
13211         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
13212         Remove file arguments from all calls, using read_char and unread_char
13213         instead of getc and ungetc.
13214         * gensupport.c (process_include): Preserve read_md_file around
13215         the include.  Set read_md_file to the handle of the included file.
13216         Update call to read_rtx.
13217         (init_md_reader_args_cb): Set read_md_file to the handle of the file
13218         and remove local FILE *.  Update calls to read_rtx.
13219
13220 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13221
13222         * read-md.h (read_rtx_lineno): Rename to...
13223         (read_md_lineno): ...this.
13224         (read_rtx_filename): Rename to...
13225         (read_md_filename): ...this.
13226         (copy_rtx_ptr_loc): Rename to...
13227         (copy_md_ptr_loc): ...this.
13228         (print_rtx_ptr_loc): Rename to...
13229         (print_md_ptr_loc): ...this.
13230         * read-md.c: Likewise.  Update references after renaming.
13231         (string_obstack): Replace RTL with MD in comment.
13232         (set_rtx_ptr_loc): Rename to...
13233         (set_md_ptr_loc): ...this.
13234         (get_rtx_ptr_loc): Rename to...
13235         (get_md_ptr_loc): ...this.
13236         * genconditions.c: Update references after renaming.
13237         * genemit.c: Likewise.
13238         * genoutput.c: Likewise.
13239         * genpreds.c: Likewise.
13240         * gensupport.c: Likewise.
13241         * read-rtl.c: Likewise.
13242
13243 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13244
13245         * Makefile.in (READ_MD_H): New variable.
13246         (BUILD_RTL): Add build/read-md.o.
13247         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
13248         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
13249         (build/genattrtab.o, build/genconditions.o build/genemit.o)
13250         (build/genextract.o, build/genflags.o, build/genoutput.o)
13251         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
13252         (build/read-md.o): New rule.
13253         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
13254         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
13255         * coretypes.h: ...here.
13256         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
13257         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
13258         * genattr.c: Include read-md.h.
13259         * genattrtab.c: Likewise.
13260         * genconditions.c: Likewise.
13261         * genemit.c: Likewise.
13262         * genextract.c: Likewise.
13263         * genflags.c: Likewise.
13264         * genoutput.c: Likewise.
13265         * genpreds.c: Likewise.
13266         * genrecog.c: Likewise.
13267         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
13268         (join_c_conditions, print_c_condition, read_rtx_filename)
13269         (read_rtx_lineno): Move to read-md.h.
13270         * read-rtl.c: Include read-md.h.
13271         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
13272         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
13273         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
13274         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
13275         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
13276         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
13277         (read_braced_string, read_string): Move to read-md.c.
13278         (read_rtx): Move some initialization to init_md_reader and call
13279         init_md_reader here.
13280         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
13281         Move to read-md.h.
13282         * gensupport.c: Include read-md.h.
13283         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
13284         * read-md.h, read-md.c: New files.
13285
13286 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
13287
13288         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13289         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13290         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
13291         * config/moxie/moxie.c (moxie_function_value): Make static.
13292         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
13293         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13294
13295 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13296
13297         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
13298         * dbgcnt.def (tree_sra): New counter.
13299         * tree-sra.c: Include dbgcnt.h.
13300         (gate_intra_sra): Check tree_sra debug counter.
13301
13302 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13303
13304         PR tree-optimization/44258
13305         * tree-sra.c (build_access_subtree): Return false iff there is a
13306         partial overlap.
13307         (build_access_trees): Likewise.
13308         (analyze_all_variable_accesses): Disqualify candidates if
13309         build_access_trees returns true for them.
13310
13311 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
13312
13313         PR debug/41371
13314         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
13315         tail-recurse into canonical node.  Fast-forward over
13316         non-canonical VALUEs.
13317
13318 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
13319
13320         PR boostrap/44470
13321         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
13322         (*addsi_1_zext) <TYPE_LEA>: Likewise.
13323         (add lea splitter): Likewise.
13324         (add_zext lea splitter): Likewise.
13325
13326 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
13327
13328         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
13329
13330 2010-06-10  Jan Hubicka  <jh@suse.cz>
13331
13332         * df-problems.c (df_live_problem_data): Add live_bitmaps.
13333         (df_live_alloc): Initialize problem data and live_osbtacks.
13334         (df_live_finalize): Remove obstack, problem data; do not
13335         clear all bitmaps.
13336         (df_live_top_dump, df_live_bottom_dump): Do not dump old
13337         data when not allocated.
13338         (df_live_verify_solution_start): Do not allocate problem data.
13339         (df_live_verify_solution_end): Check if out is allocated.
13340         (struct df_md_problem_data): New structure.
13341         (df_md_alloc): Allocate problem data.
13342         (df_md_free): Free problem data; do not clear bitmaps.
13343
13344 2010-06-10  Jan Beulich  <jbeulich@novell.com>
13345
13346         PR bootstrap/37304
13347         * configure.ac: Replace $() with ${} when intending to expand
13348         variables rather than invoking commands.
13349         * configure: Re-generate.
13350
13351 2010-06-10  Jan Hubicka  <jh@suse.cz>
13352
13353         PR rtl-optimization/44460
13354         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
13355         TYPE_NEEDS_CONSTRUCTING sanity check.
13356
13357 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
13358
13359         * doc/include/fdl.texi: Move to GFDL version 1.3.
13360
13361         * doc/cpp.texi: Move to GFDL version 1.3.
13362         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
13363         * doc/gccint.texi: Move to GFDL version 1.3.
13364         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
13365         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
13366         * doc/invoke.texi: Move to GFDL version 1.3.
13367
13368 2010-06-09  Jan Hubicka  <jh@suse.cz>
13369
13370         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
13371         Break out from ...
13372         (propagate) ... here; swap the order.
13373
13374 2010-06-09  Jan Hubicka  <jh@suse.cz>
13375
13376         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
13377         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
13378         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
13379         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
13380
13381 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13382
13383         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
13384         Do not the gather memory reference in the outer loop if the step
13385         is not a constant.
13386
13387 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13388
13389         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
13390         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
13391         8 to 4.  Minor change of the related comments.
13392
13393 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13394
13395         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
13396         the scev analysis when the variable is not used outside the loop
13397         in a close phi node: call compute_overall_effect_of_inner_loop.
13398
13399 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13400
13401         * graphite-sese-to-poly.c (single_pred_cond): Renamed
13402         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
13403         (build_sese_conditions_before): Renamed call to single_pred_cond.
13404         (build_sese_conditions_after): Same.
13405
13406 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13407
13408         * graphite-poly.h: Fix comments and indentation.
13409         * graphite-sese-to-poly.c: Same.
13410         (build_sese_conditions_before): Compute stmt and gbb only when needed.
13411         * tree-chrec.c: Fix comments and indentation.
13412         (tree-ssa-loop-niter.c): Same.
13413
13414 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
13415
13416         PR rtl-optimization/42461
13417         * dce.c (deletable_insn_p): Return true for const or pure calls again.
13418         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
13419
13420 2010-06-09  Jan Hubicka  <jh@suse.cz>
13421
13422         * bitmap.c (bitmap_and): Walk array forward.
13423         (bitmap_and_compl_into): Likewise.
13424         (bitmap_xor): Likewise.
13425         (bitmap_xor_into):  Likewise.
13426         (bitmap_equal_p): Likewise.
13427         (bitmap_intersect_p): Likewise.
13428         (bitmap_intersect_compl_p): Likewise.
13429         (bitmap_ior_and_into): Likewise.
13430         (bitmap_elt_copy): Likewise.
13431         (bitmap_and_compl): Likewise.
13432         (bitmap_elt_ior): Likewise.
13433
13434 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
13435
13436         * opts-common.c (prune_options): Ensure replacement argv array
13437         is correctly terminated by a NULL entry.
13438
13439 2010-06-09  Jan Hubicka  <jh@suse.cz>
13440
13441         * cgraph.h (varpool_first_static_initializer,
13442         varpool_next_static_initializer): Make checking only when
13443         checking enabled.
13444         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
13445         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
13446         gcc_assert to gcc_checking_assert.
13447         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
13448         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
13449         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
13450         op_iter_init_phiuse, op_iter_init_phidef,
13451         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
13452         gcc_checking_assert.
13453         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
13454         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
13455         partition_is_global, live_on_entry, live_on_exit,
13456         live_merge_and_clear): Likewise.
13457         * system.h (gcc_checking_assert): New macro.
13458         * gimple.h (set_bb_seq): Use gcc_checking_assert.
13459
13460 2010-06-09  Jason Merrill  <jason@redhat.com>
13461
13462         * Makefile.in (TAGS): Collect tags info from c-family.
13463
13464 2010-06-09  Jan Hubicka  <jh@suse.cz>
13465
13466         * gimple.h (gcc_gimple_checking_assert): New macro.
13467         (gimple_set_def_ops, gimple_set_use_ops,
13468         gimple_set_vuse, gimple_set_vdef,
13469         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
13470         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
13471         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
13472         gimple_asm_output_op, gimple_asm_output_op_ptr,
13473         gimple_asm_set_output_op, gimple_asm_clobber_op,
13474         gimple_asm_set_clobber_op, gimple_asm_label_op,
13475         gimple_asm_set_label_op, gimple_try_set_kind,
13476         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
13477         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
13478         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
13479         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
13480         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
13481         gimple_omp_for_set_initial, gimple_omp_for_final,
13482         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
13483         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
13484         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
13485         conditional with ENABLE_GIMPLE_CHECKING.
13486         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
13487
13488 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
13489
13490         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
13491         (get_computation_cost_at): Use it.
13492         (determine_use_iv_cost_condition): Likewise.
13493         (determine_iv_cost): Likewise.
13494
13495 2010-06-09  Richard Guenther  <rguenther@suse.de>
13496
13497         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
13498         replace constants.
13499
13500 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
13501
13502         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
13503
13504 2010-06-09  Martin Jambor  <mjambor@suse.cz>
13505
13506         PR tree-optimization/44423
13507         * tree-sra.c (dump_access): Dump also grp_assignment_read.
13508         (analyze_access_subtree): Pass negative allow_replacements to children
13509         if the current type is scalar.
13510
13511 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13512
13513         PR testsuite/42843
13514         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
13515         * doc/plugins.texi (Plugin license check): Update information
13516         on type of plugin_is_GPL_compatible.
13517         * Makefile.in (PLUGINCC): Define as $(COMPILER).
13518         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
13519
13520 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
13521
13522         * config/arm/arm.c (thumb2_reorg): New function.
13523         (arm_reorg): Call it.
13524         * config/arm/thumb2.md (define_peephole2 for flag clobbering
13525         arithmetic operations): Delete.
13526
13527 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
13528
13529         PR target/44067
13530         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
13531         e500v2 target.
13532
13533 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13534
13535         PR plugins/44459
13536         * gcc-plugin.h: Encapsulate all declarations in extern "C".
13537
13538 2010-06-08  Jan Hubicka  <jh@suse.cz>
13539
13540         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
13541         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
13542
13543 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
13544
13545         PR tree-optimization/39874
13546         PR middle-end/28685
13547         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
13548         Declare.
13549         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
13550         same_bool_result_p): New.
13551         (and_var_with_comparison, and_var_with_comparison_1,
13552         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
13553         (or_var_with_comparison, or_var_with_comparison_1,
13554         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
13555         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
13556         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
13557         of combine_comparisons.
13558         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
13559
13560 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
13561
13562         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13563         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13564         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
13565         pdp11_function_value_regno_p): New functions.
13566         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13567         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13568
13569 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
13570
13571         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
13572         Thumb-2 in the MINUS case.
13573
13574 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13575
13576         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
13577
13578         * doc/gty.texi (GTY Options): Document typed GC allocation and
13579         variable_size GTY option.
13580
13581         * ggc-internal.h: New.
13582
13583         * ggc.h: Update copyright year.
13584         (digit_string): Move to stringpool.c.
13585         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
13586         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
13587         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
13588         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
13589         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
13590         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
13591         (ggc_force_collect, ggc_get_size, ggc_statistics)
13592         (ggc_print_common_statistics): Move to ggc-internal.h.
13593         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
13594         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
13595         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
13596         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
13597         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
13598         (ggc_alloc_zone_pass_stat): Remove.
13599         (ggc_internal_alloc_stat, ggc_internal_alloc)
13600         (ggc_internal_cleared_alloc_stat): New.
13601         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
13602         (ggc_internal_vec_alloc_stat)
13603         (ggc_internal_cleared_vec_alloc_stat)
13604         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
13605         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
13606         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
13607         (ggc_cleared_alloc_ptr_array_two_args): New.
13608         (htab_create_ggc, splay_tree_new_ggc): Redefine.
13609         (ggc_splay_alloc): Change the type of the first argument to
13610         enum gt_types_enum.
13611         (ggc_alloc_string): Make macro.
13612         (ggc_alloc_string_stat): New.
13613         (ggc_strdup): Redefine.
13614         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
13615         (ggc_alloc_rtvec_sized): New.
13616         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
13617         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
13618         (ggc_internal_cleared_alloc_zone_stat)
13619         (ggc_internal_zone_alloc_stat)
13620         (ggc_internal_zone_cleared_alloc_stat)
13621         (ggc_internal_zone_vec_alloc_stat)
13622         (ggc_alloc_zone_rtx_def_stat)
13623         (ggc_alloc_zone_tree_node_stat)
13624         (ggc_alloc_zone_cleared_tree_node_stat)
13625         (ggc_alloc_cleared_gimple_statement_d_stat): New.
13626
13627         * ggc-common.c: Include ggc-internal.h.
13628         (ggc_internal_cleared_alloc_stat): Rename from
13629         ggc_alloc_cleared_stat.
13630         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
13631         (ggc_calloc): Remove.
13632         (ggc_cleared_alloc_htab_ignore_args): New.
13633         (ggc_cleared_alloc_ptr_array_two_args): New.
13634         (ggc_splay_alloc): Add obj_type parameter.
13635         (init_ggc_heuristics): Formatting fixes.
13636
13637         * ggc-none.c: Update copyright year.
13638         (ggc_alloc_stat): Rename to ggc_alloc_stat.
13639         (ggc_alloc_cleared_stat): Rename to
13640         ggc_internal_cleared_alloc_stat.
13641         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13642
13643         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
13644         Remove references to ggc_alloc in comments.
13645         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
13646         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
13647         (new_ggc_zone, destroy_ggc_zone): Remove.
13648         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13649
13650         * ggc-zone.c: Include ggc-internal.h.  Remove references to
13651         ggc_alloc in comments.
13652         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
13653         (ggc_internal_alloc_zone_pass_stat): New.
13654         (ggc_internal_cleared_alloc_zone_stat): New.
13655         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
13656         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
13657         (new_ggc_zone, destroy_ggc_zone): Remove.
13658
13659         * stringpool.c: Update copyright year.  Include ggc-internal.h
13660         (digit_vector): Make static.
13661         (digit_string): Moved from ggc.h.
13662         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
13663         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
13664
13665         * Makefile.in (GGC_INTERNAL_H): New.
13666         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
13667         $(GGC_INTERNAL_H) to dependencies.
13668
13669         * gentype.c: Update copyright year.
13670         (walk_type): Accept variable_size GTY option.
13671         (USED_BY_TYPED_GC_P): New macro.
13672         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
13673         whitespace at the end of strings.
13674         (get_type_specifier, variable_size_p): New functions.
13675         (alloc_quantity, alloc_zone): New enums.
13676         (write_typed_alloc_def): New function.
13677         (write_typed_struct_alloc_def): Likewise.
13678         (write_typed_typed_typedef_alloc_def): Likewise.
13679         (write_typed_alloc_defns): Likewise.
13680         (output_typename, write_splay_tree_allocator_def): Likewise.
13681         (write_splay_tree_allocators): Likewise.
13682         (main): Call write_typed_alloc_defns and
13683         write_splay_tree_allocators.
13684
13685         * lto-streamer.h (lto_file_decl_data_ptr): New.
13686
13687         * passes.c (order): Define using cgraph_node_ptr.
13688
13689         * strinpool.c (struct string_pool_data): Declare nested_ptr using
13690         ht_identifier_ptr.
13691
13692         * gimple.h (union gimple_statement_d): Likewise.
13693
13694         * rtl.h (struct rtx_def): Likewise.
13695         (struct rtvec_def): Likewise.
13696
13697         * tree.h (union tree_node): Likewise.
13698
13699         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
13700
13701         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
13702
13703         * tree-scalar-evolution.c (scev_initialize): Likewise.
13704
13705         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
13706
13707         * dwarf2asm.c (dw2_force_const_mem): Likewise.
13708
13709         * omp-low.c (lower_omp_critical): Likewise.
13710
13711         * bitmap.h (struct bitmap_head_def): Update comment to not
13712         reference ggc_alloc.
13713
13714         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
13715
13716         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
13717
13718         * ipa-prop.c (duplicate_ggc_array): Rename to
13719         duplicate_ipa_jump_func_array.  Use typed GC allocation.
13720         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
13721
13722         * gimple.c (gimple_alloc_stat): Use
13723         ggc_alloc_cleared_gimple_statement_d_stat.
13724
13725         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
13726
13727         * tree.c (make_node_stat): Use
13728         ggc_alloc_zone_cleared_tree_node_stat.
13729         (make_tree_vec_stat): Likewise.
13730         (build_vl_exp_stat): Likewise.
13731         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
13732         (make_tree_binfo_stat): Likewise.
13733         (tree_cons_stat): Likewise.
13734
13735         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
13736         (shallow_copy_rtx_stat): Likewise.
13737         (make_node_stat): Likewise.
13738
13739         * lto-symtab.c: Fix comment.
13740
13741         * tree-cfg.c (create_bb): Update comment to not reference
13742         ggc_alloc_cleared.
13743         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
13744
13745         * varpool.c (varpool_node): Use typed GC allocation.
13746         (varpool_extra_name_alias): Likewise.
13747
13748         * varasm.c (emutls_decl): Likewise.
13749         (get_unnamed_section): Likewise.
13750         (get_noswitch_section): Likewise.
13751         (get_section): Likewise.
13752         (get_block_for_section): Likewise.
13753         (build_constant_desc): Likewise.
13754         (create_constant_pool): Likewise.
13755         (force_const_mem): Likewise.
13756
13757         * tree.c (build_vl_exp_stat): Likewise.
13758         (build_real): Likewise.
13759         (build_string): Likewise.
13760         (decl_debug_expr_insert): Likewise.
13761         (decl_value_expr_insert): Likewise.
13762         (type_hash_add): Likewise.
13763         (build_omp_clause): Likewise.
13764
13765         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
13766
13767         * tree-ssa.c (init_tree_ssa): Likewise.
13768
13769         * tree-ssa-structalias.c (heapvar_insert): Likewise.
13770
13771         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
13772
13773         * tree-ssa-loop-niter.c (record_estimate): Likewise.
13774
13775         * tree-ssa-alias.c (get_ptr_info): Likewise.
13776
13777         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
13778
13779         * tree-phinodes.c (allocate_phi_node): Likewise.
13780
13781         * tree-iterator.c (tsi_link_before): Likewise.
13782         (tsi_link_after): Likewise.
13783
13784         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
13785
13786         * tree-dfa.c (create_var_ann): Likewise.
13787
13788         * tree-cfg.c (create_bb): Likewise.
13789
13790         * toplev.c (alloc_for_identifier_to_locale): Likewise.
13791         (general_init): Likewise.
13792
13793         * stringpool.c (stringpool_ggc_alloc): Likewise.
13794         (gt_pch_save_stringpool): Likewise.
13795
13796         * sese.c (if_region_set_false_region): Likewise.
13797
13798         * passes.c (do_per_function_toporder): Likewise.
13799
13800         * optabs.c (set_optab_libfunc): Likewise.
13801         (set_conv_libfunc): Likewise.
13802
13803         * lto-symtab.c (lto_symtab_register_decl): Likewise.
13804
13805         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
13806         (input_eh_region): Likewise.
13807         (input_eh_lp): Likewise.
13808         (make_new_block): Likewise.
13809         (unpack_ts_real_cst_value_fields): Likewise.
13810
13811         * lto-section-in.c (lto_new_in_decl_state): Likewise.
13812
13813         * lto-cgraph.c (input_node_opt_summary): Likewise.
13814
13815         * loop-init.c (loop_optimizer_init): Likewise.
13816
13817         * lambda.h (lambda_vector_new): Likewise.
13818
13819         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13820
13821         * ira.c (update_equiv_regs): Likewise.
13822
13823         * ipa.c (cgraph_node_set_new): Likewise.
13824         (cgraph_node_set_add): Likewise.
13825         (varpool_node_set_new): Likewise.
13826         (varpool_node_set_add): Likewise.
13827
13828         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
13829         (duplicate_ipa_jump_func_array): Likewise.
13830         (ipa_read_node_info): Likewise.
13831
13832         * ipa-cp.c (ipcp_create_replace_map): Likewise.
13833
13834         * integrate.c (get_hard_reg_initial_val): Likewise.
13835
13836         * gimple.c (gimple_alloc_stat): Likewise.
13837         (gimple_build_omp_for): Likewise.
13838         (gimple_seq_alloc): Likewise.
13839         (gimple_copy): Likewise.
13840
13841         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
13842         (gsi_insert_after_without_update): Likewise.
13843
13844         * function.c (add_frame_space): Likewise.
13845         (insert_temp_slot_address): Likewise.
13846         (assign_stack_temp_for_type): Likewise.
13847         (allocate_struct_function): Likewise.
13848         (types_used_by_var_decl_insert): Likewise.
13849
13850         * except.c (init_eh_for_function): Likewise.
13851         (gen_eh_region): Likewise.
13852         (gen_eh_region_catch): Likewise.
13853         (gen_eh_landing_pad): Likewise.
13854         (add_call_site): Likewise.
13855
13856         * emit-rtl.c (get_mem_attrs): Likewise.
13857         (get_reg_attrs): Likewise.
13858         (start_sequence): Likewise.
13859         (init_emit): Likewise.
13860
13861         * dwarf2out.c (new_cfi): Likewise.
13862         (queue_reg_save): Likewise.
13863         (dwarf2out_frame_init): Likewise.
13864         (new_loc_descr): Likewise.
13865         (find_AT_string): Likewise.
13866         (new_die): Likewise.
13867         (add_var_loc_to_decl): Likewise.
13868         (clone_die): Likewise.
13869         (clone_as_declaration): Likewise.
13870         (break_out_comdat_types): Likewise.
13871         (new_loc_list): Likewise.
13872         (loc_descriptor): Likewise.
13873         (add_loc_descr_to_each): Likewise.
13874         (add_const_value_attribute): Likewise.
13875         (tree_add_const_value_attribute): Likewise.
13876         (add_comp_dir_attribute): Likewise.
13877         (add_name_and_src_coords_attributes): Likewise.
13878         (lookup_filename): Likewise.
13879         (store_vcall_insn): Likewise.
13880         (dwarf2out_init): Likewise.
13881
13882         * dbxout.c (dbxout_init): Likewise.
13883
13884         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13885
13886         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13887
13888         * config/score/score7.c (score7_output_external): Likewise.
13889
13890         * config/score/score3.c (score3_output_external): Likewise.
13891
13892         * config/s390/s390.c (s390_init_machine_status): Likewise.
13893
13894         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
13895         (rs6000_init_machine_status): Likewise.
13896         (output_toc): Likewise.
13897
13898         * config/pa/pa.c (pa_init_machine_status): Likewise.
13899         (get_deferred_plabel): Likewise.
13900
13901         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
13902
13903         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
13904
13905         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
13906
13907         * config/mep/mep.c (mep_init_machine_status): Likewise.
13908         (mep_note_pragma_flag): Likewise.
13909
13910         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
13911
13912         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
13913
13914         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
13915
13916         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
13917         (i386_pe_maybe_record_exported_symbol): Likewise.
13918
13919         * config/i386/i386.c (get_dllimport_decl): Likewise.
13920         (ix86_init_machine_status): Likewise.
13921         (assign_386_stack_local): Likewise.
13922
13923         * config/frv/frv.c (frv_init_machine_status): Likewise.
13924
13925         * config/darwin.c (machopic_indirection_name): Likewise.
13926
13927         * config/cris/cris.c (cris_init_machine_status): Likewise.
13928
13929         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
13930
13931         * config/avr/avr.c (avr_init_machine_status): Likewise.
13932
13933         * config/arm/arm.c (arm_init_machine_status): Likewise.
13934
13935         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
13936         (alpha_need_linkage): Likewise.
13937         (alpha_use_linkage): Likewise.
13938
13939         * cgraph.c (cgraph_allocate_node): Likewise.
13940         (cgraph_create_edge_1): Likewise.
13941         (cgraph_create_indirect_edge): Likewise.
13942         (cgraph_add_asm_node): Likewise.
13943
13944         * cfgrtl.c (init_rtl_bb_info): Likewise.
13945
13946         * cfgloop.c (alloc_loop): Likewise.
13947         (rescan_loop_exit): Likewise.
13948
13949         * cfg.c (init_flow): Likewise.
13950         (alloc_block): Likewise.
13951         (unchecked_make_edge): Likewise.
13952
13953         * c-parser.c (c_parse_init): Likewise.
13954         (c_parse_file): Likewise.
13955
13956         * c-decl.c (bind): Likewise.
13957         (record_inline_static): Likewise.
13958         (push_scope): Likewise.
13959         (make_label): Likewise.
13960         (lookup_label_for_goto): Likewise.
13961         (finish_struct): Likewise.
13962         (finish_enum): Likewise.
13963         (c_push_function_context): Likewise.
13964
13965         * bitmap.c (bitmap_element_allocate): Likewise.
13966         (bitmap_gc_alloc_stat): Likewise.
13967
13968         * alias.c (record_alias_subset): Likewise.
13969         (init_alias_analysis): Likewise.
13970
13971 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
13972
13973         * fold-const.c (fold_comparison): Remove redundant parenthesis.
13974         * tree-inline.c (expand_call_inline): Pass translated return value of
13975         cgraph_inline_failed_string to diagnostic function.
13976
13977 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
13978             Shujing Zhao  <pearly.zhao@oracle.com>
13979
13980         PR c/37724
13981         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
13982         implicit bad conversions is initialization.
13983         (error_init): Use gmsgid instead of msgid for argument name and change
13984         the call for error.
13985         (pedwarn_init): Use gmsgid instead of msgid for argument name and
13986         change the call for pedwarn.
13987         (warning_init): Use gmsgid instead of msgid for argument name and
13988         change the call for warning.
13989
13990 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
13991
13992         * config/mips/mips-protos.h (mips_print_operand): Delete.
13993         (mips_print_operand_address): Delete.
13994         * config/mips/mips.h (mips_print_operand_punct): Delete.
13995         (PRINT_OPERAND): Delete.
13996         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13997         (PRINT_OPERAND_ADDRESS): Delete.
13998         * config/mips/mips.c (mips_print_operand_punct): Make static.
13999         (mips_print_operand_address): Make static.
14000         (mips_print_operand): Make static.  Call
14001         mips_print_operand_punct_valid_p.
14002         (mips_print_operand_punct_valid_p): New function.
14003         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14004         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14005
14006 2010-06-07  Jan Hubicka  <jh@suse.cz>
14007
14008         PR middle-end/44454
14009         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
14010         are allocated.
14011
14012 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14013
14014         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
14015         name of RECORD.
14016
14017 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14018
14019         * doc/sourcebuild.texi (Effective-Target Keywords, Other
14020         attributes): Document gas.
14021
14022 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
14023
14024         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
14025         <TYPE_LEA>: Split instruction.
14026         <default>: Remove alternative 2 handling.
14027         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
14028         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
14029         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
14030
14031         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
14032         (ashift_zext lea splitter): Use DImode for multiplication.
14033
14034         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
14035         to generate addition.
14036
14037 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
14038
14039         * common.opt (fira-verbose): Use Var.
14040         (fpcc-struct-return): Use Init instead of VarExists.
14041         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
14042         toplev.c.
14043         * flags.h (flag_signed_char, flag_short_enums,
14044         flag_pcc_struct_return, flag_ira_verbose,
14045         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
14046         * toplev.c (flag_detailed_statistics, flag_signed_char,
14047         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
14048         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
14049         * toplev.h (flag_crossjumping, flag_if_conversion,
14050         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
14051         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
14052         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
14053         flag_cprop_registers, time_report, flag_ira_loop_pressure,
14054         flag_ira_coalesce, flag_ira_move_spills,
14055         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
14056
14057 2010-06-07  Jan Hubicka  <jh@suse.cz>
14058
14059         * df-core.c (df_analyze_problem): Do verification after allocation.
14060
14061         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
14062         (df_lr_alloc): Initialize problem data; move bitmaps to
14063         lr_bitmaps obstack.
14064         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
14065         (df_lr_verify_solution_start): Do not initialize problem data;
14066         allocate bitmaps in lr_bitmaps.
14067         (df_lr_verify_solution_end): Do not free problem data.
14068
14069 2010-06-07  Jan Hubicka  <jh@suse.cz>
14070
14071         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
14072         if caller is noreturn.
14073         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
14074         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
14075         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
14076         * ipa-pure-const.c (check_decl): Add IPA parameter.
14077         (state_from_flags): New function.
14078         (better_state, worse_state): New functions.
14079         (check_call): When in IPA mode, do not care about callees.
14080         (check_load, check_store): Update.
14081         (check_ipa_load, check_ipa_store): New.
14082         (check_stmt): When in IPA mode, use IPA checkers.
14083         (analyze_function): Use state_from_flags.
14084         (propagate): Check indirect edges and references.
14085
14086 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
14087
14088         PR rtl-optimization/44404
14089         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
14090         of count_occurrences to see if it's safe to modify mem_insn.
14091
14092 2010-06-07  Richard Guenther  <rguenther@suse.de>
14093
14094         * gimplify.c (gimplify_cleanup_point_expr): For empty body
14095         and EH-only cleanup drop the cleanup instead of inserting it
14096         unconditionally.
14097
14098 2010-06-07  Ira Rosen  <irar@il.ibm.com>
14099
14100         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
14101         documentation.
14102         * targhooks.c (default_builtin_vectorization_cost): New function.
14103         * targhooks.h (default_builtin_vectorization_cost): Declare.
14104         * target.h (enum vect_cost_for_stmt): Define.
14105         (builtin_vectorization_cost): Change argument and comment.
14106         * tree-vectorizer.h: Remove cost model macros.
14107         * tree-vect-loop.c: Include target.h.
14108         (vect_get_cost): New function.
14109         (vect_estimate_min_profitable_iters): Replace cost model macros with
14110         calls to vect_get_cost.
14111         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
14112         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
14113         default implementation.
14114         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
14115         calls to target hook builtin_vectorization_cost.
14116         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
14117         Likewise.
14118         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
14119         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
14120         implementation to return costs.
14121         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
14122         * config/spu/spu.h: Remove vectorizer cost model macros.
14123         * config/i386/i386.h: Likewise.
14124         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
14125         a call to target hook builtin_vectorization_cost.
14126
14127 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
14128
14129         PR target/44319
14130         * config/i386/i386.c (override_options): Turn zee pass on for level 2
14131         and above and defer till target is known.
14132         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
14133         turn off otherwise.
14134
14135 2010-05-25  Jan Hubicka  <jh@suse.cz>
14136
14137         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
14138         (df_compact_blocks): Likewise.
14139         * df.h (struct df): Turn hardware_regs_used,
14140         regular_block_artificial_uses, eh_block_artificial_uses,
14141         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
14142         bitmap_head.
14143         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
14144         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
14145         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
14146         df_scan_blocks, df_insn_delete, df_insn_rescan,
14147         df_insn_rescan_debug_internal, df_insn_rescan_all,
14148         df_process_deferred_rescans, df_process_deferred_rescans,
14149         df_notes_rescan, df_get_call_refs, df_get_call_refs,
14150         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
14151         df_record_entry_block_defs, df_record_exit_block_uses,
14152         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
14153         df_scan_verify): Update.
14154
14155 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
14156
14157         PR c++/44188
14158         * c-common.c (is_typedef_decl): Move this definition ...
14159         * tree.c (is_typedef_decl): ... here.
14160         (typdef_variant_p): Move definition here from cp/tree.c.
14161         * c-common.h (is_typedef_decl): Move this declaration ...
14162         * tree.h (is_typedef_decl): ... here.
14163         (typedef_variant_p): Move declaration here from cp/cp-tree.h
14164         * dwarf2out.c (is_naming_typedef_decl): New function.
14165         (gen_tagged_type_die): Split out of ...
14166         (gen_type_die_with_usage): ... this function. When an anonymous
14167         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14168         is emitted for the typedef.
14169         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
14170         anonymous tagged types.
14171
14172 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14173
14174         PR c/20000
14175         * c-decl.c (grokdeclarator): Delete warning.
14176
14177 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14178
14179         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
14180         newly built CALL_EXPR.
14181         * tree-profile.c (tree_profiling): Don't profile functions produced
14182         for built-in stuff.
14183
14184 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
14185
14186         PR bootstrap/44427
14187         PR bootstrap/44428
14188         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
14189         endianness-independent.
14190
14191 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
14192
14193         * c-common.c: Move to c-family/.
14194         * c-common.def: Likewise.
14195         * c-common.h: Likewise.
14196         * c-cppbuiltin.c: Likewise.
14197         * c-dump.c: Likewise.
14198         * c-format.c: Likewise.
14199         * c-format.h : Likewise.
14200         * c-gimplify.c: Likewise.
14201         * c-lex.c: Likewise.
14202         * c-omp.c: Likewise.
14203         * c.opt: Likewise.
14204         * c-opts.c: Likewise.
14205         * c-pch.c: Likewise.
14206         * c-ppoutput.c: Likewise.
14207         * c-pragma.c: Likewise.
14208         * c-pragma.h: Likewise.
14209         * c-pretty-print.c: Likewise.
14210         * c-pretty-print.h: Likewise.
14211         * c-semantics.c: Likewise.
14212         * stub-objc.c: Likewise.
14213
14214         * gengtype.c (get_file_langdir): Special-case files in c-family/.
14215         (get_output_file_with_visibility): Fix name for c-common.h.
14216         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
14217
14218         * c-tree.h: Update include path for moved files.
14219         * c-lang.c: Likewise.
14220         * c-lang.h: Likewise.
14221         * c-parser.c: Likewise.
14222         * c-convert.c: Likewise.
14223         * c-decl.c: Likewise.
14224         * c-objc-common.c: Likewise.
14225         * configure.ac: Make sure c-family/ exists in the build directory.
14226         * configure: Regenerate.
14227         * Makefile.in: Update paths for moved files.  Regroup files per
14228         location and update dependencies.  Move generated_files down after
14229         ALL_GTFILES_H.
14230
14231         * config/spu/spu-c.c: Update paths for moved files.
14232         * config/mep/mep-pragma.c: Likewise.
14233         * config/darwin-c.c: Likewise.
14234         * config/i386/msformat-c.c: Likewise.
14235         * config/i386/i386-c.c: Likewise.
14236         * config/avr/avr-c.c: Likewise.
14237         * config/sol2-c.c: Likewise.
14238         * config/ia64/ia64-c.c: Likewise.
14239         * config/rs6000/rs6000-c.c: Likewise.
14240         * config/arm/arm.c: Likewise.
14241         * config/arm/arm-c.c: Likewise.
14242         * config/h8300/h8300.c: Likewise.
14243         * config/v850/v850-c.c: Likewise.
14244
14245         * config/t-darwin: Fix dependencies for moved files.
14246         * config/t-sol2: Fix dependencies for moved files.
14247         * config/mep/t-mep: Fix dependencies for moved files.
14248         * config/ia64/t-ia64: Fix dependencies for moved files.
14249         * config/rs6000/t-rs6000: Fix dependencies for moved files.
14250         * config/v850/t-v850: Fix dependencies for moved files.
14251         * config/v850/t-v850e: Fix dependencies for moved files.
14252
14253         * config/m32c/m32c-pragma.c
14254
14255         * po/exgettext: Look in c-family/ also.
14256
14257 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14258
14259         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
14260         (mark_control_dependent_edges_necessary): Call it instead of marking
14261         the last statement manually.
14262         (propagate_necessity): Likewise.
14263
14264 2010-06-05  Jan Hubicka  <jh@suse.cz>
14265
14266         * basic-block.h (compute_dominance_frontiers): Updated.
14267         (compute_idf): Likewise.
14268
14269         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
14270         for dominance frontiers.
14271         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
14272         (insert_updated_phi_nodes_for): Likewise.
14273         (update_ssa): Likewise.
14274         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14275         (compute_dominance_frontiers): Likewise.
14276         (compute_idf): Likewise.
14277         * df-problems.c (df_md_local_compute): Likewise.
14278
14279 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
14280
14281         * target.h (struct gcc_target): Add memory_move_cost field.
14282         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
14283         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
14284         * targhooks.c (default_memory_move_cost): New function.
14285         * targhooks.h (default_memory_move_cost): Declare function.
14286         * reload.h (memory_move_cost): Declare.
14287         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14288         * reginfo.c (memory_move_cost): New function.
14289         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14290         * ira.h (ira_memory_move_cost): Update comment.
14291         * ira.c (ira_memory_move_cost): Update comment.
14292         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
14293         with memory_move_cost.
14294         * postreload.c (reload_cse_simplify_set): (Ditto.).
14295         * reload1.c (choose_reload_regs): (Ditto.).
14296         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
14297         (MEMORY_MOVE_COST):  Revise documentation.
14298
14299         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
14300         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
14301         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
14302         type of 'in' argument to bool.
14303         (TARGET_MEMORY_MOVE_COST): Define.
14304
14305 2010-06-05  Jan Hubicka  <jh@suse.cz>
14306
14307         * ipa-pure-const.c (propagate): Fix typo in handling of functions
14308         that cannot return.  Be more careful when merging the results with
14309         previously known ones.
14310
14311 2010-06-05  Matthias Klose  <doko@ubuntu.com>
14312
14313         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
14314         function to add the -iplugindir option.
14315         (find_plugindir_spec_function): Add new declaration and function.
14316         (static_spec_func): Use it for "find-plugindir".
14317
14318 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
14319
14320         PR c++/44361
14321         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
14322         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
14323         statement expression.
14324
14325 2010-06-05  Jan Hubicka  <jh@suse.cz>
14326
14327         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
14328         (df_rd_problem_data): Convert sparse_invalidated_by_call,
14329         dense_invalidated_by_call to bitmap head.
14330         (df_rd_alloc, df_rd_bb_local_compute_process_def,
14331         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
14332         df_rd_start_dump, df_lr_verify_transfer_functions,
14333         df_live_verify_transfer_functions, df_chain_create_bb,
14334         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
14335         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
14336         df_simulate_one_insn_forwards, df_md_alloc,
14337         df_md_bb_local_compute_process_def,
14338         df_md_bb_local_compute_process_def, df_md_local_compute,
14339         df_md_transfer_function df_md_free): Update.
14340
14341 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
14342
14343         PR c/44322
14344         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
14345         target type for ADDR_EXPR; require no changes to qualifiers except
14346         for function types.
14347         * c-tree.h (c_build_type_variant): Remove.
14348
14349 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14350
14351         * genautomata.c (get_excl_set): Do work per element, not per char.
14352         (check_presence_pattern_sets): Similar.
14353         (check_absence_pattern_sets): Similar.
14354
14355 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14356
14357         * genautomata.c (curr_state_pass_num): Delete.
14358         (min_issue_delay_pass_states): Delete.
14359         (min_issue_delay): Delete.
14360         (initiate_min_issue_delay_pass_states): Delete.
14361         (output_min_issue_delay_table): Compute min_issue_delay_vect
14362         using a breadth-first search variant.
14363         (output_tables): Don't call initiate_min_issue_delay_pass_states.
14364
14365 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14366
14367         PR boostrap/44421
14368         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
14369         (df_byte_lr_bb_local_compute): Likewise.
14370
14371 2010-06-03  Jason Merrill  <jason@redhat.com>
14372
14373         Implement noexcept operator (5.3.7)
14374         * c-common.c (c_common_reswords): Add noexcept.
14375         * c-common.h (enum rid): Add RID_NOEXCEPT.
14376
14377 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
14378
14379         * config/darwin-driver.c (darwin_default_min_version): Use
14380         GCC-specific formats in diagnostics.
14381         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
14382         diagnostics.
14383         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
14384         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
14385         eval_spec_function, handle_braces, process_brace_body, main,
14386         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
14387         getenv_spec_function, compare_version_strings,
14388         version_compare_spec_function): Use GCC-specific formats in
14389         diagnostics.
14390
14391 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14392
14393         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
14394         that operand 0 and operand 1 are equal.
14395         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
14396         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
14397         and operand 1 are equal.
14398         <default>: Ditto.  Remove ??? comment.
14399         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
14400         and operand 1 are equal.
14401         <default>: Ditto.  Remove ??? comment.
14402         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
14403         are equal.
14404         (*add<mode>_4) <default>: Ditto.
14405         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
14406
14407 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
14408
14409         * config/i386/i386-protos.h (ix86_print_operand): Declare.
14410         * config/i386/i386.c (ix86_print_operand): Make non-static.
14411         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
14412         * output.h (output_operand): Declare.
14413         * final.c (output_operand): Make non-static.
14414
14415 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
14416
14417         PR rtl-optimization/44013
14418         * sched-deps.c (add_dependence_list_and_free): Don't free lists
14419         when processing debug insns.
14420
14421         PR debug/41371
14422         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
14423         recursing.  Check that recursion is bounded.  Rename inner var
14424         to avoid hiding incoming argument.
14425
14426 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14427
14428         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
14429         operands[2] == 255.
14430         (*addqi_3): Ditto.
14431         (*addqi_4): Ditto.
14432         (*addqi_5): Ditto.
14433         (*addqi_ext_1_rex64): Ditto.
14434         (*addqi_ext_1): Ditto.
14435
14436         (*addqi_4): Check for incdec_operand in QImode.
14437
14438         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
14439         using SWI mode iterator.
14440         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
14441         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
14442         mode iterator.
14443         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
14444         using SWI mode iterator.
14445
14446 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14447
14448         PR c/25880
14449         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
14450         * c-format.c (gcc_diag_flag_specs): Add hash.
14451         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
14452         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
14453         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
14454         pp_c_cv_qualifiers. Handle qualifiers spelling here.
14455         (pp_c_type_qualifier_list): Call the function above.
14456         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
14457         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
14458         (WARN_FOR_QUALIFIERS): New macro.
14459         (convert_for_assignment): Use it.
14460
14461 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
14462
14463         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
14464
14465 2010-06-04  Jan Hubicka  <jh@suse.cz>
14466
14467         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
14468         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
14469         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
14470         DF_BYTE_LR_OUT): Update for embedded bitmaps.
14471         * fwprop.c (single_def_use_enter_block): Likewise.
14472         * ddg.c (create_ddg_dep_from_intra_loop_link,
14473         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
14474         * loop-iv.c (latch_dominating_def): Likewise.
14475         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
14476         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
14477         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
14478         df_rd_transfer_function, df_rd_top_dump,
14479         df_rd_bottom_dump): Update.
14480         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
14481         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
14482         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
14483         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
14484         df_lr_verify_solution_start, df_lr_verify_solution_end,
14485         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
14486         df_live_free_bb_info, df_live_alloc, df_live_reset,
14487         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
14488         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
14489         df_live_verify_solution_start, df_live_verify_solution_end,
14490         df_live_verify_transfer_functions, df_chain_create_bb,
14491         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
14492         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14493         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14494         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
14495         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
14496         df_byte_lr_transfer_function, df_byte_lr_top_dump,
14497         df_byte_lr_bottom_dump, df_create_unused_note,
14498         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
14499         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
14500         df_md_transfer_function, df_md_init, df_md_confluence_0,
14501         df_md_confluence_n,
14502         df_md_top_dump, df_md_bottom_dump): Update.
14503         (struct df_lr_problem_data): Embedd bitmap headers.
14504
14505 2010-06-04  Jan Hubicka  <jh@suse.cz>
14506
14507         * dce.c (dce_process_block): Do not re-scan already marked
14508         instructions.
14509
14510 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
14511
14512         PR rtl-optimization/39871
14513         PR rtl-optimization/40615
14514         PR rtl-optimization/42500
14515         PR rtl-optimization/42502
14516         * ira.c (init_reg_equiv_memory_loc: New function.
14517         (ira): Call it twice.
14518         * reload.h (calculate_elim_costs_all_insns): Declare.
14519         * ira-costs.c: Include "reload.h".
14520         (regno_equiv_gains): New static variable.
14521         (init_costs): Allocate it.
14522         (finish_costs): Free it.
14523         (ira_costs): Call calculate_elim_costs_all_insns.
14524         (find_costs_and_classes): Take estimated elimination costs
14525         into account.
14526         (ira_adjust_equiv_reg_cost): New function.
14527         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
14528         * reload1.c (init_eliminable_invariants, free_reg_equiv,
14529         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
14530         (elim_bb): New static variable.
14531         (reload): Move code out of here into init_eliminable_invariants and
14532         free_reg_equiv.  Call them.
14533         (calculate_elim_costs_all_insns): New function.
14534         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
14535         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
14536         but call note_reg_elim_costly if we turned a valid memory address
14537         into an invalid one.
14538         * Makefile.in (ira-costs.o): Depend on reload.h.
14539
14540 2010-06-04  Julian Brown  <julian@codesourcery.com>
14541
14542         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
14543         for pool ranges.
14544
14545 2010-06-04  Richard Guenther  <rguenther@suse.de>
14546
14547         PR lto/41584
14548         * cgraph.h (struct varpool_node): Add lto_file_data field.
14549         * lto-cgraph.c (input_varpool_node): Initialize it.
14550
14551 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14552
14553         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
14554         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
14555         predicate in "type" attribute calculation.
14556         (*addsi_1_zext): Ditto.
14557         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
14558         (*addsi_2_zext): Ditto.
14559         (*add<mode>_3): Ditto.
14560         (*addsi_3_zext): Ditto.
14561         (*add<mode>_5): Ditto.
14562
14563 2010-06-03  Jan Hubicka  <jh@suse.cz>
14564
14565         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
14566         of bitmap_bit_p.
14567         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14568
14569 2010-06-03  Jan Hubicka  <jh@suse.cz>
14570
14571         * df-problems.c (df_create_unused_note, df_note_bb_compute):
14572         micro-optimize the checks when to add new note.
14573
14574 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
14575
14576         * final.c (output_asm_insn): Call
14577         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
14578         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
14579         (output_address): Call targetm.asm_out.print_operand_address.
14580         Update comments.
14581         * target.h (struct gcc_target): Add print_operand,
14582         print_operand_address, and print_operand_punct_valid_p fields.
14583         * targhooks.h (default_print_operand): Declare.
14584         (default_print_operand_address): Declare.
14585         (default_print_operand_punct_valid_p): Declare.
14586         * targhooks.c (default_print_operand): Define.
14587         (default_print_operand_address): Define.
14588         (default_print_operand_punct_valid_p): Define.
14589         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
14590         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
14591         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
14592         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
14593         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
14594         * vmsdbgout.c (addr_const_to_string): Update comment.
14595         * config/i386/i386.c (print_operand): Rename to...
14596         (ix86_print_operand): ...this.  Make static.
14597         (print_operand_address): Rename to...
14598         (ix86_print_operand_address): ...this.  Make static.  Call
14599         ix86_print_operand instead of PRINT_OPERAND.
14600         (ix86_print_operand_punct_valid_p): New function.
14601         (TARGET_PRINT_OPERAND): Define.
14602         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14603         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14604         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
14605         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14606         (PRINT_OPERAND): Delete.
14607         (PRINT_OPERAND_ADDRESS): Delete.
14608         * config/i386/i386-protos.h (print_operand): Delete prototype.
14609         (print_operand_address): Delete prototype.
14610
14611 2010-06-03  Richard Guenther  <rguenther@suse.de>
14612
14613         PR tree-optimization/44403
14614         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14615         Preserve pointer qualifiers.
14616         (vect_create_data_ref_ptr): Likewise.
14617
14618 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14619
14620         PR c++/44294
14621         * defaults.h (MAX_FIXED_MODE_SIZE): New.
14622
14623         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
14624
14625 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
14626
14627         PR debug/44375
14628         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
14629         return false if merging the bbs would lead to goto_locus
14630         location being lost from the IL.
14631
14632 2010-06-03  Jan Hubicka  <jh@suse.cz>
14633             Jakub Jelinek  <jakub@redhat.com>
14634
14635         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
14636         set->regs[i] is NULL or has just one entry.
14637
14638 2010-06-03  Jan Hubicka  <jh@suse.cz>
14639
14640         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
14641         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
14642
14643 2010-06-03  Paul Brook  <paul@codesourcery.com>
14644
14645         * config/arm/arm.c (FL_TUNE): Define.
14646         (arm_default_cpu, arm_cpu_select): Remove.
14647         (all_cores): Populate core field.
14648         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
14649         (arm_find_cpu): New function.
14650         (arm_handle_option): Lookup cpu/architecture names.
14651         (arm_override_options): Cleanup mcpu/march/mtune handling.
14652         (arm_file_start): Ditto.
14653
14654 2010-06-03  Alan Modra  <amodra@gmail.com>
14655
14656         PR target/44169
14657         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
14658         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
14659         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
14660         (rs6000_emit_load_toc_table): Likewise.
14661
14662 2010-06-02  Jan Hubicka  <jh@suse.cz>
14663
14664         * passes.c (init_optimization_passes): Put ipa reference
14665         after ipa pure-const.
14666
14667 2010-06-02  Jan Hubicka  <jh@suse.cz>
14668
14669         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
14670         calls_read_all and calls_write_all.
14671         (get_reference_optimization_summary): Fix formatting.
14672         (is_proper_for_analysis): Check that decl is not readonly.
14673         (propagate_bits): Check CONST/PURE/noreturn flags.
14674         (ipa_init): Move all_module_statics to optimization_summary_obstack.
14675         (analyze_function): Ignore indirect edges.
14676         (copy_global_bitmap): For all module statics, do nothing.
14677         (generate_summary): Do not print calls_read_all/calls_write_all.
14678         (read_write_all_from_decl): Take node as argument; check
14679         cgraph_node_cannot_return.
14680         (propagate): Reorganize read_all/write_all computation;
14681         check indirect edges; check ecf flags; use all_module_statics
14682         in the results; do not free all_module_statics.
14683         (stream_out_bitmap): Handle all_module_statics.
14684         (ipa_reference_write_optimization_summary): Likewise; use
14685         varpool/cgraph encoders to get boundaries.
14686         (ipa_reference_read_optimization_summary): Read in all_module_statics;
14687         use it when possible.
14688
14689 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14690
14691         PR target/44218
14692         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
14693         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
14694
14695         * doc/extend.texi (powerpc builtins): Document vec_recip,
14696         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
14697
14698         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
14699         (rs6000_emit_swrsqrt): Ditto.
14700         (rs6000_emit_swdivsf): Delete.
14701         (rs6000_emit_swdivdf): Ditto.
14702         (rs6000_emit_swrsqrtsf): Ditto.
14703
14704         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
14705         describe the reciprocal estimate support for each type.
14706         (recip_options): Map -mrecip=<opt> into option bits.
14707         (gen_2arg_fn_t): New typedef for binary rtx gen function.
14708         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
14709         reciprocal estimate instructions.
14710         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
14711         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
14712         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
14713         cost information if -mdebug=cost or -mdebug=reg.
14714         (rs6000_override_options): Set -mrecip-precision for power6, and
14715         power7 machines.  If -mvsx or -mdfp, enable various options that
14716         came in previous instruction set ISAs, unless the option was
14717         explicitly disabled by the command line option.  Parse
14718         -mrecip=<opt> options.
14719         (rs6000_builtin_vectorized_function): Add support for vectorizing
14720         the reciprocal estimate builtins and expansions.
14721         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
14722         (bdesc_2arg): Add reciprocal estimate builtins.
14723         (bdesc_1arg): Add reciprocal square root estimate builtins.
14724         (rs6000_expand_builtin): Rewrite to use a switch statement,
14725         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
14726         (rs6000_init_builtins): Create declarations for reciprocal
14727         estimate builtins.
14728         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
14729         sized, prefer traditional floating point registers, if integer
14730         vector types, prefer altivec registers.  Don't actually look at
14731         the memory address any more.
14732         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
14733         builtins.
14734         (rs6000_load_constant_and_splat): New helper function to load up
14735         the constant for reciprocal estimate instructions.
14736         (rs6000_emit_madd): New helper function for generating
14737         multiply/add type instructions, based on the current switches.
14738         (rs6000_emit_msub): Ditto.
14739         (rs6000_emit_mnsub): Ditto.
14740         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
14741         replace a divide with a reciprocal estimate and fixup, adding
14742         support for machines with high precision and vectors.
14743         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
14744         low precision machines.
14745         (rs6000_emit_swdiv): New common function to be called to replace a
14746         division with reciprocal estimate and fixup.
14747         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
14748         for double and vector types.  Add support for high precision machines.
14749
14750         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
14751         the reciprocal estimate instructions can be generated.
14752         (TARGET_FRE): Ditto.
14753         (TARGET_FRSQRTES): Ditto.
14754         (TARGET_FRSQRTE): Ditto.
14755         (RS6000_RECIP_*): New macros for reciprocal estimate support.
14756
14757         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
14758         square root estimate on vectors.
14759         (re<mode>2): New insn for reciprocal division estimate on vectors.
14760
14761         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
14762         New builtin.
14763         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
14764         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
14765         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
14766         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
14767         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
14768         (RS6000_BUILTIN_RSQRT): Ditto.
14769         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
14770         floating point builtin.
14771
14772         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14773         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
14774         __RECIP_PRECISION__ based on the command line switches.
14775         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
14776
14777         * config/rs6000/rs6000.opt (-mrecip): Document add support for
14778         replacing division instructions with reciprocal estimate and fixup.
14779         (-mrecip=<opt>): New option.
14780         (-mrecip-precision): Ditto.
14781
14782         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
14783         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
14784         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
14785         precision scalar.
14786
14787         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
14788         (UNSPEC_VREFP): Ditto.
14789         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
14790         conterparts with regard to support of -mno-fused-madd and -ffast-math.
14791         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
14792         reciprocal estimate instructions to be generated.
14793         (altivec_vrefp): Ditto.
14794
14795         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
14796         estimate support.
14797         (rreg): New mode attribute for reciprocal estimate support.
14798         (recip<mode>3): New insn for division using reciprocal estimate
14799         and fixup builtins.
14800         (divide define_split): New define_split to convert floating point
14801         division to use reciprocal estimate if the user used the
14802         appropriate options and the split is run when we can add new
14803         pseudo registers for the fixup.
14804         (rsqrt<mode>2): New insn for reciprocal square root support.
14805         (recipsf3): Move into recip<mode>3.
14806         (recipdf3): Ditto.
14807         (fres): Use TARGET_FRES.
14808         (rsqrtsf2): Move into rsqrt<mode>2.
14809         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
14810         (copysignsf3): Add support for VSX.
14811         (fred): Use TARGET_FRE.
14812         (fred_fpr): Ditto.
14813         (rsqrtdf_internal1): New function for frsqrte instruciton.
14814
14815         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
14816         (vec_rsqrt): Ditto.
14817
14818 2010-06-03  Richard Guenther  <rguenther@suse.de>
14819
14820         PR middle-end/44291
14821         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
14822         (set_user_assembler_libfunc): Likewise.
14823
14824 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14825
14826         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
14827         defaults.h.
14828         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
14829         to defaults.h
14830         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
14831         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
14832         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
14833         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
14834         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
14835         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
14836         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
14837         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
14838         * defaults.h: Updated for above mentioned changes.
14839
14840 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
14841
14842         * c-common.c: Remove header include of tm_p.h.
14843         * Makefile.in (c-common.o): Remove TM_P_H dependency.
14844
14845 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
14846
14847         * tree.h (struct tree_decl_map): New type.
14848         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
14849         (tree_decl_map_hash): New prototype.
14850         (debug_expr_for_decl, value_expr_for_decl): Change into
14851         tree_decl_map hashtab from tree_map.
14852         (init_ttree): Adjust initialization.
14853         (tree_decl_map_hash): New function.
14854         (decl_debug_expr_lookup, decl_debug_expr_insert,
14855         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
14856
14857 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14858
14859         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
14860         linker emulations.
14861         * configure: Regenerate.
14862         * config.in: Regenerate.
14863
14864         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
14865         (X86_64_EMULATION): Define.
14866         (TARGET_LD_EMULATION): Use them.
14867
14868         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
14869         (SPARC64_EMULATION): Define.
14870         (LINK_ARCH_SPEC): Use them.
14871
14872 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14873
14874         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
14875         smallest_mode_for_size for computing the precision types of new
14876         graphite IVs.  Do not call lang_hooks.types.type_for_size.
14877
14878 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14879
14880         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
14881         information.
14882         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
14883
14884 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14885
14886         PR middle-end/44363
14887         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
14888         return false instead.
14889
14890 2010-06-02  Jan Hubicka  <jh@suse.cz>
14891
14892         PR middle-end/44295
14893         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
14894         create new cgraph node to check callee.
14895
14896 2010-06-02  Richard Guenther  <rguenther@suse.de>
14897
14898         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
14899
14900 2010-06-02  Richard Guenther  <rguenther@suse.de>
14901
14902         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
14903         (lto_wrapper_cleanup): ... this.  Do not exit.
14904         (fatal): Adjust.  Exit here.
14905         (fatal_perror): Likewise.
14906         (fatal_signal): New function.
14907         (main): Set up signal handlers to cleanup temporary files.
14908         * Makefile.in (lto-wrapper.o): Adjust dependencies.
14909
14910 2010-06-02  Richard Guenther  <rguenther@suse.de>
14911
14912         PR tree-optimization/44377
14913         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
14914
14915 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14916
14917         * config/s390/2097.md (z10_fhex): Remove insn reservation.
14918         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
14919         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
14920         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
14921         instruction.
14922         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
14923
14924 2010-06-02  Jan Hubicka  <jh@suse.cz>
14925
14926         * bitmap.c (bitmap_descriptor): Add search_iter.
14927         (bitmap_find_bit): Increment it.
14928         (print_statistics): Print it.
14929
14930 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
14931
14932         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
14933         instead of gimple_build_call_vec.  Delete unnecessary local variable.
14934
14935 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14936
14937         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
14938         change from yesterday.
14939
14940 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14941
14942         * c-ada-spec.c: Clean up redundant includes.
14943
14944 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
14945
14946         * gimplify.c: Do not include except.h and optabs.h.
14947         (gimplify_body): Do not initialize RTL profiling.
14948         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
14949         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
14950         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
14951         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
14952         langhooks.h.
14953
14954         * tree-pretty-print.h: Include pretty-print.h.
14955         * gimple-pretty-print.h: Include pretty-print.h.
14956
14957         * tree-pretty-print.c: Do not include diagnostic.h.
14958         * tree-vrp.c: Likewise.
14959         * tree-tailcall.c: Likewise
14960         * tree-scalar-evolution.c: Likewise
14961         * tree-ssa-dse.c: Likewise
14962         * tree-chrec.c: Likewise
14963         * tree-ssa-sccvn.c: Likewise
14964         * tree-ssa-copyrename.c: Likewise
14965         * tree-nomudflap.c: Likewise
14966         * tree-call-cdce.c: Likewise
14967         * tree-stdarg.c: Likewise
14968         * tree-ssa-math-opts.c: Likewise
14969         * tree-nrv.c: Likewise
14970         * tree-ssa-sink.c: Likewise
14971         * tree-browser.c: Likewise
14972         * tree-ssa-loop-ivcanon.c: Likewise
14973         * tree-ssa-loop.c: Likewise
14974         * tree-parloops.c: Likewise
14975         * tree-ssa-address.c: Likewise
14976         * tree-ssa-ifcombine.c: Likewise
14977         * tree-if-conv.c: Likewise
14978         * tree-data-ref.c: Likewise
14979         * tree-affine.c: Likewise
14980         * tree-ssa-phiopt.c: Likewise
14981         * tree-ssa-coalesce.c: Likewise
14982         * tree-ssa-pre.c: Likewise
14983         * tree-ssa-live.c: Likewise
14984         * tree-predcom.c: Likewise
14985         * tree-ssa-forwprop.c: Likewise
14986         * tree-ssa-dce.c: Likewise
14987         * tree-ssa-ter.c: Likewise
14988         * tree-ssa-loop-prefetch.c: Likewise
14989         * tree-optimize.c: Likewise
14990         * tree-ssa-phiprop.c: Likewise
14991         * tree-object-size.c: Likewise
14992         * tree-outof-ssa.c: Likewise
14993         * tree-ssa-structalias.c: Likewise
14994         * tree-switch-conversion.c: Likewise
14995         * tree-ssa-reassoc.c: Likewise
14996         * tree-ssa-operands.c: Likewise
14997         * tree-vectorizer.c: Likewise
14998         * tree-vect-data-refs.c: Likewise
14999         * tree-vect-generic.c: Likewise
15000         * tree-vect-stmts.c: Likewise
15001         * tree-vect-patterns.c: Likewise
15002         * tree-vect-slp.c: Likewise
15003         * tree-vect-loop.c: Likewise
15004         * tree-ssa-loop-ivopts.c: Likewise
15005         * tree-ssa-loop-im.c: Likewise
15006         * tree-ssa-loop-niter.c: Likewise
15007         * tree-ssa-loop-unswitch.c: Likewise
15008         * tree-ssa-loop-manip.c: Likewise
15009         * tree-ssa-loop-ch.c: Likewise
15010         * tree-dump.c: Likewise
15011         * tree-complex.c: Likewise
15012
15013         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
15014         * tree-ssa-uninit.c: Likewise
15015         * tree-ssa-threadupdate.c: Likewise
15016         * tree-ssa-uncprop.c: Likewise
15017         * tree-ssa-ccp.c: Likewise
15018         * tree-ssa-dom.c: Likewise
15019         * tree-ssa-propagate.c: Likewise
15020         * tree-ssa-alias.c: Likewise
15021         * tree-dfa.c: Likewise
15022         * tree-cfgcleanup.c: Likewise
15023         * tree-sra.c: Likewise
15024         * tree-ssa-copy.c: Likewise
15025         * tree-ssa.c: Likewise
15026         * tree-profile.c: Likewise
15027         * tree-cfg.c: Likewise
15028         * tree-ssa-threadedge.c: Likewise
15029         * tree-vect-loop-manip.c: Likewise
15030
15031         * tree-inline.c: Do not include diagnostic.h and expr.h.
15032         Include rtl.h.
15033         (copy_decl_for_dup_finish): Do not use NULL_RTX.
15034
15035         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
15036         * tree-loop-distribution.c: Likewise.
15037
15038 2010-06-01  Jan Hubicka  <jh@suse.cz>
15039
15040         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
15041
15042 2010-06-01  Jan Hubicka  <jh@suse.cz>
15043
15044         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
15045         remove return value.
15046         (split_bbs_on_noreturn_calls) .... here.
15047         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
15048         * tree-flow.h (fixup_noreturn_call): New.
15049
15050 2010-06-01  Jan Hubicka  <jh@suse.cz>
15051
15052         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
15053
15054 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
15055
15056         * tree.h (build_nt_call_list): Delete.
15057         * tree.c (build_nt_call_list): Delete.
15058
15059 2010-06-01  Jan Hubicka  <jh@suse.cz>
15060
15061         * fwprop.c: Make emit-rtl.h include last.
15062         * rtlanal.c: Include emit-rtl.h.
15063         * genautomata.c: Output emit-rtl include into insn-automata.c
15064         * df-scan.c: Include emit-rtl.h.
15065         * haifa-sched.c: Indlude emit-rtl.h.
15066         * mode-switching.c: Indlude emit-rtl.h.
15067         * graph.c: Indlude emit-rtl.h.
15068         * sel-sched.c: Include emit-rtl.h.
15069         * sel-sched-ir.c: Include emit-rtl.h.
15070         * ira-build.c: Include emit-rtl.h.
15071         * emit-rtl.c (first_insn, last_insn): Remove defines.
15072         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
15073         Move to emit-rtl.h.
15074         (set_new_first_and_last_insn, get_last_insn_anywhere,
15075         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
15076         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
15077         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
15078         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
15079         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
15080         Use accessor functions.
15081         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15082          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15083         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15084         mem_expr_equal_p): Move here from rtl.h.
15085         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
15086         Move here from emit-rtl.c; make inline.
15087         * cfglayout.h: Include emit-rtl.h.
15088         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15089          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15090         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15091         mem_expr_equal_p, get_insns, set_first-insn,
15092         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
15093         * reg-stack.c: Include emit-rtl.h.
15094         * dce.c: Likewise.
15095
15096 2010-06-01  Jan Hubicka  <jh@suse.cz>
15097
15098         * cgraph.h (tree_function_versioning): Update prototype.
15099         (cgraph_function_versioning): Update prototype.
15100         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
15101         bitmap.
15102         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
15103         (cgraph_materialize_clone, save_inline_function_body): Update use of
15104         tree_function_versioning.
15105         * tree-inline.c (copy_bb): Look for previous copied block to link
15106         after; fix debug output.
15107         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
15108         (copy_body): Likewise.
15109         (expand_call_inline): Update use of copy_body.
15110         (tree_function_versioning): Update use of copy body; accept
15111         blocks_to_copy and new_entry.
15112
15113 2010-06-01  Jan Hubicka  <jh@suse.cz>
15114
15115         * gegenrtl.c: Remove unnecesary prototypes.
15116         (gendecl): Remove.
15117         (gendef): Produce static inline.
15118         (gencode): Remove.
15119         (main): Do not decode parameters; generate header only.
15120         * Makefile.in (genrtl.c): Remove.
15121
15122 2010-06-01  Jan Hubicka  <jh@suse.cz>
15123
15124         * tree-switch-conversion.c (build_one_array): Make it readonly.
15125
15126 2010-06-01  Richard Guenther  <rguenther@suse.de>
15127
15128         * optabs.c (init_optabs): Guard all accesses to reinit.
15129         * ipa-pure-const.c (propagate): Fix another typo.
15130         * opts.c (common_handle_option): Split assignment to bool.
15131         * c-opts.c (c_common_handle_option): Likewise.
15132
15133 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
15134             Matthew Gingell  <gingell@adacore.com>
15135
15136         * doc/invoke.texi: Mention -fdump-ada-spec.
15137         * tree-dump.c (dump_files): Add ada-spec.
15138         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
15139         * tree-pass.h (tree_dump_index): Add TDI_ada.
15140         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
15141         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
15142         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
15143         * c-decl.c: Include c-ada-spec.h.
15144         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
15145         functions.
15146         (c_write_global_declarations): Add handling of -fdump-ada-spec.
15147         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
15148         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
15149         * c-ada-spec.h, c-ada-spec.c: New files.
15150
15151 2010-06-01  Richard Guenther  <rguenther@suse.de>
15152
15153         PR lto/43853
15154         * ipa-pure-const.c (get_function_state): Hand back varying state
15155         if we do not have one.
15156         (has_function_state): New function.
15157         (duplicate_node_data): Adjust.
15158         (remove_node_data): Likewise.
15159         (pure_const_write_summary): Likewise.
15160         (propagate): Likewise.  Fix typo.
15161
15162 2010-06-01  Jan Hubicka  <jh@suse.cz>
15163
15164         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
15165         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
15166         (execute_all_ipa_transforms): Do not play with the states.
15167
15168 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
15169
15170         * config/arm/t-linux-androideabi: New.
15171         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
15172
15173 2010-06-01  Jan Hubicka  <jh@suse.cz>
15174
15175         * tree-inline.c (estimate_num_insns): For stdarg functions look
15176         into call statement to count cost of argument passing.
15177
15178 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
15179
15180         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
15181         argument for fprintf.
15182         (ix86_output_addr_diff_elt): Likewise.
15183         (x86_function_profiler): Likewise.
15184         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
15185         (LPREFIX): Likewise.
15186         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
15187
15188 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15189
15190         PR target/44338
15191         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
15192         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
15193         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
15194         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
15195         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
15196         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
15197         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
15198         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
15199         TARGET_FUSED_MADD.
15200
15201 2010-05-31  Jan Hubicka  <jh@suse.cz>
15202
15203         * tree.h (tree_range_check_failed): Declare noreturn.
15204
15205 2010-05-31  Jan Hubicka  <jh@suse.cz>
15206
15207         * gimple.c (gimple_call_builtin_p): New function.
15208         * gimple.h (gimple_call_builtin_p): Declare.
15209         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
15210         to exit.
15211         (execute_warn_function_return): BUILT_IN_RETURN is return.
15212         (split_critical_edges): Return edges are not critical.
15213         (is_ctrl_altering_stmt): Builtin_in_return is altering.
15214         (gimple_verify_flow_info): Handle built_in_return.
15215         (execute_warn_function_return): Handle built_in_return.
15216         * ipa-pure-const.c (check_call): Ignore builtin_return.
15217
15218 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15219
15220         PR middle-end/44337
15221         * expr.c (expand_assignment): Don't store anything for out-of-bounds
15222         array accesses with non-MEM.
15223
15224         PR tree-optimization/44182
15225         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
15226         newly needs to end a bb is followed by debug stmts, instead return
15227         true from the function at the end.
15228         (maybe_move_debug_stmts_to_successors): New function.
15229         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
15230
15231 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
15232
15233         PR target/44161
15234         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
15235
15236 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
15237
15238         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
15239         for nested functions in non-optimized compilation.
15240
15241 2010-05-31  Richard Guenther  <rguenther@suse.de>
15242
15243         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
15244
15245 2010-05-30  Jan Hubicka  <jh@suse.cz>
15246
15247         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
15248
15249 2010-05-30  Richard Guenther  <rguenther@suse.de>
15250
15251         PR lto/42975
15252         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
15253         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
15254         no longer needed.
15255
15256 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
15257
15258         * config/darwin.c (output_objc_section_asm_op): Add comment.
15259         (name_needs_quotes): Add '_' to list of valid comment chars.
15260         (machopic_output_function_base_name): Remove unneeded quotes.
15261         (darwin_encode_section_info): Adjust asm whitespace.
15262         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
15263         (ASM_OUTPUT_LOCAL): Ditto.
15264         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
15265         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
15266         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
15267
15268 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15269
15270         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
15271         RS6000_OUTPUT_BASENAME unconditionally.
15272         (rs6000_output_function_epilogue): Likewise.
15273
15274 2010-05-30  Jan Hubicka  <jh@suse.cz>
15275
15276         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
15277         nodes.
15278
15279 2010-05-30  Richard Guenther  <rguenther@suse.de>
15280
15281         * tree-cfg.c (verify_gimple_assign_single): Implement
15282         verification for COND_EXPR rhs.
15283
15284 2010-05-30  Jan Hubicka  <jh@suse.cz>
15285
15286         * cgraph.h (cgraph_dump_file): Declare.
15287         * cgraphunit.c (cgraph_dump_file): Export.
15288         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
15289
15290 2010-05-30  Jan Hubicka  <jh@suse.cz>
15291
15292         * dwarf2out.c (reference_to_unused,
15293         premark_types_used_by_global_vars_helper): Avoid creation of new
15294         varpool nodes.
15295
15296 2010-05-30  Jan Hubicka  <jh@suse.cz>
15297
15298         * cgraph.h (cgraph_node_cannot_return,
15299         cgraph_edge_cannot_lead_to_return): New functions.
15300         * cgraph.c (cgraph_node_cannot_return,
15301         cgraph_edge_cannot_lead_to_return): Use them.
15302         * ipa-pure-const.c (pure_const_names): New static var.
15303         (check_call): Handle calls not leading to return.
15304         (pure_const_read_summary): Dump info read.
15305         (propagate): Dump info about propagation process; ignore side effects
15306         of functions not leading to exit; fix handling of pure functions.
15307
15308 2010-05-30  Jan Hubicka  <jh@suse.cz>
15309
15310         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
15311         for tail call epilogues.
15312
15313 2010-05-30  Jan Hubicka  <jh@suse.cz>
15314
15315         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
15316         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
15317         dump files.
15318
15319 2010-05-29  Jan Hubicka  <jh@suse.cz>
15320
15321         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
15322         node; remove references in node we no longer keep in cgrpah but need
15323         body of.
15324
15325 2010-05-29  Jan Hubicka  <jh@suse.cz>
15326
15327         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
15328
15329 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15330
15331         PR target/44165
15332         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
15333
15334 2010-05-29  Jan Hubicka  <jh@suse.cz>
15335
15336         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
15337         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
15338         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
15339         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
15340         debug_names_replaced_by, debug_update_ssa): Likewise.
15341         * sbitmap.c (debug_sbitmap): Likewise.
15342         * genrecog.c (debug_decision, debug_decision_list): Likewise.
15343         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
15344         debug_tree_chain): Likewise.
15345         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
15346         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
15347         * optabs.c (debug_optab_libfuncs): Likewise.
15348         (verify_loop_closed_ssa): Likewise.
15349         * value-prof.c (verify_histograms): Likewise.
15350         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
15351         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
15352         * cfghooks.c (verify_flow_info): Likewise.
15353         * fold-const.c (debug_fold_checksum): Likewise.
15354         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
15355         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
15356         Likewise.
15357         * omega.c (debug_omega_problem): Likewise.
15358         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
15359         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
15360         * dominance.c (verify_dominators, debug_dominance_info,
15361         debug_dominance_tree): Likewise.
15362         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
15363         * df_regno_debug, df_ref_debug,
15364         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
15365         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
15366         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
15367         * sel-sched.c (debug_state): Likewise.
15368         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
15369         Likewise.
15370         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
15371         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
15372         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
15373         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
15374         Likewise.
15375         * c-pretty-print.c (debug_c_tree): Likewise.
15376         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
15377         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
15378         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
15379         * ebitmap.c (debug_ebitmap): Likewise.
15380         * function.c (debug_find_var_in_block_tree): Likewise.
15381         * print-rtl.c (debug_rtx): Likewise.
15382         (debug_rtx_count): Likewise.
15383         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
15384         * stor-layout.c (debug_rli): Likewise.
15385         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
15386         * tree-data-ref.c (debug_data_references,
15387         debug_data_dependence_relations, debug_data_reference,
15388         debug_data_dependence_relation, debug_rdg_vertex,
15389         debug_rdg_component, debug_rdg): Likewise.
15390         * tree-affine.c (debug_aff): Likewise.
15391         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
15392         Likewise.
15393         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
15394         * emit-rtl.c (verify_rtl_sharing): Likewise.
15395         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
15396         debug_value_expressions): Likewise.
15397         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
15398         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
15399         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
15400         * cfglayout.c (verify_insn_chain): Likewise.
15401         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
15402         debug_clast_stmt, debug_generated_program): Likewise.
15403         * ggc-page.c (debug_print_page_list): Likewise.
15404         * tree-ssa-ter.c (debug_ter): Likewise.
15405         * graphite-dependences.c (debug_pddr): Likewise.
15406         * sched-deps.c (debug_ds): Likewise.
15407         * tree-ssa.c (verify_ssa): Likewise.
15408         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
15409         debug_scattering_functions, debug_iteration_domains, debug_pdr,
15410         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
15411         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
15412         * tree-inline.c (debug_find_tree): Likewise.
15413         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
15414         debug_ppl_powerset_matrix): Likewise.
15415         * var-tracking.c (debug_dv): Likewise.
15416         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
15417         * cfgloop.c (verify_loop_structure): Likewise.
15418         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
15419         * c-common.c (verify_sequence_points): Likewise.
15420         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
15421         debug_candidates, debug_rgn_dependencies): Likewise.
15422         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
15423         * debug_constraint_graph, debug_solution_for_var,
15424         debug_sa_points_to_info): Likewise.
15425         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
15426         Likewie.
15427         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
15428         debug_loops, debug_loop, debug_loop_num): Likewise.
15429         * passes.c (debug_pass): Likewise.
15430         (dump_properties): Likewise; add cfglayout property.
15431         (debug_properties): Likewise.
15432         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
15433         * varpool.c (debug_varpool): Likewise.
15434         * regcprop.c (debug_value_data): Likewise.
15435         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
15436         debug_immediate_uses_for): Likewise.
15437
15438 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15439
15440         PR bootstrap/44315
15441         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
15442         Filter out insn-flags.h.
15443
15444 2010-05-29  Jan Hubicka  <jh@suse.cz>
15445
15446         * cgraph.h (struct varpool_node_set_def,
15447         struct cgraph_node_set_def): Remove unused AUX pointer.
15448         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
15449         VEC_empty macro.
15450
15451 2010-05-29  Jan Hubicka  <jh@suse.cz>
15452
15453         PR middle-end/44324
15454         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
15455
15456 2010-05-29  Richard Guenther  <rguenther@suse.de>
15457
15458         * lto-streamer.c (cached_bp): New global variable.
15459         (bitpack_create): Return the cached bitpack, if available.
15460         (bitpack_delete): Clear and cache the bitpack, if appropriate.
15461         (bp_pack_value): Remove redundant asserts.
15462
15463 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15464
15465         PR middle-end/44306
15466         * tree-if-conv.c (is_true_predicate): New.
15467         (is_predicated): Use is_true_predicate.
15468         (add_to_predicate_list): Same.  Do not use unshare_expr.
15469         (add_to_dst_predicate_list): Same.
15470
15471 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15472
15473         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
15474         field on edges.
15475         (predicate_bbs): Same.
15476         (clean_predicate_lists): Same.
15477         (find_phi_replacement_condition): Do not AND the predicate from
15478         edge->aux.
15479
15480 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15481
15482         PR bootstrap/44315
15483         * Makefile.in (build/gencondmd.o): Add a missing `\'.
15484
15485 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15486
15487         PR target/44261
15488         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
15489         (negdf2): Adjust expander pattern and use negdf2_slow.
15490         (negsf2): Likewise.
15491
15492 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
15493
15494         * basic-block.h (struct control_flow_graph): Move last_label_uid field
15495         up.
15496         * df.h (struct df_base_ref): Move regno field up.
15497         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
15498         * expr.h (struct separate_ops): Move location field up.
15499         * optabs.h (struct optab_d): Move libcall_basename field down.
15500         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
15501         * config/i386/i386.h (struct machine_function): Convert call_abi field
15502         into a bitfield.  Move cfa field to the end of the structure.
15503
15504 2010-05-29  Jan Hubicka  <jh@suse.cz>
15505
15506         * varpool.c (varpool_get_node): Fix lookup.
15507
15508 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15509
15510         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
15511         RTL specific prototypes with #ifdef RTX_CODE.
15512         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
15513         * config/spu/t-spu-elf: Fix dependencies.
15514
15515         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
15516
15517 2010-05-29  Mike Stump  <mikestump@comcast.net>
15518
15519         PR bootstrap/44315
15520         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
15521         TM_H when building to avoid dependency loops.
15522
15523 2010-05-29  Jan Hubicka  <jh@suse.cz>
15524
15525         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
15526         refs and body; not the whole node for masters of materialized clones.
15527
15528 2010-05-29  Mike Stump  <mikestump@comcast.net>
15529
15530         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
15531
15532 2010-05-29  Jan Hubicka  <jh@suse.cz>
15533
15534         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
15535         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
15536         use of clone_function_name.
15537         * cgraph.h (cgraph_create_virtual_clone,
15538         cgraph_function_versioning): update prototypes.
15539         (clone_function_name): Declare.
15540         * ipa-cp.c (ipcp_insert_stage): Update call of
15541         cgraph_create_virtual_clone.
15542         * omp-low.c (create_omp_child_function_name): Use
15543         cgraph_create_virtual_clone.
15544         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
15545         (cgraph_function_versioning): Take SUFFIX argument; produce new name
15546         and make decl local.
15547
15548 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15549
15550         * vec.h: Include statistics.h
15551         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
15552         with VEC_H.
15553
15554 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15555
15556         * c-lex.c: Do not include c-tree.h.
15557         * c-pretty-print.c: Likewise.
15558         * c-opts.c: Likewise.
15559         * c-gimplify.c: Likewise.
15560         * c-common.c: Likewise.
15561         * c-dump.c: Likewise.  Include c-common.h.
15562
15563 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15564
15565         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
15566         before including diagnostic-core.h.
15567         (c_cpp_error): New prototype moved from c-tree.h.
15568         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
15569         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
15570         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
15571         (c_cpp_error): Prototype moved to c-common.h.
15572         * Makefile.in: Update dependency for C_COMMON_H.
15573
15574 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15575
15576         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
15577         * c-common.c (c_register_addr_space): Remove here.
15578         * c-decl.c (c_register_addr_space): Re-add here.
15579
15580 2010-05-28  Mike Stump  <mikestump@comcast.net>
15581
15582         * config/darwin-c.c: Remove c-tree.h include.
15583
15584 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15585
15586         * gcc.c: Include diagnostic.h.
15587         (error_count): Remove.  All users changed to use errorcount.
15588         (programname): Remove.  All users changed to use progname.
15589         (fancy_abort, internal_error, fatal_error, error, warning, inform,
15590         fnotice): Remove.
15591         (execute): Don't include "Internal error" and bug reporting
15592         information in argument of internal_error call.
15593         (process_command): Don't increment error_count after calling
15594         perror_with_name.
15595         (input_filename): Rename to gcc_input_filename.  All users
15596         changed.
15597         (main): Call diagnostic_initialize.  Register delete_temp_files
15598         with atexit.  Use seen_error to test for errors.
15599         * gcc.h: Include diagnostic-core.h.
15600         (fatal_error, error, warning): Remove.
15601         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
15602         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
15603         (gcc.o): Update dependencies.
15604
15605 2010-05-28  Jeff Law  <law@redhat.com>
15606
15607         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
15608         functions.
15609         * ira.h (ira_bad_reload_regno): Declare
15610         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
15611
15612         * ira-color.c (update_curr_costs): Free updated hard reg costs.
15613         (ira_reassign_conflict_allocnos): Remove bogus asserts.
15614         (allocno_reload_assign): Likewise.
15615
15616 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
15617
15618         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
15619         build1_stat.
15620
15621 2010-05-28  Richard Guenther  <rguenther@suse.de>
15622
15623         PR lto/44312
15624         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
15625         Stream fixed-point constants mode.
15626         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
15627         and TYPE_PRECISION.
15628         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
15629         Stream fixed-point constants mode.
15630         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
15631         and TYPE_PRECISION.
15632
15633 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15634
15635         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
15636         only place it was called from.
15637         (number_of_latch_executions): Do not return chrec_dont_know when the
15638         may_be_zero is a runtime condition: instead, return a COND_EXPR
15639         including the may_be_zero condition.
15640         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
15641         of nb_iterations.
15642         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
15643         COND_EXPRs.
15644
15645 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15646
15647         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
15648         generate COND_EXPRs for degenerate_phi_result.
15649
15650 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15651
15652         PR middle-end/44293
15653         * tree-if-conv.c (if_convertible_loop_p): Check the
15654         if-convertibility of phi nodes in non predicated BBs.
15655
15656 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15657
15658         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
15659
15660 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15661
15662         PR driver/15303
15663         * gcc.c (inform, warning, inform): New functions.
15664         (fatal_ice): Rename to internal_error; change cmsgid parameter to
15665         gmsgid.  All callers changed.
15666         (notice): Rename to fnotice; add parameter fp.  All callers changed.
15667         (fatal_error): Rename to fatal_signal.  All users changed.
15668         (fatal): Rename to fatal_error; change cmsgid parameter to
15669         gmsgid.  All callers changed.
15670         (process_command): Use warning instead of error for warnings.
15671         (end_going_arg): Don't use _() around argument of error.
15672         (do_spec_1): Use inform for message from %n specs.  Use warning
15673         instead of error for warnings.
15674         (main): Use inform for comparison messages.  Use warning for
15675         message about unused linker input.
15676         (error): Increment error_count.  Print "error: ".
15677         * gcc.h (fatal): Change to fatal_error.
15678         (warning): Declare.
15679         * config/darwin-driver.c (darwin_default_min_version): Use warning
15680         instead of fprintf for warnings.
15681         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
15682
15683 2010-05-28  Julian Brown  <julian@codesourcery.com>
15684
15685         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
15686         (*thumb2_addsi3_compare0_scratch): New.
15687         * config/arm/constraints.md (Pv): New.
15688         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
15689         for ARM mode only.
15690         (*addsi3_compare0_scratch): Likewise.
15691
15692 2010-05-28  Jan Hubicka  <jh@suse.cz>
15693
15694         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
15695         check.
15696         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
15697         only on local statics.
15698
15699 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
15700
15701         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
15702
15703 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15704
15705         PR bootstrap/44314
15706         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
15707         (OPTION_GLIBC): Define.
15708
15709 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15710
15711         PR debug/41048
15712         * dwarf2out.c (double_int_type_size_in_bits): New function.
15713         (round_up_to_align): Change first argument and return value to
15714         double_int.
15715         (field_byte_offset): Work internally on double_ints.
15716
15717         PR target/43636
15718         * builtins.c (expand_movstr): Use a temporary pseudo instead
15719         of target even when target is not NULL and not const0_rtx, but
15720         fails movstr predicate.
15721         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
15722
15723 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15724
15725         * final.c (rest_of_clean_state): Use %m in errors instead of
15726         strerror (errno).
15727         * gengtype.c (read_input_list, close_output_files): Use xstrerror
15728         instead of strerror.
15729         * toplev.c (process_options): Use %m in errors instead of strerror
15730         (errno).
15731         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
15732         (errno).
15733
15734 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
15735
15736         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
15737         (ix86_canonical_va_list_type): Make static.  Add declaration.
15738         (ix86_enum_va_list): Make static.  Reindent.
15739         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
15740         (ix86_canonical_va_list_type): Ditto.
15741         (ix86_enum_va_list): Ditto.
15742
15743 2010-05-28  Richard Guenther  <rguenther@suse.de>
15744
15745         * lto-wrapper.c (run_gcc): With -save-temps generate a
15746         user-visible ltrans filename.  Fixup ltrans unit numbering.
15747
15748 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
15749
15750         * c-common.c (c_common_nodes_and_builtins): Replace use
15751         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
15752         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
15753         to ix86_enum_va_list.
15754         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
15755         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
15756         (TARGET_ENUM_VA_LIST_P): Add hook description.
15757         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
15758         * target.h (gcc_target): Add enum_va_list hook.
15759
15760         PR bootstrap/44299
15761         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
15762         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
15763         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
15764
15765 2010-05-28  Alan Modra  <amodra@gmail.com>
15766
15767         PR target/44266
15768         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
15769         emit_library_call machinery to set up __tls_get_addr calls.
15770
15771 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15772
15773         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
15774
15775 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
15776
15777         Revert fix for PR c++/44188
15778         * c-common.c (is_typedef_decl): Revert the moving of  this
15779         definition ...
15780         * tree.c (is_typedef_decl): ... here.
15781         (typdef_variant_p): Revert the moving of this  definition
15782         here from cp/tree.c.
15783         * c-common.h (is_typedef_decl): Revert the moving of this
15784         declaration ...
15785         * tree.h (is_typedef_decl): ... here.
15786         (typedef_variant_p): Revert the moving of this  declaration here
15787         from cp/cp-tree.h
15788         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15789         (gen_tagged_type_die): Revert the splitting out of ...
15790         (gen_type_die_with_usage): ... this function. Revert the anonymous
15791         tagged type handling.
15792         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
15793         typedefs naming anonymous tagged types.
15794
15795 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15796
15797         * config/rs6000/rs6000-modes.def (PSImode): Delete.
15798
15799 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15800
15801         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
15802         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
15803         throughout.
15804         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
15805         "xer" to "ca".
15806         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
15807         XER_REGS to CA_REGS throughout.
15808         * config/rs6000/rs6000.h: Same.
15809         (ADDITIONAL_REGISTER_NAMES): Add "xer".
15810         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
15811         that mode_iterator "P" is the size for arithmetic carries as well.
15812         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15813
15814 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15815
15816         PR bootstrap/44255
15817         * combine.c (struct rtx_subst_pair): Define unconditionally.
15818         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
15819         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
15820         Call make_compound_operation on pair->to.
15821         (propagate_for_debug): Don't call make_compound_operation here.
15822         Always use simplify_replace_fn_rtx.
15823
15824 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
15825
15826         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
15827         * config/xtensa/xtensa.c (override_options): Check
15828           TARGET_FORCE_NO_PIC and set flag_pic.
15829         * config/xtensa/xtensa.opt: Document -mforce-no-pic
15830
15831 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15832
15833         PR bootstrap/44299
15834         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
15835         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
15836
15837 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15838
15839         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
15840         toplev.h.
15841         * diagnostic.c: Don't include toplev.h.
15842         (progname): Define.  Moved from toplev.c.
15843         (seen_error): New function.
15844         * diagnostic.h: Include diagnostic-core.h.
15845         (diagnostic_t, emit_diagnostic): Don't declare here.
15846         * toplev.c (progname): Move to toplev.c.
15847         (emit_debug_global_declarations, compile_file, finalize,
15848         do_compile, toplev_main): Use seen_error.
15849         * toplev.h: Include diagnostic-core.h.
15850         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15851         internal_error, warning, warning_at, error, error_n, error_at,
15852         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
15853         verbatim, fnotice, progname): Move to diagnostic-core.h.
15854         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
15855         (expand_builtin_expect): Use seen_error.
15856         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
15857         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
15858         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
15859         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
15860         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
15861         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
15862         errorcount for errors.
15863         * c-opts.c (c_common_finish): Use seen_error.
15864         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15865         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
15866         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
15867         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
15868         (get_coverage_counts): Use seen_error.
15869         * dwarf2out.c (dwarf2out_finish): Use seen_error.
15870         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
15871         gimplify_body): Use seen_error.
15872         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
15873         * ipa-pure-const.c (gate_pure_const): Use seen_error.
15874         * ipa-reference.c (gate_reference): Use seen_error.
15875         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
15876         * lambda-code.c: Include diagnostic-core.h instead of
15877         diagnostic.h.
15878         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15879         * lto-compress.c: Include diagnostic-core.h instead of
15880         diagnostic.h.
15881         * lto-section-in.c: Include diagnostic-core.h instead of
15882         diagnostic.h.
15883         * lto-streamer-out.c: Include diagnostic-core.h instead of
15884         diagnostic.h.
15885         * lto-streamer.c: Include diagnostic-core.h instead of
15886         diagnostic.h.
15887         (gate_lto_out): Use seen_error.
15888         * matrix-reorg.c: Include diagnostic-core.h instead of
15889         diagnostic.h.
15890         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
15891         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
15892         (gate_expand_omp, lower_omp_1): Use seen_error.
15893         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
15894         (rest_of_decl_compilation, rest_of_type_compilation,
15895         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
15896         * tree-cfg.c (label_to_block_fn): Use seen_error.
15897         * tree-inline.c (optimize_inline_calls): Use seen_error.
15898         * tree-mudflap.c (mudflap_finish_file): Use
15899         seen_error.
15900         * tree-optimize.c (gate_all_optimizations,
15901         gate_all_early_local_passes, gate_all_early_optimizations): Use
15902         seen_error.
15903         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
15904         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
15905         (varpool_remove_unreferenced_decls,
15906         varpool_assemble_pending_decls): Use seen_error.
15907         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
15908         (TOPLEV_H, DIAGNOSTIC_H): Update.
15909         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
15910         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
15911         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
15912         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
15913         coverage.o, lambda-code.o): Update dependencies.
15914
15915 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15916
15917         PR c++/44188
15918         * c-common.c (is_typedef_decl): Move this definition ...
15919         * tree.c (is_typedef_decl): ... here.
15920         (typdef_variant_p): Move definition here from cp/tree.c.
15921         * c-common.h (is_typedef_decl): Move this declaration ...
15922         * tree.h (is_typedef_decl): ... here.
15923         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15924         * dwarf2out.c (is_naming_typedef_decl): New function.
15925         (gen_tagged_type_die): Split out of ...
15926         (gen_type_die_with_usage): ... this function. When an anonymous
15927         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15928         is emitted for the typedef.
15929         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15930         anonymous tagged types.
15931
15932 2010-05-27  Jason Merrill  <jason@redhat.com>
15933
15934         * print-tree.c (debug_vec_tree): New fn.
15935         (print_vec_tree): New fn.
15936         * tree.h: Declare them.
15937         * gdbinit.in (pvt): New command.
15938
15939         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
15940
15941         * gdbinit.in (pdd): New command.
15942
15943 2010-05-27  Jan Hubicka  <jh@suse.cz>
15944
15945         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
15946         (update_caller_keys): Return early if there are no callers;
15947         only update fibheap when decresing the key.
15948         (update_callee_keys): Avoid recursion.
15949         (decide_inlining_of_small_functions): When badness does not match;
15950         re-insert into fibheap.
15951
15952 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
15953
15954         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
15955         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
15956         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
15957         (ALL_HOST_OBJS): Now a union of the above two.
15958         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
15959         all files in ALL_HOST_FRONTEND_OBJS.
15960         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
15961
15962         * c-common.c: Pretend to be a backend file by undefining
15963         IN_GCC_FRONTEND (still need rtl.h here).
15964
15965 2010-05-27  Jan Hubicka  <jh@suse.cz>
15966
15967         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
15968         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
15969
15970 2010-05-27  Jan Hubicka  <jh@suse.cz>
15971
15972         * sched-ebb.c: Rename struct deps to struct deps_desc.
15973         * ddg.c: Likewise.
15974         * sel-sched-ir.c: Likewise.
15975         * sched-deps.c: Likewise.
15976         * sched-int.h: Likewise.
15977         * sched-rgn.c: Likewise.
15978
15979 2010-05-27  Jon Beniston  <jon@beniston.com>
15980
15981         PR 43726
15982         * config/lm32/lm32.h: Remove definition of
15983         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
15984
15985 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15986
15987         PR lto/44230
15988         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
15989
15990 2010-05-27  Richard Guenther  <rguenther@suse.de>
15991
15992         PR tree-optimization/44284
15993         * tree-vect-stmts.c (vectorizable_assignment): Handle
15994         sign-changing conversions as simple copy.
15995
15996 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15997
15998         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
15999         Bionic C library.
16000         (__gthread_active_p): Check for pthread_create if compiling against
16001         Bionic C library.
16002
16003 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16004
16005         Support compilation for Android platform.  Reimplement -mandroid.
16006
16007         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
16008         (*android*): Set ANDROID_DEFAULT.
16009         (arm*-*-linux*): Include linux-android.h.
16010         (arm*-*-eabi*): Don't include previous -mandroid implementation.
16011         * config/arm/eabi.h: Remove, move Android-specific parts ...
16012         * config/linux-android.h: ... here.  New file.
16013         * config/arm/eabi.opt: Rename to ...
16014         * config/linux-android.opt: ... this.
16015         (mandroid): Allow -mno-android option.  Initialize based on
16016         ANDROID_DEFAULT.
16017         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
16018         Move logic to corresponding LINUX_TARGET_* macros.
16019         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
16020         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
16021         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
16022         Android definitions.
16023         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
16024         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
16025         Document.
16026
16027 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16028
16029         Add support for Bionic C library
16030
16031         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
16032         macro.
16033         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
16034         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
16035
16036         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
16037         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
16038         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
16039         to support multiple C libraries.  Handle Bionic.
16040         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
16041         (BIONIC_DYNAMIC_LINKER64): Define.
16042         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
16043         Update.
16044         (TARGET_HAS_SINCOS): Enable for Bionic.
16045
16046         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
16047         the last option specified on command line take effect.
16048         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
16049         (mbionic): New.
16050         (mglibc, muclibc): Update.
16051
16052         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
16053         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
16054         DEFAULT_LIBC.
16055
16056         * doc/invoke.texi (-mglibc, -muclibc): Update.
16057         (-mbionic): Document.
16058
16059 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16060
16061         * c-common.h (c_register_addr_space): Add prototype.
16062         (ADDR_SPACE_KEYWORD): Remove.
16063         * c-common.c (c_register_addr_space): New function.
16064         (c_addr_space_name): Reimplement.
16065         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
16066
16067         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
16068         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
16069
16070         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
16071         Remove TARGET_ADDR_SPACE_KEYWORDS.
16072
16073 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
16074
16075         * input.c: New file.
16076         * input.h (main_input_filename): Move declaration to toplev.h.
16077         * toplev.c (input_location, line_table): Move to input.c
16078         * toplev.h (main_input_filename): Move declaration from input.h.
16079         * tree.c (expand_location): Move to input.c.
16080         * Makefile.in (OBJS-common): Add input.o.
16081         (input.o): Add dependencies.
16082
16083 2010-05-27  Richard Guenther  <rguenther@suse.de>
16084
16085         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
16086         for non-existant files.
16087         (fork_execute): Mark args_name file as deleted.
16088
16089 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
16090
16091         PR bootstrp/44287
16092         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
16093         (narrow_signed_type): Likewise.
16094
16095 2010-05-26  Jan Hubicka  <jh@suse.cz>
16096
16097         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
16098         edge only when checking is enabled; check using former_clone_of;
16099         check inline clones too.
16100         (cgraph_materialize_clone): Record former_clone_of pointer.
16101         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
16102         combining redirections; dump args_to_skip bitmap
16103         (cgraph_materialize_all_clones): Do no redirection here.
16104         * ipa-inline.c (inline_transform): Do redirection here.
16105         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
16106         cheking only).
16107
16108 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16109
16110         * config/avr/avr-c.c: Do not include regs.h.
16111         Include cpplib.h for cpp_define and tree.h for c-common.h.
16112         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
16113         * config/avr/t-avr: Fix dependencies for avr-c.o.
16114
16115 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16116
16117         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
16118         string instead of SYMBOL_REF rtx.
16119         * rtl.h (set_stack_check_libfunc): Move prototype from here...
16120         * libfuncs.h: ...to here.  Adjust for explow.c change.
16121
16122 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16123
16124         * pretty-print.c: Don't include ggc.h.
16125         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
16126         (identifier_to_locale): Use them for allocation.
16127         * pretty-print.h (identifier_to_locale_alloc,
16128         identifier_to_locale_free): Declare.
16129         * toplev.c (alloc_for_identifier_to_locale): New.
16130         (general_init): Set identifier_to_locale_alloc and
16131         identifier_to_locale_free.
16132         * Makefile.in (pretty-print.o): Update dependencies.
16133
16134 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16135
16136         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
16137         pointer types if they have different alignment or mode.
16138
16139 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
16140
16141         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16142         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16143         * config/sparc/sparc-protos.h (function_value): Remove declaration.
16144         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
16145         sparc_function_value_regno_p): New functions.
16146         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16147         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16148         (function_value): Rename to...
16149         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
16150         argument to 'outgoing'.
16151         (function_arg_record_value, function_arg_union_value,
16152         function_arg_vector_value): Update comment.
16153
16154 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16155
16156         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
16157         (fde_needed_for_eh_p): New predicate.
16158         (output_call_frame_info): Use it throughout to decide whether FDEs
16159         are needed for EH purpose.
16160         (dwarf2out_begin_prologue): Reorder assignments.
16161
16162 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16163
16164         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
16165         special case loop->header.
16166         (is_predicated): New.
16167         (if_convertible_loop_p): Call it.
16168
16169 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16170
16171         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
16172         iterator in parameter.  Do not generate code during the analysis.
16173         (tree_if_convert_cond_stmt): Removed.
16174         (tree_if_convert_stmt): Removed.
16175         (predicate_bbs): New.
16176         (if_convertible_loop_p): Call predicate_bbs.
16177         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
16178         now contains all the analysis part.
16179
16180 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16181
16182         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
16183         statements in the analysis part.
16184         (tree_if_convert_stmt): Update comment.
16185         (remove_conditions_and_labels): New.
16186         (combine_blocks): Call remove_conditions_and_labels.
16187         (tree_if_conversion): Update comment.
16188
16189 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16190
16191         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
16192         than 2 predecessors or more than 2 successors.
16193
16194 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16195
16196         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
16197         of loops in which the data dependence analysis fails.
16198
16199 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16200
16201         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
16202         CDI_POST_DOMINATORS.
16203         (tree_if_conversion): Same.
16204
16205 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16206
16207         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
16208
16209 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16210
16211         * tree-if-conv.c: Update copyright years.  Fix comments.
16212         Fix indentation.
16213
16214 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
16215
16216         * builtin-types.def (BT_INT128): New primitive type.
16217         (BT_UINT128): Likewise.
16218         * c-common.c (c_common_r): Add __int128 keyword.
16219         (c_common_type_for_size): Handle __int128.
16220         (c_common_type_for_mode): Likewise.
16221         (c_common_signed_or_unsigned_type): Likewise.
16222         (c_common_nodes_and_builtins): Add builtin type
16223         if target supports 128-bit integer scalar.
16224         * c-common.h (enum rid): Add RID_INT128.
16225         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
16226         if target supports 128-bit integer scalar.
16227         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
16228         (finish_declspecs): Likewise.
16229         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
16230         (c_token_starts_declspecs): Likewise.
16231         (c_parser_declspecs): Likewise.
16232         (c_parser_attributes): Likewise.
16233         (c_parser_objc_selector): Likewise.
16234         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
16235         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
16236         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
16237         * tree.c (make_or_reuse_type): Likewise.
16238         (make_unsigned_type): Likewise.
16239         (build_common_tree_nodes_2): Likewise.
16240         * tree.h (enum integer_type_kind): Add itk_int128 and
16241         itk_unsigned_int128.
16242         (int128_integer_type_node): New define.
16243         (int128_unsigned_type_node): New define.
16244         * doc/extend.texi: Add documentation about __int128 type.
16245
16246 2010-05-26  Richard Guenther  <rguenther@suse.de>
16247
16248         * tree-ssa-sccvn.c (copy_nary): Adjust.
16249         (copy_phis): Rename to ...
16250         (copy_phi): ... this.  Adjust.
16251         (copy_references): Rename to ...
16252         (copy_reference): ... this.  Adjust.
16253         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
16254         result into the valid table.
16255
16256 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16257
16258         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
16259         insn-config.h, insn-codes.h, recog.h, and optabs.h.
16260
16261 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16262
16263         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
16264
16265 2010-05-26  Richard Guenther  <rguenther@suse.de>
16266
16267         * opts.c (common_handle_option): Handle OPT_Ofast.
16268
16269 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16270
16271         * diagnostic.c: Don't include opts.h.
16272         (permissive_error_option): Define.
16273         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
16274         for classify_diagnostic.  Don't use memset for
16275         classify_diagnostic.  Initialize new and recently added fields.
16276         (diagnostic_classify_diagnostic): Use context->n_opts instead of
16277         N_OPTS.
16278         (diagnostic_report_diagnostic): Pass context parameter to
16279         diagnostic_report_warnings_p.  Use option_enabled and option_name
16280         hooks from context.
16281         (emit_diagnostic): Use permissive_error_option.
16282         (permerror): Likewise.
16283         * diagnostic.h: Don't include options.h.
16284         (struct diagnostic_context): Add n_opts, opt_permissive,
16285         inhibit_warnings, warn_system_headers, option_enabled and
16286         option_name fields.  Change classify_diagnostic to a pointer.
16287         * opts-diagnostic.h: New file.
16288         * opts.c: Include opts-diagnostic.h.
16289         (common_handle_option): Set global_dc fields for -Wfatal-errors,
16290         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
16291         (option_name): New function.
16292         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
16293         (c_common_handle_option): Set global_dc->permissive for
16294         -fpermissive.
16295         * c-common.c (c_cpp_error): Save and restore
16296         global_dc->warn_system_headers, not variable warn_system_headers.
16297         * toplev.c: Include opts-diagnostic.h.
16298         (general_init): Update call to diagnostic_initialize.  Set
16299         global_dc->show_column, global_dc->option_enabled and
16300         global_dc->option_name.
16301         (process_options): Don't set global_dc fields here.
16302         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
16303         (diagnostic.o, opts.o, toplev.o): Update dependencies.
16304
16305 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16306
16307         * config/picochip/picochip.md (movsi): Split a movsi from a
16308         const after reload.
16309
16310 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16311
16312         * ggc-zone.c: Update copyright year.
16313         (poison_region): Mark memory for Valgrind as undefined before
16314         memset () call and inaccessible afterwards.
16315         (ggc_pch_total_size): Change type of i to int.
16316
16317 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16318
16319         * ggc-common.c (ggc_free_overhead): Allow empty slot.
16320
16321 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16322
16323         * ggc-common.c: Update copyright year.
16324         (ggc_rlimit_bound): Remove prototype.  Compile only if
16325         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
16326         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
16327         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
16328         (ggc_min_heapsize_heuristic): Likewise.
16329
16330 2010-05-26  Richard Guenther  <rguenther@suse.de>
16331
16332         PR rtl-optimization/44164
16333         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
16334         no-common access-path disambiguation.
16335         (indirect_ref_may_alias_decl_p): Adjust.
16336         (indirect_refs_may_alias_p): Likewise.
16337         (refs_may_alias_p_1): Likewise.
16338
16339 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16340
16341         * c-typeck.c: Do not include expr.h.
16342
16343 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16344
16345         * rtl.h (decl_default_tls_model): Move prototype from here...
16346         * output.h: ...to here.
16347         * c-decl.c: Do not include rtl.h.
16348         * c-pragma.c: Likewise.
16349         * c-parser.c: Likewise.
16350         * c-gimplify.c: Likewise.  And also not hard-reg-set.
16351         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
16352         FIXME note for it.  Add a FIXME note for expr.h.
16353         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
16354         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
16355         defined.
16356
16357 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
16358
16359         PR target/44199
16360         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
16361         or total_size is larger than red zone size for non-V4 ABI, emit a
16362         stack_tie resp. frame_tie insn before stack pointer restore.
16363         * config/rs6000/rs6000.md (frame_tie): New insn.
16364
16365 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16366
16367         * function.h (struct function): Add can_throw_non_call_exceptions bit.
16368         * lto-streamer-in.c (input_function): Stream it in.
16369         * lto-streamer-out.c (output_function): Stream it out.
16370         * function.c (allocate_struct_function): Set it.
16371         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
16372         for flag_non_call_exceptions.
16373         * cfgbuild.c (control_flow_insn_p): Likewise.
16374         (make_edges): Likewise.
16375         * cfgexpand.c (expand_stack_alignment): Likewise.
16376         * combine.c (distribute_notes): Likewise.
16377         * cse.c (cse_extended_basic_block): Likewise.
16378         * except.c (insn_could_throw_p): Likewise.
16379         * gcse.c (simple_mem): Likewise.
16380         * ipa-pure-const.c (check_call): Likewise.
16381         (check_stmt ): Likewise.
16382         * lower-subreg.c (lower-subreg.c): Likewise.
16383         * optabs.c (emit_libcall_block): Likewise.
16384         (prepare_cmp_insn): Likewise.
16385         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
16386         * postreload.c (rest_of_handle_postreload): Likewise.
16387         * reload1.c (reload_as_needed): Likewise.
16388         (emit_input_reload_insns): Likewise.
16389         (emit_output_reload_insns): Likewise.
16390         (fixup_abnormal_edges): Likewise.
16391         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
16392         * store-motion.c (find_moveable_store): Likewise.
16393         * tree-eh.c (stmt_could_throw_p): Likewise.
16394         (tree_could_throw_p): Likewise.
16395         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
16396         * config/arm/arm.c (arm_expand_prologue): Likewise.
16397         (thumb1_expand_prologue): Likewise.
16398         * config/rx/rx.md (cbranchsf4): Likewise.
16399         (cmpsf): Likewise.
16400         * config/s390/s390.c (s390_emit_prologue): Likewise.
16401         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
16402         (inline_forbidden_into_p): New predicate.
16403         (expand_call_inline): Use it to forbid inlining.
16404         (tree_can_inline_p): Likewise.
16405
16406 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16407
16408         * config/i386/i386-c.c: Do not include rtl.h.
16409         * config/i386/t-i386: Update dependencies.
16410
16411 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16412
16413         * attribs.c: Do not include rtl.h.
16414         * Makefile.in: Update dependencies.
16415
16416 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
16417
16418         * double-int.h (double_int_and): New.
16419         * combine.c (try_combine): Clean up, use double_int_* and
16420         immed_double_int_const functions.
16421
16422 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16423
16424         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
16425         stderr to /dev/null instead of grep -q.
16426         * configure: Regenerate.
16427
16428 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16429
16430         * Makefile.in (EXCEPT_H): Fix typo.
16431
16432 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
16433
16434         * ira-build.c (update_conflict_hard_reg_costs): New.
16435         (ira_build): Call update_conflict_hard_reg_costs.
16436
16437 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16438
16439         PR debug/41371
16440         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
16441         ENABLE_CHECKING.
16442         (intersect_loc_chains): Walk the s2var's loc_chain together
16443         with s1node chain as long as the locations are equal, don't
16444         call find_loc_in_1pdv in that case.
16445
16446         PR debug/42801
16447         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
16448         (copy_bind_expr): ... instead of here.
16449         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
16450         if the block hasn't been remapped.
16451         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
16452         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
16453
16454 2010-05-25  Richard Guenther  <rguenther@suse.de>
16455
16456         PR middle-end/44069
16457         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
16458         out-of-bounds array accesses.
16459
16460 2010-05-25  Richard Guenther  <rguenther@suse.de>
16461
16462         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
16463         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
16464         (run_gcc): Re-organize to make cleanup easier.
16465
16466 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16467
16468         * config/s390/s390.c (optimization_options): Fix and move the
16469         flag_prefetch_loop_arrays override ...
16470         (override_options): ... here.
16471
16472 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
16473
16474         * diagnostic.c: Don't include plugin.h.
16475         (diagnostic_report_diagnostic): Don't handle plugins specially
16476         here.  Pass context to internal_error callback.
16477         * diagnostic.h (struct diagnostic_context): Add context parameter
16478         to internal_error callback.
16479         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
16480         * plugin.h (struct diagnostic_context): Declare.
16481         (warn_if_plugins, plugins_internal_error_function): Declare.
16482         * toplev.c (general_init): Set global_dc->internal_error.
16483         * Makefile.in (diagnostic.o): Update dependencies.
16484
16485 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
16486
16487         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
16488         * config/rs6000/t-darwin64: New.
16489         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
16490         build crt2.
16491
16492 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
16493
16494         PR 44203
16495         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
16496         match the original (and intended) behaviour before r159557.  This
16497         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
16498         in two ways.
16499
16500 2010-05-25  Richard Guenther  <rguenther@suse.de>
16501
16502         * doc/invoke.texi: Document -Ofast.
16503         * target.h (struct gcc_target): Add handle_ofast.
16504         * target-def.h (TARGET_HANDLE_OFAST): Add.
16505         (TARGET_INITIALIZER): Adjust.
16506         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
16507         * common.opt (Ofast): Add.
16508
16509 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16510
16511         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
16512         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
16513
16514 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16515
16516         PR target/43610
16517         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
16518         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
16519         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
16520         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
16521
16522 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16523
16524         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
16525         DW_OP_minus with negated offset instead of DW_OP_plus.
16526         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
16527
16528 2010-05-25  Wei Guozhi  <carrot@google.com>
16529
16530         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
16531         tst instruction and a new alternative.
16532         * config/arm/constraints.md (Pu): New constraint.
16533
16534 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
16535
16536         * function.c (assign_stack_local_1): Initialize variable
16537         to avoid warning when bootstrapping at -O3.
16538
16539 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
16540
16541         * configure.ac (all_lang_makefiles): Remove everything related to it.
16542         * configure: Regenerate.
16543         * Makefile.in: Fix reference to ada Make-lang.in.
16544         Remove support for LANG_MAKEFILES.
16545
16546 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
16547             Sandra Loosemore  <sandra@codesourcery.com>
16548
16549         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
16550         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
16551         description.  Add arm_neon_fp16_ok.
16552         (Add Options): Add arm_neon and arm_neon_fp16.
16553
16554 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
16555
16556         * diagnostic.c: Don't include flags.h.
16557         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
16558         context parameters.  Check flags in the context passed as a parameter.
16559         (diagnostic_build_prefix): Add context parameter.  Check
16560         show_column flag in context.
16561         (diagnostic_action_after_output): Check fatal_errors flag in context.
16562         (diagnostic_report_current_module): Check show_column flag in context.
16563         (default_diagnostic_starter): Update call to
16564         diagnostic_build_prefix.
16565         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
16566         (emit_diagnostic): Pass context to permissive_error_kind.
16567         (permerror): Pass context to permissive_error_kind.
16568         * diagnostic.h (struct diagnostic_context): Add show_column,
16569         pedantic_errors, permissive and fatal_errors fields.
16570         (diagnostic_build_prefix): Update prototype.
16571         * langhooks.c
16572         * toplev.c (process_options): Set flags in global_dc from
16573         flag_show_column, flag_pedantic_errors, flag_permissive,
16574         flag_fatal_errors.
16575         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
16576         to diagnostic_build_prefix.
16577         * Makefile.in (diagnostic.o): Update dependencies.
16578
16579 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16580
16581         * config/i386/ia32intrin.h (__crc32q): Define only if
16582         __SSE4_2__ is defined.
16583
16584 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
16585
16586         PR target/44132
16587         PR middle-end/43602
16588         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
16589         DECL_VISIBILITY_SPECIFIED.
16590         (emutls_decl): Set DECL_PRESERVE_P and copy
16591         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
16592         (emutls_finalize_control_var): New callback.
16593         (emutls_finish): Finalize emutls control variables.
16594         * toplev.c (compile_file): Move the call to emutls_finish ()
16595         before varpool_assemble_pending_decls ().
16596
16597 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
16598
16599         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
16600         added to the preprocessor condition.
16601
16602 2010-05-24  Paul Brook  <paul@codesourcery.com>
16603
16604         * gengtype-lex.l: Add HARD_REG_SET.
16605         * expr.c (expand_expr_real_1): Record writes to hard registers.
16606         * function.c (rtl_data): Add asm_clobbers.
16607         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
16608         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
16609         Use crtl->asm_clobbers.
16610
16611 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16612
16613         * doc/makefile.texi (Makefile): Mention stages 'profile'
16614         and 'feedback' for profiledbootstrap.
16615
16616 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16617
16618         PR target/44245
16619         * config/i386/i386.c (def_builtin): Properly check
16620         OPTION_MASK_ISA_64BIT.
16621
16622 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
16623
16624         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
16625         typedefs with different but compatible types.  Allow duplicate
16626         typedefs with the same type except for pedantic non-C1X, but give
16627         warning for variably modified types.
16628         * c-typeck.c (tagged_types_tu_compatible_p,
16629         function_types_compatible_p, type_lists_compatible_p,
16630         comptypes_internal): Add parameter different_types_p; set
16631         *different_types_p for different but compatible types.  All
16632         callers changed.
16633         (comptypes_check_different_types): New.
16634         * c-tree.h (comptypes_check_different_types): Declare.
16635
16636 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16637
16638         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
16639         * jump.c: Include basic-block.h.
16640         * profile.c: Likewise.
16641         * tree-profile.c: Likewise.
16642         * coverage.c: Likewise.
16643         * basic-block.h (optimize_function_for_size_p): Move to function.h.
16644         (optimize_function_for_speed_p): Likewise.
16645         * function.h (optimize_function_for_size_p,
16646         optimize_function_for_speed_p): Moved here from basic-block.h.
16647         * Makefile.in: Update dependencies.
16648
16649 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16650
16651         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
16652         before calling make; allow override through $MAKE.
16653         * doc/invoke.texi (Optimize Options): Document override.
16654
16655 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
16656
16657         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
16658         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16659         (rs6000_mode_dependent_address_ptr): Make static.
16660         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16661         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
16662         Remove.
16663
16664 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
16665
16666         PR target/43869
16667         * config/i386/i386.c: Make sure that the correct regparm is passed.
16668
16669 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16670
16671         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
16672         * sbitmap.c: ...to here to internalize sbitmap element access.
16673         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
16674         Explain why basic-block.h is included.
16675         * function.h: Include tm.h for CUMULATIVE_ARGS.
16676         * Makefile.in: Update dependencies.
16677
16678 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16679
16680         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
16681         New core types.
16682         * sbitmap.h (struct sbitmap_def): Do not typedef here.
16683         * sbitmap.c: Include sbitmap.h.
16684         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
16685         hard-reg-set.h.  Split everything related to regsets out from here...
16686         * regset.h: ...to here.  New file.
16687         * df.h: Include regset.h and sbitmap.h.
16688         * tree-flow.h: Likewise.
16689         * cfgloop.h: Likewise.
16690         * except.h: Do not include sbitmap.h.  Include hashtab.h.
16691         * cgraph.h: Include vec.h and function.h.
16692         * reload.h (struct insn_chain): Change types of live_throughout
16693         and dead_or_set from regset_head to bitmap_head.
16694         (compute_use_by_pseudos): Be defined also if regset.h is not included.
16695         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
16696         spilled_regs from regset_head to bitmap_head to avoid dependency
16697         in regset.h.
16698         * sel-sched-ir.h: Include regset.h.
16699         * reload.c: Include df.h before reload.h.
16700         * caller-save.c: Likewise.
16701         * reload1.c: Likewise.
16702         * ira.c: Likewise.
16703         (mark_elimination): Update type of r to bitmap, consistent with
16704         DF_LR_IN.
16705         * dominance.c: Include bitmap.h.
16706         * modulo-sched.c: Include df.h.
16707         * cfganal.c: Include bitmap.h and sbitmap.h.
16708         * cfgbuild.c: Include sbitmap.h.
16709         * lcm.c: Include sbitmap.h.
16710         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
16711         * domwalk.c: Include sbitmap.h, exclude ggc.h.
16712         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
16713         * cselib.c: Include bitmap.h.
16714         * tree-optimize.c: Include regset.h.
16715         * stmt.c: Include bitmap.h.
16716         * Makefile.in: Update dependencies.
16717
16718 2010-05-22  Jan Hubicka  <jh@suse.cz>
16719
16720         * cgraph.h (struct varpool_node): Add same_comdat_group.
16721         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
16722         pointer.
16723         (output_varpool): Update call of lto_output_varpool_node.
16724         (input_varpool): Read same_comdat_group pointer.
16725         (input_varpool_1): Fixup same_comdat_group pointer.
16726         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
16727         group is needed, all are.
16728         * varpool.c (varpool_remove_node): Remove node from same comdat group
16729         linklist too.
16730         (varpool_analyze_pending_decls): Walk same comdat groups.
16731
16732 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16733
16734         * rtl.h (union rtunion_def): Remove rt_bit member.
16735         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
16736         * print-rtl (print_rtx): Do not print the member.
16737         * gengtype.c (adjust_field_rtx_def): Do not handle it.
16738         * gengenrtl.c (type_from_format): Likewise.
16739         (accessor_from_format): Likewise.
16740
16741 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
16742
16743         * dbgcnt.c: Include toplev.h instead of errors.h.
16744         * ira-emit.c: Don't include errors.h.
16745         * ira.c: Include toplev.h instead of errors.h.
16746         * lto-compress.c: Include toplev.h instead of errors.h.
16747         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
16748         ira.o, dbgcnt.o): Update dependencies.
16749
16750 2010-05-22  Richard Guenther  <rguenther@suse.de>
16751
16752         * gimple.c (gimple_types_compatible_p): Check type qualifications
16753         before merging pointer to complete and pointer to incomplete type.
16754         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
16755         we use our own resolution algorithm.  The gold linker plugin
16756         doesn't do the job we want it to do here.
16757
16758 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
16759
16760         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16761         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16762         (sparc_mode_dependent_address_p): New function.
16763
16764 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16765
16766         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
16767
16768         * timevar.c: Do not include any core headers.
16769         (timevar_print): De-i18n-ize.
16770         (print_time): Likewise.
16771         * timevar.h (timevar_push, timevar_pop): Make inline functions.
16772
16773 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
16774
16775         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
16776         langhooks-def.h.
16777         (diagnostic_initialize): Initialize x_data not last_function.
16778         (diagnostic_report_current_function): Move to tree-diagnostic.c.
16779         (default_diagnostic_starter): Call
16780         diagnostic_report_current_module not
16781         diagnostic_report_current_function.
16782         (diagnostic_report_diagnostic): Initialize x_data not
16783         abstract_origin.
16784         (verbatim): Likewise.
16785         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
16786         x_data.
16787         (struct diagnostic_context): Change last_function to x_data.
16788         (diagnostic_auxiliary_data): Replace with
16789         diagnostic_context_auxiliary_data and
16790         diagnostic_info_auxiliary_data.
16791         (diagnostic_last_function_changed, diagnostic_set_last_function,
16792         diagnostic_report_current_function): Move to tree-diagnostic.h.
16793         (print_declaration, dump_generic_node, print_generic_stmt,
16794         print_generic_stmt_indented, print_generic_expr,
16795         print_generic_decl, debug_c_tree, dump_omp_clauses,
16796         print_call_name, debug_generic_expr, debug_generic_stmt,
16797         debug_tree_chain, default_tree_printer): Move to
16798         tree-pretty-print.h.
16799         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
16800         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
16801         gimple-pretty-print.h.
16802         * pretty-print.c: Don't include tree.h
16803         (pp_base_format): Don't handle %K here.
16804         (pp_base_tree_identifier): Move to tree-pretty-print.c.
16805         * pretty-print.h (text_info): Change abstract_origin to x_data.
16806         (pp_tree_identifier, pp_unsupported_tree,
16807         pp_base_tree_identifier): Move to tree-pretty-print.h.
16808         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
16809         tree-pretty-print.h: New files.
16810         * tree-pretty-print.c: Include tree-pretty-print.h.
16811         (percent_K_format): New.  Moved from pretty-print.c.
16812         (pp_base_tree_identifier): Move from pretty-print.c.
16813         * c-objc-common.c: Include tree-pretty-print.h.
16814         (c_tree_printer): Handle %K here.
16815         * langhooks.c: Include tree-diagnostic.h.
16816         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
16817         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
16818         (default_tree_printer): Handle %K using percent_K_format.
16819         (general_init): Use default_tree_diagnostic_starter.
16820         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
16821         (free_lang_data): Use default_tree_diagnostic_starter.
16822         * c-pretty-print.c: Include tree-pretty-print.h.
16823         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16824         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16825         * dwarf2out.c: Include tree-pretty-print.h.
16826         * except.c: Include tree-pretty-print.h.
16827         * gimple-pretty-print.c: Include tree-pretty-print.h and
16828         gimple-pretty-print.h.
16829         * gimplify.c: Include tree-pretty-print.h.
16830         * graphite-poly.c: Include tree-pretty-print.h and
16831         gimple-pretty-print.h.
16832         * ipa-cp.c: Include tree-pretty-print.h.
16833         * ipa-inline.c: Include gimple-pretty-print.h.
16834         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16835         * ipa-pure-const.c: Include gimple-pretty-print.h.
16836         * ipa-struct-reorg.c: Include tree-pretty-print.h and
16837         gimple-pretty-print.h.
16838         * ipa-type-escape.c: Include tree-pretty-print.h.
16839         * print-rtl.c: Include tree-pretty-print.h.
16840         * print-tree.c: Include gimple-pretty-print.h.
16841         * sese.c: Include tree-pretty-print.h.
16842         * tree-affine.c: Include tree-pretty-print.h.
16843         * tree-browser.c: Include tree-pretty-print.h.
16844         * tree-call-cdce.c: Include gimple-pretty-print.h.
16845         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16846         * tree-chrec.c: Include tree-pretty-print.h.
16847         * tree-data-ref.c: Include tree-pretty-print.h and
16848         gimple-pretty-print.h.
16849         * tree-dfa.c: Include tree-pretty-print.h.
16850         * tree-if-conv.c: Include tree-pretty-print.h and
16851         gimple-pretty-print.h.
16852         * tree-inline.c: Include tree-pretty-print.h.
16853         * tree-into-ssa.c: Include tree-pretty-print.h and
16854         gimple-pretty-print.h.
16855         * tree-nrv.c: Include tree-pretty-print.h.
16856         * tree-object-size.c: Include tree-pretty-print.h and
16857         gimple-pretty-print.h.
16858         * tree-outof-ssa.c: Include tree-pretty-print.h and
16859         gimple-pretty-print.h.
16860         * tree-parloops.c: Include tree-pretty-print.h and
16861         gimple-pretty-print.h.
16862         * tree-predcom.c: Include tree-pretty-print.h and
16863         gimple-pretty-print.h.
16864         * tree-scalar-evolution.c: Include tree-pretty-print.h and
16865         gimple-pretty-print.h.
16866         * tree-sra.c: Include tree-pretty-print.h.
16867         * tree-ssa-address.c: Include tree-pretty-print.h.
16868         * tree-ssa-alias.c: Include tree-pretty-print.h.
16869         * tree-ssa-ccp.c: Include tree-pretty-print.h and
16870         gimple-pretty-print.h.
16871         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
16872         * tree-ssa-copy.c: Include tree-pretty-print.h and
16873         gimple-pretty-print.h.
16874         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
16875         * tree-ssa-dce.c: Include tree-pretty-print.h and
16876         gimple-pretty-print.h.
16877         * tree-ssa-dom.c: Include tree-pretty-print.h and
16878         gimple-pretty-print.h.
16879         * tree-ssa-dse.c: Include gimple-pretty-print.h.
16880         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
16881         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
16882         * tree-ssa-live.c: Include tree-pretty-print.h and
16883         gimple-pretty-print.h.
16884         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
16885         gimple-pretty-print.h.
16886         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
16887         gimple-pretty-print.h.
16888         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
16889         gimple-pretty-print.h.
16890         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
16891         gimple-pretty-print.h.
16892         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
16893         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
16894         * tree-ssa-operands.c: Include tree-pretty-print.h and
16895         gimple-pretty-print.h.
16896         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
16897         gimple-pretty-print.h.
16898         * tree-ssa-pre.c: Include tree-pretty-print.h and
16899         gimple-pretty-print.h.
16900         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
16901         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
16902         gimple-pretty-print.h.
16903         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
16904         gimple-pretty-print.h.
16905         * tree-ssa-sink.c: Include gimple-pretty-print.h.
16906         * tree-ssa-ter.c: Include tree-pretty-print.h and
16907         gimple-pretty-print.h.
16908         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
16909         * tree-ssa.c: Include tree-pretty-print.h and
16910         gimple-pretty-print.h.
16911         * tree-stdarg.c: Include gimple-pretty-print.h.
16912         * tree-switch-conversion.c: Include gimple-pretty-print.h.
16913         * tree-tailcall.c: Include tree-pretty-print.h and
16914         gimple-pretty-print.h.
16915         * tree-vect-data-refs.c: Include tree-pretty-print.h and
16916         gimple-pretty-print.h.
16917         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
16918         gimple-pretty-print.h.
16919         * tree-vect-loop.c: Include tree-pretty-print.h and
16920         gimple-pretty-print.h.
16921         * tree-vect-patterns.c: Include gimple-pretty-print.h.
16922         * tree-vect-slp.c: Include tree-pretty-print.h and
16923         gimple-pretty-print.h.
16924         * tree-vect-stmts.c: Include tree-pretty-print.h and
16925         gimple-pretty-print.h.
16926         * tree-vectorizer.c: Include tree-pretty-print.h.
16927         * tree-vrp.c: Include tree-pretty-print.h and
16928         gimple-pretty-print.h.
16929         * value-prof.c: Include tree-pretty-print.h and
16930         gimple-pretty-print.h.
16931         * var-tracking.c: Include tree-pretty-print.h.
16932         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
16933         (tree-diagnostic.o): New dependencies.
16934         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
16935         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
16936         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
16937         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
16938         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
16939         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
16940         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
16941         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
16942         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
16943         tree-ssa-address.o, tree-ssa-loop-niter.o,
16944         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
16945         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
16946         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
16947         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
16948         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
16949         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
16950         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
16951         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
16952         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
16953         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
16954         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
16955         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
16956         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
16957         tree-switch-conversion.o, var-tracking.o, value-prof.o,
16958         cfgexpand.o, pretty-print.o): Update dependencies.
16959
16960 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
16961
16962         * tree-ssa-structalias.c: Remove tm_p.h from include.
16963
16964 2010-05-21  Jeff Law  <law@redhat.com>
16965
16966         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
16967
16968 2010-05-21  Jason Merrill  <jason@redhat.com>
16969
16970         * tree-eh.c (cleanup_is_dead_in): New.
16971         (lower_try_finally): Don't generate a dead cleanup region.
16972         (lower_cleanup): Likewise.
16973
16974 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16975
16976         PR debug/44223
16977         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
16978         unchain each use from the cyclic next_regno_use chain first.
16979
16980 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16981
16982         * real: Do not include gmp.h, mpfr.h, and mpc.h.
16983         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
16984         (real_value_negate, real_value_abs): New prototypes.
16985         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
16986         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
16987         new include file for interface between MPFR and REAL_VALUE_TYPE.
16988         * real.c: Include realmpfr.h.
16989         (real_arithmetic2): Remove legacy function.
16990         (real_value_negate): New.
16991         (real_value_abs): New.
16992         (mfpr_from_real, real_from_mpfr): Move from here...
16993         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
16994         * builtins.c: Include realmpfr.h.
16995         * fold-const.c: Include realmpfr.h.
16996         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
16997         (fold_negate_const): Likewise.
16998         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
16999         * toplev.c: Include realmpfr.h.
17000         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
17001         and real_value_negate.
17002         * fixed-value.c (check_real_for_fixed_mode): Likewise.
17003         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
17004         (vfp3_const_double_index): Likewise.
17005         (arm_print_operand): Likewise.
17006         * Makefile.in: Update dependencies.
17007
17008 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17009
17010         * config/s390/s390.c (override_options): Increase the default
17011         of max-completely-peel-times.
17012
17013 2010-05-21  Julian Brown  <julian@codesourcery.com>
17014             Mark Mitchell  <mark@codesourcery.com>
17015
17016         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
17017         sibling calls for Thumb-1.
17018         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
17019         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
17020         Thumb-2.
17021         (*call_insn, *call_value_insn): Don't use for Thumb-2.
17022         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
17023         for Thumb-2.
17024         (return): New expander.
17025         (*arm_return): New name for ARM return insn.
17026         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
17027
17028 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
17029
17030         * config.gcc (sparc64-*-rtems*): New target.
17031
17032 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17033
17034         * tree.c (build_function_decl_skip_args): Fix grammar.
17035         (build_function_type_list_1): Fix typos, adjust formatting.
17036
17037 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
17038
17039         * tree.h: Include real.h and fixed-value.h as basic datatypes.
17040         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
17041         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
17042         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
17043         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
17044         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
17045         tree-pretty-print.c, tree-loop-distribution.c,
17046         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
17047         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
17048         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
17049         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
17050         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
17051         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
17052         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
17053         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
17054         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
17055         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
17056         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
17057         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
17058         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
17059         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
17060         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
17061         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
17062         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
17063         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
17064         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
17065         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
17066         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
17067         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
17068         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
17069         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
17070         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
17071         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
17072         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
17073         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
17074         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
17075         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
17076         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
17077         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
17078         config/score/score7.c, config/score/score.c, config/arm/arm.c,
17079         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
17080         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
17081         config/bfin/bfin.c: Clean up redundant includes.
17082         * Makefile.in: Update accordingly.
17083
17084 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17085
17086         PR middle-end/44204
17087         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
17088         statement has no arguments.
17089
17090 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
17091
17092         PR/44139
17093         * varasm.c (emutls_decl): Merge attributes to new decl.
17094
17095 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
17096
17097         PR middle-end/44101
17098         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
17099         around the uniquized constructor if its type requires a conversion.
17100
17101 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
17102
17103         PR debug/44205
17104         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
17105         at -O0 goto_locus of any of the incoming edges differs from
17106         goto_locus of outgoing edge, or gimple_location of any of the
17107         labels differs.
17108
17109 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
17110
17111         * ira.c (ira_non_ordered_class_hard_regs): Define.
17112         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
17113         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
17114         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
17115         cost of unaligned hard regs when allocating multi-reg pseudos.
17116
17117 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
17118
17119         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
17120         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
17121         for TARGET_NO_FLOAT.
17122         * config/mips/mips.c (mips_file_start): Expand conditional expression
17123         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
17124         (mips_override_options): Move -mno-float override -msoft-float and
17125         -mhard-float.
17126         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
17127         Condition(TARGET_SUPPORTS_NO_FLOAT).
17128         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
17129         __mips_no_float here.
17130         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
17131         (TARGET_SUPPORTS_NO_FLOAT): Define.
17132         * config/mips/sdemtk.opt: Delete.
17133
17134 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
17135
17136         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
17137
17138 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
17139
17140         PR target/43733
17141         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
17142         * configure: Regenerate.
17143         * config.in: Regenerate.
17144         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
17145         instead of sahf only for 64bit targets.
17146
17147 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17148
17149         PR debug/44178
17150         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
17151         setup_ref_regs for DEBUG_INSNs.
17152
17153 2010-05-20  Jan Hubicka  <jh@suse.cz>
17154
17155         PR middle-end/44197
17156         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
17157
17158 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
17159
17160         PR bootstrap/43870
17161         * df-scan.c (df_ref_compare): Stabilize sort.
17162
17163 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17164
17165         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
17166         argument.  Don't use DW_OP_piece if offset is non-zero,
17167         put offset into second DW_OP_bit_piece argument.
17168         (dw_sra_loc_expr): Adjust callers.  For memory expressions
17169         compute offset.
17170
17171 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
17172
17173         PR target/44202
17174         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
17175         settings for 16-bit-constant "addo" alternative.
17176
17177 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
17178
17179         * config/mips/mips-dsp.md (add<DSPV:mode>3,
17180         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
17181
17182         PR target/43764
17183         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
17184         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
17185         Use it.
17186
17187 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
17188
17189         * diagnostic.c (FLOAT, FFS): Don't undefine.
17190         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
17191         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
17192         include ordering.
17193
17194 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
17195
17196         * combine.c (propagate_for_debug): Call make_compound_operation
17197         on the source value.
17198         (try_combine): When implementing a split chosen by find_split_point,
17199         either copy i2src or set it to null.  Assert that i2src is not null
17200         before substituting into CALL_INSN_FUNCTION_USAGE.
17201
17202 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
17203
17204         * double-int.h (double_int_ior): New function.
17205         * tree.h (build_int_cst_wide_type): Remove.
17206         * tree.c (build_int_cst_wide_type): Remove.
17207         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
17208         of build_int_cst_wide_type.
17209         * stor-layout.c (set_sizetype): (Ditto.).
17210         * dojump.c (do_jump): Use build_int_cstu instead of
17211         build_int_cst_wide_type.
17212
17213 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
17214
17215         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
17216         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
17217         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
17218         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
17219         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
17220         propagate the 'data' argument to copy_tree_r.
17221         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
17222         Propagate 'data' argument to walk_tree.
17223         (copy_if_shared): New function.
17224         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
17225         (unmark_visited): New function.
17226         (unshare_body): Call copy_if_shared instead of doing it manually.
17227         (unvisit_body): Call unmark_visited instead of doing it manually.
17228
17229 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
17230
17231         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
17232         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
17233         * hooks.c: Likewise.
17234         * target-def.h (TARGET_FOLD_BUILTIN): Define to
17235         hook_tree_tree_int_treep_bool_null.
17236         * target.h (struct gcc_target): Update signature of fold_builtin
17237         field.
17238         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
17239         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
17240         instead of the call expression.
17241         (fold_builtin_call_array): Pass n and argarray directly.
17242         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
17243         consing a list.
17244         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
17245         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
17246         `i' and use it in place of `arity'.
17247         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
17248         Dereference `args' directly.
17249         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
17250
17251 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17252
17253         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17254         3dnow, sse3, sse2.
17255         (Directives): Document optional dg-require-effective-target
17256         selector.
17257
17258 2010-05-19  Richard Guenther  <rguenther@suse.de>
17259
17260         PR lto/44196
17261         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
17262
17263 2010-05-19  Richard Guenther  <rguenther@suse.de>
17264
17265         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
17266         * common.opt (fwhopr=): New.
17267         * opts.c (common_handle_option): Handle OPT_fwhopr.
17268         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
17269         * collect2.c (main): Match -fwhopr*.
17270         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
17271         Execute ltrans stage in parallel when jobs is bigger than 1.
17272
17273 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17274
17275         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17276         pentiumpro on Solaris 8/x86 with Sun as.
17277         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
17278         hidden alias bug.
17279         (gcc_cv_as_ix86_quad): Check for .quad directive.
17280         * configure: Regenerate.
17281         * config.in: Regenerate.
17282         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
17283
17284 2010-05-19  Martin Jambor  <mjambor@suse.cz>
17285
17286         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
17287         also for indirect edges.  Actual printing moved...
17288         (ipa_print_node_jump_functions_for_edge): ...here.
17289         (ipa_compute_jump_functions): Renamed to
17290         ipa_compute_jump_functions_for_edge and made static.
17291         (ipa_compute_jump_functions): New function.
17292         (make_edge_direct_to_target): Check if the number of arguments on
17293         the newly direct edge is the same as the number of parametrs of
17294         the callee.
17295         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
17296         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
17297         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17298         analysis functions unconditionally, call the new
17299         ipa_analyze_params_uses on the node instead of every edge.
17300
17301 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
17302
17303         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
17304         to tree.
17305         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
17306         also checks for a constant int vs.  non-constant but
17307         loop-invariant steps.
17308         (find_or_create_group): Change the sort algorithm to only consider
17309         steps that are constant ints.
17310         (idx_analyze_ref): Adopt code to handle a tree instead of a
17311         HOST_WIDE_INT for step.
17312         (gather_memory_references_ref): Handle tree instead of int and be
17313         prepared to see a NULL_TREE.
17314         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
17315         prefetches if the step cannot be calculated at compile time.
17316         (issue_prefetch_ref): Issue prefetches for non-constant but
17317         loop-invariant steps.
17318
17319 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17320
17321         Revert:
17322         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17323
17324         * tree.h (build_call_list): Remove.
17325         * tree.c (build_call_list): Remove.
17326
17327 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17328
17329         * tree.h (build_call_list): Remove.
17330         * tree.c (build_call_list): Remove.
17331
17332 2010-05-18  Jan Hubicka  <jh@suse.cz>
17333
17334         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
17335
17336 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
17337
17338         PR rtl-optimization/43332
17339         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
17340
17341 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
17342
17343         * tree.h (build_int_cstu): Implement as static inline.
17344         * tree.c (build_int_cstu): Remove function.
17345         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
17346         sign extended.
17347
17348 2010-05-18  Richard Guenther  <rguenther@suse.de>
17349
17350         PR lto/44143
17351         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
17352         (debug): Initialize from -save-temps.
17353         (collect_execute): Print command-line when verbose.
17354         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
17355         for ltrans invocation.  Produce -dumpbase flag again.
17356         (process_args): Remove.
17357         (main): Simplify.
17358         * collect2.c (maybe_run_lto_and_relink): Only pass object
17359         files to lto-wrapper.
17360         * gcc.c (LINK_COMMAND_SPEC): Likewise.
17361
17362 2010-05-18  Jan Hubicka  <jh@suse.cz>
17363
17364         * opts.c (decode_options): Do not disable whopr at ipa_cp.
17365         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
17366
17367 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17368
17369         PR lto/44184
17370         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
17371         in a GIMPLE_ASM.
17372         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
17373         in a GIMPLE_ASM.
17374
17375 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
17376
17377         PR debug/41371
17378         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
17379         rtx_equal_p inline.
17380
17381 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17382
17383         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
17384         lto-macho as lto_binary_reader.
17385
17386         * darwin.c (darwin_asm_named_section): Do not add assembler comment
17387         after .section directive; just print it before the directive instead.
17388
17389 2010-05-17  Jan Hubicka  <jh@suse.cz>
17390
17391         * cgraph.c (cgraph_create_virtual_clone): Only check
17392         versionable_function_p when not in wpa and checking is enabled.
17393         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
17394         there are no more functions to materialize.
17395
17396 2010-05-17  Jan Hubicka  <jh@suse.cz>
17397
17398         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
17399         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
17400         New functions.
17401         (output_cgraph): Call output_cgraph_opt_summary.
17402         (input_cgrpah): Call input_cgraph_opt_summary.
17403         (output_cgraph_opt_summary_p, output_node_opt_summary,
17404         input_node_opt_summary, input_cgraph_opt_section): New functions.
17405         * lto-section-in.c (lto_section_name): Add cgraphopt.
17406         * tree-inline.c (tree_function_versioning): Handle parm_num.
17407         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
17408         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
17409
17410 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17411
17412         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
17413         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
17414         the insn to prefetch ratio heuristic to loops with known trip count.
17415
17416 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17417
17418         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
17419         (schedule_prefetches): Do not generate a prefetch if the unroll factor
17420         is far from what is required by the prefetch.
17421
17422 2010-05-17  Jan Hubicka  <jh@suse.cz>
17423
17424         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
17425         (ipcp_estimate_growth): Likewise.
17426         (ipcp_const_param_count): Likewise.
17427         (ipcp_insert_stage): Likewise.
17428         * ipa-prop.c (visit_load_for_mod_analysis): New function.
17429         (visit_store_addr_for_mod_analysis): Set used flag.
17430         (ipa_detect_param_modifications): Set used flag for SSE params;
17431         update use of walk_stmt_load_store_addr_ops.
17432         (ipa_print_node_params): Print used flag.
17433         (ipa_write_node_info): Stream used flag.
17434         (ipa_read_node_info): Likewise.
17435         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
17436         (ipa_is_param_used): New function.
17437         (lto_ipa_fixup_call_notes): Remove unused declaration.
17438
17439 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17440
17441         PR target/44074
17442         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
17443         * configure: Regenerate.
17444         * config.in: Regenerate.
17445         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
17446         !HAVE_AS_IX86_REP_LOCK_PREFIX.
17447         Don't emit whitespace.
17448         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
17449         (*rep_movsi): Likewise.
17450         (*rep_movsi_rex64): Likewise.
17451         (*rep_movqi): Likewise.
17452         (*rep_movqi_rex64): Likewise.
17453         (*rep_stosdi_rex64): Likewise.
17454         (*rep_stossi): Likewise.
17455         (*rep_stossi_rex64): Likewise.
17456         (*rep_stosqi): Likewise.
17457         (*rep_stosqi_rex64): Likewise.
17458         (*cmpstrnqi_nz_1): Use {%;} after repz.
17459         (*cmpstrnqi_nz_rex_1): Likewise.
17460         (*cmpstrnqi_1): Likewise.
17461         (*cmpstrnqi_rex_1): Likewise.
17462         (*strlenqi_1): Use {%;} after repnz.
17463         (*strlenqi_rex_1): Likewise.
17464         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
17465         (*sync_compare_and_swap<mode>): Likewise.
17466         (sync_double_compare_and_swap<mode>): Likewise.
17467         (*sync_double_compare_and_swapdi_pic): Likewise.
17468         (sync_old_add<mode>): Likewise.
17469         (sync_add<mode>): Likewise.
17470         (sync_sub<mode>): Likewise.
17471         (sync_<code><mode>): Likewise.
17472
17473 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17474
17475         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
17476         otr_token and polymorphic.
17477         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
17478         (cgraph_clone_edge): Copy the above fields.
17479         * tree.c (get_binfo_at_offset): New function.
17480         * tree.h (get_binfo_at_offset): Declare.
17481         * ipa-prop.h (enum jump_func_type): Added known_type jump function
17482         type, reordered items, updated comments.
17483         (union jump_func_value): Added base_type field, reordered fields.
17484         (enum ipa_lattice_type): Moved down in the file.
17485         (struct ipa_param_descriptor): New field polymorphic.
17486         (ipa_is_param_polymorphic): New function.
17487         * ipa-prop.c: Include gimple.h and gimple-fold.h.
17488         (ipa_print_node_jump_functions): Print known type jump functions.
17489         (compute_complex_pass_through): Renamed to...
17490         (compute_complex_assign_jump_func): this.
17491         (compute_complex_ancestor_jump_func): New function.
17492         (compute_known_type_jump_func): Likewise.
17493         (compute_scalar_jump_functions): Create known type and complex ancestor
17494         jump functions.
17495         (ipa_note_param_call): New parameter polymorphic, set the corresponding
17496         flag in the call note accordingly.
17497         (ipa_analyze_call_uses): Renamed to...
17498         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
17499         variable var only in the block where it is used.
17500         (ipa_analyze_virtual_call_uses): New function.
17501         (ipa_analyze_call_uses): Likewise.
17502         (combine_known_type_and_ancestor_jfs): Likewise.
17503         (update_jump_functions_after_inlining): Implemented handling of a
17504         number of new jump function types combination.
17505         (print_edge_addition_message): Removed.
17506         (make_edge_direct_to_target): New function.
17507         (try_make_edge_direct_simple_call): Likewise.
17508         (try_make_edge_direct_virtual_call): Likewise.
17509         (update_call_notes_after_inlining): Renamed to...
17510         (update_indirect_edges_after_inlining): this.  Moved edge creation for
17511         indirect calls to try_make_edge_direct_simple_call, also calls
17512         try_make_edge_direct_virtual_call for virtual calls.
17513         (ipa_print_node_params): Changed the header message.
17514         (ipa_write_jump_function): Stream also known type jump functions.
17515         (ipa_read_jump_function): Likewise.
17516         (ipa_write_indirect_edge_info): Stream new fields in
17517         cgraph_indirect_call_info.
17518         (ipa_read_indirect_edge_info): Likewise.
17519         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
17520         GIMPLE_FOLD_H.
17521
17522 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17523
17524         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
17525
17526 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17527
17528         * tree.h (CALL_EXPR_ARGS): Delete.
17529         (call_expr_arglist): Delete.
17530         * tree.c (call_expr_arglist): Delete.
17531         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
17532         targetm.fold_builtin.
17533         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
17534         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
17535         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
17536         arglist parameter.  Use CALL_EXPR_ARG.
17537         (picochip_expand_builtin_3op): Likewise.
17538         (picochip_expand_builtin_2opvoid): Likewise.
17539         (picochip_expand_array_get): Likewise.
17540         (picochip_expand_array_put): Likewise.
17541         (picochip_expand_array_testport): Likewise.
17542         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
17543         rather than arglist.
17544         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
17545         CALL_EXPR_ARGS.
17546         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
17547         than TREE_VALUE and TREE_CHAIN.
17548         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
17549         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
17550         the arglist.
17551
17552 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17553
17554         PR bootstrap/42347
17555         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
17556         to have no fallthru edge.
17557
17558         PR middle-end/44102
17559         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
17560         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
17561         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
17562         add BARRIER after previous bb if needed.
17563
17564 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17565
17566         * tree.c (build_function_type_list_1): Remove bogus assert condition.
17567
17568 2010-05-17  Alan Modra  <amodra@gmail.com>
17569
17570         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
17571         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
17572         with copy_reg rtx param.
17573         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
17574         Correct cases where code for ABI_V4 did not initialise the reg
17575         used to access frame.  Also leave frame_reg_rtx as sp for large
17576         frames that save no regs.
17577
17578 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17579
17580         PR middle-end/44133
17581         * tree-sra.c (create_access_replacement): New parameter rename, mark
17582         the replaement for renaming only when it is true.
17583         (get_access_replacement): Pass true in the rename parameter of
17584         create_access_replacement.
17585         (get_unrenamed_access_replacement): New function.
17586         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
17587         replacement declaration from it.
17588
17589 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
17590
17591         * function.c (try_fit_stack_local, add_frame_space): New static
17592         functions.
17593         (assign_stack_local_1): Use them.  Look for opportunities to use
17594         space previously wasted on alignment.
17595         * function.h (struct frame_space): New.
17596         (struct rtl_data): Add FRAME_SPACE_LIST member.
17597         * reload1.c (something_was_spilled): New static variable.
17598         (alter_reg): Set it.
17599         (reload): Test it in addition to testing if the frame size changed.
17600
17601 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
17602
17603         * config/s390/s390.c: Define sane prefetch settings and activate
17604         flag_prefetch_loop_arrays on -O3.
17605         * config/s390/s390.h: Declare that read can use write prefetch.
17606
17607 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17608
17609         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
17610         build.
17611
17612 2010-05-16  Jan Hubicka  <jh@suse.cz>
17613
17614         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
17615         function body; do not check stdarg field of struct function.
17616
17617 2010-05-16  Jan Hubicka  <jh@suse.cz>
17618
17619         * cgraph.c (dump_cgraph_node): Dump versionable flag.
17620         * cgraph.h (cgraph_local_info): Add versionable flag.
17621         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
17622         (ipcp_versionable_function_p): Use it.
17623         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
17624         versionable flag.
17625
17626 2010-05-16  Jan Hubicka  <jh@suse.cz>
17627
17628         * cgraph.c (cgraph_clone_node): Take decl argument and insert
17629         clone into hash when it is different from orig.
17630         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
17631         * cgraph.h (cgraph_clone_node): Update prototype.
17632         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
17633         (lto_cgraph_encoder_delete): Delete body map.
17634         (lto_cgraph_encoder_size): Move to header.
17635         (lto_cgraph_encoder_encode_body_p,
17636         lto_set_cgraph_encoder_encode_body): New.
17637         (lto_output_node): Do not take written_decls argument; output clone_of
17638         pointer.
17639         (add_node_to): Add include_body_argument; call
17640         lto_set_cgraph_encoder_encode_body on master of the clone.
17641         (add_references): Update use of add_node_to.
17642         (compute_ltrans_boundary): Likewise.
17643         (output_cgraph): Do not create written_decls bitmap.
17644         (input_node): Take nodes argument; stream in clone_of correctly.
17645         (input_cgraph_1): Update use of input_node.
17646         * lto-streamer-out.c (lto_output): Use encoder info to decide
17647         what bodies to output.
17648         * ipa-inline.c (cgraph_clone_inlined_nodes,
17649         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
17650         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
17651         (lto_cgraph_encoder_size): Define here.
17652         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
17653         Declare.
17654
17655 2010-05-16  Richard Guenther  <rguenther@suse.de>
17656
17657         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
17658         -fipa-type-escape.
17659         * ipa-type-escape.c (gate_type_escape_vars): Run when
17660         -fipa-struct-reorg runs.
17661         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
17662         * common.opt (fipa-type-escape): Remove.
17663
17664 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17665
17666         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
17667         (decode_options): Likewise.
17668         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
17669
17670 2010-05-16  Jan Hubicka  <jh@suse.cz>
17671
17672         * ipa.c (function_and_variable_visibility): Also bring local all
17673         aliases.
17674
17675 2010-05-16  Richard Guenther  <rguenther@suse.de>
17676
17677         * alias.c (nonoverlapping_memrefs_p): Remove use of
17678         IPA type-escape information.
17679
17680 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
17681
17682         * c-common.c (c_common_reswords): Add _Static_assert for C.
17683         * c-parser.c (c_token_starts_declaration,
17684         c_parser_next_token_starts_declaration,
17685         c_parser_static_assert_declaration_no_semi,
17686         c_parser_static_assert_declaration): New.
17687         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
17688         Handle static assertions if static_assert_ok.
17689         (c_parser_external_declaration, c_parser_declaration_or_fndef,
17690         c_parser_compound_statement_nostart, c_parser_label,
17691         c_parser_for_statement, c_parser_objc_methodprotolist,
17692         c_parser_omp_for_loop): All callers of
17693         c_parser_declaration_or_fndef changed.
17694         (c_parser_struct_declaration): Handle static assertions.
17695         (c_parser_compound_statement_nostart): Use
17696         c_parser_next_token_starts_declaration and
17697         c_token_starts_declaration to detect start of declarations.
17698         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
17699         Likewise.
17700
17701 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
17702
17703         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17704         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17705         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17706         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17707         (mmix_function_outgoing_value): Rename to...
17708         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
17709         (mmix_function_value_regno_p): Make static.
17710         (mmix_libcall_value): New function.
17711         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
17712         mmix_function_value_regno_p): Remove declaration.
17713
17714 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17715
17716         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
17717         BUILT_IN_ALLOCA if stack checking is enabled.
17718
17719 2010-05-16  Richard Guenther  <rguenther@suse.de>
17720
17721         * var-tracking.c (vars_copy_1): Inline ...
17722         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17723         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
17724         (variable_merge_over_cur): Adjust.  Merge asserts.
17725         (variable_merge_over_src): Likewise.
17726         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
17727         (variable_post_merge_new_vals): Merge asserts.
17728         (variable_post_merge_perm_vals): Likewise.
17729         (find_mem_expr_in_1pdv): Likewise.
17730         (dataflow_set_different_value): Remove.
17731         (onepart_variable_different_p): Merge asserts.
17732         (variable_different_p): Likewise.
17733         (dataflow_set_different_1): Inline ...
17734         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17735         (emit_notes_for_differences_1): Merge asserts.
17736
17737 2010-05-16  Richard Guenther  <rguenther@suse.de>
17738
17739         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
17740         * optabs.c (libfunc_decl_hash): Likewise.
17741         * varasm.c (emutls_decl): Likewise.
17742
17743 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
17744
17745         * c-decl.c: Don't include gimple.h.
17746         (merge_decls): Do not copy gimple_body.
17747
17748 2010-05-15  Jason Merrill  <jason@redhat.com>
17749
17750         * c.opt: Add -fnothrow-opt.
17751
17752 2010-05-15  Jan Hubicka  <jh@suse.cz>
17753
17754         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
17755         analyzed.
17756         * passes.c (ipa_write_summaries): Write all analyzed nodes.
17757
17758 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
17759
17760         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
17761         * Makefile.in: Add it.
17762         Fix all other Makefile dependencies for changes below.
17763         * tree.h: Include it instead of defining VEC primitives here.
17764         * gimple.h: Likewise.
17765         * rtl.h: Likewise.
17766         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
17767         * except.h: Include vecir.h, break dependence on tree.h.
17768
17769         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
17770         Move from here...
17771         * tree-iterator.c: ...to here.
17772         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
17773
17774         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
17775         tm_p.h.
17776         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
17777         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
17778         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
17779         tree-mudflap.h, and target.h.
17780         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
17781         predict.h, tree-inline.h, gimple.h, and langhooks.h.
17782         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
17783         Add FIXME for why gimple.h is still included (should be unnecessary
17784         since GCC 4.5 gimplification unit-at-a-time).
17785         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
17786         * c-pragma.c: Add FIXME for why function.h needs to be included just
17787         for cfun, at front-end level.
17788         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
17789         Do not include ggc.h, but include vecprim.h for VEC(char).
17790         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
17791         Explain why target.h is included.
17792         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
17793         Explain why gimple.h is included.
17794         * c-ppoutput.c: Do not include tm.h.
17795         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
17796         * c-parses.c: Explain why rtl.h is included, and that this (and only
17797         this) is also why tm.h must be included.
17798         Do not include except.h.
17799         * c-lang.c: Do not include ggc.h.
17800
17801 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
17802
17803         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
17804
17805 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
17806
17807         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
17808         unions by default if those structs and unions have no tags.  Do
17809         not condition anonymous struct and unions handling on flag_iso.
17810         Allow anonymous structs and unions for C1X.
17811         (finish_struct): Do not diagnose lack of named fields when
17812         anonymous structs and unions present for C1X.  Accept flexible
17813         array members in structure with anonymous structs or unions but no
17814         directly named fields.
17815         * doc/extend.texi (Unnamed Fields): Update.
17816
17817 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
17818
17819         * gimple.h (compare_field_offset): Rename into...
17820         (gimple_compare_field_offset): ...this.
17821         * gimple.c (compare_field_offset): Rename into...
17822         (gimple_compare_field_offset): ...this.  Compare the full access if
17823         the offset is self-referential.
17824         (gimple_types_compatible_p): Adjust for above renaming.
17825         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
17826         DECL_NONADDRESSABLE_P flag of fields before merging them.
17827
17828 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
17829
17830         * tree.h (ctor_to_list): Delete.
17831         * tree.c (ctor_to_list): Delete.
17832
17833 2010-05-15  Jan Hubicka  <jh@suse.cz>
17834
17835         * ipa-reference.c: Include toplev.h
17836         (is_proper_for_analysis): Only add to all_module_statics
17837         if it is allocated.
17838         (write_node_summary_p, stream_out_bitmap,
17839         ipa_reference_write_optimization_summary,
17840         ipa_reference_read_optimization_summary): New.
17841         (struct ipa_opt_pass_d pass_ipa_reference): Add
17842         optimization summary streaming.
17843         * lto-cgraph.c (referenced_from_this_partition_p,
17844         reachable_from_this_partition_p): New functions.
17845         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
17846         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
17847         * opts.c (decode_options): Enable ipa_reference.
17848         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
17849         * lto-streamer.h (referenced_from_this_partition_p,
17850         reachable_from_this_partition_p): Declare.
17851
17852 2010-05-15  Richard Guenther  <rguenther@suse.de>
17853
17854         PR tree-optimization/44038
17855         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
17856         taking the address of a V_C_E of a constant.
17857
17858 2010-05-14  Jan Hubicka  <jh@suse.cz>
17859
17860         * tree.h (memory_identifier_string): Remove.
17861         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
17862         (ipa_reference_global_vars_info_d): Remove statics_not_read and
17863         statics_not_written.
17864         (ipa_reference_optimization_summary_d): New structure.
17865         (ipa_reference_optimization_summary_t): New type and vector.
17866         (ipa_reference_vars_info_d): Embedd structures instead of using
17867         pointers.
17868         (reference_vars_to_consider): Remove out of GGC space.
17869         (module_statics_escape): Remove.
17870         (global_info_obstack): Rename to ...
17871         (optimization_summary_obstack): ... this one.
17872         (initialization_status_t): Remove.
17873         (memory_identifier_string): Remove.
17874         (get_reference_vars_info): Fix indenting.
17875         (set_reference_vars_info): Likewise.
17876         (get_reference_optimization_summary): New.
17877         (set_reference_optimization_summary): New.
17878         (get_global_reference_vars_info): Remove.
17879         (ipa_reference_get_read_global): Remove.
17880         (ipa_reference_get_written_global): Remove.
17881         (ipa_reference_get_not_read_global): Update.
17882         (ipa_reference_get_not_written_global): Update.
17883         (is_proper_for_analysis): Outlaw addressable.
17884         (propagate_bits): Update for new datastructures.
17885         (analyze_variable): Remove.
17886         (init_function_info): Update for new datastructures.
17887         (clean_function_local_data): Remove.
17888         (clean_function): Remove.
17889         (copy_global_bitmap): Use optimizations_summary_obstack.
17890         (duplicate_node_data): Duplicate optimization summary only.
17891         (remove_node_data): Remove optimization summary only.
17892         (generate_summary): Do not analyze variables; do not compute
17893         module_statics_escape; do not prune solutions by it.
17894         (read_write_all_from_decl): Fix typos in comments.
17895         (propagate): Doscover readonly and nonaddressable first;
17896         update for new datastructures; share global bitmaps.
17897         * ipa-reference.h (ipa_reference_get_read_global,
17898         ipa_reference_get_written_global): Remove.
17899         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
17900         * Makefile.in: Remove ipa-refereference from GT files.
17901
17902 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17903
17904         PR debug/44112
17905         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
17906         for all SYMBOL_REF_DECLs.
17907
17908 2010-05-14  Jan Hubicka  <jh@suse.cz>
17909
17910         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
17911         (varpool_all_refs_explicit_p): New inline function.
17912         * ipa-reference.c: Update comment.
17913         (module_statics_written): Remove.
17914         (get_static_decl): Remove.
17915         (ipa_init): Do not initialize module_statics_written.
17916         (analyze_function): Likewise.
17917         (generate_summary): Likewise; do not compute module_statics_readonly
17918         and do not update variable flags.
17919         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
17920         * ipa.c: Inlucde flags.h
17921         (cgraph_local_node_p): New.
17922         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
17923         promote functions to local.
17924         (ipa_discover_readonly_nonaddressable_vars): New function.
17925         (function_and_variable_visibility): Use cgraph_local_node_p.
17926         * varpool.c (varpool_finalize_decl): Set force_output for
17927         DECL_PRESERVE_P vars.
17928
17929 2010-05-14  Jan Hubicka  <jh@suse.cz>
17930
17931         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
17932
17933 2010-05-14  Richard Guenther  <rguenther@suse.de>
17934
17935         PR tree-optimization/44119
17936         * tree-ssa-pre.c (eliminate): Properly mark replacement of
17937         a PHI node necessary.
17938
17939 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17940
17941         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
17942
17943 2010-05-14  Jason Merrill  <jason@redhat.com>
17944
17945         PR c++/44127
17946         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
17947         (gimple_call_set_nothrow): New.
17948         * gimple.c (gimple_build_call_from_tree): Call it.
17949         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
17950
17951         PR c++/44127
17952         * gimplify.c (gimplify_seq_add_stmt): No longer static.
17953         * gimple.h: Declare it.
17954         * gimple.c (gimple_build_eh_filter): No ops.
17955
17956 2010-05-14  Jan Hubicka  <jh@suse.cz>
17957
17958         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
17959         nodes already in queue.
17960         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
17961         re-enqueueing node.
17962
17963 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17964
17965         PR debug/44136
17966         * cfgexpand.c (expand_debug_expr): If non-memory op0
17967         has BLKmode, return NULL.
17968
17969 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
17970
17971         * config.gcc: Add support for --with-cpu option for bdver1.
17972         * config/i386/i386.h (TARGET_BDVER1): New macro.
17973         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
17974         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17975         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
17976         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17977         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
17978         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
17979         (processor_type): Add PROCESSOR_BDVER1.
17980         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
17981         processor_type in config/i386/i386.h.
17982         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
17983         movaps <reg, reg> instead of movapd <reg, reg> when replacing
17984         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
17985         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
17986         to emit packed xor instead of packed double/packed integer
17987         xor for SSE and AVX when moving a zero value.
17988         * config/i386/sse.md: Add check for
17989         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
17990         movapd/movdqa for SSE and AVX.
17991         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
17992         single logical operations i.e and, or and xor instead of packed double
17993         logical operations for SSE and AVX.
17994         * config/i386/i386-c.c (ix86_target_macros_internal):
17995         Add PROCESSOR_BDVER1.
17996         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
17997         (has_fma4, has_xop): New.
17998         * config/i386/i386.c (bdver1_cost): New variable.
17999         (m_BDVER1): New macro.
18000         (m_AMD_MULTIPLE): Add m_BDVER1.
18001         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
18002         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
18003         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
18004         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
18005         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
18006         x86_tune_sse_partial_reg_dependency,
18007         x86_tune_sse_unaligned_load_optimal,
18008         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
18009         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
18010         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
18011         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
18012         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
18013         Enable/disable for bdver1.
18014         (processor_target_table): Add bdver1_cost.
18015         (cpu_names): Add bdver1.
18016         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
18017          processor_alias_table.
18018         (ix86_expand_vector_move_misalign): Change.
18019         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
18020         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
18021         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
18022         of movupd/movdqu for SSE and AVX.
18023         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
18024         (ix86_tune_adjust_cost): Add code for bdver1.
18025         (standard_sse_constant_opcode): Add check for
18026         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
18027         of packed double xor for SSE and AVX.
18028
18029 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
18030
18031         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
18032         result to unsigned.
18033
18034 2010-05-14  Tristan Gingold  <gingold@adacore.com>
18035
18036         * toplev.c (default_debug_hooks): Remove this variable.
18037         (process_options): Remove assignments to default_debug_hooks.
18038
18039 2010-05-14  Martin Jambor  <mjambor@suse.cz>
18040
18041         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
18042         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
18043         * langhooks.h (struct lang_hooks_for_decls): Removed field
18044         fold_obj_type_ref.
18045         * tree.c (free_lang_data): Remove assignment to
18046         lang_hooks.fold_obj_type_ref.
18047         * tree.def (OBJ_TYPE_REF): Update comment.
18048
18049 2010-05-14  Richard Guenther  <rguenther@suse.de>
18050
18051         PR tree-optimization/44124
18052         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
18053
18054 2010-05-14  Alan Modra  <amodra@gmail.com>
18055
18056         PR target/44075
18057         * config/rs6000/rs6000.c (struct machine_function): Reorder
18058         fields for better packing.  Add lr_save_state.
18059         (rs6000_ra_ever_killed): Return lr_save_state if set.
18060         (rs6000_emit_eh_reg_restore): Set lr_save_state.
18061
18062 2010-05-13  Jan Hubicka  <jh@suse.cz>
18063
18064         * varpool.c (decide_is_variable_needed): Drop code checking
18065         TREE_SYMBOL_REFERENCED.
18066
18067 2010-05-13  Jan Hubicka  <jh@suse.cz>
18068
18069         * final.c (output_addr_const): Do not call mark_decl_referenced.
18070         * cgraphunit.c (process_function_and_variable_attributes): Use
18071         mark_needed_node dirrectly.
18072         (assemble_thunk): Do not call mark_decl_referenced.
18073
18074 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
18075
18076         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
18077
18078 2010-05-13  Jeff Law  <law@redhat.com>
18079
18080         * ira-conflicts.c (print_allocno_conflicts): New function broken out
18081         from...
18082         (print_conflicts): Call print_allocno_conflicts.
18083
18084 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18085
18086         PR debug/44104
18087         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
18088         if it is NULL.
18089
18090 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
18091
18092         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
18093         t-mingw-w64 or t-mingw-w32 for multilib configuration.
18094         * config/i386/t-mingw-w32: New.
18095         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
18096
18097 2010-05-13  Martin Jambor  <mjambor@suse.cz>
18098
18099         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
18100         gimple-fold.c).
18101         * gimple-fold.c (get_base_binfo_for_type): New function.
18102         (gimple_get_relevant_ref_binfo): Likewise.
18103         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18104         (gimple_fold_obj_type_ref): Likewise.
18105         (fold_gimple_call): Simplify condition for folding virtual calls
18106         and call gimple_fold_obj_type_ref.
18107         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
18108         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18109
18110 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
18111
18112         * config/rs6000/rs6000-protos.h
18113         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
18114         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
18115         (rs6000_debug_mode_dependent_address)
18116         (rs6000_mode_dependent_address_ptr): Likewise.
18117
18118 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18119
18120         PR debug/43983
18121         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
18122         by SRA.
18123         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
18124         * tree-sra.c (create_access_replacement): Call unshare_expr before
18125         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
18126         * dwarf2out.c: Include tree-flow.h.
18127         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
18128         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
18129         Handle DW_OP_bit_piece.
18130         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
18131         construct_piece_list, adjust_piece_list): New functions.
18132         (add_var_loc_to_decl): Handle SRA optimized variables.
18133         Adjust for var_loc_note to loc field renaming.
18134         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
18135         in VAR_LOCATION note.
18136         (new_loc_descr_op_bit_piece): New function.
18137         (dw_sra_loc_expr): New function.
18138         (dw_loc_list): Use it.  Don't handle the last range after the
18139         loop, handle it inside of the loop.  Adjust for var_loc_note
18140         to loc field renaming.
18141         (add_location_or_const_value_attribute): Only special case
18142         single entry loc lists if loc is NOTE_P.  Adjust for
18143         var_loc_note to loc field renaming.
18144         (dwarf2out_var_location): Don't set newloc->var_loc_note
18145         and newloc->next here.
18146
18147 2010-05-12  Jan Hubicka  <jh@suse.cz>
18148
18149         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
18150         flag.
18151         * cgraph.h (cgraph_only_called_directly_p,
18152         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
18153         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
18154         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
18155         (assemble
18156         * ipa.c (cgraph_remove_unreachable_nodes): Use
18157         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
18158         flags.
18159         * tree-inline.c (copy_bb): Check address_taken flag.
18160         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
18161         externally_visible flag.
18162
18163 2010-05-12  Jason Merrill  <jason@redhat.com>
18164
18165         PR bootstrap/44048
18166         PR target/44099
18167         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
18168         * sdbout.c (plain_type_1): Likewise.
18169         * dwarf2out.c (is_base_type): Likewise.
18170         (gen_type_die_with_usage): Likewise.  Generate
18171         DW_TAG_unspecified_type for any LANG_TYPE.
18172
18173 2010-05-12  Jan Hubicka  <jh@suse.cz>
18174
18175         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
18176         indrect edges too.
18177         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
18178         (cgraph_clone_edge): Update.
18179         (cgraph_node_remove_callees): Remove indirect calls too.
18180         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
18181         (cgraph_create_indirect_edge): Update prototype.
18182         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
18183         is_proper_for_analysis.
18184         (add_new_function, visited_nodes, function_insertion_hook_holder,
18185         get_local_reference_vars_info, mark_address_taken, mark_address,
18186         mark_load, mark_store, check_asm_memory_clobber, check_call,
18187         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
18188         (ipa_init): Do not initialize visited_nodes;
18189         function_insertion_hook_holder.
18190         (analyze_variable): Rewrite.
18191         (analyze_function): Rewrite.
18192         (copy_local_bitmap): Remove.
18193         (duplicate_node_dat): Do not duplicate local info.
18194         (generate_summary): Simplify to only walk cgraph.
18195         (write_node_summary_p, ipa_reference_write_summary,
18196         ipa_reference_read_summary): Remove.
18197         (propagate): Do not remove function insertion;
18198         generate summary.
18199         (pass_ipa_reference): NULLify summary handling fields.
18200         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
18201         (input_edge): Input ecf_flags.
18202         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
18203         (update_indirect_edges_after_inlining): Ignore edges with unknown
18204         param.
18205
18206 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
18207
18208         * implicit-zee.c: New file.
18209         * tree-pass.h (pass_implicit_zee): Declare.
18210         * passes.c (init_optimization_passes): Add zee pass.
18211         * common.opt (fzee): New flag.
18212         * timevar.def (TV_ZEE): Define.
18213         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
18214         and beyond.
18215         * Makefile.in (implicit-zee.o): Add new build file.
18216
18217 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18218             Nathan Froyd  <froydnj@codesourcery.com>
18219
18220         * c-common.c (sync_resolve_params): Remove write-only variable.
18221
18222 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
18223
18224         * target.h (struct gcc_target): Add mode_dependent_address_p field.
18225         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18226         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
18227         * targhooks.c (default_mode_dependent_address_p): New function.
18228         * targhooks.h (default_mode_dependent_address_p): Declare function.
18229         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18230         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
18231         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
18232         target hook. Change return type to bool.
18233         * recog.h (mode_dependent_address_p): Change return type to bool.
18234
18235 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18236             Nathan Froyd  <froydnj@codesourcery.com>
18237
18238         * tree-mudflap.c (build_function_type_0, build_function_type_1,
18239         build_function_type_2, build_function_type_3): Remove.
18240         (mudflap_init): Use build_function_type_list.
18241
18242 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18243             Nathan Froyd  <froydnj@codesourcery.com>
18244
18245         * coverage.c (build_fn_info_value): Call build_constructor instead of
18246         build_constructor_from_list.
18247         (build_ctr_info_value): Likewise.
18248         (build_gcov_info): Likewise.
18249
18250 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
18251
18252         * tree.c (build_constructor): Compute TREE_CONSTANT for the
18253         resultant constructor.
18254         (build_constructor_single): Don't set TREE_CONSTANT.
18255         (build_constructor_from_list): Don't compute TREE_CONSTANT.
18256
18257 2010-05-12  Jan Hubicka  <jh@suse.cz>
18258
18259         * cgraph.h (struct varpool_node): Add aux.
18260         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
18261         * varpool.c (varpool_remove_node): Do not remove initializer.
18262         (varpool_reset_queue): Export.
18263         (varpool_finalize_decl): Volatile vars are forced to be output.
18264         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
18265         replaced decl.
18266         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
18267         process_references, varpool_can_remove_if_no_refs): New functions.
18268         (cgraph_remove_unreachable_nodes): Handle variables too.
18269
18270 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
18271
18272         PR target/44088
18273         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
18274
18275 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
18276
18277         PR middle-end/44085
18278         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
18279         change value of ORT_TASK.
18280         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
18281         (omp_notice_threadprivate_variable): New function.
18282         (omp_notice_variable): Call it for threadprivate variables.
18283         If enclosing ctx is a task, print enclosing task rather than
18284         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
18285         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
18286         if task has untied clause.
18287
18288         PR debug/42278
18289         * dwarf2out.c (base_type_die): Don't add name attribute here.
18290         (modified_type_die): Instead of sizetype use
18291         its underlying original type.  If a DW_TAG_base_type doesn't
18292         have name added, add __unknown__.
18293         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
18294         always call force_type_die instead.
18295
18296 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
18297
18298         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
18299         for __stack_chk_guard.
18300
18301 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18302
18303         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
18304         don't call start_source_file debug hook here...
18305         (finish_options): ... but here, after outputting predefined and
18306         command line defines and undefs.
18307
18308         PR middle-end/44071
18309         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
18310         no fallthru edge.
18311         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
18312         optimizing away empty bb with no successors, move over its
18313         footer chain to fallthru predecessor.
18314         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
18315         (rtl_split_edge): For asm goto call patch_jump_insn even if
18316         splitting fallthru edge.
18317
18318         PR c++/44059
18319         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
18320         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
18321         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
18322         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
18323         on DW.ref.* decls.
18324
18325         PR c++/44062
18326         * c-parser.c (c_parser_expression): Mark LHS of a comma
18327         expression as read if it is a decl, handled component or
18328         COMPOUND_EXPR with that on the RHS.
18329         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
18330         if it is a decl or handled component.
18331
18332 2010-05-11  Jan Hubicka  <jh@suse.cz>
18333
18334         * lto-symtab.c (lto_symtab_free): New function.
18335         * lto-streamer.h (lto_symtab_free): Declare.
18336
18337 2010-05-11  Jan Hubicka  <jh@suse.cz>
18338
18339         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
18340         that if function is needed it is reachable.
18341         (lto_output_node): See if it the function is reachable or referenced.
18342         (output_cgraph): Update call of lto_output_node.
18343         * lto-streamer.h (reachable_from_other_partition_p): Declare.
18344
18345 2010-05-11  Jan Hubicka  <jh@suse.cz>
18346
18347         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
18348         Mark as used.
18349
18350 2010-05-11  Jan Hubicka  <jh@suse.cz>
18351
18352         PR tree-optimize/44063
18353         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
18354         queue.
18355         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
18356         limits.
18357         (estimate_function_body_sizes): Compute sizes even when disregarding.
18358
18359 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
18360
18361         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
18362
18363 2010-05-11  Jan Hubicka  <jh@suse.cz>
18364
18365         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
18366         into every boundary.
18367
18368 2010-05-11  Jan Hubicka  <jh@suse.cz>
18369
18370         * matrix-reorg.c (matrix_reorg): Rebuild edges.
18371
18372 2010-05-11  Jan Hubicka  <jh@suse.cz>
18373
18374         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
18375         lto_streamer_cache_delete): Put nodes into heap.
18376         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
18377         heap.
18378
18379 2010-05-11  Jan Hubicka  <jh@suse.cz>
18380
18381         * cgraphbuild.c (cgraph_rebuild_references): New.
18382         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
18383         out extern inlines.
18384         * cgraph.h (cgraph_rebuild_references): Declare.
18385         * tree-inline.c (tree_function_versioning): Use it.
18386         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
18387
18388 2010-05-11  Jan Hubicka  <jh@suse.cz>
18389
18390         * cgraph.c: Include ipa-utils.h
18391         (cgraph_create_virtual_clone): Update references.
18392         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
18393
18394 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18395
18396         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
18397         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
18398         cache size.
18399
18400 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18401
18402         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
18403
18404 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18405
18406         * gcc.c (execute): For -### don't quote arguments that
18407         contain just alphanumerics and _/-. characters.
18408         * doc/invoke.texi: Document that change for -###.
18409
18410         PR debug/44023
18411         * df-problems.c (struct dead_debug): Add to_rescan field.
18412         (dead_debug_init): Clear to_rescan field.
18413         (dead_debug_finish): Rescan all debug insns in to_rescan
18414         bitmap and free the bitmap.
18415         (dead_debug_insert_before): Instead of rescanning debug insns
18416         immediately queue their rescanning until dead_debug_finish.
18417         (df_note_bb_compute): After dead_debug_add do continue instead
18418         of break.
18419
18420 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
18421
18422         PR debug/44028
18423         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
18424         clear also INSN_REG_USE_LIST.
18425
18426 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18427
18428         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
18429
18430 2010-05-10  Jan Hubicka  <jh@suse.cz>
18431
18432         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
18433         commited change.
18434
18435 2010-05-10  Jan Hubicka  <jh@suse.cz>
18436
18437         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
18438         Allocate encoders.
18439         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
18440         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
18441         (lto_streamer_cache_create): Init alloc pool.
18442         (lto_streamer_cache_delete): Free alloc pool.
18443         * lto-streamer.h: Include alloc pool.
18444         (lto_streamer_cache_d): Use alloc pool.
18445         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
18446
18447 2010-05-10  Jan Hubicka  <jh@suse.cz>
18448
18449         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
18450         * cgraphbuild.c: Include except.h
18451         (record_type_list, record_eh_tables): New function.
18452         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
18453
18454 2010-05-10  Jan Hubicka  <jh@suse.cz>
18455
18456         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
18457         __frame_dummy_init_array_entry, force_to_data): Attribute as used
18458         rather than unused.
18459
18460 2010-05-10  Michael Matz  <matz@suse.de>
18461
18462         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
18463         (can_reassociate_p): Use FLOAT_TYPE_P.
18464         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
18465         (vect_force_simple_reduction): ... this.
18466         * tree-parloops.c (gather_scalar_reductions): Use
18467         vect_force_simple_reduction.
18468         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
18469         vect_is_simple_reduction, add modify argument, if true rewrite
18470         "a-b" into "a+(-b)".
18471         (vect_is_simple_reduction, vect_force_simple_reduction): New
18472         functions.
18473         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
18474
18475 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
18476             Vladimir Makarov  <vmakarov@redhat.com>
18477
18478         PR rtl-optimization/44012
18479         * ira-build.c (remove_unnecessary_allocnos): Nullify
18480         regno_allocno_map of the removed allocno.
18481
18482 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18483
18484         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
18485         to /dev/null.
18486         * configure: Regenerate.
18487
18488 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18489
18490         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
18491         unused.
18492         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
18493         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
18494         support in Sun ld.
18495         * configure: Regenerate.
18496
18497 2010-05-10  Richard Guenther  <rguenther@suse.de>
18498
18499         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
18500         marked if the entry identifier is marked.
18501
18502 2010-05-10  Richard Guenther  <rguenther@suse.de>
18503
18504         * c-common.c (struct c_common_attributes): Add fnspec attribute.
18505         (handle_fnspec_attribute): New function.
18506         * gimple.h (gimple_call_return_flags): Declare.
18507         (gimple_call_arg_flags): Likewise.
18508         * gimple.c (gimple_call_arg_flags): New function.
18509         (gimple_call_return_flags): Likewise.
18510         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
18511         New argument flags.
18512         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
18513         return value flags.
18514         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
18515         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
18516         main work to ...
18517         (make_heapvar_for): ... this new function.
18518         (handle_rhs_call): Handle fnspec attribute argument specifiers.
18519         (handle_lhs_call): Likewise.
18520         (find_func_aliases): Adjust.
18521
18522 2010-05-10  Richard Guenther  <rguenther@suse.de>
18523
18524         PR tree-optimization/44050
18525         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
18526
18527 2010-05-10  Wei Guozhi  <carrot@google.com>
18528
18529         PR target/42879
18530         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
18531
18532 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18533
18534         PR c/10676
18535         * c-typeck.c (lookup_field): Take a type directly.  Update
18536         recursive calls.
18537         (build_component_ref): Update call to lookup_field.
18538         (set_init_label): Use lookup_field to find initialized field.
18539         Handle returned list of fields like a sequence of designators.
18540
18541 2010-05-09  Richard Guenther  <rguenther@suse.de>
18542
18543         PR middle-end/44024
18544         * fold-const.c (tree_single_nonzero_warnv_p): Properly
18545         handle &FUNCTION_DECL.
18546
18547 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18548
18549         PR c/4784
18550         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
18551         structures and unions recursively.
18552         (detect_field_duplicates): Move duplicate detection with a hash to
18553         detect_field_duplicates_hash.  Always use a hash if anonymous
18554         structures or unions are present.
18555         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
18556         give errors.
18557
18558 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
18559
18560         PR target/44046
18561         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
18562         detect Atom, Core 2 and Core i7.
18563
18564 2010-05-09  Richard Guenther  <rguenther@suse.de>
18565
18566         * gcc.c (store_arg): Handle temporary file deletion for
18567         joined arguments.
18568
18569 2010-05-09  Richard Guenther  <rguenther@suse.de>
18570
18571         PR middle-end/44043
18572         * ipa-inline.c (estimate_function_body_sizes): Return after
18573         disregarding inline limits.
18574
18575 2010-05-09  Richard Guenther  <rguenther@suse.de>
18576
18577         * gcc.c (store_arg): Revert last change.
18578
18579 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
18580
18581         PR middle-end/28685
18582         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
18583         (optimize_ops_list): Call it.
18584
18585 2010-05-08  Richard Guenther  <rguenther@suse.de>
18586
18587         PR tree-optimization/44030
18588         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
18589         NECESSARY flag if we propagate from a inserted expression.
18590
18591 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18592
18593         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
18594         domain types as equal if they are both PLACEHOLDER_EXPRs.
18595
18596 2010-05-08  Richard Guenther  <rguenther@suse.de>
18597
18598         * lto-wrapper.c (run_gcc): Remove linker output from
18599         command line for LTRANS invocation.
18600
18601 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18602
18603         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
18604         lto-macho as lto_binary_reader.
18605         * target.h (struct gcc_target): New hooks lto_start and lto_end.
18606         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
18607         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
18608         in lto_start and lto_end calls.
18609         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
18610         magic numbers.
18611         (scan_prog_file): Update is_elf_or_coff call.
18612         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
18613
18614         * collect2.c (main): Fix enum comparison.
18615
18616         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
18617         Add prototypes.
18618         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
18619         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
18620         and TARGET_ASM_LTO_END.
18621         * darwin.c: Include obstack.h and lto-streamer.h.
18622         (lto_section_names_offset, lto_section_names_obstack,
18623         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
18624         global variables.
18625         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
18626         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
18627         to a temporary file.
18628         (darwin_asm_lto_end): New function.  Restore asm_out_file.
18629         (darwin_asm_named_section): For LTO sections, replace the name with
18630         the offset of the section name in a string table, and build this
18631         table.
18632         (darwin_file_start): Initialize global vars for LTO support.
18633         (darwin_file_end): If output to asm_out_file was redirected, append it
18634         to the proper asm_out_file here.  Add the section names section.
18635
18636 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18637
18638         * c-pragma.c (pending_weak_d, pending_weak): New.
18639         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
18640         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
18641         handle_pragma_weak): Update the uses of pending_weaks.
18642
18643 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18644
18645         PR documentation/44016
18646         * doc/standards.texi (Standards): Link to unversioned
18647         cxx0x_status.html page.
18648
18649 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
18650
18651         PR target/43708
18652         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
18653         in addition to TREE_USED, to avoid "set but unused" warnings.
18654
18655 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18656
18657         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
18658         (is_loop_prefetching_profitable): Do not insert prefetches
18659         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
18660         times the prefetch ahead distance.
18661
18662 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18663
18664         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
18665         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
18666         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
18667         the unroll_factor.
18668
18669 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18670
18671         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
18672         a diagnostic info when the insn-to-mem ratio is too small.
18673
18674 2010-05-07  Richard Guenther  <rguenther@suse.de>
18675
18676         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
18677         the linker plugin.
18678         (store_arg): Queue temp_filename for deletion instead of
18679         the whole argument.
18680
18681 2010-05-07  Richard Guenther  <rguenther@suse.de>
18682
18683         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
18684         (run_gcc): Handle LTRANS phase invocation.
18685         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
18686
18687 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
18688
18689         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
18690         this is also meaningful on PARM_DECLs and RESULT_DECLs.
18691
18692 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18693
18694         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
18695
18696 2010-05-07  Richard Guenther  <rguenther@suse.de>
18697
18698         PR tree-optimization/44020
18699         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
18700         code when PRE is not yet initialized.
18701
18702 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18703
18704         * config/mips/dbxmdebug.h: Remove.
18705         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
18706
18707 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
18708
18709         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
18710         with null pointer and also warn about ordered comparison of zero with
18711         pointer if -Wextra.
18712
18713 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18714
18715         * graphite-blocking.c
18716         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
18717         * graphite-clast-to-gimple.c
18718         (clast_to_gcc_expression): Same.
18719         (precision_for_value): Same.
18720         (precision_for_interval): Same.
18721         (gcc_type_for_interval): Same.
18722         (graphite_create_new_guard): Same.
18723         (compute_bounds_for_level): Same.
18724         (graphite_create_new_loop_guard): Same.
18725         * graphite-interchange.c
18726         (build_linearized_memory_access): Same.
18727         (pdr_stride_in_loop): Same.
18728         (memory_strides_in_loop_1): Same.
18729         (memory_strides_in_loop): Same.
18730         (extend_scattering): Same.
18731         (psct_scattering_dim_for_loop_depth): Same.
18732         (pbb_number_of_iterations): Same.
18733         * graphite-poly.h
18734         (debug_iteration_domains): Same.
18735         * graphite-ppl.c
18736         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
18737         (ppl_set_inhomogeneous_gmp): Same.
18738         (ppl_strip_loop): Same.
18739         (ppl_lexico_compare_linear_expressions): Same.
18740         (ppl_read_polyhedron_matrix): Same.
18741         (ppl_max_for_le_pointset): Same.
18742         * graphite-ppl.h
18743         (ppl_read_polyhedron_matrix): Same.
18744         (tree_int_to_gmp): Same.
18745         (gmp_cst_to_tree): Same.
18746         (ppl_set_inhomogeneous): Same.
18747         (ppl_set_inhomogeneous_tree): Same.
18748         (ppl_set_coef): Same.
18749         (ppl_set_coef_tree): Same.
18750         * graphite-sese-to-poly.c
18751         (build_pbb_scattering_polyhedrons): Same.
18752         (build_scop_scattering): Same.
18753         (scan_tree_for_params_right_scev): Same.
18754         (scan_tree_for_params): Same.
18755         (find_params_in_bb): Same.
18756         (find_scop_parameters): Same.
18757         (add_upper_bounds_from_estimated_nit): Same.
18758         (build_loop_iteration_domains): Same.
18759         (add_condition_to_domain): Same.
18760         (pdr_add_memory_accesses): Same.
18761
18762 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18763
18764         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
18765         CLooG's value_* macros to their respective mpz_* counterparts.
18766         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
18767         (graphite_create_new_loop_guard): Same.
18768         * graphite-interchange.c (build_linearized_memory_access): Same.
18769         (pdr_stride_in_loop): Same.
18770         (memory_strides_in_loop_1): Same.
18771         (1st_interchange_profitable_p): Same.
18772         * graphite-poly.c (extend_scattering): Same.
18773         (psct_scattering_dim_for_loop_depth): Same.
18774         (pbb_number_of_iterations): Same.
18775         (pbb_number_of_iterations_at_time): Same.
18776         * graphite-poly.h (new_1st_loop): Same.
18777         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
18778         (oppose_constraint): Same.
18779         (insert_constraint_into_matrix): Same.
18780         (ppl_set_inhomogeneous_gmp): Same.
18781         (ppl_set_coef_gmp): Same.
18782         (ppl_strip_loop): Same.
18783         (ppl_lexico_compare_linear_expressions): Same.
18784         (ppl_max_for_le_pointset): Same.
18785         (ppl_min_for_le_pointset): Same.
18786         (ppl_build_realtion): Same.
18787         * graphite-ppl.h (gmp_cst_to_tree): Same.
18788         (ppl_set_inhomogeneous): Same.
18789         (ppl_set_inhomogeneous_tree): Same.
18790         (ppl_set_coef): Same.
18791         (ppl_set_coef_tree): Same.
18792         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
18793         (build_scop_scattering): Same.
18794         (add_value_to_dim): Same.
18795         (scan_tree_for_params_right_scev): Same.
18796         (scan_tree_for_params_int): Same.
18797         (scan_tree_for_params): Same.
18798         (find_params_in_bb): Same.
18799         (find_scop_parameters): Same.
18800         (add_upper_bounds_from_estimated_nit): Same.
18801         (build_loop_iteration_domains): Same.
18802         (create_linear_expr_from_tree): Same.
18803         (add_condition_to_domain): Same.
18804         (pdr_add_memory_accesses): Same.
18805
18806 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
18807             Jason Merrill  <jason@redhat.com>
18808
18809         * c-common.c (c_common_reswords): Add nullptr.
18810         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
18811         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
18812         (gen_type_die_with_usage): Likewise.
18813         * dbxout.c (dbxout_type): Likewise.
18814         * sdbout.c (plain_type_1): Likewise.
18815
18816 2010-05-06  Jason Merrill  <jason@redhat.com>
18817
18818         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
18819         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
18820         ret appropriately.
18821         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
18822
18823         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
18824         stripping WITH_SIZE_EXPR.
18825         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
18826         change.
18827
18828 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18829
18830         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
18831         list of obsolete configurations.
18832         Disabled check for obsolete configurations.
18833         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
18834         Removed support for previous versions.
18835         * config/mips/iris.h: Removed.
18836         * config/mips/iris5.h: Removed.
18837         * config/mips/iris6.h: Merged old iris.h contents.
18838         (TARGET_IRIX): Removed.
18839         (DRIVER_SELF_SPECS): Removed mabi=32.
18840         (IDENT_ASM_OP): Removed undef.
18841         (STARTFILE_SPEC): Removed mabi=32.
18842         (ENDFILE_SPEC): Likewise.
18843         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
18844         (MACHINE_TYPE): Update for IRIX 6.5.
18845         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
18846         TARGET_IRIX by TARGET_IRIX6.
18847         (mips_file_start): Likewise.
18848         (mips_output_external): Remove IRIX 5/6 O32 support.
18849         (mips_output_function_prologue): Likewise.
18850         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
18851         TARGET_IRIX6.
18852         (TARGET_CPU_CPP_BUILTINS): Likewise.
18853         (TARGET_IRIX): Removed.
18854         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
18855         (MULTILIB_DIRNAMES): Removed 32.
18856         (MULTILIB_OSDIRNAMES): Removed ../lib.
18857         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
18858         (Specific, mips-sgi-irix5): Document removal.
18859         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
18860         Remove references to older IRIX 6 releases and the O32 ABI.
18861
18862 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
18863
18864         PR bootstrap/43994
18865         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
18866         instead of DF_REF_REAL_REG.
18867
18868 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
18869
18870         PR target/43888
18871         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
18872         handling to still return true for x64 targets.
18873
18874 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18875
18876         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
18877
18878 2010-05-06  Jan Hubicka  <jh@suse.cz>
18879
18880         PR tree-optimization/43791
18881         * ipa-inline.c (update_caller_keys): Remove bogus
18882         disregard_inline_limits check.
18883
18884 2010-05-06  Michael Matz  <matz@suse.de>
18885
18886         PR tree-optimization/43984
18887         * tree-ssa-pre.c (inserted_phi_names): Remove.
18888         (inserted_exprs): Change to bitmap.
18889         (create_expression_by_pieces): Set bits, don't append to vector.
18890         (insert_into_preds_of_block): Don't handle inserted_phi_names.
18891         (eliminate): Don't look at inserted_phi_names, remove deleted
18892         insns from inserted_exprs.
18893         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
18894         (init_pre, fini_pre): Allocate and free bitmaps.
18895         (execute_pre): Insert insns on edges before elimination.
18896
18897 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18898
18899         * tree.c (initializer_zerop): Handle STRING_CST.
18900
18901 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18902
18903         PR 40989
18904         * doc/invoke.texi (Wimplicit): Document as C only.
18905         * opts.c (common_handle_option): Add argument kind.
18906         (handle_option): Rename as read_cmdline_option. Factor out code to...
18907         (handle_option): ... here. New.
18908         (handle_options): Rename as read_cmdline_options.
18909         (decode_options): Update call.
18910         (set_option): Use option index instead of option pointer. Classify
18911         diagnostics correctly.
18912         (enable_warning_as_error): Call handle_option.
18913         * opts.h (set_option): Update declaration.
18914         (handle_option): Declare.
18915         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
18916         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
18917         * c-opts.c (set_Wimplicit): Delete.
18918         (c_family_lang_mask): New static constant.
18919         (c_common_handle_option): Add argument kind. Use handle_option
18920         instead of set_Wimplicit.
18921         (c_common_post_options): warn_implicit and warn_implicit_int
18922         are disabled by default.
18923         * c-common.c (warn_implicit): Do not define here.
18924         * c-common.h (warn_implicit): Do not declare here.
18925         (c_common_handle_option): Update declaration.
18926         * lto-opts.c (lto_reissue_options): Update call to set_option.
18927
18928 2010-05-06  Richard Guenther  <rguenther@suse.de>
18929
18930         PR tree-optimization/43571
18931         * domwalk.c (walk_dominator_tree): Walk the dominator
18932         sons in more optimal order.
18933
18934 2010-05-06  Richard Guenther  <rguenther@suse.de>
18935
18936         PR tree-optimization/43934
18937         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
18938         (stmt_cost): Likewise.
18939         (extract_true_false_args_from_phi): New helper.
18940         (determine_max_movement): For PHI nodes verify we can hoist them
18941         and compute their cost.
18942         (determine_invariantness_stmt): Handle PHI nodes.
18943         (move_computations_stmt): Likewise.  Hoist PHI nodes in
18944         if-converted form using COND_EXPRs.
18945         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
18946         (tree_ssa_lim): Likewise.
18947         * tree-flow.h (tree_ssa_lim): Adjust prototype.
18948         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
18949
18950 2010-05-06  Richard Guenther  <rguenther@suse.de>
18951
18952         PR tree-optimization/43987
18953         * tree-ssa-structalias.c (could_have_pointers): For possibly
18954         address-taken variables force pointers to be recorded.
18955         (create_variable_info_for_1): Likewise.
18956         (push_fields_onto_fieldstack): Pass in wheter all fields
18957         must have pointers.
18958         (find_func_aliases): Query types instead of vars whether
18959         they contain pointers where appropriate.
18960
18961 2010-05-06  Jan Hubicka  <jh@suse.cz>
18962
18963         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
18964         (record_reference, mark_address, mark_load, mark_store): Record
18965         references.
18966         (record_references_in_initializer): Update call of record_references.
18967         (rebuild_cgraph_edges): Remove all references before rebuiding.
18968         * cgraph.c (cgraph_create_node): Clear ref list.
18969         (cgraph_remove_node): Remove references.
18970         (dump_cgraph_node): Dump references.
18971         (cgraph_clone_node): Clone references.
18972         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
18973         (struct cgraph_node, varpool_node): Add ref_lst.
18974         * ipa-ref.c: New file.
18975         * ipa-ref.h: New file.
18976         * ipa-ref-inline.h: New file.
18977         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
18978         (referenced_from_other_partition_p): New function.
18979         (lto_output_varpool_node): Take set arugment; call
18980         referenced_from_other_partition.
18981         (lto_output_ref): New.
18982         (add_references): New.
18983         (output_refs): New.
18984         (output_cgraph): Compute boundary based on references; output refs.
18985         (output_varpool): Accept cgraph_node_set argument.
18986         (input_ref): New.
18987         (input_refs): New.
18988         (input_cgraph): Call input_refs.
18989         * lto-section-in.c (lto_section_name): Add refs.
18990         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
18991         (ipa-ref.o): New file.
18992         * varpool.c (varpool_node): Clear ipa ref list.
18993         (varpool_remove_node): Remove references.
18994         (dump_varpool_node): Dump references.
18995         (varpool_assemble_decl): Only compile finalized ones.
18996         (varpool_extra_name_alias): Initialize ref list.
18997         * lto-streamer.c (lto-get_section_name): Add .refs section.
18998         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
18999         (referenced_from_other_partition_p): Declared.
19000
19001 2010-05-06  Ira Rosen  <irar@il.ibm.com>
19002
19003         PR tree-optimization/43901
19004         * tree-vect-stmts.c (vectorizable_call): Assert that vector
19005         type is not NULL if it's transformation phase, and return
19006         FALSE if it's analysis.
19007         (vectorizable_conversion, vectorizable_operation,
19008         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
19009
19010 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
19011
19012         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19013         Delete.
19014         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19015         New define.
19016         * config/mips/mips-protos.h
19017         (mips_small_register_classes_for_mode_p): Delete prototype.
19018
19019 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
19020
19021         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
19022         * config/arm/arm.c (multiple_operation_profitable_p,
19023         compute_offset_order): New static functions.
19024         (load_multiple_sequence, store_multiple_sequence): Use them.
19025         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
19026         memory offsets, not register numbers.
19027         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
19028
19029 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
19030
19031         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
19032         (get_pending_sizes, put_pending_size, put_pending_sizes):
19033         Update the uses of pending_sizes.
19034         * c-decl.c (store_parm_decls): Likewise.
19035         * c-tree.h (struct c_arg_info): Likewise.
19036         * tree.h: Update the prototype for get_pending_sizes and
19037         put_pending_sizes.
19038
19039 2010-05-05  Jason Merrill  <jason@redhat.com>
19040
19041         PR debug/43370
19042         * c-common.c (handle_aligned_attribute): Respect
19043         ATTR_FLAG_TYPE_IN_PLACE.
19044
19045         PR testsuite/43758
19046         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
19047         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19048         (TARGET_INITIALIZER): Use it.
19049         * c-common.c (attribute_takes_identifier_p): Call it.
19050         * c-common.h: Update prototype.
19051         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
19052         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19053
19054 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19055
19056         PR debug/43950
19057         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
19058         DW_ID_down_case for Fortran compilation units.
19059
19060 2010-05-05  Jan Hubicka  <jh@suse.cz>
19061
19062         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
19063         handle aliases.
19064
19065 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
19066
19067         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
19068         a variable-sized RESULT_DECL.
19069
19070 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
19071
19072         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
19073
19074 2010-05-05  Jason Merrill  <jason@redhat.com>
19075
19076         PR c++/43787
19077         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
19078         returns GS_OK.
19079         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
19080
19081 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
19082             Jakub Jelinek  <jakub@redhat.com>
19083
19084         PR debug/43478
19085         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
19086         (dead_debug_init, dead_debug_finish): New functions.
19087         (dead_debug_add, dead_debug_insert_before): Likewise.
19088         (df_note_bb_compute): Initialize a dead_debug object, add dead
19089         debug uses to it, insert debug bind insns before death insns,
19090         reset debug insns that refer to pending uses at the end.
19091         * rtl.h (make_debug_expr_from_rtl): New prototype.
19092         * varasm.c (make_debug_expr_from_rtl): New function.
19093
19094 2010-05-05  Jan Hubicka  <jh@suse.cz>
19095
19096         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
19097         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
19098         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
19099         lto_varpool_encoder_deref, lto_varpool_encoder_size,
19100         lto_varpool_encoder_encode_initializer_p,
19101         lto_set_varpool_encoder_encode_initializer): New functions.
19102         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
19103         call output_varpool.
19104         (input_varpool_node): Do not always set analyzed.
19105         (input_cgraph_1): Return vector of cgraph nodes.
19106         (input_varpool_1): Return vector of varpools.
19107         (input_cgraph): Free the vectors.
19108         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19109         output only initializers needed.
19110         (lto_output): Only call output_cgraph.
19111         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
19112         * lto-section-out.c (lto_new_out_decl_state): Initialize
19113         state->varpool_node_encoder.
19114         * lto-streamer.h (lto_varpool_encoder_d): New.
19115         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
19116         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
19117         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
19118         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
19119         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
19120         Declare.
19121         (output_varpool, input_varpool): Remove declarations.
19122
19123 2010-05-05  Jan Hubicka  <jh@suse.cz>
19124
19125         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
19126         with body can prevail.
19127
19128 2010-05-05  Jan Hubicka  <jh@suse.cz>
19129
19130         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
19131         size.
19132
19133 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19134
19135         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
19136
19137         * gengtype.h (erro_at_line): Constify pos argument.
19138
19139         * gengtype.c: Include hashtab.h.
19140         (enum gc_used): Document GC_MAYBE_POINTED_TO.
19141         (error_at_line): Constify pos argument.
19142         (do_typedef): Initialize p->opt field.
19143         (get_file_gtfilename): Fix comment typo.
19144         (struct walk_type_data): Constify line field.
19145         (get_output_file_for_structure): New function.
19146         (write_local_func_for_structure): Constify orig_s argument.
19147         Use get_output_file_for_structure.
19148         (write_func_for_structure): Use get_output_file_for_structure.
19149         (INDENT): New define.
19150         (dump_pair, dump_type, dump_type_list, dump_typekind)
19151         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
19152         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
19153         functions.
19154         (seen_types): New variable.
19155         (main): New variable do_dump.  Process "-d" command line option.
19156         Call dump_everything if dump requested.
19157
19158 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19159
19160         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
19161         in a temporary instead of invoking the macro multiple times.
19162         (track_expr_p): Likewise.
19163
19164 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
19165
19166         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
19167         per new semantics.
19168         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
19169         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
19170         conditions for printing notes.
19171         * common.opt (-Wcoverage-mismatch): Allow negative, default to
19172         true, update documentation.
19173         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
19174
19175 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
19176
19177         PR c/43981
19178         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
19179         on dimen.
19180
19181 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19182
19183         PR target/43799
19184         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
19185         (*sse_prologue_save_insn1): Likewise.
19186         (SSE prologue save splitter): Likewise.
19187
19188 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
19189
19190         * tree.c (free_lang_data_in_one_sizepos): New inline function.
19191         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
19192         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
19193         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
19194         all decls.  Call it on DECL_FIELD_OFFSET of fields.
19195         (find_decls_types_r): Follow DECL_VALUE_EXPR.
19196         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
19197
19198 2010-05-04  Martin Jambor  <mjambor@suse.cz>
19199
19200         * tree-sra.c (build_access_from_expr_1): The first parameter type
19201         changed to simple tree.
19202         (build_access_from_expr): Likewise, gsi parameter was eliminated.
19203         (scan_assign_result): Renamed to assignment_mod_result, enum elements
19204         renamed as well.
19205         (build_accesses_from_assign): Removed all parameters except for a
19206         simple gimple statement.  Now returns a simple bool.
19207         (scan_function): All non-analysis parts moved to separate functions
19208         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
19209         parameters and updated both callers.
19210         (sra_modify_expr): Removed parameter data.
19211         (sra_modify_function_body): New function.
19212         (perform_intra_sra): Call sra_modify_function_body to modify the
19213         function body.
19214         (replace_removed_params_ssa_names): Parameter data changed into
19215         adjustments vector.
19216         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
19217         changed the parameter dont_convert to convert with the opposite
19218         meaning.
19219         (sra_ipa_modify_assign): Parameter data changed into adjustments
19220         vector, return value changed to bool.
19221         (ipa_sra_modify_function_body): New function.
19222         (sra_ipa_reset_debug_stmts): Updated a comment.
19223         (modify_function): Use ipa_sra_modify_function_body to modify function
19224         body.
19225
19226 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19227
19228         PR middle-end/43671
19229         * alias.c (true_dependence): Handle the same VALUE in x and mem.
19230         (canon_true_dependence): Likewise.
19231         (write_dependence_p): Likewise.
19232
19233 2010-05-04  Jan Hubicka  <jh@suse.cz>
19234
19235         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
19236         * cgraphbuild.c: Include ipa-utils.h
19237         (record_reference_ctx): New struct.
19238         (record_reference): Simplify to work on initializers; not statements.
19239         (mark_address, mark_load, mark_store): New.
19240         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19241         walk PHI nodes too.
19242         (record_references_in_initializer): Update use of record_reference.
19243         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19244         walk PHI nodes too.
19245
19246 2010-05-04  Jan Hubicka  <jh@suse.cz>
19247
19248         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
19249         node will be removed anyway.
19250         (lto_varpool_replace_node): Allow also unanalyzed nodes;
19251         relink aliases of node into prevailing node.
19252         * varpool.c (varpool_remove_node): Remove aliases properly;
19253         when removing node, remove all its aliases too; remove DECL_INITIAL
19254         of removed node; ggc_free the varpool node.
19255
19256 2010-05-04  Richard Guenther  <rguenther@suse.de>
19257
19258         PR tree-optimization/43879
19259         * tree-ssa-structalias.c (alias_get_name): Use
19260         DECL_ASSEMBLER_NAME if available.
19261         (create_function_info_for): Return the varinfo node.
19262         (ipa_pta_execute): Associate same-body aliases and extra names
19263         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
19264
19265 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19266
19267         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
19268
19269 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
19270
19271         PR bootstrap/43964
19272         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
19273         only if HONOR_REG_ALLOC_ORDER is not defined.
19274
19275 2010-05-04  Richard Guenther  <rguenther@suse.de>
19276
19277         PR tree-optimization/43949
19278         * tree-vrp.c (extract_range_from_binary_expr): Only handle
19279         TRUNC_MOD_EXPR.
19280
19281 2010-04-26  Jason Merrill  <jason@redhat.com>
19282
19283         * c.opt (-fstrict-enums): New.
19284         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
19285
19286 2010-05-03  David Ung  <davidu@mips.com>
19287             James E. Wilson  <wilson@codesourcery.com>
19288
19289         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
19290         emit the trap instruction before the divide for TUNE_74K.
19291
19292 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
19293
19294         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
19295         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
19296         based on the above, for new target hook.
19297
19298         * hooks.c (hook_bool_mode_true): New generic hook.
19299         * hooks.h (hook_bool_mode_true): Add prototype.
19300
19301         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
19302         target hook.
19303         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
19304         target hook, set to hook_bool_mode_false.
19305         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
19306         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
19307         with targetm.small_register_classes_for_mode_p.
19308         (find_reusable_reload): Likewise.
19309         (combine_reloads): Likewise.
19310         * reload1.c (reload_as_needed): Likewise.
19311         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
19312         * ifcvt.c (noce_process_if_block, check_cond_move_block,
19313         dead_or_predicable): Likewise.
19314         * regmove.c (optimize_reg_copy_1): Likewise.
19315         * calls.c (prepare_call_address): Likewise.
19316         (precompute_register_parameters): Likewise.
19317
19318         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
19319         hook definition.
19320         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
19321         implementation of the hook that considers all register classes
19322         small except for SH64.
19323         (sh_override_options): Use the new hook.
19324         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
19325         Add prototype.
19326
19327         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
19328         hook definition.
19329         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
19330         implementation of the hook that considers all register classes
19331         small for THUMB1.
19332         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
19333         Add prototype.
19334
19335         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
19336         hook definition.
19337         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
19338         implementation of the hook that considers all register classes
19339         small for MIPS16.
19340         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
19341         Add prototype.
19342
19343         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
19344         hook definition.
19345         * config/m32c/m32c.h: Likewise.
19346         * config/pdp11/pdp11.h: Likewise.
19347         * config/avr/avr.h: Likewise.
19348         * config/xtensa/xtensa.h: Likewise.
19349         * config/m68hc11/m68hc11.h: Likewise.
19350         * config/mn10300/mn10300.h: Likewise.
19351         * config/mcore/mcore.h: Likewise.
19352         * config/h8300/h8300.h: Likewise.
19353         * config/bfin/bfin.h: Likewise.
19354
19355         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
19356         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
19357
19358 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
19359
19360         * double-int.h (tree_to_double_int): Remove macro.
19361         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
19362         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19363         (tree_to_double_int): New function.
19364         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
19365         Move ...
19366         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19367
19368 2010-05-03  Richard Guenther  <rguenther@suse.de>
19369
19370         PR tree-optimization/43971
19371         * tree-ssa-structalias.c (get_constraint_for_1): Fix
19372         constraints in the !flag_delete_null_pointer_checks case.
19373
19374 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
19375
19376         PR debug/43972
19377         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
19378         result mode matches original rtl mode.
19379
19380 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
19381
19382         PR target/43888
19383         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
19384
19385 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19386
19387         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
19388         when processing flag options.
19389
19390 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19391
19392         * gcov-iov.c (main): Change format string placeholder
19393         from %#08x to 0x%08x.
19394         * genchecksum.c (dosum): Change format string placeholder
19395         from %#02x to 0x%02x.
19396
19397 2010-05-02  Richard Guenther  <rguenther@suse.de>
19398
19399         PR tree-optimization/43879
19400         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
19401
19402 2010-05-02  Bruno Haible  <bruno@clisp.org>
19403
19404         * doc/extend.texi (Function Attributes): Fix a typo.
19405
19406 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19407
19408         Revert:
19409         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
19410         placeholder from 0x%x to %#x.
19411         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19412         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19413         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19414         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19415         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19416         * config/i386/i386.c (ix86_target_string): Ditto.
19417         * config/i386/i386.c (output_pic_addr_const): Ditto.
19418         (print_operand): Ditto.
19419
19420 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19421
19422         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
19423         placeholder from 0x%x to %#x.
19424         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
19425         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
19426         (ASM_OUTPUT_DEBUG_DATA): Ditto.
19427         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
19428         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
19429         * optc-gen.awk: Ditto.
19430         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
19431         (HOST_WIDE_INT_PRINT_HEX): Ditto.
19432         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
19433         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19434
19435 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19436
19437         * target.h (struct calls): Add function_value_regno_p field.
19438         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
19439         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
19440         * targhooks.c (default_function_value_regno_p): New function.
19441         * targhooks.h (default_function_value_regno_p): Declare function.
19442         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
19443         * builtins.c. (apply_result_size): (Ditto.).
19444         * combine.c. (likely_spilled_retval_p): (Ditto.).
19445         * mode-switching.c. Include 'target.h'.
19446         (create_pre_exit): Use function_value_regno_p hook.
19447         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
19448         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
19449         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
19450
19451         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
19452         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
19453         (ix86_function_value_regno_p): Declare as static, change argument
19454         type to const unsigned int.
19455         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
19456
19457 2010-05-01  Richard Guenther  <rguenther@suse.de>
19458
19459         PR tree-optimization/43949
19460         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
19461         types.
19462         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
19463
19464 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19465
19466         * rtl.h (CONST_DOUBLE_P): Define.
19467         (rtx_to_double_int): Declare.
19468         * emit-rtl.c (rtx_to_double_int): New function.
19469         * dwarf2out.c (insert_double): New function.
19470         (loc_descriptor, add_const_value_attribute): Clean up, use
19471         rtx_to_double_int and insert_double functions.
19472
19473 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
19474
19475         * doc/extend.texi (Inline): Add missing return keyword to examples.
19476         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
19477         "command-line".
19478
19479 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
19480
19481         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
19482         the variable part of the offset as well.  Use highest_pow2_factor for
19483         all alignment checks.
19484
19485 2010-04-30  Richard Guenther  <rguenther@suse.de>
19486
19487         PR tree-optimization/43879
19488         * tree-ssa-structalias.c (type_could_have_pointers): Functions
19489         can have pointers.
19490
19491 2010-04-30  Jan Hubicka  <jh@suse.cz>
19492
19493         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
19494         varpool.
19495         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
19496
19497 2010-04-30  Jan Hubicka  <jh@suse.cz>
19498
19499         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
19500         New.
19501         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
19502         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
19503         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
19504         cgraph_node_set_needs_ltrans_p): Remove.
19505
19506 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19507
19508         * sdbout.c: Include vec.h, do not include varray.h.
19509         (deferred_global_decls, sdbout_global_decl,
19510         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
19511         * toplev.c: Do not include varray.h.
19512         (dump_memory_report): Do not dump VARRAY statistics.
19513         * gengtype.c (open_base_file): Ignore varray.h.
19514         * Makefile.in: Update for abovementioned changes.
19515         Remove all traces of varray.c and varray.h.
19516         * varray.c: Remove file.
19517         * varray.h: Remove file.
19518
19519 2010-04-30  Jan Hubicka  <jh@suse.cz>
19520
19521         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
19522         references.
19523
19524 2010-04-30  Jan Hubicka  <jh@suse.cz>
19525
19526         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
19527         needed.
19528
19529 2010-04-30  Richard Guenther  <rguenther@suse.de>
19530
19531         * tree-ssa-structalias.c (get_constraint_for_1): Generate
19532         constraints for CONSTRUCTOR.
19533
19534 2010-04-30  Richard Guenther  <rguenther@suse.de>
19535
19536         PR lto/43946
19537         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
19538         first after all lowering passes.
19539
19540 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19541
19542         * toplev.c: Include varray.h for statistics dumping.
19543         * tree.h: Do not declare varray_head_tag.
19544         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
19545         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
19546         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
19547         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
19548         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
19549         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
19550         c-common.c, c-common.h, reg-stack.c, basic-block.h,
19551         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
19552         include varray.h.
19553         * Makefile.in: Update for abovementioned changes.
19554
19555 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
19556
19557         PR debug/43942
19558         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
19559
19560 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19561
19562         * config/picochip/picochip.c (picochip_legitimize_address): Define.
19563         Use this function to do machine-specific conversion.
19564         (picochip_legitimize_reload_address): Likewise.
19565         (picochip_legitimate_address_p): Check valid base register only if
19566         strict.
19567         (picochip_check_conditional_copy): Check for modw only if opnd is
19568         register.
19569         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
19570         to call the function in c.
19571         * config/picochip/picochip-protos.h
19572         (picochip_legitimize_reload_address): Define.
19573         * config/picochip/picochip.md (supported_compare1): Define.
19574
19575 2010-04-30  Jan Hubicka  <jh@suse.cz>
19576
19577         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
19578         (cgraph_global_info): Remove inlined.
19579         (LTO_cgraph_tag_names): Remove.
19580         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
19581         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
19582         simplify cgraph tags and document.
19583         (lto_output_node): Use only LTO_cgraph_unavail_node and
19584         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
19585         for_functions_valid, global info, process and output flags.
19586         (input_overwrite_node): Initialize estimated stack size and
19587         estimated growth.  Do not read flags we no longer store.
19588         (input_node): Likewise do not read info no longer stored.
19589         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
19590         flag.
19591
19592 2010-04-30  Richard Guenther  <rguenther@suse.de>
19593
19594         PR tree-optimization/43879
19595         * tree-ssa-structalias.c (get_constraint_for_1): Properly
19596         handle non-zero initializers.
19597
19598 2010-04-30  Richard Guenther  <rguenther@suse.de>
19599
19600         * builtins.c (fold_builtin_1): Delete free (0).
19601
19602 2010-04-29  Jan Hubicka  <jh@suse.cz>
19603
19604         * gengtype.c (open_base_files): Add lto-streamer.h
19605         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
19606         (pass_ipa_cp): GGC collect.
19607         * toplev. (compile_file): Do not output symbols.
19608         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
19609         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
19610         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
19611         * lto-section-in.c: Include ggc.h
19612         (lto_new_in_decl_state): Alloc in GGC.
19613         (lto_delete_in_decl_state): Likewise.
19614         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
19615         Collect.
19616
19617 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19618
19619         PR target/42895
19620         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
19621         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
19622         (HONOR_REG_ALLOC_ORDER): Describe new macro.
19623         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
19624         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
19625         account only if HONOR_REG_ALLOC_ORDER is not defined.
19626         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
19627         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
19628
19629 2010-04-29  Jon Grant  <04@jguk.org>
19630
19631         * collect2.c (vflag): Change type from int to bool.
19632         (debug): Likewise.
19633         (helpflag): New global bool.
19634         (main): Set vflag and debug with boolean, not integer truth values.
19635         Accept new "--help" option and output usage text if found.
19636         * collect2.h (vflag): Update prototype.
19637         (debug): Likewise.
19638
19639 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19640
19641         PR bootstrap/43936
19642         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
19643
19644 2010-04-29  Richard Guenther  <rguenther@suse.de>
19645
19646         PR bootstrap/43935
19647         * plugin.h (invoke_plugin_callbacks): Annotate arguments
19648         with ATTRIBUTE_UNUSED.
19649
19650 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19651
19652         PR target/43921
19653         * config/i386/i386.c (get_some_local_dynamic_name): Replace
19654         INSN_P with NONDEBUG_INSN_P.
19655         (distance_non_agu_define): Likewise.
19656         (distance_agu_use): Likewise.
19657
19658 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19659
19660         From Dominique d'Humieres  <dominiq@lps.ens.fr>
19661         PR bootstrap/43858
19662         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
19663         test_set.
19664
19665 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
19666
19667         * plugin.h (invoke_plugin_callbacks): New inline function.
19668         * plugin.c (flag_plugin_added): New global flag.
19669         (add_new_plugin): Initialize above flag.
19670         (invoke_plugin_callbacks): Rename to ...
19671         (invoke_plugin_callbacks_full): ... this.
19672
19673 2010-04-28  Jan Hubicka  <jh@suse.cz>
19674
19675         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
19676         (lto_varpool_replace_node): New.
19677         (lto_symtab_resolve_symbols): Resolve varpool nodes.
19678         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
19679         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
19680         * cgraph.h (varpool_node_ptr): New type.
19681         (varpool_node_ptr): New vector.
19682         (varpool_node_set_def): New structure.
19683         (varpool_node_set): New type.
19684         (varpool_node_set): New vector.
19685         (varpool_node_set_element_def): New structure.
19686         (varpool_node_set_element, const_varpool_node_set_element): New types.
19687         (varpool_node_set_iterator): New type.
19688         (varpool_node): Add prev pointers, add used_from_other_partition,
19689         in_other_partition.
19690         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
19691         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
19692         varpool_get_node, varpool_remove_node): Declare.
19693         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
19694         varpool_node_set_size): New inlines.
19695         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
19696         * tree-pass.h (varpool_node_set_def): Forward declare.
19697         (ipa_opt_pass_d): Summary writting takes vnode sets too.
19698         (ipa_write_optimization_summaries): Update prototype.
19699         * ipa-cp.c (ipcp_write_summary): Update.
19700         * ipa-reference.c (ipa_reference_write_summary): Update.
19701         * lto-cgraph.c (lto_output_varpool_node): New static function.
19702         (output_varpool): New function.
19703         (input_varpool_node): New static function.
19704         (input_varpool_1): New function.
19705         (input_cgraph): Input varpool.
19706         * ipa-pure-const.c (pure_const_write_summary): Update.
19707         * lto-streamer-out.c (lto_output): Update, output varpool too.
19708         (write_global_stream): Kill WPA hack.
19709         (produce_asm_for_decls): Update.
19710         (output_alias_pair_p): Handle variables.
19711         (output_unreferenced_globals): Output only needed partition of varpool.
19712         * ipa-inline.c (inline_write_summary): Update.
19713         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
19714         cgraph.
19715         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
19716         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
19717         varpool_node_set_new, varpool_node_set_add,
19718         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
19719         debug_varpool_node_set): New functions.
19720         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
19721         (execute_one_pass): Process new decls too.
19722         (ipa_write_summaries_2): Pass around vsets.
19723         (ipa_write_summaries_1): Likewise.
19724         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
19725         to add.
19726         (ipa_write_optimization_summaries_1): Pass around vsets.
19727         (ipa_write_optimization_summaries): Likewise.
19728         * varpool.c (varpool_get_node): New.
19729         (varpool_node): Update doubly linked lists.
19730         (varpool_remove_node): New.
19731         (dump_varpool_node): More dumping.
19732         (varpool_enqueue_needed_node): Update doubly linked lists.
19733         (decide_is_variable_needed): Kill ltrans hack.
19734         (varpool_finalize_decl): Kill lto hack.
19735         (varpool_assemble_decl): Skip decls in other partitions.
19736         (varpool_assemble_pending_decls): Update doubly linkes lists.
19737         (varpool_empty_needed_queue): Likewise.
19738         (varpool_extra_name_alias): Likewise.
19739         * lto-streamer.c (lto_get_section_name): Add vars section.
19740         * lto-streamer.h (lto_section_type): Update.
19741         (output_varpool, input_varpool): Declare.
19742
19743 2010-04-28  Mike Stump  <mikestump@comcast.net>
19744
19745         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
19746
19747 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19748
19749         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
19750         record or union type with RECORD_OR_UNION_TYPE_P predicate.
19751         (lto_input_ts_type_tree_pointers): Likewise.
19752         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
19753         (lto_output_ts_type_tree_pointers): Likewise.
19754
19755 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19756
19757         Uniquization of constants at the Tree level
19758         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
19759         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
19760         bit to the end.
19761         (tree_output_constant_def): Declare.
19762         * gimplify.c (gimplify_init_constructor): When using block copy, first
19763         uniquize the constant constructor on the RHS.
19764         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
19765         DECL_IN_CONSTANT_POOL flag.
19766         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
19767         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
19768         constant pool.
19769         (assemble_variable): Deal with symbols belonging to the tree constant
19770         pool.
19771         (get_constant_section): Add ALIGN parameter and simplify.
19772         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
19773         (assemble_constant_contents): Use the expression of the VAR_DECL.
19774         (output_constant_def_contents): Use the alignment of the VAR_DECL.
19775         (tree_output_constant_def): New global function.
19776         (mark_constant): Use the expression of the VAR_DECL.
19777         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
19778         its expression.
19779         (output_object_block): Likewise and assemble the expression.
19780
19781 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19782
19783         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
19784         hash_tree, eq_tree): New tree hash table.
19785         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
19786         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
19787         lto_orig_address_remove): Reimplement.
19788
19789 2010-04-28  Xinliang David Li  <davidxl@google.com>
19790
19791         PR c/42643
19792         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
19793         (compute_uninit_opnds_pos): New function.
19794         (is_non_loop_exit_postdominating): New function.
19795         (compute_control_dep_chain): New function.
19796         (find_pdom): New function.
19797         (convert_control_dep_chain_into_preds): New function.
19798         (find_predicates): New function.
19799         (find_control_equiv_block): New function.
19800         (collect_phi_def_edges): New function.
19801         (find_def_preds): New function.
19802         (find_dom): New function.
19803         (dump_predicates): New function.
19804         (get_cmp_code): New function.
19805         (is_value_included_in): New function.
19806         (find_matching_predicate_in_rest_chains): New function.
19807         (use_pred_not_overlap_with_undef_path_pred): New function.
19808         (is_use_properly_guarded): New function.
19809         (normalize_cond_1): New function.
19810         (is_and_or_or): New function.
19811         (normalize_cond): New function.
19812         (is_gcond_subset_of): New function.
19813         (is_subset_of_any): New function.
19814         (is_or_set_subset_of): New function.
19815         (is_and_set_subset_of): New function.
19816         (is_norm_cond_subset_of): New function.
19817         (is_pred_expr_subset_of): New function.
19818         (is_pred_chain_subset_of): New function.
19819         (is_included_in): New function.
19820         (is_superset_of): New function.
19821         (find_uninit_use): New function.
19822         (warn_uninitialized_phi): New function.
19823         (compute_possibly_undefined_names): New function.
19824         (ssa_undefined_value_p): New function.
19825         (execute_late_warn_uninitialized): New function.
19826         * tree-ssa.c (ssa_undefined_value_p): Removed.
19827         (warn_uninit): Changed to extern.
19828         (warn_uninitialized_phi): Removed.
19829         (warn_uninitialized_vars): Changed to extern.
19830         (execute_late_warn_uninitialized): Removed
19831         * tree-flow.h: Add new prototypes.
19832         * timevar.def: Add new time variable.
19833         * Makefile.in: Add new build file.
19834
19835 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
19836
19837         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
19838         type if available.
19839
19840 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19841
19842         PR target/22224
19843         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
19844
19845 2010-04-28  Martin Jambor  <mjambor@suse.cz>
19846
19847         * cgraph.h (struct cgraph_node): New field indirect_calls.
19848         (struct cgraph_indirect_call_info): New type.
19849         (struct cgraph_edge): Removed field indirect_call. New fields
19850         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
19851         (cgraph_create_indirect_edge): Declare.
19852         (cgraph_make_edge_direct): Likewise.
19853         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
19854         * ipa-prop.h (struct ipa_param_call_note): Removed.
19855         (struct ipa_node_params): Removed field param_calls.
19856         (ipa_create_all_structures_for_iinln): Declare.
19857         * cgraph.c: Described indirect edges and uids in initial comment.
19858         (cgraph_add_edge_to_call_site_hash): New function.
19859         (cgraph_edge): Search also among the indirect edges, use
19860         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
19861         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
19862         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
19863         site hash.
19864         (initialize_inline_failed): Assign a reason to indirect edges.
19865         (cgraph_create_edge_1): New function.
19866         (cgraph_create_edge): Moved some functionality to
19867         cgraph_create_edge_1.
19868         (cgraph_create_indirect_edge): New function.
19869         (cgraph_edge_remove_callee): Add an assert checking for
19870         non-indirectness.
19871         (cgraph_edge_remove_caller): Special-case indirect edges.
19872         (cgraph_remove_edge): Likewise.
19873         (cgraph_set_edge_callee): New function.
19874         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
19875         (cgraph_make_edge_direct): New function.
19876         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
19877         the declaration of the call statement matches.
19878         (cgraph_node_remove_callees): Special-case indirect edges.
19879         (cgraph_clone_edge): Likewise.
19880         (cgraph_clone_node): Clone also the indirect edges.
19881         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
19882         indirect_call, dump count of indirect_calls edges.
19883         * ipa-prop.c (iinlining_processed_edges): New variable.
19884         (ipa_note_param_call): Create indirect edges instead of
19885         creating notes.  New parameter node.
19886         (ipa_analyze_call_uses): New parameter node, pass it on to
19887         ipa_note_param_call.
19888         (ipa_analyze_stmt_uses): Likewise.
19889         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
19890         (print_edge_addition_message): Work on edges rather than on notes.
19891         (update_call_notes_after_inlining): Likewise, renamed to
19892         update_indirect_edges_after_inlining.
19893         (ipa_create_all_structures_for_iinln): New function.
19894         (ipa_free_node_params_substructures): Do not free notes.
19895         (ipa_edge_duplication_hook): Propagate bits within
19896         iinlining_processed_edges bitmap.
19897         (ipa_node_duplication_hook): Do not duplicate notes.
19898         (free_all_ipa_structures_after_ipa_cp): Renamed to
19899         ipa_free_all_structures_after_ipa_cp.
19900         (free_all_ipa_structures_after_iinln): Renamed to
19901         ipa_free_all_structures_after_iinln.
19902         (ipa_write_param_call_note): Removed.
19903         (ipa_read_param_call_note): Removed.
19904         (ipa_write_indirect_edge_info): New function.
19905         (ipa_read_indirect_edge_info): Likewise.
19906         (ipa_write_node_info): Do not stream notes, do stream information
19907         in indirect edges.
19908         (ipa_read_node_info): Likewise.
19909         (lto_ipa_fixup_call_notes): Removed.
19910         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
19911         * ipa-inline.c (pass_ipa_inline): Likewise.
19912         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
19913         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
19914         * tree-inline.c (copy_bb): Removed an unnecessary double check for
19915         is_gimple_call.
19916         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
19917         edges.
19918         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
19919         (output_cgraph): Stream also indirect edges.
19920         (lto_output_edge): Added capability to stream indirect edges.
19921         (input_edge): Likewise.
19922         (input_cgraph_1): Likewise.
19923         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
19924         of indirect edges.
19925
19926 2010-04-28  Richard Guenther  <rguenther@suse.de>
19927
19928         PR tree-optimization/43879
19929         PR tree-optimization/43909
19930         * tree-ssa-structalias.c (struct variable_info): Add
19931         only_restrict_pointers flag.
19932         (new_var_info): Initialize it.  Increment stats.total_vars here.
19933         (create_function_info_for): Do not increment stats.total_vars here.
19934         (get_function_part_constraint): Fix build with C++.
19935         (insert_into_field_list): Remove.
19936         (push_fields_onto_fieldstack): Properly merge fields.
19937         (create_variable_info_for): Split and simplify.
19938         (create_variable_info_for_1): New piece.
19939         (intra_create_variable_infos): Properly make restrict constraints
19940         from parameters.
19941
19942 2010-04-28  Richard Guenther  <rguenther@suse.de>
19943
19944         PR c++/43880
19945         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
19946
19947 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19948             Jan Hubicka  <hubicka@ucw.cz>
19949
19950         * doc/invoke.texi (-Wsuggest-attribute=const,
19951         -Wsuggest-attribute=pure): Document.
19952         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
19953         (function_always_visible_to_compiler_p,
19954         suggest_attribute, warn_function_pure, warn_function_const):
19955         New functions.
19956         (check_call): Improve debug info.
19957         (analyze_function): Do not check availability.
19958         (add_new_function): Check availability.
19959         (propagate): Output warnings.
19960         (skip_function_for_local_pure_const): New function.
19961         (local_pure_const): Use it; output warnings.
19962         * common.opt (Wsuggest-attribute=const,
19963         Wsuggest-attribute=pure): New.
19964
19965 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19966
19967         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
19968         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
19969         or DW_CFA_def_cfa_offset{,_sf}.
19970
19971 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19972
19973         * tree.h: Fix truncated long macros.
19974
19975 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
19976
19977         * collect2.c (TARGET_64BIT): Redefine to target's default.
19978         * tlink.c: Likewise.
19979         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
19980         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
19981         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
19982         for underscoring __USER_LABEL_PREFIX__.
19983         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
19984         (SUB_LINK_ENTRY32): New.
19985         (SUB_LINK_ENTRY64): New.
19986         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
19987         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
19988         (SUB_LINK_ENTRY64): New.
19989         (SUB_LINK_ENTRY): New.
19990         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
19991         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
19992         x64 target is choosen.
19993         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
19994         * configure: Regenerated.
19995         * configure.ac (leading-mingw64-underscores): Option added.
19996
19997 2010-04-27  Jan Hubicka  <jh@suse.cz>
19998
19999         * doc/invoke.texi (-fipa-profile): Document.
20000         * opts.c (decode_options): Enable ipa-profile at -O1.
20001         * timevar.def (TV_IPA_PROFILE): Define.
20002         * common.opt (fipa-profile): Add.
20003         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
20004         flag for clones.
20005         (cgraph_propagate_frequency): Handle only local ones.
20006         * tree-pass.h (pass_ipa_profile): Declare.
20007         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
20008         (pass_ipa_profile): Use TV_IPA_PROFILE.
20009         * ipa.c (ipa_profile): New function.
20010         (gate_ipa_profile): Likewise.
20011         (pass_ipa_profile): New global variable.
20012         * passes.c (pass_ipa_profile): New.
20013
20014 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
20015
20016         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
20017
20018 2010-04-27  Martin Jambor  <mjambor@suse.cz>
20019
20020         PR middle-end/43812
20021         * ipa.c (dissolve_same_comdat_group_list): New function.
20022         (function_and_variable_visibility): Call
20023         dissolve_same_comdat_group_list when comdat group contains external or
20024         newly local nodes.
20025         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
20026         lists are circular and that they contain only DECL_ONE_ONLY nodes.
20027
20028 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
20029
20030         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
20031         (const_hash_1) <VECTOR_CST>: New case.
20032         (compare_constant) <VECTOR_CST>: Likewise.
20033         <ADDR_EXPR>: Deal with LABEL_REFs.
20034         (copy_constant) <VECTOR_CST>: New case.
20035
20036 2010-04-27  Jan Hubicka  <jh@suse.cz>
20037
20038         * cgraph.c (cgraph_propagate_frequency): New function.
20039         * cgraph.h (cgraph_propagate_frequency): Declare.
20040         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
20041         cgraph_propagate_frequency.
20042
20043 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
20044
20045         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
20046
20047 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
20048
20049         PR target/40657
20050         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
20051         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
20052         here to determine which regs to push and how much stack to reserve.
20053
20054 2010-04-27  Jie Zhang  <jie@codesourcery.com>
20055
20056         * doc/gimple.texi (gimple_statement_with_ops): Remove
20057         addresses_taken field.
20058         (gimple_statement_with_memory_ops): Likewise.
20059
20060 2010-04-27  Jan Hubicka  <jh@suse.cz>
20061
20062         * tree-inline.c (eni_inlining_weights): Remove.
20063         (estimate_num_insns): Special case more builtins.
20064
20065 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
20066
20067         PR c/32207
20068         * c-typeck.c (build_binary_op): Move forward check for comparison
20069         pointer with null pointer constant and adjust the diagnostic message.
20070
20071 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
20072
20073         PR lto/42776
20074         * configure.ac (gcc_cv_as_section_has_align): Set if installed
20075         binutils supports extended .section directive needed by LTO, or
20076         warn if older binutils found.
20077         (LTO_BINARY_READER): New AC_SUBST'd variable.
20078         (LTO_USE_LIBELF): Likewise.
20079         * config.gcc (lto_binary_reader): New target-specific configure
20080         variable.
20081         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
20082         (LTO_USE_LIBELF): Likewise.
20083         * configure: Regenerate.
20084
20085         * collect2.c (is_elf): Rename from this ...
20086         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
20087          object files in addition to ELF-formatted ones.
20088         (scan_prog_file): Caller updated.  Also allow for LTO info marker
20089         symbol to be prefixed or not by an extra underscore.
20090
20091         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
20092         * config/i386/winnt.c: Also #include lto-streamer.h
20093         (i386_pe_asm_named_section): Specify 1-byte section alignment for
20094         LTO named sections.
20095         (i386_pe_asm_output_aligned_decl_common): Add comment.
20096         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
20097
20098 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
20099
20100         PR target/43889
20101         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
20102         Add missing earlyclobber for second alternative.
20103
20104 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
20105
20106         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
20107         bits for artificial defs at the top of the block.
20108         * fwprop.c (single_def_use_enter_block): Don't call it.
20109
20110 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
20111
20112         PR 43715
20113         * configure.ac: Use "$gcc_cv_nm -g" on darwin
20114         instead of "$gcc_cv_objdump -T".
20115         Use "-undefined dynamic_lookup" on darwin.
20116         * configure: Regenerate.
20117
20118 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
20119
20120         PR c/43893
20121         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
20122
20123 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20124
20125         * c-parser.c (struct c_token): Move location field up.
20126         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
20127         (struct c_declspecs): Convert typespec_word, storage_class, and
20128         default_int_p into bitfields.
20129         (struct c_declarator): Move loc field up.
20130
20131 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20132
20133         * cfgloop.h (struct loop): Move can_be_parallel field up.
20134         * ipa-prop.h (struct ip_node_params): Move bitfields up.
20135         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
20136         down.
20137         (struct iv_cand): Convert pos field into a bitfield.
20138         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
20139         field up.
20140         (struct _stmt_vec_info): Shuffle fields for better packing.
20141
20142 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20143
20144         * varasm.c (IN_NAMED_SECTION): Remove guard.
20145         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
20146         (IN_NAMED_SECTION_P): ...this.
20147         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
20148         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20149
20150 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20151
20152         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
20153         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
20154         of shadowing it.  Fix comments.
20155
20156 2010-04-26  Jan Hubicka  <jh@suse.cz>
20157
20158         * cgraph.c (cgraph_create_node): Set node frequency to normal.
20159         (cgraph_clone_node): Copy function frequency.
20160         * cgraph.h (node_frequency): New enum
20161         (struct cgraph_node): Add.
20162         * final.c (rest_of_clean_state): Update.
20163         * lto-cgraph.c (lto_output_node): Output node frequency.
20164         (input_overwrite_node): Input node frequency.
20165         * tre-ssa-loop-ivopts (computation_cost): Update.
20166         * lto-streamer-out.c (output_function): Do not output function
20167         frequency.
20168         * predict.c (maybe_hot_frequency_p): Update and handle functions
20169         executed once.
20170         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
20171         attribute lookup.
20172         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
20173         (compute_function_frequency): Set noreturn functions to be executed
20174         once.
20175         (choose_function_section): Update.
20176         * lto-streamer-in.c (input_function): Do not input function frequency.
20177         * function.c (allocate_struct_function): Do not initialize function
20178         frequency.
20179         * function.h (function_frequency): Remove.
20180         (struct function): Remove function frequency.
20181         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
20182         (try_update): Update.
20183         * tree-inline.c (initialize_cfun): Do not update function frequency.
20184         * passes.c (pass_init_dump_file): Update.
20185         * i386.c (ix86_compute_frame_layout): Update.
20186         (ix86_pad_returns): Update.
20187
20188 2010-04-26  Jie Zhang  <jie@codesourcery.com>
20189
20190         PR tree-optimization/43833
20191         * tree-vrp.c (range_int_cst_p): New.
20192         (range_int_cst_singleton_p): New.
20193         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
20194         when both operands are constants.  Use range_int_cst_p in
20195         BIT_IOR_EXPR case.
20196
20197 2010-04-26  Jan Hubicka  <jh@suse.cz>
20198
20199         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
20200
20201 2010-04-26  Richard Guenther  <rguenther@suse.de>
20202
20203         PR lto/43080
20204         * gimple.c (gimple_decl_printable_name): Deal gracefully
20205         with a NULL DECL_NAME.
20206
20207 2010-04-26  Richard Guenther  <rguenther@suse.de>
20208
20209         PR lto/42425
20210         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
20211         if emitting debug information and it is either a function
20212         or a namespace decl.
20213
20214 2010-04-26  Ira Rosen  <irar@il.ibm.com>
20215
20216         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
20217         determine if the statement is vectorizable, and a macro to access it.
20218         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20219         Skip statements that can't be vectorized. If the analysis fails,
20220         mark the statement as unvectorizable if vectorizing basic block.
20221         (vect_compute_data_refs_alignment): Likewise.
20222         (vect_verify_datarefs_alignment): Skip statements marked as
20223         unvectorizable. Add print.
20224         (vect_analyze_group_access): Skip statements that can't be
20225         vectorized. If the analysis fails, mark the statement as
20226         unvectorizable if vectorizing basic block.
20227         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
20228         * tree-vect-stmts.c (vectorizable_store): Fix the number of
20229         generated stmts for SLP.
20230         (new_stmt_vec_info): Initialize the new field.
20231         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
20232         statements marked as unvectorizable.
20233
20234 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
20235
20236         * c-common.c (flag_isoc1x): New.
20237         (flag_isoc99): Update comment.
20238         * c-common.h (flag_isoc1x): New.
20239         (flag_isoc99): Update comment.
20240         * c-cppbuiltin.c (builtin_define_float_constants): Also define
20241         __<type>_DECIMAL_DIG__.
20242         * c-opts.c (set_std_c1x): New.
20243         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
20244         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
20245         * c.opt (-std=c1x, -std=gnu1x): New options.
20246         * doc/cpp.texi: Mention -std=c1x.
20247         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
20248         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
20249         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
20250         * doc/standards.texi: Mention C1X.
20251         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
20252         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
20253         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
20254         Define for C1X.
20255
20256 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
20257
20258         * config/i386/gmon-sol2.c (_mcleanup): Change format string
20259         placeholder from 0x%x to %#x.
20260         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
20261         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
20262         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
20263         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
20264         * config/i386/i386.c (ix86_target_string): Ditto.
20265         (output_pic_addr_const): Ditto.
20266         (print_operand): Ditto.
20267
20268 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
20269
20270         * combine.c (find_split_point): Add third argument.  Use it
20271         to find nested multiply-accumulate instructions.  Adjust calls.
20272         (try_combine): Adjust call to find_split_point.
20273
20274 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
20275
20276         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
20277
20278 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
20279
20280         PR tree-optimization/41442
20281         * fold-const.c (merge_truthop_with_opposite_arm): New function.
20282         (fold_binary_loc): Call it.
20283
20284 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20285
20286         * toplev.c (general_init): Set default for fdiagnostics-show-option.
20287         * opts.c (common_handle_option): Allow disabling it.
20288         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
20289
20290 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
20291
20292         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
20293         between modes if both types are integral.
20294
20295 2010-04-23  Richard Guenther  <rguenther@suse.de>
20296
20297         PR tree-optimization/43572
20298         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
20299
20300 2010-04-23  Richard Guenther  <rguenther@suse.de>
20301
20302         PR lto/43455
20303         * tree-inline.c (tree_can_inline_p): Also check compatibility
20304         of return types.
20305
20306 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20307
20308         PR tree-optimization/43846
20309         * tree-sra.c (struct access): New flag grp_assignment_read.
20310         (build_accesses_from_assign): Set grp_assignment_read.
20311         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
20312         (enum mark_read_status): New type.
20313         (analyze_access_subtree): Propagate grp_assignment_read, create
20314         accesses also if both direct_read and root->grp_assignment_read.
20315
20316 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20317
20318         PR middle-end/43835
20319         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
20320         function does not have type attributes.
20321
20322 2010-04-23  Richard Guenther  <rguenther@suse.de>
20323
20324         PR lto/42653
20325         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
20326         of FUNCTION_DECLs.
20327
20328 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20329
20330         * sese.h (create_if_region_on_edge): Remove.
20331
20332         * sese.c (create_if_region_on_edge): Make static.
20333
20334         * tree-inline.c: Do not include ggc.h.
20335
20336         * expr.c: Do not include ggc.h.
20337
20338         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
20339         dependencies.
20340
20341 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
20342
20343         PR target/43744
20344         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20345         in the middle of insns for casesi_worker_2.
20346
20347 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
20348
20349         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
20350
20351 2010-04-22  Ira Rosen  <irar@il.ibm.com>
20352
20353         PR tree-optimization/43842
20354         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
20355         loop unrolling in update of exit phis. Fix comment.
20356         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
20357         least two reduction statements in the loop before starting SLP
20358         analysis.
20359
20360 2010-04-22  Nick Clifton  <nickc@redhat.com>
20361
20362         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
20363
20364 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
20365
20366         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
20367         to simplify a + ~a.
20368
20369 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20370
20371         * tree-parloops.c (loop_parallel_p): New argument
20372         parloop_obstack.  Pass it down.
20373         (parallelize_loops): New variable parloop_obstack.  Initialize it,
20374         pass it down, free it.
20375
20376         * tree-loop-linear.c (linear_transform_loops): Pass down
20377         lambda_obstack.
20378
20379         * tree-data-ref.h (lambda_compute_access_matrices): New argument
20380         of type struct obstack *.
20381
20382         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
20383         scratch_obstack.  Initialize it, pass down, free it.
20384
20385         * lambda.h (lambda_loop_new): Remove.
20386         (lambda_matrix_new, lambda_matrix_inverse)
20387         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
20388         argument of type struct obstack *.
20389
20390         * lambda-trans.c (lambda_trans_matrix_new): New argument
20391         lambda_obstack.  Pass it down, use obstack allocation for ret.
20392         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
20393         it down.
20394
20395         * lambda-mat.c (lambda_matrix_get_column)
20396         (lambda_matrix_project_to_null): Remove.
20397         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
20398         allocation for mat.
20399         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
20400         lambda_obstack.
20401
20402         * lambda-code.c (lambda_loop_new): New function.
20403         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
20404         (lambda_compute_auxillary_space, lambda_compute_target_space)
20405         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
20406         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
20407         (build_access_matrix): New argument lambda_obstack.  Use obstack
20408         allocation for am.
20409         (lambda_compute_step_signs, lambda_compute_access_matrices): New
20410         argument lambda_obstack.  Pass it down.
20411
20412 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20413
20414         * optabs.h (expand_widening_mult): Declare.
20415
20416 2010-04-22  Richard Guenther  <rguenther@suse.de>
20417
20418         PR tree-optimization/43845
20419         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
20420         lookup the CALL_EXPR function and arguments.
20421
20422 2010-04-22  Nick Clifton  <nickc@redhat.com>
20423
20424         * config/stormy16/stormy16.c
20425         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
20426         * config/stormy16/stormy16.h: Tidy up formatting.
20427         (DONT_USE_BUILTIN_SETJMP): Remove definition.
20428         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
20429         (ineqbranchsi): Delete pattern.
20430         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
20431         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
20432         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
20433         stormy16-lib2-ucmpsi2.c.
20434
20435 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20436
20437         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
20438         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
20439         extra set merge_set_noclobber, and use it to relax the final test
20440         slightly.
20441         * df.h (df_simulate_find_noclobber_defs): Declare.
20442         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
20443         conditional defs.
20444         (df_simulate_find_noclobber_defs): New function.
20445
20446 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
20447
20448         * config/i386/i386.md: Use {} around multi-line preparation statements.
20449
20450 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20451
20452         * c-tree.h (push_init_level, pop_init_level, set_init_index)
20453         (process_init_element): New argument of type struct obstack *.
20454
20455         * c-typeck.c (push_init_level, pop_init_level, set_designator)
20456         (set_init_index, set_init_label, set_nonincremental_init)
20457         (set_nonincremental_init_from_string, find_init_member)
20458         (output_init_element, output_pending_init_elements)
20459         (process_init_element): New argument braced_init_obstack.  Pass it
20460         down.
20461         (push_range_stack, add_pending_init): New argument
20462         braced_init_obstack.  Use obstack allocation.
20463
20464         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
20465         braced_init_obstack.  Pass it down.
20466         (c_parser_braced_init): New variables ret, braced_init_obstack.
20467         Initialize obstack, pass it down and finally free it.
20468
20469 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20470
20471         PR middle-end/29274
20472         * tree-pass.h (pass_optimize_widening_mul): Declare.
20473         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
20474         gate_optimize_widening_mul): New static functions.
20475         (pass_optimize_widening_mul): New.
20476         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
20477         <case MULT_EXPR>: Remove support for widening multiplies.
20478         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
20479         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
20480         simplify_gen_unary rather than directly building extensions.
20481         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
20482         WIDEN_MULT_EXPR.
20483         * expmed.c (expand_widening_mult): New function.
20484         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
20485
20486 2010-04-21  Jan Hubicka  <jh@suse.cz>
20487
20488         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
20489         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
20490         * lto-wpa-fixup.c: Remove.
20491         * Makefile.in (lto-wpa-fixup.o): Remove.
20492         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
20493         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
20494         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
20495
20496 2010-04-21  Jan Hubicka  <jh@suse.cz>
20497
20498         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
20499         add write_optimization_summary, read_optimization_summary.
20500         (ipa_write_summaries_of_cgraph_node_set): Remove.
20501         (ipa_write_optimization_summaries): Declare.
20502         (ipa_read_optimization_summaries): Declare.
20503         * ipa-cp.c (pass_ipa_cp): Update.
20504         * ipa-reference.c (pass_ipa_reference): Update.
20505         * ipa-pure-const.c (pass_ipa_pure_const): Update.
20506         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
20507         Update.
20508         * ipa-inline.c (pass_ipa_inline): Update.
20509         * ipa.c (pass_ipa_whole_program): Update.
20510         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
20511         * passes.c (ipa_write_summaries_1): Do not test wpa.
20512         (ipa_write_optimization_summaries_1): New.
20513         (ipa_write_optimization_summaries): New.
20514         (ipa_read_summaries): Do not test ltrans.
20515         (ipa_read_optimization_summaries_1): New.
20516         (ipa_read_optimization_summaries): New.
20517
20518 2010-04-21  Jan Hubicka  <jh@suse.cz>
20519
20520         * lto-cgraph.c (lto_output_node): Do not output comdat groups
20521         for boundary nodes.
20522         (output_cgraph): Do not arrange comdat groups for boundary nodes.
20523
20524 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20525
20526         PR debug/40040
20527         * dwarf2out.c (add_name_and_src_coords_attributes): Add
20528         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
20529
20530 2010-04-21  Jan Hubicka  <jh@suse.cz>
20531
20532         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
20533
20534 2010-04-21  Jan Hubicka  <jh@suse.cz>
20535
20536         * varpool.c (decide_is_variable_needed): Variable is always needed
20537         during ltrans.
20538
20539 2010-04-21  Jan Hubicka  <jh@suse.cz>
20540
20541         * opts.c (decode_options): Enable pure-const pass for whopr.
20542
20543 2010-04-21  Jan Hubicka  <jh@suse.cz>
20544
20545         * cgraph.c (dump_cgraph_node): Dump also assembler name.
20546         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
20547         at WPA dumping.
20548         (cgraph_decide_inlining): Do not expect callee to be removed in all
20549         cases.
20550
20551 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
20552
20553         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
20554
20555 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20556
20557         * config/i386/i386.md (x86_shrd): Add athlon_decode and
20558         amdfam10_decode attributes.
20559
20560 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20561
20562         PR middle-end/43570
20563         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
20564         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
20565         (lower_copyprivate_clauses): Use private var in outer
20566         context instead of original var.  Make sure the types
20567         are correct for VLAs.
20568
20569 2010-04-21  Richard Guenther  <rguenther@suse.de>
20570
20571         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
20572         to non-pointer objects.
20573
20574 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20575
20576         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
20577         last chain entry if it starts with the still current label.
20578         (add_location_or_const_value_attribute): Check that
20579         loc_list->first->next is NULL instead of comparing ->first with ->last.
20580         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
20581         to add_var_loc_to_decl.
20582
20583         * dwarf2out.c (output_call_frame_info): For dw_cie_version
20584         >= 4 add also address size and segment size fields into CIE header.
20585
20586         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
20587         long as address size is the same as sizeof (void *) and
20588         segment size is 0.
20589         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
20590         address size or segment size is unexpected, return DW_EH_PE_omit.
20591         (classify_object_over_fdes): If get_cie_encoding returned
20592         DW_EH_PE_omit, return -1.
20593         (init_object): If classify_object_over_fdes returned -1,
20594         pretend there were no FDEs at all.
20595
20596 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20597
20598         * config/i386/i386.md (bswap<mode>2): Macroize expander from
20599         bswap{si,di}2 using SWI48 mode iterator.
20600         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
20601         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
20602         set modrm attribute of bswap insn to 0 and remove length attribute.
20603         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
20604         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
20605         set mode attribute to <MODE> and remove length attribute.
20606
20607 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
20608
20609         PR rtl-optimization/43520
20610         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
20611         zero available registers.
20612
20613 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20614
20615         * builtins.c (fold_builtin_cproj): Fold more cases.
20616
20617 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20618
20619         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
20620         (fold_builtin_1): Fold builtin cproj.
20621         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
20622         Use ATTR_CONST_NOTHROW_LIST.
20623
20624 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
20625
20626         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
20627         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
20628         ffsi2_no_cmove for !TARGET_CMOVE.
20629         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
20630         (ffssi2): Remove expander.
20631         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
20632         mode iterator.
20633         (ctz<mode>2): Ditto from ctz{si,di}2.
20634         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
20635         mode iterator.
20636         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
20637         mode iterator.
20638
20639 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20640
20641         * dwarf2out.c (AT_linkage_name): Define.
20642         (clone_as_declaration): Handle DW_AT_linkage_name.
20643         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
20644         of DW_AT_MIPS_linkage_name.
20645         (move_linkage_attr): Likewise.
20646         (dwarf2out_finish): Likewise.
20647
20648 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
20649
20650         PR middle-end/41952
20651         * fold-const.c (fold_comparison): New folding rule.
20652
20653 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
20654
20655         * double-int.h (double_int_setbit): Declare.
20656         * double-int.c (double_int_setbit): New function.
20657         * rtl.h (immed_double_int_const): Declare.
20658         * emit-rtl.c (immed_double_int_const): New function.
20659         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
20660         and immed_double_int_const functions.
20661         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
20662         expand_copysign_bit): (Ditto.).
20663         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
20664         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
20665         * dojump.c (prefer_and_bit_test): (Ditto.).
20666         * expr.c (convert_modes, reduce_to_bit_field_precision,
20667         const_vector_from_tree): (Ditto.).
20668         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20669
20670 2010-04-20  Jan Hubicka  <jh@suse.cz>
20671
20672         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
20673         (dump_cgraph_node): Dump new flags.
20674         * cgraph.h (struct cgraph_node): Add flags
20675         reachable_from_other_partition and in_other_partition.
20676         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
20677         other partition can not be removed.
20678         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
20679         the other partition must be output; silence sanity checking on
20680         leaking functions bodies from other paritition.
20681         * lto-cgraph.c (reachable_from_other_partition_p): New function.
20682         (lto_output_node): Output new flags; do not sanity check that inline
20683         clones are output; drop lto_forced_extern_inline_p code; do not mock
20684         visibility flags at partition boundaries.
20685         (add_node_to): New function.
20686         (output_cgraph): Use it to sort functions so masters appear before
20687         clones.
20688         (input_overwrite_node): Input new flags.
20689         * passes.c (ipa_write_summaries): Do not call
20690         lto_new_extern_inline_states.
20691         * lto-section-out.c (forced_extern_inline,
20692         lto_new_extern_inline_states lto_delete_extern_inline_states,
20693         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
20694         * lto-streamer.h (lto_new_extern_inline_states,
20695         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
20696         lto_forced_extern_inline_p): Kill.
20697
20698 2010-04-20  Richard Guenther  <rguenther@suse.de>
20699
20700         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
20701         from vars that can have pointers.
20702         (process_constraint): Dump useless constraints.
20703
20704 2010-04-20  Richard Guenther  <rguenther@suse.de>
20705
20706         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
20707         (dump_sa_points_to_info): Remove asserts.
20708         (init_base_vars): nothing_id isn't an escape point nor does it
20709         have pointers.
20710
20711 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20712
20713         * tree.h (TYPE_REF_IS_RVALUE): Define.
20714         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
20715         should_move_die_to_comdat, prune_unused_types_walk): Handle
20716         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
20717         (modified_type_die, gen_reference_type_die): Emit
20718         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
20719         if TYPE_REF_IS_RVALUE and -gdwarf-4.
20720
20721 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20722
20723         PR target/43635
20724         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
20725         calls for -fpic -m31 if they have been sibcall optimized.
20726
20727 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
20728
20729         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
20730         ar.lc fixed and call-used.
20731
20732         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
20733
20734 2010-04-19  Jan Hubicka  <jh@suse.cz>
20735
20736         * opts.c (decode_options): Disable whpr incompatible passes.
20737         * lto/lto.c (lto_1_to_1_map): Skip clones.
20738         (read_cgraph_and_symbols): Do not mark everything as needed.
20739         (do_whole_program_analysis): Do map only after optimizing;
20740         set proper cgraph_state; use passmanager.
20741
20742 2010-04-19  DJ Delorie  <dj@redhat.com>
20743
20744         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
20745         POINTER_PLUS_EXPR and fix them.
20746
20747 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
20748
20749         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
20750         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
20751         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
20752         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
20753         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
20754         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
20755         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
20756         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
20757         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
20758         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
20759         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
20760
20761 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20762
20763         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
20764         (check_cond_move_block): Likewise.
20765         (cond_move_process_if_block): Likewise.
20766         (noce_find_if_block): Improve formatting.
20767         (find_if_header): Pass 0 to memset and tweak conditions.
20768         (cond_exec_find_if_block): Fix long lines and tweak conditions.
20769
20770 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20771
20772         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
20773         for -gdwarf-4.
20774
20775         PR middle-end/43337
20776         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
20777         with non-local decl doesn't need chain.
20778
20779 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
20780
20781         * ira-color.c (allocno_reload_assign): Avoid accumulating
20782         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
20783
20784 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20785
20786         * gimple.h (create_tmp_reg): Declare.
20787         * gimplify.c (create_tmp_reg): New function.
20788         (gimplify_return_expr): Use create_tmp_reg.
20789         (gimplify_omp_atomic): Likewise.
20790         (gimple_regimplify_operands): Likewise.
20791         * tree-dfa.c (make_rename_temp): Likewise.
20792         * tree-predcom.c (predcom_tmp_var): Likewise.
20793         (reassociate_to_the_same_stmt): Likewise.
20794         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
20795         (get_replaced_param_substitute): Likewise.
20796         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20797         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
20798         * tree-ssa-pre.c (get_representative_for): Likewise.
20799         (create_expression_by_pieces): Likewise.
20800         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
20801         (create_tailcall_accumulator): Likewise.
20802
20803 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20804
20805         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
20806         new_stmt.
20807         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
20808
20809 2010-04-19  Richard Guenther  <rguenther@suse.de>
20810
20811         PR tree-optimization/43796
20812         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
20813         from SCEV in the lattice.
20814         (vrp_visit_phi_node): Dump change.
20815
20816 2010-04-19  Richard Guenther  <rguenther@suse.de>
20817
20818         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
20819         * configure: Re-generated.
20820
20821 2010-04-19  Richard Guenther  <rguenther@suse.de>
20822
20823         PR tree-optimization/43783
20824         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
20825         constant ARRAY_REF operands two and three if possible.
20826
20827 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
20828
20829         PR target/43766
20830         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
20831
20832 2010-04-19  Jie Zhang  <jie@codesourcery.com>
20833
20834         PR target/43662
20835         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
20836
20837 2010-04-19  Ira Rosen  <irar@il.ibm.com>
20838
20839         PR tree-optimization/37027
20840         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
20841         and macro to access it.
20842         (vectorizable_reduction): Add argument.
20843         (vect_get_slp_defs): Likewise.
20844         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
20845         statements for possible use in SLP.
20846         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
20847         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
20848         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
20849         add new argument.
20850         (vectorizable_reduction): Likewise.
20851         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
20852         vect_get_slp_defs.
20853         (vectorizable_type_demotion, vectorizable_type_promotion,
20854         vectorizable_store): Likewise.
20855         (vect_analyze_stmt): Update call to vectorizable_reduction.
20856         (vect_transform_stmt): Likewise.
20857         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
20858         (vect_build_slp_tree): Fix indentation. Check that there are no loads
20859         from different interleaving chains in same node.
20860         (vect_slp_rearrange_stmts): New function.
20861         (vect_supported_load_permutation_p): Allow load permutations for
20862         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
20863         inside SLP nodes if necessary.
20864         (vect_analyze_slp_instance): Handle reductions.
20865         (vect_analyze_slp): Try to build SLP instances originating from groups
20866         of reductions.
20867         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
20868         (vect_get_constant_vectors): Create initial vectors for reductions
20869         according to reduction code. Add new argument.
20870         (vect_get_slp_defs): Add new argument, pass it to
20871         vect_get_constant_vectors.
20872         (vect_schedule_slp_instance): Remove SLP tree root statements.
20873
20874 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20875
20876         * tree.h (ENUM_IS_SCOPED): Define.
20877         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
20878         for ENUM_IS_SCOPED enums.
20879
20880 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20881
20882         * fold-const.c (fold_comparison): Use ssizetype.
20883         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
20884         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
20885         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
20886         * tree-object-size.c (compute_object_sizes): Use size_type_node.
20887
20888         * tree.h (initialize_sizetypes): Remove parameter.
20889         (build_common_tree_nodes): Remove second parameter.
20890         * stor-layout.c (initialize_sizetypes): Remove parameter.
20891         Always create an unsigned type.
20892         (set_sizetype): Assert that the passed type is unsigned and simplify.
20893         * tree.c (build_common_tree_nodes): Remove second parameter.
20894         Adjust call to initialize_sizetypes.
20895         * c-decl.c (c_init_decl_processing): Remove second argument in call to
20896         build_common_tree_nodes.
20897
20898 2010-04-18  Matthias Klose  <doko@ubuntu.com>
20899
20900         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
20901
20902 2010-04-18  Ira Rosen  <irar@il.ibm.com>
20903
20904         PR tree-optimization/43771
20905         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
20906         load permutation doesn't have gaps.
20907
20908 2010-04-18  Jan Hubicka  <jh@suse.cz>
20909
20910         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
20911         (sse_prologue_save_insn expander): Use new pattern.
20912         (sse_prologue_save_insn1): New pattern and splitter.
20913         (sse_prologue_save_insn): Update to deal also with 64bit aligned
20914         blocks.
20915         * i386.c (setup_incoming_varargs_64): Do not compute jump
20916         destination here.
20917         (ix86_gimplify_va_arg): Update alignment needed.
20918         (ix86_local_alignment): Do not align all local arrays to 128bit.
20919
20920 2010-04-17  Jan Hubicka  <jh@suse.cz>
20921
20922         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
20923
20924 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20925
20926         * arm.md (negdi2): Remove redundant code to force values into a
20927         register.
20928
20929 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20930
20931         * arm/bpabi.S: Add EABI alignment attributes to objects.
20932         * arm/bpabi-v6m.S: Likewise.
20933         * arm/crti.asm: Likewise.
20934         * arm/crtn.asm: Likewise.
20935         * arm/lib1funcs.asm: Likewise.
20936         * arm/libunwind.S: Likewise.
20937
20938 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20939
20940         * arm-protos.h (tune_params): New structure.
20941         * arm.c (current_tune): New variable.
20942         (arm_constant_limit): Delete.
20943         (struct processors): Add pointer to the tune parameters.
20944         (arm_slowmul_tune): New tuning option.
20945         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
20946         (all_cores): Adjust to pick up the tuning model.
20947         (arm_constant_limit): New function.
20948         (arm_override_options): Select the appropriate tuning model.  Delete
20949         initialization of arm_const_limit.
20950         (arm_split_constant): Use the new constant-limit model.
20951         (arm_rtx_costs): Pick up the current tuning model.
20952         * arm.md (is_strongarm, is_xscale): Delete.
20953         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
20954         for Xscale variant architectures.
20955         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
20956
20957 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20958
20959         * config/arm/arm.c (arm_gen_constant): Remove unused variable
20960         can_shift.
20961         (arm_rtx_costs_1): Remove unused variable extra_cost.
20962         (arm_unwind_emit_set): Use variable offset.
20963         (thumb1_output_casesi): Remove unused variable flags.
20964
20965 2010-04-16  Jeff Law  <law@redhat.com>
20966
20967         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
20968         needing assignment rather than doing a two-phase assignment.  Remove
20969         unused variable 'm'.
20970
20971 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20972
20973         PR bootstrap/43767
20974         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
20975
20976 2010-04-16  Doug Kwan  <dougkwan@google.com>
20977
20978         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
20979         (next_operand_entry_id): New static variable.
20980         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
20981         (add_to_ops_vec): Assigned unique ID to operand entry.
20982         (struct oecount_s): New field ID.
20983         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
20984         (undistribute_ops_list): Assign unique IDs to oecounts.
20985         (init_reassoc): reset next_operand_entry_id.
20986
20987 2010-04-16  Doug Kwan  <dougkwan@google.com>
20988
20989         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
20990         missing left parenthesis.
20991
20992 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
20993
20994         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
20995         *btdi_rex64 using SWI48 mode iterator.
20996         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
20997         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
20998         *jcc_btdi_mask_rex64.
20999
21000 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
21001
21002         * double-int.h (tree_to_double_int): Convert to macro.
21003         * double-int.c (tree_to_double_int): Remove.
21004
21005 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21006
21007         PR debug/43762
21008         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
21009         with want_address 2 and in case a single element list might be
21010         possible, call it again with want_address 0.
21011
21012 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21013
21014         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
21015         case 'W' print operands for HI mode.
21016         * config/h8300/h8300.h (Y0, Y2) : New constraints.
21017         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
21018         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
21019         * config/h8300/predicate.md (bit_register_indirect_operand): New.
21020
21021         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
21022
21023         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
21024         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
21025         #xx:3 and #xx:4 mode.
21026
21027         * config/h8300/h8300.md (inverted load with HImode dest): Add
21028         support for H8300SX.
21029
21030         * config/h8300/predicate.md (bit_operand): Allow immediate values that
21031         satisfy 'U' constraint.
21032
21033 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21034
21035         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
21036         * configure: Regenerate.
21037         * config.in: Regenerate.
21038         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
21039         works.
21040
21041 2010-04-16  Richard Guenther  <rguenther@suse.de>
21042
21043         * tree.h (struct tree_decl_minimal): Move pt_uid ...
21044         (struct tree_decl_common): ... here.
21045         (DECL_PT_UID): Adjust.
21046         (SET_DECL_PT_UID): Likewise.
21047         (DECL_PT_UID_SET_P): Likewise.
21048
21049 2010-04-16  Richard Guenther  <rguenther@suse.de>
21050
21051         PR tree-optimization/43572
21052         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
21053         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
21054         * tree-flow.h (is_call_clobbered): Remove.
21055         * tree-flow-inline.h (is_call_clobbered): Likewise.
21056         * tree-dfa.c (dump_variable): Do not dump call clobber state.
21057         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
21058         (execute_return_slot_opt): Adjust.
21059         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
21060         check for call clobbered vars here.
21061         (find_tail_calls): Move tailcall verification to the
21062         proper place.
21063
21064 2010-04-16  Diego Novillo  <dnovillo@google.com>
21065
21066         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
21067
21068 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21069
21070         PR target/40603
21071         * config/arm/arm.md (cbranchqi4): New pattern.
21072         * config/arm/predicates.md (const0_operand,
21073         cbranchqi4_comparison_operator): New predicates.
21074
21075 2010-04-16  Richard Guenther  <rguenther@suse.de>
21076
21077         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
21078         (dump_gimple_stmt): Likewise.
21079
21080 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21081
21082         * recog.h (struct recog_data): New field is_operator.
21083         (struct insn_operand_data): New field is_operator.
21084         * recog.c (extract_insn): Set recog_data.is_operator.
21085         * genoutput.c (output_operand_data): Emit code to set the
21086         is_operator field.
21087         * reload.c (find_reloads): Use it rather than testing for an
21088         empty constraint string.
21089
21090         PR target/41514
21091         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
21092         If the previous insn is a cbranchsi4_insn with the same arguments,
21093         omit the compare instruction.
21094
21095         * config/arm/arm.md (addsi3_cbranch): If destination is a high
21096         register, inputs must be low registers and we need a low register
21097         scratch.  Handle alternative 2 like alternative 3.
21098
21099 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21100
21101         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
21102         don't call get_addr on both.  If one expression is a VALUE and
21103         the other a REG, check VALUE's locs if the REG isn't among them.
21104
21105 2010-04-16  Christian Bruel  <christian.bruel@st.com>
21106
21107         * config/sh/sh.h (sh_frame_pointer_required): New function.
21108         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
21109         (flag_omit_frame_pointer) Set.
21110         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
21111         (rounded_frame_size): Adjust size with outgoing_args_size.
21112         (sh_set_return_address): Must return from stack pointer.
21113         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
21114         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
21115         (ACCUMULATE_OUTGOING_ARGS): Define.
21116         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
21117         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
21118
21119 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21120
21121         PR target/43471
21122         * config/sh/sh.c (sh_legitimize_reload_address): Use
21123         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
21124         Remove a unneeded check for offset_base.
21125
21126 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
21127
21128         * configure: Regenerated.
21129
21130 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21131
21132         * config/s390/s390.c (s390_call_save_register_used): Switch back
21133         to HARD_REGNO_NREGS.
21134
21135 2010-04-15  Richard Guenther  <rguenther@suse.de>
21136
21137         * alias.c (alias_set_subset_of): Handle alias-set zero
21138         child properly.
21139
21140 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
21141             Julian Brown  <julian@codesourcery.com>
21142
21143         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
21144         alternatives according to use of high and low regs.
21145         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
21146         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
21147         optimizing for size on Thumb-2.
21148
21149 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
21150
21151         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
21152
21153 2010-04-15  Richard Guenther  <rguenther@suse.de>
21154
21155         * tree-ssa-structalias.c (struct variable_info): Add
21156         is_fn_info flag.
21157         (new_var_info): Initialize it.
21158         (dump_constraints): Support printing last added constraints.
21159         (debug_constraints): Adjust.
21160         (dump_constraint_graph): Likewise.
21161         (make_heapvar_for): Check for NULL cfun.
21162         (get_function_part_constraint): New function.
21163         (get_fi_for_callee): Likewise.
21164         (find_func_aliases): Properly implement IPA PTA constraints.
21165         (process_ipa_clobber): New function.
21166         (find_func_clobbers): Likewise.
21167         (insert_into_field_list_sorted): Remove.
21168         (create_function_info_for): Properly allocate vars for IPA mode.
21169         Do not use insert_into_field_list_sorted.
21170         (create_variable_info_for): Properly generate constraints for
21171         global vars in IPA mode.
21172         (dump_solution_for_var): Always dump the solution.
21173         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
21174         (find_what_var_points_to): Adjust.
21175         (pt_solution_set): Change.
21176         (pt_solution_ior_into): New function.
21177         (pt_solution_empty_p): Export.
21178         (pt_solution_includes_global): Adjust.
21179         (pt_solution_includes_1): Likewise.
21180         (pt_solutions_intersect_1): Likewise.
21181         (dump_sa_points_to_info): Check some invariants.
21182         (solve_constraints): Move constraint dumping ...
21183         (compute_points_to_sets): ... here.
21184         (ipa_pta_execute): ... and here.
21185         (compute_may_aliases): Do not re-compute points-to info
21186         locally if IPA info is available.
21187         (ipa_escaped_pt): New global var.
21188         (ipa_pta_execute): Properly implement IPA PTA.
21189         * tree-into-ssa.c (dump_decl_set): Support dumping
21190         decls not in referenced-vars.
21191         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
21192         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
21193         (dump_points_to_solution): Likewise.
21194         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
21195         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
21196         (remap_gimple_stmt): Reset call clobber/use information if necessary.
21197         (copy_decl_to_var): Copy DECL_PT_UID.
21198         (copy_result_decl_to_var): Likewise.
21199         * tree.c (make_node_stat): Initialize DECL_PT_UID.
21200         (copy_node_stat): Copy it.
21201         * tree.h (DECL_PT_UID): New macro.
21202         (SET_DECL_PT_UID): Likewise.
21203         (DECL_PT_UID_SET_P): Likewise.
21204         (struct tree_decl_minimal): Add pt_uid member.
21205         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
21206         (pt_solution_empty_p): Declare.
21207         (pt_solution_set): Adjust.
21208         (ipa_escaped_pt): Declare.
21209         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
21210         * gimple-pretty-print.c (pp_points_to_solution): New function.
21211         (dump_gimple_call): Dump call clobber/use information.
21212         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
21213         * tree-pass.h (TDF_ALIAS): New dump option.
21214         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
21215         * doc/invoke.texi (-fipa-pta): Update documentation.
21216
21217 2010-04-15  Richard Guenther  <rguenther@suse.de>
21218
21219         * Makefile.in (OBJS-common): Add gimple-fold.o.
21220         (gimple-fold.o): New rule.
21221         * tree.h (maybe_fold_offset_to_reference,
21222         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
21223         prototypes ...
21224         * gimple.h: ... here.
21225         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
21226         may_propagate_address_into_dereference): Move prototypes ...
21227         * gimple.h: ... here.
21228         * tree-ssa-ccp.c (get_symbol_constant_value,
21229         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
21230         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
21231         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
21232         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
21233         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
21234         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
21235         gimplify_and_update_call_from_tree): Move ...
21236         * gimple-fold.c: ... here.  New file.
21237         (ccp_fold_builtin): Rename to ...
21238         (gimple_fold_builtin): ... this.
21239         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
21240
21241 2010-04-15  Richard Guenther  <rguenther@suse.de>
21242
21243         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
21244         fit_double_type, force_fit_type_double, add_double_with_sign,
21245         neg_double, mul_double_with_sign, lshift_double, rshift_double,
21246         lrotate_double, rrotate_double, div_and_round_double): Move ...
21247         * double-int.c: ... here.
21248         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
21249         add_double, neg_double, mul_double_with_sign, mul_double,
21250         lshift_double, rshift_double, lrotate_double, rrotate_double,
21251         div_and_round_double): Move prototypes ...
21252         * double-int.h: ... here.
21253
21254 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
21255
21256         PR target/43742
21257         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
21258         matching constraints to ensure inputs match the output.
21259
21260 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21261
21262         PR target/43742
21263         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
21264         in an input-only operand.
21265
21266 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
21267
21268         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
21269         (double_int_not, double_int_lshift, double_int_rshift): Declare.
21270         (double_int_negative_p): Convert to static inline function.
21271         * double-int.c (double_int_lshift, double_int_lshift): New functions.
21272         (double_int_negative_p): Remove.
21273         * tree.h (lshift_double, rshift_double):
21274         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
21275         * fold-const.c (fold_convert_const_int_from_real,
21276         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
21277         (lshift_double): Change type of arith argument to bool.
21278         (rshift_double): Change type of arith argument to bool. Correct
21279         comment.
21280         * expmed.c (mask_rtx, lshift_value): (Ditto.).
21281
21282 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
21283
21284         PR target/21803
21285         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
21286         at the start and end of the then/else blocks, and omit them from the
21287         conversion.
21288         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
21289         argument; all callers changed.  Pass zero to old_insns_match_p instead.
21290         (flow_find_head_matching_sequence): New function.
21291         (old_insns_match_p): Check REG_EH_REGION notes for calls.
21292         * basic-block.h (flow_find_cross_jump,
21293         flow_find_head_matching_sequence): Declare functions.
21294
21295 2010-04-14  Jason Merrill  <jason@redhat.com>
21296
21297         PR c++/36625
21298         * c-common.c (attribute_takes_identifier_p): New fn.
21299         * c-common.h: Declare it.
21300
21301 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21302
21303         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
21304         splitter condition.
21305         (*udivmod<mode>4): Ditto.
21306
21307 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21308
21309         * config/i386/i386.md (maxmin_int): Rename code attribute from
21310         maxminiprefix and update all users.
21311         (maxmin_float): Ditto from maxminfprefix.
21312         (logic): Ditto from logicprefix.
21313         (absneg_mnemonic): Ditto from absnegprefix.
21314         * config/i386/mmx.md: Update all users of maxminiprefix,
21315         maxminfprefix and logicprefix for rename.
21316         * config/i386/sse.md: Ditto.
21317         * config/i386/sync.md (sync_<code><mode>): Update for
21318         logicprefix rename.
21319
21320 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21321
21322         PR 42966
21323         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
21324         warnings converted to errors.
21325
21326 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21327
21328         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
21329         used insn_type variable.
21330         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
21331         to avoid set-but-not-used warning.
21332
21333 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21334
21335         * df-core.c (df_ref_debug): Change format string placeholder
21336         from 0x%x to %#x.
21337         * dwarf2asm.c (dw2_asm_output_data_raw,
21338         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
21339         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
21340         * dwarf2out.c (output_cfi, output_cfi_directive,
21341         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
21342         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
21343         Ditto.
21344         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
21345         * print-rtl.c (print_rtx): Ditto.
21346
21347 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21348
21349         PR middle-end/42694
21350         * builtins.c (expand_builtin_pow_root): New function to expand pow
21351         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
21352         series of sqrt and cbrt calls under -ffast-math.
21353         (expand_builtin_pow): Call it.
21354
21355 2010-04-14  Michael Matz  <matz@suse.de>
21356
21357         PR tree-optimization/42963
21358         * tree-cfg.c (touched_switch_bbs): New static variable.
21359         (group_case_labels_stmt): New function broken out from ...
21360         (group_case_labels): ... here, use the above.
21361         (start_recording_case_labels): Allocate touched_switch_bbs.
21362         (end_recording_case_labels): Deallocate it, call
21363         group_case_labels_stmt.
21364         (gimple_redirect_edge_and_branch): Remember index of affected BB.
21365
21366 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21367
21368         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
21369         from insn template.
21370
21371 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21372
21373         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
21374
21375 2010-04-13  Jan Hubicka  <jh@suse.cz>
21376
21377         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
21378         of optimized out static functions.
21379         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
21380         cost computation.  Also sanity check for overflows.
21381         (update_caller_keys): Update cgraph_edge_badness call; properly
21382         update fibheap and sanity check that it is up to date.
21383         (add_new_edges_to_heap): Update cgraph_edge_badness.
21384         (cgraph_decide_inlining_of_small_function): Likewise;
21385         add sanity checking that badness in heap is up to date;
21386         improve dumping of reason; Update badness of calls to the
21387         offline copy of function currently inlined; dump badness
21388         of functions not inlined because of unit growth limits.
21389
21390 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21391
21392         PR middle-end/32628
21393         * c-common.c (pointer_int_sum): Disregard overflow that occured only
21394         because of sign-extension change when converting to sizetype here...
21395         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
21396
21397         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
21398         the folding to constants.  Remove redundant final conversion.
21399         (fold_binary) <associate>: Do not associate if the re-association of
21400         constants alone overflows.
21401         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
21402         to the end of the list.
21403         (multiple_of_p) <COND_EXPR>: New case.
21404
21405 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21406
21407         * opt-functions.awk (opt_sanitized_name): New.
21408         (opt_enum): New.
21409         * optc-gen.awk: Use it
21410         * opth-gen.awk: Use it.
21411
21412 2010-04-13  Martin Jambor  <mjambor@suse.cz>
21413
21414         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
21415         (sra_modify_assign): Delete stmts loading dead data even if racc has no
21416         children.  Call replace_uses_with_default_def_ssa_name to handle
21417         SSA_NAES on lhs.
21418
21419 2010-04-13  Michael Matz  <matz@suse.de>
21420
21421         PR middle-end/43730
21422         * builtins.c (expand_builtin_interclass_mathfn): Also create
21423         a register if the predicate doesn't match.
21424
21425 2010-04-13  Diego Novillo  <dnovillo@google.com>
21426
21427         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
21428         * c-pch.c: Include timevar.h.
21429         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
21430         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
21431         * ggc-common.c: Include timevar.h.
21432         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
21433         * timevar.def (TV_PCH_SAVE): Define.
21434         (TV_PCH_CPP_SAVE): Define.
21435         (TV_PCH_PTR_REALLOC): Define.
21436         (TV_PCH_PTR_SORT): Define.
21437         (TV_PCH_RESTORE): Define.
21438         (TV_PCH_CPP_RESTORE): Define.
21439
21440 2010-04-13  Michael Matz  <matz@suse.de>
21441
21442         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
21443         into MINUS_EXPRs.
21444         (can_reassociate_p): New function.
21445         (break_up_subtract_bb, reassociate_bb): Use it.
21446
21447 2010-04-13  Richard Guenther  <rguenther@suse.de>
21448
21449         PR bootstrap/43737
21450         * builtins.c (c_readstr): Fix assert.
21451
21452 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
21453
21454         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
21455         when generating cltd insn.
21456
21457         (*ashl<mode>3_1): Remove special handling for register operand 2.
21458         (*ashlsi3_1_zext): Ditto.
21459         (*ashlhi3_1): Ditto.
21460         (*ashlhi3_1_lea): Ditto.
21461         (*ashlqi3_1): Ditto.
21462         (*ashlqi3_1_lea): Ditto.
21463         (*<shiftrt_insn><mode>3_1): Ditto.
21464         (*<shiftrt_insn>si3_1_zext): Ditto.
21465         (*<shiftrt_insn>qi3_1_slp): Ditto.
21466         (*<rotate_insn><mode>3_1): Ditto.
21467         (*<rotate_insn>si3_1_zext): Ditto.
21468         (*<rotate_insn>qi3_1_slp): Ditto.
21469
21470 2010-04-13  Richard Guenther  <rguenther@suse.de>
21471
21472         * tree-ssa-structalias.c (callused_id): Remove.
21473         (call_stmt_vars): New.
21474         (get_call_vi): Likewise.
21475         (lookup_call_use_vi): Likewise.
21476         (lookup_call_clobber_vi): Likewise.
21477         (get_call_use_vi): Likewise.
21478         (get_call_clobber_vi): Likewise.
21479         (make_transitive_closure_constraints): Likewise.
21480         (handle_const_call): Adjust to do per-call call-used handling.
21481         (handle_pure_call): Likewise.
21482         (find_what_var_points_to): Remove general callused handling.
21483         (init_base_vars): Likewise.
21484         (init_alias_vars): Initialize call_stmt_vars.
21485         (compute_points_to_sets): Process call-used and call-clobbered
21486         vars for call statements.
21487         (delete_points_to_sets): Free call_stmt_vars.
21488
21489 2010-04-13  Richard Guenther  <rguenther@suse.de>
21490
21491         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21492         Only add RW dependence for dependence distance zero.
21493         Adjust maximal vectorization factor according to dependences.
21494         Move alignment handling ...
21495         (vect_find_same_alignment_drs): ... here.  New function.
21496         (vect_analyze_data_ref_dependences): Adjust.
21497         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
21498         (vect_analyze_data_refs): Adjust minimal vectorization factor
21499         according to data references.
21500         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
21501         dependences before determining the vectorization factor.
21502         Analyze alignment after determining the vectorization factor.
21503         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
21504         dependences before alignment.
21505         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
21506         Adjust prototype.
21507         (vect_analyze_data_refs): Likewise.
21508         (MAX_VECTORIZATION_FACTOR): New define.
21509
21510 2010-04-13  Duncan Sands  <baldrick@free.fr>
21511
21512         * except.h (lang_eh_type_covers): Remove.
21513         * except.c (lang_eh_type_covers): Likewise.
21514
21515 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21516             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21517
21518         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
21519         * config/s390/s390.c: Replace UNTIS_PER_WORD with
21520         UNITS_PER_LONG where it is ABI relevant.
21521         (s390_return_addr_rtx): Likewise.
21522         (s390_back_chain_rtx): Likewise.
21523         (s390_frame_area): Likewise.
21524         (s390_frame_info): Likewise.
21525         (s390_initial_elimination_offset): Likewise.
21526         (save_gprs): Likewise.
21527         (s390_emit_prologue): Likewise.
21528         (s390_emit_epilogue): Likewise.
21529         (s390_function_arg_advance): Likewise.
21530         (s390_function_arg): Likewise.
21531         (s390_va_start): Likewise.
21532         (s390_gimplify_va_arg): Likewise.
21533         (s390_function_profiler): Likewise.
21534         (s390_optimize_prologue): Likewise.
21535         (s390_rtx_costs): Likewise.
21536         (s390_secondary_reload): Likewise.
21537         (s390_promote_function_mode): Likewise.
21538         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
21539         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
21540         registers available.
21541         (s390_unwind_word_mode): New function.
21542         (s390_function_value): Split 64 bit values into register pair if
21543         used as return value.
21544         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
21545         function call parameters.  Handle parallels.
21546         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
21547         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
21548         (DWARF_CIE_DATA_ALIGNMENT): New macro.
21549         (s390_expand_setmem): Remove unused variable src_addr.
21550         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
21551         deal with 64 bit registers.
21552         * config/s390/s390.h: Define __zarch__ predefined macro.
21553         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
21554         (UNITS_PER_LONG): New macro.
21555         * libjava/include/s390-signal.h: Define extended ucontext
21556         structure containing the upper halfs of the 64 bit registers.
21557
21558 2010-04-13  Simon Baldwin  <simonb@google.com>
21559
21560         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
21561
21562 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21563
21564         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
21565         rvalue on the RHS if the LHS is of a non-renamable type.
21566         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
21567
21568 2010-04-13  Matthias Klose  <doko@ubuntu.com>
21569
21570         * gcc.c (cc1_options): Handle -iplugindir before processing
21571         the cc1 spec. Only add -iplugindir once.
21572         (cpp_unique_options): Add -iplugindir option if -fplugin* options
21573         found.
21574         * common.opt (iplugindir): Remove `Separate' property, initialize.
21575         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
21576         option.
21577         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
21578         (distclean): Remove plugin dir.
21579         * doc/invoke.texi: Document -iplugindir.
21580
21581 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
21582
21583         * doc/plugins.texi (Loading Plugins): Document short
21584         -fplugin=foo option.
21585         (Plugin API): Mention default_plugin_dir_name function.
21586
21587         * gcc.c (find_file_spec_function): Add new declaration.
21588         (static_spec_func): Use it for "find-file".
21589         (find_file_spec_function): Add new function.
21590         (cc1_options): Add -iplugindir option if -fplugin* options found.
21591
21592         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
21593
21594         * plugin.c (add_new_plugin): Updated comment, and handle short
21595         plugin name.
21596         (default_plugin_dir_name): Added new function.
21597
21598         * common.opt (iplugindir): New option to set the plugin directory.
21599
21600 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
21601
21602         * config/i386/i386.md (any_rotate): New code iterator.
21603         (rotate_insn): New code attribute.
21604         (rotate): Ditto.
21605         (SWIM124): New mode iterator.
21606         (<rotate_insn>ti3): New expander.
21607         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
21608         any_rotate code iterator.
21609         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
21610         using any_rotate code iterator and SWIM124 mode iterator.
21611         (ix86_rotlti3): New insn_and_split pattern.
21612         (ix86_rotrti3): Ditto.
21613         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
21614         ix86_rotl{di,ti}3 patterns.
21615         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
21616         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
21617         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
21618         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
21619         code iterator and SWI mode iterator.
21620         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
21621         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
21622         code iterator.
21623         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
21624         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
21625         (bswap rotatert splitter): Add splitter.
21626         (bswap splitter): Macroize splitter using any_rotate code iterator.
21627         Add insn predicate to split only for TARGET_USE_XCHGB or when
21628         optimizing function for size.
21629
21630 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21631
21632         * config/pa/pa.c (emit_move_sequence): Remove use of
21633         deleted variable flag_argument_noalias.
21634
21635 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21636
21637         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
21638         configurations.
21639         Add to unsupported targets list.
21640         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
21641         sparc*-sun-solaris2.[567]* from target lists.
21642         * configure: Regenerate.
21643         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
21644         removal.
21645         Remove Solaris 7 patch references.
21646         (Specific, sparc-sun-solaris2.7): Removed.
21647         (sparc-sun-solaris2*): Update Solaris 7 example.
21648         (sparc64-*-solaris2*): Likewise.
21649
21650 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21651
21652         * config.build (alpha*-dec-osf4*): Remove.
21653         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
21654         of obsolete configurations.
21655         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
21656         support.
21657         * config/alpha/t-osf4: Renamed to ...
21658         * config/alpha/t-osf5: ... this.
21659         * config/alpha/osf.h: Renamed to ...
21660         * config/alpha/osf5.h: ... this.
21661         Merged old osf5.h contents.
21662         Update comments.
21663         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
21664         (EXTRA_SPECS): Removed.
21665         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
21666         reflect removal of Tru64 UNIX V4.0/V5.0 support.
21667         Document that.
21668
21669 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21670
21671         * doc/contrib.texi (Contributors, Rainer Orth): Update.
21672
21673 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
21674
21675         PR/43702
21676         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
21677         __thiscall convention.
21678
21679 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21680
21681         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
21682         orig_base.
21683         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
21684
21685 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21686
21687         * function.c (assign_parms_initialize_all): Add unused attribute
21688         to fntype.
21689
21690 2010-04-12  Richard Guenther  <rguenther@suse.de>
21691
21692         * gsstruct.def (GSS_CALL): New.
21693         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
21694         * gimple.h: Include tree-ssa-alias.h.
21695         (struct gimple_statement_call): New.
21696         (union gimple_statement_struct_d): Add gimple_call member.
21697         (gimple_call_reset_alias_info): Declare.
21698         (gimple_call_use_set): New function.
21699         (gimple_call_clobber_set): Likewise.
21700         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
21701         * gimple.c (gimple_call_reset_alias_info): New function.
21702         (gimple_build_call_1): Call it.
21703         * lto-streamer-in.c (input_gimple_stmt): Likewise.
21704         * tree-inline.c (remap_gimple_stmt): Likewise.
21705         (expand_call_inline): Remove callused handling.
21706         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
21707         * tree-dfa.c (dump_variable): Likewise.
21708         * tree-parloops.c (parallelize_loops): Likewise.
21709         * tree-ssa.c (init_tree_ssa): Likewise.
21710         (delete_tree_ssa): Likewise.
21711         * tree-flow-inline.h (is_call_used): Remove.
21712         * tree-flow.h (struct gimple_df): Remove callused member.
21713         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
21714         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
21715         (ref_maybe_used_by_call_p_1): Simplify.
21716         (call_may_clobber_ref_p_1): Likewise.
21717         * tree-ssa-structalias.c (compute_points_to_sets): Set
21718         the call stmt used and clobbered sets.
21719         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
21720         (find_tail_calls): Verify the tail call.
21721
21722 2010-04-12  Richard Guenther  <rguenther@suse.de>
21723
21724         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
21725         single-iteration always-inline inlining.
21726         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
21727         (cgraph_decide_inlining): Do not handle always-inline specially.
21728         (try_inline): Remove always-inline cycle detection special case.
21729         Do not recurse on always-inlines.
21730         (cgraph_early_inlining): Do not iterate if not optimizing.
21731         (cgraph_gate_early_inlining): remove.
21732         (pass_early_inline): Run unconditionally.
21733         (gate_cgraph_decide_inlining): New function.
21734         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
21735         not inlining or optimizing.
21736         (cgraph_decide_inlining_of_small_functions): Also consider
21737         always-inline functions.
21738         (cgraph_default_inline_p): Return true for nodes which should
21739         disregard inline limits.
21740         (estimate_function_body_sizes): Assume zero size and time for
21741         nodes which are marked as disregarding inline limits.
21742         (cgraph_decide_recursive_inlining): Do not perform recursive
21743         inlining on always-inline nodes.
21744
21745 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
21746
21747         PR bootstrap/43699
21748         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
21749         for exprs satisfying handled_component_p.
21750
21751 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
21752
21753         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
21754         non-constant aggregate elements.
21755
21756         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
21757         is a real initialization.
21758
21759 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
21760
21761         PR c/36774
21762         * c-decl.c (start_function): Move forward check for nested function.
21763
21764 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
21765
21766         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
21767         * config/sh/sh.c: Include reload.h.
21768         (sh_legitimize_reload_address): New.
21769         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
21770         sh_legitimize_reload_address.
21771
21772 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21773
21774         * config/sh/sh.md (*movqi_pop): New insn pattern.
21775         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
21776
21777 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21778
21779         * config/i386/i386.md (any_shiftrt): New code iterator.
21780         (shiftrt_insn): New code attribute.
21781         (shiftrt): Ditto.
21782         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
21783         using any_shiftrt code iterator.
21784         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
21785         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
21786         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
21787         pattern from corresponding peephole2 patterns.
21788         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
21789         using any_shiftrt code iterator.
21790         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
21791         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
21792         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
21793         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
21794         *{ashr,lshr}<mode>3_cmp_zext.
21795         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
21796
21797 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21798
21799         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
21800         scratch register.
21801         (*lshr<mode>3_cconly): Ditto.
21802
21803 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21804
21805         * config/i386/i386.md (lshr<mode>3): Macroize expander from
21806         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21807         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21808         pattern from *lshr{di,ti}3_1 and corresponding splitters using
21809         DWI mode iterator.
21810         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21811         from corresponding peephole2 patterns.
21812         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
21813         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
21814         and *lshrdi3_1_rex64 using SWI mode iterator.
21815         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
21816         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
21817         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
21818         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
21819         and *lshrdi3_cmp_rex64 using SWI mode iterator.
21820         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
21821         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
21822         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
21823         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
21824         SWI mode iterator.
21825
21826 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
21827
21828         * config/i386/i386.md (ashr<mode>3): Macroize expander from
21829         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21830         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21831         pattern from *ashr{di,ti}3_1 and corresponding splitters using
21832         DWI mode iterator.
21833         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21834         from corresponding peephole2 patterns.
21835         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
21836         (ashrsi3_cvt): Rename from ashrsi3_31.
21837         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
21838         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
21839         and x86_64_shift_adj_3 using SWI48 mode iterator.
21840         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
21841         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
21842         and *ashrdi3_1_rex64 using SWI mode iterator.
21843         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
21844         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
21845         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
21846         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
21847         and *ashrdi3_cmp_rex64 using SWI mode iterator.
21848         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
21849         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
21850         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
21851         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
21852         SWI mode iterator.
21853         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
21854         * config/i386/i386.c (ix86_split_ashr): Update for renamed
21855         x86_shift<mode>_adj_3 expanders.
21856
21857 2010-04-10  Wei Guozhi  <carrot@google.com>
21858
21859         PR target/42601
21860         * config/arm/arm.c (arm_pic_static_addr): New function.
21861         (legitimize_pic_address): Call arm_pic_static_addr when it detects
21862         a static symbol.
21863         (arm_output_addr_const_extra): Output expression for new pattern.
21864         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
21865
21866 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
21867
21868         * ira-costs.c (record_reg_classes): Ignore alternatives that are
21869         not enabled.
21870
21871         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
21872         * web.c: Include "insn-config.h" and "recog.h".
21873         (union_match_dups): New function.
21874         (web_main): Call it.
21875         (union_defs): Don't try to recognize match_dups.
21876
21877         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
21878         if doing so would replace the entire pattern.
21879
21880 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21881
21882         PR target/43707
21883         PR target/43709
21884         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
21885         and splitter pattern.  Change splitter operand 1 predicate to
21886         nonmemory_operand.
21887
21888 2010-04-09  Martin Jambor  <mjambor@suse.cz>
21889
21890         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
21891         lattices are addresses of CONST_DECLs with the same initial value.
21892         (ipcp_print_all_lattices): Print values of CONST_DECLs.
21893         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
21894
21895 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
21896             Bernd Schmidt  <bernds@codesourcery.com>
21897
21898         * loop-invariant.c (replace_uses): New static function.
21899         (move_invariant_reg): Use it to ensure we can replace the uses.
21900
21901 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21902
21903         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
21904         function template.
21905         (picochip_override_options): Enable section anchors only above -O1.
21906         (picochip_reorg): Fixed a couple of build warnings.
21907
21908 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21909
21910         * configure.ac (plugin -rdynamic test): Log result.
21911         * configure: Regenerate.
21912         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
21913         (RDYNAMIC_SPEC): Define.
21914         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
21915
21916 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21917
21918         * configure.ac: Determine Sun ld version numbers.
21919         (comdat_group): Restrict GNU ld version checks to gld.
21920         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
21921         (enable_comdat): Support --enable-comdat.
21922         * configure: Regenerate.
21923         * doc/install.texi (Configuration): Document --enable-comdat.
21924
21925 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21926
21927         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
21928         * config/sol2-gld.h: ... here.
21929         * config.gcc (sparc*-*-solaris2*): Reflect this.
21930         (i[34567]86-*-solaris2*): Use it.
21931
21932 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
21933
21934         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
21935         setup_clocks_p.
21936         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
21937
21938 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21939
21940         PR 42965
21941         * diagnostic.c (diagnostic_initialize): Initialize
21942         some_warnings_are_errors.
21943         (diagnostic_finish): New.
21944         (diagnostic_action_after_output): Call it before exiting.
21945         (diagnostic_report_diagnostic): Do not print message here. Set
21946         some_warnings_are_errors.
21947         * diagnostic.h (diagnostic_context): Delete
21948         issue_warnings_are_errors_message. Add some_warnings_are_errors.
21949         (diagnostic_finish): Declare.
21950         * toplev.c (toplev_main): Call it before exit.
21951
21952 2010-04-09  Jason Merrill  <jason@redhat.com>
21953
21954         PR c++/42623
21955         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
21956         for incomplete type.
21957
21958         PR c++/41788
21959         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
21960         based on a warning flag.
21961
21962 2010-04-09  Richard Guenther  <rguenther@suse.de>
21963
21964         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
21965
21966 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
21967
21968         PR bootstrap/43684
21969         * varasm.c (default_assemble_visibility): Wrap vars that are
21970         set, but unused, by targets without GAS.
21971         * config/rs6000/rs6000.c (paired_emit_vector_compare):
21972         Remove set, but unused, vars.
21973         (rs6000_legitimize_tls_address): Likewise.
21974         (altivec_expand_dst_builtin): Likewise.
21975         * config/darwin.c (machopic_classify_symbol): Likewise.
21976         (machopic_indirection_name): Likewise.
21977
21978 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21979
21980         * config/i386/i386.md (DWI): New mode iterator.
21981         (S): New mode attribute.
21982         (shift_operand): Ditto.
21983         (shift_immediate_operand): Ditto.
21984         (ashl_input_operand): Ditto.
21985         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
21986         using SDWIM mode iterator.
21987         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21988         pattern from *ashl{di,ti}3_1 and corresponding splitters using
21989         DWI mode iterator.
21990         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
21991         from corresponding peephole2 patterns.
21992         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
21993         and x86_64_shift_adj_1 using SWI48 mode iterator.
21994         (x86_shift<mode>_adj_2): Ditto.
21995         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
21996         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
21997         using SWI48 mode iterator.
21998         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
21999         *ashldi3_cmp_rex64 using SWI mode iterator.
22000         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
22001         *ashldi3_cconly_rex64 using SWI mode iterator.
22002         * config/i386/i386.c (ix86_split_ashl): Update for renamed
22003         x86_shift<mode>_adj_{1,2}.
22004         (ix86_split_ashr): Ditto.
22005         (ix86_split_lshr): Ditto.
22006
22007 2010-04-09  Richard Guenther  <rguenther@suse.de>
22008
22009         * target.h (builtin_conversion): Pass in input and output types.
22010         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
22011         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
22012         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
22013         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
22014
22015         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
22016         Handle AVX modes.
22017         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
22018
22019 2010-04-09  Richard Guenther  <rguenther@suse.de>
22020
22021         PR target/43152
22022         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
22023
22024 2010-04-09  Richard Guenther  <rguenther@suse.de>
22025
22026         * tree-vectorizer.h (struct _stmt_vec_info): Document
22027         that vectype is the type of the LHS.
22028         (supportable_widening_operation, supportable_narrowing_operation):
22029         Get both input and output vector types as arguments.
22030         (vect_is_simple_use_1): Declare.
22031         (get_same_sized_vectype): Likewise.
22032         * tree-vect-loop.c (vect_determine_vectorization_factor):
22033         Set STMT_VINFO_VECTYPE to the vector type of the def.
22034         (vectorizable_reduction): Adjust.
22035         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
22036         Adjust.  Specify the output vector type.
22037         (vect_pattern_recog_1): Adjust.
22038         * tree-vect-stmts.c (get_same_sized_vectype): New function.
22039         (vectorizable_call): Adjust.
22040         (vectorizable_conversion): Likewise.
22041         (vectorizable_operation): Likewise.
22042         (vectorizable_type_demotion): Likewise.
22043         (vectorizable_type_promotion): Likewise.
22044         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
22045         the def.
22046         (vect_is_simple_use_1): New function.
22047         (supportable_widening_operation): Get both input and output
22048         vector types.
22049         (supportable_narrowing_operation): Likewise.
22050         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
22051
22052 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
22053
22054         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
22055         __thiscall and _thiscall as predefined macros.
22056         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
22057         thiscall attribute handling.
22058         (ix86_comp_type_attributes): Likewise.
22059         (ix86_function_regparm): Likewise.
22060         (ix86_return_pops_args): Likewise.
22061         (init_cumulative_args): Likewise.
22062         (find_drap_reg): Likewise.
22063         (ix86_static_chain): Likewise.
22064         (x86_this_parameter): Likewise.
22065         (x86_output_mi_thunk): Likewise.
22066         (ix86_attribute_table): Add description for thiscall attribute.
22067         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
22068         * doc/extend.texi: Add documentation for thiscall.
22069
22070 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22071
22072         PR c++/28584
22073         * c.opt (Wint-to-pointer-cast): Available in C++.
22074         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
22075
22076 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
22077
22078         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
22079         * calls.c (expand_call): Pass the function type to aggregate_value_p.
22080         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
22081         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
22082         function type instead.  Reorder and simplify checks.
22083
22084         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
22085
22086 2010-04-08  Jing Yu  <jingyu@google.com>
22087             Zdenek Dvorak  <ook@ucw.cz>
22088
22089         PR tree-optimization/42720
22090         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
22091         loop unswitch conditions here from ...
22092         (tree_unswitch_single_loop): ... here.
22093
22094 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22095
22096         * tree-if-conv.c: Fix comments and simplify logic.
22097
22098 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22099
22100         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
22101         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
22102         (main_tree_if_conversion): Update call to tree_if_conversion.
22103
22104 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22105
22106         PR 42485
22107         * doc/invoke.texi (-b,-V): Delete.
22108         * doc/tm.texi: Do not mention -b.
22109         * gcc.c (display_help): Delete -b and -V.
22110         (process_command): Delete -b and -V.
22111         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
22112
22113 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
22114             Wolfgang Gellerich  <gellerich@de.ibm.com>
22115
22116         Implement target hook for loop unrolling
22117         * target.h (loop_unroll_adjust): Add a new target hook function.
22118         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
22119         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
22120         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
22121         (s390_loop_unroll_adjust): Implement the new target hook for s390.
22122         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
22123         target hook.
22124         (decide_unroll_stupid): Likewise.
22125
22126 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22127
22128         PR target/43643
22129         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
22130
22131 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22132
22133         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
22134         (Specific, *-*-solaris2*): Likewise.
22135         Don't prefer Sun as over GNU as.
22136
22137 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
22138
22139         * config/s390/s390.c (override_options): Adjust the z10 defaults
22140         for max-unroll-times, max-completely-peeled-insns
22141         and max-completely-peel-times.
22142
22143 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22144
22145         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
22146         instructions for z10.
22147         (s390_expand_setmem): Likewise.
22148         (s390_expand_cmpmem): Likewise.
22149
22150 2010-04-08  Richard Guenther  <rguenther@suse.de>
22151
22152         PR tree-optimization/43679
22153         * tree-ssa-pre.c (eliminate): Only propagate copies.
22154
22155 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22156
22157         PR bootstrap/43681
22158         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
22159         set but not used variable warning.
22160
22161 2010-04-08  Wei Guozhi  <carrot@google.com>
22162
22163         PR target/41653
22164         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
22165         (arm_size_rtx_costs): Call the new function when optimized for size.
22166
22167 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22168
22169         PR debug/43670
22170         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
22171         op0 is not a MEM, just return NULL instead of assertion
22172         failure.
22173         (discover_nonconstant_array_refs): Don't walk debug stmts.
22174
22175 2010-04-08  Doug Kwan  <dougkwan@google.com>
22176
22177         * configure.ac: Recognize gold and do not use its version number
22178         to test ld features.
22179         * configure: Regenerate.
22180
22181 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
22182
22183         PR middle-end/40815
22184         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
22185         (negate_value): Move code to push elements to broken_up_substracts ...
22186         (eliminate_plus_minus_pair): ... here.  Push operands that have no
22187         negative pair to plus_negates.
22188         (repropagate_negates, init_reassoc, fini_reassoc): Update.
22189
22190 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22191
22192         * doc/install.texi (Configuration): Move description of
22193         --enable-lto, --with-libelf*, --enable-gold from Java section to
22194         general section.
22195
22196         * doc/generic.texi (Working with declarations)
22197         (Function Properties, C and C++ Trees): Fix typos.
22198         * doc/sourcebuild.texi (Top Level): Likewise.
22199
22200 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22201
22202         PR c/18624
22203         * tree.h (DECL_READ_P): Define.
22204         (struct tree_decl_common): Add decl_read_flag.
22205         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
22206         a set but not used warning.
22207         (merge_decls): Merge DECL_READ_P flag.
22208         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
22209         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
22210         * c-common.c (handle_used_attribute, handle_unused_attribute):
22211         Likewise.
22212         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
22213         New prototypes.
22214         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
22215         New functions.
22216         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
22217         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
22218         c_parser_binary_expression, c_parser_cast_expression,
22219         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
22220         Call default_function_array_read_conversion instead of
22221         default_function_array_conversion where needed.
22222         (c_parser_unary_expression, c_parser_conditional_expression,
22223         c_parser_postfix_expression_after_primary, c_parser_initelt):
22224         Likewise.  Call mark_exp_read where needed.
22225         (c_parser_statement_after_labels, c_parser_asm_operands,
22226         c_parser_typeof_specifier, c_parser_sizeof_expression,
22227         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
22228         where needed.
22229         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
22230         New.
22231         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
22232         (warn_unused_but_set_parameter): Default to warn_unused
22233         && extra_warnings.
22234         * doc/invoke.texi: Document -Wunused-but-set-variable and
22235         -Wunused-but-set-parameter.
22236
22237         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
22238         used count variable.
22239         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
22240         when operandN variables aren't used in the body of the expander
22241         or splitter.
22242         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
22243         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
22244         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
22245         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
22246         FOR_EACH_IMM_USE_ON_STMT): Likewise.
22247         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
22248         * tree.c (PROCESS_ARG): Likewise.
22249
22250 2010-04-07  Simon Baldwin  <simonb@google.com>
22251
22252         * diagnostic.h (diagnostic_override_option_index): New macro to
22253         set a diagnostic's option_index.
22254         * c-tree.h (c_cpp_error): Add warning reason argument.
22255         * opts.c (_warning_as_error_callback): New.
22256         (register_warning_as_error_callback): Store callback for
22257         warnings enabled via enable_warning_as_error.
22258         (enable_warning_as_error): Call callback, minor code tidy.
22259         * opts.h (register_warning_as_error_callback): Declare.
22260         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
22261         response to -Werror=.
22262         (c_common_init_options): Register warning_as_error_callback in opts.c.
22263         * common.opt: Add -Wno-cpp option.
22264         * c-common.c (struct reason_option_codes_t): Map cpp warning
22265         reason codes to gcc option indexes.
22266         * (c_option_controlling_cpp_error): New function, lookup the gcc
22267         option index for a cpp warning reason code.
22268         * (c_cpp_error): Add warning reason argument, call
22269         c_option_controlling_cpp_error for diagnostic_override_option_index.
22270         * doc/invoke.texi: Document -Wno-cpp.
22271
22272 2010-04-07  Richard Guenther  <rguenther@suse.de>
22273
22274         * ipa-reference.c (mark_load): Use get_base_address.
22275         (mark_store): Likewise.
22276
22277         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
22278         inserting GIMPLE_NOPs into the IL.
22279         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22280         Explicitly strip handled components and indirect references.
22281
22282         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
22283         folding address expressions.
22284         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
22285         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
22286         operand_equal_p to compare decls.
22287         (ptr_deref_may_alias_decl_p): Likewise.
22288         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
22289         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
22290         Handle reversed comparison ops.
22291         * tree-sra.c (asm_visit_addr): Use get_base_address.
22292         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
22293         * ipa-reference.c (mark_address): Use get_base_address.
22294
22295 2010-04-07  Richard Guenther  <rguenther@suse.de>
22296
22297         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
22298         Propagate constants everywhere.
22299
22300 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22301
22302         PR debug/43516
22303         * tree.c (MAX_INT_CACHED_PREC): Define.
22304         (nonstandard_integer_type_cache): New array.
22305         (build_nonstandard_integer_type): Cache results for precision
22306         <= MAX_INT_CACHED_PREC.
22307
22308 2010-04-07  Richard Guenther  <rguenther@suse.de>
22309
22310         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
22311         -fargument-noalias-global, -fargument-noalias-anything): Remove.
22312         * common.opt: Likewise.
22313         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
22314         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
22315         (nonoverlapping_memrefs_p): Likewise.
22316         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22317         * opts.c (common_handle_option): Handle OPT_fargument_alias,
22318         OPT_fargument_noalias, OPT_fargument_noalias_anything and
22319         OPT_fargument_noalias_global for backward compatibility.
22320
22321 2010-04-07  Richard Guenther  <rguenther@suse.de>
22322
22323         PR tree-optimization/43270
22324         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
22325         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
22326         * tree-ssa-pre.c (phi_translate_1): Adjust.
22327         (fully_constant_expression): Split out vn_reference handling to ...
22328         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
22329         Fold reads from constant strings.
22330         (vn_reference_lookup): Handle fully constant references.
22331         (vn_reference_lookup_pieces): Likewise.
22332         * Makefile.in (expmed.o-warn): Add -Wno-error.
22333
22334 2010-04-07  Martin Jambor  <mjambor@suse.cz>
22335
22336         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
22337
22338 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
22339
22340         PR driver/41594
22341         * gcc.c: Add -static-libstdc++ to list of recognized options.
22342
22343 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22344
22345         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
22346
22347 2010-04-07  Richard Guenther  <rguenther@suse.de>
22348
22349         PR middle-end/42617
22350         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
22351         bases build simple mem attributes to retain points-to information.
22352
22353 2010-04-07  Richard Guenther  <rguenther@suse.de>
22354
22355         PR middle-end/42617
22356         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
22357         preserve points-to related information.
22358
22359 2010-04-07  Richard Guenther  <rguenther@suse.de>
22360
22361         PR middle-end/42617
22362         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
22363         discard plain indirect references.
22364         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
22365         * tree.c (tree_nop_conversion): Likewise.
22366
22367 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
22368
22369         PR debug/43628
22370         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
22371
22372 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
22373
22374         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
22375         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
22376
22377 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22378
22379         * tree-if-conv.c: Fix indentation and comments.
22380
22381 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22382
22383         * tree-if-conv.c: Sort static functions in topological order.
22384
22385 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22386
22387         * tree-if-conv.c: Fix indentation and comments.
22388
22389 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22390
22391         PR middle-end/43519
22392         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
22393         lang_hooks.types.type_for_size instead of
22394         build_nonstandard_integer_type.
22395         When converting an unsigned type to signed, double its precision.
22396         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
22397         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
22398         (graphite_create_new_loop_guard): When ub + 1 wraps around,
22399         use lb <= ub.
22400
22401 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22402
22403         PR middle-end/43519
22404         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22405         POINTER_PLUS_EXPR for pointer types.
22406
22407 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22408
22409         PR middle-end/43519
22410         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
22411         * graphite-clast-to-gimple.c: Include langhooks.h.
22412         (max_signed_precision_type): New.
22413         (max_precision_type): Takes two types as arguments.
22414         (precision_for_value): New.
22415         (precision_for_interval): New.
22416         (gcc_type_for_interval): New.
22417         (gcc_type_for_value): New.
22418         (gcc_type_for_clast_term): New.
22419         (gcc_type_for_clast_red): New.
22420         (gcc_type_for_clast_bin): New.
22421         (gcc_type_for_clast_expr): Split up into several functions.
22422         (gcc_type_for_clast_eq): Rewritten.
22423         (compute_bounds_for_level): New.
22424         (compute_type_for_level_1): New.
22425         (compute_type_for_level): New.
22426         (gcc_type_for_cloog_iv): Removed.
22427         (gcc_type_for_iv_of_clast_loop): Rewritten.
22428         (graphite_create_new_loop): Compute the lower and upper bound types
22429         with gcc_type_for_clast_expr.
22430         (graphite_create_new_loop_guard): Same.
22431         (find_cloog_iv_in_expr): Removed.
22432         (compute_cloog_iv_types_1): Removed.
22433         (compute_cloog_iv_types): Removed.
22434         (gloog): Do not call compute_cloog_iv_types.
22435         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
22436         GBB_CLOOG_IV_TYPES.
22437         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
22438         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
22439         (GBB_CLOOG_IV_TYPES): Removed.
22440
22441 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22442
22443         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
22444         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
22445         (detect_commutative_reduction): Same.
22446
22447 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22448
22449         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
22450         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
22451         argument.
22452         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
22453         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
22454         (rewrite_commutative_reductions_out_of_ssa): Same.
22455         * passes.c (execute_function_todo): Call verify_ssa for every pass
22456         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
22457         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
22458         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
22459         with an extra argument.
22460         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
22461         verify_ssa only when the extra argument is true.
22462         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
22463         with an extra argument.
22464         (tree_transform_and_unroll_loop): Same.
22465
22466 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22467
22468         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
22469         for all the passes of the LNO having LOOP_CLOSED_SSA.
22470         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
22471         * tree-loop-distribution.c (pass_loop_distribution): Same.
22472         * tree-pass.h (TODO_verify_loops): Removed.
22473         * tree-ssa-loop.c (pass_tree_loop_init): Same.
22474         (pass_lim): Same.
22475         (pass_tree_unswitch): Same.
22476         (pass_predcom): Same.
22477         (pass_vectorize): Same.
22478         (pass_linear_transform): Same.
22479         (pass_graphite_transforms): Same.
22480         (pass_iv_canon): Same.
22481         (pass_complete_unroll): Same.
22482         (pass_complete_unrolli): Same.
22483         (pass_parallelize_loops): Same.
22484         (pass_loop_prefetch): Same.
22485         (pass_iv_optimize): Same.
22486
22487 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
22488
22489         PR middle-end/32824
22490         * passes.c (init_optimization_passes): Move pass_lim before
22491         pass_copy_prop and pass_dce_loop.
22492
22493 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22494
22495         PR target/43667
22496         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
22497         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
22498         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
22499         MULTI_* defines for 4 argument vpermil2p* builtins.
22500
22501 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22502
22503         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
22504         * config/i386/i386.c (x86_maybe_negate_const_int): New.
22505         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
22506         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
22507         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
22508         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
22509         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
22510         Use x86_maybe_negate_const_int to output insn mnemonic.
22511         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
22512         check from instruction predicate.  Update comments.
22513         * config/i386/sync.md (sync_add<mode>): Use
22514         x86_maybe_negate_const_int to output insn mnemonic.
22515
22516 2010-04-06  Jan Hubicka  <jh@suse.cz>
22517
22518         PR tree-optimization/42906
22519         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
22520         IGNORE_SELF argument.  Set visited_control_parents for fully
22521         processed BBs.
22522         (find_obviously_necessary_stmts): Update call of
22523         mark_control_dependent_edges_necessary.
22524         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
22525
22526 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22527
22528         * config/i386/i386.md: Remove comment about 'e' and 'E'
22529         operand modifier.
22530
22531 2010-04-06  Richard Guenther  <rguenther@suse.de>
22532
22533         PR tree-optimization/43627
22534         * tree-vrp.c (extract_range_from_unary_expr): Widenings
22535         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
22536         not varying.
22537
22538 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22539
22540         * BASE-VER: Change to 4.6.0.
22541
22542         PR target/43638
22543         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
22544         handling.
22545
22546 2010-04-06  Richard Guenther  <rguenther@suse.de>
22547
22548         PR middle-end/43661
22549         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
22550
22551 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22552
22553         * doc/invoke.texi (Optimize Options): Document that LTO
22554         won't remove object access purely due to incompatible
22555         declarations.
22556
22557 2010-04-04  Matthias Klose  <doko@ubuntu.com>
22558
22559         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
22560         Initialize variable.
22561
22562 2010-04-03  Richard Guenther  <rguenther@suse.de>
22563
22564         PR middle-end/42509
22565         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
22566         require a non-NULL MEM_OFFSET.
22567
22568 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
22569
22570         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
22571         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
22572         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
22573         config/alpha/predicates.md, config/arm/arm.md,
22574         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
22575         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
22576         config/darwin9.h, config/darwin.c, config/darwin.h,
22577         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
22578         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
22579         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
22580         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
22581         config/mips/mips.md, config/mn10300/mn10300.c,
22582         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
22583         config/rs6000/aix.h, config/rs6000/dfp.md,
22584         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
22585         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
22586         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
22587         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
22588         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
22589         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
22590         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
22591         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
22592         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
22593         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
22594         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
22595         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
22596         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
22597         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
22598         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
22599         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
22600         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
22601         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
22602         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
22603         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
22604         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
22605         opt-functions.awk, opth-gen.awk, params.def, passes.c,
22606         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
22607         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
22608         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
22609         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
22610         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
22611         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
22612         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
22613         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
22614         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
22615         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
22616         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
22617         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
22618         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
22619         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
22620
22621 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22622
22623         PR other/43620
22624         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
22625         * aclocal.m4: Regenerate.
22626
22627 2010-04-02  Richard Guenther  <rguenther@suse.de>
22628
22629         PR tree-optimization/43629
22630         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
22631         if we have seen a constant value.
22632
22633 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
22634
22635         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
22636
22637 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
22638
22639         PR target/43469
22640         * arm.c (legitimize_tls_address): Adjust call to
22641         gen_tls_load_dot_plus_four.
22642         (arm_note_pic_base): New function.
22643         (arm_cannot_copy_insn_p): Use it.
22644         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
22645         constraint.
22646
22647 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22648
22649         PR bootstrap/43531
22650
22651         Revert:
22652         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22653
22654         * Makefile.in ($(out_object_file)): Depend on
22655         gt-$(basename $(notdir $(out_file))).h.
22656
22657 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
22658
22659         * config.gcc (lm32-*-rtems*): Add t-lm32.
22660
22661 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
22662
22663         * config.gcc: Add lm32-*-rtems*.
22664         * config/lm32/rtems.h: New file.
22665
22666 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
22667
22668         PR target/42609
22669         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
22670
22671 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
22672
22673         * dwarf2out.c (output_compilation_unit_header): For
22674         -gdwarf-4 use version 4 instead of version 3.
22675         (output_line_info): For version 4 and above emit additional
22676         maximum ops per insn header field.
22677         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
22678
22679         * dwarf2out.c (is_c_family, is_java): Remove.
22680         (lower_bound_default): New function.
22681         (add_bound_info, gen_descr_array_type_die): Use it.
22682
22683 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
22684
22685         PR debug/43325
22686         * dwarf2out.c (gen_variable_die): Allow debug info for variable
22687         re-declaration when it happens in a function.
22688
22689 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
22690
22691         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
22692         (cgraph_remove_function_insertion_hook): Same.
22693         (cgraph_call_function_insertion_hooks): Same.
22694
22695 2010-04-01  Richard Guenther  <rguenther@suse.de>
22696
22697         PR middle-end/43614
22698         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
22699         and TREE_THIS_VOLATILE.
22700         (copy_ref_info): Likewise.
22701         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
22702         * tree.c (build6_stat): Ignore side-effects of all but arg5
22703         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
22704         TARGET_MEM_REF.
22705
22706 2010-04-01  Richard Guenther  <rguenther@suse.de>
22707
22708         PR tree-optimization/43607
22709         * ipa-type-escape.c (check_call): Do not access non-existing
22710         arguments.
22711
22712 2010-04-01  Richard Guenther  <rguenther@suse.de>
22713
22714         PR middle-end/43602
22715         Revert
22716         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22717                     Jack Howarth  <howarth@bromo.med.uc.edu>
22718
22719         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22720         variables TLS.
22721
22722 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22723
22724         * doc/install.texi (Prerequisites): Document libelf usability on
22725         IRIX 5/6 and Solaris 2.
22726         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
22727         Update GNU as, GNU ld requirements.
22728         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
22729         Document Sun Studio compiler download.
22730         Update and simplify as, ld recommendations.
22731         (Specific, *-*-solaris2.7): Note obsoletion, removal.
22732
22733 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22734
22735         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
22736         with_tune_32 to pentium4.
22737
22738 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
22739
22740         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
22741
22742 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22743
22744         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
22745         obsoletion, removal.
22746         Update IDO URL.
22747         Document GNU as requirement.
22748         Update configure requirements.
22749         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
22750         Recomment IRIX 6.5.18+.
22751         Document IDF/IDL requirement.
22752         Document GNU as requirement.
22753         Document GNU ld bootstrap failure.
22754         Remove freeware.sgi.com reference.
22755
22756 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22757
22758         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
22759         UNIX V4.0, V5.0 obsoletion, removal.
22760         Remove --with-gc=simple reference.
22761         Update VM requirements during bootstrap.
22762         Remove -oldas bootstrap description.
22763         Update binutils reference.
22764         Remove comparison failure note.
22765
22766 2010-03-31  Richard Guenther  <rguenther@suse.de>
22767             Zdenek Dvorak  <ook@ucw.cz>
22768             Sebastian Pop  <sebastian.pop@amd.com>
22769
22770         PR middle-end/43464
22771         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
22772         with multiple arguments.
22773         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
22774
22775 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22776
22777         * graphite-dependences.c (print_pddr): Call print_pdr with an
22778         extra argument.
22779         * graphite-poly.c (debug_pdr): Add an extra argument for the
22780         verbosity level.
22781         (print_pdr): Same.
22782         (print_pbb_domain): Same.
22783         (print_pbb): Same.
22784         (print_scop_context): Same.
22785         (print_scop): Same.
22786         (print_cloog): Same.
22787         (debug_pbb_domain): Same.
22788         (debug_pbb): Same.
22789         (print_pdrs): Same.
22790         (debug_pdrs): Same.
22791         (debug_scop_context): Same.
22792         (debug_scop): Same.
22793         (debug_cloog): Same.
22794         (print_scop_params): Same.
22795         (debug_scop_params): Same.
22796         (print_iteration_domain): Same.
22797         (print_iteration_domains): Same.
22798         (debug_iteration_domain): Same.
22799         (debug_iteration_domains): Same.
22800         (print_scattering_function): Same.
22801         (print_scattering_functions): Same.
22802         (debug_scattering_function): Same.
22803         (debug_scattering_functions): Same.
22804         * graphite-poly.h (debug_pdr): Update declaration.
22805         (print_pdr): Same.
22806         (print_pbb_domain): Same.
22807         (print_pbb): Same.
22808         (print_scop_context): Same.
22809         (print_scop): Same.
22810         (print_cloog): Same.
22811         (debug_pbb_domain): Same.
22812         (debug_pbb): Same.
22813         (print_pdrs): Same.
22814         (debug_pdrs): Same.
22815         (debug_scop_context): Same.
22816         (debug_scop): Same.
22817         (debug_cloog): Same.
22818         (print_scop_params): Same.
22819         (debug_scop_params): Same.
22820         (print_iteration_domain): Same.
22821         (print_iteration_domains): Same.
22822         (debug_iteration_domain): Same.
22823         (debug_iteration_domains): Same.
22824         (print_scattering_function): Same.
22825         (print_scattering_functions): Same.
22826         (debug_scattering_function): Same.
22827         (debug_scattering_functions): Same.
22828
22829 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22830
22831         * graphite-poly.c (print_scattering_function_1): New.
22832         (print_scattering_function): Call it.
22833         (print_scop_params): Remove spaces at the end of lines.
22834         (print_cloog): New.
22835         (debug_cloog): New.
22836         * graphite-poly.h (print_cloog): Declared.
22837         (debug_cloog): Declared.
22838
22839 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22840
22841         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
22842         in loop->header.
22843         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
22844         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
22845         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
22846         to switch between adding the IV bump in loop->latch or in loop->header.
22847
22848 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22849
22850         * graphite-poly.c (print_scattering_function): Pretty print following
22851         the scoplib format.
22852         (print_pdr): Same.
22853         (print_pbb_domain): Same.
22854         (dump_gbb_cases): Same.
22855         (dump_gbb_conditions): Same.
22856         (print_pdrs): Same.
22857         (print_pbb): Same.
22858         (print_scop_params): Same.
22859         (print_scop_context): Same.
22860         (print_scop): Same.
22861         (print_pbb_body): New.
22862         (lst_indent_to): New.
22863         (print_lst): Start new lines with a #.
22864         * graphite-poly.h (pbb_bb): New.
22865         (pbb_index): Use pbb_bb.
22866         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
22867         disjuncts.
22868         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
22869
22870 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22871
22872         * dwarf2out.c (size_of_die): For -gdwarf-4 use
22873         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
22874         and 0 instead of 1 for dw_val_class_flag.
22875         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
22876         dw_val_class_range_list, dw_val_class_loc_list,
22877         dw_val_class_lineptr and dw_val_class_macptr, use
22878         DW_FORM_flag_present for dw_val_class_flag and
22879         DW_FORM_exprloc for dw_val_class_loc.
22880         (output_die): For -gdwarf-4 print dw_val_class_loc
22881         size as uleb128 instead of 1 or 2 bytes and don't print
22882         anything for dw_val_class_flag.
22883
22884         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
22885         instead of cselib_lookup following by tweaking locs->setting_insn.
22886
22887         PR bootstrap/43596
22888         * cselib.c (cselib_process_insn): Clear cselib_current_insn
22889         even before returning from label, setjmp call or volatile asm
22890         handling.
22891
22892 2010-03-31  Richard Guenther  <rguenther@suse.de>
22893
22894         PR middle-end/43600
22895         * cgraphunit.c (cgraph_output_in_order): Do not allocate
22896         temporary data on stack.
22897
22898 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22899
22900         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
22901         (PUSHSECTION_ASM_OP): Remove.
22902         (POPSECTION_ASM_OP): Remove.
22903         (PUSHSECTION_FORMAT): Remove.
22904         * config/sol2.h (PUSHSECTION_FORMAT): Define.
22905         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
22906         * config/sol2.c (solaris_output_init_fini): Use it.
22907
22908 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22909
22910         PR 43574
22911         * opt-functions.awk (var_type_struct): Use signed char type
22912         for simple variables.
22913
22914 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22915
22916         * config/sol2.c: Include output.h.
22917         (solaris_assemble_visibility): New function.
22918         * config/t-sol2 (sol2.o): Add output.h dependency.
22919         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
22920         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
22921         Redefine.
22922
22923 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22924
22925         PR target/43580
22926         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
22927         V2SImode or XFmode on PRE_DEC.
22928
22929         PR debug/43557
22930         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
22931         BLKmode.
22932
22933 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22934
22935         PR 43562
22936         * reload.h (caller_save_initialized_p): Declare.
22937         * toplev.c (backend_init_target): Don't call
22938         init_caller_save but set caller_save_initialized_p to false.
22939         * caller-save.c (caller_save_initialized_p): Define.
22940         (init_caller_save): Check caller_save_initialized_p.
22941         * ira.c (ira): Call init_caller_save if flag_caller_saves.
22942
22943 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22944
22945         PR target/39048
22946         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
22947         and soft-fp/t-softfp to tmake_file.
22948         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
22949         (LIBGCC2_TF_CEXT): Define.
22950         (TF_SIZE): Define.
22951
22952 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
22953
22954         PR debug/42977
22955         * cselib.c (n_useless_values): Document handling of debug locs.
22956         (n_useless_debug_values, n_debug_values): New variables.
22957         (new_elt_loc_list): Don't add to debug values, keep count.
22958         (promote_debug_loc): New.
22959         (cselib_reset_table): Zero new variables.
22960         (entry_and_rtx_equal_p): Promote debug locs.
22961         (discard_useless_locs): Increment n_useless_debug_values for
22962         debug values.
22963         (remove_useless_values): Adjust n_useless_values and n_debug_values
22964         with n_useless_debug_values.
22965         (add_mem_for_addr): Promote debug locs.
22966         (cselib_lookup_mem): Likewise.
22967         (cselib_lookup_addr): Renamed to...
22968         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
22969         (cselib_log_lookup): ... this.  Turn into...
22970         (cselib_lookup_addr): ... new wrapper.
22971         (cselib_lookup_from_insn): New.
22972         (cselib_invalidate_regno): Increment n_useless_debug_values for
22973         debug values.
22974         (cselib_invalidate_mem): Likewise.
22975         (cselib_process_insn): Take n_deleted and n_debug_values into
22976         account to guard remove_useless_value call.
22977         (cselib_finish): Zero n_useless_debug_values.
22978         * cselib.h (cselib_lookup_from_insn): Declare.
22979         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
22980         (sched_analyze_2): Likewise.
22981
22982 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
22983
22984         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
22985         functions.
22986         (adjust_mems): Replace narrowing SUBREG of expression containing
22987         just PLUS, MINUS, MULT and ASHIFT of registers and constants
22988         with operations in the narrower mode.
22989
22990         PR debug/43593
22991         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
22992         regs_invalidated_by_call instead all call_used_reg_set registers.
22993
22994 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
22995
22996         PR middle-end/43430
22997         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
22998         pointer comparisons with types_compatible_p.
22999         * tree-vect-stmts.c (vectorizable_call): Same.
23000         (vectorizable_condition): Same.
23001
23002 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23003
23004         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
23005         stack check if the mask would be zero.
23006
23007 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
23008             Jack Howarth  <howarth@bromo.med.uc.edu>
23009
23010         * tree-profile.c (tree_init_ic_make_global_vars): Make static
23011         variables TLS.
23012
23013 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
23014
23015         PR other/25232
23016         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
23017         and __unordtf2.
23018         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
23019         Include ___unordxf2 and ___unordtf2.
23020         * config/i386/libgcc-glibc.ver: Do not define inheritance from
23021         GCC_4.4.0 here.
23022
23023 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
23024
23025         * config/lm32/t-lm32: New file.
23026         * config.gcc: Use the above file when targetting lm32.
23027
23028 2010-03-28  Duncan Sands  <baldrick@free.fr>
23029
23030         * Makefile.in (PLUGIN_HEADERS): Add except.h.
23031
23032 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23033
23034         PR middle-end/43431
23035         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
23036         Improve vectorization cost model diagnostic.
23037
23038 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23039
23040         PR middle-end/43436
23041         * tree-vect-data-refs.c (vect_analyze_data_refs): When
23042         compute_data_dependences_for_loop returns false, early exit
23043         and output an extra diagnostic for the failed data reference
23044         analysis.
23045
23046 2010-03-29  Richard Guenther  <rguenther@suse.de>
23047
23048         PR tree-optimization/43560
23049         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
23050         (can_sm_ref_p): Treat stores to readonly locations as trapping.
23051
23052 2010-03-29  Jie Zhang  <jie@codesourcery.com>
23053
23054         PR 43564
23055         * toplev.c (process_options): Set optimization_default_node
23056         and optimization_current_node.
23057         * opts.c (decode_options): Don't set optimization_default_node
23058         and optimization_current_node.
23059
23060 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
23061
23062         * config/rtems.h: Abandon -qrtems_debug.
23063
23064 2010-03-28  Jan Hubicka  <jh@suse.cz>
23065
23066         PR tree-optimization/43505
23067         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
23068         map should not be copied.
23069
23070 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23071
23072         PR middle-end/41674
23073         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
23074         cdtors, set DECL_PRESERVE_P.
23075         * ipa.c (cgraph_externally_visible_p): Return true if declaration
23076         should be preseved.
23077
23078 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
23079
23080         PR tree-optimization/43528
23081         * stor-layout.c (place_field): Check that constant fits into
23082         unsigned HWI when skipping calculation of MS bitfield layout.
23083
23084 2010-03-27  Jan Hubicka  <jh@suse.cz>
23085
23086         PR middle-end/43391
23087         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
23088         notice_global_symbol work.
23089
23090 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
23091
23092         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
23093         instead of dwarf2out_decl.
23094         (struct var_loc_node): Remove section_label field.
23095         (dwarf2out_function_decl): New function.
23096         (dwarf2out_var_location): Don't set section_label field.
23097         (dwarf2out_begin_function): Don't empty decl_loc_table here.
23098
23099 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
23100
23101         PR tree-optimization/43544
23102         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
23103         First argument for builtin vectorized function hook is now a
23104         tree to be able to distinguish between machine specific and
23105         standard builtins.
23106         * targhooks.c (default_builtin_vectorized_function): Ditto.
23107         * targhooks.h (default_builtin_vectorized_function): Ditto.
23108         * target.h (struct gcc_target): Ditto.
23109         * tree-vect-stmts.c (vectorizable_function): Ditto.
23110         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
23111         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
23112         Ditto.
23113
23114 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
23115
23116         PR c/43381
23117         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
23118         nested binding iff it is a FUNCTION_DECL.
23119         (store_parm_decls_newstyle): Pass nested=true to bind for
23120         FUNCTION_DECLs amongst parameters.
23121
23122 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23123
23124         * var-tracking.c (vt_expand_loc_callback): Don't run
23125         cselib_expand_value_rtx_cb in dummy mode if
23126         cselib_dummy_expand_value_rtx_cb returned false.
23127
23128         * var-tracking.c (emit_note_insn_var_location): For one part
23129         notes with offset 0, don't add EXPR_LIST around the location.
23130         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
23131         add_location_or_const_value_attribute): Adjust for that change.
23132
23133         PR debug/43540
23134         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
23135         into first operand and location into second.
23136         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
23137         dw_cfi_oprnd_loc for DW_CFA_expression.
23138         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
23139         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
23140         assume first argument is regnum and second argument is location.
23141
23142 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23143
23144         PR target/42113
23145         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
23146         of scratch register to DImode.  Split to DImode comparison operator.
23147         Use SImode subreg of scratch register in the multiplication.
23148         (*cmp_sadd_sidi): Ditto.
23149         (*cmp_ssub_si): Ditto.
23150         (*cmp_ssub_sidi): Ditto.
23151
23152 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23153
23154         PR target/43524
23155         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
23156         Remove invalid assert and wrong comment.
23157
23158 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23159
23160         PR debug/43516
23161         * flags.h (final_insns_dump_p): New extern.
23162         * final.c (final_insns_dump_p): New variable.
23163         (rest_of_clean_state): Set it before -fdump-final-insns=
23164         dumping, clear afterwards.
23165         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
23166         MEM_ALIAS_SET on MEMs.
23167
23168 2010-03-26  David S. Miller  <davem@davemloft.net>
23169
23170         * configure.ac: Fix sparc GOTDATA_OP bug check.
23171         * configure: Rebuild.
23172
23173 2010-03-26  Alan Modra  <amodra@gmail.com>
23174
23175         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
23176
23177 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23178
23179         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
23180         TLS_SECTION_ASM_FLAG.
23181
23182 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
23183
23184         PR bootstrap/43511
23185         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
23186         Clear first_function_block_is_cold.
23187
23188         PR c/43385
23189         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
23190         argument if the argument is truth_value_p.
23191
23192 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23193
23194         * config/rs6000/constraints.md: Update copyright year for my changes.
23195
23196         PR target/43484
23197         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
23198         used in reg+reg addressing, swap registers.
23199
23200 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23201
23202         PR debug/43293
23203         * target.h (struct gcc_target): Add code_end hook.
23204         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
23205         if not yet defined.
23206         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
23207         * toplev.c (compile_file): Call targetm.asm_out.code_end
23208         hook before unwind info/debug info output.
23209         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
23210         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
23211         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23212         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
23213         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23214         * config/i386/i386.c (ix86_file_end): Renamed to...
23215         (ix86_code_end): ... this.  Make static.  Don't call
23216         file_end_indicate_exec_stack.  Emit unwind info using
23217         final_start_function/final_end_function.
23218         (darwin_x86_file_end): Remove.
23219         (TARGET_ASM_CODE_END): Define.
23220         * config/i386/i386.h (TARGET_ASM_FILE_END,
23221         NEED_INDICATE_EXEC_STACK): Don't define.
23222         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
23223         (TARGET_ASM_FILE_END): Define to darwin_file_end.
23224         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
23225         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
23226
23227         PR target/43498
23228         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
23229         at the beginning and final_end_function at the end.
23230         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
23231
23232 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23233
23234         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
23235         and Sun as TLS syntax.
23236         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
23237         * configure: Regenerate.
23238         * config.in: Regenerate.
23239         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
23240         (default_elf_asm_named_section): Use it.
23241         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
23242         (i386_output_dwarf_dtprel): Likewise.
23243         (output_addr_const_extra): Likewise.
23244         (output_pic_addr_const): Lowercase @GOTTPOFF.
23245         (output_addr_const_extra): Likewise.
23246         (output_pic_addr_const): Lowercase @GOTNTPOFF.
23247         (output_addr_const_extra): Likewise.
23248         (output_pic_addr_const): Lowercase @INDNTPOFF.
23249         (output_addr_const_extra): Likewise.
23250         (output_pic_addr_const): Lowercase @NTPOFF.
23251         (output_addr_const_extra): Likewise.
23252         (output_pic_addr_const): Lowercase @TPOFF.
23253         (output_addr_const_extra): Likewise.
23254         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
23255         (*tls_global_dynamic_64): Likewise.
23256         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
23257         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
23258
23259         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
23260         (ASM_OUTPUT_TLS_COMMON): Use it.
23261         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
23262
23263         PR target/38118
23264         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
23265         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
23266         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
23267         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
23268         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23269         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
23270
23271 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23272
23273         * config/i386/i386.c (override_options): Don't accept
23274         -mtls-dialect=sun any longer.
23275         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
23276         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
23277         (*tls_local_dynamic_base_32_sun): Likewise.
23278         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23279
23280 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23281
23282         PR debug/43508
23283         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
23284         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
23285
23286         PR debug/43479
23287         * ira.c (adjust_cleared_regs): New function.
23288         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
23289
23290         PR debug/19192
23291         PR debug/43479
23292         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
23293         from gimple_block.
23294         * expr.c (expand_expr_real): Restore previous
23295         curr_insn_source_location and curr_insn_block after
23296         expand_expr_real_1 call.
23297         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
23298         instead of expand_expr_real_1.
23299
23300 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
23301
23302         PR rtl-optimization/43413
23303         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
23304         hard regs too.
23305
23306 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
23307
23308         PR target/43348
23309         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
23310         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
23311
23312 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
23313
23314         * config/i386/i386.c (ix86_target_string): Add -mfma.
23315         Fix a typo in comment.
23316
23317 2010-03-22  Mike Stump  <mikestump@comcast.net>
23318
23319         PR target/23071
23320         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
23321         Don't overly align based upon packed packed fields.
23322
23323 2010-03-22  Jason Merrill  <jason@redhat.com>
23324
23325         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
23326         Use () rather than [], and move before the element type.
23327
23328 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23329
23330         * doc/configfiles.texi (Configuration Files): Removed
23331         fixinc/Makefile*, intl/Makefile.*.
23332         * doc/makefile.texi: Fixed markup. Abstract from version
23333         control system used.
23334         (Makefile): Removed obsolete java/parse.y example.
23335         * doc/sourcebuild.texi: Likewise.
23336         (Top Level): Added config, gnattools, libdecnumber, libgcc,
23337         libgomp, libssp.  Removed fastjar.
23338         (Miscellaneous Docs): Clarify location.
23339         Added COPYING3, COPYING3.LIB.
23340         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
23341
23342 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23343
23344         PR target/38085
23345         * config/i386/i386.c (x86_function_profiler)
23346         [!NO_PROFILE_COUNTERS]: Fix typo.
23347         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
23348         instead of callq.
23349
23350 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
23351             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23352
23353         * doc/sourcebuild.texi (Test Directives): Split into six
23354         subsections, with most of the current text in new subsections
23355         Directives, Selectors, and Final Actions.
23356         (Directives): Split list of test directives into multiple
23357         subsubsections.
23358         (Selectors): Describe use and syntax of selectors.
23359         (Effective-Target Keywords): Describe all existing keywords.
23360         (Add Options): Describe features for dg-add-options.
23361         (Require Support): Describe variants of dg-require-support.
23362         (Final Actions): Describe commands to use in dg-final.
23363
23364 2010-03-22  Michael Matz  <matz@suse.de>
23365
23366         PR middle-end/43475
23367         * recog.c (validate_replace_rtx_group): Replace also in
23368         REG_EQUAL and REG_EQUIV notes.
23369
23370 2010-03-22  Richard Guenther  <rguenther@suse.de>
23371
23372         PR tree-optimization/43390
23373         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
23374         sure vector extracts are type correct.
23375
23376 2010-03-22  Richard Guenther  <rguenther@suse.de>
23377
23378         PR middle-end/40106
23379         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
23380         x * sqrt (x) even when optimizing for size if the target
23381         has native support for sqrt.
23382
23383 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
23384
23385         * varasm.c (make_decl_rtl_for_debug): Also clear
23386         flag_mudflap for the duration of make_decl_rtl call.
23387
23388         PR debug/43443
23389         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
23390         locs from preserved VALUEs.
23391
23392 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23393
23394         PR middle-end/42718
23395         * pa.md (movmemsi): Set align to one if zero.
23396         (movmemdi): Likewise.
23397
23398 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
23399
23400         PR target/42321
23401         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
23402         with their corresponding prologue pushes.
23403
23404 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
23405
23406         PR target/43156
23407         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
23408         at the begining or end.
23409         (spu_expand_epilogue): Likewise.
23410
23411 2010-03-20  Richard Guenther  <rguenther@suse.de>
23412
23413         PR rtl-optimization/43438
23414         * combine.c (make_extraction): Properly zero-/sign-extend an
23415         extraction of the low part of a CONST_INT.  Also handle
23416         CONST_DOUBLE.
23417
23418 2010-03-19  Mike Stump  <mikestump@comcast.net>
23419
23420         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
23421         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
23422         (override_options): Use SUBTARGET32_DEFAULT_CPU.
23423
23424 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23425
23426         PR c/43211
23427         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
23428         an error.
23429
23430 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
23431
23432         PR rtl-optimization/42258
23433         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
23434         use that may match DEF.
23435
23436         PR target/40697
23437         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
23438         the cost of loading the constant rather than assuming
23439         COSTS_N_INSNS (1).
23440         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
23441         outer code is AND, do the same tests as the andsi3 expander and
23442         return COSTS_N_INSNS (1) if and is cheap.
23443
23444         * optabs.c (avoid_expensive_constant): Fix formatting.
23445
23446 2010-03-19  Michael Matz  <matz@suse.de>
23447
23448         PR c++/43116
23449         * attribs.c (decl_attributes): When rebuilding a function pointer
23450         type use the same qualifiers as the original pointer type.
23451
23452 2010-03-19  Martin Jambor  <mjambor@suse.cz>
23453
23454         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
23455         and is_gimple_ip_invariant_address.
23456
23457 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23458
23459         Revert
23460         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23461
23462         * config/arm/arm.c (arm_override_options): Turn off
23463         flag_dwarf2_cfi_asm for AAPCS variants.
23464
23465 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23466
23467         PR target/43399
23468         * config/arm/arm.c (emit_multi_reg_push): Update comments.
23469         Use PRE_MODIFY instead of PRE_DEC.
23470         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
23471         (vfp_emit_fstmd): Likewise.
23472
23473 2010-03-19  Michael Matz  <matz@suse.de>
23474
23475         PR target/43305
23476         * builtins.c (expand_builtin_interclass_mathfn,
23477         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
23478         if that fails.
23479
23480 2010-03-19  Richard Guenther  <rguenther@suse.de>
23481
23482         PR tree-optimization/43415
23483         * tree-ssa-pre.c (phi_translate): Split out worker to ...
23484         (phi_translate_1): ... this.
23485         (phi_translate): Move all caching here.  Cache all NARY
23486         and REFERENCE translations.
23487
23488 2010-03-19  David S. Miller  <davem@davemloft.net>
23489
23490         With help from Eric Botcazou.
23491         * config/sparc/sparc.c: Include dwarf2out.h.
23492         (emit_pic_helper): Delete.
23493         (pic_helper_symbol_name): Delete.
23494         (pic_helper_emitted_p): Delete.
23495         (pic_helper_needed): New.
23496         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
23497         (get_pc_thunk_name): New.
23498         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
23499         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
23500         Set pic_helper_needed to true.  Don't call emit_pic_helper.
23501         (sparc_expand_prologue): Update load_pic_register call.
23502         (sparc_output_mi_thunk): Likewise.
23503         (sparc_file_end): Emit a hidden comdat symbol for the PIC
23504         thunk if possible.  Output CFI information as needed.
23505
23506 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23507             Jack Howarth  <howarth@bromo.med.uc.edu>
23508
23509         PR target/36399
23510         * config/i386/i386.h: Fix ABI on darwin x86-32.
23511
23512 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
23513
23514         * tree.h: Declare make_decl_rtl_for_debug.
23515         * varasm.c (make_decl_rtl_for_debug): New.
23516         * dwarf2out.c (rtl_for_decl_location): Call it.
23517         * cfgexpand.c (expand_debug_expr): Call it.
23518
23519 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23520
23521         PR bootstrap/43399
23522         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
23523         mem_mode.
23524
23525         PR bootstrap/43403
23526         * var-tracking.c (vt_init_cfa_base): Do nothing if
23527         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
23528
23529 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
23530
23531         PR debug/42873
23532         * var-tracking.c (canonicalize_vars_star): New.
23533         (dataflow_post_merge_adjust): Use it.
23534
23535 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23536
23537         PR debug/43058
23538         * var-tracking.c (non_suitable_const): New function.
23539         (add_uses): For DEBUG_INSNs with constants, don't record any
23540         value, instead just the constant value itself.
23541         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
23542         is not VAR_LOC_UNKNOWN_P, set var to the constant.
23543         (emit_notes_in_bb): Likewise.
23544         (emit_note_insn_var_location): For onepart variables if
23545         cur_loc is a VOIDmode constant, use DECL_MODE.
23546
23547 2010-03-18  Martin Jambor  <mjambor@suse.cz>
23548
23549         PR middle-end/42450
23550         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
23551         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
23552         all non-clones.  Moved call redirection...
23553         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
23554         (cgraph_materialize_all_clones): Dispose of all
23555         combined_args_to_skip bitmaps.
23556         (verify_cgraph_node): Do not check for edges pointing to wrong
23557         nodes in inline clones.
23558         * tree-inline.c (copy_bb): Call
23559         cgraph_redirect_edge_call_stmt_to_callee.
23560         * ipa.c (cgraph_remove_unreachable_nodes): Call
23561         cgraph_node_remove_callees even when there are used clones.
23562
23563 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23564
23565         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
23566
23567 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23568
23569         PR target/43383
23570         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
23571         for 32bit.
23572
23573 2010-03-18  Michael Matz  <matz@suse.de>
23574
23575         PR middle-end/43419
23576         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
23577         into sqrt(x) if we need to preserve signed zeros.
23578
23579 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
23580             Eric Botcazou  <ebotcazou@adacore.com>
23581
23582         PR rtl-optimization/43360
23583         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
23584         note if we don't know its invariant status.
23585
23586 2010-03-18  Michael Matz  <matz@suse.de>
23587
23588         PR tree-optimization/43402
23589         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
23590         PHI chains of ssa names registered for update.
23591
23592 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
23593
23594         PR target/42427
23595         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
23596         non-offsettable and pre_modify update addressing.
23597         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
23598         and "2" alternatives "#".
23599         (*movdd_softfloat32): Make all alternatives "#";
23600         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
23601         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
23602         (*movdf_softfloat32): Make all alternatives "#";
23603         (movdi): Use the new DIFD mode iterator to create a common splitter
23604         for movdi, movdf and movdd patterns.
23605
23606 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
23607
23608         * common.opt (dumpdir): Remove redundant tab.
23609
23610 2010-03-17  Martin Jambor  <mjambor@suse.cz>
23611
23612         PR tree-optimization/43347
23613         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
23614         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
23615
23616 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
23617
23618         PR rtl-optimization/42216
23619         * regrename.c (create_new_chain): New function, broken out from...
23620         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
23621         appending a use to an empty chain.
23622         (build_def_use): Remove previous changes that convert OP_INOUT to
23623         OP_OUT operands; instead detect the case where an OP_INOUT operand
23624         uses a previously untracked register and create an empty chain for it.
23625
23626 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23627
23628         * doc/extend.texi (Function Attributes): Rewrite unfinished
23629         sentence in ms_abi documentation.
23630
23631 2010-03-17  Alan Modra  <amodra@gmail.com>
23632
23633         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
23634         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
23635         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
23636         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
23637
23638 2010-03-16  Richard Henderson  <rth@redhat.com>
23639
23640         PR middle-end/43365
23641         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
23642         (lower_try_finally): Save and restore eh_seq around the expansion
23643         of the try-finally.
23644
23645 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23646
23647         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
23648         statements before splitting block.
23649
23650 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23651
23652         * doc/sourcebuild.texi (Testsuites): Fix markup.
23653         Use pathnames relative to gcc/testsuite.
23654         (Test Directives): Move description of how timeout is determined.
23655         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
23656         (C Tests): Correct gcc.misc-tests directory.
23657         Framework tests now live in gcc.test-framework.
23658
23659 2010-03-16  Richard Guenther  <rguenther@suse.de>
23660
23661         PR middle-end/43379
23662         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
23663         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
23664
23665 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23666             Alexandre Oliva  <aoliva@redhat.com>
23667
23668         PR tree-optimization/42917
23669         * lambda-code.c (remove_iv): Skip debug statements.
23670         (lambda_loopnest_to_gcc_loopnest): Likewise.
23671         (not_interesting_stmt): Debug statements are not interesting.
23672
23673 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
23674
23675         PR debug/43051
23676         PR debug/43092
23677         * cselib.c (cselib_preserve_constants,
23678         cfa_base_preserved_val): New static variables.
23679         (preserve_only_constants): New function.
23680         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
23681         clear its REG_VALUES.  If cselib_preserve_constants, don't
23682         empty the whole hash table, but preserve there VALUEs with constants,
23683         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
23684         (cselib_preserve_cfa_base_value): New function.
23685         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
23686         (cselib_init): Change argument to int bitfield.  Set
23687         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
23688         is in it.
23689         (cselib_finish): Clear cselib_preserve_constants and
23690         cfa_base_preserved_val.
23691         * cselib.h (enum cselib_record_what): New enum.
23692         (cselib_init): Change argument to int.
23693         (cselib_preserve_cfa_base_value): New prototype.
23694         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
23695         * dse.c (dse_step1): Likewise.
23696         * cfgcleanup.c (thread_jump): Likewise.
23697         * sched-deps.c (sched_analyze): Likewise.
23698         * gcse.c (local_cprop_pass): Likewise.
23699         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
23700         If FN is non-NULL, call the callback always and whenever it returns
23701         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
23702         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
23703         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
23704         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
23705         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
23706         * var-tracking.c: Include recog.h.
23707         (bb_stack_adjust_offset): Remove.
23708         (vt_stack_adjustments): Don't call it, instead just gather the
23709         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
23710         (adjust_stack_reference): Remove.
23711         (compute_cfa_pointer): New function.
23712         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
23713         (struct adjust_mem_data): New type.
23714         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
23715         functions.
23716         (get_address_mode): New function.
23717         (replace_expr_with_values): Use it.
23718         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
23719         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
23720         (adjust_sets): Remove.
23721         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
23722         Use get_address_mode.
23723         (get_adjusted_src): Remove.
23724         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
23725         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
23726         (add_with_sets): Don't call adjust_sets.
23727         (fp_setter, vt_init_cfa_base): New functions.
23728         (vt_initialize): Change return type to bool.  Move most of pool etc.
23729         initialization to the beginning of the function from end.  Pass
23730         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
23731         If !frame_pointer_needed, call vt_stack_adjustment before mos
23732         vector is filled, call vt_init_cfa_base if argp/framep has been
23733         eliminated to sp.  If frame_pointer_needed and argp/framep has
23734         been eliminated to hard frame pointer, set
23735         hard_frame_pointer_adjustment and call vt_init_cfa_base after
23736         encountering fp setter in the prologue.  For MO_ADJUST, call
23737         log_op_type before pusing the op into mos vector, not afterwards.
23738         Call adjust_insn before cselib_process_insn/add_with_sets,
23739         call cancel_changes (0) afterwards.
23740         (variable_tracking_main_1): Adjust for vt_initialize calling
23741         vt_stack_adjustments and returning whether it succeeded or not.
23742
23743 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
23744
23745         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
23746         debug statements.
23747
23748 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
23749
23750         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
23751         has been set.
23752         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
23753         drap_reg has not been set.
23754
23755 2010-03-15  Michael Matz  <matz@suse.de>
23756
23757         PR middle-end/43300
23758         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
23759         use it to expand block copies.
23760         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
23761         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
23762         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
23763
23764 2010-03-15  Richard Guenther  <rguenther@suse.de>
23765
23766         PR tree-optimization/43367
23767         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
23768         elimination check.
23769
23770 2010-03-15  Richard Guenther  <rguenther@suse.de>
23771
23772         PR tree-optimization/43317
23773         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
23774
23775 2010-03-15  Martin Jambor  <mjambor@suse.cz>
23776
23777         PR tree-optimization/43141
23778         * tree-sra.c (create_abstract_origin): New function.
23779         (modify_function): Call create_abstract_origin.
23780
23781 2010-03-15  Chris Demetriou  <cgd@google.com>
23782
23783         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
23784         wasn't copied.
23785
23786 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23787
23788         PR middle-end/43354
23789         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
23790         call insert_out_of_ssa_copy for default definitions.
23791
23792 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23793
23794         * graphite-clast-to-gimple.c (my_long_long): Defined.
23795         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
23796         * graphite-sese-to-poly.c (my_long_long): Defined.
23797         (scop_ivs_can_be_represented): Use it.
23798
23799 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23800
23801         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
23802         graphite-max-bbs-per-function, and loop-block-tile-size.
23803         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
23804         with "maximum".
23805         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
23806
23807 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23808
23809         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
23810         forward declaration.
23811         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
23812         (add_upper_bounds_from_estimated_nit): New.
23813         (build_loop_iteration_domains): Use it.
23814
23815 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23816
23817         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
23818
23819 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23820
23821         PR middle-end/43306
23822         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
23823         should be an INTEGER_CST.  Also handle CASE_CONVERT.
23824
23825 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23826
23827         * graphite.c (graphite_initialize): To bound the number of bbs per
23828         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
23829         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
23830         * doc/invoke.texi: Document it.
23831
23832 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23833
23834         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
23835         * graphite-sese-to-poly.h (build_poly_scop): Same.
23836
23837 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23838
23839         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
23840         the number of parameters in the scop.  Use as an upper bound
23841         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
23842         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
23843         * doc/invoke.texi: Document it.
23844
23845 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
23846
23847         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
23848         * doc/c-tree.texi: Remove.
23849         * doc/generic.texi: Merge c-tree.texi here.
23850         * doc/gccint.texi (Trees): Remove menu entry.
23851         (c-tree.texi): Remove @include.
23852         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
23853         * doc/languages.texi (Reading RTL): Ditto.
23854
23855 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
23856
23857         PR target/42869
23858         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
23859
23860 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23861
23862         PR middle-end/42431
23863         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
23864         code added to work around reload clobbering CONST insns.
23865
23866 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
23867
23868         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
23869         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
23870         (cselib_preserve_only_values): Remove retain argument, don't
23871         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
23872         * cselib.h (cselib_preserve_only_values): Remove retain argument.
23873         * var-tracking.c (micro_operation): Move insn field before union.
23874         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
23875         (struct variable_tracking_info_def): Remove n_mos field, change
23876         mos into a vector of micro_operations.
23877         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
23878         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
23879         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
23880         changing into a vector.
23881         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
23882         come before all other uops generated by add_stores.
23883         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
23884         argument removal.
23885         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
23886         a vector.  Run just one pass over the bbs instead of separate counting
23887         and computation phase.
23888         (vt_finalize): Free VTI (bb)->mos vector instead of array.
23889
23890         PR debug/43329
23891         * tree-inline.c (remap_decls): Put old_var rather than origin_var
23892         into *nonlocalized_list vector.
23893         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
23894         even if origin is non-NULL.
23895         (gen_variable_die): Likewise.
23896         (process_scope_var): Don't change origin.
23897         (gen_decl_die): Likewise.
23898         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
23899         before adding new edges instead of after it, fix moving over
23900         debug stmts.
23901
23902 2010-03-11  David S. Miller  <davem@davemloft.net>
23903
23904         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
23905         of four.
23906         * configure: Rebuild.
23907
23908 2010-03-11  Martin Jambor  <mjambor@suse.cz>
23909
23910         PR tree-optimization/43257
23911         * tree.c (assign_assembler_name_if_neeeded): New function.
23912         (free_lang_data_in_cgraph): Assembler name assignment moved to the
23913         above new function.
23914         * tree.h (assign_assembler_name_if_neeeded): Declare.
23915         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
23916         the function if needed.
23917
23918 2010-03-11  Chris Demetriou  <cgd@google.com>
23919
23920         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
23921         include/stdint-gcc.h, and include/stdint.h world-readable.
23922
23923 2010-03-11  Richard Guenther  <rguenther@suse.de>
23924
23925         PR tree-optimization/43255
23926         * tree-vrp.c (process_assert_insertions_for): Do not insert
23927         asserts for trivial conditions.
23928
23929 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23930
23931         PR tree-optimization/43280
23932         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
23933         generation.  Move calculation of size out of the if branch.
23934         (find_bswap): Modify compare number generation.
23935
23936 2010-03-11  Richard Guenther  <rguenther@suse.de>
23937
23938         PR lto/43200
23939         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
23940         (input_gimple_stmt): Fixup handled component types during
23941         operand read.  Also fix up decls in ADDR_EXPRs.
23942
23943 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
23944
23945         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
23946         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
23947
23948 2010-03-10  Jan Hubicka  <jh@suse.cz>
23949
23950         PR c/43288
23951         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
23952         * varasm.c (get_variable_section): Don't do that here...
23953         (make_decl_rtl): ... and here.
23954         (do_assemble_alias): Produce decl RTL.
23955         (assemble_alias): Likewise.
23956
23957 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23958
23959         PR debug/43290
23960         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
23961         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
23962         of fde->vdrap_reg.
23963         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
23964         (based_loc_descr): Only express drap or vdrap regno based expressions
23965         using DW_OP_fbreg when not optimizing.
23966         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
23967         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
23968         REG_CFA_SET_VDRAP note.
23969
23970 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
23971
23972         PR tree-optimization/43236
23973         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
23974         error in calculation of base address in reverse iteration case.
23975         (generate_builtin): Take number of latch executions if the statement
23976         is in the latch.
23977
23978 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
23979
23980         PR middle-end/42859
23981         * tree-eh.c: Include pointer-set.h.
23982         (lower_eh_dispatch): Filter out duplicate case labels and
23983         remove the unneeded edge when the label is unused.  Return
23984         true when some edges are removed.
23985         (execute_lower_eh_dispatch): When any lowering resulted in
23986         removing an edge, also delete unreachable blocks.
23987
23988 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23989
23990         PR bootstrap/43287
23991         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23992         UNSPEC_MACHOPIC_OFFSET.
23993
23994 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
23995
23996         PR target/43294
23997         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
23998         (m68k_delegitimize_address): New function.
23999
24000 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
24001
24002         PR debug/43299
24003         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
24004
24005         PR debug/43299
24006         * var-tracking.c (adjust_sets): New function.
24007         (count_with_sets, add_with_sets): Use it.
24008         (get_adjusted_src): New inline function.
24009         (add_stores): Use it.
24010
24011         PR debug/43304
24012         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
24013         call cselib_dummy_expand_value_rtx_cb instead of
24014         cselib_expand_value_rtx_cb.
24015
24016         PR debug/43293
24017         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
24018         * config/i386/i386.c: Include debug.h and dwarf2out.h.
24019         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
24020         and .cfi_endproc around the pic thunks.
24021         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
24022         all queued unwind info register saves are saved before the call.
24023         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
24024         considered as sp-=4 for unwind info and the pop as sp+=4 which
24025         also clobbers dest, but doesn't actually restore it.
24026
24027         PR debug/43290
24028         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
24029         RTX_FRAME_RELATED_P.
24030
24031 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24032
24033         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
24034         whitespaces in output template.
24035
24036 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24037
24038         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
24039         out array boundary.
24040
24041 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24042
24043         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
24044         builtins.exp in a separate job.
24045
24046 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24047
24048         * graphite-sese-to-poly.c (add_param_constraints): Use
24049         lower_bound_in_type and upper_bound_in_type.
24050
24051 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24052
24053         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
24054         instead of unsigned_type_node.
24055
24056 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24057             Reza Yazdani  <reza.yazdani@amd.com>
24058
24059         PR middle-end/43065
24060         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
24061         on pointer type parameters.
24062
24063 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24064
24065         PR middle-end/42644
24066         PR middle-end/42130
24067         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
24068         handle conversions from pointer to integers.
24069         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
24070         induction variable, to be able to work with code generated by CLooG.
24071         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
24072         (build_poly_scop): Bail out if we cannot codegen a loop.
24073
24074 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24075
24076         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
24077         code generation with gloog_error.
24078
24079 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24080
24081         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
24082         Call fold_convert on all the returned values.
24083         (expand_scalar_variables_expr): Pass to
24084         expand_scalar_variables_ssa_name the type of the resulting expression.
24085
24086 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24087
24088         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
24089         ppl_min_for_le_pointset.
24090         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
24091         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
24092
24093 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24094
24095         * graphite-dependences.c (map_into_dep_poly): Removed.
24096         (dependence_polyhedron_1): Use combine_context_id_scat.
24097
24098 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24099
24100         * graphite-poly.h (struct poly_scattering): Add layout documentation.
24101         (struct poly_bb): Same.
24102         (combine_context_id_scat): New.
24103
24104 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24105
24106         PR middle-end/42326
24107         * sese.c (name_defined_in_loop_p): Return false for default
24108         definitions.
24109
24110 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24111
24112         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
24113         and clean up the logic.
24114
24115 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24116
24117         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
24118         early return.
24119
24120 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24121
24122         * var-tracking.c (remove_cselib_value_chains): Define only for
24123         ENABLE_CHECKING.
24124         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
24125         delete_slot_part, emit_notes_for_differences_1): Don't call
24126         remove_cselib_value_chains here.
24127         (set_slot_part, emit_notes_for_differences_2): Don't call
24128         add_cselib_value_chains here.
24129         (preserved_values): New vector.
24130         (preserve_value): New function.
24131         (add_uses, add_stores, vt_add_function_parameters): Use it
24132         instead of cselib_preserve_value.
24133         (changed_values_stack): New vector.
24134         (check_changed_vars_0): New function.
24135         (check_changed_vars_1, check_changed_vars_2): Use it.
24136         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
24137         changed_values_stack VALUEs.
24138         (vt_emit_notes): For all preserved_values call
24139         add_cselib_value_chains.  If ENABLE_CHECKING call
24140         remove_cselib_value_chains before verifying value_chains is empty.
24141         Initialize and free changed_values_stack.
24142         (vt_initialize): Initialize preserved_values.
24143         (vt_finalize): Free preserved_values.
24144
24145 2010-03-08  Richard Guenther  <rguenther@suse.de>
24146
24147         PR tree-optimization/43269
24148         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
24149         region detection.
24150
24151 2010-03-08  Martin Jambor  <mjambor@suse.cz>
24152
24153         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
24154         (ipa_is_param_called): Removed.
24155         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
24156         (ipa_print_node_params): Do not print the called flag.
24157         (ipa_write_node_info): Do not stream the called flag.
24158         (ipa_read_node_info): Likewise.
24159
24160 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
24161
24162         PR debug/43176
24163         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
24164         * cselib.c (struct expand_value_data): Add dummy field.
24165         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
24166         dummy to false.
24167         (cselib_dummy_expand_value_rtx_cb): New function.
24168         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
24169         any rtl.
24170         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
24171         * var-tracking.c: Include pointer-set.h.
24172         (variable): Change n_var_parts to char from int.  Add
24173         cur_loc_changed and in_changed_variables fields.
24174         (variable_canonicalize): Remove.
24175         (shared_var_p): New inline function.
24176         (unshare_variable): Maintain cur_loc_changed and
24177         in_changed_variables fields.  If var was in changed_variables,
24178         replace it there with new_var.  Just copy cur_loc instead of
24179         resetting it to something else.
24180         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
24181         (dataflow_set_union): Don't call variable_canonicalize.
24182         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
24183         of their DEBUG_EXPR_TREE_DECLs.
24184         (canonicalize_loc_order_check): Verify that cur_loc is NULL
24185         and in_changed_variables and cur_loc_changed is false.
24186         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
24187         and cur_loc_changed.  Don't update cur_loc here.
24188         (variable_merge_over_src): Don't call variable_canonicalize.
24189         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
24190         removing loc that is equal to cur_loc, clear cur_loc,
24191         set cur_loc_changed and ensure variable_was_changed is called.
24192         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
24193         compare pointers in cur_loc check, if it is equal to loc,
24194         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
24195         (variable_different_p): Remove compare_current_location argument,
24196         don't compare cur_loc.
24197         (dataflow_set_different_1): Adjust variable_different_p caller.
24198         (variable_was_changed): If dv had some var in changed_variables
24199         already, reset in_changed_variables flag for it and propagate
24200         cur_loc_changed over to the new variable.  On empty var
24201         always set cur_loc_changed.  Set in_changed_variables on whatever
24202         var is added to changed_variables.
24203         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
24204         Use shared_var_p.  When removing loc that is equal to cur_loc,
24205         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
24206         end, don't set it to something else, just call variable_was_changed.
24207         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
24208         loc being removed, clear cur_loc and set cur_loc_changed.
24209         Set cur_loc_changed if all locations have been removed.
24210         (struct expand_loc_callback_data): New type.
24211         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
24212         allocated.  Always create SUBREGs if simplify_subreg failed.
24213         Prefer to use cur_loc, when that fails and still in
24214         changed_variables (and seen first time) recompute it.  Set
24215         cur_loc_changed of variables which had to change cur_loc and
24216         compute elcd->cur_loc_changed if any of the subexpressions used
24217         had to change cur_loc.
24218         (vt_expand_loc): Adjust to pass arguments in
24219         expand_loc_callback_data structure.
24220         (vt_expand_loc_dummy): New function.
24221         (emitted_notes): New variable.
24222         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
24223         that weren't used for any other decl in current
24224         emit_notes_for_changes call call vt_expand_loc_dummy to update
24225         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
24226         first loc_chain location if NULL before.  Always use just
24227         cur_loc instead of first loc_chain location.  When cur_loc_changed
24228         is false, when not --enable-checking=rtl just don't emit any note.
24229         When rtl checking, compute the note and assert it is the same
24230         as previous note.  Clear cur_loc_changed and in_changed_variables
24231         at the end before removing from changed_variables.
24232         (check_changed_vars_3): New function.
24233         (emit_notes_for_changes): Traverse changed_vars to call
24234         check_changed_vars_3 on each changed var.
24235         (emit_notes_for_differences_1): Clear cur_loc_changed and
24236         in_changed_variables.  Recompute cur_loc of new_var.
24237         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
24238         (vt_emit_notes): Initialize and destroy emitted_notes.
24239
24240 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
24241
24242         PR rtl-optimization/42220
24243         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
24244         Use verify_reg_tracked to determine if we should use OP_OUT rather
24245         than OP_INOUT.
24246         (build_def_use): If we see an in-out operand for a register that we
24247         know nothing about, treat is an output if possible, fail the block if
24248         not.
24249
24250 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24251
24252         PR debug/42897
24253         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
24254         permanently.
24255
24256 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24257
24258         PR debug/42897
24259         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
24260         uses of relevant DEFs that are dead outside the loop too.
24261
24262 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24263
24264         * var-tracking.c (dataflow_set_merge): Swap src and src2.
24265         Reverted:
24266         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
24267         PR debug/41371
24268         * var-tracking.c (values_to_unmark): New variable.
24269         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
24270         values_to_unmark vector.  Moved body to...
24271         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
24272         instead queue it into values_to_unmark vector.
24273         (vt_find_locations): Free values_to_unmark vector.
24274
24275 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
24276
24277         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
24278         (site.exp): Export them when plugins are enabled.
24279
24280 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
24281
24282         PR middle-end/42326
24283         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
24284         that contain scevs.
24285         (chrec_fold_multiply): Same.
24286
24287 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
24288
24289         PR c/43248
24290         * c-decl.c (build_compound_literal): Return early if init is
24291         an error_mark_node.
24292
24293 2010-03-04  Martin Jambor  <mjambor@suse.cz>
24294
24295         PR tree-optimization/43164
24296         PR tree-optimization/43191
24297         * tree-sra.c (type_consists_of_records_p): Reject records with
24298         zero-size bit-fields at the end.
24299
24300 2010-03-04  Mike Stump  <mikestump@comcast.net>
24301
24302         * Makefile.in (TAGS): Remove *.y.
24303
24304 2010-03-04  Richard Guenther  <rguenther@suse.de>
24305
24306         PR tree-optimization/40761
24307         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
24308         in reverse order.
24309         (my_rev_post_order_compute): New function.
24310         (init_pre): Call it.
24311
24312 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
24313
24314         PR middle-end/43209
24315         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
24316         decrease the cost of an IV candidate when the cost is infinite.
24317
24318 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24319
24320         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
24321         Use '3DNow!' for the extension of that name, ensure normal space
24322         after the string.
24323         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
24324
24325 2010-03-03  Jeff Law  <law@redhat.com>
24326
24327         * PR middle-end/32693
24328         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
24329         than gen_rtx_SUBREG.
24330         (extract_bit_field_1): Likewise.
24331
24332 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
24333
24334         * doc/sourcebuild.texi (Test directives): Document that arguments
24335         include-opts and exclude-opts are now optional for dg-skip-if,
24336         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
24337
24338 2010-03-03  Jason Merrill  <jason@redhat.com>
24339
24340         PR c++/12909
24341         * cgraph.h (varpool_node): Add extra_name field.
24342         * varpool.c (varpool_extra_name_alias): New.
24343         (varpool_assemble_decl): Emit extra name aliases.
24344         (varpool_mark_needed_node): Look past an extra name alias.
24345         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
24346         * lto-streamer-in.c (lto_input_tree): Read it.
24347         * lto-streamer-out.c (output_unreferenced_globals): Write it.
24348
24349 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
24350
24351         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
24352         (sparc*-*-solaris2*): ...this.
24353
24354 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
24355
24356         PR debug/43229
24357         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
24358         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
24359         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
24360         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
24361
24362         PR debug/43237
24363         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
24364         fallthrough to default handling, just with want_address 0 instead of 2.
24365         For single element lists, add_AT_loc directly, otherwise create an
24366         artificial variable DIE and stick location list to it.
24367
24368         PR debug/43177
24369         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
24370         (VAL_EXPR_HAS_REVERSE): Define.
24371         (reverse_op): New function.
24372         (add_stores): For reversible operations add an extra MO_VAL_USE.
24373
24374 2010-03-02  Jason Merrill  <jason@redhat.com>
24375
24376         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
24377
24378 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
24379
24380         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
24381         (sparc64-*-linux*): Likewise.
24382         (sparc64-*-solaris2*): Include assembler files before linker ones.
24383         (sparc-*-solaris2*): Simplify and reorder to match previous case.
24384         * config/sparc/gas.h: Delete.
24385         * config/sparc/sol2-64.h: Add copyright notice.
24386         * config/sparc/sol2-gas-bi.h: Likewise.
24387         * config/sparc/sol2-gld.h: Likewise.
24388         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
24389         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
24390         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
24391         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
24392         (sparc_elf_asm_named_section): Rename into...
24393         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
24394
24395 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
24396
24397         * config/alpha/alpha.c (override_options): Fix -mtune error message.
24398
24399 2010-03-02  Jeff Law  <law@redhat.com>
24400
24401         PR middle-end/42431
24402         * reload1.c (rtx_p, substitute_stack): Declare.
24403         (substitute): Record addresses of changed rtxs.
24404         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
24405         Restore the original rtx when complete.
24406         (reload): Free subsitute_stack when complete.
24407
24408 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
24409
24410         * doc/gccint.texi (menu): Add Testsuites as a chapter.
24411         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
24412         new chapter.
24413         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
24414         LTO Testing, gcov Testing, profopt Testing, compat Testing,
24415         Torture Tests): Change from subsection to section.
24416
24417 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
24418             Steven Bosscher  <steven@gcc.gnu.org>
24419
24420         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
24421         instead of bb.
24422
24423 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
24424
24425         PR middle-end/42640
24426         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
24427         the assignment from the new induction variable to the assignment
24428         of the value from the original loop PHI function.
24429
24430 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
24431             Daniel Jacobowitz  <dan@codesourcery.com>
24432
24433         * doc/sourcebuild.texi (Test directives): Clarify options to
24434         dg-skip-if.
24435
24436 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24437
24438         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
24439         Disable cfi directives unless GCC and gas agree on using read-only
24440         .eh_frame sections for 64-bit.
24441         * configure: Regenerate.
24442
24443 2010-03-01  Richard Guenther  <rguenther@suse.de>
24444
24445         PR tree-optimization/43220
24446         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
24447         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
24448
24449 2010-03-01  Richard Guenther  <rguenther@suse.de>
24450             Martin Jambor  <mjambor@suse.cz>
24451
24452         PR middle-end/41250
24453         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
24454         gimplified parameters.
24455
24456 2010-03-01  Christian Bruel  <christian.bruel@st.com>
24457
24458         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
24459
24460 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
24461
24462         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
24463
24464 2010-03-01  Richard Guenther  <rguenther@suse.de>
24465
24466         PR middle-end/43213
24467         * expr.c (expand_assignment): Use the alias-oracle to tell
24468         if the rhs aliases the result decl.
24469
24470 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24471
24472         PR pch/14940
24473         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
24474         to sol_gt_pch_get_address.
24475         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
24476         64-bit, SPARC and x86.
24477         (sol_gt_pch_get_address): New function.
24478
24479 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
24480
24481         * toplev.h (inform_n, error_n): Declare.
24482         * diagnostic.c (inform_n, error_n): New function.
24483
24484 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
24485
24486         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
24487         has no rtl yet when processing local_decls, queue it and recheck
24488         if deferred stack allocation hasn't assigned it rtl.
24489
24490 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
24491
24492         * config/sh/sh.c (unspec_bbr_uid): New.
24493         (gen_block_redirect): Use it instead of INSN_UID.
24494         (gen_far_branch): Likewise.
24495
24496 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
24497
24498         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
24499         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
24500
24501 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24502
24503         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
24504         (Warning Options): -Wno-conversion-null is valid for
24505         Objective-C++ as well.
24506         * doc/tm.texi (Named Address Spaces): Likewise.
24507         * doc/plugins.texi (Plugins): Replace TABs with spaces.
24508         * doc/tree-ssa.texi (Tree SSA): Likewise.
24509
24510 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24511
24512         PR bootstrap/43202
24513         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
24514         by default.  Don't set the default arch for
24515         i[34567]86-*-darwin*|x86_64-*-darwin*.
24516
24517 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24518
24519         PR bootstrap/43202
24520         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
24521         default.  Set the default 32bit/64bit archs with $with_arch
24522         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
24523
24524 2010-02-27  Richard Guenther  <rguenther@suse.de>
24525
24526         PR tree-optimization/43186
24527         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
24528         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
24529         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
24530         unroller iterations.
24531
24532 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24533
24534         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
24535         required and i[34567]86-*-* targets don't support 64bit ISA.
24536
24537 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
24538
24539         PR ada/43096
24540         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24541         the same alias set.
24542
24543 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24544
24545         * config.gcc: Set the default arch at least to Prescott for
24546         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
24547         if SSE math is enabled.
24548
24549 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24550
24551         * diagnostic.c (diagnostic_initialize): Update.
24552         (diagnostic_report_diagnostic): Test inhibit_notes_p for
24553         informative notes.
24554         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
24555         (diagnostic_inhibit_notes): New.
24556         * toplev.c (process_options): inhibit notes with -fcompare-debug.
24557
24558 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24559
24560         PR c/20631
24561         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
24562         * doc/standards.texi: Likewise.
24563         * doc/extend.texi: Likewise.
24564         * doc/trouble.texi: Likewise.
24565         * doc/cppopts.texi: Likewise.
24566         * doc/install.texi: Likewise.
24567         * c.opt (std=c90,std=gnu90): New options.
24568         * c-opts.c (c_common_handle_option): Handle them.
24569
24570 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24571
24572         PR c/24577
24573         * c-decl.c (undeclared_variable): Use an informative note.
24574
24575 2010-02-26  Richard Guenther  <rguenther@suse.de>
24576
24577         PR tree-optimization/43186
24578         * gimple.h (gimple_fold): Remove.
24579         * gimple.c (gimple_fold): Remove.  Inline into single user ...
24580         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
24581         Try harder for conditions.
24582
24583 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24584
24585         PR debug/43190
24586         * function.c (used_types_insert): Don't skip through named pointer
24587         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
24588         and it is different from the main variant's type.
24589
24590 2010-02-26  Nick Clifton  <nickc@redhat.com>
24591
24592         * config/rx/rx.md (sminsi3): Remove bogus alternative.
24593
24594 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24595
24596         * config.gcc: Support --with-fpmath=sse for x86.
24597
24598         * config/i386/ssemath.h: New.
24599
24600         * doc/install.texi (--with-fpmath=sse): Documented.
24601
24602 2010-02-26  Richard Guenther  <rguenther@suse.de>
24603
24604         PR tree-optimization/43188
24605         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
24606         vector types of over-aligned element type.
24607
24608 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
24609
24610         PR target/43175
24611         * config/i386/i386.c (expand_vec_perm_blend): Use correct
24612         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
24613
24614 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
24615
24616         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
24617
24618 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24619
24620         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
24621         * var-tracking.c: Include diagnostic.h.
24622         (debug_dv): New function.
24623         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
24624
24625         PR debug/43160
24626         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
24627         (add_value_chain, add_value_chains, remove_value_chain,
24628         remove_value_chains): Handle DEBUG_EXPRs.
24629         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
24630
24631         PR debug/43161
24632         * regcprop.c (struct queued_debug_insn_change): New type.
24633         (struct value_data_entry): Add debug_insn_changes field.
24634         (struct value_data): Add n_debug_insn_changes field.
24635         (debug_insn_changes_pool): New variable.
24636         (free_debug_insn_changes, apply_debug_insn_changes,
24637         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
24638         (kill_value_one_regno): Call free_debug_insn_changes if needed.
24639         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
24640         fields.
24641         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
24642         changes for them.
24643         (copyprop_hardreg_forward_1): Don't call apply_change_group for
24644         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
24645         changes, call cprop_find_used_regs via note_stores.
24646         (copyprop_hardreg_forward): When copying vd from predecessor
24647         which has any queued DEBUG_INSN changes, make sure the pointers are
24648         cleared.  At the end call df_analyze and then if there are any
24649         DEBUG_INSN changes queued at the end of some basic block for still
24650         live registers, apply them.
24651         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
24652
24653 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
24654
24655         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
24656         (arm*-*-*): Ditto.
24657
24658 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
24659
24660         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
24661         targets.  Set the default with_cpu/with_arch from arch/cpu.
24662         Allow x86-64 and native for with_cpu/with_arch.
24663
24664 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
24665
24666         * ebitmap.c: Change calls to verify_popcount with calls to
24667         sbitmap_verify_popcount.
24668         (ebitmap_clear_bit): Fixed map->cacheindex test and
24669         map>cache update when bit clearing results in an empty
24670         element.
24671
24672 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
24673
24674         PR target/43154
24675         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
24676         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
24677         and support both V2DF and V2DI modes.
24678         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
24679         support both V2DF and V2DI modes.
24680         (general): Delete trailing whitespace from a few patterns.
24681
24682         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24683         V2DF/V2DI interleave high/low builtins.
24684
24685         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
24686         new VSX builtins.
24687
24688         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
24689         interleave high/low functions.
24690
24691 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
24692
24693         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
24694         #pragma extern_prefix.
24695
24696 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
24697
24698         PR debug/43166
24699         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
24700         BLKmode, assert op0 is a MEM and just adjust its mode.
24701
24702         PR debug/43165
24703         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
24704         if bitpos isn't multiple of mode's bitsize.
24705
24706 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24707
24708         * c.opt (-ftemplate-depth=): New.
24709         (-ftemplate-depth-): Deprecate.
24710         * optc-gen.awk: Handle -ftemplate-depth=.
24711         * opth-gen.awk: Likewise.
24712         * c-opts.c (c_common_handle_option): Likewise.
24713         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
24714
24715 2010-02-24  Jason Merrill  <jason@redhat.com>
24716
24717         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
24718
24719 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24720
24721         * cfg.c (alloc_aux_for_block): Remove inline.
24722         (alloc_aux_for_edge): Likewise.
24723
24724 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24725
24726         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
24727
24728 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24729
24730         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
24731         * config/i386/sol2-gas.h: New file.
24732         * config.gcc (i[34567]86-*-solaris2*): Use it.
24733
24734 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24735
24736         PR c/43128
24737         * c-typeck.c (ep_convert_and_check): New.
24738         (build_conditional_expr): Use it.
24739         (build_binary_op): Likewise.
24740
24741 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
24742
24743         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
24744
24745         PR debug/43150
24746         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
24747         bounds even for -O+.
24748         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
24749         expr needs to have DECL_NAME set.
24750
24751 2010-02-24  Nick Clifton  <nickc@redhat.com>
24752
24753         * config/mep/mep.c: Include gimple.h.
24754         (mep_function_uses_sp): Delete unused function.
24755         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
24756         parameters.  Use unsigned integers to count args.  Return a
24757         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
24758
24759 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24760
24761         PR target/43107
24762         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
24763         greater or equal to nelt instead of 2 * nelt.
24764         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
24765         with nelt - 1.
24766
24767 2010-02-23  Jason Merrill  <jason@redhat.com>
24768
24769         PR debug/42800
24770         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
24771         in cfun->local_decls even if they have register types.
24772
24773         PR c++/42837
24774         * stor-layout.c (place_field): Don't warn about unnecessary
24775         DECL_PACKED if the type is packed.
24776
24777 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24778
24779         PR target/43139
24780         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
24781         GOTOFF relocs, even when the base reg isn't pic pointer.
24782
24783 2010-02-23  Michael Matz  <matz@suse.de>
24784
24785         PR debug/43077
24786         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
24787         (expand_gimple_basic_block): Generate and use debug temps if there
24788         are debug uses left after the last real use of TERed ssa names.
24789         Unlink debug immediate uses when they are expanded.
24790
24791 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24792
24793         PR 43123
24794         * config/i386/i386.c (override_options): Reorganise to provide
24795         better error messages.
24796
24797 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24798
24799         PR middle-end/43083
24800         * graphite-scop-detection.c (create_single_exit_edge): Move
24801         the call to find_single_exit_edge to....
24802         (create_sese_edges): ...here.  Don't handle multiple edges
24803         exiting the function.
24804         (build_graphite_scops): Don't handle multiple edges
24805         exiting the function.
24806
24807 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24808
24809         PR middle-end/43097
24810         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
24811         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
24812
24813 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24814
24815         PR middle-end/43026
24816         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
24817
24818 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24819
24820         PR c++/43126
24821         * c-typeck.c (convert_arguments): Print declaration location.
24822         * c-common.c (validate_nargs): Rename as
24823         builtin_function_validate_nargs.
24824         (check_builtin_function_arguments): Update.
24825
24826 2010-02-22  Richard Guenther  <rguenther@suse.de>
24827
24828         PR lto/43045
24829         * tree-inline.c (declare_return_variable): Use the type of
24830         the call stmt lhs if available.
24831
24832 2010-02-22  Duncan Sands  <baldrick@free.fr>
24833
24834         * passes.c (register_pass): Always consider all pass lists when
24835         ref_pass_instance_number is zero.
24836
24837 2010-02-22  Richard Guenther  <rguenther@suse.de>
24838
24839         PR tree-optimization/42749
24840         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
24841         parameter.  Do arithmetic in the original type.
24842         (update_accumulator_with_ops): Likewise.
24843         (adjust_accumulator_values): Adjust.
24844
24845 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24846
24847         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
24848         (QI to BLKmode splitter): New splitter.
24849
24850 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
24851
24852         * config/i386/i386.c (initial_ix86_tune_features): Turn on
24853         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
24854
24855 2010-02-22  Richard Guenther  <rguenther@suse.de>
24856
24857         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
24858
24859 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
24860
24861         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
24862         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
24863         ($(T)crti.o, $(T)crtn.o): Remove rules.
24864
24865 2010-02-21  Tobias Burnus  <burnus@net-b.de>
24866
24867         PR fortran/35259
24868         * doc/invoke.texi (-fassociative-math): Document that this
24869         option is automatically enabled for Fortran.
24870
24871 2010-02-20  David S. Miller  <davem@davemloft.net>
24872
24873         * configure.ac: Test if linker and assembler properly support
24874         GOTDATA_OP relocations.
24875         * configure: Rebuild.
24876         * config.in: Likewise.
24877         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
24878         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
24879         (movsi_high_pic): Likewise.
24880         (movdi_lo_sum_pic): Likewise.
24881         (movdi_high_pic): Likewise.
24882         (movsi_pic_gotdata_op): New pattern.
24883         (movdi_pic_gotdata_op): Likewise.
24884         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
24885         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
24886
24887 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
24888
24889         PR target/43067
24890         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
24891         attribute to ssemul.
24892         (xop_mulv2div2di3_high): Ditto.
24893
24894 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24895
24896         PR c++/35669
24897         * c.opt (Wconversion-null): New option.
24898         * doc/invoke.texi (Wconversion-null): Document.
24899
24900 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24901
24902         * common.opt (Wlarger-than-): Add Undocumented.
24903
24904 2010-02-19  Mike Stump  <mikestump@comcast.net>
24905
24906         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
24907
24908 2010-02-19  Jason Merrill  <jason@redhat.com>
24909
24910         PR target/40332
24911         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
24912         * configure: Likewise.
24913
24914 2010-02-20  Alan Modra  <amodra@gmail.com>
24915
24916         PR middle-end/42344
24917         * cgraph.h (cgraph_make_decl_local): Declare.
24918         * cgraph.c (cgraph_make_decl_local): New function.
24919         (cgraph_make_node_local): Use it.
24920         * cgraphunit.c (cgraph_function_versioning): Likewise.
24921         * ipa.c (function_and_variable_visibility): Likewise.
24922
24923 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24924
24925         PR bootstrap/43121
24926         * except.c (sjlj_emit_function_enter): Don't call
24927         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
24928         directly.
24929         * rtl.h (add_reg_br_prob_note): Remove prototype.
24930
24931 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24932
24933         PR 41779
24934         * c-common.c (conversion_warning): Remove widening conversions
24935         before checking the conversion of integers to reals.
24936
24937 2010-02-19  Mike Stump  <mikestump@comcast.net>
24938
24939         PR middle-end/43125
24940         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
24941
24942         PR objc/43061
24943         * cgraphunit.c (process_function_and_variable_attributes): Check
24944         DECL_PRESERVE_P instead of looking up attribute "used".
24945         * ipa-pure-const.c (check_decl): Likewise.
24946         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
24947         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
24948         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
24949         instead of attribute "used".
24950         * config/sol2-c.c (solaris_pragma_init): Likewise.
24951         (solaris_pragma_fini): Likewise.
24952
24953 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24954
24955         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
24956         Use XCNEW instead of xcalloc.
24957         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
24958         XNEW instead of xmalloc.
24959         (get_fields): Use XNEWVEC instead of xmalloc.
24960
24961         PR debug/43084
24962         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
24963         populate vars array.
24964         (create_new_general_access): For debug stmts just reset value.
24965         (get_stmt_accesses): For accesses within debug stmts just record them
24966         using add_access_to_acc_sites instead of preventing the peeling or
24967         counting them as accesses.
24968
24969         PR middle-end/42233
24970         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
24971
24972 2010-02-19  Richard Guenther  <rguenther@suse.de>
24973
24974         PR tree-optimization/42916
24975         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
24976         instructions.
24977
24978 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
24979
24980         * configure.ac: Replace all uses of changequote in macro arguments
24981         with proper quoting.
24982
24983 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24984
24985         PR middle-end/42233
24986         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
24987
24988 2010-02-19  Richard Guenther  <rguenther@suse.de>
24989
24990         PR tree-optimization/42944
24991         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
24992         test for aliasing with errno.
24993
24994 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24995
24996         PR middle-end/42233
24997         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
24998         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
24999         * dojump.c: Include output.h.
25000         (inv): New inline function.
25001         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
25002         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
25003         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
25004         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
25005         argument, pass it down to other calls.
25006         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
25007         add REG_BR_PROB note to the conditional jump.
25008         * cfgexpand.c (add_reg_br_prob_note): Removed.
25009         (expand_gimple_cond): Don't call it, add the probability
25010         as last argument to jumpif_1/jumpifnot_1.
25011         * Makefile.in (dojump.o): Depend on output.h.
25012         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
25013         callers.
25014         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
25015         * stmt.c (do_jump_if_equal): Likewise.
25016         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
25017         * loop-unswitch.c (compare_and_jump_seq): Likewise.
25018         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
25019         Likewise.
25020         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
25021         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
25022         jumpifnot_1 callers.
25023         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
25024         callers.
25025         (store_expr): Adjust jumpifnot caller.
25026         (store_constructor): Adjust jumpif caller.
25027
25028         PR middle-end/42233
25029         * gimplify.c (gimple_boolify): For __builtin_expect call
25030         gimple_boolify also on its first argument.
25031
25032 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
25033
25034         * configure.ac (gnu-unique-object): Wrap regexps using [] in
25035         changequote block.
25036         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
25037         * configure: Regenerated.
25038
25039 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25040
25041         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
25042         lang_hooks.types_compatible_p instead of comptypes.
25043
25044 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25045
25046         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
25047         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
25048         if __prefer_thumb__ is defined.
25049
25050 2010-02-18  Martin Jambor  <mjambor@suse.cz>
25051
25052         PR tree-optimization/43066
25053         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
25054         array with zero-sized element type.
25055
25056 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
25057
25058         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
25059         rtx, allocate struct var_loc_node here and return it to the
25060         caller, and only if it is actually needed.
25061         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
25062         move it earlier and return immediately if it returns NULL.
25063
25064 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
25065
25066         * config/sparc/gas.h: New file.  Restore
25067         TARGET_ASM_NAMED_SECTION to its ELF default.
25068         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
25069         check !HAVE_GNU_AS.
25070         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25071         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
25072         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
25073         after sparc/sysv4.h.
25074
25075 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
25076
25077         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
25078
25079 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
25080
25081         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
25082         patterns from predicated pattern.
25083
25084 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
25085
25086         PR target/43103
25087         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
25088         for insn mnemonic suffix.
25089
25090 2010-02-17  Richard Guenther  <rguenther@suse.de>
25091
25092         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
25093         to loop PHI nodes.
25094
25095 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
25096
25097         PR debug/42918
25098         * caller-save.c (save_call_clobbered_regs): If BB ends with
25099         a DEBUG_INSN, move any notes in between last real insn and the last
25100         DEBUG_INSN after the last DEBUG_INSN.
25101
25102 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
25103
25104         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
25105         Fix return type.  Fix argument type.  Explain meaning of return value.
25106
25107 2010-02-16  Richard Guenther  <rguenther@suse.de>
25108
25109         PR tree-optimization/41043
25110         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
25111         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
25112         statements ...
25113         (vrp_visit_phi_node): ... but only for loop PHI nodes.
25114
25115 2010-02-16  Ira Rosen  <irar@il.ibm.com>
25116
25117         PR tree-optimization/43074
25118         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
25119         * tree-vect-loop.c (vect_analyze_loop_operations): Add
25120         vectorizable cycles in hybrid SLP check.
25121         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
25122
25123 2010-02-16  Richard Guenther  <rguenther@suse.de>
25124
25125         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
25126         (true_dependence): If memrefs_conflict_p computes must-alias
25127         trust it.  Move TBAA check after offset-based disambiguation.
25128         (canon_true_dependence): Likewise.
25129
25130 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
25131
25132         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
25133         * doc/invoke.texi: Document it.
25134         * var-tracking.c: Include toplev.h and params.h.
25135         (vt_find_locations): Return bool indicating success.  Compute
25136         hash sizes unconditionally.  Check new parameter, report.
25137         (variable_tracking_main_1): Check vt_find_locations results and
25138         retry.  Renamed from...
25139         (variable_tracking_main): ... this.  New wrapper to preserve
25140         flag_var_tracking_assignments.
25141         * Makefile.in (var-tracking.o): Adjust dependencies.
25142
25143 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
25144             Jakub Jelinek  <jakub@redhat.com>
25145
25146         PR target/42854
25147         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
25148         if weak_import attribute is present.
25149         * config/darwin.c (machopic_select_section): Likewise.
25150
25151 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
25152
25153         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
25154         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
25155         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
25156         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
25157
25158         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
25159         types.
25160
25161         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
25162         Fix argument types.
25163
25164         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
25165         Rewrite text to refer to the names.
25166
25167 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
25168
25169         * config/i386/i386-builtin-types.def
25170         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
25171         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
25172         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
25173         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
25174         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
25175         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
25176         IX86_BUILTIN_VPERMIL2PS256.
25177         (MULTI_ARG_4_DF2_DI_I): Defined.
25178         (MULTI_ARG_4_DF2_DI_I1): Defined.
25179         (MULTI_ARG_4_SF2_SI_I): Defined.
25180         (MULTI_ARG_4_SF2_SI_I1): Defined.
25181         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
25182         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
25183         __builtin_ia32_vpermil2ps256.
25184         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25185         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25186         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
25187         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25188         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25189         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
25190         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
25191         CODE_FOR_xop_vpermil2v8sf3.
25192         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
25193         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
25194         * config/i386/xopintrin.h (_mm_permute2_pd): New.
25195         (_mm256_permute2_pd): New.
25196         (_mm_permute2_ps): New.
25197         (_mm256_permute2_ps): New.
25198
25199 2010-02-15  Nick Clifton  <nickc@redhat.com>
25200
25201         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
25202         boolean parameters.  Use emit_jump_insn when emitting a pop
25203         instruction containing a return insn.
25204         (push): Use 'true' rather than '1' as second parameter to F.
25205         (h8300_expand_prologue): Likewise.
25206         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
25207         (h8300_expand_epilogue): Likewise.
25208
25209 2010-02-15  Richard Guenther  <rguenther@suse.de>
25210
25211         PR middle-end/43068
25212         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
25213         if that is zero.
25214
25215 2010-02-15  Nick Clifton  <nickc@redhat.com>
25216
25217         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
25218         delta.
25219
25220 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
25221
25222         * intl.c (fake_ngettext): New function.
25223         * intl.h (fake_ngettext): Declare.
25224         (ngettext): Define macro.
25225         * collect2.c (notice_translated): New function.
25226         (main): Use notice_translated and ngettext.
25227         * collect2.h (notice_translated): Declare.
25228
25229 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
25230
25231         * reorg.c (delete_computation): Comment fixes.
25232         * caller-save.c (setup_save_areas): Idem.
25233         * sel-sched-dump.c (dump_lv_set): Idem.
25234         * rtl.def: Idem.
25235
25236 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25237
25238         * config/s390/s390.c (s390_sched_init): New function.
25239         (TARGET_SCHED_INIT): Target hook defined.
25240
25241 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
25242             Jack Howarth  <howarth@bromo.med.uc.edu>
25243             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
25244
25245         PR target/42982
25246         Partial revert of unintended change in fix for PR41605.
25247         * config/darwin.h: Fix typo.
25248         * config/darwin9.h: Same.
25249
25250 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25251
25252         * c-pch.c (pch_init): Clear v.
25253
25254 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25255
25256         PR middle-end/42930
25257         * graphite-scop-detection.c (graphite_can_represent_scev): Call
25258         graphite_can_represent_init for MULT_EXPR.
25259
25260 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25261
25262         PR middle-end/42914
25263         PR middle-end/42530
25264         * graphite-sese-to-poly.c (remove_phi): New.
25265         (translate_scalar_reduction_to_array): Call remove_phi.
25266
25267 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25268
25269         PR middle-end/42771
25270         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
25271         * graphite-clast-to-gimple.h (gloog): Update declaration.
25272         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
25273         * graphite-poly.h (struct poly_bb): Add missing comments.
25274         (struct scop): Add poly_scop_p field.
25275         (POLY_SCOP_P): New.
25276         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
25277         * graphite.c (graphite_transform_loops): Build the polyhedral
25278         representation for each scop before code generation.
25279         * sese.c (rename_variables_in_operand): Removed.
25280         (rename_variables_in_expr): Return the renamed expression.
25281         (rename_sese_parameters): New.
25282         * sese.h (rename_sese_parameters): Declared.
25283
25284 2010-02-11  Richard Guenther  <rguenther@suse.de>
25285
25286         PR tree-optimization/42998
25287         * tree-ssa-pre.c (create_expression_by_pieces): Treat
25288         POINTER_PLUS_EXPR properly.
25289
25290 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25291             Changpeng Fang  <changpeng.fang@amd.com>
25292
25293         PR middle-end/40886
25294         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
25295         the cost of an IV candidate when the IV is used in a test against zero.
25296
25297         * gcc.dg/tree-ssa/ivopts-3.c: New.
25298
25299 2010-02-11  Richard Guenther  <rguenther@suse.de>
25300
25301         PR lto/41664
25302         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
25303         pointer-vs-decl case by swapping refs.  Handle some cases
25304         of pointer-vs-decl disambiguations more conservatively.
25305         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
25306         to false after expanding.
25307
25308 2010-02-11  Richard Guenther  <rguenther@suse.de>
25309
25310         PR driver/43021
25311         * gcc.c (process_command): Handle LTO file@offset case more
25312         appropriately.
25313
25314 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25315
25316         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
25317         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
25318         of DEBUG_INSNs.
25319         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
25320
25321         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
25322         if MEM's mode size isn't DWARF2_ADDR_SIZE.
25323         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
25324         Optimize eq/ne comparisons when both arguments are known to be
25325         zero-extended.
25326         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
25327         Don't mask operands unnecessarily if they are known to be already
25328         zero-extended.
25329
25330 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
25331
25332         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
25333         instead of loop.
25334
25335 2010-02-10  Richard Guenther  <rguenther@suse.de>
25336
25337         PR tree-optimization/43017
25338         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
25339         for wrapping signed arithmetic.
25340
25341 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25342
25343         PR debug/43010
25344         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
25345         if no debug info should be emitted for it.
25346
25347 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25348
25349         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
25350         note when flag_exceptions is set.
25351
25352 2010-02-10  Duncan Sands  <baldrick@free.fr>
25353
25354         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
25355
25356 2010-02-10  Richard Guenther  <rguenther@suse.de>
25357
25358         PR c/43007
25359         * tree.c (get_unwidened): Handle constants.
25360         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
25361
25362 2010-02-10  Martin Jambor  <mjambor@suse.cz>
25363
25364         PR lto/42985
25365         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
25366         check for variable argument counts independently.
25367
25368 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25369
25370         PR target/42841
25371         * config/sh/sh.c (find_barrier): Increase length for non delayed
25372         conditional branches.
25373
25374 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25375
25376         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
25377
25378 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25379
25380         * builtins.c (set_builtin_user_assembler_name): Also handle
25381         ffs if int is smaller than word.
25382
25383 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
25384
25385         PR middle-end/42973
25386         * ira-conflicts.c (get_dup): Remove.
25387         (process_reg_shuffles): Add new parameter.  Use it as an
25388         additional guard for copy generation.
25389         (add_insn_allocno_copies): Rewrite.
25390
25391 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
25392
25393         * common.opt (fsched2-use-traces): Preserved for backward
25394         compatibility.
25395         * doc/invoke.texi: Remove the documentation about option
25396         -fsched2-use-traces.
25397         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
25398         flag_sched2_use_traces.
25399         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
25400         the backward compatibility flag section.
25401
25402 2010-02-09  Richard Guenther  <rguenther@suse.de>
25403
25404         PR tree-optimization/43008
25405         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
25406         make HEAP variables initialized from global memory if they
25407         are not known builtin functions.
25408         (find_func_aliases): Adjust.
25409
25410 2010-02-09  Richard Guenther  <rguenther@suse.de>
25411
25412         PR tree-optimization/43000
25413         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
25414         arithmetic manually.
25415
25416 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
25417
25418         PR tree-optimization/42931
25419         * tree-loop-linear.c (try_interchange_loops): Don't call
25420         double_int_mul if estimated_loop_iterations failed.
25421
25422 2010-02-08  Martin Jambor  <mjambor@suse.cz>
25423
25424         PR middle-end/42898
25425         * tree-sra.c (build_accesses_from_assign): Do not mark in
25426         should_scalarize_away_bitmap if stmt has volatile ops.
25427         (sra_modify_assign): Do not process assigns piecemeal if if stmt
25428         has volatile ops.
25429
25430 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
25431
25432         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
25433
25434 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
25435
25436         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
25437         before the pattern.
25438
25439 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
25440
25441         PR middle-end/42946
25442         * df-core.c (df_finish_pass): Change type of saved_flags to int.
25443
25444 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25445
25446         PR middle-end/42988
25447         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
25448         to unknown_dependence.
25449         (graphite_legal_transform_dr): Handle the unknown_dependence.
25450         (graphite_carried_dependence_level_k): Same.
25451
25452 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25453
25454         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
25455
25456 2010-02-07  Richard Guenther  <rguenther@suse.de>
25457
25458         PR middle-end/42991
25459         * expr.c (get_inner_reference): Always initialize *pbitsize.
25460
25461 2010-02-07  Richard Guenther  <rguenther@suse.de>
25462
25463         PR middle-end/42956
25464         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
25465         new ARRAY_REFs on variable size element or minimal index arrays.
25466         Complete.
25467         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
25468         gimple_fold_indirect_ref.
25469
25470 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
25471
25472         PR target/42957
25473         * arm.c (arm_override_options): Just return if the user has specified
25474         an invalid fpu name.
25475
25476 2010-02-03  Jason Merrill  <jason@redhat.com>
25477
25478         PR c++/42870
25479         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
25480         i386_pe_maybe_record_exported_symbol.
25481
25482 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
25483
25484         PR target/42924
25485         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25486         (pa_delegitimize_address): New function.
25487
25488 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
25489
25490         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
25491         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
25492
25493 2010-02-05  Richard Guenther  <rguenther@suse.de>
25494
25495         PR lto/42762
25496         * lto-streamer-in.c (get_resolution): Deal with references
25497         to undefined functions.
25498
25499 2010-02-05  Richard Guenther  <rguenther@suse.de>
25500
25501         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
25502         (fold_const_aggregate_ref): Likewise.
25503         (ccp_fold_stmt): Substitute loads.
25504         (maybe_fold_reference): Verify types before substituting.
25505         Unshare properly.
25506         (fold_gimple_assign): Unshare properly.
25507         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
25508
25509 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
25510
25511         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
25512         for rs6000_gen_cell_microcode.
25513
25514 2010-02-04  Richard Guenther  <rguenther@suse.de>
25515
25516         PR rtl-optimization/42952
25517         * dse.c (const_or_frame_p): Remove MEM handling.
25518
25519 2010-02-04  Nick Clifton  <nickc@redhat.com>
25520
25521         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25522         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
25523         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
25524         (mn10300_asm_output_mi_thunk): New function.
25525         (mn10300_can_output_mu_thunk): New function.
25526         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
25527         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
25528         (FUNCTION_ARG): Delete incorrect comment.
25529
25530 2010-02-03  Jason Merrill  <jason@redhat.com>
25531
25532         PR c++/40138
25533         * fold-const.c (operand_equal_p): Handle erroneous types.
25534
25535 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25536
25537         * config/h8300/h8300.md (can_delay): Fix attibute condition.
25538
25539 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
25540
25541         PR rtl-optimization/42941
25542         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
25543         of xmalloc.
25544
25545 2010-02-03  Jason Merrill  <jason@redhat.com>
25546
25547         PR c++/35652
25548         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
25549
25550 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
25551
25552         PR debug/42896
25553         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
25554         (cselib_reset_table): Renamed from...
25555         (cselib_reset_table_with_next_value): ... this.
25556         (cselib_get_next_uid): Renamed from...
25557         (cselib_get_next_unknown_value): ... this.
25558         * cselib.c (next_uid): Renamed from...
25559         (next_unknown_value): ... this.
25560         (cselib_clear_table): Adjust.
25561         (cselib_reset_table): Adjust.  Renamed from...
25562         (cselib_reset_table_with_next_value): ... this.
25563         (cselib_get_next_uid): Adjust.  Renamed from...
25564         (cselib_get_next_unknown_value): ... this.
25565         (get_value_hash): Use hash.
25566         (cselib_hash_rtx): Likewise.
25567         (new_cselib_val): Adjust.  Set and dump uid.
25568         (cselib_lookup_mem): Pass next_uid as hash.
25569         (cselib_subst_to_values): Likewise.
25570         (cselib_log_lookup): Dump uid.
25571         (cselib_lookup): Pass next_uid as hash.  Adjust.
25572         (cselib_process_insn): Adjust.
25573         (cselib_init): Initialize next_uid.
25574         (cselib_finish): Adjust.
25575         (dump_cselib_table): Likewise.
25576         * dse.c (canon_address): Dump value uid.
25577         * print-rtl.c (print_rtx): Print value uid.
25578         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
25579         (dvuid): New type.
25580         (dv_uid): New function, sort of renamed from...
25581         (dv_htab_hash): ... this, reimplemented in terms of it and...
25582         (dv_uid2hash): ... this.  New.
25583         (variable_htab_eq): Drop excess assertions.
25584         (tie_break_pointers): Removed.
25585         (canon_value_cmp): Compare uids.
25586         (variable_post_merge_New_vals): Print uids.
25587         (vt_add_function_parameters): Adjust.
25588         (vt_initialize): Reset table.  Adjust.
25589
25590 2010-02-03  Richard Guenther  <rguenther@suse.de>
25591
25592         PR tree-optimization/42944
25593         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
25594         (call_may_clobber_ref_p_1): Likewise.  Properly handle
25595         malloc and calloc clobbering errno.
25596
25597 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
25598
25599         * doc/invoke.texi: Fix name of sched1 dump.
25600
25601         * opts.c (decode_options): Set flag_tree_switch_conversion
25602         only conditionally on optimize >= 2.
25603
25604         * gcse.c: Assorted comment fixes in pass description.
25605
25606 2010-02-03  Anthony Green  <green@moxielogic.com>
25607
25608         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
25609         nop padding in order to maintain alignment of storage location of
25610         target function address.
25611         (moxie_trampoline_init): Store target function address at newly
25612         aligned location.
25613         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
25614         to 32.
25615         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
25616
25617 2010-02-03  Richard Guenther  <rguenther@suse.de>
25618
25619         PR middle-end/42927
25620         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
25621
25622 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25623
25624         * config.gcc: Reenable check for obsolete targets.
25625         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
25626         mips-sgi-irix6.[0-4]*.
25627
25628 2010-02-02  Nick Clifton  <nickc@redhat.com>
25629
25630         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
25631         constant size of 4 as being the same as 0.
25632         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
25633         can take values in the range 0..4.
25634
25635 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
25636
25637         PR java/41991
25638         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
25639         as _darwin10_Unwind_FindEnclosingFunction().
25640         * libgcc-libsystem.ver: New.
25641
25642 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
25643
25644         PR target/41399
25645         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
25646         implicitly set registers.
25647
25648 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
25649
25650         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
25651         (arm_override_options): Allow automatic selection of the thread
25652         pointer register if thumb2.
25653         (legitimize_pic_address): Improve code sequences for Thumb2.
25654         (arm_call_tls_get_addr): Likewise.
25655         (legitimize_tls_address): Likewise.
25656         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
25657         (pic_load_addr_32bit): ... this.  New named pattern.
25658         * thumb2.md (pic_load_addr_thumb2): Delete.
25659         (pic_load_dot_plus_four): Delete.
25660         (tls_load_dot_plus_four): New named pattern.
25661
25662 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25663
25664         PR libgomp/29986
25665         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
25666         Document fix for TLS bug.
25667
25668 2010-01-31  Richard Guenther  <rguenther@suse.de>
25669
25670         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
25671         conservatively correct.
25672
25673 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25674
25675         PR target/42850
25676         Revert:
25677         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25678
25679         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25680
25681 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25682
25683         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
25684
25685 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
25686
25687         * config.gcc: Adjust order of makefile fragments for mingw targets.
25688
25689 2010-01-31  Richard Guenther  <rguenther@suse.de>
25690
25691         PR middle-end/42898
25692         * gimplify.c (gimplify_init_constructor): For volatile LHS
25693         initialize a temporary.
25694
25695 2010-01-31  Matthias Klose  <doko@ubuntu.com>
25696
25697         * configure.ac: Fix __stack_chk_fail check for cross builds configured
25698         --with-headers
25699         * configure: Regenerate.
25700
25701 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
25702
25703         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25704         the same alias set and their sizes different constantness.
25705         (aliasing_component_refs_p): Revert 2009-10-24 change.
25706
25707 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25708
25709         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
25710         unused.
25711
25712 2010-01-29  Richard Guenther  <rguenther@suse.de>
25713
25714         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
25715         Assert we successfully updated the call.
25716
25717 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
25718
25719         PR rtl-optimization/42889
25720         * df.h (df_set_bb_dirty_nonlr): New prototype.
25721         * df-core.c (df_set_bb_dirty_nonlr): New function.
25722         * df-scan.c (df_insn_rescan): Call it instead of
25723         df_set_bb_dirty for DEBUG_INSNs.
25724
25725 2010-01-29  Richard Guenther  <rguenther@suse.de>
25726
25727         PR middle-end/37448
25728         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
25729         quadratic behavior in most cases.
25730
25731 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
25732
25733         PR target/42891
25734         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
25735         in the call to gen_x86_movsicc_0_m1.
25736
25737 2010-01-28  Richard Guenther  <rguenther@suse.de>
25738
25739         PR tree-optimization/42871
25740         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
25741
25742 2010-01-28  Richard Guenther  <rguenther@suse.de>
25743
25744         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
25745         into call arguments.
25746
25747 2010-01-28  Richard Guenther  <rguenther@suse.de>
25748
25749         PR middle-end/42883
25750         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
25751         the forwarder if the destination is an EH landing pad.
25752
25753 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
25754
25755         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
25756         block list passed to gimple_duplicate_sese_tail.
25757         (parallelize_loops): Avoid parallelization when the function
25758         has_nonlocal_label.
25759         Avoid parallelization when the preheader is IRREDUCIBLE.
25760         Try to optimize when estimated_loop_iterations_int is unresolved.
25761         Add the loop's location to the dump file.
25762         * tree-cfg.c (add_phi_args_after_redirect): Remove.
25763         (gimple_duplicate_sese_tail): Remove the check for the latch.
25764         Redirect nexits to the exit block.
25765         Remove handling of the incoming edges to the latch.
25766         Redirect the backedge from the copied latch to the exit bb.
25767
25768 2010-01-28  Michael Matz  <matz@suse.de>
25769
25770         PR target/42881
25771         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
25772         Wrap force_reg into a sequence, emit it before user.
25773
25774 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
25775
25776         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
25777         (arm_rev): New.
25778         (arm_legacy_rev): Likewise.
25779         (thumb_legacy_rev): Likewise.
25780
25781 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25782
25783         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
25784         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
25785         on MEM's address failed, try avoid_constant_pool_reference and
25786         recurse if it returned something different.
25787         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
25788         address, try avoid_constant_pool_reference and recurse if it
25789         returned something different.
25790         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
25791         address and avoid_constant_pool_reference returned something
25792         different, don't set have_address.
25793
25794 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
25795
25796         PR debug/42861
25797         * var-tracking.c (val_store): Add modified argument, obey it.
25798         Adjust callers.
25799         (count_uses): Move down logging of main.
25800         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
25801         don't need resolution.
25802         (emit_notes_in_bb): Likewise.
25803
25804 2010-01-27  Richard Guenther  <rguenther@suse.de>
25805
25806         PR middle-end/42878
25807         * tree-inline.c (remap_decl): Delay remapping of SSA name
25808         default definitions until we need them.
25809
25810 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25811
25812         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25813         (rs6000_delegitimize_address): New function.
25814
25815         * config/s390/s390.c (s390_delegitimize_address): Call
25816         delegitimize_mem_from_attrs.
25817
25818         PR middle-end/42874
25819         * tree-inline.c (cannot_copy_type_1): Removed.
25820         (copy_forbidden): Don't forbid copying of functions containing
25821         records/unions with variable length fields.
25822
25823 2010-01-27  Christian Bruel  <christian.bruel@st.com>
25824
25825         Revert:
25826         PR target/42841
25827         * config/sh/sh.c (find_barrier): Increase length for non delayed
25828         conditional branches.
25829
25830 2010-01-27  Matthias Klose  <doko@ubuntu.com>
25831
25832         * configure.ac (gnu-unique-object): Fix ldd version check.
25833         * configure: Regenerate.
25834
25835 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25836
25837         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
25838         HAVE_GNU_AS value.
25839         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
25840         Test for HAVE_GNU_AS value.
25841
25842 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25843
25844         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
25845         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
25846         INT64_TYPE): Define.
25847         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
25848         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
25849         INT_LEAST64_TYPE): Define.
25850         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
25851         UINT_LEAST64_TYPE): Define.
25852         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
25853         INT_FAST64_TYPE): Define.
25854         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
25855         UINT_FAST64_TYPE): Define.
25856         (INTMAX_TYPE, UINTMAX_TYPE): Define.
25857         (INTPTR_TYPE, UINTPTR_TYPE): Define.
25858         (SIG_ATOMIC_TYPE): Define.
25859
25860 2010-01-26  Richard Guenther  <rguenther@suse.de>
25861
25862         * df-scan.c (df_scan_set_bb_info): Remove assert.
25863         (df_insn_rescan_debug_internal): Merge asserts.
25864         (df_install_ref): Likewise.
25865         (df_mark_reg): Use bitmap_set_range.
25866         (df_hard_reg_used_p): Remove assert.
25867         (df_hard_reg_used_count): Likewise.
25868
25869 2010-01-26  Richard Guenther  <rguenther@suse.de>
25870
25871         PR rtl-optimization/42685
25872         * web.c (web_main): Ignore DEBUG_INSNs.
25873
25874 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
25875
25876         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
25877
25878         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
25879         Fix types of fndecl and arglist parameters.
25880
25881 2010-01-26  Richard Guenther  <rguenther@suse.de>
25882
25883         PR middle-end/42806
25884         * tree-eh.c (unsplit_eh): Skip debug insns.
25885
25886 2010-01-26  Richard Guenther  <rguenther@suse.de>
25887
25888         PR tree-optimization/42250
25889         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
25890
25891 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
25892
25893         PR fortran/42866
25894         * omp-low.c (expand_omp_sections): Only use single_pred if
25895         l2_bb is single_pred_p.
25896
25897 2010-01-25  Christian Bruel  <christian.bruel@st.com>
25898
25899         PR target/42841
25900         * config/sh/sh.c (find_barrier): Increase length for non delayed
25901         conditional branches.
25902         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
25903
25904 2010-01-24  David S. Miller  <davem@davemloft.net>
25905
25906         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
25907         define if not using GAS.
25908         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25909         Likewise.  Delete SECTION_MERGE code, which is only applicable
25910         when using GAS.
25911
25912 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
25913
25914         PR c++/42748
25915         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
25916         mangling of va_list in system headers.
25917
25918 2010-01-23  Toon Moene  <toon@moene.org>
25919
25920         * tree-predcom.c (combine_chains): Return NULL, not false.
25921
25922 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
25923
25924         * tree-loop-distribution.c (distribute_loop): Fix declaration and
25925         initialization of variable res to agree with return type.
25926
25927 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
25928
25929         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
25930         * tree-sra.c: Add include of expr.h.
25931
25932 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
25933
25934         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
25935         insert the debug stmt on the single non-EH edge from the stmt.
25936
25937 2010-01-22  Richard Henderson  <rth@redhat.com>
25938
25939         PR tree-opt/42833
25940         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
25941         the RHS until after generate_subtree_copies has insertted its
25942         code before the current statement.
25943
25944 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
25945
25946         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
25947
25948         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
25949
25950 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25951
25952         PR tree-optimization/42585
25953         * tree-sra.c (struct access): New field grp_total_scalarization.
25954         (dump_access): Dump the new field.
25955         (should_scalarize_away_bitmap): New variable.
25956         (cannot_scalarize_away_bitmap): Likewise.
25957         (sra_initialize): Allocate new bitmaps.
25958         (sra_deinitialize): Free new bitmaps.
25959         (create_access_1): New function.
25960         (create_access): Parts moved to create_access_1.
25961         (type_consists_of_records_p): New function.
25962         (completely_scalarize_record): Likewise.
25963         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
25964         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
25965         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
25966         access.
25967         (analyze_all_variable_accesses): Completely scalarize small eligible
25968         records.
25969
25970 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25971
25972         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
25973
25974 2010-01-21  Andrew Haley  <aph@redhat.com>
25975
25976         * gcc.c (process_command): Move lang_specific_driver before
25977         setting cc_libexec_prefix.
25978
25979 2010-01-21  Richard Guenther  <rguenther@suse.de>
25980
25981         PR middle-end/19988
25982         * fold-const.c (negate_expr_p): Pretend only negative
25983         real constants are easily negatable.
25984
25985 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
25986             Jason Merrill  <jason@redhat.com>
25987
25988         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
25989         (TYPE_TRANSPARENT_AGGR): this, for union and record.
25990         * calls.c (initialize argument_information): Handle it.
25991         * c-common.c (handle_transparent_union_attribute): Use new name.
25992         * c-decl.c (finish_struct): Ditto.
25993         * c-typeck.c (type_lists_compatible_p): Ditto.
25994         (convert_for_assignment): Use new name and also handle record.
25995         * function.c (aggregate_value_p): Handle it.
25996         (pass_by_reference): Ditto.
25997         (assign_parm_data_types): Ditto.
25998         * print-tree.c (print_node): Ditto.
25999         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
26000         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
26001         * tree.c (first_field): New fn.
26002
26003 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
26004
26005         PR target/42818
26006         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
26007         even when linking statically, for now.
26008
26009 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26010
26011         PR debug/42715
26012         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
26013         without a cselib val.
26014         (count_uses): Accept MO_VAL_SET with no val on stores.
26015         (add_stores): Likewise.
26016
26017 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26018
26019         * var-tracking.c (check_value_val): Add a compile time assertion.
26020         (dv_is_decl_p): Simplify.
26021         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
26022         gcc_assert if ENABLE_CHECKING.
26023
26024 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26025
26026         PR debug/42782
26027         * var-tracking.c: Include tree-flow.h.
26028         (mem_dies_at_call): New.
26029         (dataflow_set_preserve_mem_locs): Use it.
26030         (dataflow_set_remove_mem_locs): Likewise.
26031         (dump_var): Renamed from dump_variable.  Adjust all callers.
26032         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
26033         * Makefile.in (var-tracking.o): Adjust deps.
26034
26035 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
26036
26037         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
26038
26039 2010-01-20  Richard Guenther  <rguenther@suse.de>
26040
26041         PR tree-optimization/42717
26042         * tree-ssa-dce.c (get_live_post_dom): Remove.
26043         (forward_edge_to_pdom): Take an arbitrary edge to copy
26044         degenerate PHI args from.
26045         (remove_dead_stmt): Use the first post-dominator even if it
26046         does not contain live statements as redirection destination.
26047
26048 2010-01-20  Richard Guenther  <rguenther@suse.de>
26049
26050         * tree-inline.c (estimate_num_insns): Handle EH builtins.
26051
26052 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26053
26054         * sel-sched.c (create_speculation_check): Remove set but not used
26055         variable twin.
26056         (try_transformation_cache): Remove set but not used variable ds.
26057         (calculate_privileged_insns): Remove set but not used variables
26058         cur_insn and min_spec_insn.
26059         (find_best_expr): Remove set but not used variable avail_n.
26060         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
26061         variable e.
26062         * cgraphunit.c (assemble_thunk): Remove set but not used variable
26063         false_label.
26064         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
26065         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
26066         new_scop_exit_edge.
26067
26068 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
26069
26070         PR bootstrap/42786
26071         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
26072         cpu types.  Add support for *-sse3 cpu types.
26073         (x86_64-*-*): Ditto.
26074
26075 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26076
26077         PR middle-end/42803
26078         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
26079         argument, call initializer_constant_valid_p_1 instead of
26080         initializer_constant_valid_p, pass CACHE to it, return NULL
26081         immediately if first call returns NULL.
26082         (initializer_constant_valid_p_1): New function.
26083         (initializer_constant_valid_p): Use it.
26084
26085 2010-01-20  Thomas Quinot  <quinot@adacore.com>
26086
26087         * tree.def (PLACEHOLDER_EXPR): Fix comment.
26088
26089 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26090
26091         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
26092         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
26093         (loc_list_from_tree): Don't handle unsigned division.  Handle
26094         signed modulo using DW_OP_{over,over,div,mul,minus}.
26095         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
26096         modulo instead of signed.
26097
26098 2010-01-20  DJ Delorie  <dj@redhat.com>
26099
26100         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
26101         (Fpa): Pass it
26102         (h8300_emit_stack_adjustment): Propogate it.
26103         (push): Pass it.
26104         (h8300_expand_prologue): Likewise.
26105         (h8300_expand_epilogue): Likewise.
26106
26107 2010-01-19  Michael Matz  <matz@suse.de>
26108
26109         PR tree-optimization/41783
26110         * tree-data-ref.c (toplevel): Include flags.h.
26111         (dump_data_dependence_relation):  Also dump the inputs if the
26112         result will be unknown.
26113         (split_constant_offset_1): Look through some conversions.
26114         * tree-predcom.c (determine_roots_comp): Restart a new chain if
26115         the offset from last element is too large.
26116         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
26117         (reassociate_to_the_same_stmt): Handle vector registers.
26118         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
26119         (e.g. conversions).
26120         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
26121         wide_prolog_niters argument, emit widening instructions.
26122         (vect_do_peeling_for_alignment): Adjust caller, use widened
26123         variant of the iteration cound.
26124         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
26125
26126 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26127
26128         PR target/38697
26129         * config/arm/neon-testgen.m (emit_automatics): New parameter
26130         features. Adjust for Fixed_return_reg feature.
26131         (test_intrinsic): Call emit_automatics with new feature.
26132         * config/arm/neon.ml: Update copyright years.
26133         (features): New Fixed_return_reg feature.
26134         (ops): Update feature for Vget_low.
26135
26136 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
26137
26138         PR tree-optimization/42719
26139         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
26140         stmt uses.
26141
26142         PR debug/42728
26143         * fwprop.c (all_uses_available_at): Return false if def_set dest
26144         is a REG that is used in def_insn.
26145
26146 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
26147
26148         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
26149
26150         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
26151         Add argument names.
26152
26153         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
26154
26155         * target.h (struct gcc_target) <secondary_reload>: Change type
26156         of last argument to secondary_reload_info *.
26157
26158 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
26159
26160         PR target/42774
26161         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
26162         memory references with unaligned offsets.  Remove CQImode handling.
26163         (unaligned_memory_operand): Return 1 for memory references with
26164         unaligned offsets.  Remove CQImode handling.
26165
26166 2010-01-18  Richard Guenther  <rguenther@suse.de>
26167
26168         PR middle-end/39954
26169         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
26170         builtin calls.
26171
26172 2010-01-18  Richard Guenther  <rguenther@suse.de>
26173
26174         PR tree-optimization/42781
26175         * tree-ssa-structalias.c (find_what_var_points_to): Skip
26176         restrict processing only if the original variable was artificial.
26177
26178 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
26179
26180         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
26181         find number of popped argument bytes.
26182
26183         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
26184         Fix the text that describes the return value for invalid insns.
26185
26186         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
26187
26188         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
26189         Clarify what 'cost of the -dependence' is.  Fix quoting.
26190
26191         * toplev.c (default_get_pch_validity): Rename argument to "sz".
26192         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
26193
26194 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
26195
26196         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
26197         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
26198
26199 2010-01-17  Richard Guenther  <rguenther@suse.de>
26200
26201         PR middle-end/42248
26202         * function.c (split_complex_args): Take a VEC to modify.
26203         (assign_parms_augmented_arg_list): Build a VEC instead of
26204         a chain of PARM_DECLs.
26205         (assign_parms_unsplit_complex): Take a VEC of arguments.
26206         Do not fixup unmodified parms.
26207         (assign_parms): Deal with the VEC.
26208         (gimplify_parameters): Likewise.
26209
26210 2010-01-17  Richard Guenther  <rguenther@suse.de>
26211
26212         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
26213         node existence check.
26214         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
26215         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
26216         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
26217         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
26218         (gimple_execute_on_growing_pred): Likewise.
26219
26220 2010-01-17  Richard Guenther  <rguenther@suse.de>
26221
26222         PR tree-optimization/42773
26223         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
26224         (compute_antic_aux): Likewise.
26225         (compute_partial_antic_aux): Likewise.
26226
26227 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
26228
26229         PR debug/42767
26230         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
26231         and US_TRUNCATE.
26232
26233 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
26234
26235         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
26236         appearance.
26237
26238         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
26239         Fix markup for strict argument.
26240
26241         (TARGET_SCHED_REORDER2): Fix argument types.
26242
26243         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
26244         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
26245
26246         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
26247         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
26248
26249         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
26250         Add argument name.
26251
26252         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
26253         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
26254         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
26255         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
26256         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
26257
26258         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
26259
26260         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
26261
26262         (TARGET_ASM_RELOC_RW_MASK): Add return type.
26263         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
26264
26265         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
26266
26267         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
26268         Use prototype.
26269
26270         (TARGET_ASM_NAMED_SECTION): Fix argument list.
26271
26272         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
26273         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
26274
26275         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
26276
26277         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
26278
26279         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
26280         referring to it.  Fix language.
26281
26282         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
26283
26284         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
26285
26286         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
26287
26288         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
26289
26290         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
26291         '@var{stream}.  Remove stray 'and'.
26292
26293         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
26294
26295         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
26296
26297         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
26298
26299         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
26300         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
26301
26302         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
26303         Fix description of return value.
26304         Rename argument "sz" to "len."
26305
26306         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
26307         Clarify meaning of 'true' return value.
26308
26309         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
26310
26311         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
26312         rep_mode versus mode_rep.
26313
26314         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
26315
26316         (TARGET_BUILTIN_DECL): Fix name.
26317
26318         (TARGET_COMMUTATIVE_P): Fix type of first argument.
26319
26320         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
26321
26322         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
26323
26324         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
26325
26326         (TARGET_RELAXED_ORDERING): Use @deftypevr.
26327
26328         (TARGET_GET_DRAP_RTX): Note that this is a hook.
26329         Clarify language.
26330
26331         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
26332         Rename argument tm_fn to md_fn.
26333
26334         (TARGET_OPTION_PRINT): Fix argument list.
26335
26336 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
26337
26338         PR target/42664
26339         * config/i386/i386.c (ix86_fixup_binary_operands):
26340         Revert FMA4 fixup of operands.
26341
26342 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26343
26344         PR gcc/42525
26345         * Makefile.in (write_entries_to_file, install-plugin):
26346         Use \012 instead of \n with tr.
26347
26348 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
26349
26350         * configure.ac (HAVE_AS_REF): New C macro.
26351         * configure: Regenerate.
26352         * config.in: Likewise.
26353         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
26354         if HAVE_AS_REF.
26355         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
26356         if HAVE_AS_REF.
26357
26358 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
26359
26360         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
26361
26362         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
26363
26364         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
26365
26366         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
26367
26368         (TARGET_IN_SMALL_DATA_P): Fix argument type.
26369
26370         (TARGET_BINDS_LOCAL_P): Fix argument type.
26371
26372         (TARGET_ASM_FILE_END): Use prototype.
26373
26374         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
26375
26376         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
26377
26378         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
26379
26380         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
26381
26382         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
26383         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
26384
26385         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
26386         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
26387
26388         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
26389         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
26390         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
26391         (TARGET_ADDR_SPACE_CONVERT): Likewise.
26392
26393         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
26394
26395         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
26396
26397         (TARGET_INIT_BUILTINS): Use prototype.
26398
26399         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
26400         Put 'const char *' in braces.  Fix parameter types.
26401         (TARGET_INVALID_CONVERSION): Fix parameter types.
26402         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
26403         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
26404
26405         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
26406         Fix argument type.
26407
26408         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
26409
26410         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
26411
26412 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
26413
26414         * doc/tm.texi (TARGET_HELP): Fix return type.
26415
26416         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
26417         in braces.  Fix argument types.
26418
26419         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
26420
26421         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
26422
26423         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
26424
26425         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
26426         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
26427
26428         (TARGET_MANGLE_TYPE): Fix argument types.
26429
26430         (TARGET_IRA_COVER_CLASSES): Use prototype.
26431
26432         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
26433
26434         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
26435
26436         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
26437
26438         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
26439
26440         (TARGET_CALLEE_COPIES): Fix argument types.
26441
26442         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
26443
26444         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
26445
26446         (TARGET_FUNCTION_VALUE): Fix argument types.
26447
26448         (TARGET_RETURN_IN_MSB): Fix argument type.
26449
26450         (TARGET_RETURN_IN_MEMORY): Fix argument types.
26451
26452         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
26453
26454         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
26455
26456         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
26457         agree with return type.
26458
26459         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
26460
26461 2010-01-15  Jing Yu  <jingyu@google.com>
26462
26463         PR rtl-optimization/42691
26464         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
26465         a pseudo to a constant and are merged, and adjust comments.
26466
26467 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26468
26469         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
26470
26471 2010-01-15  Richard Guenther  <rguenther@suse.de>
26472
26473         PR middle-end/42739
26474         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
26475         labels of computed or non-local gotos to the destination.
26476         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
26477         landing pad label is the first label.
26478
26479 2010-01-15  Richard Guenther  <rguenther@suse.de>
26480
26481         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
26482
26483 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26484
26485         PR target/42747
26486         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
26487         to allow generation of the xssqrtdp instruction on power7.
26488         (sqrtdf2_fpr): Ditto.
26489
26490 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26491
26492         PR middle-end/42674
26493         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
26494         functions with noreturn attribute.
26495
26496         PR c++/42608
26497         * varasm.c (declare_weak): Add weak attribute to decl if it
26498         doesn't have one already.
26499         (assemble_external): Only add decls to weak_decls if they also
26500         have weak attribute.
26501
26502 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
26503
26504         * var-tracking.c (var_reg_delete): Don't delete the association
26505         between REGs and values or one-part variables if the register
26506         isn't clobbered.
26507
26508 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26509
26510         PR debug/42657
26511         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
26512         because its first operand is a non-localized variable.
26513
26514 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26515
26516         PR tree-optimization/42706
26517         * tree-sra.c (encountered_recursive_call): New variable.
26518         (encountered_unchangable_recursive_call): Likewise.
26519         (sra_initialize): Initialize both new variables.
26520         (callsite_has_enough_arguments_p): New function.
26521         (scan_function): Call decl and flags check only for IPA-SRA, check
26522         whether there is a recursive call and whether it has enough arguments.
26523         (all_callers_have_enough_arguments_p): New function.
26524         (convert_callers): Look for recursive calls only when
26525         encountered_recursive_call is set.
26526         (ipa_early_sra): Bail out either if
26527         !all_callers_have_enough_arguments_p or
26528         encountered_unchangable_recursive_call.
26529
26530 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26531
26532         * sel-sched.c: Add 2010 to copyright years.
26533         * sel-sched-ir.c: Likewise.
26534         * sel-sched-ir.h: Likewise.
26535
26536 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26537
26538         PR tree-optimization/42714
26539         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
26540         constructors specially.
26541
26542 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26543
26544         * config/i386/drivers-i386.c (detect_caches_intel):
26545         Add l2sizekb parameter and fill in.
26546         (host_detect_local_cpu): Add l2sizekb, fill in.
26547         Add Atom small cache heuristic.
26548
26549 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26550
26551         * config/i386/drivers-i386.c (detect_caches_cpuid4):
26552         Add level3 parameter and fill in.
26553         (detect_caches_intel): Handle level3 cache.
26554
26555 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26556
26557         * config/i386/drivers-i386.c (host_detect_local_cpu):
26558         Fix core duo detection.
26559
26560 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26561
26562         * config/i386/drivers-i386.c (host_detect_local_cpu):
26563         Fix Atom detection.
26564
26565 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26566
26567         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
26568         (rs6000_variable_issue_1): this.  Use...
26569         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
26570
26571 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26572
26573         * sel-sched-ir.c (sel_restore_other_notes): Rename to
26574         sel_restore_notes.  Update all callers.  Call reemit_notes
26575         for all insns.
26576
26577 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26578
26579         PR rtl-optimization/42246
26580         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
26581         loops.
26582
26583 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26584
26585         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
26586         all successors is the same as number of successors in current region.
26587
26588 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26589
26590         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
26591         to rename is not separable.  Otherwise check that its LHS is not NULL.
26592
26593 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26594
26595         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
26596
26597 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26598
26599         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
26600         available registers when failed to discover LHS register class.
26601         Fix indentation.  Update comment.
26602
26603 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26604             Alexander Monakov  <amonakov@ispras.ru>
26605
26606         PR rtl-optimization/42389
26607         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
26608         to can_issue_more.
26609         (advance_state_on_fence): Likewise.
26610         (sel_target_adjust_priority): Print debug output only when
26611         sched_verbose >= 4, not 2.
26612         (get_expr_cost): Do not issue all unique insns on the next cycle.
26613         (fill_insns): Initialize can_issue_more from the value saved
26614         with the fence.
26615         * sel-sched-ir.c (flist_add): New parameter issue_more.
26616         Init FENCE_ISSUE_MORE with it.
26617         (merge_fences): Likewise.
26618         (init_fences): Update call to flist_add.
26619         (add_to_fences, add_clean_fence_to_fences)
26620         (add_dirty_fence_to_fences): Likewise.
26621         (move_fence_to_fences): Update call to merge_fences.
26622         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
26623         sched groups.
26624         * sel-sched-ir.h (struct _fence): New field issue_more.
26625         (FENCE_ISSUE_MORE): New accessor macro.
26626
26627 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26628
26629         PR rtl-optimization/42388
26630         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
26631         that have no predecessors nor successors.  Do not call move_bb_info
26632         for empty blocks outside of current region.
26633
26634 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26635
26636         PR rtl-optimization/42294
26637         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
26638         * sel-sched.c (move_exprs_to_boundary): Transitively add all
26639         originators' originators.
26640
26641 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26642
26643         PR rtl-optimization/39453
26644         PR rtl-optimization/42246
26645         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
26646         for pipelining_p.
26647         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
26648
26649 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26650             Alexander Monakov  <amonakov@ispras.ru>
26651
26652         PR middle-end/42245
26653         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
26654         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
26655         argument.  Update all callers.
26656         (tidy_control_flow): ... and here.  Recompute topological order
26657         of basic blocks in region if necessary.
26658         (sel_redirect_edge_and_branch): Change return type.  Return true
26659         if topological order might have been invalidated.
26660         (purge_empty_blocks): Export and move from...
26661         * sel-sched.c (purge_empty_blocks): ... here.
26662         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
26663         (maybe_tidy_empty_bb): Delete prototype.
26664         (purge_empty_blocks): Declare.
26665
26666 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26667
26668         PR rtl-optimization/42249
26669         * sel-sched.c (try_replace_dest_reg): When chosen register
26670         and original register is the same, do not bail out early, but
26671         still check all original insns for validity of replacing destination
26672         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
26673         in this case.
26674
26675 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26676
26677         PR c/42721
26678         Port from no-undefined-overflow branch:
26679         2009-03-09  Richard Guenther  <rguenther@suse.de>
26680
26681         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
26682
26683 2010-01-14  Richard Guenther  <rguenther@suse.de>
26684
26685         PR lto/42665
26686         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
26687
26688 2010-01-14  Ira Rosen  <irar@il.ibm.com>
26689
26690         PR tree-optimization/42709
26691         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
26692         as scalar type in creation of constant vector operand.
26693
26694 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26695
26696         PR testsuite/42414
26697         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
26698         (check-parallel-%): Match `testsuite' directory component only
26699         at the end.
26700
26701 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
26702
26703         PR translation/39521
26704         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
26705         strings with _().
26706
26707 2010-01-13  Richard Guenther  <rguenther@suse.de>
26708
26709         PR tree-optimization/42730
26710         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
26711         offset zero.
26712
26713 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
26714
26715         PR target/pr42542
26716         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
26717         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
26718         them signed.
26719
26720 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
26721
26722         * config/bfin/libgcc-bfin.ver: Regenerate based on current
26723         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
26724         ___umulsi3_highpart.
26725
26726         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
26727         rather than schedule_insns if the pass is enabled.
26728
26729 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26730
26731         PR tree-optimization/42704
26732         * tree-sra.c (sra_modify_assign): Do not delete assignments to
26733         SSA_NAMEs.
26734
26735 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26736
26737         PR tree-optimization/42703
26738         * tree-sra.c (analyze_access_subtree): Check that we can build a
26739         reference to the original data within the aggregate.
26740
26741 2010-01-13  Richard Guenther  <rguenther@suse.de>
26742
26743         PR tree-optimization/42705
26744         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
26745
26746 2010-01-13  Richard Guenther  <rguenther@suse.de>
26747
26748         PR middle-end/42716
26749         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
26750
26751 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26752
26753         PR debug/41371
26754         * var-tracking.c (values_to_unmark): New variable.
26755         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26756         values_to_unmark vector.  Moved body to...
26757         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26758         instead queue it into values_to_unmark vector.
26759         (vt_find_locations): Free values_to_unmark vector.
26760
26761 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
26762
26763         * config/s390/s390.c (override_options): Set
26764         default of max-pending-list-length to 256
26765
26766 2010-01-13  Richard Guenther  <rguenther@suse.de>
26767
26768         PR lto/42678
26769         * tree-pass.h (PROP_gimple_lcx): New.
26770         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
26771         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
26772         before the final cleanup_eh.
26773         (dump_properties): Dump PROP_gimple_lcx.
26774         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
26775         (tree_lower_complex_O0): Remove.
26776         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
26777         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
26778         tree_lower_complex, schedule TODO_update_ssa.
26779         * lto-streamer-out.c (output_function): Stream the functions
26780         properties.
26781         * lto-streamer-in.c (input_function): Likewise.
26782         (lto_read_body): Do not override them here.
26783
26784 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
26785
26786         PR c/42708
26787         * c-typeck.c (build_c_cast): Fold value cast to union type before
26788         wrapping it in a CONSTRUCTOR.
26789
26790 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26791
26792         PR rtl-optimization/42699
26793         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
26794         involved.
26795
26796 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26797
26798         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26799         SUBTARGET_WARN_UNUSED_SPEC): Move ...
26800         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26801         SUBTARGET_WARN_UNUSED_SPEC): ... here
26802         * config/mips/iris5.h (LIBGCC_SPEC): Define.
26803
26804 2010-01-12  Julian Brown  <julian@codesourcery.com>
26805
26806         * config/arm/neon-schedgen.ml (Utils): Don't try to
26807         open missing module.
26808         (find_with_result): New.
26809
26810 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26811
26812         PR debug/42662
26813         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
26814         sharing when canonicalizing ({lt,ge}u (plus a b) b).
26815
26816         PR tree-optimization/42645
26817         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
26818         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
26819         decl_map, set processing_debug_stmt to -1 and return name without
26820         any remapping.
26821
26822 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
26823
26824         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
26825         binutils version, and reword target configuration description.
26826
26827 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26828
26829         * config/avr/avr.h (LINKER_NAME): Remove.
26830
26831 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
26832
26833         PR target/42416
26834         * config/rs6000/rs6000.c (rs6000_override_options): On targets
26835         that support VSX, warn for -mno-altivec if vsx is not disabled,
26836         and disable vsx.
26837
26838 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
26839             Shujing Zhao  <pearly.zhao@oracle.com>
26840
26841         PR translation/42469
26842         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
26843         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
26844         character between option name and help text.
26845         * c.opt (imultilib): Likewise.
26846
26847 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
26848
26849         * lto-streamer-out.c (output_unreferenced_globals): Output static
26850         variables.
26851
26852 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
26853
26854         PR rtl-optimization/42621
26855         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
26856         optimizing for size.
26857         (duplicate_computed_gotos): Remove now-redundant check.
26858
26859 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
26860
26861         PR target/37454
26862         * configure.ac: Save and restore LDFLAGS and LIBS
26863         * configure: Regenerate.
26864
26865 2010-01-10  Richard Guenther  <rguenther@suse.de>
26866
26867         PR middle-end/42667
26868         * builtins.c (fold_builtin_strlen): Add type argument and
26869         convert the resulting length to it.
26870         (fold_builtin_1): Adjust.
26871
26872 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26873
26874         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
26875         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26876         1 insn.
26877         (num_insns_constant_wide): Adjust for that change.
26878
26879 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26880
26881         PR debug/42631
26882         * web.c (union_defs): Add used argument, to combine uses of
26883         uninitialized regs.
26884         (entry_register): Adjust type and tests of used argument.
26885         (web_main): Widen used for new use.  Pass it to union_defs.
26886         * df.h (union_defs): Adjust prototype.
26887
26888 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26889
26890         PR debug/42630
26891         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
26892         uses in new incoming argument.  Free body.
26893         (reset_debug_uses_in_loop): New.
26894         (analyze_insn_to_expand_var): Call the latter if the former found
26895         anything.  Fix whitespace.  Reject invalid dest overlaps before
26896         going through all insns in the loop.
26897
26898 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26899
26900         PR debug/42629
26901         * haifa-sched.c (dying_use_p): Debug insns don't count.
26902
26903 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26904
26905         PR middle-end/42363
26906         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
26907         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
26908         (verify_gimple_call): Reject LHS in noreturn calls.
26909
26910 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26911
26912         PR debug/42604
26913         PR debug/42395
26914         * tree-vect-loop-manip.c (adjust_info): New type.
26915         (adjust_vec): New pointer to vector.
26916         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
26917         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
26918         (slpeel_update_phis_for_duplicate_loop): Use them.
26919         (slpeel_update_phi_nodes_for_guard1): Likewise.
26920         (slpeel_update_phi_nodes_for_guard2): Likewise.
26921         (slpeel_tree_peel_loop_to_edge): Likewise.
26922         (vect_update_ivs_after_vectorizer): Likewise.
26923
26924 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26925
26926         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
26927         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
26928
26929 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26930
26931         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
26932         bogus uninitialized warning.
26933
26934 2010-01-09  Richard Guenther  <rguenther@suse.de>
26935
26936         PR middle-end/42512
26937         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
26938         the evolution is compatible with the initial condition.
26939
26940 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26941
26942         * gcc.c (process_command): Update copyright notice dates.
26943         * gcov.c (print_version): Likewise.
26944         * gcov-dump.c (print_version): Likewise.
26945         * mips-tfile.c (main): Likewise.
26946         * mips-tdump.c (main): Likewise.
26947
26948 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26949
26950         PR target/41885
26951         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
26952         (rotlhi3): Delete.
26953         (rotlhi3_8): Delete.
26954         (rotlsi3): Delete.
26955         (rotlsi3_8): Delete.
26956         (rotlsi3_16): Delete.
26957         (rotlsi3_24): Delete.
26958         (rotl<mode>3): New.
26959         (*rotw<mode>3): New.
26960         (*rotb<mode>3): New.
26961         * config/avr/avr.c (avr_rotate_bytes): New function.
26962         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
26963
26964 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
26965
26966         PR target/37454
26967         * configure.ac: Modify -rdynamic check.
26968         * configure: Regenerate.
26969
26970 2010-01-08  DJ Delorie  <dj@redhat.com>
26971
26972         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
26973         register popping order.
26974
26975 2010-01-08  Richard Guenther  <rguenther@suse.de>
26976
26977         PR lto/42528
26978         * c.opt (fsigned-char): Also let LTO handle this option.
26979         (funsigned-char): Likewise.
26980
26981 2010-01-07  Richard Guenther  <rguenther@suse.de>
26982
26983         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
26984         (gimple_op): Likewise.
26985         (gimple_op_ptr): Likewise.
26986         (gimple_assign_set_lhs): Remove gcc_assert.
26987         (gimple_assign_set_rhs1): Likewise.
26988         (gimple_assign_set_rhs2): Likewise.
26989         (gimple_call_set_lhs): Likewise.
26990         (gimple_call_set_fn): Likewise.
26991         (gimple_call_set_fndecl): Likewise.
26992         (gimple_call_fndecl): Likewise.
26993         (gimple_call_return_type): Likewise.
26994         (gimple_call_set_chain): Likewise.
26995         (gimple_call_num_args): Likewise.
26996         (gimple_call_set_arg): Likewise.
26997         (gimple_cond_set_code): Likewise.
26998         (gimple_cond_set_lhs): Likewise.
26999         (gimple_cond_set_rhs): Likewise.
27000         (gimple_cond_set_true_label): Likewise.
27001         (gimple_cond_set_false_label): Likewise.
27002         (gimple_label_set_label): Likewise.
27003         (gimple_goto_set_dest): Likewise.
27004         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
27005         (gimple_debug_bind_get_value): Likewise.
27006         (gimple_debug_bind_get_value_ptr): Likewise.
27007         (gimple_debug_bind_set_var): Likewise.
27008         (gimple_debug_bind_set_value): Likewise.
27009         (gimple_debug_bind_reset_value): Likewise.
27010         (gimple_debug_bind_has_value_p): Likewise.
27011         (gimple_return_retval_ptr): Remove gcc_assert.
27012         (gimple_return_retval): Likewise.
27013         (gimple_return_set_retval): Likewise.
27014         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
27015         (safe_referenced_var_iterator): Remove.
27016         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
27017         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
27018         (fill_referenced_var_vec): Remove.
27019         (first_readonly_imm_use): Remove redundant gcc_assert.
27020         (phi_arg_index_from_use): Combine gcc_asserts.
27021         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
27022         (first_imm_use_stmt): Remove redundant gcc_assert.
27023         * tree-cfg.c (verify_gimple_call): Verify function and chain
27024         operands.  Verify arguments.
27025         (verify_types_in_gimple_stmt): Verify condition code and labels.
27026
27027 2010-01-07  Richard Guenther  <rguenther@suse.de>
27028
27029         PR tree-optimization/42641
27030         * sese.c (rename_map_elt_info): Use the SSA name version, do
27031         not hash pointers.
27032
27033 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
27034
27035         PR tree-optimization/42625
27036         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
27037         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
27038
27039 2010-01-07  Duncan Sands  <baldrick@free.fr>
27040
27041         * Makefile.in (PLUGIN_HEADERS): Add version.h.
27042
27043 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
27044
27045         PR target/42511
27046         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
27047         note itself is not function_invariant_p.
27048
27049 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
27050
27051         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
27052         Do not add the DF_NOTE problem.
27053         * store-motion.c (execute_rtl_store_motion): Likewise.
27054
27055 2010-01-07  Martin Jambor  <mjambor@suse.cz>
27056
27057         PR tree-optimization/42157
27058         * tree-sra.c (compare_access_positions): Stabilize sort if both
27059         accesses have integer types, return zero immediately if they are the
27060         same.
27061
27062 2010-01-06  Richard Henderson  <rth@redhat.com>
27063
27064         PR middle-end/41883
27065         * haifa-sched.c (add_to_note_list): Merge into ...
27066         (concat_note_lists): ... here, and ...
27067         (unlink_other_notes, rm_other_notes): Merge into...
27068         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
27069         NOTE_INSN_EPILOGUE_BEG.
27070
27071 2010-01-06  Richard Guenther  <rguenther@suse.de>
27072
27073         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
27074         not inline regular functions into always-inline functions.
27075
27076 2010-01-06  Nick Clifton  <nickc@redhat.com>
27077
27078         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
27079         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
27080         used together.
27081         (OVERRIDE_OPTIONS): Delete.
27082         (OPTIMIZATION_OPTIONS): Define.
27083         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
27084         * config/rx/rx.c (rx_handle_option): Issue an error message if
27085         -mcpu=rx200 and -fpu are used together.
27086         (rx_set_optimization_options): New function.  Issue an error
27087         message if an optimization attribute attempts to reset the FPU/
27088         math optimization pairing.
27089         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
27090         * config/rx/rx.opt: Set the default to 32-bit doubles.
27091         * config/rx/t-rx: Add multilibs for -nofpu option.
27092         * doc/invoke.texi: Update documentation of RX options.
27093
27094 2010-01-06  Richard Guenther  <rguenther@suse.de>
27095
27096         * tree-ssa-pre.c (name_to_id): New global.
27097         (alloc_expression_id): Simplify SSA name handling.
27098         (lookup_expression_id): Likewise.
27099         (init_pre): Zero name_to_id.
27100         (fini_pre): Free it.
27101
27102 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
27103
27104         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
27105
27106 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
27107
27108         PR target/42542
27109         * config/i386/sse.md (smaxv2di3): New.
27110         (umaxv2di3): Likewise.
27111         (sminv2di3): Likewise.
27112         (uminv2di3): Likewise.
27113
27114 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27115
27116         PR target/42564
27117         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
27118         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
27119         (legitimize_tls_address): Likewise.
27120         (sparc_tls_referenced_p): Likewise.
27121         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
27122         and adjust calls to legitimize_pic_address.
27123         (legitimate_constant_p) Use sparc_tls_referenced_p.
27124         (legitimate_pic_operand_p): Likewise.
27125         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
27126         (sparc_tls_symbol_ref_1): Delete.
27127         (sparc_tls_referenced_p): Make static, recognize specific patterns.
27128         (legitimize_tls_address): Make static, handle CONST patterns.
27129         (legitimize_pic_address): Make static, remove unused parameter and
27130         adjust recursive calls.
27131         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
27132         and adjust call to legitimize_pic_address.
27133         (sparc_output_mi_thunk): Likewise.
27134
27135 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
27136             H.J. Lu  <hongjiu.lu@intel.com>
27137
27138         PR target/42542
27139         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
27140         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
27141         operands to make them signed.
27142
27143         Revert:
27144         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27145
27146         PR target/42542
27147         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27148         GTU to GT for V4SI and V2DI.
27149
27150         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27151         (umin<mode>3): Removed.
27152         (uminv8hi3): New.
27153         (uminv4si3): Likewise.
27154
27155 2010-01-05  Martin Jambor  <mjambor@suse.cz>
27156
27157         PR tree-optimization/42462
27158         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
27159         current_function_decl to helper functions and macros.
27160
27161 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27162
27163         PR bootstrap/41771
27164         * flags.h: Don't include real.h.
27165         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
27166         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
27167         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
27168         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
27169         * dominance.c: Update copyright.
27170         * gimple.c (walk_gimple_op): Remove inline.
27171         * tree-ssa-reassoc.c: Include real.h.
27172         * Makefile.in (FLAGS_H): Remove $(REAL_H).
27173         (tree-ssa-reassoc.o): Depend on $(REAL_H).
27174
27175 2010-01-05  Nick Clifton  <nickc@redhat.com>
27176
27177         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
27178         register to push into the stack frame when the accumulator has to
27179         be saved during interrupts.
27180
27181 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
27182
27183         * doc/invoke.texi: Remove the documentation about option
27184         -Wunreachable-code.
27185         * common.opt (Wunreachable-code):  Preserved for backward
27186         compatibility.
27187         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
27188         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
27189         the backward compatibility flag section.
27190
27191 2010-01-05  Richard Guenther  <rguenther@suse.de>
27192
27193         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
27194
27195 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
27196
27197         PR other/42611
27198         * cfgexpand.c (expand_one_var): Diagnose too large variables.
27199
27200         PR tree-optimization/42508
27201         * tree-sra.c (convert_callers): Check for recursive call
27202         by comparing cgraph nodes instead of decls.
27203         (modify_function): Call ipa_modify_formal_parameters also
27204         on all same_body aliases.
27205
27206         * cgraphunit.c (cgraph_materialize_all_clones): Compare
27207         cgraph nodes when checking for same_body aliases.
27208
27209 2010-01-05  Richard Guenther  <rguenther@suse.de>
27210
27211         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
27212         allocation and lookup.
27213         (get_or_alloc_expr_for_constant): Likewise.
27214         (phi_translate): Sink allocation.
27215
27216 2010-01-04  Richard Guenther  <rguenther@suse.de>
27217
27218         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
27219         a new entry only if needed.
27220         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
27221         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
27222         hashtable lookup.
27223         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
27224         the result array.
27225         (phi_translate): Handle CONSTANTs early.
27226
27227 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27228
27229         PR tree-optimization/42398
27230         * tree-sra.c (struct access): Removed flag grp_different_types.
27231         (dump_access): Do not dump the removed flag.
27232         (sort_and_splice_var_accesses): Do not set the removed flag.
27233         (sra_modify_expr): Check for type compatibility directly.
27234
27235 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27236
27237         PR tree-optimization/42366
27238         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
27239         edges with variable number of parameters.
27240         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
27241         flag instead of asserting it.
27242         (ipa_read_node_info): Read uses_analysis_done flag.
27243
27244 2010-01-04  Richard Guenther  <rguenther@suse.de>
27245
27246         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
27247         iterative_hash_* as intended.
27248         (vn_reference_compute_hash): Likewise.  Simplify hashing
27249         SSA names.
27250         (vn_reference_lookup_2): Likewise.
27251         (vn_nary_op_compute_hash): Likewise.
27252         (vn_phi_compute_hash): Likewise.
27253         (expressions_equal_p): Remove strange code.
27254         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
27255         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
27256         (bitmap_insert_into_set_1): Take value-id as parameter.
27257         (add_to_value): Pass it.
27258         (bitmap_insert_into_set): Likewise.
27259         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
27260
27261 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
27262
27263         PR driver/42442
27264         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
27265         (do_self_spec): For switches with SWITCH_IGNORE set set also
27266         SWITCH_IGNORE_PERMANENTLY.
27267         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
27268         of SWITCH_IGNORE.
27269
27270 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
27271
27272         * lto-streamer-out.c (output_unreferenced_globals): Output the full
27273         tree of an unreferenced global var.
27274
27275 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27276
27277         PR target/42542
27278         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27279         GTU to GT for V4SI and V2DI.
27280
27281         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27282         (umin<mode>3): Removed.
27283         (uminv8hi3): New.
27284         (uminv4si3): Likewise.
27285
27286 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27287
27288         PR lto/42581
27289         * collect2.c (main): Turn on trace in collect2 if -v is passed
27290         to gcc with LTO.
27291
27292 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
27293
27294         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
27295         description of expression operand.
27296
27297 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
27298
27299         * configure.ac: Add install-html to target_list for Make-hooks.
27300         * configure: Regenerate.
27301         * fortran/Make-lang.in (F95_HTMLFILES): New.
27302         (fortran.html): Use it.
27303         (fortran.install-html): New.
27304         * Makefile.in (install-html): Add lang.install-html.
27305         * java/Make-lang.in (JAVA_HTMLFILES): New.
27306         (java.html): Use it.
27307         (java.install-html): New.
27308         * objc/Make-lang.in (objc.install-html): New.
27309         * objcp/Make-lang.in (obj-c++.install-html): New.
27310         * cp/Make-lang.in (c++.install-html): New.
27311         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
27312         * lto/Make-lang.in (lto.install-html): New.
27313
27314 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27315
27316         PR lto/42520
27317         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
27318
27319 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27320
27321         PR rtl-optimization/41862
27322         * store-motion.c (store_killed_in_insn, compute_store_table,
27323         remove_reachable_equiv_notes, replace_store_insn,
27324         build_store_vectors): Ignore all DEBUG_INSNs.
27325
27326 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27327
27328         PR lto/41564
27329         * common.opt: Add dumpdir.
27330
27331         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
27332         isn't specified.
27333         (option_map): Add --dumpdir.
27334
27335         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
27336
27337         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
27338
27339         * opts.c (decode_options): Try dump_dir_name first if
27340         dump_base_name isn't an absolute path.
27341         (common_handle_option): Handle OPT_dumpdir.
27342
27343         * toplev.c (dump_dir_name): New.
27344         (print_switch_values): Also ignore -dumpdir.
27345
27346         * toplev.h (dump_dir_name): New.
27347
27348 2010-01-03  Richard Guenther  <rguenther@suse.de>
27349
27350         PR tree-optimization/42589
27351         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
27352         double-word expansion of bswap32.
27353
27354 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27355
27356         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
27357         with BLOCK_FOR_INSN.
27358         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
27359         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
27360         noce_process_if_block): Likewise.
27361         * gcse.c (compute_local_properties, insert_expr_in_table,
27362         insert_set_in_table, canon_list_insert, find_avail_set,
27363         pre_insert_copy_insn): Likewise.
27364
27365         * basic-block.h (BLOCK_NUM): Move from here...
27366         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
27367
27368 2010-01-03  Richard Guenther  <rguenther@suse.de>
27369
27370         PR tree-optimization/42438
27371         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
27372         contains_may_not_return_call flag.
27373         (BB_MAY_NOTRETURN): New.
27374         (valid_in_sets): Trapping nary operations are not valid
27375         in blocks that may not return.
27376         (insert_into_preds_of_block): Remove check for trapping expressions.
27377         (compute_avail): Compute also BB_MAY_NOTRETURN.
27378
27379 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
27380
27381         * doc/invoke.texi: Add 2010 to copyright years.
27382
27383 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27384
27385         * config/sparc/sparc.c: Fix formatting nits.
27386
27387 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
27388             Alexander Monakov  <amonakov@ispras.ru>
27389
27390         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
27391
27392 2010-01-02  Richard Guenther  <rguenther@suse.de>
27393
27394         PR middle-end/42577
27395         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
27396         (simplify_switch_using_ranges): Mark to be removed edges
27397         as non-executable.
27398
27399 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27400
27401         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27402
27403         * collect2.c (scan_libraries): Add missing argument in call to
27404         scan_prog_file.
27405
27406 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
27407
27408         PR target/42448
27409         * config/alpha/predicates.md (aligned_memory_operand): Return false
27410         for CQImode.
27411         (unaligned_memory_operand): Return true for CQImode.
27412         * config/alpha/alpha.c (get_aligned_mem): Assert that location
27413         doesn not cross aligned SImode word boundary.
27414
27415 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
27416
27417         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
27418         Remove.
27419         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
27420         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
27421
27422 2010-01-02  Richard Guenther  <rguenther@suse.de>
27423
27424         PR lto/41597
27425         * toplev.c (compile_file): Emit LTO marker properly.  Change
27426         it to __gnu_lto_v1.
27427         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
27428
27429 2010-01-01  Richard Guenther  <rguenther@suse.de>
27430
27431         PR debug/42455
27432         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
27433
27434 2010-01-01  Richard Guenther  <rguenther@suse.de>
27435
27436         PR c/42570
27437         * c-decl.c (grokdeclarator): For zero-size arrays force
27438         structural equality checks as layout_type does.
27439
27440 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27441
27442         * builtins.c: Update copyright to 2010.
27443
27444 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27445
27446         PR lto/42531
27447         * lto-streamer-out.c (produce_asm): Revert the last change.
27448         (copy_function): Likewise.
27449
27450         * lto-streamer.c (lto_get_section_name): Skip any leading
27451         asterisk in name.
27452
27453 2010-01-01  Richard Guenther  <rguenther@suse.de>
27454
27455         PR middle-end/42559
27456         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
27457         for LABEL_DECLs.
27458
27459 \f
27460 Copyright (C) 2010 Free Software Foundation, Inc.
27461
27462 Copying and distribution of this file, with or without modification,
27463 are permitted in any medium without royalty provided the copyright
27464 notice and this notice are preserved.