re PR rtl-optimization/45728 (ICE: in gen_lowpart_general, at rtlhooks.c:59 at -O1...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
2
3         PR rtl-optimization/45728
4         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
5         gen_lowpart_common first and if that fails, force_reg first
6         before calling gen_lowpart.
7
8         PR middle-end/45678
9         * cfgexpand.c (expand_one_stack_var_at): Use
10         crtl->max_used_stack_slot_alignment as max_align, instead
11         of maximum of that and PREFERRED_STACK_BOUNDARY.
12         Don't call update_stack_alignment.
13
14 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
15
16         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
17         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
18         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
19         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
20         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
21         (build_nonstandard_integer_type): Likewise.
22         (build_range_type_1): New function, built from...
23         (build_range_type): ...this.  Call build_range_type_1.
24         (build_nonshared_range_type): New function.
25         (build_array_type_1): New function, built from...
26         (build_array_type: ...this.  Call build_array_type_1.
27         (build_nonshared_array_type): New function.
28         * tree.h (build_nonshared_range_type): Declare.
29         (build_nonshared_array_type): Likewise.
30
31 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
32
33         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
34         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
35         (arm_class_likely_spilled_p): New function.
36
37 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
38
39         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
40         indirect functions.
41         (ix86_split_ashl): Ditto.
42         (ix86_split_ashr): Ditto.
43         (ix86_split_lshr): Ditto.
44         (ix86_adjust_counter): Ditto.
45
46 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
47
48         * c-family/c-common.h (constant_string_class): Documented with
49         comment identical to the one already in c-common.c.
50
51 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
52
53         * dwarf2out.c (any_cfis_emitted): New static variable.
54         (add_fde_cfi): Set it.
55         (dwarf2out_frame_debug): Clear it before processing,
56         if it is set afterwards, flush any queued reg saves.
57
58         PR debug/45124
59         * dwarf2out.c (add_accessibility_attribute): Assume
60         DW_ACCESS_private as the default for dwarf_version > 2
61         and DW_TAG_class_type parent.
62         (gen_inheritance_die): Assume DW_ACCESS_public as the default
63         for dwarf_version > 2 and parent other than DW_TAG_class_type.
64
65 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
66
67         PR target/45726
68         * arm.md (arm_movt): Only enable on machines with MOVT.
69
70 2010-09-20  Jie Zhang  <jie@codesourcery.com>
71
72         * config/arm/arm.c (arm_address_offset_is_imm): New.
73         (arm_early_store_addr_dep): New.
74         (arm_early_load_addr_dep): New.
75         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
76         (arm_early_load_addr_dep): Declare.
77         (arm_address_offset_is_imm): Declare.
78         * config/arm/cortex-m4.md: New file.
79         * config/arm/cortex-m4-fpu.md: New file.
80         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
81         (attr generic_sched): Exclude cortexm4.
82         (attr generic_vfp): Exclude cortexm4.
83
84 2010-09-20  Richard Guenther  <rguenther@suse.de>
85
86         PR middle-end/45704
87         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
88
89 2010-09-20  Jan Hubicka  <jh@suse.cz>
90
91         PR tree-optimize/45605
92         * cgraph.h (const_value_known_p): Declare.
93         (varpool_decide_const_value_known): Remove.
94         * tree-ssa-ccp.c (get_base_constructor): Use it.
95         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
96         * expr.c (string_constant): Likewise.
97         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
98         * ipa.c (ipa_discover_readonly_nonaddressable_var,
99         function_and_variable_visibility): Likewise.
100         * gimplify.c (gimplify_call_expr): Likewise.
101         * gimple-fold.c (get_symbol_constant_value): Likewise.
102         * varpool.c (varpool_decide_const_value_known): Replace by...
103         (const_value_known_p): ... this one; handle other kinds of DECLs
104         too and work for automatic vars.
105         (varpool_finalize_decl): Use const_value_known_p.
106
107 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
108
109         PR target/45726
110         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
111
112 2010-09-20  Richard Guenther  <rguenther@suse.de>
113
114         PR tree-optimization/45705
115         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
116
117 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
118
119         PR rtl-optimization/45695
120         * combine.c (try_combine): When splitting a two set pattern,
121         make sure the pattern which will be put into i2 doesn't use REGs
122         or MEMs set by insns in between i2 and i3.
123
124 2010-09-19  Jan Hubicka  <jh@suse.cz>
125
126         PR lto/44246
127         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
128         processing same node twice.
129
130 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
131
132         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
133         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
134         (bfin_class_likely_spilled_p): New function
135
136 2010-09-19  Ira Rosen  <irar@il.ibm.com>
137
138         PR tree-optimization/45714
139         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
140         created in vectorizable_call instead of the original statement in
141         def stmt updates.
142
143 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
144
145         * config/i386/i386-protos.h (split_double_mode): New prototype.
146         (split_di, split_ti): Remove prototypes.
147         * config/i386/i386.c (split_double_mode): New function.
148         (split_di, split_ti): Remove.
149         (ix86_expand_branch): Use split_double_mode.
150         (ix86_split_to_parts): Ditto.
151         (ix86_split_ashl): Ditto.
152         (ix86_split_ashr): Ditto.
153         (ix86_split_lshr): Ditto.
154         (ix86_force_to_memory): Ditto.
155         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
156
157 2010-09-18  Jan Hubicka  <jh@suse.cz>
158
159         PR tree-optimization/45453
160         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
161         virtual functions are reachable.
162         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
163         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
164         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
165         when modifying function.
166
167 2010-09-18  Jan Hubicka  <jh@suse.cz>
168
169         PR tree-optimization/45605
170         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
171         * gimple-fold.c (static_object_in_other_unit_p): New function.
172         (canonicalize_constructor_val): Use it.
173         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
174         returning NULL.
175         (gimple_fold_obj_type_ref_known_binfo): Use
176         static_object_in_other_unit_p.
177
178 2010-09-18  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/45709
181         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
182         insertions until after all PHI nodes of the block are processed.
183
184 2010-09-18  Tijl Coosemans <tijl@coosemans.org>
185
186         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
187
188 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
189
190         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
191
192 2010-09-18  Richard Guenther  <rguenther@suse.de>
193
194         PR tree-optimization/45709
195         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
196
197 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
198
199         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
200         (dot_deps_stmt): Same.
201         * graphite-poly.c (dot_lst): Same.
202         * graphite-scop-detection.c (dot_all_scops): Same.
203         (dot_scop): Same.
204
205 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
206
207         Revert:
208         2009-12-16  Ben Elliston  <bje@au.ibm.com>
209
210         * tree-data-ref.c (dot_rdg_1): Added back.
211         (dot_rdg): Same.  Added "#if 0" around system call.
212
213 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
214             Richard Henderson  <rth@redhat.com>
215
216         * config/i386/i386.c (initial_ix86_tune_features): Add
217         X86_TUNE_PAD_SHORT_FUNCTION.
218         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
219         (ix86_count_insn): New.
220         (ix86_pad_short_function): Likewise.
221         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
222
223         * config/i386/i386.h (ix86_tune_indices): Add
224         X86_TUNE_PAD_SHORT_FUNCTION.
225         (TARGET_PAD_SHORT_FUNCTION): New.
226
227         * config/i386/i386.md (UNSPEC_NOPS): New.
228         (nops): Likewise.
229
230 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
231
232         PR middle-end/45234
233         * calls.c (expand_call): Make sure that all variable sized
234         adjustments are multiple of preferred stack boundary after
235         stack alignment.
236
237 2010-09-17  DJ Delorie  <dj@redhat.com>
238
239         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
240         passed an invalid value, print an error instead of ICEing.
241         (valid_psw_flag): New.
242         (rx_expand_builtin): Call it for setpsw/clrpsw.
243         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
244
245         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
246         (bitclr_in_memory): Likewise.
247         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
248
249 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
250
251         PR middle-end/45678
252         * cfgexpand.c (update_stack_alignment): New.
253         (get_decl_align_unit): Use it.
254         (expand_one_stack_var_at): Call update_stack_alignment.
255
256 2010-09-17  Richard Guenther  <rguenther@suse.de>
257
258         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
259         Properly copy the read string.
260
261 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
262
263         * doc/options.texi (Variable): Document.
264         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
265         generate target_flags declarations explicitly.  Don't define
266         VarExists variables for the driver.
267         * common.opt (target_flags): New Variable record.
268         (flag_dump_unnumbered, flag_dump_unnumbered_links,
269         flag_var_tracking, flag_var_tracking_assignments,
270         flag_var_tracking_assignments_toggle): Don't mark variables with
271         VarExists.
272         * config/i386/i386.c (ix86_isa_flags): Don't define here.
273         * config/i386/i386.opt (ix86_isa_flags): Define here.
274         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
275         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
276         VarExists.
277         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
278         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
279         Only define for generator programs.
280         * rtlanal.c (target_flags): Remove.
281         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
282         flag_var_tracking_assignments_toggle): Remove.
283
284 2010-09-17  Michael Matz  <matz@suse.de>
285
286         PR tree-optimization/43432
287         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
288         Accept backwards consecutive accesses.
289         (vect_create_data_ref_ptr): If step is negative generate
290         decreasing IVs.
291         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
292         (perm_mask_for_reverse, reverse_vec_elements): New functions.
293         (vectorizable_load): Handle loads with negative steps when easily
294         possible.
295
296 2010-09-03  Jan Hubicka  <jh@suse.cz>
297
298         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
299
300 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
301
302         * config/v850/v850.c (v850_function_value_regno_p): Make static.
303         Adjust comments. Declare.
304         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
305         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
306
307 2010-09-17  Richard Guenther  <rguenther@suse.de>
308
309         * common.opt (combine): Remove.
310         * gcc.c (default_compilers): Remove specs testing combine.
311         The C compilers no longer can combine.
312         (option_map): Remove -combine.
313         (display_help): Remove -combine.
314         (driver_handle_option): Remove OPT_combine handling.
315         (compile_input_file_p): Remove.
316         (do_spec): Remove code concerning combine.
317         (main): Likewise.
318         * doc/invoke.texi: Remove traces of -combine.
319         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
320
321 2010-09-17  Richard Guenther  <rguenther@suse.de>
322
323         PR middle-end/45678
324         * builtins.c (fold_builtin_memory_op): Always properly adjust
325         alignment of memory accesses.
326
327 2010-09-16  Jan Hubicka  <jh@suse.cz>
328
329         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
330         processing clone.
331
332 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
333
334         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
335
336         * config/i386/i386.c (predict_jump): Add prototype.
337         (flag_opts): Add -m8bit-idiv.
338         (ix86_split_idivmod): New.
339
340         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
341         Add 2 splitters for SI/DI mode divide.
342         (divmod<mode>4_1): New pattern.
343         (udivmod<mode>4_1): Likewise.
344         (testdi_ccno_1): Likewise.
345
346         * config/i386/i386.opt (m8bit-idiv): New.
347
348         * doc/invoke.texi: Document -m8bit-idiv.
349
350 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
351
352         PR bootstrap/45680
353         * config/i386/i386.c (min_insn_size): Moved out of the
354         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
355
356 2010-09-16  Jan Hubicka  <jh@suse.cz>
357
358         * lto-cgraph.c (lto_output_node): Fix handling of clones.
359         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
360         unreachable clones with reachable clones.
361         * tree-inline.c (copy_bb): Fix sanity checking when producing
362         unreachable clone.
363
364 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
365
366         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
367         (TARGET_MEMORY_MOVE_COST): Define.
368         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
369
370 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
371
372         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
373         maybe_tidy_empty_bb.
374
375         Revert:
376         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
377         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
378
379 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
380
381         * target.def (target_option.optimization): New hook.
382         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
383         TARGET_OPTION_OPTIMIZATION hook.
384         * doc/tm.texi: Regenerate.
385         * hooks.c (hook_void_int_int): New.
386         * hooks.h (hook_void_int_int): Declare.
387         * opts.c: Don't include tm_p.h.
388         (decode_options): Use targetm.target_option.optimization instead
389         of OPTIMIZATION_OPTIONS.
390         * system.h (OPTIMIZATION_OPTIONS): Poison.
391         * config/arm/arm-protos.h (arm_optimization_options): Remove.
392         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
393         (arm_optimization_options): Rename to arm_option_optimization.
394         Make static.
395         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
396         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
397         (cris_option_optimization): New.
398         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
399         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
400         (crx_option_optimization): New.
401         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
402         * config/frv/frv-protos.h (frv_optimization_options): Remove.
403         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
404         (frv_optimization_options): Rename to frv_option_optimization.
405         Make static.
406         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
407         * config/h8300/h8300.c (h8300_option_optimization): New.
408         (TARGET_OPTION_OPTIMIZATION): Define.
409         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
410         * config/i386/i386-protos.h (optimization_options): Remove.
411         * config/i386/i386.c (optimization_options): Rename to
412         ix86_option_optimization.  Make static.
413         (TARGET_OPTION_OPTIMIZATION): Define.
414         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
415         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
416         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
417         (ia64_optimization_options): Rename to ia64_option_optimization.
418         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
419         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
420         commented-out definition.
421         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
422         instead of OPTIMIZATION_OPTIONS.
423         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
424         (m32r_option_optimization): New.
425         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
426         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
427         Remove.
428         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
429         (mcore_option_optimization): New.
430         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
431         * config/mep/mep-protos.h (mep_optimization_options): Remove.
432         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
433         (mep_optimization_options): Rename to mep_option_optimization.
434         Make static.  Take unused level and size parameters.
435         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
436         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
437         (mmix_option_optimization): New.
438         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
439         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
440         (pdp11_option_optimization): New.
441         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
442         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
443         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
444         (optimization_options): Rename to rs6000_option_optimization.
445         Make static.
446         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
447         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
448         * config/rx/rx.c (rx_set_optimization_options): Rename to
449         rx_option_optimization.  Make static.  Take unused level and size
450         parameters.
451         (TARGET_OPTION_OPTIMIZATION): Define.
452         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
453         * config/s390/s390-protos.h (optimization_options): Remove.
454         * config/s390/s390.c (optimization_options): Rename to
455         s390_option_optimization.  Make static.  Don't mark size parameter
456         unused.
457         (TARGET_OPTION_OPTIMIZATION): Define.
458         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
459         * config/sh/sh-protos.h (sh_optimization_options): Remove.
460         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
461         (sh_optimization_options): Rename to sh_option_optimization.  Make
462         static.  Don't mark parameters unused.
463         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
464         * config/spu/spu-protos.h (spu_optimization_options): Remove.
465         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
466         (spu_optimization_options): Rename to spu_option_optimization.
467         Make static.
468         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
469         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
470         (v850_option_optimization): New.
471         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
472         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
473         (xtensa_option_optimization): New.
474         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
475
476 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
477
478         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
479         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
480         * doc/tm.texi: Regenerate.
481         * system.h (OVERRIDE_OPTIONS): Poison.
482         * target.def (override): Default to hook_void_void.
483         * targhooks.c (default_target_option_override): Remove.
484         * genmodes.c, machmode.def: Update comments mentioning
485         OVERRIDE_OPTIONS.
486         * config/alpha/alpha-modes.def: Update comment mentioning
487         alpha_override_options.
488         * config/alpha/alpha-protos.h (override_options): Remove.
489         * config/alpha/alpha.c (override_options): Rename to
490         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
491         (TARGET_OPTION_OVERRIDE): Define.
492         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
493         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
494         of OVERRIDE_OPTIONS.
495         * config/arc/arc-protos.h (arc_init): Remove.
496         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
497         (arc_init): Rename to arc_option_override.  Make static.
498         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
499         (OVERRIDE_OPTIONS): Remove.
500         * config/arm/arm-protos.h (arm_override_options): Remove.
501         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
502         (arm_override_options): Rename to arm_option_override.  Make
503         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
504         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
505         * config/arm/arm.md: Update comment referring to arm_override_options.
506         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
507         instead of OVERRIDE_OPTIONS.
508         * config/avr/avr-protos.h (avr_override_options): Remove.
509         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
510         (avr_override_options): Rename to avr_option_override.  Make static.
511         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
512         * config/bfin/bfin-protos.h (override_options): Remove (twice).
513         * config/bfin/bfin.c (override_options): Rename to
514         bfin_option_override.  Make static.
515         (TARGET_OPTION_OVERRIDE): Define.
516         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
517         * config/cris/cris-protos.h (cris_override_options): Remove.
518         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
519         (cris_override_options): Rename to cris_option_override.  Make static.
520         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
521         * config/frv/frv-protos.h (frv_override_options): Remove.
522         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
523         (frv_override_options): Rename to frv_option_override.  Make static.
524         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
525         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
526         * config/h8300/h8300.c (h8300_init_once): Rename to
527         h8300_option_override.  Make static.
528         (TARGET_OPTION_OVERRIDE): Define.
529         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
530         * config/i386/i386-protos.h (override_options): Remove.
531         * config/i386/i386.c (override_options): Rename to
532         ix86_option_override_internal.  Make static.  Comments referring
533         to this function and callers changed.
534         (ix86_option_override): New.
535         (TARGET_OPTION_OVERRIDE): Define.
536         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
537         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
538         * config/ia64/ia64.c (ia64_file_start): Update comment referring
539         to ia64_override_options.
540         * config/iq2000/iq2000-protos.h (override_options): Remove.
541         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
542         (override_options): Rename to iq2000_option_override.  Make static.
543         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
544         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
545         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
546         (lm32_override_options): Rename to lm32_option_override.  Make static.
547         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
548         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
549         (m32r_option_override): New.
550         (m32r_init): Update comment.
551         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
552         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
553         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
554         (m68hc11_override_options): Rename to m68hc11_option_override.
555         Make static.  Return void.
556         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
557         * config/m68k/m68k-protos.h (override_options): Remove.
558         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
559         (override_options): Rename to m68k_option_override.  Make static.
560         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
561         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
562         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
563         (mcore_override_options): Rename to mcore_option_override.  Make
564         static.
565         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
566         * config/mep/mep-protos.h (mep_override_options): Remove.
567         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
568         (mep_override_options): Rename to mep_option_override.  Make static.
569         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
570         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
571         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
572         (mmix_override_options): Rename to mmix_option_override.  Make static.
573         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
574         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
575         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
576         (mn10300_override_options): Rename to mn10300_option_override.
577         Make static.
578         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
579         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
580         * config/moxie/moxie.c (moxie_override_options): Rename to
581         moxie_option_override.  Make static.
582         (TARGET_OPTION_OVERRIDE): Define.
583         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
584         * config/picochip/picochip-protos.h (picochip_override_options):
585         Remove.  Update comment referring to picochip_override_options.
586         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
587         (picochip_override_options): Rename to picochip_option_override.
588         Make static.  Update comment and definition of
589         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
590         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
591         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
592         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
593         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
594         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
595         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
596         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
597         instead of OVERRIDE_OPTIONS.
598         * config/rs6000/rs6000-modes.def: Update comment referring to
599         rs6000_override_options.
600         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
601         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
602         (rs6000_override_options): Rename to
603         rs6000_option_override_internal.  Make static.  Commented
604         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
605         (rs6000_option_override): New.
606         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
607         instead of OVERRIDE_OPTIONS.
608         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
609         * config/s390/s390-protos.h (override_options): Remove.
610         * config/s390/s390.c (override_options): Rename to
611         s390_option_override.  Make static.
612         (TARGET_OPTION_OVERRIDE): Define.
613         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
614         * config/score/score-protos.h (score_override_options): Remove.
615         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
616         (score_override_options): Rename to score_option_override.  Make
617         static.
618         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
619         Update comment referring to override_options.
620         * config/score/score3.c (score3_override_options): Rename to
621         score3_option_override.
622         * config/score/score3.h (score3_override_options): Rename to
623         score3_option_override.
624         * config/score/score7.c (score7_override_options): Rename to
625         score7_option_override.
626         * config/score/score7.h (score7_override_options): Rename to
627         score7_option_override.
628         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
629         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
630         (sparc_override_options): Rename to sparc_option_override.  Make
631         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
632         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
633         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
634         instead of OVERRIDE_OPTIONS.
635         * config/spu/spu-protos.h (spu_override_options): Remove.
636         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
637         (spu_override_options): Rename to spu_option_override.  Make
638         static.
639         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
640         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
641         OVERRIDE_OPTIONS.
642         * config/vax/vax-protos.h (override_options): Remove.
643         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
644         (override_options): Rename to vax_option_override.  Make static.
645         Call SUBTARGET_OVERRIDE_OPTIONS.
646         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
647         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
648         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
649         * config/xtensa/xtensa-protos.h (override_options): Remove.
650         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
651         (override_options): Rename to xtensa_option_override.  Make static.
652         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
653
654 2010-09-16  Richard Guenther  <rguenther@suse.de>
655
656         PR tree-optimization/45623
657         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
658         (get_constraint_for_component_ref): If computing a constraint
659         for the rhs handle type punning through unions.
660         (get_constraint_for_address_of): Adjust.
661         (get_constraint_for_1): Likewise.
662         (get_constraint_for): Likewise.
663         (get_constraint_for_rhs): New function.
664         (do_structure_copy): Adjust.
665         (make_constraint_to): Likewise.
666         (handle_const_call): Likewise.
667         (find_func_aliases): Likewise.
668         (process_ipa_clobber): Likewise.
669         (create_variable_info_for): Likewise.
670
671 2010-09-16  Ira Rosen  <irar@il.ibm.com>
672
673         * tree-vectorizer.c: Fix documentation.
674         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
675         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
676         is_pattern_stmt_p, is_loop_header_bb_p,
677         stmt_vinfo_set_inside_of_loop_cost,
678         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
679         known_alignment_for_access_p): Likewise.
680         * tree-vect-loop.c: Fix documentation.
681         (vect_get_cost): Start function name from new line.
682         * tree-vect-data-refs.c: Fix documentation.
683         * tree-vect_stmts.c: Likewise.
684         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
685         (vectorizable_store): Free vec_oprnds if allocated.
686         (vectorizable_condition): Initialize several variables to avoid
687         warnings.
688         * tree-vect-slp.c: Fix documentation.
689
690 2010-09-16  Richard Guenther  <rguenther@suse.de>
691
692         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
693         is TS_TRANSLATION_UNIT_DECL.
694         (initialize_tree_contains_struct): Adjust.
695         (all_translation_units): New global vector.
696         (build_translation_unit_decl): New function.
697         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
698         (struct tree_translation_unit_decl): New.
699         (all_translation_units): Declare.
700         (union tree_node): Add translation_unit_decl member.
701         (build_translation_unit_decl): Declare.
702         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
703         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
704         New function.
705         (pack_value_fields): Call it.
706         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
707         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
708         (lto_output_tree_pointers): Call it.
709         * lto-streamer-in.c (lto_input_tree_ref): Handle references
710         to TRANSLATION_UNIT_DECL.
711         (unpack_ts_translation_unit_decl_value_fields): New function.
712         (unpack_value_fields): Call it.
713         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
714         (lto_input_tree_pointers): Call it.
715         * lto-streamer.c (check_handled_ts_structures): Adjust.
716         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
717         * c-decl.c (all_translation_units): Remove.
718         (pop_scope): Use build_translation_unit_decl.
719         (collect_all_refs): Adjust.
720         (for_each_global_decl): Likewise.
721         (c_write_global_declarations): Likewise.
722
723 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
724
725         PR bootstrap/45686
726         * fold-const.c (fold_checksum_tree): Change slot from const void **
727         to void **, use CONST_CAST_TREE to store into *slot.
728
729 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
730
731         * config/i386/i386.md: Remove unneeded empty conditions and
732         preparation statements from expanders.
733         * config/i386/mmx.md: Ditto.
734         * config/i386/sse.md: Ditto.
735
736 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
737
738         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
739
740 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
741
742         PR rtl-optimization/45593
743         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
744         insns that were in delay slots as stand-alone insns.
745
746 2010-09-15  Ian Lance Taylor  <iant@google.com>
747
748         * incpath.c (remove_duplicates): If name is not a directory, issue
749         a warning rather than an error.
750
751 2010-09-15  Martin Jambor  <mjambor@suse.cz>
752
753         PR middle-end/45644
754         * tree-sra.c (create_access): Check for bit-fields directly.
755
756 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
757
758         PR tree-optimization/45633
759         * tree-cfg.c (verify_gimple_assign_binary): Allow
760         MINUS_EXPR with lhs and rhs1 pointer vector and
761         rhs2 sizetype vector.
762         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
763         or vector pointer use TER to optimize pointer subtraction.
764
765 2010-09-15  Jie Zhang  <jie@codesourcery.com>
766
767         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
768         fcmpd to fcmps.
769
770 2010-09-15  Ian Lance Taylor  <iant@google.com>
771
772         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
773
774 2010-09-15  Ian Lance Taylor  <iant@google.com>
775
776         * function.c (get_arg_pointer_save_area): Set
777         arg_pointer_save_area_init to true.
778
779 2010-09-15  Martin Jambor  <mjambor@suse.cz>
780
781         * tree-sra.c (generate_subtree_copies): Updated comment.
782         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
783         obtained from the statement iterator instead.
784         (load_assign_lhs_subreplacements): Removed parameters lhs and
785         right_offset, which is obtained from top_racc instead.  Parameter lacc
786         is now expected to be the root of the processed tree rather than root's
787         first child.  Updated all callers.
788
789 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
790
791         * config/pdp11/pdp11.c (register_move_cost): Rename to
792         pdp11_register_move_cost.
793         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
794         pdp11_register_move_cost.
795         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
796         pdp11_register_move_cost instead of register_move_cost.
797
798 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
799
800         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
801         pattern for vmovn. Expansion in case of non 
802         -mvectorize-with-neon-quad.
803         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
804         non- -mvectorize-with-neon-quad case.
805         (move_lo_quad_<mode>): New expansion to vmov into low part.
806         (move_hi_quad_<mode>): New expansion to vmov into high part.
807         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
808         (move_lo_quad_v4sf): Likewise.
809         (move_lo_quad_v8hi): Likewise.
810         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
811         low part.
812         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
813         high part.
814         * config/arm/iterators.md (ANY128): New mode iterator.
815         (V_narrow_pack): New mode attribute.
816         (V_HALF): Add attribute.
817         (V_DOUBLE): Add attribute.
818         (V_mode_nunits): Add attribute.
819
820 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
821
822         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
823         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
824
825 2010-09-15  Olivier Hainque  <hainque@adacore.com>
826             Jose Ruiz  <ruiz@adacore.com>
827
828         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
829         * config/alpha/osf5-unwind.h: New file.
830
831 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
832
833         PR bootstrap/45672
834         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
835         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
836         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
837
838 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
839
840         * c-lang.h (struct lang_type): Add variable_size GTY option.
841
842 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
843
844         PR bootstrap/45672
845         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
846
847 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
848
849         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
850         result isn't used in memory address.
851
852 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
853
854         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
855         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
856         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
857         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
858         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
859         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
860
861         * target.def: Add units_per_simd_word to vectorize.
862
863         * targhooks.c (default_units_per_simd_word): New.
864         * targhooks.h (default_units_per_simd_word): Likewise.
865         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
866         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
867         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
868         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
869         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
870         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
871         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
872         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
873
874         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
875         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
876
877         * tree-vect-stmts.c: Don't include "tm_p.h".
878         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
879         with targetm.vectorize.units_per_simd_word.
880
881         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
882
883         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
884
885         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
886         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
887
888         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
889         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
890
891         * doc/tm.texi: Regenerated.
892
893 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
894
895         * tree-vect-stmts.c: Include "tm_p.h".
896
897         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
898         out of RTX_CODE.
899
900 2010-09-14  Martin Jambor  <mjambor@suse.cz>
901
902         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
903         location of generated statement.  Changed all callers.
904         (build_ref_for_model): New parameter loc which used to set location of
905         all generated expressions.  Changed all callers.
906         (generate_subtree_copies): Likewise.
907         (init_subtree_with_zero): Likewise.
908         (sra_modify_expr): Set locations of all generated statements and
909         expressions to the location the original statement.
910         (handle_unscalarized_data_in_subtree): Likewise.
911         (load_assign_lhs_subreplacements): Likewise.
912         (sra_modify_constructor_assign): Likewise.
913         (sra_modify_assign): Likewise.
914
915 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
916
917         PR target/45277
918         PR target/45363
919         PR target/45407
920         * doc/install.texi (sparc*-*-*): New section.
921         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
922
923 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
924
925         PR middle-end/45567
926         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
927         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
928         (expand_builtin): Adjust caller.
929         (expand_builtin_unop): Only use subtarget if it has the right mode.
930
931 2010-09-14  Tristan Gingold  <gingold@adacore.com>
932
933         * configure.ac (plugins): Fix typos.
934         * configure: Regenerate.
935
936 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
937
938         PR debug/45660
939         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
940         gen_type_die for function/method return type.
941
942 2010-09-14  Ira Rosen  <irar@il.ibm.com>
943
944         PR tree-optimization/45470
945         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
946         can throw an exception.
947         * tree-vect-stmts.c (vectorizable_call): Likewise.
948
949 2010-09-14  DJ Delorie  <dj@redhat.com>
950
951         PR target/44749
952         * config/mep/mep-protos.h (mep_save_register_info,
953         mep_reinit_regs, mep_init_regs): Declare.
954
955         * config/mep/mep.c: Move all target definitions to the end of the
956         file to avoid the need for duplicate declarations.
957         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
958         (mep_reorg_erepeat): Remove unused variables.
959         (mep_expand_builtin): Likewise.
960
961         * config/mep/mep-pragma.c: Don't include rtl.h.
962         (INVALID_REGNUM): New.
963         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
964         functions.
965         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
966         Avoid enum/integer math.
967
968 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
969
970         PR target/44749
971         * config/mep/t-mep (GTM_H): Add insn-constants.h.
972         * config/mep/mep.c (mep_conditional_register_usage): Take no
973         parameters.
974         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
975         prototype.
976         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
977         call to mep_conditional_register_usage.
978
979 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
980
981         PR debug/43937
982         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
983         the DECL as well.
984
985 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
986
987         PR rtl-optimization/45617
988         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
989         even if low N bits of X aren't known to be zero.
990
991 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
992
993         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
994
995         * config/i386/i386.c (initial_ix86_tune_features): Add
996         X86_TUNE_VECTORIZE_DOUBLE.
997         (ix86_units_per_simd_word): New.
998
999         * config/i386/i386.h (ix86_tune_indices): Add
1000         X86_TUNE_VECTORIZE_DOUBLE.
1001         (TARGET_VECTORIZE_DOUBLE): New.
1002         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
1003
1004 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
1005
1006         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
1007         (new_temp_expr_table): Allocate call_cnt vector.
1008         (free_temp_expr_table): Free it.
1009         (process_replaceable): Add call_cnt parm and set in vector.
1010         (find_replaceable_in_bb): Skip replacement if def/use span a call.
1011         (debug_ter): Dump call_cnt value, remove stderr uses.
1012
1013 2010-09-13  Jan Hubicka  <jh@suse.cz>
1014
1015         * tree.c (build_zero_cst): New.
1016         * tree.h (build_zero_cst): Declare.
1017         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
1018         (get_base_constructor): Break out from ...
1019         (fold_const_aggregate_ref): Here; handle empty constructors.
1020
1021 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1022
1023         * config/arm/arm.md: (define_attr "conds"): Update comment.
1024         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
1025         conds attribute to clob.
1026         (arm_sync_compare_and_swapsi): Likewise.
1027         (arm_sync_compare_and_swap<mode>): Likewise.
1028         (arm_sync_lock_test_and_setsi): Likewise.
1029         (arm_sync_lock_test_and_set<mode>): Likewise.
1030         (arm_sync_new_<sync_optab>si): Likewise.
1031         (arm_sync_new_nandsi): Likewise.
1032         (arm_sync_new_<sync_optab><mode>): Likewise.
1033         (arm_sync_new_nand<mode>): Likewise.
1034         (arm_sync_old_<sync_optab>si): Likewise.
1035         (arm_sync_old_nandsi): Likewise.
1036         (arm_sync_old_<sync_optab><mode>): Likewise.
1037         (arm_sync_old_nand<mode>): Likewise.
1038
1039 2010-09-13  Olivier Hainque  <hainque@adacore.com>
1040
1041         * fwprop.c (forward_propagate_and_simplify): Only attach a
1042         REG_EQUAL note to an insn if the destination is a register.
1043         * gcse.c (try_replace_reg): Likewise.
1044
1045 2010-09-13  Richard Guenther  <rguenther@suse.de>
1046
1047         PR tree-optimization/45611
1048         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
1049         (copy_ref_info): Likewise.
1050
1051 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
1052
1053         PR debug/45604
1054         PR debug/45419
1055         PR debug/45408
1056         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1057         types of MEM_REF pointer types to the same type.
1058
1059 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
1060
1061         PR rtl-optimization/41087
1062         * ifcvt.c (noce_get_condition): Don't allow conditions with
1063         side-effects.
1064
1065 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
1066
1067         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1068         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
1069         * config/frv/frv.c (frv_register_move_cost): Make static. Change
1070         arguments type to reg_class_t. Add mode argument.
1071         (frv_memory_move_cost): New.
1072         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
1073
1074 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
1075
1076         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
1077         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
1078
1079 2010-09-10  Jan Hubicka  <jh@suse.cz>
1080
1081         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
1082
1083 2010-09-10  Richard Guenther  <rguenther@suse.de>
1084
1085         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
1086         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
1087         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
1088         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
1089         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
1090
1091 2010-09-10  Richard Guenther  <rguenther@suse.de>
1092
1093         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
1094         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
1095         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
1096         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
1097
1098 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
1099
1100         PR middle-end/45634
1101         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
1102         of string folding is of integral type.
1103
1104 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
1105
1106         * doc/invoke.texi (-x): Fix typo.
1107
1108 2010-09-10  Richard Guenther  <rguenther@suse.de>
1109
1110         PR debug/44115
1111         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
1112         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1113         Output DECL_DEBUG_EXPR.
1114         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1115         Input DECL_DEBUG_EXPR.
1116
1117 2010-09-10  Richard Guenther  <rguenther@suse.de>
1118
1119         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
1120         (build_index_type): Implement in terms of build_range_type.
1121         (build_range_type): Do not allow NULL_TREE type, improve
1122         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
1123         if we didn't hash.
1124         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
1125         create a distinct copy of the type.
1126
1127 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
1128
1129         * configure: Regenerated.
1130         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
1131
1132 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1133
1134         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
1135         * config/arm/cortex-a9-neon.md: New and partially generated.
1136         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
1137
1138 2010-09-10  Richard Guenther  <rguenther@suse.de>
1139
1140         * tree.h (build_index_2_type): Remove.
1141         * tree.c (build_index_2_type): Remove.
1142
1143 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
1144
1145         PR bootstrap/45630
1146         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
1147         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
1148         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
1149
1150 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1151
1152         PR tree-optimization/44972
1153         * tree-sra.c: Include toplev.h.
1154         (build_ref_for_offset): Entirely reimplemented.
1155         (build_ref_for_model): New function.
1156         (build_user_friendly_ref_for_offset): New function.
1157         (analyze_access_subtree): Removed build_ref_for_offset check.
1158         (propagate_subaccesses_across_link): Likewise.
1159         (create_artificial_child_access): Use
1160         build_user_friendly_ref_for_offset.
1161         (propagate_subaccesses_across_link): Likewise.
1162         (ref_expr_for_all_replacements_p): Removed.
1163         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
1164         (sra_modify_expr): Use build_ref_for_model.
1165         (load_assign_lhs_subreplacements): Likewise.
1166         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1167         checks for return values of build_ref_for_offset.
1168         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1169         build_ref_for_offset.
1170         * ipa-prop.h: Include gimple.h
1171         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1172         (ipa_analyze_indirect_call_uses): Update comment.
1173         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1174         (IPA_PROP_H): Likewise.
1175
1176 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1177
1178         PR tree-optimization/44972
1179         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1180         calling build_ref_for_offset.
1181
1182 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1183
1184         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1185         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1186         * config/arm/arm-tune.md: Regenerate.
1187         * doc/invoke.texi (ARM Options): Document it.
1188
1189 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
1190
1191         * config/i386/i386.c: Include sched-int.h.
1192         (TARGET_SCHED_DISPATCH): Defined.
1193         (TARGET_SCHED_DISPATCH_DO): Defined.
1194         (DISPATCH_WINDOW_SIZE): Defined.
1195         (MAX_DISPATCH_WINDOWS): Defined.
1196         (MAX_INSN): Defined.
1197         (MAX_IMM): Defined.
1198         (MAX_IMM_SIZE): Defined.
1199         (MAX_IMM_32): Defined.
1200         (MAX_IMM_64): Defined.
1201         (MAX_LOAD): Defined.
1202         (MAX_STORE): Defined.
1203         (BIG): Defined.
1204         (dispatch_group): New.
1205         (num_allowable_groups): New.
1206         (group_name): New.
1207         (sched_insn_info_s): New.
1208         (dispatch_windows_s): New.
1209         (imm_info_s): New.
1210         (dispatch_window_list): New.
1211         (dispatch_window_list1): New.
1212         (get_mem_group): New.
1213         (is_cmp): New.
1214         (dispatch_violation): New.
1215         (is_branch): New.
1216         (is_prefetch): New.
1217         (init_window): New.
1218         (allocate_window): New.
1219         (init_dispatch_sched): New.
1220         (is_end_basic_block): New.
1221         (process_end_window): New.
1222         (allocate_next_window): New.
1223         (find_constant_1): New.
1224         (find_constant): New.
1225         (get_num_immediates): New.
1226         (has_immediate): New.
1227         (get_insn_path): New.
1228         (get_insn_group): New.
1229         (count_num_restricted): New.
1230         (fits_dispatch_window): New.
1231         (add_insn_window): New.
1232         (add_to_dispatch_window): New.
1233         (debug_dispatch_window_file): New.
1234         (debug_dispatch_window): New.
1235         (debug_insn_dispatch_info_file): New.
1236         (debug_ready_dispatch): New.
1237         (do_dispatch): New.
1238         (has_dispatch): New.
1239         * config/i386/i386.h (debug_ready_dispatch): Declared.
1240         (debug_dispatch_window): Declared.
1241         * config/i386/i386.opt (mdispatch-scheduler): New flag.
1242         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1243         (TARGET_SCHED_DISPATCH_DO): New.
1244         * doc/tm.texi: Regererated.
1245         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1246         ready_remove_first_dispatch
1247         (schedule_block): Call targetm.sched.dispatch and
1248         targetm.sched.dispatch_do.
1249         (sched_init): Call targetm.sched.dispatch and
1250         targetm.sched.dispatch_do.
1251         (ready_remove_first_dispatch): New.
1252         (number_in_ready): New.
1253         (get_ready_element): New.
1254         * hooks.c (hook_bool_rtx_int_false): New.
1255         (hook_void_rtx_int): New.
1256         * hooks.h (hook_bool_rtx_int_false): Declared.
1257         (hook_void_rtx_int): Declared.
1258         * sched-int.h (IS_DISPATCH_ON): Defined.
1259         (IS_CMP): Defined.
1260         (DISPATCH_VIOLATION): Defined.
1261         (FITS_DISPATCH_WINDOW): Defined.
1262         (DISPATCH_INIT): Defined.
1263         (ADD_TO_DISPATCH_WINDOW): Defined.
1264         (get_ready_element): Declared.
1265         (number_in_ready): Declared.
1266         * target.def (dispatch): Defined.
1267         (dispatch_do): Defined.
1268
1269 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1270
1271         PR middle-end/45312
1272         * reload1.c (merge_assigned_reloads): Remove.
1273         (reload_as_needed): Don't call it.
1274
1275 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
1276
1277         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1278         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1279         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1280
1281 2010-09-09  Matthias Klose  <doko@ubuntu.com>
1282
1283         PR bootstrap/43847
1284         * configure.ac (--enable-plugin): Enhance for cross builds.
1285         * configure: Regenerate.
1286
1287 2010-09-09  Jan Hubicka  <jh@suse.cz>
1288
1289         PR tree-optimization/45598
1290         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1291         string folding is of integral type.
1292
1293 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1294
1295         * configure.ac (gnu_indirect_function): New test.
1296         * configure: Rebuilt.
1297         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1298         * defaults.h (IFUNC_ASM_TYPE): Provide default.
1299
1300         * doc/extend.texi (Function Attributes): Document ifunc.
1301         * varasm.c (do_assemble_alias): Deal with ifuncs too.
1302
1303 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
1304
1305         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1306         epilogue instruction move.
1307
1308 2010-09-09  Jan Hubicka  <jh@suse.cz>
1309
1310         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1311         command line to allow more partitions than input files.
1312
1313 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1314
1315         PR middle-end/44554
1316         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1317
1318 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1319
1320         PR middle-end/40386
1321         * ira.c (pseudo_for_reload_consideration_p): Don't use
1322         flag_ira_share_spill_slots.
1323
1324 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1325
1326         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1327         point zero operands that fit into a single GPR.
1328         (s390_preferred_reload_class): Ensure we only return general-purpose
1329         register classes.
1330         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1331         floating-point zero operands into GPRs.
1332         ("*mov<mode>_64"): Likewise.
1333         ("mov<mode>"): Likewise using lhi.
1334
1335 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1336
1337         * config/s390/s390.c (s390_symref_operand_p): Return false for
1338         literal pool references.
1339         (s390_check_qrst_address): Update caller.
1340
1341 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1342
1343         * config/i386/predicates.md (ext_register_operand): Check that
1344         SUBREG_REG is really a register before looking for REGNO.
1345         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1346         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1347
1348 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1349
1350         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1351         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1352         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1353         * print-rtl.c (print_rtx): Likewise.
1354         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1355         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1356         for ADDR_EXPR with non-addressable object.
1357         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1358         (struct dw_val_struct): Add v.val_decl_ref.
1359         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1360         Handle DW_OP_GNU_implicit_pointer.
1361         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1362         (get_ref_die_offset_label): New function.
1363         (implicit_ptr_descriptor): New function.
1364         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1365         (loc_descriptor): Likewise.
1366         (gen_variable_die): Put even definitions into decl_die_table.
1367         (resolve_addr_in_expr): Resolve still unresolved
1368         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1369         return false.
1370         (dwarf2out_finish): Call output_location_lists after outputting
1371         .debug_info and .debug_abbrev instead of before.
1372
1373 2010-09-09  Roland McGrath  <roland@redhat.com>
1374
1375         * dwarf2out.c (DWARF_REF_SIZE): Define.
1376         (size_of_loc_descr): Use it for DW_OP_call_ref.
1377
1378 2010-09-09  Alan Modra  <amodra@gmail.com>
1379
1380         * doc/invoke.text: Reinstate mcmodel=medium.
1381         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1382         CMODEL_MEDIUM as default.
1383         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1384         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1385         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1386         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1387
1388 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1389
1390         PR target/45250
1391         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1392         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1393         (builtin_longjmp): Likewise.
1394         (allocate_stack): Use hard_frame_pointer_rtx instead of
1395         frame_pointer_rtx.
1396         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1397         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1398         (pa_can_eliminate): Likewise.
1399         (TARGET_INTERNAL_ARG_POINTER): Define.
1400         (TARGET_CAN_ELIMINATE): Define.
1401         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1402         pointer.
1403         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1404         (pa_internal_arg_pointer, pa_can_eliminate,
1405         pa_initial_elimination_offset): New.
1406         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1407         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1408         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1409         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1410         Define.
1411         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1412         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1413         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1414         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1415         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1416         new soft frame pointer.
1417         * config/pa/pa64-regs.h: Likewise.
1418
1419 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1420
1421         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1422         numerical constant.
1423         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1424
1425 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1426
1427         PR debug/45531
1428         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1429
1430 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1431
1432         PR debug/45419
1433         PR debug/45408
1434         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1435         qualifiers in otherwise equal MEM_REF pointer types.
1436         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1437         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1438
1439 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1440
1441         PR target/44392
1442         * config/arm/arm.md (bswapsi2): Handle condition correctly
1443         for armv6 and optimize_size.
1444
1445 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1446
1447         PR other/18555
1448         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1449
1450 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1451
1452         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1453         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1454         ix86_expand_strlen, legitimate_pic_address_disp_p,
1455         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1456         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1457         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1458         prototype to bool.
1459         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1460         return_in_memory_ms_64, ix86_check_movabs,
1461         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1462         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1463         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1464         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1465         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1466         ix86_secondary_memory_needed): Change to bool.  Return
1467         "true" and "false" values.
1468         * config/i386/i386.md: Return "true" and "false" values.
1469
1470 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1471
1472         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1473         run_expensive_tests.
1474
1475 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1476
1477         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1478
1479 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1480
1481         PR other/45443
1482         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1483         at -O3.
1484
1485 2010-09-08  Richard Guenther  <rguenther@suse.de>
1486
1487         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1488         (visit): Adjust.
1489         (iterative_hash_gimple_type): Likewise.
1490         (gimple_type_hash): Likewise.
1491         (gimple_register_type): Likewise.
1492         (print_gimple_types_stats): Likewise.
1493         (free_gimple_type_tables): Likewise.
1494
1495 2010-09-08  Michael Matz  <matz@suse.de>
1496
1497         PR tree-optimization/43430
1498         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1499         copies for conditional statements if it's not part of a reduction.
1500
1501 2010-09-08  Michael Matz  <matz@suse.de>
1502
1503         PR tree-optimization/33244
1504         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1505         empty loop latches.
1506
1507 2010-09-08  Richard Guenther  <rguenther@suse.de>
1508
1509         PR tree-optimization/45578
1510         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1511         Be more careful when transfering alignment information to
1512         the new induction variable.
1513         (copy_ref_info): Likewise.
1514
1515 2010-09-08  Richard Guenther  <rguenther@suse.de>
1516
1517         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1518         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1519
1520 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1521
1522         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1523         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1524
1525 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1526
1527         PR doc/45587
1528         * doc/md.texi: Fixed modes on several standard pattern names.
1529
1530 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1531
1532         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1533         (ashl<mode>3): ...this.
1534         (loongson_psra<V_suffix>): Rename to...
1535         (ashr<mode>3): ...this.
1536         (loongson_psrl<V_suffix>): Rename to...
1537         (lshr<mode>3): ...this.
1538         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1539         (CODE_FOR_loongson_psllw): Define.
1540         (CODE_FOR_loongson_psrlh): Define.
1541         (CODE_FOR_loongson_psrlw): Define.
1542         (CODE_FOR_loongson_psrah): Define.
1543         (CODE_FOR_loongson_psraw): Define.
1544
1545 2010-09-07  Richard Henderson  <rth@redhat.com>
1546
1547         * tree-vect-data-refs.c: Include tm_p.h.
1548         * Makefile.in (tree-vect-data-refs.o): Update deps.
1549         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1550         Move delarations outside #ifdef RTX_CODE.
1551
1552 2010-09-07  Richard Henderson  <rth@redhat.com>
1553
1554         * final.c (rest_of_handle_final): Unconditionally do
1555         output_function_exception_table before assemble_end_function.
1556
1557 2010-09-07  Jan Hubicka  <jh@suse.cz>
1558
1559         * tree-inline.c (tree_inlinable_function_p): Do not test
1560         DECL_REPLACEABLE_P.
1561         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1562         update_callee_keys, cgraph_decide_inlining): Test function availability.
1563         * cif-code.def (OVERWRITABLE): New code.
1564
1565 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1566             Jack Howarth <howarth@bromo.med.uc.edu>
1567
1568         PR target/36502
1569         PR target/42313
1570         PR target/44651
1571         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1572         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1573         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1574         MAX macro.
1575
1576 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1577
1578         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1579         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1580
1581 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1582
1583         * config.gcc: Don't append t-android for Android targets.
1584
1585         * config/t-android: Removed.
1586
1587 2010-09-07  Richard Henderson  <rth@redhat.com>
1588
1589         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1590         * doc/tm.texi.in: Add doc marker.
1591         * doc/tm.texi: Rebuild.
1592         * except.c (switch_to_exception_section): Always build.
1593         (output_one_function_exception_table): Move section switch,
1594         personality output, and label output ...
1595         (output_function_exception_table): ... here.  Use the new
1596         personality hook.
1597
1598         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1599         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1600         TARGET_ASM_INIT_SECTIONS): New.
1601         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1602         make static.
1603         (TARGET_ASM_UNWIND_EMIT): Update to match.
1604         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1605
1606         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1607         (arm_asm_init_sections): New.
1608         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1609
1610 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1611
1612         * config/arm/arm.md: Remove unused variable.
1613
1614 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1615
1616         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1617         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1618         (m32r_memory_move_cost): New function.
1619
1620 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1621
1622         * config.gcc: Append t-android for Android targets.
1623
1624         * config/t-android: New.
1625
1626 2010-09-07  Richard Henderson  <rth@redhat.com>
1627
1628         * target.def (unwind_emit_before_insn): New hook.
1629         * doc/tm.texi.in: Add @hook marker for it.
1630         * doc/tm.texi: Rebuild.
1631         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1632
1633 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1634
1635         PR fortran/43665
1636         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1637         are any type attributes.
1638
1639 2010-09-07  Jan Hubicka  <jh@suse.cz>
1640
1641         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1642         array_ref_low_bound in string access folding.
1643
1644 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1645
1646         PR target/45206
1647         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1648         eh_return fixup sequence.
1649
1650 2010-09-07  Jan Hubicka  <jh@suse.cz>
1651
1652         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1653         gimple_min_invariant.
1654
1655 2010-09-07  Richard Guenther  <rguenther@suse.de>
1656
1657         PR middle-end/45569
1658         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1659         nor CONSTRUCTOR can trap.
1660         * tree-complex.c (update_complex_assignment): Update EH info.
1661
1662 2010-09-07  Richard Guenther  <rguenther@suse.de>
1663
1664         PR middle-end/45569
1665         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1666         * passes.c (execute_function_todo): Do not verify anything if
1667         we saw errors.
1668
1669 2010-09-07  Richard Guenther  <rguenther@suse.de>
1670
1671         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1672
1673 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1674
1675         PR target/43137
1676         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1677         New define_mode_attrs.
1678         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1679         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1680         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1681         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1682         Remove pool_range attribute.
1683         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1684         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1685         pool_range and neg_pool_range attributes.
1686         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1687         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1688         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1689
1690 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1691
1692         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1693         check glibc.
1694
1695 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1696
1697         PR target/22152
1698         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1699         *mov<mode>_internal_avx, *mov<mode>_internal,
1700         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1701         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1702
1703 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1704
1705         * c-typeck.c (do_warn_double_promotion): Remove.
1706         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1707         Objective-C++ too.
1708
1709 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1710
1711         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1712         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1713         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1714         argument type to reg_class_t. Change result type to bool.
1715         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1716
1717 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1718
1719         PR libobjc/19850
1720         * gthr-posix.h (__gthread_objc_thread_detach): Use
1721         _objc_thread_attribs when detaching a thread.
1722         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1723
1724 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1725
1726         PR target/45524
1727         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1728         * configure: Regenerated.
1729
1730 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1731
1732         * combine.c (try_combine): Set subst_low_luid to i0.
1733
1734 2010-09-06  Richard Guenther  <rguenther@suse.de>
1735
1736         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1737         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1738         (build_aligned_type): Declare.
1739         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1740         (check_aligned_type): New function.
1741         (build_aligned_type): Likewise.
1742         * expr.c (expand_assignment): Handle misaligned stores via
1743         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1744         (expand_expr_real_1): Likewise.
1745         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1746         * tree-vect-stmts.c (vectorizable_store): Do not build
1747         MISALIGNED_INDIRECT_REF but initialize alignment information.
1748         (vectorizable_load): Likewise.
1749         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1750         handling.
1751         * cfgexpand.c (expand_debug_expr): Likewise.
1752         * dwarf2out.c (loc_list_from_tree): Likewise.
1753         * fold-const.c (maybe_lvalue_p): Likewise.
1754         (operand_equal_p): Likewise.
1755         (build_fold_addr_expr_with_type_loc): Likewise.
1756         * gimplify.c (gimplify_addr_expr): Likewise.
1757         (gimplify_expr): Likewise.
1758         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1759         (verify_gimple_assign_single): Likewise.
1760         * tree-dump.c (dequeue_and_dump): Likewise.
1761         (tree_could_trap_p): Likewise.
1762         * tree-predcom.c (ref_at_iteration): Likewise.
1763         * tree-pretty-print.c (dump_generic_node): Likewise.
1764         (op_code_prio): Likewise.
1765         (op_symbol_code): Likewise.
1766         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1767         * tree-ssa-loop-im.c (for_each_index): Likewise.
1768         (gen_lsm_tmp_name): Likewise.
1769         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1770         (find_interesting_uses_address): Likewise.
1771         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1772         * tree-ssa-operands.c (get_expr_operands): Likewise.
1773         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1774         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1775         (ao_ref_init_from_vn_reference): Likewise.
1776         * tree.c (staticp): Likewise.
1777         (build1_stat): Likewise.
1778         (reference_alias_ptr_type): Likewise.
1779         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1780         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1781         MISALIGNED_INDIRECT_REF handling.
1782
1783 2010-09-06  Richard Guenther  <rguenther@suse.de>
1784
1785         PR tree-optimization/45534
1786         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1787         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1788         on the target.
1789         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1790         valid on the target.
1791
1792 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1793
1794         * configure.ac: Quote argument of AC_MSG_WARN.
1795         * configure: Regenerate.
1796
1797 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1798
1799         * sel-sched.c (move_cond_jump): Correct arguments to
1800         maybe_tidy_empty_bb.
1801         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1802
1803 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1804
1805         PR rtl-optimization/44919
1806         * sel-sched.c (move_cond_jump): Remove assert, check that
1807         the several blocks case can only happen with mutually exclusive
1808         insns instead.  Rewrite the movement code to support moving through
1809         several basic blocks.
1810
1811 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1812
1813         * config/i386/i386.md (iptrsize): New mode attribute.
1814         (tp_seg): Ditto.
1815         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1816         mode iterator.
1817         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1818         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1819         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1820         (stack_tls_protect_set_<mode>): Ditto from
1821         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1822         of thread base pointer load.
1823         (stack_tls_protect_test_<mode>): Ditto from
1824         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1825         of thread base pointer load.
1826         (stack_protect_set): Rewrite using indirect functions.
1827         (stack_protect_test): Ditto.
1828         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1829         (ix86_print_operand): Handle '@'.
1830
1831 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1832
1833         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1834         MINUS_EXPR.
1835
1836 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1837
1838         * doc/invoke.texi: Document -Wdouble-promotion.
1839         * c-typeck.c (convert_arguments): Check for implicit conversions
1840         from float to double.
1841         (do_warn_double_promotion): New function.
1842         (build_conditional_expr): Use it.
1843         (build_binary_op): Likewise.
1844
1845 2010-09-05  Richard Guenther  <rguenther@suse.de>
1846
1847         PR tree-optimization/45535
1848         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1849         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1850         dereferencing it.
1851         (indirect_refs_may_alias_p): Likewise.
1852
1853 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1854
1855         * config/sh/sh.c (sh_option_override): Make static.
1856         Adjust comments.  Declare.
1857         (sh_function_value_regno_p): Likewise.
1858         (sh_register_move_cost): Modify the arguments, make static.
1859         Adjust comments.  Declare.
1860         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1861         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1862         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1863         REGISTER_MOVE_COST): Delete.
1864         * config/sh/sh-protos.h (sh_override_options): Delete.
1865         (sh_register_move_cost): Delete.
1866         (sh_function_value_regno_p): Delete.
1867
1868 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1869
1870         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1871         m32r_function_value_regno_p): New functions.
1872         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1873         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1874         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1875         FUNCTION_VALUE_REGNO_P): Remove.
1876
1877 2010-09-04  Jan Hubicka  <jh@suse.cz>
1878
1879         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1880         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1881         fold_read_from_constant_string.
1882
1883         * gimple.h (canonicalize_constructor_val): Declare.
1884         * gimple-fold.c (canonicalize_constructor_val): New function.
1885         (get_symbol_constant_value):Use it.
1886         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1887
1888 2010-09-04  Jan Hubicka  <jh@suse.cz>
1889
1890         * tree-switch-conversion.c (build_one_array): Set constructor to be
1891         static.
1892         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1893
1894 2010-09-04  Richard Guenther  <rguenther@suse.de>
1895
1896         PR bootstrap/45519
1897         * tree-flow.h (force_gimple_operand_1): Declare.
1898         (force_gimple_operand_gsi_1): Likewise.
1899         * gimplify.c (force_gimple_operand_1): New worker taking a
1900         gimple predicate for ...
1901         (force_gimple_operand): ... which now wraps it.
1902         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1903         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1904         last change.
1905         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1906         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1907         (create_mem_ref): Likewise.
1908
1909 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1910
1911         * config/i386/predicates.md (sse_reg_operand): New predicate.
1912         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1913         predicate for operand 1.
1914         (XFmode push splitter): Use fp_register_operand predicate
1915         for operand 1.
1916         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1917         (SF-DF float_extend push splitter): Add reload_completed insn
1918         predicate.
1919         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1920         MODEF mode macro.  Add reload_completed insn predicate.
1921
1922 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1923
1924         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1925         (struct df_extract_ref): Remove.
1926         (union df_ref_d): Remove extract_ref member.
1927         (df_ref_create): Remove last three arguments.
1928         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1929         * df-scan.c (df_ref_record): Remove last three arguments, do not
1930         pass them to df_ref_create_structure.
1931         (df_uses_record): Remove first and last three arguments.  Replace
1932         first argument with DF_REF_REGULAR, adjust calls to remove the
1933         width, offset and mode.  Always call recursively on the second
1934         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1935         (df_ref_create_structure): Remove first argument.
1936         (struct df_scan_problem_data): Remove ref_extract_pool.
1937         (df_scan_free_internal): Do not free it.
1938         (df_scan_alloc): Do not allocate it.
1939         (df_ref_create): Remove last three arguments, do not pass them to
1940         df_ref_create_structure.
1941         (df_free_ref): Remove DF_REF_EXTRACT case.
1942         (df_notes_rescan): Adjust call to df_uses_record.
1943         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1944         Remove DF_REF_EXTRACT case.
1945         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1946         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1947         and SUBREG definitions.
1948         (df_get_conditional_uses): Remove references to width/offset/mode,
1949         adjust call to df_ref_create_structure.
1950         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1951         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1952         calls to df_uses_record and df_ref_record.
1953         * fwprop.c (update_df): Remove references to width/offset/mode,
1954         adjust call to df_ref_create.
1955
1956 2010-09-03  Jan Hubicka  <jh@suse.cz>
1957
1958         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1959         (build_cdtor_fns): Update use of build_cdtor.
1960
1961 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1962
1963         * doc/options.texi (SeparateAlias): Document.
1964         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1965         * opth-gen.awk: Generate enumeration names for options marked
1966         SeparateAlias, but not for those marked Ignore.
1967         * opts-common.c (generate_canonical_option): Don't output separate
1968         argument for options marked CL_SEPARATE_ALIAS.
1969         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1970         * opts.h (CL_SEPARATE_ALIAS): New.
1971         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1972         CL_COMMON): Adjust definitions.
1973         * config/i386/darwin.opt, config/mips/sde.opt: New.
1974         * common.opt (fdump-final-insns): New.
1975         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1976         i386/darwin.opt.
1977         (mips*-sde-elf*): Add mips/sde.opt.
1978         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1979         -mno-data-in-code and -mcode-xonly here.
1980         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1981         * gcc.c (option_map): Add "j" to --dump entry.
1982         (translate_options): Don't translate -d to -foutput-class-dir= here.
1983
1984 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1985
1986         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1987         DR_IS_WRITE.
1988         (compute_all_dependences): Same.
1989         (create_rdg_edge_for_ddr): Same.
1990         * tree-data-ref.h (DR_IS_WRITE): New.
1991         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1992         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1993         (write_memrefs_written_at_least_once): Same.
1994         * tree-predcom.c (suitable_component_p): Same.
1995         (determine_roots_comp): Same.
1996         (execute_load_motion): Same.
1997         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1998         (vect_enhance_data_refs_alignment): Same.
1999         (vect_analyze_group_access): Same.
2000
2001 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2002
2003         PR testsuite/42843
2004         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
2005         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2006
2007 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
2008
2009         * dwarf2out.c (file scope): Remove #if0'd code.
2010         (gen_subprogram_die): Same.
2011
2012 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2013
2014         PR middle-end/45484
2015         * dwarf2out.c (flush_queued_reg_saves): Rename to...
2016         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
2017         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
2018         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
2019         * config/i386/i386.c (output_set_got): Call it.
2020
2021 2010-09-03  Michael Matz  <matz@suse.de>
2022
2023         PR middle-end/45415
2024         * tree-sra.c (sra_modify_assign): If we modify the statement,
2025         say so.
2026
2027         * tree-ssa.c (verify_ssa): Check number of operands and links
2028         per statement to agree.
2029
2030 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2031             Iain Sandoe  <iains@gcc.gnu.org>
2032
2033         PR target/45476
2034         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
2035         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
2036         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2037
2038 2010-09-03  Richard Guenther  <rguenther@suse.de>
2039
2040         * lto-streamer-out.c (output_function): Output function
2041         start and end loci.
2042         * lto-streamer-in.c (input_function): Input function start
2043         and end loci.
2044
2045 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2046
2047         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
2048         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
2049         * configure: Regenerate.
2050         * aclocal.m4: Regenerate.
2051
2052 2010-09-03  Jan Hubicka  <jh@suse.cz>
2053
2054         PR lto/44812
2055         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
2056         on functions/variables in other partition.
2057
2058 2010-09-03  Jan Hubicka  <jh@suse.cz>
2059
2060         * cgraph.h (struct varpool_node): Add const_value_known.
2061         (varpool_decide_const_value_known): Declare.
2062         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
2063         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
2064         (input_varpool_node): Restore const_value_known.
2065         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
2066         initializer folding.
2067         * ipa.c (ipa_discover_readonly_nonaddressable_var,
2068         function_and_variable_visibility): Compute const_value_known.
2069         * gimple-fold.c (get_symbol_constant_value): Use varpool for
2070         initializer folding.
2071         * varpool.c (varpool_decide_const_value_known): New function.
2072
2073 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
2074
2075         * config/i386/i386.md: Remove empty preparation statements
2076         from splitters.
2077
2078 2010-09-03  Jan Hubicka  <jh@suse.cz>
2079
2080         * passes.c (rest_of_decl_compilation): Do not add local vars into
2081         varpool.
2082         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
2083         static or extern vars are in varpool.
2084         (varpool_finalize_decl): Sanity check that only static vars are
2085         finalized.
2086
2087 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
2088
2089         PR debug/45500
2090         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
2091         not just generic vectors with BLKmode.
2092
2093 2010-09-03  Richard Guenther  <rguenther@suse.de>
2094
2095         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
2096         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
2097         * tree.h (TMR_SYMBOL): Remove.
2098         (TMR_BASE, TMR_OFFSET): Adjust.
2099         (TMR_INDEX2): New.
2100         * alias.c (ao_ref_from_mem): Use TMR_BASE.
2101         * builtins.c (get_object_alignment): Merge TMR_BASE and
2102         TMR_SYMBOL handling.
2103         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
2104         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
2105         handling.  Also allow TARGET_MEM_REF as base address.
2106         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
2107         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
2108         base.  Gimplify TMR_INDEX2.
2109         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
2110         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2111         (get_addr_base_and_unit_offset): Likewise.
2112         * tree-eh.c (tree_could_trap_p): Likewise.
2113         * tree-pretty-print.c (dump_generic_node): Likewise.
2114         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
2115         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
2116         base to index2.
2117         (get_address_description): Reconstruct addres description
2118         from merged TMR_BASE and TMR_INDEX2.
2119         (maybe_fold_tmr): Fold propagated addresses.
2120         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
2121         MEM_REF and TARGET_MEM_REF paths.
2122         (indirect_refs_may_alias_p): Likewise.
2123         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
2124         instead of TMR_SYMBOL.
2125         * tree-ssa-operands.c (get_tmr_operands): Simplify.
2126         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
2127         according to changes ...
2128         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
2129         Split TARGET_MEM_REF into two fields plus the base.
2130         * tree.c (mem_ref_offset): Simplify.
2131         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
2132         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2133         Strip NOPs when folding MEM_REF addresses.
2134         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
2135         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
2136         (fold_gimple_assign): ... not here.
2137
2138 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
2139
2140         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
2141         * config/mips/mips.c (mips_shift_truncation_mask): New function.
2142         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2143
2144 2010-09-02  Richard Henderson  <rth@redhat.com>
2145
2146         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
2147         instead of readelf in the test.
2148         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
2149         in the .debug_frame section for coff targets.
2150         * configure: Rebuild.
2151
2152 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2153
2154         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
2155         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
2156         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2157         (m32c_class_likely_spilled_p): Make static. Change argument type to
2158         reg_class_t. Change result type to bool.
2159
2160 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2161
2162         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
2163         to convert (double)(long) into a single FRIZ instruction or not
2164         when -ffast-math is used.
2165
2166         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2167         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2168         or FRIZ instruction if -ffast-math.
2169         * config/rs6000/rs6000.md (friz): Ditto.
2170
2171         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2172
2173 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2174
2175         * opth-gen.awk (quote, comma): Remove unused variables.
2176
2177 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
2178
2179         * arm.c (arm_override_options): Correct fall-back code to use
2180         SUBTARGET_CPU_DEFAULT.
2181
2182 2010-09-02  Julian Brown  <julian@codesourcery.com>
2183
2184         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2185         unspecs.
2186         (vcond<mode>, vcondu<mode>): New expanders.
2187         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2188         comparisons with zero.
2189         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2190         * config/arm/constraints.md (Dz): New constraint.
2191
2192 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2193
2194         * target.def (class_likely_spilled_p): New hook.
2195         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2196         * doc/tm.texi: Regenerate.
2197         * targhooks.c (default_class_likely_spilled_p): New function.
2198         * targhooks.h (default_class_likely_spilled_p): Declare.
2199         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2200         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2201         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2202         Use fixed_reg_set instead of fixed_regs.
2203         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2204         * calls.c (avoid_likely_spilled_reg): Ditto.
2205         * ira-conflicts.c (ira_build_conflicts): Ditto.
2206         * ira.c (update_equiv_regs): Ditto.
2207         * mode-switching.c (create_pre_exit): Ditto.
2208         * regmove.c (find_matches): Ditto.
2209         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2210         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2211         (small_register_class_p): New inline function.
2212         (push_secondary_reload, find_reusable_reload, find_reloads): Use
2213         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2214
2215         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2216         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2217         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2218
2219 2010-09-02  Richard Guenther  <rguenther@suse.de>
2220
2221         PR tree-optimization/44937
2222         PR tree-optimization/45412
2223         * ipa-split.c (split_function): Properly remove PHI nodes.
2224
2225 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2226
2227         * opts.h (struct cl_option): Add warn_message field.
2228         (struct cl_decoded_option): Add warn_message field.
2229         * doc/options.texi (Ignore, Warn): Document.
2230         * opt-functions.awk (needs_state_p): Don't consider aliases or
2231         ignored options to need state saved.
2232         * optc-gen.awk: Handle Warn and Ignore.
2233         * opth-gen.awk: Output OPT_SPECIAL_ignore.
2234         * opts-common.c (decode_cmdline_option): Set warn_message field.
2235         Handle ignored options.
2236         (decode_cmdline_options_to_array, generate_option,
2237         generate_option_input_file): Set warn_message field.
2238         (read_cmdline_option): Generate warnings from warn_message field.
2239         Handle ignored options.
2240         * common.opt (Wunreachable-code, fargument-alias,
2241         fargument-noalias, fargument-noalias-global,
2242         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2243         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2244         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2245         ftree-salias): Mark Ignore.
2246         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2247         -mintel-syntax and -mno-intel-syntax here.
2248         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2249         using Warn.
2250         * opts.c (common_handle_option): Don't handle options marked as
2251         ignored.
2252         (enable_warning_as_error): Handle ignored options.
2253
2254 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2255
2256         PR driver/44076
2257         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2258         alias_target fields.
2259         * opt-functions.awk (opt_sanitized_name): Don't handle
2260         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2261         * optc-gen.awk: Generate alias fields.
2262         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2263         Don't generate such constants for aliases.
2264         * opts-common.c (generate_canonical_option): New.
2265         (decode_cmdline_option): Handle aliases.  Use
2266         generate_canonical_option for known options instead of copying the
2267         input option text.
2268         * doc/options.texi (Alias): Document.
2269         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2270         fstack-check, specs): Mark as aliases.
2271         * gcc.c (driver_handle_option): Canonicalize -L options to joined
2272         arguments.
2273         (driver_handle_option): Don't handle OPT_specs.
2274         * opts.c (common_handle_option): Don't handle options marked as
2275         aliases.
2276         (enable_warning_as_error): Handle aliases.
2277         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2278         OPT_Wlarger_than_eq.
2279         * tree-optimize.c (tree_rest_of_compilation): Use
2280         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2281
2282 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2283
2284         * config/i386/i386.md (nonmemory_operand): New mode attribute.
2285         (push memory peephole2): Macroize peepholes using SWI mode iterator.
2286         (move immediate to memory peephole2): Macroize peepholes using
2287         SWI124 mode iterator.
2288         (non-pairable NOT peephole2): Macroize peepholes using SWI124
2289         mode iterator.
2290         (simple lea add peephole2): Macroize peepholes using SWI48
2291         mode iterator.
2292         (simple lea mult peephole2): Ditto.
2293         (imul by 3,5,9 to lea peephole2): Ditto.
2294         (mov $-1, reg peephole2): Macroize peepholes using SWI248
2295         mode iterator.
2296         (imul $32bit_imm,mem,reg peephole2): Ditto.
2297         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2298
2299 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
2300
2301         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2302
2303 2010-09-02  Olivier Hainque  <hainque@adacore.com>
2304
2305         PR middle-end/44763
2306         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2307         (allocno_priority_compare_func): Use it instead of a straight
2308         difference computation over priorities.
2309
2310 2010-09-02  Andi Kleen  <ak@linux.intel.com>
2311
2312         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2313
2314 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2315
2316         * tree-vectorizer.h (get_later_stmt): New function.
2317         (vect_analyze_data_ref_dependences): Add argument.
2318         * tree-vect-loop.c (vect_analyze_loop): Update call to
2319         vect_analyze_data_ref_dependences.
2320         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2321         New function.
2322         (vect_analyze_data_ref_dependence): Add argument for basic block
2323         dependencies. Check dependencies in basic block vectorization.
2324         (vect_analyze_data_ref_dependences): Add argument and update call to
2325         vect_analyze_data_ref_dependences.
2326         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2327         (vect_bb_vectorizable_with_dependencies): New.
2328         (vect_slp_analyze_bb): Check dependencies in basic block.
2329         (vect_schedule_slp_instance): Insert stores before the last store in
2330         SLP instance.
2331
2332 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2333
2334         PR target/45476
2335         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2336         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2337
2338 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2339
2340         PR middle-end/45458
2341         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2342         bbs ending with throwing insns like blocks ending with a call.
2343         (fix_up_fall_thru_edges): Likewise.
2344
2345 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2346
2347         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2348         (m32c_function_arg_advance): Delete.
2349         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2350         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2351         comments.  Take a const_tree and a bool.  Declare.
2352         (m32c_function_arg_advance): Likewise.
2353         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2354
2355 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2356
2357         PR target/45476
2358         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2359         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2360         * config/i386/mingw32.h: ... here.
2361
2362 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2363
2364         PR lto/45475
2365         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2366         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2367         * lto-streamer-out (lto_output_ts_target_option): Add.
2368         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2369
2370 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2371
2372         PR/target 45452
2373         * config/i386/cygwin.h: Change order of specified import libraries.
2374         * config/i386/mingw32.h: Likewise.
2375         * config/i386/t-cygwin: Likewise.
2376         * config/i386/t-mingw32: Likewise.
2377         * config/i386/t-mingw-w32: Likewise.
2378         * config/i386/t-mingw-w64: Likewise.
2379
2380 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2381
2382         * config/arm/neon-schedgen.ml (core): New type.
2383         (allCores): List of supported cores.
2384         (availability_table): Add supported cores.
2385         (collate_bypasses): Accept core as a parameter.
2386         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2387         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2388         and coreStr to get tune attribute and prefix for functional units.
2389         (emit_bypasses): Accept core name and use it.
2390         (calculate_per_core_availability_table): New.
2391         (filter_core): New.
2392         (calculate_core_availability_table): New.
2393         (main): Use calculate_core_availablity_table.
2394         * config/arm/cortex-a8-neon.md: Update copyright year.
2395         Regenerated from ml file and merged in.
2396         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2397         cortex_a8_neon_mrc.
2398
2399 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2400
2401         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2402
2403 2010-09-01  Richard Guenther  <rguenther@suse.de>
2404
2405         * alias.c (ao_ref_from_mem): Adjust.
2406         * builtins.c (get_object_alignment): Likewise.
2407         * cfgexpand.c (expand_debug_expr): Likewise.
2408         * gimple.c (get_base_address): Likewise.
2409         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2410         (get_addr_base_and_unit_offset): Likewise.  Fix for
2411         both TMR_SYMBOL and TMR_BASE being set.
2412         * tree-eh.c (tree_could_trap_p): Likewise.
2413         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2414         TMR_SYMBOL.  Always gimplify TMR_BASE.
2415         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2416         TMR_BASE if there is a TMR_SYMBOL.
2417         * tree-pretty-print.c (dump_generic_node): Adjust.
2418         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2419         (tree_mem_ref_addr): Likewise.
2420         (create_mem_ref_raw): Likewise.
2421         (move_fixed_address_to_symbol): Likewise.
2422         (create_mem_ref): Likewise.
2423         (dump_mem_address): Likewise.
2424         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2425         Fix for both TMR_SYMBOL and TMR_BASE being set.
2426         (indirect_refs_may_alias_p): Likewise.
2427         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2428         * tree.def (TARGET_MEM_REF): Adjust documentation.
2429
2430 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2431
2432         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2433         Rename from X86_TUNE_ADD_ESP_4.
2434         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2435         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2436         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2437         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2438         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2439         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2440         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2441         * config/i386/i386.c (initial_ix86_tune_features)
2442         <X86_TUNE_SINGLE_POP>: Invert members.
2443         <X86_TUNE_DOUBLE_POP>: Ditto.
2444         <X86_TUNE_SINGLE_PUSH>: Ditto.
2445         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2446         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2447         No longer exported.
2448         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2449         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2450         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2451         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2452
2453 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2454
2455         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2456         a volatile LHS if the constructor has only one element.
2457
2458 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2459
2460         PR bootstrap/45321
2461         * tree.c (stdarg_p): Make fntype parameter const.
2462         * tree.h (stdarg_p): Likewise.
2463         (function_args_iterator): Remove unused fntype field.
2464         (function_args_iter_init): Do not initialize fntype
2465         field.  Make fntype parameter const.
2466
2467 2010-09-01  Richard Guenther  <rguenther@suse.de>
2468
2469         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2470         estimate.
2471         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2472         (execute_vrp): Compute number of iteration estimates.
2473         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2474         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2475         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2476         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2477         Infer loop bounds from undefined behavior based on a new parameter.
2478         (estimate_numbers_of_iterations): Likewise.
2479         (scev_probably_wraps_p): Adjust.
2480         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2481
2482 2010-09-01  Nick Clifton  <nickc@redhat.com>
2483
2484         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2485         where appropriate.
2486         (xstormy16_legitimate_address_p): Use true and false instead of 1
2487         and 0.
2488         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2489         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2490         magic constant 2.
2491         (xstormy16_expand_call): Fix comment at start of function.
2492
2493 2010-09-01  Nick Clifton  <nickc@redhat.com>
2494
2495         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2496         when pushing accumulator register.
2497         (rx_get_stack_layout): Always save call clobbered registers inside
2498         interrupt handlers.
2499         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2500
2501 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2502
2503         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2504         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2505
2506         * libgcc-std.ver (GCC_4.6.0): Define version.
2507
2508 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2509
2510         * tree-nested.c (convert_all_function_calls): Iterate until after the
2511         sum of static chains in the nest doesn't change.
2512
2513 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2514
2515         * config/m32c/m32c.c (classes_intersect): Remove.
2516         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2517         reg_classes_intersect_p instead of classes_intersect.
2518         (class_can_hold_mode): Change arguments type from enum reg_class to
2519         reg_class_t.  Use reg_class_contents instead of class_contents.
2520         (m32c_register_move_cost): Make static. Change arguments type from
2521         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2522         classes_intersect. Use reg_class_contents instead of class_contents.
2523         (m32c_memory_move_cost): Make static. Change arguments type from
2524         enum reg_class to reg_class_t.
2525         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2526         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2527         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2528         m32c_memory_move_cost): Remove.
2529
2530 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2531
2532         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2533         (arm_function_arg): Delete.
2534         (arm_needs_doubleword_align): Take a const_tree.
2535         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2536         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2537         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2538         (arm_function_arg): Make static.  Take a const_tree and a bool.
2539         (arm_function_arg_advance): Likewise.
2540         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2541
2542 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2543
2544         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2545         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2546         * lto-wrapper.c (run_gcc): Add jobserver mode.
2547         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2548         argument.
2549
2550 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2551
2552         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2553         (popsi1): Ditto.
2554         (*popdi1_epilogue): Ditto.
2555         (*popsi1_epilogue): Ditto.
2556         (popsi, popdi peephole2 patterns): Update peepholes for changed
2557         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2558
2559         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2560         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2561
2562         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2563         (override_options): Do not initialize removed ix86_gen_pop1.
2564         (gen_pop): New static function.
2565         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2566         (release_scratch_register_on_entry): Ditto.
2567         (ix86_restore_reg_using_pop): Ditto.
2568         (ix86_expand_epilogue): Ditto.
2569
2570 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2571
2572         PR middle-end/45461
2573         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2574
2575 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2576
2577         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2578         semicolons.
2579
2580 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2581
2582         * doc/extend.texi: Fix documentation of the return value of
2583         __builtin_choose_expr.
2584
2585 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2586
2587         * config/v850/v850-protos.h (function_arg): Delete.
2588         * config/v850/v850.h (FUNCTION_ARG): Delete.
2589         (FUNCTION_ARG_ADVANCE): Move code to...
2590         * config/v850/v850.c (v850_function_arg_advance): ...here.
2591         (v850_function_arg): Make static.  Take a const_tree and a bool.
2592         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2593
2594 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2595
2596         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2597         these...
2598         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2599         ...and these...
2600         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2601         ..to here..
2602         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2603         ...and here.
2604         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2605
2606 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2607
2608         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2609         Delete.
2610         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2611         * config/rx/rx.c (rx_function_arg_size): Make static.
2612         (rx_function_arg): Likewise.
2613         (rx_function_arg_advance): New function.
2614         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2615
2616 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2617
2618         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2619         Fix indentation.
2620
2621 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2622
2623         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2624         (dwarf2out_decl) <CONST_DECL>: Likewise.
2625
2626 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2627
2628         Stack usage support
2629         * common.opt (-fstack-usage): New option.
2630         * doc/invoke.texi (Debugging options): Document it.
2631         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2632         allocate_dynamic_stack_space.
2633         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2634         and propagate it to allocate_dynamic_stack_space.
2635         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2636         * calls.c (initialize_argument_information): Pass TRUE as 4th
2637         argument to allocate_dynamic_stack_space.
2638         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2639         to 1 when pushing a variable-sized argument onto the stack.  Pass
2640         TRUE as 4th argument to allocate_dynamic_stack_space.
2641         Update current_function_pushed_stack_size.
2642         (emit_library_call_value_1): Likewise.
2643         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2644         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2645         attempt to find an upper bound.  Remove redundant code for the
2646         SETJMP_VIA_SAVE_AREA case.
2647         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2648         * function.h (struct stack_usage): New structure.
2649         (current_function_static_stack_size): New macro.
2650         (current_function_dynamic_stack_size): Likewise.
2651         (current_function_pushed_stack_size): Likewise.
2652         (current_function_dynamic_alloc_count): Likewise.
2653         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2654         (current_function_allocates_dynamic_stack_space): Likewise.
2655         (struct function): Add new field 'su'.
2656         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2657         add the value of the dynamic offset to the dynamic stack usage.
2658         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2659         for variable-sized objects.
2660         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2661         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2662         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2663         BUILT_IN_ALLOCA for variable-sized objects.
2664         * output.h (output_stack_usage): Declare.
2665         * toplev.c (stack_usage_file): New file pointer.
2666         (output_stack_usage): New function.
2667         (open_auxiliary_file): Likewise.
2668         (lang_dependent_init): Open file if flag_stack_usage is set.
2669         (finalize): Close file if stack_usage_file is not null.
2670         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2671         * config/alpha/alpha.c (compute_frame_size): New function.
2672         (alpha_expand_prologue): Use it.
2673         (alpha_start_function): Likewise.
2674         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2675         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2676         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2677         * config/mips/mips.c (mips_expand_prologue): Likewise.
2678         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2679         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2680         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2681
2682 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2683
2684         PR tree-optimization/45427
2685         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2686         Handle the case that the exit is never taken correctly.
2687         (number_of_iterations_ne): Pass exit_must_be_taken to
2688         number_of_iterations_ne_max.
2689
2690 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2691
2692         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2693         Infer -mdspr2 for the the 74K.
2694
2695 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2696
2697         PR debug/45419
2698         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2699
2700         PR middle-end/45423
2701         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2702         and TRUTH_{AND,OR,XOR}_EXPR.
2703         * c-parser.c (c_parser_omp_atomic): Handle boolean
2704         {PRE,POST}_{INC,DEC}REMENT.
2705
2706 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2707
2708         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2709         (function_arg): Delete.
2710         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2711         (FUNCTION_INCOMING_ARG): Delete.
2712         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2713         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2714         and a bool.
2715         (function_arg): Rename to...
2716         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2717         a bool.
2718         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2719         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2720         (TARGET_FUNCTION_INCOMING_ARG): Define.
2721
2722 2010-08-30  Richard Guenther  <rguenther@suse.de>
2723
2724         PR tree-optimization/21602
2725         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2726         using points-to information.
2727
2728 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
2729
2730         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2731
2732 2010-08-30  Richard Guenther  <rguenther@suse.de>
2733
2734         PR tree-optimization/45449
2735         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2736         variables.
2737
2738 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
2739
2740         * opts.h (CL_ERR_NEGATIVE): Define.
2741         * opts.c (unknown_option_callback): Don't postpone warnings for
2742         options marked with CL_ERR_NEGATIVE.
2743         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2744         for negative versions of CL_REJECT_NEGATIVE options.
2745
2746 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2747
2748         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2749         zero_extendsidi2_32.
2750         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2751         using SWI12 mode iterator.
2752         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2753         to define_insn_and_split pattern.
2754         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2755         using SWI24 mode iterator.
2756         (*zero_extendqi<mode>2_and): Macroize insn from
2757         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2758         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2759         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2760         SWI24 mode iterator.
2761         (*zero_extendqi<mode>2_movzbl): Ditto from
2762         *zero_extendqi{hi,si}2_movzbl.
2763         (extendsidi2_1): Rename from extendsidi2_32.
2764         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2765         SWI12 mode iterator.
2766
2767 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2768
2769         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2770         general purpose registers.
2771         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2772         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2773         with general purpose registers and memory operands.  Add associated
2774         CCImode post-reload splitter.
2775         * config/ia64/div.md: Change BImode to CCImode throughout.
2776
2777 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2778
2779         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2780
2781 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2782
2783         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2784         function was dropping debug insns which caused PR45299.
2785
2786 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2787
2788         * config/i386/sse.md (extsuffix): New code attribute.
2789         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2790         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2791         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2792         and sse4_1_zero_extendv4qiv4si2.
2793         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2794         and sse4_1_zero_extendv2qiv2di2.
2795         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2796         and sse4_1_zero_extendv4hiv4si2.
2797         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2798         and sse4_1_zero_extendv2hiv2di2.
2799         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2800         and sse4_1_zero_extendv2siv2di2
2801
2802         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2803         using any_extend code iterator.
2804         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2805         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2806         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2807
2808         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2809         gen_sse4_1_sign_extend* functions.
2810         (struct builtin_description bdesc_args): Ditto.
2811
2812 2010-08-27  Xinliang David Li  <davidxl@google.com>
2813
2814         PR/45422
2815         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2816         (iv_ca_set_no_cp): Update used inv expr count.
2817         (iv_ca_set_cp): Ditto.
2818         (iv_ca_new): Initialize new member.
2819         (iv_ca_free): Free memory.
2820
2821 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2822
2823         * config/sh/sh-protos.h (sh_function_arg): Delete.
2824         (sh_function_arg_advance): Delete.
2825         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2826         (PASS_IN_REG_P): Eliminate cast.
2827         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2828         const_tree and a bool.
2829         (sh_function_arg): Likewise.
2830         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2831         sh_function_arg.
2832         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2833
2834 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2835             Kaz Kojima  <kkojima@gcc.gnu.org>
2836
2837         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2838         when possible.
2839         (sh_expand_epilogue): Likewise.
2840         * config/sh/sh.md (movml_push_banked): New insn.
2841         (movml_pop_banked): Likewise.
2842
2843 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2844
2845         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2846         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2847         in vector element 0 rather than the original string when there's
2848         only one element.
2849         (gen_regexp): Remove extra semicolon.
2850
2851         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2852         thumb2_movsf_vfp): Set attribute "insn".
2853         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2854         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2855         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2856         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2857         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2858         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2859         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2860         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2861         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2862         if_not_arith, if_arith_not, cond_move_not): Likewise.
2863
2864 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2865
2866         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2867         New declaration.
2868         (rs6000_allocate_stack_temp): Ditto.
2869         (rs6000_expand_convert_si_to_sfdf): Ditto.
2870
2871         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2872         line.  Update the options set if power6 or power7 server/embedded
2873         type options are used.  If we give a warning for no vsx under
2874         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2875         (rs6000_allocate_stack_temp): New function to allocate a stack
2876         tempoary and adjust the address so it meets either REG+OFFSET or
2877         REG+REG addressing requirements.
2878         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2879         that they can be used with the LFIWAX/LFIWZX instrucitons.
2880         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2881         converting signed/unsigned SImode to either SFmode/DFmode.
2882
2883         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2884         whether certain instructions can be generated.
2885         (TARGET_FCTIDZ): Ditto.
2886         (TARGET_STFIWX): Ditto.
2887         (TARGET_LFIWAX): Ditto.
2888         (TARGET_LFIWZX): Ditto.
2889         (TARGET_FCFIDS): Ditto.
2890         (TARGET_FCFIDU): Ditto.
2891         (TARGET_FCFIDUS): Ditto.
2892         (TARGET_FCTIDUZ): Ditto.
2893         (TARGET_FCTIWUZ): Ditto.
2894
2895         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2896         (UNSPEC_FCTID): Ditto.
2897         (UNSPEC_LFIWAX): Ditto.
2898         (UNSPEC_LFIWZX): Ditto.
2899         (UNSPEC_FCTIWUZ): Ditto.
2900         (rreg): Use correct constraints.
2901         (SI_CONVERT_FP): New mode attribute for floating point conversion
2902         tests.
2903         (E500_CONVERT): Ditto.
2904         (lfiwax): New insns for converting from integer to floating point
2905         utilizing newer instructions.  Attempt to optimize conversions
2906         that come from memory so that we don't load the value into a GPR,
2907         spill it to the stack and reload it into a FPR.
2908         (floatsi<mode>2_lfiwax): Ditto.
2909         (floatsi<mode>2_lfiwax_mem): Ditto.
2910         (floatsi<mode>2_lfiwax_mem2): Ditto.
2911         (lfiwzx): Ditto.
2912         (floatunssi<mode>2_lfiwzx): Ditto.
2913         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2914         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2915         (floatdidf2_mem): Ditto.
2916         (floatunsdidf2_fcfidu): Ditto.
2917         (floatunsdidf2_mem): Ditto.
2918         (floatunsdisf2): Ditto.
2919         (floatunsdisf2_fcfidus): Ditto.
2920         (floatunsdisf2_mem): Ditto.
2921         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2922         Use FCFID on 32-bit hosts that support it.
2923         (floatsidf2_internal): Ditto.
2924         (floatunssisf2): Ditto.
2925         (floatunssidf2): Ditto.
2926         (floatunssidf2_internal): Ditto.
2927         (floatsisf2): Ditto.
2928         (floatdidf2): Ditto.
2929         (floatdidf2_fpr): Ditto.
2930         (floatunsdidf2): Ditto.
2931         (floatdisf2): Ditto.
2932         (floatdisf2_fcfids): Ditto.
2933         (floatdisf2_internal1): Ditto.
2934         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2935         SF/DF.  Add power7 support.
2936         (fix_truncsfsi2): Ditto.
2937         (fixuns_truncdfsi2): Ditto.
2938         (fixuns_truncdfdi2): Ditto.
2939         (fix_truncdfsi2): Ditto.
2940         (fix_truncdfsi2_internal): Ditto.
2941         (fix_truncdfsi2_internal_gfxopt): Ditto.
2942         (fix_truncdfsi2_mfpgpr): Ditto.
2943         (fctiwz): Ditto.
2944         (btruncdf2): Ditto.
2945         (btruncdf2_fpr): Ditto.
2946         (btructsf2): Ditto.
2947         (ceildf2): Ditto.
2948         (ceildf2_fpr): Ditto.
2949         (ceilsf2): Ditto.
2950         (floordf2): Ditto.
2951         (floordf2_fpr): Ditto.
2952         (floorsf2): Ditto.
2953         (rounddf2): Ditto.
2954         (rounddf2_fpr): Ditto.
2955         (roundsf2): Ditto.
2956         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2957         (fix_trunc<mode>di2): Ditto.
2958         (fixuns_trunc<mode>si2): Ditto.
2959         (fixuns_trunc<mode>di2): Ditto.
2960         (fctiwz_<mode>): Ditto.
2961         (btrunc<mode>2): Ditto.
2962         (btrunc<mode>2_fpr): Ditto.
2963         (ceil<mode>2): Ditto.
2964         (ceil<mode>2_fpr): Ditto.
2965         (floor<mode>2): Ditto.
2966         (float<mode>2_fpr): Ditto.
2967         (round<mode>2): Ditto.
2968         (round<mode>2_fpr): Ditto.
2969         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2970         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2971         (fix_truncdfsi2_internal): Ditto.
2972         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2973         converted value on stack, loaded into GPR, and then stored into
2974         the final destination.
2975         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2976         FCTIDZ.
2977         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2978         (ftruncdf2): Delete, unused.
2979         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2980
2981         * config/rs6000/vsx.md (toplevel): Update copyright year.
2982         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2983         (VSr3): Ditto.
2984
2985 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2986             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2987
2988         * gengtype.c (output_type_enum): Test the right union member.
2989
2990 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2991
2992         PR target/41484
2993         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2994         operands for operand 1.
2995         (sse4_1_extendv4qiv4si2): Ditto.
2996         (sse4_1_extendv2qiv2di2): Ditto.
2997         (sse4_1_extendv4hiv4si2): Ditto.
2998         (sse4_1_extendv2hiv2di2): Ditto.
2999         (sse4_1_extendv2siv2di2): Ditto.
3000         (sse4_1_zero_extendv8qiv8hi2): Ditto.
3001         (sse4_1_zero_extendv4qiv4si2): Ditto.
3002         (sse4_1_zero_extendv2qiv2di2): Ditto.
3003         (sse4_1_zero_extendv4hiv4si2): Ditto.
3004         (sse4_1_zero_extendv2hiv2di2): Ditto.
3005         (sse4_1_zero_extendv2siv2di2): Ditto.
3006         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
3007         (*sse4_1_extendv4qiv4si2): Ditto.
3008         (*sse4_1_extendv2qiv2di2): Ditto.
3009         (*sse4_1_extendv4hiv4si2): Ditto.
3010         (*sse4_1_extendv2hiv2di2): Ditto.
3011         (*sse4_1_extendv2siv2di2): Ditto.
3012         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
3013         (*sse4_1_zero_extendv4qiv4si2): Ditto.
3014         (*sse4_1_zero_extendv2qiv2di2): Ditto.
3015         (*sse4_1_zero_extendv4hiv4si2): Ditto.
3016         (*sse4_1_zero_extendv2hiv2di2): Ditto.
3017         (*sse4_1_zero_extendv2siv2di2): Ditto.
3018
3019 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3020
3021         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
3022         (mips_function_arg): Delete.
3023         (mips_function_arg_boundary): Take a const_tree.
3024         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
3025         (mips_arg_info): Likewise.
3026         (mips_setup_incoming_varargs): Call mips_function_arg_advance
3027         instead of FUNCTION_ARG_ADVANCE.
3028         (mips_function_arg_advance): Adjust prototype.  Make static.
3029         (mips_function_arg): Likewise.
3030         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3031         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3032
3033 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
3034
3035         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3036         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
3037         (function_arg): Delete.
3038         (function_arg_boundary): Take a const_tree.
3039         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
3040         (rs6000_spe_function_arg): Likewise.
3041         (rs6000_parm_start): Likewise.
3042         (rs6000_arg_size): Likewise.
3043         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
3044         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
3045         (rs6000_mixed_function_arg): Likewise.
3046         (function_arg): Rename to...
3047         (rs6000_function_arg): ...this.
3048         (function_arg_advance): Rename to...
3049         (rs6000_function_arg_advance_1): ...this
3050         (rs6000_function_arg_advance): New function.  Call it.
3051         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
3052         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
3053         (rs6000_function_value): Likewise.
3054         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3055
3056 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3057
3058         * config/arm/arm.md (enabled): Test the value of arch_enabled
3059         rather than just using it.
3060
3061 2010-08-27  Olivier Hainque  <hainque@adacore.com>
3062             Eric Botcazou  <ebotcazou@adacore.com>
3063
3064         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
3065         cover all the possible offsets from this base.
3066         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
3067
3068 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
3069
3070         PR tree-optimization/44485
3071         * calls.c (flags_from_decl_or_type): For const or pure
3072         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
3073         together with ECF_CONST resp. ECF_PURE.
3074         * builtins.c (expand_builtin): Use flags_from_decl_or_type
3075         instead of querying flags directly.
3076         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
3077         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3078
3079 2010-08-26  Richard Guenther  <rguenther@suse.de>
3080
3081         PR tree-optimization/45255
3082         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
3083         and externals are also invariant.
3084
3085 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3086
3087         PR rtl-optimization/44858
3088         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
3089         newi2pat, make sure they don't affect newpat.
3090
3091         PR rtl-optimization/45400
3092         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
3093         SUBREG_REG if both modes are of MODE_INT class.
3094
3095 2010-08-25  Julian Brown  <julian@codesourcery.com>
3096
3097         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
3098         * config/arm/arm.md (generic_sched): No for Cortex-A5.
3099         (generic_vfp): Likewise.
3100         (cortex-a5.md): Include.
3101         * config/arm/cortex-a5.md: New.
3102
3103 2010-08-25  Richard Guenther  <rguenther@suse.de>
3104
3105         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
3106         * gimple.c (gimple_get_alias_set): Remove special handling
3107         for pointers.
3108
3109 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
3110
3111         PR middle-end/45355
3112         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
3113         dead_or_set_p when computing i0_feeds_i2_n.
3114
3115         * combine.c (find_split_point): Undo canonicalization of multiply-add
3116         to (minus x (mult)) when it seems likely that this will increase the
3117         chances of a split.
3118
3119 2010-08-25  Richard Guenther  <rguenther@suse.de>
3120
3121         PR lto/44562
3122         * lto-streamer.c (lto_record_common_node): Do not mess with
3123         TYPE_CANONICAL when not in lto.
3124         * gimple.c (gimple_register_type): Likewise.
3125
3126 2010-08-25  Richard Guenther  <rguenther@suse.de>
3127
3128         PR tree-optimization/45316
3129         * tree-ssa-pre.c (eliminate): Properly clean EH info.
3130
3131 2010-08-25  Richard Guenther  <rguenther@suse.de>
3132
3133         PR tree-optimization/45393
3134         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
3135         and clean EH info.  Avoid SSA update.
3136         (execute_cse_sincos): Cleanup the CFG if it has changed.
3137
3138 2010-08-25  Richard Guenther  <rguenther@suse.de>
3139
3140         PR middle-end/45379
3141         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
3142         TARGET_MEM_REF in alignment computation.
3143
3144 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
3145
3146         PR tree-optimization/45059
3147         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
3148         type conversions from newop{1,2}.  Assert t is a comparison and
3149         newop{1,2} after the stripping are gimple vals.
3150
3151 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
3152
3153         * config/arm/iterators.md (VU, SE, V_widen_l): New.
3154         (V_unpack, US): New.
3155         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
3156         (vec_unpack<US>_lo_<mode>): Likewise.
3157         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
3158         (neon_vec_unpack<US>_lo_<mode>): Likewise.
3159         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
3160         (vec_widen_<US>mult_hi_<mode>): Likewise.
3161         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
3162         (neon_vec_<US>mult_hi_<mode>"): Likewise.
3163         (neon_unpack<US>_<mode>): Widening move intermediate step for
3164         vectorizing without -mvectorize-with-neon-quad.
3165         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
3166         for vectorizing without -mvectorize-with-neon-quad.
3167         * config/arm/predicates.md (vect_par_constant_high): Check for
3168         high-half lanes of a vector.
3169         (vect_par_constant_low): Check for low-half lanes of a vector.
3170
3171 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3172
3173         * tree-if-conv.c (struct ifc_dr): New.
3174         (IFC_DR): New.
3175         (DR_WRITTEN_AT_LEAST_ONCE): New.
3176         (DR_RW_UNCONDITIONALLY): New.
3177         (memref_read_or_written_unconditionally): Use the cached values
3178         when possible.
3179         (write_memref_written_at_least_once): Same.
3180         (if_convertible_loop_p): Initialize and free DR->aux fields.
3181
3182 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3183
3184         * gimple.c (gimple_could_trap_p_1): Not static anymore.
3185         Pass an extra bool parameter include_mem.
3186         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3187         (gimple_assign_rhs_could_trap_p): Same.
3188         * gimple.h (gimple_could_trap_p_1): Declared.
3189         * tree-data-ref.h (same_data_refs_base_objects): New.
3190         (same_data_refs): New.
3191         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3192         (write_memrefs_written_at_least_once): New.
3193         (ifcvt_memrefs_wont_trap): New.
3194         (operations_could_trap): New.
3195         (ifcvt_could_trap_p): New.
3196         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3197         Gets a vector of data refs.
3198         (if_convertible_stmt_p): Same.
3199         (if_convertible_loop_p_1): New.
3200         (if_convertible_loop_p): Call if_convertible_loop_p_1.
3201
3202 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3203
3204         * common.opt (ftree-loop-if-convert-stores): New flag.
3205         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3206         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
3207         the created statement before GSI.
3208         (if_convertible_phi_p): Allow virtual phi nodes when
3209         flag_loop_if_convert_stores is set.
3210         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3211         Do not handle types that do not match is_gimple_reg_type.
3212         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
3213         when flag_loop_if_convert_stores is set, as LHS can contain
3214         memory refs.
3215         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
3216         to if_convertible_gimple_assign_stmt_p.
3217         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3218         (replace_phi_with_cond_gimple_assign_stmt): Renamed
3219         predicate_scalar_phi.  Do not handle virtual phi nodes.
3220         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3221         Call predicate_scalar_phi.
3222         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3223         just after the labels for flag_loop_if_convert_stores, otherwise
3224         insert the predicate in the end of the BB.
3225         (predicate_mem_writes): New.
3226         (combine_blocks): Call predicate_all_scalar_phis.  When
3227         flag_loop_if_convert_stores is set, call predicate_mem_writes.
3228         (tree_if_conversion): Call mark_sym_for_renaming when
3229         flag_loop_if_convert_stores is set.
3230         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3231         flag_loop_if_convert_stores is set.
3232
3233 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
3234
3235         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3236         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3237         (pa_function_value): Make static.
3238         (override_options): Rename to...
3239         (pa_option_override): ...this. Make static.
3240         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3241         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3242         TARGET_OPTION_OVERRIDE): Define.
3243         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3244         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3245         Remove.
3246         * config/pa/pa-protos.h (override_options): Remove.
3247
3248 2010-08-24  Richard Guenther  <rguenther@suse.de>
3249
3250         PR middle-end/45379
3251         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3252         if addr->index is NULL or zero.
3253         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3254         TARGET_MEM_REF more properly.
3255         (indirect_ref_may_alias_decl_p): Likewise.
3256         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3257         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3258
3259 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
3260
3261         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3262         (m32c_override_options): Rename to...
3263         (m32c_option_override): ...this. Make static.
3264         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3265         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3266         Remove.
3267         * config/m32c/m32c-protos.h (m32c_override_options,
3268         m32c_function_value_regno_p): Remove.
3269
3270 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3271
3272         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3273         Fix a typo in a previous commit.
3274
3275 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
3276
3277         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3278         Pre-initialize innerloop_iters to one.
3279
3280 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3281
3282         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3283         existing static function global.
3284
3285         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3286         is changed to global.
3287
3288         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3289         may_be_nonaddressable_p on base, and don't collect this reference
3290         if the address of the base could not be taken.
3291
3292 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3293
3294         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3295         enable the compiler to autovectorize mathmetical functions for
3296         power7 using the Mathematical Acceleration Subsystem library.
3297
3298         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3299         handle which vector math library we have.
3300         (rs6000_override_options): Add -mveclibabi=mass support.
3301         (rs6000_builtin_vectorized_libmass): New function to handle auto
3302         vectorizing math functions that are in the MASS library.
3303         (rs6000_builtin_vectorized_function): Call it.
3304
3305         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3306         -mveclibabi=mass.
3307
3308 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3309
3310         PR boehm-gc/34544
3311         * gthr-posix.h (__gthread_active_init): Delete.
3312         (__gthread_active_p): Do activity check here.
3313         Don't include errno.h on hppa-hpux.  Update comment.
3314         * gthr-posix95.h (__gthread_active_init): Delete.
3315         (__gthread_active_p): Do activity check here.
3316         Don't include errno.h on hppa-hpux.  Update comment.
3317         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3318         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3319         add -lpthread when -mt or -pthread is specified.
3320         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3321         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3322         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3323         (stublib.c, pthread_default_stacksize_np-stub.o,
3324         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3325         $(T)libgcc_stub.a): Add methods.
3326         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3327         (stublib.c, pthread_default_stacksize_np-stub.o,
3328         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3329         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3330         pthread_mutex_unlock): New stubs.
3331
3332 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3333
3334         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3335         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3336         options.
3337         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3338         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3339         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3340         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3341         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3342         "-l".
3343         * cppspec.c: Include opts.h.
3344         (lang_specific_driver): Use cl_decoded_option structures.
3345         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3346         * doc/tm.texi: Regenerate.
3347         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3348         (driver_handle_option): Allow driver options needing no special
3349         processing.
3350         (process_command): Decode options before call to
3351         lang_specific_driver.  Pass decoded options to
3352         lang_specific_driver.
3353         * gcc.h (lang_specific_driver): Update prototype.
3354         * gccspec.c: Include opts.h.
3355         (lang_specific_driver): Use cl_decoded_option structures.
3356         * opts-common.c (option_ok_for_language, generate_option,
3357         generate_option_input_file): New.
3358         (decode_cmdline_option): Use option_ok_for_language.
3359         (decode_cmdline_options_to_array): Use generate_option_input_file.
3360         (handle_generated_option): Use generate_option.
3361         * opts.h (generate_option, generate_option_input_file): Declare.
3362
3363 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3364
3365         * config/mips/mips.c (mips_override_options): Rename to...
3366         (mips_option_override): ...this. Make static.
3367         (TARGET_OPTION_OVERRIDE): Define.
3368         (mips_in_small_data_p): Update comment.
3369         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3370         (FIXED_REGISTERS): Update comment.
3371         * config/mips/mips-protos.h (mips_override_options): Remove.
3372
3373 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3374
3375         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3376
3377 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3378
3379         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3380         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3381
3382 2010-08-20  Jan Hubicka  <jh@suse.cz>
3383
3384         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3385         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3386         heap allocated.
3387         (record_cdtor_fn): Move to ipa.c; do not test for
3388         have_ctors_dtors.
3389         (build_cdtor): Move to ipa.c; add code avoiding construction
3390         when target have ctors/dtors and there is only one ctor/dtor at given
3391         priority.
3392         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3393         sort; reverse order of constructors.
3394         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3395         (cgraph_finalize_function): Do not call record_cdtor_fn.
3396         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3397         (cgraph_build_static_cdtor): Move to ipa.c.
3398         * ipa.c: Include target.h and tree-iterator.h.
3399         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3400         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3401         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3402         pass_ipa_cdtor_merge): New.
3403         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3404         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3405         bounds access.
3406
3407 2010-08-20  Jan Hubicka  <jh@suse.cz>
3408
3409         PR c++/45307
3410         PR c++/17736
3411         * cgraph.h (cgraph_only_called_directly_p,
3412         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3413         static cdtors.
3414         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3415         are not needed.
3416         (cgraph_finalize_function): Static cdtors are reachable.
3417         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3418
3419 2010-08-20  Jan Hubicka  <jh@suse.cz>
3420
3421         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3422         flag_wpa.
3423         * lto-streamer-out.c (lto_output): Likewise.
3424         * passes.c (ipa_write_optimization_summaries): Initialize statement
3425         uids.
3426
3427 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3428
3429         * tree.h (alias_diag_flags): New enum.
3430         (alias_pair): Add an 'emitted_diags' field.
3431         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3432         (assemble_alias): Initialize emitted_diags of new pairs.
3433
3434 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3435
3436         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3437         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3438         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3439         (STACK_CHECK_PROTECT): Define.
3440         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3441         (output_probe_stack_range): Likewise.
3442         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3443         builtin stack checking is enabled.
3444         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3445         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3446         (probe_stack_range): New insn.
3447
3448 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3449
3450         PR target/45336
3451         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3452         short first.
3453
3454         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3455         char first.
3456
3457 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3458
3459         PR target/45336
3460         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3461         to cover zero extension into 64-bit register.
3462         (*sse2_pextrw): Likewise.
3463         (*sse4_1_pextrd_zext): New insn.
3464
3465 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3466
3467         revert r163410, partially revert r163267.
3468         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3469         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3470         Darwin versions.
3471
3472 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3473
3474         PR middle-end/44974
3475         * builtins.c (expand_builtin): Don't optimize away
3476         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3477
3478 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3479
3480         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3481         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3482         alternative 1 of operand 2.
3483
3484 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3485             Paolo Bonzini  <bonzini@gnu.org>
3486
3487         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3488         (sign_extend (zero_extend (...)) and
3489         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3490
3491 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3492
3493         PR rtl-optimization/45353
3494         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3495         after bb_note is a BARRIER.
3496
3497 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3498
3499         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3500         linking libgcc.a.
3501
3502 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3503             Michael Matz  <matz@suse.de>
3504
3505         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3506
3507 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3508
3509         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3510         (ggc_mark_roots): ...here.
3511
3512 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3513
3514         * vec.h (FOR_EACH_VEC_ELT): Define.
3515         * c-decl.c: Use it.
3516         * cfgloop.c: Likewise.
3517         * cfgloopmanip.c: Likewise.
3518         * cgraph.c: Likewise.
3519         * cgraphunit.c: Likewise.
3520         * combine.c: Likewise.
3521         * config/bfin/bfin.c: Likewise.
3522         * config/mips/mips.c: Likewise.
3523         * config/rs6000/rs6000.c: Likewise.
3524         * dbxout.c: Likewise.
3525         * df-scan.c: Likewise.
3526         * dominance.c: Likewise.
3527         * dse.c: Likewise.
3528         * dwarf2out.c: Likewise.
3529         * except.c: Likewise.
3530         * expr.c: Likewise.
3531         * function.c: Likewise.
3532         * gcse.c: Likewise.
3533         * genattr.c: Likewise.
3534         * ggc-common.c: Likewise.
3535         * gimplify.c: Likewise.
3536         * graphite-blocking.c: Likewise.
3537         * graphite-clast-to-gimple.c: Likewise.
3538         * graphite-dependences.c: Likewise.
3539         * graphite-interchange.c: Likewise.
3540         * graphite-poly.c: Likewise.
3541         * graphite-scop-detection.c: Likewise.
3542         * graphite-sese-to-poly.c: Likewise.
3543         * graphite.c: Likewise.
3544         * haifa-sched.c: Likewise.
3545         * ifcvt.c: Likewise.
3546         * implicit-zee.c: Likewise.
3547         * ipa-prop.c: Likewise.
3548         * ipa-struct-reorg.c: Likewise.
3549         * ipa.c: Likewise.
3550         * ira-build.c: Likewise.
3551         * ira-color.c: Likewise.
3552         * ira-emit.c: Likewise.
3553         * lambda-code.c: Likewise.
3554         * loop-invariant.c: Likewise.
3555         * loop-unroll.c: Likewise.
3556         * lower-subreg.c: Likewise.
3557         * lto-cgraph.c: Likewise.
3558         * lto-opts.c: Likewise.
3559         * lto-streamer-in.c: Likewise.
3560         * lto-streamer-out.c: Likewise.
3561         * lto-streamer.c: Likewise.
3562         * lto-symtab.c: Likewise.
3563         * matrix-reorg.c: Likewise.
3564         * opts.c: Likewise.
3565         * predict.c: Likewise.
3566         * print-tree.c: Likewise.
3567         * sdbout.c: Likewise.
3568         * sel-sched-dump.c: Likewise.
3569         * sel-sched-ir.c: Likewise.
3570         * sel-sched.c: Likewise.
3571         * sese.c: Likewise.
3572         * stor-layout.c: Likewise.
3573         * tree-cfg.c: Likewise.
3574         * tree-cfgcleanup.c: Likewise.
3575         * tree-chrec.c: Likewise.
3576         * tree-data-ref.c: Likewise.
3577         * tree-emutls.c: Likewise.
3578         * tree-inline.c: Likewise.
3579         * tree-into-ssa.c: Likewise.
3580         * tree-loop-distribution.c: Likewise.
3581         * tree-loop-linear.c: Likewise.
3582         * tree-mudflap.c: Likewise.
3583         * tree-outof-ssa.c: Likewise.
3584         * tree-parloops.c: Likewise.
3585         * tree-predcom.c: Likewise.
3586         * tree-pretty-print.c: Likewise.
3587         * tree-scalar-evolution.c: Likewise.
3588         * tree-ssa-live.c: Likewise.
3589         * tree-ssa-loop-im.c: Likewise.
3590         * tree-ssa-loop-ivcanon.c: Likewise.
3591         * tree-ssa-loop-ivopts.c: Likewise.
3592         * tree-ssa-loop-manip.c: Likewise.
3593         * tree-ssa-loop-niter.c: Likewise.
3594         * tree-ssa-loop-prefetch.c: Likewise.
3595         * tree-ssa-phiprop.c: Likewise.
3596         * tree-ssa-pre.c: Likewise.
3597         * tree-ssa-reassoc.c: Likewise.
3598         * tree-ssa-sccvn.c: Likewise.
3599         * tree-ssa-structalias.c: Likewise.
3600         * tree-ssa.c: Likewise.
3601         * tree-vect-data-refs.c: Likewise.
3602         * tree-vect-loop-manip.c: Likewise.
3603         * tree-vect-loop.c: Likewise.
3604         * tree-vect-patterns.c: Likewise.
3605         * tree-vect-slp.c: Likewise.
3606         * tree-vect-stmts.c: Likewise.
3607         * tree-vrp.c: Likewise.
3608         * tree.c: Likewise.
3609         * value-prof.c: Likewise.
3610         * var-tracking.c: Likewise.
3611         * varasm.c: Likewise.
3612         * vmsdbgout.c: Likewise.
3613
3614 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3615             Richard Guenther  <richard.guenther@gmail.com>
3616
3617         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3618         copy the src value and return a copy.
3619         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3620         (C++ Volatiles): Adjust to describe C++ semantics only.
3621
3622 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
3623
3624         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3625         be zero or nonzero.
3626         * doc/tm.texi: Regenerate.
3627         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3628         * df-scan.c (df_get_exit_block_use_set), reginfo.c
3629         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3630         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3631         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3632         to 1.
3633
3634 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3635
3636         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3637         an extra nop past a sibling call at the very end.
3638
3639 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3640
3641         PR bootstrap/45350
3642         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
3643         a comment.
3644
3645 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3646
3647         * target.def (function_arg, function_incoming_arg): Remove const
3648         qualifier on CUMULATIVE_ARGS parameter.
3649         * targhooks.h (default_function_arg, default_function_incoming_arg):
3650         Likewise.
3651         * targhooks.c (default_function_arg, default_function_incoming_arg):
3652         Likewise.
3653         * config/i386/i386.c (ix86_function_arg): Likewise.
3654
3655 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
3656
3657         PR target/45336
3658         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3659         SIGN_EXTENDs or ZERO_EXTENDs.
3660
3661 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3662
3663         PR target/42172
3664         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
3665         Take its cost into account if nonnull.
3666         (insn_a_feeds_b): New static function.
3667         (combine_instructions): Look for four-insn combinations.
3668         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
3669         them into account when computing all_adjacent and looking for other
3670         uses.
3671         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
3672         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
3673         (try_combine): New arg I0.  Handle four-insn combinations.
3674         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
3675         like ELIM_I1.
3676
3677 2010-08-19  Jason Merrill  <jason@redhat.com>
3678
3679         PR c++/45307
3680         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3681         if ctor is empty.
3682         (gimplify_modify_expr_rhs): Adjust.
3683
3684 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3685
3686         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3687         bitmap_bit_p.
3688         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3689         * dominance.c (iterate_fix_dominators): Likewise.
3690         * dse.c (set_usage_bits): Likewise.
3691         (set_position_unneeded, record_store): Likewise.
3692         * gimple-fold.c (get_maxval_strlen): Likewise.
3693         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3694         * ipa-inline.c (update_caller_keys): Likewise.
3695         * ipa-split.c (verify_non_ssa_vars): Likewise.
3696         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3697         (close_type_exposed_parameter, close_type_full_escape): Likewise.
3698         (close_addressof_down): Likewise.
3699         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3700         (setup_allocno_left_conflicts_size): Likewise.
3701         (ira_reassign_conflict_allocnos): Likewise.
3702         (ira_reassign_pseudos): Likewise.
3703         * ira-emit.c (change_loop): Likewise.
3704         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3705         * lto-streamer-out.c (write_symbol): Likewise.
3706         * predict.c (expr_expected_value_1): Likewise.
3707         * regstat.c (regstat_bb_compute_ri): Likewise.
3708         * sel-sched.c (create_block_for_bookkeeping): Likewise.
3709         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3710         * stmt.c (expand_case): Likewise.
3711         * tree-eh.c (emit_eh_dispatch): Likewise.
3712         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3713         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3714         Likewise.
3715         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3716         (rdg_build_components): Likewise.
3717         * tree-object-size.c (collect_object_sizes_for): Likewise.
3718         * tree-sra.c (convert_callers): Likewise.
3719         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3720         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3721         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3722
3723 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3724
3725         * config/i386/i386.md (*lea_1): Use P mode iterator.
3726         (lea add splitter): Also handle DImode operands.
3727         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
3728         predicate.  Do not use ix86_lea_for_add_ok.
3729         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
3730         (lea ashift splitter): Also handle DImode operands.
3731         (DImode lea ashift splitter): Remove splitter.
3732
3733 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3734
3735         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
3736         ix86_binary_operator_ok.
3737
3738 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
3739
3740         PR rtl-optimization/44691
3741         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3742         is not a register.
3743
3744 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3745
3746         PR target/45070
3747         * config/arm/arm.c (arm_output_epilogue): Ensure that return
3748          value of size 1-3 is handled correctly.
3749
3750 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3751
3752         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3753         type for the conditional has wide enough range.
3754
3755 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3756
3757         PR target/45327
3758         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3759         ix86_binary_operator_ok.
3760
3761 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3762
3763         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3764         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
3765         code to output insn mnemonic.  Fix comment.
3766         (*addsi_1_zext): Add r-r-0 alternative 1.
3767         <TYPE_LEA>: Split insn to lea.
3768         <default>: Handle alternative 1.
3769         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
3770         multi-level if_then_else RTX to set "type" attribute.
3771         <default>: Handle alternative 2.
3772         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3773         Use cond RTX instead of multi-level if_then_else RTX to set
3774         "type" attribute.
3775         <default>: Handle alternatives 2 and 4.
3776         (lea splitters): Update calls to ix86_lea_for_add_ok.
3777
3778         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3779         argument.
3780         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3781
3782 2010-08-18  Richard Guenther  <rguenther@suse.de>
3783
3784         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3785         use operand helpers.
3786
3787 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3788
3789         PR middle-end/45292
3790         * optabs.c (expand_bool_compare_and_swap): Expand pending
3791         pops before trying the optab.
3792
3793 2010-08-18  Yao Qi  <yao@codesourcery.com>
3794
3795         PR target/45094
3796         * config/arm/arm.c (output_move_double): Fix typo generating
3797         instructions ('ldr'->'str').
3798
3799 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3800
3801         PR rtl-optimization/42575
3802         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3803         live ranges.
3804
3805 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3806
3807         * config/arm/arm-protos.h (arm_expand_sync): New.
3808         (arm_output_memory_barrier, arm_output_sync_insn): New.
3809         (arm_sync_loop_insns): New.
3810         * config/arm/arm.c (FL_ARCH7): New.
3811         (FL_FOR_ARCH7): Include FL_ARCH7.
3812         (arm_arch7): New.
3813         (arm_print_operand): Support %C markup.
3814         (arm_legitimize_sync_memory): New.
3815         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3816         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3817         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3818         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3819         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3820         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3821         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3822         * config/arm/arm.h (struct arm_sync_generator): New.
3823         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3824         (TARGET_HAVE_MEMORY_BARRIER): New.
3825         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3826         * config/arm/arm.md: Include sync.md.
3827         (UNSPEC_MEMORY_BARRIER): New.
3828         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3829         (VUNSPEC_SYNC_OP):New.
3830         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3831         (sync_result, sync_memory, sync_required_value): New attributes.
3832         (sync_new_value, sync_t1, sync_t2): Likewise.
3833         (sync_release_barrier, sync_op): Likewise.
3834         (length): Add logic to length attribute defintion to call
3835         arm_sync_loop_insns when appropriate.
3836         * config/arm/sync.md: New file.
3837
3838 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3839
3840         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3841         ENABLE_TREE_CHECKING.
3842         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3843         and GCC >= 4.3.
3844
3845 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3846
3847         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3848         or optimizing for size, always avoid lea if possible.
3849
3850         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3851
3852 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3853
3854         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3855         Dunmmy function with NULL return unless the target is
3856         OSX >= 10.6 (Darwin10).
3857
3858 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3859
3860         * gcc.c (spec_function): Add remove-outfile.
3861         (remove_outfile_spec_function): New function.
3862         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3863         * invoke.texi (replace-outfile): Document.
3864
3865 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3866
3867         PR target/45296
3868         * reginfo.c (globalize_reg): Reject stack registers.
3869
3870 2010-08-17  Richard Guenther  <rguenther@suse.de>
3871
3872         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3873         list of conditional equivalences.
3874         (free_all_edge_infos): Adjust.
3875         (record_equivalences_from_incoming_edge): Likewise.
3876         (record_cond): Likewise.
3877         (build_and_record_new_cond): Likewise.
3878         (record_conditions): Likewise.
3879         (dom_opt_leave_block): Likewise.
3880
3881 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3882
3883         * doc/invoke.texi (ms-extension): Add documentation.
3884
3885 2010-08-17  Richard Guenther  <rguenther@suse.de>
3886
3887         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3888
3889 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3890
3891         PR c/40563
3892         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3893         (finish_decl): Use it to issue a -Wc++-compat warning about
3894         uninitialized const field in struct or union.
3895
3896         (finish_struct): Use strip_array_types.
3897
3898 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3899
3900         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3901         functions.
3902         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3903         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3904         call block_nreverse here.
3905         (blocks_nreverse): Rename decl temporary to block.
3906
3907 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3908
3909         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3910         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3911         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3912         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3913         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3914         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3915         thumb2_iorsi3): Delete.
3916         (orsi_notsi_si): No longer a named pattern.
3917         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3918         * config/arm/predicates.md (shift_amount_operand): New.
3919         (mult_operator): New.
3920         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3921         attr enabled): New.
3922         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3923         arch matches t2.
3924         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3925         (not_shiftsi_compare0): Likewise, renamed from
3926         arm_notsi_shiftsi_compare0.
3927         (not_shiftsi_compare0_scratch): Likweise, renamed from
3928         arm_notsi_shiftsi_compare0_scratch.
3929         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3930         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3931         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3932         so that the register alternative is disabled when the shift_operator
3933         is MULT.  Use "M" as the constraint for constants.
3934         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3935         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3936         constraint for constants.
3937         (arith_shiftsi_compare0_scratch): Likewise.
3938         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3939         Handle Thumb2 alternative.
3940
3941 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3942
3943         * doc/options.texi (NoDriverArg): Document.
3944         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
3945         -MDX and -MMDX.
3946         * opt-functions.awk (switch_flags): Handle NoDriverArg.
3947         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
3948         marking for CL_NO_DRIVER_ARG options when in the driver.
3949         * opts.h (CL_NO_DRIVER_ARG): Define.
3950         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3951         CL_COMMON): Update values.
3952
3953 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3954
3955         * common.opt: Add driver options.
3956         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
3957         * doc/options.texi (Driver, RejectDriver): Document.
3958         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
3959         print_prog_name, print_multi_directory, print_sysroot,
3960         print_multi_os_directory, print_multi_lib,
3961         print_sysroot_headers_suffix, report_times, combine_flag,
3962         use_pipes, wrapper_string): Remove.
3963         (save_switch, driver_unknown_option_callback,
3964         driver_wrong_lang_callback, driver_post_handling_callback,
3965         driver_handle_option): New.
3966         (spec_lang, last_language_n_infiles): Make file-scope static
3967         instead of local to process_command.
3968         (process_command): Use decode_cmdline_options_to_array and
3969         read_cmdline_option for option processing.  Compute have_c in
3970         prescan of decoded options.
3971         * opt-functions.awk (switch_flags): Handle Driver and
3972         RejectDriver.
3973         (var_type, var_type_struct): Handle Separate options as generating
3974         const char * variables.
3975         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
3976         CL_TARGET to be passed by caller if required.
3977         (decode_cmdline_options_to_array): Update comment.
3978         * opts.c (complain_wrong_lang): Handle options only valid for the
3979         driver.
3980         (decode_options): Update call to decode_cmdline_options_to_array.
3981         (print_filtered_help): Ignore driver-only options.
3982         (print_specific_help): Ignore CL_DRIVER.
3983         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
3984         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
3985         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
3986         Update values.
3987
3988 2010-08-16  Richard Guenther  <rguenther@suse.de>
3989
3990         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3991         TARGET_MEM_REF a bit.
3992         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
3993         (create_mem_ref_raw): Always create TMR_OFFSET, store the
3994         alias pointer type via it.
3995         (copy_mem_ref_info): Adjust.
3996         (maybe_fold_tmr): Likewise.
3997         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
3998         (reference_alias_ptr_type): Likewise.
3999         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
4000         adjust documentation of TMR_OFFSET operand.
4001         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
4002         use the alias pointer type.
4003         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
4004         initialize mem attrs but the TMR itself.
4005         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
4006         similar to MEM_REF.
4007         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
4008         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
4009         (unshare_and_remove_ssa_names): Likewise.
4010         (copy_ref_info): Adjust.
4011         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
4012         TARGET_MEM_REF case.
4013         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
4014         at TMR_ORIGINAL.
4015         * tree.h (TMR_ORIGINAL): Remove.
4016         * gimple.c (get_base_address): For TARGET_MEM_REF with a
4017         symbol return that.
4018         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
4019         with a symbol.
4020         (get_addr_base_and_unit_offset): Likewise.
4021         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
4022         TARGET_MEM_REFs.
4023         (indirect_ref_may_alias_decl_p): Likewise.
4024         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
4025
4026 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
4027
4028         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
4029         with GCC version 4.6, the default setting (when not optimizing
4030         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
4031         been changed to -fomit-frame-pointer.
4032
4033 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
4034
4035         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
4036         Darwin10.  Do not link libgcc.a for Darwin >= 9.
4037
4038 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
4039
4040         * doc/invoke.texi (Warning Options): Fix terminology and markup
4041         in the description of how unknown warning options are handled.
4042
4043 2010-08-15  Ira Rosen  <irar@il.ibm.com>
4044
4045         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
4046         in basic blocks.
4047         (vect_supportable_dr_alignment): Check alignment for basic blocks.
4048         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
4049         data references.
4050         (vect_bb_vectorization_profitable_p): New function.
4051         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
4052         check if it's worthwhile to vectorize the basic block.
4053
4054 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
4055
4056         * reload.h (register_move_cost, memory_move_secondary_cost,
4057         secondary_reload_class): Adjust prototype.
4058         * rtl.h (reg_class_subset_p): Adjust prototype.
4059         * reload.c (secondary_reload_class): Change arguments type from
4060         enum reg_class to reg_class_t. Change result type to reg_class_t.
4061         * reginfo.c (register_move_cost, reg_class_subset_p): Change
4062         arguments type from enum reg_class to reg_class_t.
4063         (memory_move_secondary_cost): Change arguments type from
4064         enum reg_class to reg_class_t. Change type of saved_flags to
4065         reg_class_t.
4066
4067         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4068         Remove macros.
4069         (mips_cost): Remove.
4070         (struct mips_rtx_cost_data): Moved to mips.c.
4071         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
4072         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
4073         (mips_cost): Make static.
4074         (mips_canonicalize_move_class): Change argument type to reg_class_t.
4075         Change result type to reg_class_t.
4076         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
4077         type from enum reg_class to reg_class_t.
4078         (mips_register_move_cost): Make static. Change arguments
4079         type from enum reg_class to reg_class_t.
4080         (mips_memory_move_cost): New function.
4081         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
4082
4083 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
4084
4085         PR rtl-optimization/43358
4086         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
4087         of a single hard register, using simplify_subreg_regno to decide
4088         what that register should be.
4089
4090 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
4091
4092         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
4093         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
4094         (loongson_pmull<V_suffix>): Rename to...
4095         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
4096
4097 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
4098
4099         * configure.ac: Enable -fomit-frame-pointer on darwin
4100         which support dwarf2.
4101         * config/i386/i386.c (override_options): Same.
4102
4103 2010-08-13  Jie Zhang  <jie@codesourcery.com>
4104
4105         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
4106
4107 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
4108
4109         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
4110         -MMD.
4111
4112 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
4113
4114         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
4115         up dot_prod pattern searching if a stmt is outside the loop.
4116
4117 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
4118             Uros Bizjak  <ubizjak@gmail.com>
4119
4120         * config.gcc: Handle --enable-frame-pointer.
4121
4122         * configure.ac: Add --enable-frame-pointer.
4123         * configure: Regenerated.
4124
4125         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
4126         (override_options): If not configured with --enable-frame-pointer,
4127         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
4128         optimizing for size), -fasynchronous-unwind-tables and
4129         -maccumulate-outgoing-args by default.
4130
4131 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4132
4133         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
4134
4135         PR middle-end/45262
4136         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
4137         -a overflows.  Normalize the range.
4138
4139 2010-08-12  Richard Guenther  <rguenther@suse.de>
4140
4141         PR tree-optimization/45232
4142         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
4143         for types with undefined overflow.
4144         (reassociate_bb): Allow re-associating of bit and min/max
4145         operations for types with undefined overflow.
4146         * tree-ssa-forwprop.c (associate_plusminus): New function.
4147         (tree_ssa_forward_propagate_single_use_vars): Call it.
4148
4149 2010-08-12  Richard Guenther  <rguenther@suse.de>
4150
4151         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
4152         * tree-ssa-alias.c (get_ptr_info): Move ...
4153         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
4154         align and misalign fields conservatively.
4155         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
4156         derive alignment information.
4157         (evaluate_stmt): Derive alignment information from memory
4158         allocation functions.
4159         * tree.h (get_pointer_alignment): Make unsigned.
4160         * builtins.c (get_object_alignment): Use alignment information we
4161         have computed for pointers.
4162         (get_pointer_alignment): Likewise.  Make conservative, return
4163         and unsigned value.
4164         (expand_builtin_strlen): Adjust.
4165         (expand_builtin_memcmp): Likewise.
4166         (expand_builtin_strcmp): Likewise.
4167         (expand_builtin_strncmp): Likewise.
4168         (get_builtin_sync_mem): Use at least mode alignment.
4169         (fold_builtin_memset): Adjust.
4170         (fold_builtin_memory_op): Likewise.
4171         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
4172         information also dump pointer alignment knowledge.
4173         (dump_gimple_stmt): Likewise.
4174
4175 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
4176
4177         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
4178         (EMPTY_FIELD_BOUNDARY): Remove.
4179         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
4180
4181 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
4182
4183         PR debug/45259
4184         * caller-save.c (save_call_clobbered_regs): Only swap notes with
4185         DEBUG_INSNs if n_regs_saved.
4186
4187 2010-08-12  Wei Guozhi  <carrot@google.com>
4188
4189         PR target/44999
4190         * config/arm/arm.md (andsi3): Change to zero extension if possible.
4191         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
4192
4193 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
4194
4195         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
4196
4197         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
4198
4199 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4200
4201         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
4202         the case removed in the previous patch, when the only phi argument
4203         is defined in the same loop as the phi node itself.  Handle it
4204         separately from the invariant case by both propagating it outside
4205         the region and replacing the phi node with an assign.
4206
4207 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4208
4209         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
4210         constant phi nodes with one argument are is_gimple_min_invariant
4211         and SSA_NAME_IS_DEFAULT_DEF.
4212
4213 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4214
4215         * graphite-cloog-util.c (oppose_constraint):
4216         Extend loop counter's value range (CLOOG_ORG).
4217         (cloog_matrix_to_ppl_constraint): Same.
4218         (new_Constraint_System_from_Cloog_matrix): Same.
4219         * graphite-cloog-compat.h (matrix_num_type): New.
4220
4221 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4222
4223         * graphite.c (graphite_initialize): Do not initialize
4224         CLooG and initialize the Parma Polyhedra Library
4225         manually when using CLOOG_ORG.
4226         (graphite_finalize): Do not finalize CLooG and finalize
4227         the Parma Polyhedra Library manually when using CLOOG_ORG.
4228         * graphite-cloog-compat.h (cloog_initialize): Hide function
4229         when using CLOOG_ORG.
4230         (cloog_finalize): Same.
4231
4232 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4233
4234         * graphite-clast-to-gimple.c (free_scattering): Change
4235         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
4236         (CLOOG_ORG).
4237         (build_cloog_prog): Same.
4238         * graphite-cloog-compat.h (cloog_domain): Removed.
4239         (cloog_scattering): New.
4240         (cloog_set_domain): Removed.
4241         (cloog_set_scattering): New.
4242         (cloog_next_domain): Removed.
4243         (cloog_next_scattering): New.
4244         (cloog_set_next_domain): Removed.
4245         (cloog_set_next_scattering): New.
4246         (CloogScatteringList): New.
4247         (CloogScattering): New.
4248         (cloog_scattering_free): New.
4249         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
4250         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
4251         New.
4252
4253 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4254
4255         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
4256         CloogState.
4257         (set_cloog_options): Same.
4258         (print_clast_stmt): Same.
4259         (scop_to_clast): Same.
4260         (print_generated_program): Same.
4261         (gloog): Same.
4262         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
4263         (scop_to_clast): Extend with CloogState.
4264         * graphite-cloog-util.c: Include graphite-cloog-compat.h
4265         (new_Cloog_Domain_from_ppl_Polyhedron):
4266         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
4267         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
4268         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4269         * graphite-cloog-util.h (build_cloog_prog): Same.
4270         * graphite-cloog-copat.h (build_cloog_prog): New.
4271         (CloogState): New.
4272         (cloog_state_malloc): New.
4273         (cloog_state_free): New.
4274         (cloog_loop_malloc): New.
4275         (cloog_options_malloc): New.
4276         (cloog_statement_alloc): New.
4277         (cloog_domain_from_cloog_matrix): New.
4278         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
4279         (new_Cloog_Domain_from_ppl_Polyhedron): New.
4280
4281 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4282
4283         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
4284         type of NAME now depends on used CLooG version.
4285         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
4286         (gcc_type_for_clast_expr): Same.
4287         (print_clast_stmt): Replace pprint with clast_pprint.
4288         * graphite-cloog-compat.h: Provide compatibility macros for
4289         CLooG Legacy.
4290         (clast_name_p): New.
4291         (clast_expr_term): New.
4292         (clast_expr_red): New.
4293         (clast_expr_bin): New.
4294         (clast_pprint): New.
4295
4296 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4297
4298         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
4299         compatible to newer CLooG releases (CLOOG_ORG).
4300         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
4301         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
4302         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
4303         (build_cloog_prog) : New.
4304         (cloog_program_extract_scalars): New.
4305         (cloog_program_scatter): New.
4306
4307 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4308
4309         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
4310         conditionally (CLOOG_ORG).
4311         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
4312         (cloog_statement_usr): New.
4313         (cloog_domain): Same.
4314         (cloog_set_domain): Same.
4315         (cloog_next_domain): Same.
4316         (cloog_set_next_domain): Same.
4317         (cloog_program_nb_scattdims): Same.
4318         (cloog_program_set_nb_scattdims): Same.
4319         (cloog_program_names): Same.
4320         (cloog_program_set_names): Same.
4321         (cloog_program_set_context): Same.
4322         (cloog_program_set_loop): Same.
4323         (cloog_program_blocklist): Same.
4324         (cloog_program_set_blocklist): Same.
4325         (cloog_program_scaldims): Same.
4326         (cloog_program_set_scaldims): Same.
4327         (cloog_names_nb_parameters): Same.
4328         (cloog_names_set_nb_parameters): Same.
4329         (cloog_names_parameters): Same.
4330         (cloog_names_set_parameters): Same.
4331         (cloog_names_set_nb_iterators): Same.
4332         (cloog_names_set_iterators): Same.
4333         (cloog_names_set_nb_scattering): Same.
4334         (cloog_names_set_scattering): Same.
4335         (cloog_statement_set_usr): Same.
4336         (cloog_loop_set_next): Same.
4337         (cloog_loop_set_domain): Same.
4338         (cloog_loop_set_block): Same.
4339         (cloog_block_list_next): Same.
4340         (cloog_block_list_set_next):
4341         (cloog_block_list_set_block): Same.
4342
4343 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4344
4345         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
4346         a bool.
4347         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
4348         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
4349         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
4350         when something has been changed.
4351         (rewrite_commutative_reductions_out_of_ssa): Same.
4352
4353 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4354
4355         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
4356         handle the case when def is in the sese region.
4357         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
4358         for invariant expressions.
4359         (rewrite_cross_bb_phi_deps): Removed.
4360         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
4361         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
4362         rewrite_cross_bb_phi_deps.
4363
4364 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4365
4366         * graphite-sese-to-poly.c
4367         (rewrite_commutative_reductions_out_of_ssa_loop): Call
4368         scev_analyzable_p only on is_gimple_reg
4369
4370 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4371
4372         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
4373         (rewrite_close_phi_out_of_ssa): Propagate constant values or
4374         parametric expressions outside the scop region.
4375         (rewrite_cross_bb_scalar_deps): Same.
4376         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
4377
4378 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4379
4380         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
4381         SSA_NAME_DEF_STMT only on SSA_NAMEs.
4382
4383 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4384
4385         * tree-scalar-evolution.c (instantiate_scev_name): Do not
4386         instantiate default definitions.
4387
4388 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
4389             Sebastian Pop  <sebastian.pop@amd.com>
4390
4391         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
4392         (loop_exits_from_bb_p): New.
4393         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
4394         (loop_exits_from_bb_p): Declared.
4395         * graphite-scop-detection.c (scopdet_basic_block_info): Call
4396         loop_exits_to_bb_p.
4397
4398 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4399
4400         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
4401         extra parameter for the region.  Call scev_analyzable_p.
4402         (rewrite_reductions_out_of_ssa): Update call to
4403         rewrite_close_phi_out_of_ssa.
4404         (rewrite_cross_bb_phi_deps): Same.
4405         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
4406         parameter for the region.  Call scev_analyzable_p.
4407         (rewrite_commutative_reductions_out_of_ssa): Update call to
4408         rewrite_commutative_reductions_out_of_ssa_loop.
4409
4410 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4411
4412         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
4413
4414 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4415
4416         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
4417         SSA scalar phi nodes that can be scev_analyzable_p.
4418
4419 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4420
4421         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
4422         handle SSA_NAME_IS_DEFAULT_DEF.
4423
4424 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4425
4426         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
4427
4428 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4429
4430         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
4431         case non close-phi nodes with one argument.
4432
4433 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4434
4435         * sese.h (scev_analyzable_p): Scevs could be expressions without
4436         chrecs and still be scev_analyzable_p.
4437
4438 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4439
4440         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
4441
4442 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4443
4444         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
4445         * cfgloop.h (struct loop): Remove single_iv field.
4446         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
4447         (scop_canonicalize_loops): Removed.
4448         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
4449         over all the loop phi nodes in loop->header.
4450         (build_poly_scop): Remove use of scop_canonicalize_loops.
4451
4452 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4453
4454         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
4455         handle GIMPLE_CALL.
4456
4457 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4458
4459         * tree-chrec.c (chrec_apply): Should only apply to the specified
4460         variable.  Also handle multivariate chains of recurrences that
4461         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
4462
4463 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4464
4465         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
4466         (debug_clast_name_indexes_1): Removed.
4467         (debug_clast_name_indexes): Removed.
4468         (pbb_to_depth_to_oldiv): Removed.
4469         (build_iv_mapping): Replace the use of rename_map with iv_map.
4470         (translate_clast_user): Remove uses of rename_map.  Allocate and
4471         free iv_map.
4472         (translate_clast_for_loop): Remove uses of rename_map.
4473         (translate_clast_for): Same.
4474         (translate_clast_guard): Same.
4475         (translate_clast): Same.
4476         (gloog): Same.
4477         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
4478         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
4479         * sese.c (set_rename): Now static.
4480         (rename_variables_in_stmt): Removed.
4481         (rename_uses): New.
4482         (is_parameter): Removed.
4483         (is_iv): Removed.
4484         (expand_scalar_variables_call): Removed.
4485         (expand_scalar_variables_ssa_name): Removed.
4486         (expand_scalar_variables_expr): Removed.
4487         (expand_scalar_variables_stmt): Removed.
4488         (expand_scalar_variables): Removed.
4489         (rename_variables): Removed.
4490         (remove_condition): Removed.
4491         (get_true_edge_from_guard_bb): Removed.
4492         (get_false_edge_from_guard_bb): Removed.
4493         (struct igp): Removed.
4494         (default_before_guard): Removed.
4495         (convert_for_phi_arg): Removed.
4496         (add_guard_exit_phis): Removed.
4497         (insert_guard_phis): Removed.
4498         (graphite_copy_stmts_from_block): Now also uses iv_map and a
4499         region.  Do not copy conditions.  Do not copy induction variables.
4500         Call rename_uses.
4501         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
4502         the translated statement.  Use the iv_map for the induction
4503         variable renaming.
4504         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4505         (set_rename): Removed declaration.
4506         (scev_analyzable_p): ...here.
4507         * tree-chrec.c (chrec_apply_map): New.
4508         * tree-chrec.h (chrec_apply_map): Declared.
4509
4510 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4511
4512         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
4513         insert_loop_close_phis.
4514         * sese.c (name_defined_in_loop_p): Removed.
4515         (expr_defined_in_loop_p): Removed.
4516         (alive_after_loop): Removed.
4517         (close_phi_not_yet_inserted_p): Removed.
4518         (struct alep): Removed.
4519         (add_loop_exit_phis): Removed.
4520         (insert_loop_close_phis): Removed.
4521
4522 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4523
4524         * graphite-cloog-util.c
4525         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
4526         * graphite-poly.c
4527         (psct_scattering_dim_for_loop_depth): Same.
4528
4529 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4530
4531         * graphite-cloog-util.h: Added cloog.h.
4532         * graphite-blocking.c: Removed cloog.h.
4533         * graphite-dependences.c: Same.
4534         * graphite-interchange.c: Same.
4535         * graphite-poly.c: Same.
4536         * graphite-ppl.c: Same.
4537         * graphite-scop-detection.c: Same.
4538         * graphite-sese-to-poly.c:
4539         Removed cloog.h.
4540         Removed graphite-clast-to-gimple.h.
4541         (check_poly_representation): Removed (unused).
4542         * graphite-sese-to-poly.h
4543         (check_poly_representation): Removed (unused).
4544
4545 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4546
4547         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
4548         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
4549         (graphite-cloog-util.o): New.
4550         (graphite-ppl.o): Added graphite-cloog-util.h.
4551         * graphite-clast-to-gimple.c:
4552         Added graphite-cloog-util.h to include statements.
4553         * graphite-cloog-util.c: New.
4554         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
4555         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4556         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4557         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4558         (insert_constraint_into_matrix): Same.
4559         (ppl_Constrain_System_number_of_constraints): Same.
4560         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4561         (oppose_constraint): Same.
4562         (cloog_matrix_to_ppl_constraint): Same.
4563         (new_Constraint_System_from_Cloog_Matrix): Same.
4564         * graphite-cloog-util.h: New.
4565         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
4566         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4567         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4568         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4569         (insert_constraint_into_matrix): Same.
4570         * graphite-ppl.c:
4571         Added graphite-cloog-util.h to include statements.
4572         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
4573         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4574         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4575         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4576         (insert_constraint_into_matrix): Same.
4577         (ppl_Constrain_System_number_of_constraints): Same.
4578         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4579         (oppose_constraint): Same.
4580         (cloog_matrix_to_ppl_constraint): Same.
4581         (new_Constraint_System_from_Cloog_Matrix): Same.
4582         * graphite-ppl.h:
4583         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
4584         graphite-cloog-util.h.
4585         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4586         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4587         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4588         (insert_constraint_into_matrix): Same.
4589
4590 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4591
4592         * graphite-clast-to-gimple.c
4593         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
4594         (precision_for_interval): Same.
4595         (gcc_type_for_interval): Same.
4596         (compute_type_for_level): Same.
4597         * graphite-interchange.c
4598         (lst_interchange_profitable_p): Same.
4599         * graphite-poly.c
4600         (psct_scattering_dim_for_loop_depth): Same.
4601         * graphite-ppl.c
4602         (ppl_max_for_le_pointset): Same.
4603         (ppl_min_for_le_pointset): Same.
4604
4605 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4606
4607         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
4608         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
4609
4610 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4611
4612         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
4613         rewrite_close_phi_out_of_ssa.
4614
4615 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4616
4617         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
4618
4619 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4620
4621         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
4622         rename_map.
4623         * sese.c (debug_rename_map): Same.
4624         (get_rename): Same.
4625         (set_rename): Same.
4626         (rename_variables_in_stmt): Same.
4627         (expand_scalar_variables_call): Same.
4628         (expand_scalar_variables_ssa_name): Same.
4629         (expand_scalar_variables_expr): Same.
4630         (expand_scalar_variables_stmt): Same.
4631         (expand_scalar_variables): Same.
4632         (rename_variables): Same.
4633         (graphite_copy_stmts_from_block): Same.
4634         (copy_bb_and_scalar_dependences): Same.
4635
4636 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4637
4638         * graphite-clast-to-gimple.c (copy_renames): Removed.
4639         (translate_clast_for): Do not call copy_renames.
4640         (translate_clast_guard): Same.
4641
4642 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4643
4644         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
4645         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
4646         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
4647         before rewrite_cross_bb_scalar_deps.
4648
4649 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4650
4651         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
4652         Early return in when flag_associative_math is not set.
4653
4654 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4655
4656         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
4657         of SSA copies on edges except for loop->latch.
4658
4659 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4660
4661         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
4662         Split out of rewrite_reductions_out_of_ssa.
4663         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
4664         Declared.
4665         * graphite.c (graphite_transform_loops): Call it.
4666
4667 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4668
4669         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
4670
4671 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
4672
4673         * dbgcnt.def (graphite_scop): New counter.
4674         * graphite.c: Include dbgcnt.h.
4675         (graphite_transform_loops): Use new counter to limit transformations.
4676         * Makefile.in (graphite.o): Depend on DBGCNT_H.
4677
4678 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4679
4680         * passes.c (init_optimization_passes): Add pass_graphite.
4681         Schedule a pass_copy_prop before pass_graphite_transforms.
4682         * timevar.def (TV_GRAPHITE): Declared.
4683         * tree-pass.h (pass_graphite): Declared.
4684         * tree-ssa-loop.c (pass_graphite): New.
4685
4686 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4687
4688         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
4689         Remove calls to rename_nb_iterations and rename_sese_parameters.
4690         * graphite-clast-to-gimple.h (gloog): Update declaration.
4691         * graphite.c (graphite_transform_loops): Update call to gloog.
4692         * sese.c (rename_variables_in_expr): Removed.
4693         (rename_nb_iterations): Removed.
4694         (rename_sese_parameters): Removed.
4695         * sese.h (rename_nb_iterations): Removed.
4696         (rename_sese_parameters): Removed.
4697
4698 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4699
4700         * graphite-clast-to-gimple.c (gloog): Remove call to
4701         sese_adjust_liveout_phis.
4702         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
4703         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
4704         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
4705         rewrite_phi_out_of_ssa.
4706         * sese.c (get_vdef_before_sese): Removed.
4707         (sese_adjust_vphi): Removed.
4708         (sese_adjust_liveout_phis): Removed.
4709         * sese.h (sese_adjust_liveout_phis): Removed.
4710
4711 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4712
4713         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
4714         argument for the place after which to insert the out of SSA copy.
4715         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
4716         (rewrite_phi_out_of_ssa): Same.
4717         (rewrite_cross_bb_scalar_deps): Same.
4718         (insert_copyout): Removed.
4719         (insert_copyin): Removed.
4720         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
4721         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
4722         insert_copyin.
4723
4724 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4725
4726         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
4727         (rewrite_reductions_out_of_ssa): Same.
4728         (rewrite_commutative_reductions_out_of_ssa): Same.
4729         (build_poly_scop): Do not call these functions.
4730         * graphite-sese-to-poly.h (build_poly_scop): Declared.
4731         (rewrite_reductions_out_of_ssa): Declared.
4732         (rewrite_commutative_reductions_out_of_ssa): Declared.
4733         * graphite.c (graphite_transform_loops): Call on every scop
4734         rewrite_commutative_reductions_out_of_ssa before calling
4735         rewrite_reductions_out_of_ssa and build_scop_bbs.
4736
4737 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4738
4739         * graphite-dependences.c (dot_deps): Make system call to dotty run
4740         in background.
4741         (dot_deps_stmt): Same.
4742         * graphite-poly.c (dot_lst): Same.
4743
4744 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4745
4746         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
4747         phi_arg_in_outermost_loop.
4748         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
4749         (remove_invariant_phi): Same.
4750
4751 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
4752
4753         * target.def (output_addr_const_extra): New hook.
4754         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
4755         * doc/tm.texi: Regenerate.
4756         * targhooks.c (default_asm_output_addr_const_extra): New function.
4757         * targhooks.h (default_asm_output_addr_const_extra): Declare.
4758         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
4759         target hook.
4760
4761         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4762         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
4763         * config/i386/i386.h (output_addr_const_extra): Rename to...
4764         (i386_asm_output_addr_const_extra): ...this. Make static.
4765         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4766
4767 2010-08-11  Richard Henderson  <rth@redhat.com>
4768
4769         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
4770
4771 2010-08-11  Nick Clifton  <nickc@redhat.com>
4772
4773         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
4774         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
4775         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4776         stormy16-lib2-cmpsi.c.
4777
4778         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
4779         -O2.
4780
4781 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
4782
4783         * opts.h (struct cl_option_handler_func): Make handler take
4784         cl_decoded_option structure as parameter, not individual elements.
4785         (struct cl_option_handlers): Make callbacks take cl_decoded_option
4786         structure as parameter, not individual elements.
4787         (handle_option): Take cl_decoded_option structure as parameter,
4788         not individual elements.
4789         (handle_generated_option): Declare.
4790         * opts-common.c (handle_option): Take cl_decoded_option structure
4791         as parameter, not individual elements.  Update calls to callback
4792         and handler functions.
4793         (handle_generated_option): New.
4794         (read_cmdline_option): Update calls to callback functions and
4795         handle_option.
4796         * opts.c (common_handle_option, complain_wrong_lang,
4797         unknown_option_callback, post_handling_callback,
4798         lang_handle_option, target_handle_option): Take cl_decoded_option
4799         structure as parameter, not individual elements.
4800         (lang_handle_option, target_handle_option, common_handle_option):
4801         Assert option has at most one argument.
4802         (enable_warning_as_error): Call handle_generated_option instead of
4803         handle_option.  Do not pass -Werror argument as argument of
4804         generated option.
4805
4806 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4807
4808         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4809         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4810         (SUBWORD_BOOL_CAS): Likewise.
4811         (SUBWORD_SYNC_OP): Likewise.
4812         (SUBWORD_TEST_AND_SET): Likewise.
4813         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4814         (SUBWORD_SYNC_OP): Likewise.
4815         (OP_AND_FETCH_WORD): Likewise.
4816
4817 2010-08-10  Xinliang David Li  <davidxl@google.com>
4818
4819         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
4820         compute max/min offset in address.
4821
4822 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
4823
4824         * ira-live.c: Include sbitmap.h.
4825         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
4826         Compress live ranges even more.
4827
4828 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4829
4830         * coverage.c (ctr_labels): Delete.
4831
4832 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4833
4834         PR bootstrap/45177
4835         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
4836         test here from arm_gen_load_multiple_1.
4837         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
4838         multiple_operation_profitable_p.
4839
4840 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4841
4842         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
4843         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
4844
4845 2010-08-10  Richard Henderson  <rth@redhat.com>
4846
4847         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
4848         after saving registers.  Assert that SSE registers are only saved
4849         with a sufficiently aligned frame.
4850         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
4851         remove stack_realign_fp handling.
4852         (ix86_expand_prologue): Save int registers before stack_realign_fp,
4853         and do not mark the stack alignment as frame related.
4854         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
4855
4856         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
4857         saves when re-aligning the stack.
4858
4859 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4860
4861         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
4862         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
4863         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
4864
4865 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4866
4867         * dwarf2out.c (struct die_struct): Move die_tag to the end.
4868
4869 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
4870
4871         * config/arm/iterators.md: New file.
4872         * config/arm/arm.md: Include iterators.md.
4873         (QHSI): Move to new file.
4874         (LTUGEU, cnb, optab, ior_xor): Likewise.
4875         * config/arm/iwmmxt.md (VMMX): Move to new file.
4876         (VSHFT, MMX_char): Likewise.
4877         * config/arm/neon.md (VD): Move to new file.
4878         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
4879         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
4880         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
4881         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
4882         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
4883         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
4884         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
4885         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
4886         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
4887         (Is_d_reg, V_mode_nunits): Likewise.
4888         * config/arm/vec-common.md (VALL): Move to new file.
4889         (VALLW, VINT, VINTW): Likewise.
4890
4891 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4892
4893         PR middle-end/45182
4894         * combine.c (make_compound_operation): Don't try to convert
4895         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
4896
4897 2010-08-10  Richard Guenther  <rguenther@suse.de>
4898
4899         * tree.h (get_object_alignment): Adjust prototype.
4900         * builtins.c (get_object_alignment): Return unsigned int,
4901         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
4902         and TARGET_MEM_REF properly.
4903         (get_pointer_alignment): Adjust.
4904         * emit-rtl.c (get_mem_align_offset): Adjust comment.
4905         (set_mem_attributes_minus_bitpos): Adjust.
4906         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
4907
4908 2010-08-10  Richard Guenther  <rguenther@suse.de>
4909
4910         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
4911         (copy_prop_visit_assignment): Simplify.
4912         (copy_prop_visit_stmt): Also visit assignments from
4913         constants.
4914         (copy_prop_visit_phi_node): Use operand_equal_p.
4915
4916 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4917
4918         * ipa-split.c (find_split_points): Free stack.
4919
4920 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4921
4922         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
4923         * tree.c (tree_node_kind): Delete corresponding entries.
4924
4925 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4926
4927         * alias.c (may_alias_p): Remove unused ret.
4928
4929 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
4930
4931         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
4932         alias_sets_conflict_p.
4933         (walk_mems_1): Moved from alias.c.
4934         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
4935         in alias.c.
4936         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
4937         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
4938         * alias.c (walk_mems_2): Moved to ddg.c.
4939         (walk_mems_1): Ditto.
4940         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
4941         to ddg.c.
4942         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
4943         disambiguation.
4944         *(may_alias_p): New function to check whether two memory expression
4945         may alias or not. Currently used in buidling inter-iteration memory
4946         dependence.
4947         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
4948         (insn_alias_sets_conflict_p): Removed
4949         *rtl.h (may_alias_p): New function prototype.
4950
4951 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4952
4953         * tree.c (nreverse): Assert that we don't have a BLOCK.
4954
4955 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4956
4957         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
4958         * config/arm/arm.c (arm_get_pcs_model): Likewise.
4959         * config/avr/avr.c (init_cumulative_args): Likewise.
4960         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4961         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4962         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
4963         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
4964         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
4965         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4966         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
4967         * dwarf2out.c (gen_subprogram_die): Likewise.
4968         * function.c (allocate_struct_function): Likewise.
4969         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
4970         (deserves_ellipsis): Delete.
4971
4972 2010-08-09  Richard Guenther  <rguenther@suse.de>
4973
4974         * tree-ssa-copy.c (cached_last_copy_of): Remove.
4975         (valueize_val): New function.
4976         (get_last_copy_of): Remove.
4977         (set_copy_of_val): Simplify.
4978         (dump_copy_of): Likewise.
4979         (copy_prop_visit_cond_stmt): Use valueize_val.
4980         (copy_prop_visit_phi_node): Properly handle unvisited names.
4981         Drop code managing copy-of chains.
4982         (init_copy_prop): Adjust.
4983         (fini_copy_prop): Likewise.
4984         (execute_copy_prop): Remove obsolete comment.
4985
4986 2010-08-09  Richard Guenther  <rguenther@suse.de>
4987
4988         PR middle-end/44632
4989         * function.c (gimplify_parameters): Do not clear addressable
4990         bit of the original parameter.
4991
4992 2010-08-09  Richard Guenther  <rguenther@suse.de>
4993
4994         PR middle-end/45212
4995         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
4996         alignment from MEM_REF offset only if we took it from the
4997         base object.
4998
4999 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
5000
5001         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
5002
5003 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5004
5005         * c-tree.h (build_arg_info): Declare.
5006         * c-decl.c (build_arg_info): Define.
5007         (get_parm_info): Call it.  Delete initialization code.
5008         * c-parser.c (c_parser_parms_declarator): Likewise.
5009         (c_parser_parms_list_declaractor): Likewise.
5010
5011 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5012
5013         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
5014         (struct c_arg_info): Change type of tags field.
5015         * c-decl.c (grokdeclarator): Update for changed type of tags field.
5016         (get_parm_info): Likewise.
5017         (store_parm_decls_newstyle): Likewise.
5018
5019 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
5020
5021         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
5022         (branch_island_list): Delete.
5023         (branch_islands): Declare.
5024         (add_compiler_branch_island): Adjust for branch_islands instead of
5025         branch_island_list.
5026         (macho_branch_islands): Likewise.
5027         (no_previous_def): Likewise.
5028         (get_prev_label): Likewise.
5029
5030 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5031
5032         PR boehm-gc/34544
5033         * gthr-posix.h (__gthread_start): Delete.
5034         (__gthread_active_init): Use pthread_default_stacksize_np instead of
5035         pthread_create to determine if hpux pthreads are active.
5036         * gthr-posix95.h (__gthread_start): Delete.
5037         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
5038
5039 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
5040
5041         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
5042         _WIN64 not expanded.
5043
5044 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
5045             H.J. Lu  <hongjiu.lu@intel.com>
5046
5047         PR target/45213
5048         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
5049         to output 32bit SFmode immediate as 8 byte sign extended value.
5050
5051 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5052
5053         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
5054         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
5055         (SUBWORD_BOOL_CAS): Likewise.
5056         (SUBWORD_SYNC_OP): Likewise.
5057         (SUBWORD_TEST_AND_SET): Likewise.
5058         (FETCH_AND_OP_WORD): Parenthesise INF_OP
5059         (SUBWORD_SYNC_OP): Likewise.
5060         (OP_AND_FETCH_WORD): Likewise.
5061
5062 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5063
5064         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
5065         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
5066         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
5067         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
5068         generic part.
5069         (cortex_a9_sched_adjust_cost): New function.
5070         (xscale_sched_adjust_cost): New function.
5071         * config/arm/arm-protos.h (struct tune_params): New field
5072         sched_adjust_cost.
5073         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
5074
5075 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
5076
5077         PR target/44942
5078         * config/sparc/sparc.c (function_arg_advance): Always take into account
5079         the padding, if any.
5080
5081 2010-08-06  Richard Guenther  <rguenther@suse.de>
5082
5083         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
5084         (dump_lattice_value): Dump it.
5085         (get_default_value): Adjust.
5086         (get_constant_value): Likewise.
5087         (set_value_varying): Likewise.
5088         (set_lattice_value): Make sure to not go up the lattice
5089         with bitwise constant values.
5090         (get_value_for_expr): Handle ADDR_EXPRs.
5091         (value_to_double_int): New function.
5092         (get_value_from_alignment): Likewise.
5093         (do_dbg_cnt): Adjust.
5094         (ccp_lattice_meet): Handle partially constant values.
5095         (bit_value_unop_1): New function.
5096         (bit_value_binop_1): Likewise.
5097         (bit_value_unop): Likewise.
5098         (bit_value_binop): Likewise.
5099         (evaluate_stmt): Track partially constant values if
5100         flag_tree_bit_ccp is set.
5101         (ccp_fold_stmt): Dump if we folded a predicate.
5102         (ccp_visit_stmt): Adjust.
5103         * common.opt (ftree-bit-ccp): New flag.
5104         * doc/invoke.texi (ftree-bit-ccp): Document.
5105         * opts.c (decode_options): Enable bit-CCP at -O1.
5106
5107 2010-08-06  Alan Modra  <amodra@gmail.com>
5108
5109         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
5110         and -mrelocatable-lib description.
5111
5112 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
5113
5114         From Martin Thuresson  <martint@google.com>
5115         * postreload.c (reload_cse_simplify_operands): Use
5116         SET_REGNO_RAW instead of SET_REGNO.
5117         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
5118         SET_REGNO.
5119         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
5120         instead of SET_REGNO.
5121         * rtl.h (SET_REGNO_RAW): New macro.
5122
5123 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
5124
5125         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
5126         computations.  Fix formatting issues.
5127         (num_sign_bit_copies1): Likewise.
5128         (canonicalize_condition): Likewise.
5129
5130 2010-08-05  Richard Henderson  <rth@redhat.com>
5131
5132         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
5133         (floor_log2): Use clz_hwi.
5134         (exact_log2): Use ctz_hwi.
5135         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
5136         * builtins.c (fold_builtin_bitop): Use them.
5137         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5138         * combine.c (get_pos_from_mask): Use ctz_hwi.
5139         * double-int.c (double_int_ctz): Likewise.
5140         * explow.c (force_reg): Likewise.
5141         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
5142
5143 2010-08-05  Richard Henderson  <rth@redhat.com>
5144
5145         PR target/45189
5146         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
5147         the alignment constant is properly sign-extended.
5148
5149 2010-08-05  Richard Guenther  <rguenther@suse.de>
5150
5151         * expr.c (store_expr): Use emit_block_move only if both
5152         source and target are MEMs.  Use store_bit_field if only
5153         the target is a MEM.
5154
5155 2010-08-05  Richard Henderson  <rth@redhat.com>
5156
5157         PR debug/45188
5158         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
5159         (INCOMING_RETURN_ADDR_RTX): Likewise.
5160         (dwarf2out_do_frame): Remove conditional compilation.
5161         (dwarf2out_frame_init): Likewise.
5162
5163 2010-08-05  Nicolas Setton  <setton@adacore.com>
5164
5165         * gcov.c (flag_display_progress): New static variable.
5166         (main): Display progress info on standard output if requested.
5167         (options): Add -d/--display-progress.
5168         (print_usage): Print them.
5169         (process_args): Handle them.
5170         * doc/gcov.texi: Document them.
5171
5172 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5173
5174         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
5175         (ipcp_insert_stage): Redirect only edges not flagged with
5176         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
5177         discovered constants.
5178
5179 2010-08-05  Martin Jambor  <mjambor@suse.cz>
5180
5181         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
5182         (struct ipa_param_descriptor): New fields types and
5183         cannot_devirtualize.
5184         (ipa_param_cannot_devirtualize_p): New function.
5185         (ipa_param_types_vec_empty): Likewise.
5186         (ipa_make_edge_direct_to_target): Declare.
5187         * ipa-cp.c: Fixed first stage driver name in initial comment,
5188         described devirtualization there too.
5189         (ipcp_analyze_node): Call ipa_analyze_params_uses.
5190         (ipcp_print_all_lattices): Print devirtualization info.
5191         (ipa_set_param_cannot_devirtualize): New function.
5192         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
5193         lattice to BOTTOM.
5194         (ipcp_init_stage): Merged into...
5195         (ipcp_generate_summary): ...its caller.
5196         (ipcp_change_tops_to_bottom): Also process type lists.
5197         (ipcp_add_param_type): New function.
5198         (ipcp_copy_types): Likewise.
5199         (ipcp_propagate_types): Likewise.
5200         (ipcp_propagate_stage): Also propagate types.
5201         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
5202         Also return true if propagated types require it.
5203         (ipcp_update_callgraph): Dump redirection info.
5204         (ipcp_process_devirtualization_opportunities): New function.
5205         (ipcp_const_param_count): Include known type information.
5206         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
5207         on new node.  Fixed formatting.
5208         * ipa-prop.c (make_edge_direct_to_target): Renamed to
5209         ipa_make_edge_direct_to_target and changed all callers.  Made
5210         externally visible.
5211         (ipa_node_duplication_hook): Duplicate types vector.
5212         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
5213         redirect outgoing calls for which we can't get a decl from the
5214         statement.  Check that we can get a decl from the call statement.
5215         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
5216         ipa_analyze_params_uses only when ipa-cp is disabled.
5217         * tree-inline.c (get_indirect_callee_fndecl): Removed.
5218         (expand_call_inline): Do not call get_indirect_callee_fndecl.
5219         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
5220         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
5221
5222 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5223
5224         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
5225         temporary. Emit move from temporary to accum, so REG_EQUAL note will
5226         be attached to this insn in correct mode.
5227
5228 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
5229
5230         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
5231         using REGNO of base_reg directly.
5232
5233 2010-08-05  Jie Zhang  <jie@codesourcery.com>
5234
5235         PR tree-optimization/45144
5236         * tree-sra.c (type_consists_of_records_p): Return false
5237         if the record contains bit-field.
5238
5239 2010-08-04  Richard Henderson  <rth@redhat.com>
5240
5241         * config/i386/i386.c (struct ix86_frame): Remove padding and
5242         to_allocate members.
5243         (ix86_compute_frame_layout): Don't store them.
5244         (ix86_can_use_return_insn_p): Use a more direct and more obviously
5245         correct condition for the position of the stack pointer.
5246         (ix86_expand_prologue): Compute remaining stack allocation based
5247         on the ultimate stack pointer offset.
5248         (ix86_expand_epilogue): Use more obvious expressions testing for
5249         the stack pointer already pointing to the saved registers.
5250
5251         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
5252         duplication deconstructing the frame pointer.  Simplify
5253         deallocation of the local stack frame.
5254
5255         * reg-notes.def (CFA_EXPRESSION): New.
5256         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5257         (dwarf2out_frame_debug_cfa_expression): New.
5258         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
5259
5260         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
5261         * config/i386/i386.c (ix86_expand_prologue): Set it.
5262         (ix86_expand_epilogue): Clear it.
5263         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
5264         context, add REG_CFA_EXPRESSION notes.
5265
5266         * config/i386/i386.h (struct machine_frame_state): Rename from
5267         machine_cfa_state.  Add members tracking SP and FP regardless
5268         of the current CFA register.
5269         (ix86_cfa_state): Remove.
5270         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
5271         and sse_reg_save_offset members.
5272         (ix86_compute_frame_layout): Set them.
5273         (gen_push): Increment sp_offset too.
5274         (choose_baseaddr_len, choose_baseaddr): New.
5275         (ix86_emit_save_reg_using_mov): New.
5276         (ix86_emit_save_regs_using_mov): Use it.
5277         (ix86_emit_save_sse_regs_using_mov): Likewise.
5278         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
5279         compare vs the saved red_zone_offset.
5280         (pro_epilogue_adjust_stack): Adjust sp_offset.
5281         (ix86_adjust_stack_and_probe): Likewise.
5282         (ix86_expand_prologue): Set up, use, and validate the new
5283         frame_state_info members.  Use gen_frame_mem.
5284         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
5285         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
5286         new frame_state_info members.
5287         (ix86_emit_leave): Likewise.
5288         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
5289         out-of-range stack pointer offsets here.
5290         (ix86_emit_restore_sse_regs_using_mov): Likewise.
5291         (ix86_expand_epilogue): Use and validate the new frame_state_info
5292         members.  Break up and simplify the logic selecting the
5293         restore_regs_via_mov code path.  Ensure that there will be no
5294         out-of-range stack pointer offsets.
5295
5296         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
5297
5298         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
5299         argument name to reflect the expected tree; fix indentation.
5300         (ix86_asm_output_function_label): Output the entire 32-bit
5301         ms_hook here as bytes ...
5302         (ix86_expand_prologue): ... not here as insns.  Attach the
5303         unwind info for the ms_hook to a blockage insn.
5304         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
5305         (ix86_ms_bitfield_layout_p): Fix indentation.
5306         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
5307
5308         * config/i386/i386.c (ix86_using_red_zone): New.
5309         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
5310         ix86_expand_prologue, ix86_force_to_memory): Use it.
5311
5312         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
5313         saving the int registers.
5314
5315         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
5316         and DWARF2_UNWIND_INFO conditional compilation.
5317
5318 2010-08-04  Richard Henderson  <rth@redhat.com>
5319
5320         PR debug/45171
5321         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
5322         an is_naming_typedef_decl.
5323
5324 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
5325
5326         PR rtl-optimization/45162
5327         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
5328         * dce.c (word_dce_process_block): Likewise.
5329
5330 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
5331
5332         PR target/44583
5333         * config/ia64/constraints.md (Z): New.
5334         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
5335         (xfreg_or_signed_fp01_operand): New.
5336         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
5337         with fr_reg_or_signed_fp01_operand and constraint G with Z.
5338         (subsf3): Ditto.
5339         (*maddsf4): Ditto.
5340         (*msubsf4): Ditto.
5341         (adddf3): Ditto.
5342         (adddf3_trunc): Ditto.
5343         (subdf3): Ditto.
5344         (*subdf3_trunc): Ditto.
5345         (*madddf4): Ditto.
5346         (*madddf4_trunc): Ditto.
5347         (*msubdf4): Ditto.
5348         (*msubdf4_trunc): Ditto.
5349         (addxf3): Replace xfreg_or_fp01_operand with
5350         xfreg_or_signed_fp01_operand and constraint G with Z.
5351         (*addxf3_truncsf): Ditto.
5352         (*addxf3_truncdf): Ditto.
5353         (subxf3): Ditto.
5354         (*subxf3_truncsf): Ditto.
5355         (*subxf3_truncdf): Ditto.
5356         (*maddxf4): Ditto.
5357         (*maddxf4_truncsf): Ditto.
5358         (*maddxf4_truncdf): Ditto.
5359         (*msubxf4): Ditto.
5360         (*msubxf4_truncsf): Ditto.
5361         (*msubxf4_truncdf): Ditto.
5362
5363 2010-08-04  Richard Guenther  <rguenther@suse.de>
5364
5365         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
5366         if either alias-set is zero.
5367
5368 2010-08-04  Richard Guenther  <rguenther@suse.de>
5369
5370         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
5371         * tree-ssa-ccp.c: ... here.
5372         * tree-ssa-copy.c: ... and here.
5373         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
5374         value_range_t): Move ...
5375         * tree-vrp.c: ... here.
5376         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
5377         (substitute_and_fold): Adjust prototype.
5378         * tree-ssa-propagate.c (replace_uses_in): Adjust.
5379         (replace_phi_args_in): Likewise.
5380         (substitute_and_fold): Take callback to query lattice instead
5381         of pointer to lattice.  Replace SSA name defs with lattice
5382         values first.
5383         * tree-ssa-ccp.c (ccp_finalize): Adjust.
5384         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
5385         (get_value): New function.
5386         (fini_copy_prop): Adjust.
5387         * tree-vrp.c (vrp_finalize): Adjust.
5388
5389 2010-08-04  Richard Guenther  <rguenther@suse.de>
5390
5391         PR middle-end/45176
5392         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
5393         points-to set for original MEM_REF.
5394
5395 2010-08-04  Richard Guenther  <rguenther@suse.de>
5396
5397         * tree-ssa-ccp.c (get_constant_value): New function.
5398         (get_rhs_assign_op_for_ccp): Remove.
5399         (valueize_op): New function.
5400         (ccp_fold): Use get_constant_value and valueize_op.
5401         (fold_const_aggregate_ref): Likewise.
5402         (ccp_fold_stmt): Likewise.
5403         (visit_assignment): Simplify.
5404
5405 2010-08-04  Richard Guenther  <rguenther@suse.de>
5406
5407         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
5408         * double-int.h (double_int_ctz): Declare.
5409         * double-int.c (double_int_ctz): New function.
5410
5411 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
5412
5413         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
5414         Define.
5415         picochip_expand_movmemhi : Expand movmem pattern.
5416         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
5417         Declare.
5418         * config/picochip/picochip.md (movmemhi) : New pattern.
5419
5420 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5421
5422         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
5423
5424 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
5425
5426         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
5427         NEG as operand of a MULT by merging it with the other operand.
5428         * combine.c (make_compound_operation): Use trunc_int_for_mode when
5429         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
5430         MULT.
5431         * config/arm/constraints.md (M): Examine only 32 bits of a
5432         HOST_WIDE_INT.
5433         * config/arm/predicates.md (power_of_two_operand): Likewise.
5434
5435 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5436
5437         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
5438         non-NOTE insns.
5439
5440 2010-08-03  Jan Hubicka  <jh@suse.cz>
5441
5442         * ipa-split.c (struct split_point): Add split_part_set_retval.
5443         (find_retval): Forward declare.
5444         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
5445         (consider_split): Compute current->split_part_set_retval.
5446         (visit_bb): Do not look into return value.
5447         (split_function): Handle !split_part_set_retval
5448
5449 2010-08-03  Martin Jambor  <mjambor@suse.cz>
5450
5451         * tree-sra.c (completely_scalarize_record): New parameter REF, create
5452         its own access->expr intead of using build_ref_for_offset.
5453
5454 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
5455
5456         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
5457         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
5458         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
5459         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
5460         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
5461         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
5462         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
5463         DEFAULT_SWITCH_TAKES_ARG.
5464         * config/rx/rx.opt (-patch=): Remove option.
5465         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
5466         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
5467         * doc/invoke.texi (RX Options): Remove -patch=.
5468         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
5469         (option_map): Remove --profile-blocks, --quiet and --silent.
5470
5471 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5472
5473         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
5474         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
5475         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
5476         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5477         Update calls to ix86_expand_compare and ix86_expand_branch.
5478         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
5479         ix86_expand_compare.
5480         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
5481         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5482         Make static.
5483         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
5484         and ix86_compare_op1.  Update calls to ix86_expand_compare.
5485         (ix86_expand_int_movcc): Ditto.
5486         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
5487         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
5488         (ix86_expand_setcc): Ditto.
5489         (ix86_expand_compare): Remove prototype.
5490         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
5491         ix86_compare_op0 and ix86_compare_op1.  Update calls
5492         to ix86_expand_branch to directly pass operands[1] and operands[2].
5493         (cbranchxf4): Ditto.
5494         (cbranch<MODEF:mode>4): Ditto.
5495         (cbranchcc4): Ditto.
5496         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
5497         Update calls to ix86_expand_setcc to directly pass operands[2] and
5498         operands[3].
5499         (cstorexf4): Ditto.
5500         (cstore<MODEF:mode>4): Ditto.
5501         (cstorecc4): Ditto.
5502
5503 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5504
5505         PR target/45063
5506         * caller-save.c (save_call_clobbered_regs): Remove regs from
5507         hard_regs_saved when they are set.
5508
5509 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
5510
5511         PR target/41089
5512         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
5513         as volatile.
5514
5515 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
5516
5517         * common.opt (ftree-loop-distribute-patterns): New.
5518         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
5519         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
5520         at -O3.
5521         * tree-data-ref.c (stores_zero_from_loop): New.
5522         * tree-data-ref.h (stores_zero_from_loop): Declared.
5523         * tree-loop-distribution.c (tree_loop_distribution): Call
5524         stores_zero_from_loop.
5525         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
5526
5527 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5528
5529         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
5530         into account.
5531
5532         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
5533         * config/arm/arm.c (thumb1_code): New variable.
5534         (arm_override_options): Set it.
5535         (thumb1_final_prescan_insn): Keep track of condition code status.
5536         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
5537         jumps that depend on them.
5538         * config/arm/arm.h (thumb1_code): Declare variable.
5539         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
5540         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
5541         thumb1_cc_mode.
5542         (CC_STATUS_INIT): New macro.
5543         * config/arm/constraints.md (Pd): New constraint.
5544         * config/arm/predicates.md (noov_comparison_operator): New predicate.
5545         * config/arm/arm.md (is_thumb1): New define_attr.
5546         (conds): Set default to "clob" when generating Thumb1 code.
5547         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
5548         code are set.  Use two-operand assembly syntax.
5549         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
5550         pattern.
5551         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
5552         codes are set.  Use two-operand assembly syntax.
5553         (zero_extendhisi splitter): Remove constraints.
5554         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
5555         thumb1_movsf_insn): Set conds attribute as appropriate.
5556         (cbranchsi4_insn): Use condition code status from struct
5557         machine_function to determine whether the comparison can be eliminated.
5558         Discourage the alternative using high registers.
5559         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
5560         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
5561         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
5562         subsi3_cbranch): Delete.
5563         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
5564         one subtract and one cbranch insn.
5565
5566         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
5567         thumb2_movdf_soft_insn): Delete patterns.
5568         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
5569         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
5570         (pool_range, neg_pool_range): Use them to define defaults.
5571         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
5572         and allow for TARGET_32BIT.
5573
5574         PR target/40457
5575         * config/arm/arm.h (arm_regs_in_sequence): Declare.
5576         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
5577         load_multiple_sequence, store_multiple_sequence): Delete
5578         declarations.
5579         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
5580         declarations.
5581         * config/arm/ldmstm.md: New file.
5582         * config/arm/arm.c (arm_regs_in_sequence): New array.
5583         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
5584         CHECK_REGS.  All callers changed.
5585         If SAVED_ORDER is nonnull, copy the computed order into it.
5586         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
5587         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
5588         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
5589         If SAVED_ORDER is nonnull, copy the computed order into it.
5590         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
5591         like REGS.  Handle Thumb mode.
5592         (arm_gen_load_multiple_1): New function, broken out of
5593         arm_gen_load_multiple.
5594         (arm_gen_store_multiple_1): New function, broken out of
5595         arm_gen_store_multiple.
5596         (arm_gen_multiple_op): New function, with code from
5597         arm_gen_load_multiple and arm_gen_store_multiple moved here.
5598         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
5599         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
5600         changed.
5601         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
5602         * config/arm/predicates.md (commutative_binary_operator): New.
5603         (load_multiple_operation, store_multiple_operation): Handle more
5604         variants of these patterns with different starting offsets.  Handle
5605         Thumb-1.
5606         * config/arm/arm.md: Include "ldmstm.md".
5607         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
5608         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
5609         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
5610         peepholes): Delete.
5611         * config/arm/ldmstm.md: New file.
5612         * config/arm/arm-ldmstm.ml: New file.
5613
5614         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
5615         if statement which adds extra costs to frame-related expressions.
5616
5617 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5618
5619         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
5620
5621 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
5622
5623         PR target/45142
5624         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
5625         alternative 2.
5626         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
5627         split V4SI operands.
5628
5629 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
5630
5631         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5632         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
5633         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
5634         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5635
5636 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
5637
5638         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
5639         LOCAL_INCLUDE_DIR.
5640
5641 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
5642
5643         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
5644         used in the call to optab_for_tree_code.  Fix the second
5645         is_widening_mult_p call.  Check that both unwidened operands
5646         have the same sign.
5647
5648 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
5649
5650         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
5651
5652 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
5653
5654         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5655
5656 2010-07-30  DJ Delorie  <dj@redhat.com>
5657
5658         * config/rx/predicates.md (rx_constshift_operand): New.
5659         * config/rx/rx.md (zs_cond): New.
5660         (cbranchsi4): Remove mode.
5661         (*cbranchsi4_<code>): Likewise.
5662         (*tstbranchsi4_<code>): New.
5663         (*tstbranchsi4r_<code>): New.
5664         (*tstbranchsi4m_eq): New.
5665         (*tstbranchsi4m_ne): New.
5666         (cbranchsf4): Remove mode.
5667         (*cbranchsf4_<code>): Likewise.
5668
5669 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
5670
5671         * rtlanal.c (simplify_subreg_regno): Don't treat
5672         HARD_FRAME_POINTER_REGNUM specially.
5673
5674 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
5675
5676         * common.opt (-G): Don't define option here.
5677         * config/g.opt: New.
5678         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
5679         rs6000/powerpc and score targets.
5680         * opts.c (common_handle_option): Don't handle -G here.
5681         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
5682         * config/frv/frv.c (frv_handle_option): Handle -G.
5683         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
5684         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
5685         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
5686         * config/mips/mips.c (mips_handle_option): Handle -G.
5687         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
5688         * config/score/score.c (score_handle_option): Handle -G.
5689
5690 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
5691
5692         * config/mmix/mmix.c: Include basic-block.h.
5693
5694 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
5695
5696         PR debug/45055
5697         PR rtl-optimization/45137
5698         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
5699         prototypes.
5700         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
5701         New functions.
5702         * combine.c (next_nonnote_nondebug_insn): Removed.
5703         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
5704         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
5705         * sched-deps.c (sched_analyze_insn): Likewise.
5706         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
5707         * rtlanal.c (canonicalize_condition): Likewise.
5708         * postreload.c (reload_combine_recognize_pattern): Likewise.
5709         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
5710
5711 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
5712
5713         * config/i386/i386.md (int_cond): Remove code iterator.
5714         (fp_cond): Ditto.
5715         (cbranch<mode>4): Use ordered_comparison_operator predicate
5716         for operator0.
5717         (cstore<mode>4): Ditto for operator1.
5718         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
5719         (add<mode>cc): ditto.
5720
5721 2010-07-30  Richard Guenther  <rguenther@suse.de>
5722
5723         PR middle-end/45141
5724         * expr.c (expand_expr_real_1): Check for not handled base address.
5725
5726 2010-07-30  Richard Guenther  <rguenther@suse.de>
5727
5728         * ipa-prop.c (ipa_modify_formal_parameters): Use
5729         build_distinct_type_copy.
5730
5731 2010-07-30  Anthony Green  <green@moxielogic.com>
5732
5733         * config/moxie/rtems.h: New file.
5734         * config.gcc: Add moxie-rtems support.
5735
5736 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5737
5738         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
5739         df flags as in run_fast_df_dce.
5740
5741 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5742
5743         Revert:
5744         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5745
5746         * rtl.def (NOTE): Swap operands 4 and 5.
5747         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
5748         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
5749         Adjust accordingly.
5750         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
5751
5752 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5753
5754         PR debug/45110
5755         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
5756         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
5757         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
5758         formal parameters.
5759         (gen_decl_die): Change return type to dw_die_ref, return what
5760         gen_formal_parameter_die returned.
5761
5762 2010-07-29  Martin Jambor  <mjambor@suse.cz>
5763
5764         * dbgcnt.def (eipa_sra): New counter.
5765         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
5766
5767 2010-07-29  Xinliang David Li  <davidxl@google.com>
5768
5769         PR bootstrap/45119
5770         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
5771         in revision 162652.
5772
5773 2010-07-29  Richard Guenther  <rguenther@suse.de>
5774
5775         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
5776         (TV_TREE_STORE_CCP): Likewise.
5777         (TV_TREE_REDPHI): Likewise.
5778
5779 2010-07-29  Richard Guenther  <rguenther@suse.de>
5780
5781         * double-int.h (double_int_and_not): New function.
5782         * combine.c (try_combine): Use it.
5783         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
5784
5785 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5786
5787         PR rtl-optimization/42575
5788         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
5789         Argument AU removed.  All callers changed.  Ignore artificial refs.
5790         Use return value of df_word_lr_simulate_defs to decide whether an insn
5791         is necessary.
5792         (fast_dce): Rename arg to WORD_LEVEL.
5793         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
5794         static.
5795         (pass_fast_rtl_byte_dce): Delete.
5796         * dce.h (run_word_dce): Declare.
5797         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
5798         All callers changed.  Simplify code to only deal with two-word regs.
5799         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
5800         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
5801         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
5802         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
5803         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
5804         (df_word_lr_mark_ref): Declare.
5805         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
5806         df_word_lr_simulate_uses): Declare or rename from byte variants.
5807         (df_byte_lr_simulate_artificial_refs_at_top,
5808         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5809         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
5810         declarations.
5811         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
5812         (enum df_mm): Delete.
5813         * df-byte-scan.c: Delete file.
5814         * df-problems.c (df_word_lr_problem_data): Renamed from
5815         df_byte_lr_problem_data, all members deleted except for
5816         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
5817         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
5818         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5819         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
5820         df_byte_lr_confluence_0): Delete functions.
5821         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
5822         callers changed.
5823         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
5824         Don't initialize members that were deleted, don't try to discover data
5825         about registers.  Ignore hard regs.
5826         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
5827         (df_word_lr_mark_ref): New function.
5828         (df_word_lr_bb_local_compute): Renamed from
5829         df_byte_bb_lr_local_compute; all callers changed.  Use
5830         df_word_lr_mark_ref.  Assert that artificial refs don't include
5831         pseudos.  Ignore hard registers.
5832         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
5833         Assert that exit block uses don't contain pseudos.
5834         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
5835         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
5836         callers changed.  Ignore hard regs.
5837         (df_word_lr_transfer_function): Renamed from
5838         df_byte_lr_transfer_function; all callers changed.
5839         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
5840         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
5841         changed.
5842         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
5843         callers changed.
5844         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
5845         confluence operator 0 set to NULL.
5846         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
5847         callers changed.
5848         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
5849         Return bool, true if bitmap changed or insn otherwise necessary.
5850         All callers changed.  Simplify using df_word_lr_mark_ref.
5851         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
5852         all callers changed.  Simplify using df_word_lr_mark_ref.
5853         * lower-subreg.c: Include "dce.h"
5854         (decompose_multiword_subregs): Call run_word_dce if df available.
5855         * Makefile.in (lower-subreg.o): Adjust dependencies.
5856         (df-byte-scan.o): Delete.
5857         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
5858
5859 2010-07-29  Richard Guenther  <rguenther@suse.de>
5860
5861         * tree.c (build_vector): Assert that the vector constant
5862         has enough elements.
5863         (build_vector_from_ctor): Pad with trailing zeros.
5864
5865 2010-07-29  Richard Guenther  <rguenther@suse.de>
5866
5867         PR tree-optimization/45120
5868         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5869         Handle offset in DEREFs properly.
5870         (get_constraint_for_1): Handle MEM_REF offset properly.
5871
5872 2010-07-29  Richard Guenther  <rguenther@suse.de>
5873
5874         PR middle-end/45034
5875         * convert.c (convert_to_integer): Always use an unsigned
5876         type for narrowed negate and bitwise not.
5877
5878 2010-07-29  Ira Rosen  <irar@il.ibm.com>
5879
5880         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
5881         to outer loop when creating reduction epilogue for double reduction,
5882         and switch back to the inner loop when updating the phi nodes.
5883         Update uses of outer loop exit phi nodes in double reduction (instead
5884         of uses of reduction).
5885
5886 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5887
5888         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
5889         popcount on power7 and parity on power6 systems.
5890         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
5891         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
5892         instructions.
5893
5894         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
5895         (UNSPEC_PARITY): Ditto.
5896         (SFDF): New iterator for SF/DF.
5897         (rreg2): New mode attribute for floating register constraint.
5898         (TARGET_FLOAT): New mode attribute for whether single/double float
5899         is supported.
5900         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
5901         pattern.
5902         (parity<mode>2_cmpb): New insn for parity on power6 and newer
5903         machines.
5904         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
5905         pattern.  Add support for fcpsgn instruction added in power6.
5906         (copysignsf3): Delete.
5907         (copysigndf3): Delete.
5908         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
5909         instead of if_then_else in RTL to avoid problems with -0.
5910
5911         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
5912         of if_then_else to mirror scalar code.
5913         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
5914         rs6000.md.
5915
5916         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
5917         instead of if_then_else.
5918
5919 2010-07-28  Xinliang David Li  <davidxl@google.com>
5920
5921         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
5922         (dump_cand): Dump var_before/after.
5923         (htab_inv_expr_eq): New function.
5924         (htab_inv_expr_hash): New function.
5925         (tree_ssa_iv_optimize_init): Support pseudo invariants.
5926         (add_candidate_1): consider base type precision.
5927         (set_use_iv_cost): New parameter.
5928         (adjust_setup_cost): Use profile information.
5929         (get_address_cost): Do not hard code width in computing address
5930         offset limits.
5931         (compare_aff_trees): New function.
5932         (get_loop_invariant_expr_id): New function.
5933         (get_computation_cost_at): New parameter and use profile information.
5934         (get_computation_cost): New parameter.
5935         (determine_use_iv_cost_generic): Pass new parameter.
5936         (determine_use_iv_cost_address): Ditto.
5937         (determine_use_iv_cost_condition): Ditto.
5938         (autoinc_possible_for_pair): Ditto.
5939         (determine_use_iv_costs): More dumps.
5940         (iv_ca_get_num_inv_exprs): New function.
5941         (iv_ca_recount_cost): Consider loop invariants in register pressure
5942         cost.
5943         (iv_ca_add_use): New parameter.
5944         (iv_ca_dump): Better dumping.
5945         (iv_ca_extend): New parameter.
5946         (try_add_cand_for): Attempt to get better partial solution.
5947         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
5948         (create_new-ivs): More dumps.
5949         (rewrite_use_compare): Ditto.
5950         (free_loop_data): More cleanup.
5951         (treee_ssa_iv_optimize_finalize): Ditto.
5952
5953 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
5954
5955         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
5956         * config/i386/i386.c (ix86_profile_before_prologue): New.
5957         (override_options): Add special handling for -mfentry.
5958         (ix86_function_regparm): Likewise.
5959         (ix86_function_sseregparm): Likewise.
5960         (ix86_frame_pointer_required): Likewise.
5961         (ix86_expand_prologue): Check for ms_hook_prologue.
5962         (x86_function_profiler): Adjust mcount output.
5963         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
5964         * config/i386/i386.opt (mfentry): New.
5965         * doc/invoke.texi (mfentry): Add documentation.
5966         * doc/tm.texi: Regenerated..
5967         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
5968         * final.c (final_start_function): Replace macro
5969         PROFILE_BEFORE_PROLOGUE by target hook.
5970         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5971         * target.def (profile_before_prologue): New hook.
5972         * targhooks.c (default_profile_before_prologue): New.
5973         * targhooks.h (default_profile_before_prologue): New.
5974
5975 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
5976
5977         PR debug/45105
5978         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
5979
5980         PR debug/45103
5981         * dwarf2out.c (dwarf2out_var_location): Always consider
5982         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
5983
5984 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5985
5986         PR rtl-optimization/45107
5987         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
5988
5989 2010-07-28  Richard Guenther  <rguenther@suse.de>
5990
5991         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
5992         (set_lattice_value): Do not query an old default value.
5993         (get_value_for_expr): New function.  Properly canonicalize
5994         float values.
5995         (ccp_visit_phi_node): Use it.
5996
5997 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
5998
5999         * config/arm/arm.c (arm_pcs_default): Remove static.
6000         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
6001         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
6002         (arm_pcs_default): Declare.
6003
6004 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
6005
6006         * config/rs6000/rs6000.c (rs6000_override_options):
6007         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
6008         ... to darwin_rs6000_override_options.
6009         (rs6000_return_in_memory): Update preceding comment for darwin
6010         64 bit ABI.  Use TARGET_MACHO inline.
6011         (rs6000_darwin64_struct_check_p): New.
6012         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
6013         (function_arg): Likewise.
6014         (rs6000_arg_partial_bytes): Likewise.
6015         (rs6000_function_value): Likewise.
6016
6017 2010-07-28  Andi Kleen <ak@linux.intel.com>
6018
6019         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
6020
6021 2010-07-28  Richard Guenther  <rguenther@suse.de>
6022
6023         PR middle-end/44903
6024         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
6025         targets try harder to not generate unaligned accesses.
6026
6027 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
6028
6029         PR rtl-optimization/45101
6030         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
6031         for gcse-las.
6032
6033 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6034
6035         PR tree-optimization/44885
6036         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
6037         with non-aliased component.
6038
6039 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
6040
6041         * config/darwin-driver.c (SWITCH_TAKES_ARG,
6042         WORD_SWITCH_TAKES_ARG): Remove.
6043         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
6044         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
6045         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
6046         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
6047         definitions from gcc.c.
6048         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
6049         defaults.h.
6050         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
6051         Move to defaults.h.
6052         * opts-common.c: Include tm.h.
6053         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
6054         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
6055         Handle more than one argument.  Set canonical_option_num_elements.
6056         (decode_cmdline_options_to_array): Set
6057         canonical_option_num_elements and trailing elements of
6058         canonical_option.
6059         * opts.h (struct cl_decoded_option): Allow four elements in
6060         canonical_option.  Add field canonical_option_num_elements.
6061         * Makefile.in (opts-common.o): Update dependencies.
6062
6063 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
6064
6065         PR middle-end/44790
6066         PR middle-end/44993
6067         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
6068         sure the base has address_mode before adding the offset.
6069
6070 2010-07-27  Xinliang David Li <davidxl@google.com>
6071
6072         * tree-flow.h (create_mem_ref): Add one new parameter.
6073         * tree-ssa-address.c (create_mem_ref): New parameter.
6074         (addr_to_parts): Ditto.
6075         (move_variant_to_index): New function.
6076         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
6077
6078 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6079
6080         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
6081         4 and 5.
6082         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
6083         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
6084         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
6085         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
6086         CODE_LABELs and NOTEs.
6087         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
6088         * combine.c (try_combine): Likewise.
6089         * ira.c (setup_prohibited_mode_move_regs): Likewise.
6090         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
6091
6092 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6093
6094         * coretypes.h (struct cl_option_handlers): Declare.
6095         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
6096         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
6097         * langhooks-def.h (lhd_handle_option): Declare.
6098         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
6099         * langhooks.c (lhd_handle_option): New.
6100         * langhooks.h (struct lang_hooks): Update prototype and return
6101         value type of handle_option hook.
6102         * optc-gen.awk: Generate target_flags_explicit definition for the
6103         driver.
6104         * opts-common.c: Include diagnostic.h.
6105         (handle_option): Move from opts.c.  Update prototype and return
6106         value type.  Use handlers structure.
6107         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
6108         handlers structure.
6109         (set_option): Move from opts.c.
6110         * opts.c (common_handle_option): Update prototype and return value
6111         type.  Update calls to handle_option and enable_warning_as_error.
6112         (unknown_option_callback, post_handling_callback,
6113         lang_handle_option, target_handle_option): New.
6114         (handle_option, read_cmdline_option): Move to opts-common.c.
6115         (read_cmdline_options): Update prototype.  Update call to
6116         read_cmdline_option.
6117         (decode_options): Initialize and use handlers structure.
6118         (set_option): Move to opts-common.c.
6119         (enable_warning_as_error): Update prototype.  Update call to
6120         handle_option.
6121         * opts.h (struct cl_option_handler_func, struct
6122         cl_option_handlers): New.
6123         (handle_option, enable_warning_as_error): Update prototypes.
6124         (read_cmdline_option): Declare.
6125         * Makefile.in (opts-common.o): Update dependencies.
6126
6127 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6128
6129         * config/arm/arm.c (params.h): Include.
6130         (arm_override_options): Tune gcse-unrestricted-cost.
6131         * config/arm/t-arm (arm.o): Define dependencies.
6132
6133 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6134
6135         PR target/42495
6136         PR middle-end/42574
6137         * basic-block.h (get_dominated_to_depth): Declare.
6138         * dominance.c (get_dominated_to_depth): New function, use
6139         get_all_dominated_blocks as a base.
6140         (get_all_dominated_blocks): Use get_dominated_to_depth.
6141
6142         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
6143         (hoist_exprs): Remove.
6144         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
6145         (compute_code_hoist_vbeinout): Add debug print outs.
6146         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
6147
6148         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
6149         quadratic behavior.
6150         * params.h (MAX_HOIST_DEPTH): New macro.
6151         * doc/invoke.texi (max-hoist-depth): Document.
6152
6153 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6154
6155         PR rtl-optimization/40956
6156         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
6157         constants.
6158
6159 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6160
6161         PR target/42495
6162         PR middle-end/42574
6163         * config/arm/arm.c (legitimize_pic_address): Use
6164         gen_calculate_pic_address pattern to emit calculation of PIC address.
6165         (will_be_in_index_register): New function.
6166         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
6167         (thumb1_legitimate_address_p): Use it provided !strict_p.
6168         * config/arm/arm.md (calculate_pic_address): New expand and split.
6169
6170 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6171
6172         PR target/42495
6173         PR middle-end/42574
6174         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
6175         * config/arm/arm.md (define_split "J", define_split "K"): Make
6176         IRA/reload friendly.
6177
6178 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6179
6180         * gcse.c (insert_insn_end_basic_block): Update signature, remove
6181         unused checks.
6182         (pre_edge_insert, hoist_code): Update.
6183
6184 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6185
6186         PR target/42495
6187         PR middle-end/42574
6188         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
6189
6190 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6191
6192         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
6193
6194 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6195
6196         PR rtl-optimization/40956
6197         PR target/42495
6198         PR middle-end/42574
6199         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
6200         for hoisting.
6201         (hoist_code): Count occurences in current block too.
6202
6203 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6204
6205         * gcse.c (struct expr:max_distance): New field.
6206         (doing_code_hoisting_p): New static variable.
6207         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
6208         simple expressions, don't change behavior for PRE.  Set max_distance.
6209         (insert_expr_in_table): Set new max_distance field.
6210         (hash_scan_set): Update.
6211         (hoist_expr_reaches_here_p): Stop search after max_distance
6212         instructions.
6213         (find_occr_in_bb): New static function.  Use it in ...
6214         (hoist_code): Calculate sizes of basic block before any changes are
6215         done.  Pass max_distance to hoist_expr_reaches_here_p.
6216         (one_code_hoisting_pass): Set doing_code_hoisting_p.
6217
6218         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
6219         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
6220         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
6221         macros.
6222         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
6223         Document.
6224
6225 2010-07-27  Jeff Law  <law@redhat.com>
6226             Maxim Kuvyrkov  <maxim@codesourcery.com>
6227
6228         * gcse.c (compute_transpout, transpout): Remove, move logic
6229         to prune_expressions.
6230         (compute_pre_data): Move pruning of trapping expressions ...
6231         (prune_expressions): ... here.  New static function.
6232         (compute_code_hoist_data): Use it.
6233         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
6234
6235 2010-07-27  Xinliang David Li  <davidxl@google.com>
6236
6237         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
6238         (rewrite_use_address): Adjust iv update position when needed.
6239
6240 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
6241
6242         * dbgcnt.def (hoist_insn): New debug counter.
6243         * gcse.c (hoist_code): Use it.
6244
6245 2010-07-27  Xinliang David Li  <davidxl@google.com>
6246
6247         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
6248         (niter_for_single_dom_exit): Passes additional parameter.
6249         (iv_period): Fix comments.
6250         (may_eliminate_iv): Handles multiple exit loops properly.
6251         (free_tree_niter_desc): New function.
6252         (free_loop_data): Frees up loop iteration descriptors.
6253
6254 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6255
6256         PR target/44542
6257         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
6258         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
6259         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
6260         (expand_one_var): Don't consider DECL_ALIGN for variables for
6261         which expand_one_stack_var_at has been already called.
6262
6263         PR testsuite/44701
6264         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
6265         constraints on IA-64.
6266
6267 2010-07-27  Jie Zhang  <jie@codesourcery.com>
6268
6269         PR target/44290
6270         Revert:
6271         2010-07-23  Jie Zhang  <jie@codesourcery.com>
6272
6273         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6274         false if ! tree_versionable_function_p.
6275
6276 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6277
6278         * dwarf2out.c (add_data_member_location_attribute): Use
6279         add_AT_unsigned instead of add_AT_int if offset is non-negative.
6280
6281 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6282
6283         * postreload.c (try_replace_in_use): New static function.
6284         (reload_combine_recognize_const_pattern): Use it here.  Allow
6285         substituting into a final add insn, and substituting into a memory
6286         reference in an insn that sets the reg.
6287
6288 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6289
6290         * common.opt (o): Add MissingArgError.
6291         * doc/options.texi (MissingArgError): Document.
6292         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
6293         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
6294         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
6295         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
6296         * langhooks.h (struct lang_hooks): Remove missing_argument.
6297         * optc-gen.awk: Handle MissingArgError and output new structure
6298         field initializers.
6299         * opts.c (read_cmdline_option): Use missing_argument_error field
6300         instead of missing_argument langhook.
6301         * opts.h (struct cl_option): Add missing_argument_error field.
6302         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
6303
6304 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6305
6306         PR target/29090
6307         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
6308         Darwin64 ABI, for zero-sized objects.
6309
6310 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
6311
6312         PR target/35491
6313         PR target/29090
6314
6315         Merge from Apple local 4.2.1.
6316         2005-05-11  Stan Shebs  <shebs@apple.com>
6317         Fix 64-bit varargs for Darwin (Radar 4028089).
6318         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
6319         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
6320         Add argument, add case for 8-byte register half-filled with a float.
6321         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
6322         single-precision floats specially.
6323
6324 2010-07-27  Ira Rosen  <irar@il.ibm.com>
6325
6326         PR tree-optimization/44152
6327         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
6328         complex numbers for further check.
6329         (vect_supported_load_permutation_p): Check nodes with
6330         complex numbers.
6331
6332 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6333
6334         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
6335         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
6336         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
6337         (LANG_HOOKS_INITIALIZER): Add new hooks.
6338         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
6339         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
6340         and complain_wrong_lang_p.  Update init_options prototype.
6341         * c-objc-common.c (c_initialize_diagnostics): First call
6342         c_common_initialize_diagnostics.
6343         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
6344         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
6345         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
6346         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
6347         (hook_uint_void_0): New.
6348         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
6349         (hook_uint_void_0): New.
6350         * opts-common.c (decode_cmdline_option,
6351         decode_cmdline_options_to_array): Also fill in canonical_option field.
6352         * opts.c (complain_wrong_lang): Use langhook to determine whether
6353         to complain instead of special-casing LTO.
6354         (decode_options): Separate lang_mask determination with
6355         option_lang_mask hook from call of init_options hook.
6356         * opts.h (struct cl_decoded_option): Add canonical_option.
6357
6358 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6359
6360         PR tree-optimization/45083
6361         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
6362
6363 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6364
6365         * postreload.c (reload_combine_recognize_const_pattern): Move test
6366         for limiting the insn movement to the right scope.
6367
6368         PR rtl-optimization/45051
6369         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
6370         than reg_mentioned_p.
6371
6372 2010-07-26  Richard Henderson  <rth@redhat.com>
6373
6374         PR target/44132
6375         * tree-emutls.c: New file.
6376         * Makefile.in (OBJS-common): Add it.
6377         * tree-pass.h (pass_ipa_lower_emutls): Declare.
6378         * passes.c (init_optimization_passes): Add it.
6379
6380         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
6381         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
6382         * expr.c (emutls_var_address): Delete.
6383         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
6384         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
6385         (emutls_finish): Delete.
6386         * toplev.c (compile_file): Don't call it.
6387         * tree.h (emutls_decl): Delete.
6388         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
6389         (emutls_finish, emutls_finalize_control_var): Delete.
6390         (emutls_object_type): Move to tree-emutls.c.
6391         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
6392         default_emutls_var_fields, get_emutls_object_type,
6393         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
6394         default_emutls_var_init): Likewise.
6395         (get_variable_section): Don't special case emutls.
6396         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
6397         default_elf_select_section, default_unique_section,
6398         default_encode_section_info): Likewise.
6399         * varpool.c (decide_is_variable_needed): Likewise.
6400         * gimple-iterator.c (update_call_edge_frequencies): New
6401         (gsi_insert_on_edge_immediate): Use it.
6402         (gsi_insert_seq_on_edge_immediate): Likewise.
6403         (gsi_commit_one_edge_insert): Likewise.
6404
6405         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
6406         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
6407         (x86_64_elf_unique_section): Likewise.
6408
6409 2010-07-26  Jan Hubicka  <jh@suse.cz>
6410
6411         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
6412         GTY((skip)).
6413
6414 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
6415
6416         * target.def (output_source_filename): New hook.
6417         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
6418         * doc/tm.texi: Regenerate.
6419         * toplev.c (output_file_directive) Remove function.
6420         * toplev.h (output_file_directive) Remove.
6421         * output.h (default_asm_output_source_filename,
6422         output_file_directive): Declare.
6423         * varasm.h (default_asm_output_source_filename,
6424         output_file_directive): New functions.
6425
6426         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6427         * config/mips/mips-protos.h (mips_output_filename): Remove.
6428         * config/mips/mips.c (mips_output_filename): Make Static.
6429         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6430
6431 2010-07-26  Richard Guenther  <rguenther@suse.de>
6432
6433         PR tree-optimization/43784
6434         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
6435         if the destination is used by the call.
6436
6437 2010-07-26  Richard Guenther  <rguenther@suse.de>
6438
6439         PR middle-end/45073
6440         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
6441         SSA updating on being in SSA form.
6442
6443 2010-07-26  Richard Guenther  <rguenther@suse.de>
6444
6445         PR middle-end/45056
6446         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
6447
6448 2010-07-26  Richard Guenther  <rguenther@suse.de>
6449
6450         PR tree-optimization/45071
6451         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
6452         adjust op->opcode.
6453
6454 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
6455
6456         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
6457         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
6458         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
6459         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
6460         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
6461         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
6462         save_r31, return_r31, save_interrupt, return_interrupt,
6463         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
6464         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
6465         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
6466         new ABI requirements.
6467         (save_r6_r9, L_callt_save_r6_r9): Remove.
6468         * config/v850/predicates.md (even_reg_operand, disp23_operand,
6469         const_float_1_operand const_float_0_operand): New Predicates.
6470         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
6471         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
6472         * config/v850/t-v850: Update multilibs for new target variants.
6473         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
6474         * config/v850/t-v850e: Likewise.
6475         * config/v850/v850.c (v850_issue_rate): New.
6476         (v850_strict_argument_naming): New.
6477         (function_arg): Modify to generate a different ABI.
6478         (print_operand): Update case 'z' to support float modes.
6479         (output_move_single): Modify to generate appropriate and better
6480         assembly.
6481         (v850_float_z_comparison_operator, v850_select_cc_mode,
6482         v850_float_nz_comparison_operator,  v850_gen_float_compare,
6483         v850_gen_compare): New functions to support comparison of float values.
6484         (ep_memory_offset): Add support for V850E2 targets.
6485         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
6486         (INTERRUPT_REGPARM_NUM): Remove.
6487         (compute_register_save_size): Add extra case to save/restore long call.
6488         (use_prolog_function): New function to support prologue.
6489         (expand_prologue): Add support for V850E2 targets and modified
6490         as per the current ABI requirements.
6491         (expand_epilogue): Likewise.
6492         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
6493         (construct_save_jarl): Likewise.
6494         (construct_dispose_instruction): Update as per the current ABI
6495         requirements.
6496         (construct_prepare_instruction): Likewise.
6497         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
6498         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
6499         (CPP_SPEC): Updated to support v850e2 targets.
6500         (STRICT_ALIGNMENT): Modified.
6501         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
6502         (FIXED_REGISTERS): Likewise.
6503         (CALL_USED_REGISTERS): Likewise.
6504         (CONDITIONAL_REGISTER_USAGE): Updated.
6505         (HARD_REGNO_MODE_OK): Updated.
6506         (reg_class): Updated to add even registers.
6507         (REG_CLASS_NAMES): Likewise.
6508         (REG_CLASS_CONTENTS): Likewise.
6509         (REGNO_REG_CLASS): Updated for CC registers.
6510         (REG_CLASS_FROM_LETTER): Added support for even registers.
6511         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
6512         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
6513         ARG_POINTER_REGNUM): Updated.
6514         (FUNCTION_ARG_ADVANCE): Define.
6515         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
6516         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
6517         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
6518         (GO_IF_LEGITIMATE_ADDRESS): Updated.
6519         (SELECT_CC_MODE): Define.
6520         (REGISTER_NAMES): Updated to add psw and fcc registers.
6521         (ADDITIONAL_REGISTER_NAMES): Updated.
6522         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
6523         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
6524         * config/v850/v850.md (define_constants): Define new constants.
6525         (type): Update store,bit1,macc,div,fpu and single attributes.
6526         (cpu): New attribute.
6527         (cc): Add set_z attribute.
6528         (unsign23byte_load, sign23byte_load, unsign23hword_load,
6529         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
6530         23word_store): New instructions for 23-bit displacement load and store.
6531         (movqi_internal, movhi_internal): Update the attributes.
6532         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
6533         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
6534         the attributes.
6535         (v850_tst1): Modified using CC_REGNUM.
6536         (tstsi): Remove.
6537         (cmpsi): Modified as define_expand from define_insn.
6538         (cmpsi_insn, cmpsf, cmpdf): New instructions.
6539         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
6540         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
6541         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
6542         one_cmplsi2): Clobber the CC_REGNUM register.
6543         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
6544         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
6545         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
6546         (setf_insn, set_z_insn, set_nz_insn): New instructions for
6547         v850e2v3 target.
6548         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
6549         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
6550         targets.
6551         (sasf_1, sasf_2): Remove.
6552         (sasf): New instruction.
6553         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
6554         targets. CC_REGNUM register is clobbered and attributes are
6555         updated.
6556         (branch_z_normal, branch_z_invert, branch_nz_normal,
6557         branch_nz_invert): New branch related instructions.
6558         (jump): Updated the attributes.
6559         (switch): Update to support new targets. CC_REGNUM register is
6560         clobbered and attributes are updated.
6561         (call_internal_short, call_internal_long, call_value_internal_short,
6562         call_value_internal_long): Updated the attributes.
6563         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
6564         clobbered and attributes are updated.
6565         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
6566         Update to support new targets. CC_REGNUM register is clobbered.
6567         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
6568         instructions.
6569         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
6570         are updated.
6571         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
6572         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
6573         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
6574         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
6575         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
6576         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
6577         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
6578         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
6579         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
6580         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
6581         point instructions defined for V850e2v3 target.
6582         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
6583         Add support for V850E2 targets and CC_REGNUM register is clobbered.
6584         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
6585         support for new targets.
6586         * config/v850/v850-modes.def: New file.
6587         * config/v850/v850.opt(mstrict-align): Remove.
6588         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
6589         mv850e2v3): New command line options for V850.
6590         * config.gcc: Update the newly added files.
6591         * doc/invoke.texi: Update the newly added command line options for
6592         V850 target.
6593
6594 2010-07-26  Richard Guenther  <rguenther@suse.de>
6595
6596         PR tree-optimization/45052
6597         * ipa-pure-const.c (check_stmt): Check volatileness.
6598
6599 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6600
6601         PR target/44707
6602         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
6603         * config/sparc/sparc.c: Include reload.h.
6604         (legitimize_tls_address): Rename into...
6605         (sparc_legitimize_tls_address): ...this.
6606         (legitimize_pic_address): Rename into...
6607         (sparc_legitimize_pic_address): ...this.
6608         (sparc_expand_move): Adjust to above renaming.
6609         (sparc_tls_referenced_p): Likewise.
6610         (sparc_legitimize_tls_address): Likewise.
6611         (sparc_legitimize_pic_address): Likewise.
6612         (sparc_legitimize_address): Likewise.
6613         (sparc_output_mi_thunk): Likewise.
6614         (sparc_legitimize_reload_address): New global function.  Recognize
6615         (lo_sum (high ...) ...) patterns generated by earlier passes.
6616         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
6617
6618 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6619
6620         PR target/44484
6621         * config/sparc/predicates.md (memory_reg_operand): Delete.
6622         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
6623         (*sync_compare_and_swap): Encode the address form in the pattern.
6624         (*sync_compare_and_swapdi_v8plus): Likewise.
6625
6626 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
6627
6628         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
6629         Streamline paragraph on compatibility with the system compiler.
6630
6631 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
6632
6633         PR middle-end/45035
6634         * alias.c (true_dependence_1): Fix thinko in merge of old
6635         true_dependence and canon_true_dependence.
6636
6637 2010-07-23  Jan Hubicka  <jh@suse.cz>
6638
6639         * lto-streamer-out.c (write_symbol): Fix visibilities of external
6640         references.
6641
6642 2010-07-23  Le-Chun Wu  <lcwu@google.com>
6643
6644         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
6645         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
6646         and an unnecessary assignment.
6647         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
6648         self-assign warning.
6649         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
6650         unnecessary self-init.
6651
6652 2010-07-23  Richard Guenther  <rguenther@suse.de>
6653
6654         PR lto/43071
6655         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
6656         for -flto and -fwhopr.
6657
6658 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
6659
6660         PR target/41943
6661         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
6662         (stmp-int-hdrs): Prefix/postfix headers by include_next.
6663         * config.gcc (user_headers_inc_next_pre): New.
6664         (user_headers_inc_next_post): Likewise.
6665         (*-w64-mingw*): Use for float.h post-fixing, and for
6666         stddef.h/stdarg.h pre-fixing by include_next.
6667         * configure.ac (user_headers_inc_next_post): New.
6668         (user_headers_inc_next_pre): New.
6669         * configure: Regenerated.
6670
6671 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6672
6673         * configure.ac: Don't disable TLS on Solaris 8/9 by default
6674         Set tga_func for Solaris 2/x86 resp. SPARC.
6675         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
6676         (LIB_THREAD_LDFLAGS_SPEC): Define.
6677         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
6678         * configure: Regenerate.
6679         * config.in: Regenerate.
6680         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
6681         -pthread, -threads, LIB_TLS_SPEC with -pthread.
6682         * doc/install.texi (Specific, *-*-solaris2*): Document use of
6683         alternate thread libraries on Solaris 8.
6684         Document TLS patch requirements.
6685         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
6686         Document tls.
6687
6688         PR target/18788
6689         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
6690         -shared.
6691
6692 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
6693
6694         * tree.h (struct tree_base): Add nameless_flag bitfield.
6695         (TYPE_NAMELESS, DECL_NAMELESS): Define.
6696         * omp-low.c (create_omp_child_function, scan_omp_parallel,
6697         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
6698         DECL_ARTIFICIAL where needed.
6699         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
6700         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
6701         has DECL_NAMELESS set.
6702
6703 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6704
6705         PR tree-optimization/44915
6706         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
6707         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
6708         (analyze_function): Likewise.
6709
6710 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6711
6712         PR tree-optimization/44914
6713         * tree-sra.c (sra_modify_function_body): Return true if CFG was
6714         changed, add purging dead eh edges.
6715         (ipa_sra_modify_function_body): Return true if CFG was changed,
6716         simplify purging dead eh edges.
6717         (modify_function): Return true if CFG was changed.
6718         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
6719         was changed.
6720         (ipa_early_sra): Likewise.
6721
6722 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6723
6724         PR target/44290
6725         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
6726         if "naked".
6727         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6728         false if ! tree_versionable_function_p.
6729
6730 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
6731
6732         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
6733         * ipa-pure-const.c (special_builtlin_state): Remove
6734         BUILT_IN_ARGS_INFO case.
6735         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6736         * builtins.c (expand_builtin): Likewise.
6737         (expand_builtin_args_info): Remove.
6738         * doc/tm.texi (__builtin_args_info): Remove.
6739         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
6740         * doc/tm.text.in: Likewise.
6741
6742 2010-07-23  Richard Guenther  <rguenther@suse.de>
6743
6744         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
6745         (lto_symtab_merge_decls_2): Likewise.
6746         * tree-ssa.c (useless_type_conversion_p): Likewise.
6747         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6748         * gimple.c (gtc_visited2, gtc_ob2): Remove.
6749         (struct type_pair_d): Make same_p an array indexed by mode.
6750         Update comment.
6751         (lookup_type_pair): Update initialization.
6752         (struct sccs): Adjust same_p type.
6753         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
6754         Adjust.
6755         (print_gimple_types_stats): Likewise.
6756         * gimple.h (enum gtc_mode): New.
6757         (gimple_types_compatible_p): Adjust prototype.
6758
6759 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
6760
6761         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
6762         again after processing insn.
6763
6764 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6765
6766         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
6767         proper words when !tree_versionable_function_p.
6768
6769 2010-07-23  Richard Guenther  <rguenther@suse.de>
6770
6771         PR tree-optimization/45037
6772         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
6773
6774 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6775
6776         * doc/extend.texi: Remove IP2K from the description of naked attribute.
6777         Add MCORE instead.
6778
6779 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6780
6781         PR lto/44992
6782         * lto-opts.c (lto_write_options): Add NULL file_data argument to
6783         lto_get_section_name.
6784         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
6785         * lto-streamer-out.c (produce_asm): Likewise.
6786         (copy_function): Likewise.
6787         (produce_symtab): Likewise.
6788         (produce_asm_for_decls): Likewise.
6789         * lto-streamer.c (lto_get_section_name): Add file_data argument.
6790         Rewrite to add random postfix to LTO sections.
6791         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
6792         (lto_get_section_name): Add file_data argument to prototype.
6793
6794 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6795
6796         * lto-section-in.c (lto_section_name): Synchronize names
6797         with lto_get_section_name.
6798
6799 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6800
6801         * lto-opts.c (lto_read_file_options): Check for missing section.
6802
6803 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6804
6805         * ira.c (check_allocation): Correctly handle the case where an allocno
6806         with two objects was allocated to a single reg.
6807
6808 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
6809
6810         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
6811         (is_widening_mult_p): Likewise.
6812         (convert_to_widen): Use them.
6813         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
6814         well as integer ones.
6815
6816 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
6817
6818         * alias.c (true_dependence_1): New function, merged version of
6819         true_dependence and canon_true_dependence.
6820         (true_dependence): Simplify.
6821         (canon_true_dependence): Simplify.
6822
6823 2010-07-22  Richard Henderson  <rth@redhat.com>
6824
6825         PR target/45027
6826         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
6827         of V4SFmode for the SSE saves; increase stack alignment if needed.
6828         (ix86_gimplify_va_arg): Don't increase stack alignment here.
6829
6830 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
6831
6832         PR bootstrap/45028
6833         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
6834         call cprop_find_used_regs again via note_uses.
6835
6836 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6837
6838         * alias.c (get_alias_set): Fix formatting issues.
6839
6840 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
6841
6842         PR middle-end/44878
6843         * stmt.c (expand_value_return):  Call promote_function_mode with
6844         a for_return argument of 2 when returning by reference.
6845
6846 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
6847
6848         PR debug/45024
6849         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
6850         unit DIE if we can find the scope DIE.
6851
6852 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6853
6854         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
6855         changed.  Initialize OBJECT_SUBWORD.
6856         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6857         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
6858         all callers changed.
6859         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
6860         (finish_allocno): Likewise.
6861         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
6862         (remove_low_level_allocnos): Likewise.
6863         (update_bad_spill_attribute): Likewise.
6864         (setup_min_max_allocno_live_range_point): Likewise.
6865         (sort_conflict_id_map): Likewise.
6866         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
6867         (ior_hard_reg_conflicts): New function.
6868         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
6869         (compress_conflict_vecs): Iterate over objects, not allocnos.
6870         (ira_add_live_range_to_object): New function.
6871         (object_range_compare_func): Renamed from allocno_range_compare_func.
6872         All callers changed.
6873         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
6874         subobjects, widen the min/max range of the lowest-order object to
6875         potentially include all other such low-order objects.
6876         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
6877         (check_allocation): Likewise.  Use more fine-grained tests for register
6878         conflicts.
6879         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
6880         allocno subobjects.
6881         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
6882         choices about which bits to set in each set.  Don't use
6883         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
6884         using the multiple sets we computed.
6885         (push_allocno_to_stack): Iterate over allocno subobjects.
6886         (all_conflicting_hard_regs_coalesced): New static function.
6887         (setup_allocno_available_regs_num): Use it.
6888         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
6889         subobjects.
6890         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
6891         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6892         by ALLOCNO_NUM_OBJECTS.
6893         (calculate_spill_cost): Likewise.
6894         (color_pass): Express if statement in a more normal way.
6895         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
6896         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
6897         (setup_slot_coalesced_allocno_live_ranges): Likewise.
6898         (allocno_reload_assign): Likewise.
6899         (ira_reassign_pseudos): Likewise.
6900         (fast_allocation): Likewise.
6901         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6902         (print_allocno_conflicts): Likewise.
6903         (ira_build_conflicts): Likewise.
6904         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
6905         callers changed.  Test subword 0 of each allocno for conflicts.
6906         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
6907         callers changed.  Iterate over allocno subobjects.
6908         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
6909         * ira-int.h (struct ira_allocno): New member: num_objects.
6910         Rename object to objects and change it into an array.
6911         (ALLOCNO_OBJECT): Add new argument N.
6912         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
6913         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
6914         (ior_hard_reg_conflicts): Declare.
6915         (ira_add_live_range_to_object): Declare.
6916         (ira_allocno_object_iterator): New.
6917         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
6918         (FOR_EACH_ALLOCNO_OBJECT): New macro.
6919         * ira-lives.c (objects_live): Renamed from allocnos_live; all
6920         uses changed.
6921         (allocnos_processed): New sparseset.
6922         (make_object_born): Renamed from make_allocno_born; take an
6923         ira_object_t argument.  All callers changed.
6924         (make_object_dead): Renamed from make_allocno_dead; take an
6925         ira_object_t argument.  All callers changed.
6926         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
6927         All callers changed.
6928         (mark_pseudo_regno_live): Iterate over allocno subobjects.
6929         (mark_pseudo_regno_dead): Likewise.
6930         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
6931         functions.
6932         (mark_ref_live): Detect subword accesses and call
6933         mark_pseudo_regno_subword_live as appropriate.
6934         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
6935         (process_bb_nodes_live): Deal with object-related updates first; set
6936         and test bits in allocnos_processed to avoid computing allocno
6937         statistics more than once.
6938         (create_start_finish_chains): Iterate over objects, not allocnos.
6939         (print_object_live_ranges): New function.
6940         (print_allocno_live_ranges): Use it.
6941         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
6942         and objects_live.
6943
6944 2010-07-22  Richard Guenther  <rguenther@suse.de>
6945
6946         PR lto/42451
6947         * gimple.c (gtc_next_dfs_num): New global.
6948         (struct sccs): Make value a union, add integer same_p member.
6949         (gtc_visit): New function.
6950         (gimple_types_compatible_p_1): New function, split out from ...
6951         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
6952         (iterative_hash_gimple_type): Adjust for sccs change.
6953
6954 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6955
6956         PR tree-optimization/44891
6957         * tree-sra.c: Include gimple-pretty-print.h.
6958         (replace_uses_with_default_def_ssa_name): Renamed to
6959         get_repl_default_def_ssa_name, return the new SSA name instead of
6960         replacing the old one.
6961         (sra_modify_assign): Dump a message when removing a load, if the LHS
6962         is an SSA_NAME, do not do any propagation, just set the RHS to a
6963         default definition SSA NAME, type convert if necessary.
6964         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
6965
6966 2010-07-22  Richard Guenther  <rguenther@suse.de>
6967
6968         PR tree-optimization/45017
6969         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
6970         TYPE_PRECISION of integral types in addition to size.
6971
6972 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6973
6974         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
6975         when no C library is specified.
6976
6977 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6978
6979         * ipa-prop.h (struct ipa_node_params): Updated comment.
6980         (struct ipa_edge_args): Likewise.
6981         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
6982
6983 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6984
6985         * cgraphunit.c (verify_edge_count_and_frequency): New function.
6986         (verify_cgraph_node): Verify frequencies of indirect edges.
6987         * tree-inline.c (tree_function_versioning): Update frequencies of
6988         indirect edges.
6989
6990 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6991
6992         PR target/43698
6993         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
6994         Set *arm_rev to be predicable.
6995
6996 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6997
6998         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
6999         (LINK_COMMAND_SPEC_A): New.
7000         (DSYMUTIL): New.
7001         (DSYMUTIL_SPEC): New.
7002         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
7003         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
7004
7005 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
7006
7007         * calls.c (load_register_parameters): Move check for zero
7008         sized items so that only the call to
7009         mem_overlaps_already_clobbered_arg_p () is protected.
7010
7011 2010-07-22  Jan Hubicka  <jh@suse.cz>
7012
7013         * ipa-pure-const.c (varying_state): Break out from ...
7014         (get_function_state): ... here; always return varying_state
7015         when state would be NULL otherwise.
7016         (remove_node_data): Do not free varying state.
7017
7018 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
7019
7020         PR bootstrap/44970
7021         PR middle-end/45009
7022         * postreload.c: Include "target.h".
7023         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
7024         into account.
7025         (fixup_debug_insns): Don't copy the rtx.
7026         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
7027         Don't copy when replacing.  Call fixup_debug_insns in the case where
7028         we merged one add with another.
7029         (reload_combine_recognize_pattern): Fail if there aren't any uses.
7030         Try harder to determine whether we're picking a valid index register.
7031         Don't set store_ruid for an insn we're going to scan in the
7032         next iteration.
7033         (reload_combine): Remove unused code.
7034         (reload_combine_note_use): When updating use information for
7035         an old insn, ignore a use that occurs after store_ruid.
7036         * Makefile.in (postreload.o): Update dependencies.
7037
7038         * function.c (record_hard_reg_sets): Restrict the previous change
7039         to cases where the incoming nominal mode is the same as the
7040         incoming promoted mode and everything happens in MODE_INT.
7041
7042 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7043
7044         PR debug/45015
7045         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
7046         ASM_OPERANDS_OUTPUT_IDX.
7047         (adjust_insn): For inline asm with multiple sets ensure first
7048         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
7049         the insn.
7050
7051 2010-07-21  Richard Henderson  <rth@redhat.com>
7052
7053         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
7054         comparison for avoiding xmm register saves.  Emit the xmm register
7055         saves explicitly.
7056         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
7057         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
7058         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
7059         Remove patterns and the associated splitters.
7060
7061 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
7062
7063         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
7064         and imagine parts of a complex, so that they can have the same
7065         base and fall into the same group.
7066
7067 2010-07-21  Richard Guenther  <rguenther@suse.de>
7068
7069         PR lto/45018
7070         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
7071         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
7072         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
7073
7074 2010-07-21  Martin Jambor  <mjambor@suse.cz>
7075
7076         PR tree-optimization/44900
7077         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
7078         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
7079
7080 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
7081
7082         PR middle-end/44738
7083         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
7084
7085 2010-07-21  Richard Guenther  <rguenther@suse.de>
7086
7087         PR middle-end/45013
7088         * tree-ssa.c (useless_type_conversion_p): Dispatch to
7089         gimple_types_compatible_p only when in lto.
7090         * gimple.c (gimple_types_compatible_p): Use canonical types
7091         to speed up comparison.
7092
7093 2010-07-21  Richard Guenther  <rguenther@suse.de>
7094
7095         * tree-flow.h (referenced_var): Move define ...
7096         * tree-flow-inline.h (referenced_var): ... here as an inline
7097         function.  Assert here ...
7098         * tree-dfa.c (referenced_var_lookup): ... instead of here.
7099         * tree-ssa.c (maybe_optimize_var): Check if the variable
7100         is in referenced vars.
7101         (execute_update_addresses_taken): Remove old broken check.
7102         * gimple-pretty-print.c (pp_points_to_solution): Use
7103         referenced_var_lookup.
7104         * tree-into-ssa.c (dump_decl_set): Likewise.
7105
7106 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
7107
7108         PR debug/45003
7109         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
7110         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
7111         ZERO_EXTEND here.
7112
7113 2010-07-20  Richard Henderson  <rth@redhat.com>
7114
7115         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
7116
7117 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7118
7119         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
7120         computing the sum of the stack pointer and a large constant.
7121         * config/arm/constraints.md (M): Remove superfluous parentheses.
7122         (Pc): New constraint.
7123
7124 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7125
7126         PR debug/45006
7127         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
7128         operand's type if exp is tcc_unary class tree.
7129
7130 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7131
7132         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
7133         Reverse sense of if_then_else condition.
7134
7135 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
7136
7137         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
7138         * config/rs6000/rs6000.c (rs6000_override_options): Set
7139         rs6000_block_move_inline_limit appropriately.
7140         (expand_block_move): Use rs6000_block_move_inline_limit.
7141         * doc/invoke.texi (mblock-move-inline-limit): Document.
7142
7143 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
7144
7145         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
7146         FROM and TO.  All callers changed.  Don't look for tracked uses,
7147         just scan the RTL for DEBUG_INSNs and substitute.
7148         (reload_combine_recognize_pattern): Call fixup_debug_insns.
7149         (reload_combine): Ignore DEBUG_INSNs.
7150
7151 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
7152
7153         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
7154         depth to 8 from 5.
7155
7156         PR debug/45003
7157         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
7158         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
7159         instead of the result's type.
7160
7161 2010-07-20  Richard Guenther  <rguenther@suse.de>
7162
7163         PR tree-optimization/44977
7164         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
7165         SSA form.
7166
7167 2010-07-20  Richard Guenther  <rguenther@suse.de>
7168
7169         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
7170         (lto_symtab_merge_decls_2): Likewise.
7171         * gimple.h (gimple_types_compatible_p): Declare.
7172         * gimple.c (gimple_queue_type_fixup): Remove.
7173         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
7174         (gimple_compatible_complete_and_incomplete_type_p): New function.
7175         (gimple_types_compatible_p): Adjust.
7176         (gimple_register_type): Remove type fixup code.
7177         (print_gimple_types_stats): Adjust.
7178         (free_gimple_type_tables): Likewise.
7179         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
7180         * tree-ssa.c (useless_type_conversion_p): Likewise.
7181
7182 2010-07-20  Richard Guenther  <rguenther@suse.de>
7183
7184         PR middle-end/44971
7185         PR middle-end/44988
7186         * tree-ssa.c (maybe_optimize_var): New function split out from ...
7187         (execute_update_addresses_taken): ... here.
7188         (non_rewritable_mem_ref_base): Likewise.
7189         (execute_update_addresses_taken): Do not iterate over all referenced
7190         vars but just all local decls and parms.
7191         Properly check call and asm arguments and rewrite call arguments.
7192
7193 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
7194
7195         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
7196         to top level.
7197         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
7198         definitions ...
7199         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
7200         New macro.
7201         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
7202
7203 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
7204
7205         * gengtype.c (start_root_entry): New function, split out from
7206         write_root.  Check whether V is null and raise an error if so.
7207         (write_field_root): Check for V being null.  Don't raise an error here;
7208         set V to null instead.
7209         (write_root): Update comment above function.  Use start_root_entry.
7210
7211 2010-07-19  Xinliang David Li  <davidxl@google.com>
7212
7213         PR testsuite/44932
7214         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
7215         def edges.
7216         (find_uninit_use): Add dump.
7217         (is_use_properly_guarded): Ditto.
7218         (warn_uninitialized_phi): Ditto.
7219         (execute_late_warn_uninitialized): Ditto.
7220
7221 2010-07-19  Richard Guenther  <rguenther@suse.de>
7222
7223         PR middle-end/44941
7224         * expr.c (emit_block_move_hints): Move zero size check first.
7225         Move asserts to more useful places.
7226         * calls.c (load_register_parameters): Check for zero size.
7227
7228 2010-07-19  Richard Henderson  <rth@redhat.com>
7229
7230         * tree-optimize.c (execute_all_early_local_passes): New.  Change
7231         cgraph_state here ...
7232         (execute_early_local_optimizations): ... not here.  Remove.
7233         (pass_early_local_passes, pass_all_early_optimizations): Update.
7234
7235 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
7236
7237         * postreload.c (reload_combine_closest_single_use): Ignore the
7238         number of uses for DEBUG_INSNs.
7239         (fixup_debug_insns): New static function.
7240         (reload_combine_recognize_const_pattern): Use it.  Don't let the
7241         main loop be affected by DEBUG_INSNs.
7242         Really disallow moving adds past a jump insn.
7243         (reload_combine_recognize_pattern): Don't update use_ruid here.
7244         (reload_combine_note_use): Do it here.
7245         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
7246
7247 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
7248
7249         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
7250         of a loop.
7251         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
7252
7253 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
7254
7255         * config/i386/darwin.h: Define darwin_emit_branch_islands.
7256         (TARGET_MACHO_BRANCH_ISLANDS): New.
7257         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
7258         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
7259         default value.
7260         * config/i386/i386.c (output_pic_addr_const): Do not emit
7261         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
7262         (x86_output_mi_thunk): Adjust symbol creation.
7263         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
7264         Remove out of date comment.
7265         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
7266         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7267         (DARWIN_GENERATE_ISLANDS): Ditto.
7268         (output_call):  Do not emit branch islands unless
7269         darwin_emit_branch_islands is set.
7270         * config/darwin.c: Declare darwin_emit_branch_islands.
7271         (machopic_indirect_data_reference): Do not emit unless
7272         darwin_emit_branch_islands is set.
7273         (darwin_override_options): Set darwin_emit_branch_islands
7274         where it is needed.
7275         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
7276
7277 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7278
7279         * doc/sourcebuild.texi (Effective-Target Keywords): Document
7280         sse_runtime, sse2_runtime.
7281
7282 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
7283
7284         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
7285         low half of a single-register SCmode return value before ORing
7286         it with the high half.
7287         * config/mips/mips16.S (MERGE_GPRf): Likewise.
7288
7289 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7290
7291         PR target/44805
7292         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
7293         on all targets.
7294
7295 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
7296
7297         PR target/42235
7298         * postreload.c (reload_cse_move2add): Return bool, true if anything.
7299         changed.  All callers changed.
7300         (move2add_use_add2_insn): Likewise.
7301         (move2add_use_add3_insn): Likewise.
7302         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
7303         reload_combine.
7304         (RELOAD_COMBINE_MAX_USES): Bump to 16.
7305         (last_jump_ruid): New static variable.
7306         (struct reg_use): New members CONTAINING_MEM and RUID.
7307         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
7308         (reload_combine_split_one_ruid, reload_combine_split_ruids,
7309         reload_combine_purge_insn_uses, reload_combine_closest_single_use
7310         reload_combine_purge_reg_uses_after_ruid,
7311         reload_combine_recognize_const_pattern): New static functions.
7312         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
7313         is true for our reg and that we have available index regs.
7314         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
7315         callers changed.  Use them to initialize fields in struct reg_use.
7316         (reload_combine): Initialize last_jump_ruid.  Be careful when to
7317         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
7318         Call reload_combine_recognize_const_pattern.
7319         (reload_combine_note_store): Update REAL_STORE_RUID field.
7320
7321 2010-07-16  Jason Merrill  <jason@redhat.com>
7322
7323         * Makefile.in (opts-common.o): Depend on options.h.
7324
7325 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7326
7327         * tree.c (build_common_builtin_nodes): Use build_function_type_list
7328         instead of build_function_type.
7329         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
7330         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7331
7332 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7333
7334         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
7335         do all the work.
7336         (rs6000_emit_int_cmove): Use function pointers for insn generation.
7337         Don't force values into registers unnecessarily.
7338         (output_isel): Assert that we're not given conditions we can't handle.
7339         Delete corresponding code.
7340         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
7341         scc_comparison_operator constraint.  Permit 0 for the consequent
7342         operand.  Permit any GPR for the alternative operand.
7343         (isel_unsigned_<mode>): Likewise.
7344
7345 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
7346
7347         PR target/44942
7348         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
7349         argument to const_tree.
7350         * config/i386/i386.c (function_arg_advance): If padding needs to be
7351         inserted before argument, increment cum->words by number of padding
7352         words as well.
7353         (contains_aligned_value_p): Change argument to const_tree.
7354         (ix86_function_arg_boundary): Change second argument to const_tree.
7355
7356 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
7357
7358         PR target/42235
7359         * function.c (record_hard_reg_sets): New static function.
7360         (assign_parm_setup_reg): If an optab for extending exists and the
7361         generated code clobbbers no hard regs, emit the insn directly and
7362         create a REG_EQUIV note.
7363
7364 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7365
7366         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
7367         TREE_CHAIN.
7368         * c-typeck.c (push_init_level): Likewise.
7369         (process_init_element): Likewise.
7370
7371 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
7372
7373         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
7374         (integer_three_node): Add.
7375         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
7376         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
7377         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
7378         of call build_int_cst.
7379         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
7380         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
7381         (find_interesting_uses_address): Ditto.
7382         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
7383         * tree-eh.c (lower_eh_constructs_2): Ditto.
7384         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
7385         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
7386         * expmed.c (expand_divmod): Ditto.
7387         * tree-mudflap.c (mx_register_decls): Ditto.
7388         * varasm.c (array_size_for_constructor): Ditto.
7389         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
7390         * c-parser.c (c_parser_postfix_expression): Ditto.
7391
7392 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
7393
7394         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
7395         New static variables.
7396         (reload_combine_recognize_pattern): New static function, broken out
7397         of reload_combine.
7398         (reload_combine): Use it.  Only initialize first_index_reg and
7399         last_index_reg once.
7400
7401 2010-07-15  Richard Henderson  <rth@redhat.com>
7402
7403         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
7404         when done.
7405
7406 2010-07-15  Jan Hubicka  <jh@suse.cz>
7407
7408         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
7409         comdats for broken gold.
7410         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
7411
7412 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7413
7414         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
7415
7416 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7417
7418         * tree.h (DECL_CHAIN): Define.
7419         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
7420         * c-decl.c: Likewise.
7421         * c-parser.c: Likewise.
7422         * c-typeck.c: Likewise.
7423         * cfgexpand.c: Likewise.
7424         * cgraph.c: Likewise.
7425         * cgraphunit.c: Likewise.
7426         * combine.c: Likewise.
7427         * config/alpha/alpha.c: Likewise.
7428         * config/arm/arm.c: Likewise.
7429         * config/frv/frv.c: Likewise.
7430         * config/i386/i386.c: Likewise.
7431         * config/i386/winnt-cxx.c: Likewise.
7432         * config/ia64/ia64.c: Likewise.
7433         * config/iq2000/iq2000.c: Likewise.
7434         * config/mep/mep.c: Likewise.
7435         * config/mips/mips.c: Likewise.
7436         * config/pa/som.h: Likewise.
7437         * config/rs6000/rs6000.c: Likewise.
7438         * config/s390/s390.c: Likewise.
7439         * config/sh/sh.c: Likewise.
7440         * config/sh/symbian-cxx.c: Likewise.
7441         * config/sparc/sparc.c: Likewise.
7442         * config/spu/spu.c: Likewise.
7443         * config/stormy16/stormy16.c: Likewise.
7444         * config/vxworks.c: Likewise.
7445         * config/xtensa/xtensa.c: Likewise.
7446         * coverage.c: Likewise.
7447         * dbxout.c: Likewise.
7448         * dwarf2out.c: Likewise.
7449         * emit-rtl.c: Likewise.
7450         * expr.c: Likewise.
7451         * function.c: Likewise.
7452         * gimple-low.c: Likewise.
7453         * gimple-pretty-print.c: Likewise.
7454         * gimplify.c: Likewise.
7455         * integrate.c: Likewise.
7456         * ipa-inline.c: Likewise.
7457         * ipa-prop.c: Likewise.
7458         * ipa-split.c: Likewise.
7459         * ipa-struct-reorg.c: Likewise.
7460         * ipa-type-escape.c: Likewise.
7461         * langhooks.c: Likewise.
7462         * lto-cgraph.c: Likewise.
7463         * omp-low.c: Likewise.
7464         * stor-layout.c: Likewise.
7465         * tree-cfg.c: Likewise.
7466         * tree-complex.c: Likewise.
7467         * tree-dfa.c: Likewise.
7468         * tree-dump.c: Likewise.
7469         * tree-inline.c: Likewise.
7470         * tree-mudflap.c: Likewise.
7471         * tree-nested.c: Likewise.
7472         * tree-object-size.c: Likewise.
7473         * tree-pretty-print.c: Likewise.
7474         * tree-sra.c: Likewise.
7475         * tree-ssa-live.c: Likewise.
7476         * tree-ssa-loop-niter.c: Likewise.
7477         * tree-ssa-math-opts.c: Likewise.
7478         * tree-ssa-reassoc.c: Likewise.
7479         * tree-ssa-sccvn.c: Likewise.
7480         * tree-ssa-structalias.c: Likewise.
7481         * tree-tailcall.c: Likewise.
7482         * tree-vrp.c: Likewise.
7483         * tree.c: Likewise.
7484         * var-tracking.c: Likewise.
7485         * varasm.c: Likewise.
7486
7487 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7488
7489         PR target/44877
7490         * config/spu/spu.c (spu_expand_builtin_1): Allow references
7491         (as well as pointers) as argument to mask_for_load builtins.
7492
7493 2010-07-15  Richard Guenther  <rguenther@suse.de>
7494
7495         PR tree-optimization/44946
7496         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
7497         with accessing only padding properly.
7498
7499 2010-07-15  Jan Hubicka  <jh@suse.cz>
7500
7501         * ipa.c (function_and_variable_visibility): Variables marked as used
7502         should not be localized.
7503
7504 2010-07-15  Jan Hubicka  <jh@suse.cz>
7505
7506         * cgraph.c: Include lto-streamer.h
7507         (change_decl_assembler_name): Work when assembler name hash is at place.
7508         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
7509         be sure to rename it to avoid name clash.
7510         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
7511         Localize hidden symbols only when locally defined.
7512
7513 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
7514
7515         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
7516
7517 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
7518             Kevin F. Quinn  <kevquinn@gentoo.org>
7519
7520         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
7521         * common.opt: Add -Wtrampolines.
7522         * doc/invoke.texi: Add -Wtrampolines.
7523
7524 2010-07-15  Jie Zhang  <jie@codesourcery.com>
7525
7526         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
7527         cortex_a8_issue_ls.
7528
7529 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
7530
7531         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
7532         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
7533
7534 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7535
7536         * config/spu/spu.c (reg_names): Remove prototype.
7537         (call_used_regs): Likewise.
7538
7539 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7540
7541         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
7542         "unused" with attribute "used".
7543         (__JCR_END__): Likewise.
7544         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
7545         "used" attribute.
7546         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
7547
7548 2010-07-14  Richard Guenther  <rguenther@suse.de>
7549
7550         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
7551         (maybe_fixup_decls): Likewise.
7552         (input_gimple_stmt): Do not fixup anything.
7553         * lto-streamer-out.c (output_gimple_stmt): Make sure all
7554         non-automatic variable uses are wrapped inside a MEM_REF.
7555
7556 2010-07-14  Richard Henderson  <rth@redhat.com>
7557
7558         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
7559         for functions.
7560         * varasm.c (assemble_variable): Remove early exit for functions;
7561         assert that we're given a variable.
7562
7563 2010-07-14  Jie Zhang  <jie@codesourcery.com>
7564
7565         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
7566         cortex_a8_default when neon_type is not none.
7567
7568 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7569
7570         * lower-subreg.c (subreg_context): New static bitmap.
7571         (decompose_multiword_subregs): Allocate and free it.
7572         (find_decomposable_subregs): Set a bit in it for a register that
7573         occurs in a subreg that changes mode but not size.
7574         (can_decompose_p): Test it instead of non_decomposable_context.
7575
7576 2010-07-14  Richard Guenther  <rguenther@suse.de>
7577
7578         PR tree-optimization/44824
7579         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
7580         is_gimple_mem_ref_addr.
7581         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
7582         non-decl_address_invariant_p addresses.
7583
7584 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7585
7586         * reload.c (find_reloads): Revert code to penalize small register
7587         classes that was brought in with the IRA merge.
7588
7589 2010-07-14  Richard Guenther  <rguenther@suse.de>
7590
7591         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
7592         as base of ARRAY_REFs.
7593
7594 2010-07-14  Richard Guenther  <rguenther@suse.de>
7595
7596         PR middle-end/44930
7597         * tree-pretty-print.c (do_niy): Do not print a newline.
7598
7599 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7600
7601         * ira-int.h (struct ira_object): New.
7602         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
7603         (struct ira_allocno): Remove members min, max,
7604         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
7605         conflict_allocnos_num and conflict_vec_p.  Add new member object.
7606         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
7607         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
7608         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
7609         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
7610         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
7611         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
7612         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
7613         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
7614         an ira_object_t rather than ira_allocno_t.  All uses changed.
7615         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7616         contains a vector of ira_object_t; all uses changed.
7617         (ira_objects_num): Declare variable.
7618         (ira_create_allocno_object): Declare function.
7619         (ira_conflict_vector_profitable_p): Adjust prototype.
7620         (ira_allocate_conflict_vec): Renamed from
7621         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
7622         (ira_allocate_object_conflicts): Renamed from
7623         ira_allocate_allocno_conflicts; first arg now ira_object_t.
7624         (struct ira_object_iterator): New.
7625         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
7626         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
7627         to conflict_vec_p.  All uses changed.
7628         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
7629         Changed to take into account that conflicts are now tracked for
7630         objects.
7631         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
7632         Args changed to accept ira_object_t.  All uses changed.
7633         (allocnos_conflict_p): New static function.
7634         (collected_conflict_objects): Renamed from collected_allocno_objects;
7635         now a vector of ira_object_t.  All uses changed.
7636         (build_conflict_bit_table): Changed to take into account that
7637         conflicts are now tracked for objects.
7638         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
7639         (print_allocno_conflicts, ira_build_conflicts): Likewise.
7640         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
7641         setup_allocno_left_conflicts_size, allocno_reload_assign,
7642         fast_allocation): Likewise.
7643         * ira-lives.c (make_hard_regno_born, make_allocno_born)
7644         process_single_reg_class_operands, process_bb_node_lives): Likewise.
7645         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
7646         Likewise.
7647         * ira-build.c (ira_objects_num): New variable.
7648         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7649         contains a vector of ira_object_t; all uses changed.
7650         (ira_object_id_map_vec): Corresponding change.
7651         (object_pool): New static variable.
7652         (initiate_allocnos): Initialize it.
7653         (finish_allocnos): Free it.
7654         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
7655         New functions.
7656         (ira_create_allocno): Don't set members that were removed.
7657         (ira_set_allocno_cover_class): Don't change conflict hard regs.
7658         (merge_hard_reg_conflicts): Changed to take into account that
7659         conflicts are now tracked for objects.
7660         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
7661         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
7662         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
7663         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
7664         setup_min_max_conflict_allocno_ids, ):  Likewise.
7665         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
7666         to ira_object_t; all callers changed.
7667         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
7668         to ira_object_t, all callers changed.
7669         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
7670         to ira_object_t, all callers changed.
7671         (conflict_check, curr_conflict_check_tick): Renamed from
7672         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
7673         changed.
7674         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
7675         arg changed to ira_object_t, all callers changed.
7676         (create_cap_allocno): Call ira_create_allocno_object.
7677         (finish_allocno): Free the corresponding object.
7678         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
7679         callers changed.  Adjusted for dealing with objects.
7680         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
7681         dealing with objects.
7682         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
7683
7684         * ira-int.h (struct live_range): Rename allocno member to object
7685         and change type to ira_object_t.
7686         (struct ira_object): New member live_ranges.
7687         (struct ira_allocno): Remove member live_ranges.
7688         (ALLOCNO_LIVE_RANGES): Remove.
7689         (OBJECT_LIVE_RANGES): New macro.
7690         (ira_create_live_range, ira_copy_live_range_list,
7691         ira_merge_live_range_list, ira_live_ranges_intersect_p,
7692         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
7693         * ira-build.c (ira_create_object): Initialize live ranges here.
7694         (ira_create_allocno): Not here.
7695         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
7696         changed to ira_object_t, all callers changed.
7697         (copy_live_range): Rename from copy_allocno_live_range, all callers
7698         changed.
7699         (ira_copy_live_range_list): Rename from
7700         ira_copy_allocno_live_range_list, all callers changed.
7701         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
7702         all callers changed.
7703         (ira_live_ranges_intersect_p): Rename from
7704         ira_allocno_live_ranges_intersect_p, all callers changed.
7705         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
7706         callers changed.
7707         (ira_finish_live_range_list): Rename from
7708         ira_finish_allocno_live_range_list, all callers changed.
7709         (change_object_in_range_list): Rename from change_allocno_in_range_list,
7710         last arg changed to ira_object_t, all callers changed.
7711         (finish_allocno): Changed to expect live ranges in the allocno's object.
7712         (move_allocno_live_ranges, copy_allocno_live_ranges,
7713         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
7714         ira_flattening, ira_build): Likewise.
7715         * ira-color.c (allocnos_have_intersected_live_ranges_p,
7716         slot_coalesced_allocno_live_ranges_intersect,
7717         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
7718         * ira-conflicts.c (build_conflict_bit_table): Likewise.
7719         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
7720         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
7721         make_allocno_dead, create_start_finish_chains,
7722         remove_some_program_points_and_update_live_ranges,
7723         ira_debug_live_range_list): Likewise.
7724
7725         * ira-int.h (ira_object_conflict_iterator): Rename from
7726         ira_allocno_conflict_iterator.
7727         (ira_object_conflict_iter_init): Rename from
7728         ira_allocno_conflict_iter_init, second arg changed to
7729         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
7730         FOR_EACH_ALLOCNO_CONFLICT.
7731         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
7732         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
7733         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
7734         * ira-conflicts.c (print_allocno_conflicts): Likewise.
7735
7736 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
7737
7738         PR other/44874
7739         * tree-dump.c (dump_options): Add enumerate_locals entry.
7740         Add TDF_NOID exclusion to all entry.
7741         * tree-dump.h (dump_enumerated_decls): Declare.
7742         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
7743         Don't display type uid.
7744         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
7745         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
7746         * tree-ssa-live.c: Include gimple.h.
7747         (numbered_tree_d): New struct.
7748         (numbered_tree): New typedef.
7749         (DEF_VEC_O (numbered_tree): New.
7750         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
7751         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
7752         (dump_enumerated_decls): Likewise.
7753         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
7754         debug info and flag_dump_final_insns, call dump_enumerated_decls.
7755         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
7756         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
7757
7758 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
7759
7760         * expmed.h (MAX_BITS_PER_WORD): Move to...
7761         * defaults.h (MAX_BITS_PER_WORD): ...here.
7762
7763 2010-07-13  DJ Delorie  <dj@redhat.com>
7764
7765         * config/h8300/h8300.c (h8300_init_once): Default to
7766         -fstrict_volatile_bitfields.
7767
7768         * config/sh/sh.c (sh_override_options): Default to
7769         -fstrict_volatile_bitfields.
7770
7771         * config/rx/rx.c (rx_option_override): New.
7772
7773         * config/m32c/m32c.c (m32c_override_options): Default to
7774         -fstrict_volatile_bitfields.
7775
7776 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
7777
7778         * tree.h (build_function_call_expr): Delete.
7779         (build_call_expr_loc_array): New function.
7780         (build_call_expr_loc_vec): New function.
7781         * tree-flow.h (struct omp_region): Change type of ws_args field
7782         to a VEC.
7783         * builtins.c (build_function_call_expr): Delete.
7784         (build_call_expr_loc_array): New function.
7785         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
7786         (build_call_expr): Likewise.
7787         (build_call_expr_loc_vec): New function.
7788         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
7789         build_function_call_expr.
7790         * expr.c (emutls_var_address): Likewise.
7791         * varasm.c (emutls_common_1): Likewise.
7792         * omp-low.c (expand_omp_atomic_mutex): Likewise.
7793         (expand_omp_taskreg): Adjust for new type of region->ws_args.
7794         (get_ws_args_for): Return a VEC instead of a tree.
7795         (expand_parallel_call): Call build_call_expr_loc_vec instead of
7796         build_function_call_expr.
7797         * stor-layout.c (self_referential_size): Likewise.
7798
7799 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7800
7801         PR testsuite/44701
7802         * recog.c (constrain_operands): Allow side-effects in memory
7803         operands if either < or > constraint is used, rather than if
7804         both < and > is used.
7805
7806 2010-07-13  Richard Guenther  <rguenther@suse.de>
7807
7808         PR middle-end/44911
7809         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
7810         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
7811         without name.
7812
7813 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7814
7815         PR target/44761
7816         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
7817         to variable emited.
7818         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
7819         * config/sh/sh.md (symGOT_load): Likewise.
7820         (symDTPOFF2reg): Likewise.
7821         (symTPOFF2reg): Likewise.
7822
7823 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7824
7825         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
7826         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
7827
7828 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7829
7830         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
7831         explanation.
7832         Find ucontext_t * on Solaris 11.
7833         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
7834         Handle new Solaris 11 __sighndlr patterns.
7835
7836 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7837
7838         PR debug/44901
7839         * vec.h (VEC_block_remove): Fix comment.
7840         * tree-ssa-live.c (remove_unused_locals): Don't use
7841         VEC_unordered_remove on local_decls, instead replace a single
7842         vector element in each iteration if at least one element had
7843         to be removed and VEC_truncate at the end.
7844         * omp-low.c (expand_omp_taskreg): Likewise.
7845
7846 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7847
7848         * c-decl.c (finish_function): Fix typo in comment.
7849
7850 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
7851
7852         PR bootstrap/44921
7853         * postreload.c (move2add_use_add3_insn): Silence gcc warning
7854         on min_regno.
7855
7856 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
7857
7858         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
7859         (simplify_stmt_using_ranges): Use it.
7860
7861 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7862
7863         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
7864         member.  Do not mark as GTY(()).
7865         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
7866         (spu_builtin_decls): New static variable.
7867         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
7868         (spu_init_builtins): Likewise.
7869         (spu_builtin_mul_widen_even): Likewise.
7870         (spu_builtin_mul_widen_odd): Likewise.
7871         (spu_builtin_mask_for_load): Likewise.
7872         (spu_builtin_vec_perm): Likewise.
7873         * config/spu/spu-c.c: Include "target.h".
7874         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
7875         of using spu_builtins[].fndecl.
7876
7877 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7878
7879         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
7880         imply -minterlink-mips16.
7881
7882 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7883
7884         * config/mips/mips.h (mips16_globals): Declare.
7885         (SWITCHABLE_TARGET): Define.
7886         * config/mips/mips.c: Include target-globals.h.
7887         (mips16_globals): New variable.
7888         (mips_set_mips16_mode): Use save_target_globals and
7889         restore_target_globals instead of target_reinit.
7890
7891 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7892
7893         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
7894         to say that the function can be called more than once.
7895         * target-globals.c (save_target_globals): Call init_reg_sets.
7896
7897 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7898
7899         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
7900         * bb-reorder.h: New file.
7901         * bb-reorder.c (default_target_bb_reorder): New variable.
7902         (this_target_bb_reorder): New conditional variable.
7903         (uncond_jump_length): Redefine as a macro.
7904         * target-globals.h (this_target_bb_reorder): Declare.
7905         (target_globals): Add a bb_reorder field.
7906         (restore_target_globals): Copy the bb_reorder field to
7907         this_target_bb-reorder.
7908         * target-globals.c: Include bb-reorder.h.
7909         (default_target_globals): Initialize the bb_reorder field.
7910         (save_target_globals): Likewise.
7911
7912 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7913
7914         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
7915         * gcse.h: New file.
7916         * gcse.c: Include gcse.h.
7917         (default_target_gcse): New variable.
7918         (this_target_gcse): New conditional variable.
7919         (can_copy): Redefine as a macro.
7920         (can_copy_init_p): New macro.
7921         (can_copy_p): Remove can_copy_init_p.
7922         * target-globals.h (this_target_gcse): Declare.
7923         (target_globals): Add a gcse field.
7924         (restore_target_globals): Copy the gcse field to this_target_gcse.
7925         * target-globals.c: Include gcse.h.
7926         (default_target_globals): Initialize the gcse field.
7927         (save_target_globals): Likewise.
7928
7929 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7930
7931         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
7932         and x_ira_prohibited_mode_move_regs_initialized_p.
7933         (ira_prohibited_mode_move_regs): Redefine as a macro.
7934         * ira.c (ira_prohibited_mode_move_regs): Delete.
7935         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
7936
7937 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7938
7939         * reload.h (target_reload): Add x_cached_reg_save_code and
7940         x_cached_reg_restore_code.
7941         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
7942         Redefine as macros.
7943
7944 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7945
7946         * Makefile.in (target-globals.o): Depend on builtins.h.
7947         * builtins.h: New file.
7948         * builtins.c: Include builtins.h.
7949         (default_target_builtins): New variable.
7950         (this_target_builtins): New conditional variable.
7951         (apply_args_mode, apply_result_mode): Redefine as macros.
7952         * target-globals.h (this_target_builtins): Declare.
7953         (target_globals): Add a builtins field.
7954         (restore_target_globals): Copy the builtins field to
7955         this_target_builtins.
7956         * target-globals.c: Include builtins.h.
7957         (default_target_globals): Initialize the builtins field.
7958         (save_target_globals): Likewise.
7959
7960 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7961
7962         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
7963         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
7964         from expmed.c.
7965         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
7966         (alg_hash, alg_hash_used_p): New macros.
7967         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
7968         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
7969         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
7970
7971 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7972
7973         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
7974         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
7975         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
7976         (this_op_costs, costs_classes): Redefine as macros.
7977         (record_reg_classes): Don't take op_costs as a parameter.
7978         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
7979         (scan_one_insn): Update call to record_operand_costs.
7980
7981 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7982
7983         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
7984         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
7985         (target_ira_int): New structure.
7986         (default_target_ira_int): Declare.
7987         (this_target_ira_int): Declare as a variable or define as a macro.
7988         (ira_reg_mode_hard_regset, ira_register_move_cost)
7989         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
7990         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
7991         (prohibited_class_mode_regs, ira_important_classes_num)
7992         (ira_important_classes, ira_reg_class_intersect)
7993         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
7994         (ira_reg_class_union): Redefine as macros.
7995         * ira.h (target_ira): New structure.
7996         (default_target_ira): Declare.
7997         (this_target_ira): Declare as a variable or define as a macro.
7998         (ira_available_class_regs, ira_hard_regno_cover_class)
7999         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
8000         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
8001         (ira_class_hard_regs_num): Redefine as macros.
8002         * ira.c (default_target_ira, default_target_ira_int): New variables.
8003         (this_target_ira, this_target_ira_int): New conditional variables.
8004         (ira_reg_mode_hard_regset, ira_memory_move_cost)
8005         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
8006         (ira_class_subset_p): Delete.
8007         (no_unit_alloc_regs): Redefine as a macro.
8008         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
8009         (ira_class_hard_regs_num, ira_class_hard_reg_index)
8010         (ira_available_class_regs): Delete.
8011         (alloc_reg_class_subclasses): Redefine as a macro.
8012         (ira_reg_class_cover_size, ira_reg_class_cover)
8013         (ira_important_classes_num, ira_important_classes)
8014         (ira_important_class_nums, ira_class_translate): Delete.
8015         (cover_class_order): Document the variable's lifetime.
8016         (reorder_important_classes): Don't set ira_important_class_nums.
8017         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
8018         (ira_reg_class_super_classes, ira_reg_class_union)
8019         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
8020         Delete.
8021         (setup_reg_class_nregs): Don't set ira_max_regs.
8022         (prohibited_class_mode_regs): Delete.
8023         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
8024         (target_globals): Add ira and ira_int fields.
8025         (restore_target_globals): Copy the ira field to this_target_ira
8026         and the ira_int field to this_target_ira_int.
8027         * target-globals.c: Include ira-int.h.
8028         (default_target_globals): Initialize the ira and ira_int fields.
8029         (save_target_globals): Likewise.
8030
8031 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8032
8033         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
8034         * cfgloop.h (target_cfgloop): New structure.
8035         (default_target_cfgloop): Declare.
8036         (this_target_cfgloop): Declare as a variable or define as a macro.
8037         (target_avail_regs, target_clobbered_regs, target_res_regs)
8038         (target_reg_cost, target_spill_cost): Redefine as macros.
8039         * cfgloopanal.c (default_target_cfgloop): New variable.
8040         (this_target_cfgloop): New conditional variable.
8041         (target_avail_regs, target_clobbered_regs, target_res_regs)
8042         (target_reg_cost, target_spill_cost): Delete.
8043         * target-globals.h (this_target_cfgloop): Declare.
8044         (target_globals): Add a cfgloop field.
8045         (restore_target_globals): Copy the cfgloop field to
8046         this_target_cfgloop.
8047         * target-globals.c: Include cfgloop.h.
8048         (default_target_globals): Initialize the cfgloop field.
8049         (save_target_globals): Likewise.
8050
8051 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8052
8053         * regs.h (target_regs): Add x_direct_load, x_direct_store and
8054         x_float_extend_from_mem.
8055         (direct_load, direct_store, float_extend_from_mem): New macros.
8056         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
8057
8058 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8059
8060         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
8061         (target-globals.o): Depend on $(LIBFUNCS_H).
8062         * libfuncs.h: Include hashtab.h.
8063         (libfunc_entry): Moved from optabs.c.
8064         (target_libfuncs): New structure.
8065         (default_target_libfuncs): Declare.
8066         (this_target_libfuncs): Declare as a variable or define as a macro.
8067         (libfunc_table): Redefine as a macro.
8068         * optabs.c (default_target_libfuncs): New variable.
8069         (this_target_libfuncs): New conditional variable.
8070         (libfunc_table): Delete.
8071         (libfunc_entry): Moved to optabs.h.
8072         (libfunc_hash): Redefine as a macro.
8073         (hash_libfunc, eq_libfunc): Fix comments.
8074         (init_optabs): Use libfunc_hash to detect cases where the function
8075         has already been called.  Clear the hash table instead of
8076         recreating it.
8077         * target-globals.h (this_target_libfuncs): Declare.
8078         (target_globals): Add a libfuncs field.
8079         (restore_target_globals): Copy the libfuncs field to
8080         this_target_libfuncs.
8081         * target-globals.c: Include libfuncs.h.
8082         (default_target_globals): Initialize the libfuncs field.
8083         (save_target_globals): Likewise.
8084
8085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8086
8087         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
8088         in all dependency lists.
8089
8090 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8091
8092         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
8093         * optabs.h (target_optabs): New structure.
8094         (default_target_optabs): Declare.
8095         (this_target_optabs): Declare as a variable or define as a macro.
8096         (optab_table, convert_optab_table, direct_optab_table): Redefine
8097         as macros.
8098         * optabs.c (default_target_optabs): New variable.
8099         (this_target_optabs): New conditional variable.
8100         (optab_table, convert_optab_table, direct_optab_table): Delete.
8101         * target-globals.h (this_target_optabs): Declare.
8102         (target_globals): Add a optabs field.
8103         (restore_target_globals): Copy the optabs field to
8104         this_target_optabs.
8105         * target-globals.c: Include expr.h and optabs.h.
8106         (default_target_globals): Initialize the optabs field.
8107         (save_target_globals): Likewise.
8108
8109 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8110
8111         * flags.h (target_flagstate): Add x_flag_excess_precision.
8112         (flag_excess_precision): Redefine as a macro.
8113         * toplev.c (flag_excess_precision): Delete.
8114
8115 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8116
8117         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
8118         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
8119         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
8120         (no_caller_save_reg_set): Redefine as a macro.
8121         * reload.h (target_reload): Add x_caller_save_initialized_p and
8122         x_regno_save_mode.
8123         (caller_save_initialized_p): Redefine as a macro.
8124         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
8125         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
8126         (regno_save_mode): Redefine as a macro.
8127
8128 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8129
8130         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
8131         * expmed.h: New file.
8132         * expmed.c (default_target_costs): New variable.
8133         (this_target_costs): New conditional variable.
8134         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
8135         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
8136         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
8137         * target-globals.h (this_target_expmed): Declare.
8138         (target_globals): Add a expmed field.
8139         (restore_target_globals): Copy the expmed field to
8140         this_target_expmed.
8141         * target-globals.c: Include expmed.h.
8142         (default_target_globals): Initialize the expmed field.
8143         (save_target_globals): Likewise.
8144
8145 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8146
8147         * Makefile.in (target-globals.o): Depend on reload.h.
8148         * reload.h (target_reload): New structure.
8149         (default_target_reload): Declare.
8150         (this_target_reload): Declare as a variable or define as a macro.
8151         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
8152         * reload1.c (default_target_reload): New variable
8153         (this_target_reload): New conditional variable.
8154         (indirect_symref_ok, double_reg_address_ok): Delete.
8155         (spill_indirect_levels): Redefine as a macro.
8156         * target-globals.h (this_target_reload): Declare.
8157         (target_globals): Add a reload field.
8158         (restore_target_globals): Copy the reload field to
8159         this_target_reload.
8160         * target-globals.c: Include hard-reg-set.h.
8161         (default_target_globals): Initialize the reload field.
8162         (save_target_globals): Likewise.
8163
8164 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8165
8166         * rtl.h (target_rtl): Add x_static_reg_base_value.
8167         * alias.c (static_reg_base_value): Redefine as a macro.
8168
8169 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8170
8171         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
8172         (GTFILES): Remove reginfo.c.
8173         * rtl.h (target_rtl): Add x_top_of_stack.
8174         (top_of_stack): New macro.
8175         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
8176         (top_of_stack): Delete.
8177
8178 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8179
8180         * regs.h (target_regs): Add x_hard_regs_of_mode,
8181         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
8182         x_may_move_out_cost and x_last_mode_for_init_move_cost.
8183         (have_regs_of_mode, contains_reg_of_mode, move_cost)
8184         (may_move_in_cost, may_move_out_cost): Redefine as macros.
8185         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
8186         (may_move_in_cost, may_move_out_cost): Delete.
8187         (last_mode_for_init_move_cost): Redefine as a macro.
8188
8189 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8190
8191         * hard-reg-set.h (target_hard_regs): New structure.
8192         (default_target_hard_regs): Declare.
8193         (this_target_hard_regs): Declare as a variable or define as a macro.
8194         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
8195         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
8196         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
8197         (reg_class_size, reg_class_subclasses, reg_class_subunion)
8198         (reg_class_superunion, reg_names): Redefine as macros.
8199         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
8200         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
8201         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
8202         (reg_class_contents, reg_class_size, reg_class_subclasses)
8203         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
8204         (default_target_hard_regs): New variable
8205         (this_target_hard_regs, initial_call_really_used_regs)
8206         (initial_reg_alloc_order): New conditional variables.
8207         (initial_reg_names): New variable.
8208         (init_reg_sets): Assert that initial_call_really_used_regs,
8209         initial_reg_alloc_order and initial_reg_names
8210         are all the same size as their variable counterparts.  Use them to
8211         initialize those counterparts.
8212         * target-globals.h (this_target_hard_regs): Declare.
8213         (target_globals): Add a hard_regs field.
8214         (restore_target_globals): Copy the hard_regs field to
8215         this_target_hard_regs.
8216         * target-globals.c: Include hard-reg-set.h.
8217         (default_target_globals): Initialize the hard_regs field.
8218         (save_target_globals): Likewise.
8219
8220 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8221
8222         * Makefile.in (target-globals.o): Depend on $(RTL_H).
8223         * rtl.h (target_rtl): New structure.
8224         (default_target_rtl): Declare.
8225         (this_target_rtl): Declare as a variable or define as a macro.
8226         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
8227         Redefine as macros.
8228         * emit-rtl.c (default_target_rtl): New variable.
8229         (this_target_rtl): New conditional variable.
8230         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
8231         (return_address_pointer_rtx): Delete.
8232         (initial_regno_reg_rtx): New macro.
8233         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
8234         (init_emit_regs): Likewise.
8235         * target-globals.h (this_target_rtl): Declare.
8236         (target_globals): Add a rtl field.
8237         (restore_target_globals): Copy the rtl field to this_target_rtl.
8238         * target-globals.c: Include rtl.h.
8239         (default_target_globals): Initialize the rtl field.
8240         (save_target_globals): Likewise.
8241
8242 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8243
8244         * Makefile.in (target-globals.o): Depend on $(REGS_H).
8245         * regs.h (target_reg_modes): New structure.
8246         (default_target_reg_modes): Declare.
8247         (this_target_reg_modes): Declare as a variable or define as a macro.
8248         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
8249         * reginfo.c (default_target_reg_modes): New variable.
8250         (this_target_reg_modes): New conditional variable.
8251         (hard_regno_nregs, reg_raw_mode): Delete.
8252         * target-globals.h (this_target_regs): Declare.
8253         (target_globals): Add a regs field.
8254         (restore_target_globals): Copy the regs field to this_target_regs.
8255         * target-globals.c: Include regs.h.
8256         (default_target_globals): Initialize the regs field.
8257         (save_target_globals): Likewise.
8258
8259 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
8260
8261         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
8262         * doc/tm.texi: Regenerate.
8263         * Makefile.in (OBJS-common): Add target-globals.o.
8264         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
8265         and target-globals.h.
8266         (target-globals.o): New rule.
8267         (GTFILES): Include $(srcdir)/target-globals.h.
8268         * defaults.h (SWITCHABLE_TARGET): Define.
8269         * gengtype.c (open_base_files): Add target-globals.h to the
8270         list of includes.
8271         * target-globals.h: New file.
8272         * target-globals.c: Likewise.
8273
8274         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
8275         * flags.h (target_flag_state): New structure.
8276         (default_target_flag_state): Declare.
8277         (this_target_flag_state): Declare as a variable or define as a macro.
8278         (align_loops_log): Redefine as a macro.
8279         (align_loops_max_skip, align_jumps_log): Likewise.
8280         (align_jumps_max_skip, align_labels_log): Likewise.
8281         (align_labels_max_skip, align_functions_log): Likewise.
8282         * toplev.c (default_target_flag_state): New variable.
8283         (this_target_flag_state): New conditional variable.
8284         (align_loops_log): Delete.
8285         (align_loops_max_skip, align_jumps_log): Likewise.
8286         (align_jumps_max_skip, align_labels_log): Likewise.
8287         (align_labels_max_skip, align_functions_log): Likewise.
8288         * target-globals.h (this_target_flag_state): Declare.
8289         (target_globals): Add a flag_state field.
8290         (restore_target_globals): Copy the flag_state field to
8291         this_target_flag_state.
8292         * target-globals.c: Include flags.h.
8293         (default_target_globals): Initialize the flag_state field.
8294         (save_target_globals): Likewise.
8295
8296 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8297
8298         * postreload.c (reg_symbol_ref[]): New.
8299         (move2add_use_add2_insn): New.
8300         (move2add_use_add3_insn): New.
8301         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
8302         (move2add_note_store): Likewise.
8303
8304 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
8305
8306         PR rtl-optimization/44752
8307         * genautomata.c (main): Don't emit an empty file even if there
8308         is no automaton.
8309
8310 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8311
8312         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
8313         ix86_solaris_return_in_memory.
8314         * config/i386-protos.h: Reflect this.
8315         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8316         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8317         Move ...
8318         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
8319
8320 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8321
8322         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
8323         align the stack when it's going to be saved.
8324
8325 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8326
8327         PR pch/14940
8328         * config/host-solaris.c (mmap_fixed): New function.
8329         (sol_gt_pch_get_address): Use it.
8330         (sol_gt_pch_use_address): Likewise.
8331
8332 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8333
8334         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
8335         pentiumpro on Solaris 8 and 9/x86.
8336         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
8337         Document SSE/SSE2 support.
8338         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
8339
8340 2010-07-12  Andi Kleen  <ak@linux.intel.com>
8341
8342         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
8343         instead of gcc_assert to print better error message for multiple
8344         prevailing defs.
8345
8346 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
8347
8348         * config/i386/i386.c (ix86_asm_output_function_label): Change format
8349         string placeholder from 0x%x to %#x.
8350         (ix86_code_end): Use putc to output '\n'.
8351         (ix86_print_operand) <case ';'>: Use putc to output ';'.
8352
8353 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
8354
8355         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
8356         in directive -export.
8357
8358 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
8359
8360         * reginfo.h (reg_classes_intersect_p): Change arguments type to
8361         reg_class_t.
8362         * rtl.h (reg_classes_intersect_p): Adjust prototype.
8363
8364         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8365         Remove macros.
8366         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
8367         rs6000_memory_move_cost): Remove
8368         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
8369         TARGET_MEMORY_MOVE_COST): Define.
8370         (rs6000_register_move_cost): Make static. Change arguments type from
8371         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
8372         (rs6000_memory_move_cost): Make static. Change arguments type from
8373         'enum reg_class' to reg_class_t.
8374
8375 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
8376
8377         PR middle-end/42505
8378         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
8379         lookup code into....
8380         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
8381         new functions.
8382         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
8383         * cfgloopanal.c (target_clobbered_regs): Define.
8384         (init_set_costs): Initialize target_clobbered_regs.
8385         (estimate_reg_pressure_cost): Add call_p argument.  When true,
8386         adjust the number of available registers to exclude the
8387         call-clobbered registers.
8388         * cfgloop.h (target_clobbered_regs): Declare.
8389         (estimate_reg_pressure_cost): Adjust declaration.
8390         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
8391         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
8392         (determine_set_costs): Dump target_clobbered_regs.
8393         (loop_body_includes_call): New function.
8394         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
8395         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
8396         call_p flag through.
8397         (best_gain_for_invariant): Likewise.
8398         (find_invariants_to_move): Likewise.
8399         (move_single_loop_invariants): Likewise, using already-computed
8400         has_call field.
8401
8402 2010-07-10  Richard Guenther  <rguenther@suse.de>
8403             Joern Rennecke  <joern.rennecke@embecosm.com>
8404
8405         PR debug/44832
8406         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
8407         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
8408         unless they have DECL_IGNORED_P set.
8409
8410 2010-07-10  Richard Guenther  <rguenther@suse.de>
8411
8412         PR lto/44889
8413         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
8414         helper function.
8415         (gimple_types_compatible_p): Similar to pointed-to
8416         types allow and merge a mix of complete and incomplete aggregate.
8417         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
8418         (iterative_hash_gimple_type): Adjust for that.
8419
8420 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
8421
8422         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
8423
8424 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
8425
8426         PR objc/44140
8427         * config/darwin.c (output_objc_section_asm_op): Save and restore
8428         section when outputting ObjC section list.
8429
8430 2010-07-09  Jan Hubicka  <jh@suse.cz>
8431
8432         * lto-streamer-out.c (produce_symtab): Do not write alias
8433         cgraph/varpool nodes.
8434
8435 2010-07-09  Jan Hubicka  <jh@suse.cz>
8436
8437         * tree-inline.c (declare_return_variable): Fix ICE while
8438         inlining DECL_BY_VALUE function not in SSA form
8439
8440 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
8441
8442         PR tree-optimization/44576
8443         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
8444         New.  Pull out from is_loop_prefetching_profitable to implement
8445         the trip count to ahead ratio heuristic.
8446         (mem_ref_count_reasonable_p): New.  Pull out from
8447         is_loop_prefetching_profitable to implement the instruction to
8448         memory reference ratio heuristic.  Also consider not reasonable if
8449         the memory reference count is above a threshold (to avoid
8450         explosive compilation time.
8451         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
8452         is_loop_prefetching_profitable to implement the instruction to
8453         prefetch ratio heuristic.
8454         (is_loop_prefetching_profitable): Removed.
8455         (loop_prefetch_arrays): Distribute the cost analysis across the
8456         function to allow early exit of the prefetch analysis.
8457         is_loop_prefetching_profitable is splitted into three functions,
8458         with each one called as early as possible.
8459         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
8460         number of memory references in a loop is considered too many.
8461
8462 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8463
8464         * reload.c (find_reloads): Don't clear badop if we have a winreg
8465         alternative, but not win, and the class only has fixed regs.
8466         * hard-reg-set.h (class_only_fixed_regs): Declare.
8467         * reginfo.c (class_only_fixed_regs): New array.
8468         (init_reg_sets_1): Initialize it.
8469         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
8470         discourage alternatives using the stack pointer.
8471
8472         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
8473
8474         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
8475
8476         * config/arm/arm.md (cbranchqi4): Fix array size.
8477         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
8478         calculating length.
8479
8480 2010-07-09  Richard Guenther  <rguenther@suse.de>
8481
8482         * gimple.c (struct type_fixup_s): New struct and VEC type.
8483         (gimple_register_type_fixups): New static global.
8484         (gimple_queue_type_fixup): New function.
8485         (gimple_types_compatible_p): Queue type fixups instead of
8486         applying them here.
8487         (gimple_register_type): Apply queued fixups for the
8488         canonical type.  Empty the type fixup queue.
8489
8490 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8491
8492         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
8493         * configure: Regenerate.
8494         * config.in: Ditto.
8495
8496 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8497             Denys Vlasenko  <dvlasenk@redhat.com>
8498             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8499
8500         PR tree-optimization/28632
8501         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
8502         (extract_range_from_binary_expr): Further optimize
8503         BIT_AND_EXPR and BIT_IOR_EXPR.
8504
8505 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
8506
8507         * tree-if-conv.c (fold_or_predicates): New.
8508         (add_to_predicate_list): Call it.
8509
8510 2010-07-09  Richard Guenther  <rguenther@suse.de>
8511
8512         PR middle-end/44890
8513         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
8514         if base is a pointer.
8515         * tree-cfg.c (verify_expr): Update MEM_REF checking.
8516
8517 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
8518
8519         PR target/44877
8520         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
8521         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
8522         builtin mask for load/store builtins.
8523
8524 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8525
8526         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
8527         for "lock addl".
8528         * configure: Regenerate.
8529         * config/i386/i386.c (ix86_print_operand) <case ';'>:
8530         Remove TARGET_MACHO.
8531
8532 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
8533
8534         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
8535         default ISA flags.
8536         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
8537
8538 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
8539
8540         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
8541
8542 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
8543
8544         * config/picochip/picochip.md (commsTestPort): Emit more
8545         efficient sequence for tstport instruction.
8546
8547 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8548
8549         * config/i386/i386.c (ix86_veclib_handler): Make static.
8550
8551 2010-07-09  Richard Guenther  <rguenther@suse.de>
8552
8553         PR tree-optimization/44852
8554         * tree-ssa-alias.c: Include toplev.h for exact_log2.
8555         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
8556         in MEM_REF.
8557         (indirect_refs_may_alias_p): Likewise.
8558         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
8559
8560 2010-07-09  Richard Guenther  <rguenther@suse.de>
8561
8562         PR tree-optimization/44882
8563         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
8564         sets do conflict.
8565         (vectorizable_load): Likewise.
8566
8567 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8568
8569         PR target/40657
8570         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
8571         All callers changed.
8572         Handle the case when we're called for the epilogue.
8573         (thumb_unexpanded_epilogue): Use it.
8574         (thumb1_expand_epilogue): Likewise.
8575
8576 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8577
8578         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
8579         both ranges are range_int_cst_p with non-negative minimum,
8580         try harder to derive smaller range.
8581
8582 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8583
8584         * genrecog.c: Include diagnostic-core.h before toplev.h.
8585         * genoutput.c: Likewise.
8586         * genextract.c: Likewise.
8587         * genautomata.c: Likewise.
8588         * genemit.c: Likewise.
8589         * genpeep.c: Likewise.
8590         * genattrtab.c: Likewise.
8591         * genconditions.c: Likewise.
8592         * genpreds.c: Likewise.
8593
8594 2010-07-08  Andi Kleen  <ak@linux.intel.com>
8595
8596         * lto-section-in.c (lto_section_name): Add missing comma.
8597
8598 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
8599
8600         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
8601         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
8602         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
8603         (ia64_override_options): Rename to...
8604         (ia64_option_override): ... this one. Make static.
8605
8606 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8607
8608         PR middle-end/44843
8609         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
8610         pointed-to type of the offset in a MEM_REF to compute the alignment.
8611
8612 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
8613
8614         * final.c (final_scan_insn): Replace
8615         TARGET_UNWIND_INFO macro check by unwind_emit
8616         hook NULL check.
8617         * targhooks.c (default_unwind_emit): Removed.
8618         * targhooks.h (default_unwind_emit): Likewise.
8619         * target.def (unwind_emit): Set default value to NULL.
8620
8621         * config/i386/i386-protos.h (ix86_asm_output_function_label):
8622         New prototype.
8623         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
8624         for NULL fntype argument and allow 64-bit targets.
8625         (ix86_asm_output_function_label): New function.
8626         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
8627         (ix86_handle_fndecl_attribute): Likewise.
8628         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
8629         * doc/doc/tm.texi: Regenerated.
8630         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
8631         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
8632         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
8633         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8634         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8635         * config/elfos.h: Likewise.
8636         * config/i386/cygming.h: Likewise.
8637         * config/netbsd-aout.h: Likewise.
8638         * config/openbsd.h: Likewise.
8639         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
8640         by ix86_asm_output_function_label function call.
8641         * varasm.c (assemble_start_function): Use
8642         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8643
8644 2010-07-08  Jan Hubicka  <jh@suse.cz>
8645
8646         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
8647         New function.
8648         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
8649         Declare.
8650         * ipa-cp.c (ipcp_estimate_growth): Use it.
8651         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
8652         Likewise.
8653
8654 2010-07-08  Jan Hubicka  <jh@suse.cz>
8655
8656         * tree-inline.c (declare_return_variable): Allocate annotation for new
8657         temporary.
8658
8659 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8660
8661         PR tree-optimization/44710
8662         * tree-if-conv.c (parse_predicate): New.
8663         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
8664         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
8665
8666 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8667
8668         * common.opt (ftree-loop-if-convert): New flag.
8669         * doc/invoke.texi (ftree-loop-if-convert): Documented.
8670         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
8671         when flag_tree_loop_if_convert is set.
8672
8673 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
8674
8675         * config/i386/i386.c: Use short syntax for function calls
8676         through function pointers.
8677         * config/i386/i386.md: Ditto.
8678
8679 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8680
8681         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
8682
8683 2010-07-08  Richard Guenther  <rguenther@suse.de>
8684
8685         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
8686         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
8687
8688 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
8689
8690         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
8691         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
8692         (loc_list_from_tree): Likewise.
8693         (output_loc_operands): Handle outputting DW_OP_const[48]u
8694         with loc->dtprel set.
8695         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
8696
8697 2010-07-08  Jan Hubicka  <jh@suse.cz>
8698
8699         * ipa.c: Include pointer-set.h
8700         (cgraph_externally_visible_p): New attribute ALIASED;
8701         when in LTO, hidden symbols are local unless they are aliased.
8702         (function_and_variable_visibility): Compute aliased nodes;
8703         handle LTO and hidden symbol on functions and vars.
8704         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
8705         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
8706
8707 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8708
8709         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8710         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8711         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8712         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8713         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8714         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
8715         (ix86_gen_probe_stack_range): Likewise.
8716         (override_options): Set them.
8717         (ix86_target_stack_probe): New function.
8718         (ix86_compute_frame_layout): Force use of push instructions to
8719         save registers if stack checking with probes is enabled.
8720         (get_scratch_register_on_entry): New function.
8721         (release_scratch_register_on_entry): Likewise.
8722         (ix86_adjust_stack_and_probe): Likewise.
8723         (output_adjust_stack_and_probe): Likewise.
8724         (ix86_emit_probe_stack_range): Likewise.
8725         (output_probe_stack_range): Likewise.
8726         (ix86_expand_prologue): Emit stack checking code if static built-in
8727         stack checking is enabled.
8728         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
8729         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
8730         (output_adjust_stack_and_probe): Likewise.
8731         (output_probe_stack_range): Likewise.
8732         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8733         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
8734         TARGET_STACK_PROBE.
8735         (allocate_stack_worker_64): Likewise.
8736         (allocate_stack): Likewise.
8737         (adjust_stack_and_probe): New insn.
8738         (probe_stack_range): Likewise.
8739
8740 2010-07-08  Richard Guenther  <rguenther@suse.de>
8741
8742         PR tree-optimization/44831
8743         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
8744         a MEM_REF preserving TBAA info of the original dereference.
8745         Dereference the original pointer if the address is not invariant.
8746         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
8747         at least one invariant address that we are going to dereference.
8748
8749 2010-07-08  Richard Guenther  <rguenther@suse.de>
8750
8751         PR tree-optimization/44861
8752         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
8753         information when building MEM_REFs.
8754         (vectorizable_load): Likewise.
8755         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
8756
8757 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8758
8759         * config/sol2-c.c: Do not include diagnostic-core.h.
8760
8761 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8762
8763         PR bootstrap/44768
8764         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
8765         with respect to current_function_decl. Pass decl of the function.
8766         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
8767         * ipa-inline.c (compute_inline_parameters): Pass decl to
8768         estimated_stack_frame_size.
8769
8770 2010-07-08  Richard Guenther  <rguenther@suse.de>
8771
8772         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8773         New function.
8774         (valueize_refs): Call it.
8775
8776 2010-07-08  Richard Guenther  <rguenther@suse.de>
8777
8778         PR rtl-optimization/44838
8779         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
8780         SSA form do not use pointer equivalence.
8781
8782 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8783
8784         * dwarf2out.c (AT_linkage_name): Delete.
8785         (add_linkage_attr): New function.
8786         (add_linkage_name): Call it to emit the linkage attribute.
8787         (dwarf2out_finish): Likewise.
8788         (move_linkage_attr): Explicitly accept both attribute variants.
8789
8790 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8791
8792         * toplev.h: Do not include diagnostic-core.h.
8793         Include diagnostic-core.h in every file that includes toplev.h.
8794         * c-tree.h: Do not include toplev.h.
8795         * pretty-print.h: Update comment.
8796         * Makefile.in: Update dependencies.
8797         * alias.c: Include diagnostic-core.h in every file that includes
8798         toplev.h.
8799         * attribs.c: Likewise.
8800         * auto-inc-dec.c: Likewise.
8801         * bb-reorder.c: Likewise.
8802         * bt-load.c: Likewise.
8803         * caller-save.c: Likewise.
8804         * calls.c: Likewise.
8805         * cfg.c: Likewise.
8806         * cfganal.c: Likewise.
8807         * cfgbuild.c: Likewise.
8808         * cfgcleanup.c: Likewise.
8809         * cfghooks.c: Likewise.
8810         * cfgloop.c: Likewise.
8811         * combine.c: Likewise.
8812         * config/alpha/alpha.c: Likewise.
8813         * config/arc/arc.c: Likewise.
8814         * config/arm/arm.c: Likewise.
8815         * config/arm/pe.c: Likewise.
8816         * config/avr/avr.c: Likewise.
8817         * config/bfin/bfin.c: Likewise.
8818         * config/cris/cris.c: Likewise.
8819         * config/crx/crx.c: Likewise.
8820         * config/darwin-c.c: Likewise.
8821         * config/darwin.c: Likewise.
8822         * config/fr30/fr30.c: Likewise.
8823         * config/frv/frv.c: Likewise.
8824         * config/h8300/h8300.c: Likewise.
8825         * config/host-darwin.c: Likewise.
8826         * config/i386/i386.c: Likewise.
8827         * config/i386/netware.c: Likewise.
8828         * config/i386/nwld.c: Likewise.
8829         * config/i386/winnt-cxx.c: Likewise.
8830         * config/i386/winnt-stubs.c: Likewise.
8831         * config/i386/winnt.c: Likewise.
8832         * config/ia64/ia64-c.c: Likewise.
8833         * config/ia64/ia64.c: Likewise.
8834         * config/iq2000/iq2000.c: Likewise.
8835         * config/lm32/lm32.c: Likewise.
8836         * config/m32c/m32c-pragma.c: Likewise.
8837         * config/m32c/m32c.c: Likewise.
8838         * config/m32r/m32r.c: Likewise.
8839         * config/m68hc11/m68hc11.c: Likewise.
8840         * config/m68k/m68k.c: Likewise.
8841         * config/mcore/mcore.c: Likewise.
8842         * config/mep/mep-pragma.c: Likewise.
8843         * config/mep/mep.c: Likewise.
8844         * config/mmix/mmix.c: Likewise.
8845         * config/mn10300/mn10300.c: Likewise.
8846         * config/moxie/moxie.c: Likewise.
8847         * config/pa/pa.c: Likewise.
8848         * config/pdp11/pdp11.c: Likewise.
8849         * config/picochip/picochip.c: Likewise.
8850         * config/rs6000/rs6000-c.c: Likewise.
8851         * config/rs6000/rs6000.c: Likewise.
8852         * config/rx/rx.c: Likewise.
8853         * config/s390/s390.c: Likewise.
8854         * config/score/score.c: Likewise.
8855         * config/score/score3.c: Likewise.
8856         * config/score/score7.c: Likewise.
8857         * config/sh/sh.c: Likewise.
8858         * config/sh/symbian-base.c: Likewise.
8859         * config/sh/symbian-c.c: Likewise.
8860         * config/sh/symbian-cxx.c: Likewise.
8861         * config/sol2-c.c: Likewise.
8862         * config/sol2.c: Likewise.
8863         * config/sparc/sparc.c: Likewise.
8864         * config/spu/spu.c: Likewise.
8865         * config/stormy16/stormy16.c: Likewise.
8866         * config/v850/v850-c.c: Likewise.
8867         * config/v850/v850.c: Likewise.
8868         * config/vax/vax.c: Likewise.
8869         * config/vxworks.c: Likewise.
8870         * config/xtensa/xtensa.c: Likewise.
8871         * convert.c: Likewise.
8872         * cse.c: Likewise.
8873         * cselib.c: Likewise.
8874         * dbgcnt.c: Likewise.
8875         * dbxout.c: Likewise.
8876         * ddg.c: Likewise.
8877         * dominance.c: Likewise.
8878         * emit-rtl.c: Likewise.
8879         * explow.c: Likewise.
8880         * expmed.c: Likewise.
8881         * fixed-value.c: Likewise.
8882         * fold-const.c: Likewise.
8883         * fwprop.c: Likewise.
8884         * gcse.c: Likewise.
8885         * ggc-common.c: Likewise.
8886         * ggc-page.c: Likewise.
8887         * ggc-zone.c: Likewise.
8888         * gimple-low.c: Likewise.
8889         * gimplify.c: Likewise.
8890         * graph.c: Likewise.
8891         * haifa-sched.c: Likewise.
8892         * ifcvt.c: Likewise.
8893         * implicit-zee.c: Likewise.
8894         * integrate.c: Likewise.
8895         * ira-build.c: Likewise.
8896         * ira-color.c: Likewise.
8897         * ira-conflicts.c: Likewise.
8898         * ira-costs.c: Likewise.
8899         * ira-lives.c: Likewise.
8900         * ira.c: Likewise.
8901         * lists.c: Likewise.
8902         * loop-doloop.c: Likewise.
8903         * loop-iv.c: Likewise.
8904         * lto-opts.c: Likewise.
8905         * lto-symtab.c: Likewise.
8906         * main.c: Likewise.
8907         * modulo-sched.c: Likewise.
8908         * optabs.c: Likewise.
8909         * params.c: Likewise.
8910         * plugin.c: Likewise.
8911         * postreload-gcse.c: Likewise.
8912         * postreload.c: Likewise.
8913         * predict.c: Likewise.
8914         * profile.c: Likewise.
8915         * real.c: Likewise.
8916         * regcprop.c: Likewise.
8917         * reginfo.c: Likewise.
8918         * regmove.c: Likewise.
8919         * reorg.c: Likewise.
8920         * resource.c: Likewise.
8921         * rtl.c: Likewise.
8922         * rtlanal.c: Likewise.
8923         * sched-deps.c: Likewise.
8924         * sched-ebb.c: Likewise.
8925         * sched-rgn.c: Likewise.
8926         * sdbout.c: Likewise.
8927         * sel-sched-dump.c: Likewise.
8928         * sel-sched-ir.c: Likewise.
8929         * simplify-rtx.c: Likewise.
8930         * stmt.c: Likewise.
8931         * stor-layout.c: Likewise.
8932         * store-motion.c: Likewise.
8933         * targhooks.c: Likewise.
8934         * tree-cfg.c: Likewise.
8935         * tree-cfgcleanup.c: Likewise.
8936         * tree-dump.c: Likewise.
8937         * tree-eh.c: Likewise.
8938         * tree-inline.c: Likewise.
8939         * tree-nomudflap.c: Likewise.
8940         * tree-object-size.c: Likewise.
8941         * tree-optimize.c: Likewise.
8942         * tree-outof-ssa.c: Likewise.
8943         * tree-phinodes.c: Likewise.
8944         * tree-profile.c: Likewise.
8945         * tree-ssa-ccp.c: Likewise.
8946         * tree-ssa-coalesce.c: Likewise.
8947         * tree-ssa-live.c: Likewise.
8948         * tree-ssa-loop-niter.c: Likewise.
8949         * tree-ssa-loop-prefetch.c: Likewise.
8950         * tree-ssa-loop.c: Likewise.
8951         * tree-ssa-structalias.c: Likewise.
8952         * tree-ssa-uninit.c: Likewise.
8953         * tree-ssa.c: Likewise.
8954         * tree-vect-data-refs.c: Likewise.
8955         * tree-vect-loop-manip.c: Likewise.
8956         * tree-vect-loop.c: Likewise.
8957         * tree-vect-patterns.c: Likewise.
8958         * tree-vect-stmts.c: Likewise.
8959         * tree-vrp.c: Likewise.
8960         * varasm.c: Likewise.
8961         * vec.c: Likewise.
8962         * web.c: Likewise.
8963         * xcoffout.c: Likewise.
8964
8965 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
8966
8967         * gengtype.c (write_field_root): New function.
8968         (write_root): Use it.
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): Add a missing line.
8974
8975 2010-07-07  Wei Guozhi  <carrot@google.com>
8976
8977         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8978         of lowest bits to lshift/compare): New.
8979
8980 2010-07-07  Tom Tromey  <tromey@redhat.com>
8981
8982         * doc/tm.texi: Update.
8983         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
8984         Add @hook.
8985         * target.def (want_debug_pub_sections): New hook.
8986         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
8987         * dwarf2out.c (add_pubname_string): Check
8988         targetm.want_debug_pub_sections.
8989         (add_pubname): Likewise.
8990         (add_pubtype): Likewise.
8991
8992 2010-07-07  Jie Zhang  <jie@codesourcery.com>
8993
8994         * genautomata.c (output_automata_list_min_issue_delay_code):
8995         Correctly decompress min_issue_delay.
8996
8997 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8998
8999         PR rtl-optimization/44404
9000         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
9001         possible, use reg_overlap_mentioned_p instead.
9002
9003 2010-07-07  Duncan Sands  <baldrick@free.fr>
9004
9005         PR middle-end/41355
9006         * tree.c (build_function_type_skip_args): Copy the original type using
9007         build_distinct_type_copy rather than copy_node.
9008
9009 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9010
9011         PR target/44850
9012         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
9013         revision 161876.
9014         (ix86_expand_prologue): Likewise.
9015         (ix86_handle_fndecl_attribute): Likewise.
9016         (ix86_asm_declare_function_name): Likewise.
9017         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9018         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9019         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
9020         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
9021         * doc/extend.texi: Likewise.
9022
9023 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9024
9025         PR target/44844
9026         * config/i386/i386.md (rdrand<mode>): Changed to expand to
9027         retry if the carry flag isn't valid.
9028         (rdrand<mode>_1): New.
9029
9030 2010-07-07  Richard Guenther  <rguenther@suse.de>
9031
9032         PR middle-end/44790
9033         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
9034         for expanding the constant offset for MEM_REFs.
9035
9036 2010-07-07  Richard Guenther  <rguenther@suse.de>
9037
9038         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
9039         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
9040         * gimple.h (is_gimple_operand): Remove.
9041         * gimple.c (is_gimple_operand): Likewise.
9042         (walk_gimple_op): Fix wi->val_only setting for calls.
9043         * tree-cfg.c (verify_gimple_call): Fix argument validation.
9044         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
9045         invalid gimple calls.
9046
9047 2010-07-06  Jan Hubicka  <jh@suse.cz>
9048
9049         * lto-cgraph.c (output_cgraph): Add missing declaration.
9050
9051 2010-07-06  Jan Hubicka  <jh@suse.cz>
9052
9053         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
9054         partition.
9055
9056 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
9057
9058         * doc/gimple.texi (GIMPLE_DEBUG): Document.
9059         * doc/rtl.texi (Debug Information): New node.
9060         (NOTE_INSN_VAR_LOCATION): Document.
9061         (debug_insn): Likewise.
9062         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
9063
9064 2010-07-07  Jan Hubicka  <jh@suse.cz>
9065
9066         With parts by Richard Guenther.
9067
9068         PR middle-end/44813
9069         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
9070         for functions passed by reference.
9071         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
9072         in memory when passed by reference.
9073         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
9074         beggining.
9075         * ipa-split.c (split_function): Cleanup way return value is passed;
9076         handle SSA DECL_BY_REFERENCE retvals.
9077         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
9078         DECL_BY_REFERENCE is set.
9079         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
9080         find_what_p_points_to): Handle RESULT_DECL.
9081         * tree-inline.c (declare_return_variable): Get new entry_block argument;
9082         when passing by reference ensure that RESULT_DECL is gimple_val.
9083         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
9084         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
9085
9086 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
9087
9088         PR rtl-optimization/44787
9089         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
9090         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
9091
9092 2010-07-06  Jan Hubicka  <jh@suse.cz>
9093
9094         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
9095         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
9096         with body can prevail.
9097         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
9098         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
9099         * cgraph.c (cgraph_get_node_or_alias): New function.
9100         * cgraph.h (cgraph_get_node_or_alias): Declare.
9101
9102 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
9103
9104         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
9105         support.
9106         (ix86_expand_prologue): Likewise.
9107         (ix86_handle_fndecl_attribute): Likewise.
9108         (ix86_asm_declare_function_name): New function for
9109         ASM_DECLARE_FUNCTION_NAME.
9110         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
9111         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
9112         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
9113         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
9114         * doc/extend.texi: Adjust documentation about ms_hook_prologue
9115         attribute.
9116
9117 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9118
9119         * config/i386/i386.md (immediate_operand): New mode attribute.
9120
9121         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
9122         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
9123         using P mode iterator.
9124         (pro_epilogue_adjust_stack_di_2): Rename from
9125         pro_epilogue_adjust_stack_rex64_2.
9126
9127         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
9128
9129 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9130
9131         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
9132         through gen_mov_insv_1 function pointer.
9133         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
9134         gen_truncxf<mode>2 through gen_truncxf function pointer.
9135         (remainder<mode>3): Ditto.
9136         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
9137         (allocate_stack): Call gen_allocate_stack_worker_64 or
9138         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
9139         function pointer.
9140         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
9141         function pointer.
9142
9143 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
9144
9145         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
9146         operand constraint instead of <r><i>m.
9147
9148 2010-07-06  Richard Guenther  <rguenther@suse.de>
9149
9150         PR middle-end/44828
9151         * convert.c (convert_to_integer): Watch out for overflowing
9152         MULT_EXPR as well.
9153
9154 2010-07-05  Jan Hubicka  <jh@suse.cz>
9155
9156         * lto-streamer.c (write_symbol_vec): Rename to ...
9157         (write_symbol) ... this one; write only symbol given and when
9158         present in cache. Sanity check that what is defined is present
9159         in cgraph/varpool with body/finalized decl.
9160         (write_symbols_of_kind): Remove.
9161         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
9162         pairs to produce symtab.
9163         (produce_asm_for_decls): Update call of produce_symtab; don't do so
9164         when doing WPA streaming.
9165
9166 2010-07-05  Jan Hubicka  <jh@suse.cz>
9167
9168         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
9169         function is still available to fold into.
9170
9171 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9172
9173         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
9174         * function.h (struct_function): Change type of local_decls field
9175         to a VEC.
9176         (add_local_decl): New function.
9177         (FOR_EACH_LOCAL_DECL): New macro.
9178         * cfgexpand.c (init_vars_expansion): Adjust for new type of
9179         cfun->local_decls.
9180         (estimated_stack_frame_size): Likewise.
9181         (expand_used_vars): Likewise.
9182         * cgraphbuild.c (build_cgraph_edges): Likewise.
9183         * function.c (instantiate_decls_1): Likewise.
9184         * ipa-struct-reorg.c (build_data_structure): Likewise.
9185         * ipa-type-escape.c (analyze_function): Likewise.
9186         * lto-streamer-in.c (input_function): Likewise.
9187         * lto-streamer-out.c (output_function): Likewise.
9188         * tree-ssa-live.c (remove_unused_locals): Likewise.
9189         * tree.c (free_lang_data_in_decl): Likewise.
9190         (find_decls_types_in_node): Likewise.
9191         * omp-low.c (remove_exit_barrier): Likewise.
9192         (expand_omp_taskreg): Likewise.
9193         (list2chain): Rename to...
9194         (vec2chain): ...this.  Adjust.
9195         * cgraphunit.c (assemble_thunk): Call add_local_decl.
9196         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
9197         * gimple-low.c (record_vars_into): Likewise.
9198         * tree-inline.c (remap_decls): Likewise.
9199         (declare_return_variable): Likewise.
9200         (declare_inline_vars): Likewise.
9201         (copy_forbidden): Adjust for new type of cfun->local_decls.
9202         (add_local_variables): New function.
9203         (expand_call_inline): Call it.
9204         (tree_function_versioning): Likewise.
9205
9206 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
9207
9208         AVX Programming Reference (June, 2010)
9209         * config/i386/cpuid.h (bit_F16C): New.
9210         (bit_RDRND): Likewise.
9211         (bit_FSGSBASE): Likewise.
9212
9213         * config/i386/i386-builtin-types.def: Add
9214         "DEF_FUNCTION_TYPE (UINT16)", function types for
9215         float16 <-> float conversions and
9216         "DEF_FUNCTION_TYPE (VOID, UINT64)".
9217
9218         * config/i386/i386-c.c (ix86_target_macros_internal): Support
9219         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
9220         OPTION_MASK_ISA_F16C.
9221
9222         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
9223         (OPTION_MASK_ISA_RDRND_SET): Likewise.
9224         (OPTION_MASK_ISA_F16C_SET): Likewise.
9225         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
9226         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
9227         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
9228         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9229         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
9230         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
9231         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
9232         (override_options): Handle them.
9233         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
9234         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
9235         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
9236         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
9237         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
9238         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
9239         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
9240         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
9241         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
9242         (bdesc_args): Likewise.
9243         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
9244         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
9245         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
9246         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
9247         Handle non-memory store.
9248
9249         * config/i386/i386.h (TARGET_FSGSBASE): New.
9250         (TARGET_RDRND): Likewise.
9251         (TARGET_F12C): Likewise.
9252
9253         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
9254         (UNSPEC_VCVTPS2PH): Likewise.
9255         (UNSPECV_RDFSBASE): Likewise.
9256         (UNSPECV_RDGSBASE): Likewise.
9257         (UNSPECV_WRFSBASE): Likewise.
9258         (UNSPECV_WRGSBASE): Likewise.
9259         (UNSPECV_RDRAND): Likewise.
9260         (rdfsbase<mode>): Likewise.
9261         (rdgsbase<mode>): Likewise.
9262         (wrfsbase<mode>): Likewise.
9263         (wrgsbase<mode>): Likewise.
9264         (rdrand<mode>): Likewise.
9265
9266         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
9267
9268         * config/i386/immintrin.h (_rdrand_u16): New.
9269         (_rdrand_u32): Likewise.
9270         (_readfsbase_u32): Likewise.
9271         (_readfsbase_u64): Likewise.
9272         (_readgsbase_u32): Likewise.
9273         (_readgsbase_u64): Likewise.
9274         (_writefsbase_u32): Likewise.
9275         (_writefsbase_u64): Likewise.
9276         (_writegsbase_u32): Likewise.
9277         (_writegsbase_u64): Likewise.
9278         (_rdrand_u64): Likewise.
9279         (_cvtsh_ss): Likewise.
9280         (_mm_cvtph_ps): Likewise.
9281         (_mm256_cvtph_ps): Likewise.
9282         (_cvtss_sh): Likewise.
9283         (_mm_cvtps_ph): Likewise.
9284         (_mm256_cvtps_ph): Likewise.
9285
9286         * config/i386/sse.md (vcvtph2ps): New.
9287         (*vcvtph2ps_load): Likewise.
9288         (vcvtph2ps256): Likewise.
9289         (vcvtps2ph): Likewise.
9290         (*vcvtps2ph): Likewise.
9291         (*vcvtps2ph_store): Likewise.
9292         (vcvtps2ph256): Likewise.
9293
9294         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
9295
9296         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
9297
9298 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
9299
9300         PR bootstrap/44512
9301         * genenums.c (main): Output include of insn-constants.h
9302         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
9303
9304 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
9305
9306         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
9307         (override_options): Initialize it.
9308         (ix86_expand_prologue): Use it.
9309
9310 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9311
9312         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
9313
9314 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9315
9316         * double-int.h (fit_double_type): Remove declaration.
9317         * double-int.c (fit_double_type): Remove function.
9318         * tree.h (int_fits_type_p): Adjust prototype.
9319         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
9320         instead of fit_double_type.
9321         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
9322         instead of fit_double_type and build_int_cst_wide.
9323         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
9324         instead of fit_double_type and build_int_cst_wide.
9325         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
9326         of fit_double_type.
9327
9328 2010-07-05  Jan Hubicka  <jh@suse.cz>
9329
9330         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
9331         in_other_partition.
9332         * lto-cgraph.c (referenced_from_other_partition_p,
9333         reachable_from_other_partition_p): Use in_other_partition flags.
9334         (output_node, output_varpool_node): COMDAT nodes always have private
9335         copies and thus are never used from other partition.
9336
9337 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9338
9339         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9340         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
9341         * config/ia64/ia64.c Include reload.h.
9342         (ia64_memory_move_cost): New function.
9343         (TARGET_MEMORY_MOVE_COST): Define.
9344         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
9345         memory_move_cost.
9346
9347 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
9348
9349         PR middle-end/42505
9350         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
9351         comments about cost model.
9352         (try_add_cand_for):  Add second strategy for choosing initial set
9353         based on original IVs, controlled by ORIGINALP argument.
9354         (get_initial_solution): Add ORIGINALP argument.
9355         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
9356         (find_optimal_iv_set): Try two different strategies for choosing
9357         the IV set, and return the one with lower cost.
9358
9359 2010-07-05  Richard Guenther  <rguenther@suse.de>
9360
9361         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
9362
9363 2010-07-05  Richard Guenther  <rguenther@suse.de>
9364
9365         * tree.c (reference_alias_ptr_type): New function.
9366         * tree.h (reference_alias_ptr_type): Declare.
9367         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
9368         allow non-TARGET_MEM_REF new refs.
9369         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
9370         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
9371         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
9372         (create_mem_ref): Get alias pointer type.  Adjust calls to
9373         create_mem_ref_raw.
9374         (maybe_fold_tmr): Likewise.
9375         * tree-flow.h (create_mem_ref): Adjust prototype.
9376
9377 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9378
9379         PR c++/44808
9380         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
9381         *from_p is VAR_DECL.
9382
9383 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9384
9385         * tree.h (build_call_list): Remove.
9386         * tree.c (build_call_list): Remove.
9387
9388 2010-07-05  Richard Guenther  <rguenther@suse.de>
9389
9390         * double-int.h (double_int_sub): Declare.
9391         * double-int.c (double_int_sub): New function.
9392         * dwarf2out.c (field_byte_offset): Use it.
9393         * fixed-value.c (do_fixed_add): Likewise.
9394         (do_fixed_multiply): Likewise.
9395         (do_fixed_divide): Likewise.
9396         * tree-predcom.c (add_ref_to_chain): Likewise.
9397         (determine_roots_comp): Likewise.
9398         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
9399
9400 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9401
9402         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
9403         implementations.
9404
9405 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
9406
9407         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
9408         * arm-modes.def (CC_NOTB): Don't define.
9409         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
9410         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
9411         (LTUGEU): New code_iterator.
9412         (cnb, optab): New corresponding code_attrs.
9413         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
9414         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
9415         using LTUGEU.
9416         (addsi3_carryin_shift_<optab>): Likewise.
9417         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
9418         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
9419         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
9420         (subsi3_compare): Renamed from subsi3_compare0_c.
9421         Change CC_NOTB to CC.
9422         (arm_subsi3_insn): Allow constants for operand 0.
9423         (compare_scc peephole for eq case): New.
9424         (compare_scc splitters): Change CC_NOTB to CC.
9425
9426 2010-07-05  Richard Guenther  <rguenther@suse.de>
9427
9428         * tree-ssa-loop-im.c (for_each_index): Do not handle
9429         ALIGN_INDIRECT_REF.
9430         (gen_lsm_tmp_name): Likewise.
9431         * tree-dump.c (dequeue_and_dump): Likewise.
9432         * tree-pretty-print.c (dump_generic_node): Likewise.
9433         (op_code_prio): Likewise.
9434         (op_symbol_code): Likewise.
9435         * tree.c (staticp): Likewise.
9436         (build1_stat): Likewise.
9437         * tree.h (INDIRECT_REF_P): Likewise.
9438         * fold-const.c (maybe_lvalue_p): Likewise.
9439         (operand_equal_p): Likewise.
9440         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9441         (ao_ref_init_from_vn_reference): Likewise.
9442         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
9443         (find_interesting_uses_address): Likewise.
9444         * dwarf2out.c (loc_list_from_tree): Likewise.
9445         * gimplify.c (gimplify_expr): Likewise.
9446         * tree-eh.c (tree_could_trap_p): Likewise.
9447         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9448         * cfgexpand.c (expand_debug_expr): Likewise.
9449         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9450         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
9451         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
9452         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
9453         * tree-ssa-operands.c (get_expr_operands): Likewise.
9454         * expr.c (safe_from_p): Likewise.
9455         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
9456         * tree-vect-data-refs.c (vect_setup_realignment): Build
9457         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
9458         * tree-vect-stmts.c (vectorizable_load): Likewise.
9459         * tree.def (ALIGN_INDIRECT_REF): Remove.
9460
9461 2010-07-05  Richard Guenther  <rguenther@suse.de>
9462
9463         PR tree-optimization/44784
9464         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
9465         for inserted stmts.
9466         (find_or_generate_expression): Fix SCCVN insertion check.
9467
9468 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9469
9470         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
9471         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9472         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
9473         directives.
9474
9475 2010-07-05  Ira Rosen  <irar@il.ibm.com>
9476
9477         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
9478         statements that are not vectorized.
9479         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
9480         in INSIDE_COST.
9481
9482 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
9483
9484         PR bootstrap/44820
9485         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
9486
9487 2010-07-05  Richard Guenther  <rguenther@suse.de>
9488
9489         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
9490         RESULT_DECLs properly.
9491
9492 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
9493
9494         PR rtl-optimization/44695
9495         * config/i386/i386.md (extract_code): Removed.
9496         (<u>divmodqi4): Likewise.
9497         (divmodqi4): New.
9498         (udivmodqi4): Likewise.
9499         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
9500         (udivmodhiqi3): Likewise.
9501
9502 2010-07-04  Jan Hubicka  <jh@suse.cz>
9503
9504         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
9505
9506 2010-07-04  Jan Hubicka  <jh@suse.cz>
9507
9508         * cgraphunit.c (init_cgraph): Only initialize dump file if it
9509         is not already initialized.
9510
9511 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9512
9513         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
9514         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
9515         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
9516         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
9517         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
9518         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
9519         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
9520         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
9521         (sync_new_nand_optab): Redefine as macros.
9522         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
9523         Delete.
9524         (direct_optab_index): New enum.
9525         (direct_optab_d): New structure.
9526         (direct_optab): New typedef.
9527         (direct_optab_table): Declare.
9528         (direct_optab_handler, set_direct_optab_handler): New functions.
9529         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
9530         (sync_lock_release_optab): New macros.
9531         * optabs.c (direct_optab_table): New variable.
9532         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
9533         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
9534         cmpstr_optab and cmpstrn_optab.
9535         (emit_conditional_move): Likewise for movcc_optab.
9536         (can_conditionally_move_p): Likewise for movcc_gen_code.
9537         (init_insn_codes): Clear direct_optab_table.
9538         (init_optabs): Don't initialize the new "direct optabs" here.
9539         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
9540         vcond_gen_code.
9541         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
9542         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
9543         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
9544         (expand_sync_operation): Likewise other sync_*_optabs.
9545         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
9546         to sync_compare_and_swap_optab.
9547         (expand_sync_lock_test_and_set): Use direct_optab_handler for
9548         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
9549         to the names of both.
9550         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
9551         cmpstr_optab and cmpstrn_optab.
9552         (expand_builtin_lock_release): Likewise sync_lock_release.
9553         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
9554         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
9555         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
9556         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
9557         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
9558         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
9559         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
9560         (sync_lock_test_and_set, sync_lock_release): Delete.
9561         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
9562         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
9563         * genopinit.c (optabs): Use set_direct_optab_handler for the new
9564         macro optabs.
9565         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
9566         the "optab" local variable.  Use direct_optab_handler for optab and
9567         sync_compare_and_swap_optab.
9568         * reload1.c (reload_in_optab, reload_out_optab): Delete.
9569         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
9570         reload_in_optab and reload_out_optab.
9571         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9572         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
9573         * config/pa/pa.c (pa_secondary_reload): Likewise.
9574         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
9575         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
9576         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
9577         (VMSupportsCS8_builtin): Likewise.
9578
9579 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9580
9581         * optabs.h (optab_handlers): Change type of insn_code to int.
9582         (optab_handler, set_optab_handler, convert_optab_handler)
9583         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
9584         CODE_FOR_nothing".
9585         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
9586         (init_insn_codes): Zero both the above arrays.
9587         (init_optabs): Never call init_insn_codes first time around.
9588
9589 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9590
9591         * optabs.h (optab_handler, convert_optab_handler): Turn into
9592         inline functions that return an insn code.
9593         (set_optab_handler, set_convert_optab_handler): New functions.
9594         * builtins.c: Replace optab_handler(X)->insn_code with
9595         optab_handler or set_optab_handler thoughout.  Likewise
9596         convert_optab_handler(X)->insn_code with convert_optab_handler
9597         and set_convert_optab_handler.
9598         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
9599         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
9600         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
9601         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
9602         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
9603         config/spu/spu.c: Likewise.
9604
9605 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9606
9607         PR target/44531
9608         * config.gcc (sh*-*-*): Use regular expressions instead of
9609         the 'i' modifier for sed substitutions.
9610
9611 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9612
9613         * gimple.c (gimple_body): Comments added.
9614
9615 2010-07-04  Richard Guenther  <rguenther@suse.de>
9616
9617         PR middle-end/44809
9618         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
9619         of an INDIRECT_REF.
9620
9621 2010-07-04  Richard Guenther  <rguenther@suse.de>
9622
9623         PR tree-optimization/44479
9624         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9625         extra SSA name copy statements which preserves points-to
9626         information.
9627         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9628         Copy points-to information for all pointers.  Properly handle
9629         MEM_REFs.
9630         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
9631         copy statements.
9632         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
9633         dependency.
9634
9635 2010-07-04  Richard Guenther  <rguenther@suse.de>
9636
9637         PR middle-end/44785
9638         * tree-inline.c (initialize_inlined_parameters): Do not
9639         re-use pointer-map slot over remap_type call.
9640
9641 2010-07-04  Richard Guenther  <rguenther@suse.de>
9642
9643         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
9644
9645 2010-07-04  Richard Guenther  <rguenther@suse.de>
9646
9647         PR tree-optimization/44656
9648         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
9649         again after value-replacing in the defintions lhs.
9650
9651 2010-07-04  Ira Rosen  <irar@il.ibm.com>
9652             Revital Eres  <eres@il.ibm.com>
9653
9654         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
9655         Document new arguments.
9656         * doc/tm.texi: Regenerate.
9657         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
9658         Handle unaligned store.
9659         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
9660         * target.def (builtin_vectorization_cost): Add new arguments.
9661         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
9662         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
9663         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
9664         (vect_vfa_segment_size): Fix indentation.
9665         * tree-vectorizer.h (struct _vect_peel_info): New.
9666         (struct _vect_peel_extended_info): New.
9667         (struct _loop_vec_info): Add new field for peeling hash table and a
9668         macro for its access.
9669         (VECT_MAX_COST): Define.
9670         (vect_get_load_cost): Declare.
9671         (vect_get_store_cost, vect_get_known_peeling_cost,
9672         vect_get_single_scalar_iteraion_cost): Likewise.
9673         (vect_supportable_dr_alignment): Add new argument.
9674         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
9675         field.
9676         (destroy_loop_vec_info): Free peeling hash table.
9677         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
9678         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
9679         vect_analyze_slp. Fix indentation.
9680         (vect_get_single_scalar_iteraion_cost): New function.
9681         (vect_get_known_peeling_cost): Likewise.
9682         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
9683         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
9684         statement. Move outside cost calculation inside unknown peeling case.
9685         Call vect_get_known_peeling_cost for known amount of peeling.
9686         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
9687         reference to the print message of forced alignment.
9688         (vect_verify_datarefs_alignment): Update call to
9689         vect_supportable_dr_alignment.
9690         (vect_get_data_access_cost): New function.
9691         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
9692         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
9693         vect_peeling_hash_choose_best_peeling): Likewise.
9694         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
9695         to store all the accesses in the loop and find best possible access to
9696         align using peeling for known alignment case. For unknown alignment
9697         check if stores are preferred or if peeling is worthy.
9698         (vect_find_same_alignment_drs): Analyze pairs of loads too.
9699         (vect_supportable_dr_alignment): Add new argument and check aligned
9700         accesses according to it.
9701         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
9702         (cost_for_stmt): Call vect_get_stmt_cost.
9703         (vect_model_simple_cost): Likewise.
9704         (vect_model_store_cost): Call vect_get_stmt_cost. Call
9705         vect_get_store_cost to calculate the cost of the statement.
9706         (vect_get_store_cost): New function.
9707         (vect_model_load_cost): Call vect_get_stmt_cost. Call
9708         vect_get_load_cost to calculate the cost of the statement.
9709         (vect_get_load_cost): New function.
9710         (vectorizable_store): Update call to vect_supportable_dr_alignment.
9711         (vectorizable_load): Likewise.
9712         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
9713         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
9714         arguments. Handle unaligned store.
9715         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
9716         (rs6000_builtin_support_vector_misalignment): Return true for word and
9717         double word alignments for VSX.
9718         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
9719         vect_supportable_dr_alignment and builtin_vectorization_cost.
9720
9721 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9722
9723         PR target/44597
9724         * config/pa/predicates.md (prefetch_cc_operand): Remove.
9725         (prefetch_nocc_operand): Likewise.
9726         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
9727         (prefetch_20): New insn.
9728         (prefetch_cc): Remove.
9729         (prefetch_nocc): Likewise.
9730
9731 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9732
9733         * expr.c (vector_mode_valid_p): Move to c-common.c.
9734         * expr.h (vector_mode_valid_p): Do not declare here.
9735         * system.h: Poison GCC_EXPR_H in front-ends.
9736         * Makefile.in: Update dependencies.
9737
9738 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9739
9740         PR target/44705
9741         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
9742
9743 2010-07-03  Jan Hubicka  <jh@suse.cz>
9744
9745         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
9746         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
9747         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
9748         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
9749         Likewise.
9750
9751         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
9752         Update timevars.V
9753         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
9754         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
9755         TV_IPA_LTO_DECL_OUT): New.
9756         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
9757
9758 2010-07-03  Jan Hubicka  <jh@suse.cz>
9759
9760         * ipa-inline.c (update_edge_key): Break out from ...
9761         update_callers_keys): ... here;
9762         (update_callee_keys): Update only the edges from caller to callee.
9763         (update_all_calle_keys): Do what update_calle_keys did.
9764         (decide_inlining_of_small_functions): Avoid recomputing of all
9765         callees when badness increase.
9766
9767 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9768
9769         * config/arm/arm.c (arm_attr_length_move_neon): New.
9770         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
9771         * config/arm/neon.md (define_mode_attr V_slen): Remove.
9772         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
9773         to compute length attribute.
9774
9775 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9776
9777         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
9778         as predicate for operand 1 and remove its constraint.
9779         * config/arm/predicates.md (vfp_register_operand): New.
9780         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
9781         (*push_fp_multi): Likewise.
9782
9783 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
9784
9785         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
9786
9787 2010-07-03  Jan Hubicka  <jh@suse.cz>
9788
9789         * config/i386/i386.c (override_options): Revert accidental commit.
9790
9791 2010-07-02  Le-Chun Wu  <lcwu@google.com>
9792
9793         PR c++/44128
9794         * doc/invoke.texi: Update documentation of -Wshadow.
9795
9796 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
9797             Julian Brown  <julian@codesourcery.com>
9798             Sandra Loosemore <sandra@codesourcery.com>
9799
9800         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
9801         comparisons.  Adjust to take both operands.
9802         (arm_select_cc_mode): Handle DImode comparisons.
9803         (arm_gen_compare_reg): Generate a scratch register for DImode
9804         comparisons which require one.  Use xor for Thumb equality checks.
9805         (arm_const_double_by_immediates): New.
9806         (arm_print_operand): Allow 'Q' and 'R' for constants.
9807         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
9808         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
9809         arm_canonicalize_comparison.
9810         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
9811         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9812         prototype.
9813         (arm_const_double_by_immediates): Declare.
9814         * config/arm/constraints.md (Di): New constraint.
9815         * config/arm/predicates.md (arm_immediate_di_operand)
9816         (arm_di_operand, cmpdi_operand): New.
9817         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
9818         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
9819         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
9820         (cstoredi4): Handle non-Cirrus also.
9821
9822 2010-07-02  Julian Brown  <julian@codesourcery.com>
9823             Sandra Loosemore <sandra@codesourcery.com>
9824
9825         PR target/43703
9826         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
9827         (smax<mode>3): Disable for NEON float modes when
9828         flag_unsafe_math_optimizations is false.
9829         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
9830         (*mul<mode>3_neon)
9831         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
9832         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
9833         for NEON float modes when flag_unsafe_math_optimizations is false.
9834         (quad_halves_<code>v4sf): Only enable if
9835         flag_unsafe_math_optimizations is true.
9836         * doc/invoke.texi (ARM Options): Add note about floating point
9837         vectorization requiring -funsafe-math-optimizations.
9838
9839 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9840             Julian Brown  <julian@codesourcery.com>
9841
9842         * config/arm/neon.md (UNSPEC_VABA): Delete.
9843         (UNSPEC_VABAL): Delete.
9844         (UNSPEC_VABS): Delete.
9845         (UNSPEC_VMUL_N): Delete.
9846         (adddi3_neon): New.
9847         (subdi3_neon): New.
9848         (mul<mode>3add<mode>_neon): Make the pattern named.
9849         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
9850         (neon_vadd<mode>): Replace with define_expand, and move the remaining
9851         unspec parts...
9852         (neon_vadd<mode>_unspec): ...to this.
9853         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
9854         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
9855         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
9856         (neon_vaba<mode>): Rewrite in terms of vabd.
9857         (neon_vabal<mode>): Rewrite in terms of vabdl.
9858         (neon_vabs<mode>): Rewrite without unspec.
9859         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
9860         (*arm_subdi3): Likewise.
9861         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
9862         No_op attribute to disable assembly output checks.
9863         * config/arm/arm_neon.h: Regenerated.
9864         * doc/arm-neon-intrinsics.texi: Regenerated.
9865
9866 2010-07-02  Jan Hubicka  <jh@suse.cz>
9867
9868         * ipa-split.c (split_function): For aggregate values, set the return
9869         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
9870         *<retval> = fncall.part ().
9871         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
9872
9873 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9874
9875         * config/arm/neon.md (UNSPEC_VAND): Delete.
9876         (UNSPEC_VBIC): Delete.
9877         (UNSPEC_VCLZ): Delete.
9878         (UNSPEC_VCNT): Delete.
9879         (UNSPEC_VEOR): Delete.
9880         (UNSPEC_VORN): Delete.
9881         (UNSPEC_VORR): Delete.
9882         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
9883         core registers too.
9884         (anddi3_neon): Likewise.
9885         (orndi3_neon): Likewise.
9886         (bicdi3_neon): Likewise.
9887         (xordi3_neon): Likewise.
9888         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
9889         rid of unspec and handle unused operand.
9890         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
9891         * config/arm/predicates.md (imm_for_neon_logic_operand):
9892         Require TARGET_NEON.
9893         (imm_for_neon_inv_logic_operand): Likewise.
9894         * config/arm/arm.md (define_split for logical_binary_operator):
9895         Disable for NEON registers.
9896         (anddi3): Add new define_expand, and rename the insn.  Disable
9897         this insn for NEON, where anddi3_neon now applies.
9898         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
9899         (iordi3): As for anddi3.
9900         (xordi3): Likewise.
9901         * config/arm/neon.ml (Vand): Split DImode variants and mark them
9902         as No_op to disable testing for exact instruction match.
9903         (Vorr): Likewise.
9904         (Veor): Likewise.
9905         (Vbic): Likewise.
9906         (Vorn): Likewise.
9907         * config/arm/arm_neon.h: Regenerated.
9908         * doc/arm-neon-intrinsics.texi: Regenerated.
9909
9910 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9911
9912         * expr.h (emit_stack_probe): Declare.
9913         * explow.c (emit_stack_probe): Make global.
9914         (anti_adjust_stack_and_probe): Fix comments.
9915         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9916         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9917         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9918         * config/sparc/sparc.c: Include except.h.
9919         (sparc_emit_probe_stack_range): New function.
9920         (output_probe_stack_range): Likewise.
9921         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
9922         built-in stack checking is enabled.
9923         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
9924         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9925         (probe_stack_range): New insn.
9926
9927 2010-07-02  Richard Guenther  <rguenther@suse.de>
9928
9929         PR target/43958
9930         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
9931         for argument alignment.
9932
9933 2010-07-02  Jan Hubicka  <jh@suse.cz>
9934
9935         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
9936         walk backwards from entry_bb to check only those basic block of header
9937         that might lead to execution of split part.
9938         (consider_split) ... here.
9939         (find_return_bb): Allow assignment in return BB.
9940         (find_retval): New.
9941         (split_function): Fix name of cloned function; take care of updating
9942         return value in return_bb containing move.
9943
9944 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
9945
9946         PR target/44771
9947         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
9948         used variable insn.
9949
9950 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9951
9952         * implicit-zee.c (combine_reaching_defs): Fix long lines.
9953         (is_set_with_extension_DI): Delete.
9954         (struct zero_extend_info): New structure.
9955         (add_removable_zero_extend): New function.
9956         (find_removable_zero_extends): Use note_stores to find SETs.
9957         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
9958
9959 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9960
9961         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
9962         is_miss_rate_acceptable. Pull total_positions computation
9963         out of the loops.  Early return if miss_positions exceeds
9964         the acceptable threshold.
9965         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
9966         is_miss_rate_acceptable after renaming of compute_miss_rate.
9967
9968 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9969
9970         PR middle-end/44576
9971         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
9972         of 1000) for miss rate if the address diference is greater than or
9973         equal to the cache line size (the two reference will never hit the
9974         same cache line).
9975
9976 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
9977
9978         PR target/42835
9979         * config/arm/arm-modes.def (CC_NOTB): New mode.
9980         * config/arm/arm.c (get_arm_condition_code): Handle it.
9981         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
9982         * config/arm/arm.md (subsi3_compare0_c): New pattern.
9983         (compare_scc): Now a define_and_split.  Add a number of extra
9984         splitters before it.
9985
9986         PR target/42172
9987         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
9988         and ZERO_EXTEND.
9989         (arm_rtx_costs_1): Likewise.
9990         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
9991         * config/arm/arm.md (is_arch6): New attribute.
9992         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
9993         extendqisi2): Tighten the code somewhat, avoiding invalid
9994         RTL to occur in the expander patterns.
9995         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
9996         (thumb1_zero_extendhisi2_v6): Delete.
9997         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
9998         (thumb1_extendhisi2_v6): Delete.
9999         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
10000         (thumb1_extendqisi2_v6): Delete.
10001         (zero_extendhisi2 for register input splitter): New.
10002         (zero_extendqisi2 for register input splitter): New.
10003         (thumb1_extendhisi2 for register input splitter): New.
10004         (extendhisi2 for register input splitter): New.
10005         (extendqisi2 for register input splitter): New.
10006         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
10007         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
10008         and add support for a register alternative requiring a split.
10009         (thumb1_zero_extendqisi2): Likewise.
10010         (arm_zero_extendqisi2): Likewise.
10011         (arm_extendhisi2): Likewise.
10012         (arm_extendqisi2): Likewise.
10013
10014 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10015
10016         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
10017         instead of an unspec.
10018         (neon_expand_vector_init): Likewise.
10019         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
10020         (UNSPEC_VDUP_LANE): Delete.
10021         (UNSPEC VDUP_N): Delete.
10022         (UNSPEC_VGET_HIGH): Delete.
10023         (UNSPEC_VGET_LANE): Delete.
10024         (UNSPEC_VGET_LOW): Delete.
10025         (UNSPEC_VMVN): Delete.
10026         (UNSPEC_VSET_LANE): Delete.
10027         (V_double_vector_mode): New.
10028         (vec_set<mode>_internal): Make code emitted match that for the
10029         corresponding intrinsics.
10030         (vec_setv2di_internal): Likewise.
10031         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
10032         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
10033         (neon_vset_lane<mode>): Combine double and quad patterns and
10034         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
10035         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
10036         (neon_vdup_n<mode>): Rewrite RTL without unspec.
10037         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
10038         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
10039         with neon_vdup_lanev2di, adjusting the pattern from the latter
10040         to be predicable for consistency.
10041         (neon_vdup_lane<mode>_internal): New.
10042         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
10043         to avoid using an unspec.
10044         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
10045         (neon_vdup_lanev2di): Turn into a define_expand.
10046         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
10047         (neon_vget_high<mode>): Replace with....
10048         (neon_vget_highv16qi): New pattern using canonical RTL.
10049         (neon_vget_highv8hi): Likewise.
10050         (neon_vget_highv4si): Likewise.
10051         (neon_vget_highv4sf): Likewise.
10052         (neon_vget_highv2di): Likewise.
10053         (neon_vget_low<mode>): Replace with....
10054         (neon_vget_lowv16qi): New pattern using canonical RTL.
10055         (neon_vget_lowv8hi): Likewise.
10056         (neon_vget_lowv4si): Likewise.
10057         (neon_vget_lowv4sf): Likewise.
10058         (neon_vget_lowv2di): Likewise.
10059
10060         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
10061         test for this emitting vmov.
10062         (Vset_lane): Likewise.
10063         (Vdup_n): Likewise.
10064         (Vmov_n): Likewise.
10065
10066         * doc/arm-neon-intrinsics.texi: Regenerated.
10067
10068 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
10069
10070         * config/arm/neon.md (vec_extractv2di): Correct error in register
10071         numbering to reconcile with neon_vget_lanev2di.
10072
10073 2010-07-02  Richard Guenther  <rguenther@suse.de>
10074
10075         * tree-ssa-structalias.c (pt_solution_set_var): New function.
10076         * tree-ssa-alias.h (pt_solution_set_var): Declare.
10077         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
10078         points-to information.
10079
10080 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
10081
10082         * config/s390/s390.c (override_options): Adopt prefetching
10083         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
10084
10085 2010-07-02  Jan Hubicka  <jh@suse.cz>
10086
10087         * df-problems.c (df_kill_notes): Do not collect dead  notes.
10088         (df_set_note): Just call add_reg_note.
10089         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
10090         df_create_unused_note): Do not deal with lists of old notes.
10091         (df_note_bb_compute): Likewise.
10092
10093 2010-07-02  Richard Guenther  <rguenther@suse.de>
10094
10095         * tree-ssa-structalias.c (find_func_aliases): Handle
10096         pointer alignment via BIT_AND_EXPR.
10097         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
10098
10099 2010-07-02  Richard Guenther  <rguenther@suse.de>
10100
10101         * tree-data-ref.c (initialize_data_dependence_relation): Handle
10102         mismatching number of dimensions properly.
10103
10104 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10105
10106         PR target/44707
10107         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
10108         (lo_sum (high ...) ...) patterns generated by earlier passes.
10109
10110 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10111
10112         * doc/install.texi (Prerequisites): Document Perl requirement on
10113         Solaris 2.
10114         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
10115
10116 2010-07-02  Richard Guenther  <rguenther@suse.de>
10117
10118         PR middle-end/44777
10119         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
10120
10121 2010-07-02  Jan Hubicka  <jh@suse.cz>
10122
10123         PR middle-end/44706
10124         * predict.c (predict_paths_for_bb): Handle case when control dependence
10125         BB has only abnormal edges.
10126
10127 2010-07-02  Richard Guenther  <rguenther@suse.de>
10128
10129         PR tree-optimization/44748
10130         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
10131         the embedded conversion in MEM_REFs.
10132
10133 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
10134
10135         * reload.c: Include toplev.h.
10136         * recog.c:  Likewise.
10137         * Makefile.in: Adjust dependencies.
10138
10139 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
10140
10141         PR debug/44694
10142         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
10143         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
10144
10145 2010-07-01  Richard Guenther  <rguenther@suse.de>
10146
10147         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
10148         types for offsets.
10149
10150 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
10151
10152         PR target/44732
10153         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
10154         Fix argument types.
10155
10156 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
10157
10158         PR target/44727
10159         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10160         Make sure operand 0 dies.
10161
10162 2010-07-01  Richard Guenther  <rguenther@suse.de>
10163
10164         PR middle-end/42834
10165         PR middle-end/44468
10166         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
10167         * doc/generic.texi (References to storage): Document MEM_REF.
10168         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
10169         (print_call_name): Likewise.
10170         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
10171         (build_simple_mem_ref_loc): New function.
10172         (mem_ref_offset): Likewise.
10173         * tree.h (build_simple_mem_ref_loc): Declare.
10174         (build_simple_mem_ref): Define.
10175         (mem_ref_offset): Declare.
10176         * fold-const.c: Include tree-flow.h.
10177         (operand_equal_p): Handle MEM_REF.
10178         (build_fold_addr_expr_with_type_loc): Likewise.
10179         (fold_comparison): Likewise.
10180         (fold_unary_loc): Fold
10181         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
10182         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
10183         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
10184         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
10185         (ptr_deref_may_alias_ref_p_1): Likewise.
10186         (ao_ref_base_alias_set): Properly differentiate base object for
10187         offset and TBAA.
10188         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
10189         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
10190         (indirect_refs_may_alias_p): Likewise.
10191         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
10192         chasing code.
10193         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
10194         (call_may_clobber_ref_p_1): Likewise.
10195         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
10196         * expr.c (expand_assignment): Handle MEM_REF.
10197         (store_expr): Handle MEM_REFs from STRING_CSTs.
10198         (store_field): If expanding a MEM_REF of a non-addressable
10199         decl use bitfield operations.
10200         (get_inner_reference): Handle MEM_REF.
10201         (expand_expr_addr_expr_1): Likewise.
10202         (expand_expr_real_1): Likewise.
10203         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
10204         * alias.c (ao_ref_from_mem): Handle MEM_REF.
10205         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
10206         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
10207         (dr_analyze_indices): Likewise.
10208         (dr_analyze_alias): Likewise.
10209         (object_address_invariant_in_loop_p): Likewise.
10210         * gimplify.c (mark_addressable): Handle MEM_REF.
10211         (gimplify_cond_expr): Build MEM_REFs.
10212         (gimplify_modify_expr_to_memcpy): Likewise.
10213         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
10214         (gimple_fold_indirect_ref): Adjust.
10215         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
10216         * tree.def (MEM_REF): New tree code.
10217         * tree-dfa.c: Include toplev.h.
10218         (get_ref_base_and_extent): Handle MEM_REF.
10219         (get_addr_base_and_unit_offset): New function.
10220         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
10221         * gimple-fold.c (may_propagate_address_into_dereference): Handle
10222         MEM_REF.
10223         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
10224         accesses if the array has just one dimension.  Remove always true
10225         parameter.  Do not require type compatibility here.
10226         (maybe_fold_offset_to_component_ref): Remove.
10227         (maybe_fold_stmt_indirect): Remove.
10228         (maybe_fold_reference): Remove INDIRECT_REF handling.
10229         Fold back to non-MEM_REF.
10230         (maybe_fold_offset_to_address): Simplify.  Deal with type
10231         mismatches here.
10232         (maybe_fold_reference): Likewise.
10233         (maybe_fold_stmt_addition): Likewise.  Also handle
10234         &ARRAY + I in addition to &ARRAY[0] + I.
10235         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
10236         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
10237         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
10238         * tree-ssa.c (useless_type_conversion_p): Make most pointer
10239         conversions useless.
10240         (warn_uninitialized_var): Handle MEM_REF.
10241         (maybe_rewrite_mem_ref_base): New function.
10242         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
10243         to SSA form.
10244         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
10245         INDIRECT_REF handling.
10246         (copy_tree_body_r): Handle MEM_REF.
10247         * gimple.c (is_gimple_addressable): Adjust.
10248         (is_gimple_address): Likewise.
10249         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
10250         invariant base are invariant.
10251         (is_gimple_min_lval): Adjust.
10252         (is_gimple_mem_ref_addr): New function.
10253         (get_base_address): Handle MEM_REF.
10254         (count_ptr_derefs): Likewise.
10255         (get_base_loadstore): Likewise.
10256         * gimple.h (is_gimple_mem_ref_addr): Declare.
10257         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
10258         * tree-cfg.c (verify_address): New function, split out from ...
10259         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
10260         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
10261         INDIRECT_REFs.
10262         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
10263         INDIRECT_REF.  Allow conversions.
10264         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
10265         a register does not change its size.
10266         (verify_types_in_gimple_reference): Verify MEM_REF.
10267         (verify_gimple_assign_single): Disallow INDIRECT_REF.
10268         Handle MEM_REF.
10269         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
10270         New.
10271         (mark_address_taken): Handle MEM_REF.
10272         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
10273         (get_asm_expr_operands): Pass opf_not_non_addressable.
10274         (get_expr_operands): Handle opf_[not_]non_addressable.
10275         Handle MEM_REF.  Remove INDIRECT_REF handling.
10276         * tree-vrp.c (check_array_ref): Handle MEM_REF.
10277         (search_for_addr_array): Likewise.
10278         (check_array_bounds): Likewise.
10279         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
10280         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
10281         (ref_always_accessed_p): Likewise.
10282         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
10283         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
10284         Handle MEM_REF.
10285         * cgraphbuild.c (mark_load): Properly check for NULL result
10286         from get_base_address.
10287         (mark_store): Likewise.
10288         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
10289         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
10290         handling for MEM_REF.
10291         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
10292         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
10293         * builtins.c (stabilize_va_list_loc): Use the function ABI
10294         valist type if we couldn't canonicalize the argument type.
10295         Always dereference with the canonical va-list type.
10296         (maybe_emit_free_warning): Handle MEM_REF.
10297         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
10298         memmove to memcpy.
10299         * builtins.c (fold_builtin_memory_op): Use ref-all types
10300         for all memcpy foldings.
10301         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
10302         (build_outer_var_ref): Likewise.
10303         (scan_omp_1_op): Likewise.
10304         (lower_rec_input_clauses): Likewise.
10305         (lower_lastprivate_clauses): Likewise.
10306         (lower_reduction_clauses): Likewise.
10307         (lower_copyprivate_clauses): Likewise.
10308         (expand_omp_atomic_pipeline): Likewise.
10309         (expand_omp_atomic_mutex): Likewise.
10310         (create_task_copyfn): Likewise.
10311         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
10312         Remove old union trick.  Initialize constant offsets.
10313         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
10314         INDIRECT_REF.  Init base_alias_set properly.
10315         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
10316         (vn_reference_fold_indirect): Adjust for MEM_REFs.
10317         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
10318         for ARRAY_REFs.
10319         (may_insert): Remove.
10320         (visit_reference_op_load): Do not test may_insert.
10321         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
10322         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
10323         a field to store the constant offset this op applies.
10324         (run_scc_vn): Adjust prototype.
10325         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
10326         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
10327         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
10328         bother about volatile qualifiers on pointers.
10329         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
10330         * tree-ssa-loop-ivopts.c
10331         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
10332         (strip_offset_1): Likewise.
10333         (find_interesting_uses_address): Replace INDIRECT_REF handling with
10334         MEM_REF handling.
10335         (get_computation_cost_at): Likewise.
10336         * ipa-pure-const.c (check_op): Handle MEM_REF.
10337         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
10338         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
10339         and constants.
10340         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
10341         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
10342         (eliminate_local_variables_1): Likewise.
10343         (create_call_for_reduction_1): Likewise.
10344         (create_loads_for_reductions): Likewise.
10345         (create_loads_and_stores_for_name): Likewise.
10346         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
10347         (ssa_accessed_in_tree): Handle MEM_REF.
10348         (ssa_accessed_in_assign_rhs): Likewise.
10349         (update_type_size): Likewise.
10350         (analyze_accesses_for_call_stmt): Likewise.
10351         (analyze_accesses_for_assign_stmt): Likewise.
10352         (transform_access_sites): Likewise.
10353         (transform_allocation_sites): Likewise.
10354         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
10355         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
10356         not handle INDIRECT_REF.
10357         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
10358         (cond_store_replacement): Likewise.
10359         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
10360         MEM_REF, no not handle INDIRECT_REFs.
10361         (insert_into_preds_of_block): Properly initialize avail.
10362         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
10363         for ARRAY_REFs.  Properly handle reference lookups that
10364         require a bit re-interpretation.
10365         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
10366         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
10367         (build_ref_for_offset_1): Remove.
10368         (build_ref_for_offset): Build MEM_REFs.
10369         (gate_intra_sra): Disable for now.
10370         (sra_ipa_modify_expr): Handle MEM_REF.
10371         (ipa_early_sra_gate): Disable for now.
10372         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
10373         MEM_REF handling.
10374         (disqualify_base_of_expr): Likewise.
10375         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
10376         MEM_REF handling.
10377         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
10378         Use mem_ref_offset.  Remove bogus folding.
10379         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
10380         (make_fancy_name_1): Add support for MEM_REF.
10381         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
10382         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
10383         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
10384         (compute_complex_ancestor_jump_func): Likewise.
10385         (ipa_analyze_virtual_call_uses): Likewise.
10386         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
10387         INDIRECT_REF folding with more generalized MEM_REF folding.
10388         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
10389         (forward_propagate_addr_into_variable_array_index): Also handle
10390         &ARRAY + I in addition to &ARRAY[0] + I.
10391         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
10392         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
10393         creates assignments with overlap.
10394         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
10395         (get_frame_field): Likewise.
10396         (get_nonlocal_debug_decl): Likewise.
10397         (convert_nonlocal_reference_op): Likewise.
10398         (struct nesting_info): Add mem_refs pointer-set.
10399         (create_nesting_tree): Allocate it.
10400         (convert_local_reference_op): Insert to be folded mem-refs.
10401         (fold_mem_refs): New function.
10402         (finalize_nesting_tree_1): Perform defered folding of mem-refs
10403         (free_nesting_tree): Free the pointer-set.
10404         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
10405         (vectorizable_load): Likewise.
10406         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
10407         (propagate_with_phi): Likewise.
10408         * tree-object-size.c (addr_object_size): Handle MEM_REFs
10409         instead of INDIRECT_REFs.
10410         (compute_object_offset): Handle MEM_REF.
10411         (plus_stmt_object_size): Handle MEM_REF.
10412         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
10413         for &MEM_REF.
10414         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
10415         (symbol_marked_for_renaming): Likewise.
10416         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
10417         (fold-const.o): Add $(TREE_FLOW_H).
10418         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
10419         (find_func_clobbers): Likewise.
10420         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
10421         (decompose_access): Likewise.
10422         (replace_field_acc): Likewise.
10423         (replace_field_access_stmt): Likewise.
10424         (insert_new_var_in_stmt): Likewise.
10425         (get_stmt_accesses): Likewise.
10426         (reorg_structs_drive): Disable.
10427         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
10428         (ix86_canonical_va_list_type): Likewise.
10429
10430 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10431
10432         PR other/44566
10433         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
10434         * target.def (struct gcc_target): Replace enum reg_class with
10435         reg_class_t in hook argument / return types.
10436         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
10437         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
10438         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10439         * targhooks.h (default_branch_target_register_class): Likewise.
10440         (default_ira_cover_classes, default_secondary_reload): Likewise.
10441         (default_memory_move_cost, default_register_move_cost): Likewise.
10442         * targhooks.c (default_branch_target_register_class): Likewise.
10443         (default_ira_cover_classes, default_secondary_reload): Likewise.
10444         (default_memory_move_cost, default_register_move_cost): Likewise.
10445         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
10446         * bt-load.c (branch_target_load_optimize): Likewise.
10447         * ira.c (setup_cover_and_important_classes): Likewise.
10448         * ira-costs.c (copy_cost): Likewise.
10449         * reload1.c (emit_input_reload_insns): Likewise.
10450         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10451         * config/frv/frv.c (frv_secondary_reload): Likewise.
10452         * config/s390/s390.c (s390_secondary_reload): Likewise.
10453         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
10454         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
10455         (ix86_register_move_cost): Likewise.
10456         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
10457         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
10458         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
10459         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
10460         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
10461         (rs6000_ira_cover_classes): Likewise.
10462         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
10463         * config/picochip/picochip-protos.h (picochip_secondary_reload):
10464         Likewise.
10465         * config/pa/pa.c (pa_secondary_reload): Likewise.
10466         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
10467         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
10468         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
10469         * doc/tm.texi: Regenerate.
10470
10471 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
10472
10473         PR bootstrrap/44726
10474         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
10475         use.
10476         (build_alias_set_optimal_p): Likewise.
10477         (build_base_obj_set_for_drs): Likewise.
10478
10479 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10480
10481         * target.def: Remove comment about licensing problems of function
10482         declarations.
10483
10484         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
10485         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
10486         * doc/tm.texi: Regenerate.
10487
10488         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
10489         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
10490
10491         * target.def (enum_va_list_p): Use DEFHOOK.
10492         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
10493         Rename ptype to ptree.
10494         * doc/tm.texi: Regenerate.
10495
10496         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
10497         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
10498         * doc/tm.texi: Regenerate.
10499
10500         * target.def (memory_move_cost): Use DEFHOOK.
10501         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
10502         Rename regclass AKA class to rclass.
10503         * doc/tm.texi: Regenerate.
10504
10505         * target.def (pragma_parse): Use DEFHOOK.
10506         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
10507         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
10508         * doc/tm.texi: Regenerate.
10509
10510         * target.def (pass_by_reference): Use DEFHOOK.
10511         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
10512         * doc/tm.texi: Regenerate.
10513
10514         * target.def (resolve_overloaded_builtin): Rename params to arglist.
10515         Use DEFHOOK.
10516         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
10517         * doc/tm.texi: Regenerate.
10518
10519         * target.def (return_pops_args): Use DEFHOOK.
10520         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
10521         Rename stack-size to size.
10522         * doc/tm.texi: Regenerate.
10523
10524         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
10525         last-sched_cycle to last_clock, cur_cycle to clock.
10526         * doc/tm.texi.in: Use @hook.
10527         * doc/tm.texi: Regenerate.
10528
10529         * target.def (print_operand, print_operand_address): Update comment.
10530         (print_operand_punct_valid_p): Likewise.
10531
10532 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10533
10534         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
10535         to rtl.h.
10536         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
10537         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
10538         * rtl-error.h: New.
10539         * regrename.c: Do not include toplev.h. Include rtl-error.h.
10540         * rtl-error.c: Likewise.
10541         * reload.c: Likewise.
10542         * recog.c:  Likewise.
10543         * sel-sched.c: Likewise.
10544         * function.c: Likewise.
10545         * reg-stack.c: Likewise.
10546         * cfgrtl.c: Likewise.
10547         * reload1.c: Likewise.
10548         * final.c: Include rtl-error.
10549         * Makefile.in: Adjust dependencies.
10550
10551 2010-06-30  Jan Hubicka  <jh@suse.cz>
10552
10553         PR middle-end/PR44706
10554         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
10555         to return the value.
10556
10557 2010-06-30  Michael Matz  <matz@suse.de>
10558
10559         PR bootstrap/44699
10560         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
10561         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
10562         a gimple reg, attach the original VDEF to the last store in the
10563         sequence.
10564
10565 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
10566
10567         PR other/44034
10568         * config/darwin.c (darwin_override_options): Use renamed
10569         targetm.asm_out.emit_unwind_label.
10570
10571 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10572
10573         PR tree-optimization/39799
10574         * tree-inline.c (remap_ssa_name): Initialize variable only if
10575         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10576
10577 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
10578
10579         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
10580
10581 2010-06-30  Richard Guenther  <rguenther@suse.de>
10582
10583         PR target/44722
10584         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
10585         against oscillation with reverse peephole2.
10586
10587 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
10588
10589         PR target/44721
10590         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10591         Fix last commit.
10592
10593 2010-06-30  Nick Clifton  <nickc@redhat.com>
10594
10595         * config/rx/rx-modes.def: New file.
10596         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
10597         (CC_REGNUM): Define.
10598         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
10599         register.
10600         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
10601         (SELECT_CC_MODE): Define.
10602         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
10603         (reg:CC CC_REG) instead of (cc0).
10604         (attr "cc"): Delete.
10605         (cbranchsi4): Do not split compare and branch here. Instead move
10606         it to...
10607         (cbranchsi4_<code>): ... here.  New patterns.
10608         (cmpsi): Call rx-compare_redundant to find out if it is necessary
10609         to emit the compare instruction.
10610         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
10611         cc_status flags.
10612         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
10613         FIRST_PSEUDO_REGNUM.
10614         (rx_expand_prologue, rx_expand_epilogue): Likewise.
10615         (rx_notice_update_cc): Delete.
10616         (rx_cc_modes_compatible): New function.
10617         (flags_needed_for_conditional): New function.
10618         (flags_from_mode): New function.
10619         (rx_compare_redundant): New function - scans backwards through
10620         insn list to find out if condition flags are already set correctly.
10621         (TARGET_CC_MODES_COMPATIBLE): Define.
10622         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
10623
10624         * config/rx/rx.h (BRANCH_COST): Define.
10625         (REGISTER_MOVE_COST): Define.
10626         * config/rx/predicates (rx_source_operand): Allow all constant types.
10627         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
10628         (tstsi4): New pattern.
10629         * config/rx/rx.c (rx_memory_move_cost): Define.
10630         (TARGET_MEMORY_MOVE_COST): Define.
10631
10632 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10633
10634         * tree.h (block_may_fallthru): Declare here.
10635         * tree-flow.h (block_may_fallthru): Do not declare here.
10636         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
10637         bitmap.h
10638         * Makefile.in (c-typeck.o): Update dependencies.
10639
10640 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
10641
10642         PR debug/44694
10643         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
10644         * cselib.c (cfa_base_preserved_regno): New static variable.
10645         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
10646         of REGNO (cfa_base_preserved_val->locs->loc).
10647         (cselib_preserve_cfa_base_value): Add regno argument, set
10648         cfa_base_preserved_regno to it.
10649         (cselib_invalidate_regno): Allow removal of registers other than
10650         cfa_base_preserved_regno from cfa_base_preserved_val.
10651         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
10652         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
10653         of MEM addresses, if not on LHS.
10654         (reverse_op): Don't add reverse ops for cfa_base_rtx.
10655         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
10656
10657 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10658
10659         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
10660         static variables.
10661         (peep2_buf_position): New static function.
10662         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
10663         peephole2_optimize): Use it.
10664         (peep2_attempt, peep2_update_life): New static functions, broken out
10665         of peephole2_optimize.
10666         (peep2_fill_buffer): New static function.
10667         (peephole2_optimize): Change the main loop to try to fill the buffer
10668         with the maximum number of insns before matching them against
10669         peepholes.  Use a forward scan.  Remove special case for targets with
10670         conditional execution.
10671         * genrecog.c (change_state): Delete dead code.
10672         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10673         Rewrite so as not to expect the second insn to have had a peephole
10674         applied yet.
10675
10676 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10677
10678         * genhooks.c (emit_findices): Cast field precision to int.
10679         (emit_documentation): Likewise.
10680
10681 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
10682
10683         PR tree-optimization/43801
10684         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
10685         if old_decl was DECL_ONE_ONLY.
10686
10687         PR debug/44668
10688         * dwarf2out.c (add_accessibility_attribute): New function.
10689         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
10690         instead of adding DW_AT_accessibility manually.
10691         (gen_enumeration_type_die, gen_struct_or_union_type_die,
10692         gen_typedef_die): Use it.
10693
10694 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10695
10696         * vmsdbgout.c (full_name): Just output the file name if not native.
10697
10698 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10699
10700         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
10701         (funcnam_table): New static table.
10702         (funcnum_table): New static table.
10703         (write_rtnbeg): Write value saved in funcnum_table.
10704         (write_rtnend): Write value saved in funcnum_table.
10705         (vmsdbgout_begin_function): Save current function info in
10706         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
10707         (vmsdbgout_finish): Iterate over funcnum_table.
10708
10709 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10710
10711         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
10712         (vmsdbgout_type_decl): Declare
10713         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
10714         (FUNC_EPILOGUE_LABEL): New macro
10715         (vmsdbgout_begin_epilogue): New function.
10716         (vmsdbgout_type_decl): New function.
10717
10718 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10719
10720         * vmsdbg.h: Update copyright.
10721
10722 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10723
10724         * vmsdbg.h (DST_K_TBG): New DST constant.
10725         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
10726         (write_modbeg): Cast module_language to avoid warning.
10727         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
10728
10729 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10730
10731         PR other/44034
10732         * target.def, doc/tm.texi.in, genhooks.c: New files.
10733         * target.h: Instead of defining individual hook members,
10734         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
10735         include target.def.
10736         * target-def.h: Instead of defining individual hook initializers,
10737         include target-hooks-def.h.
10738         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
10739         targetm.live_on_entry -> targetm.extra_live_on_entry
10740         targetm.sched.md_finish ->targetm.sched.finish
10741         targetm.sched.md_init -> targetm.sched.init
10742         targetm.sched.md_init_global -> targetm.sched.init_global
10743         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
10744         targetm.asm_out.except_table_label ->
10745           targetm.asm_out.emit_except_table_label
10746         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
10747         targetm.target_help -> targetm.help
10748         targetm.vectorize.builtin_support_vector_misalignment ->
10749           targetm.vectorize.support_vector_misalignment
10750         targetm.file_start_app_off -> targetm.asm_file_start_app_off
10751         targetm.file_start_file_directive ->
10752          targetm.asm_file_start_file_directive
10753         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
10754         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
10755         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
10756         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
10757           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
10758         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
10759           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
10760         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
10761         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
10762         * Makefile.in (TARGET_H): Depend on target.def.
10763         (TARGET_DEF_H): Depend on target-hooks-def.h.
10764         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
10765         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
10766         * doc/tm.texi: Regenerate.
10767
10768         * Makefile.in (s-tm-texi): Remove stray tab / rule.
10769
10770         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
10771         (targetm.sched.init): Likewise.
10772
10773 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10774
10775         PR bootstrap/44713
10776         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
10777         (function_arg_advance_32): Const-ify TYPE parameter.
10778         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
10779         (ix86_function_arg_advance): Change type of NAMED to bool.
10780         (function_arg_32): Const-ify CUM and TYPE parameters.
10781         (function_arg_64): Likewise.  Change type of NAMED to bool.
10782         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
10783         to bool.
10784         (ix86_function_arg): Change type of NAMED to bool.
10785         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
10786         last argument as a bool.
10787
10788 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10789
10790         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
10791         (OVERRIDE_OPTIONS): Add note of obsolescence.
10792         Replace references with references to TARGET_OPTION_OVERRIDE.
10793         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
10794          the macro).
10795         * targhooks.c (default_target_option_override): New function.
10796         * targhooks.h (default_target_option_override): Declare.
10797         * target.h (struct gcc_target): Add override member to
10798         target_option member.
10799         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
10800         targetm.target_option.override call.
10801         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
10802         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
10803
10804 2010-06-29  Jan Hubicka  <jh@suse.cz>
10805
10806         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
10807
10808 2010-06-29  Jan Hubicka  <jh@suse.cz>
10809
10810         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
10811         unreachable.
10812         (rebuild_frequencies): New function.
10813         * predict.h (rebuild_frequencies): Declare.
10814         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
10815         entry block and edge reaching new_entry.
10816         (tree_function_versioning): When doing partial cloning, rebuild
10817         frequencies when done.
10818         * passes.c (execute_function_todo): Use rebild_frequencies.
10819
10820 2010-06-29  Richard Guenther  <rguenther@suse.de>
10821
10822         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
10823         * tree-flow.h (enum noalias_state): Remove.
10824         (struct var_ann_d): Remove noalias_state member.
10825
10826 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10827
10828         PR target/43902
10829         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
10830         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
10831         (maddhidi4): Likewise.
10832
10833         Revert parts of the change for PR25130.
10834         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10835         MEM_ALIAS_SET.
10836
10837 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10838
10839         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
10840         targetm.calls.function_incoming_arg, and
10841         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
10842         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
10843         * target.h (struct gcc_target): Add function_arg_advance,
10844         function_arg, and function_incoming_arg fields.
10845         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
10846         (TARGET_FUNCTION_INCOMING_ARG): Define.
10847         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
10848         and TARGET_FUNCTION_INCOMING_ARG.
10849         * targhooks.h (default_function_arg_advance): Declare.
10850         (default_function_arg, default_function_incoming_arg): Declare.
10851         * targhooks.c (default_function_arg_advance): New function.
10852         (default_function_arg, default_function_incoming_arg): New function.
10853         * config/i386/i386.c (function_arg_advance): Rename to...
10854         (ix86_function_arg_advance): ...this.  Make static.
10855         (function_arg): Rename to...
10856         (ix86_function_arg): ...this.  Make static.
10857         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10858         (TARGET_FUNCTION_ARG): Define.
10859         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
10860         (FUNCTION_ARG): Delete.
10861         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
10862         (function_arg): Delete prototype.
10863
10864 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10865
10866         * reginfo.c (init_reg_sets_1): Adjust comments.
10867         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
10868         * calls.c (prepare_call_address): Likewise.
10869         (emit_call_1): Use targetm.calls.return_pops_args.
10870         (expand_call): Likewise.
10871         * function.c (assign_parms): Likewise.
10872         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
10873         * target.h (struct gcc_target) [struct calls]: Add
10874         return_pops_args field.
10875         * targhooks.h (default_return_pops_args): Declare.
10876         * targhooks.c (default_return_pops_args): Define.
10877         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
10878         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
10879         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
10880         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
10881         documentation.
10882         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
10883         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
10884         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
10885         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
10886         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
10887         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
10888         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
10889         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
10890         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
10891         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
10892         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
10893         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
10894         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
10895         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
10896         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
10897         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
10898         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
10899         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
10900         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
10901         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
10902         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
10903         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
10904         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
10905         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
10906         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
10907         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
10908         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
10909         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
10910         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
10911         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
10912         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
10913         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
10914         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
10915         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
10916         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
10917         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
10918         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
10919         * config/i386/i386.c (ix86_return_pops_args): Make static.
10920         Constify arguments.
10921         (TARGET_RETURN_POPS_ARGS): Define.
10922         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
10923         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
10924         (TARGET_RETURN_POPS_ARGS): Define.
10925         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
10926         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
10927         (TARGET_RETURN_POPS_ARGS): Define.
10928
10929 2010-06-29  Richard Guenther  <rguenther@suse.de>
10930
10931         PR middle-end/44667
10932         * tree-inline.c (initialize_inlined_parameters): Make sure
10933         to remap the inlined parameter variable substitutions types.
10934
10935 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10936
10937         PR rtl-optimization/44659
10938         * combine.c (make_compound_operation) <SUBREG>: Do not return the
10939         result of force_to_mode if it partially re-expanded the compound.
10940
10941 2010-06-28  Jan Hubicka  <jh@suse.cz>
10942
10943         PR middle-end/44671
10944         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
10945         RESULT_DECL.
10946
10947 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
10948
10949         * double-int.h (force_fit_type_double): Remove declaration.
10950         * double-int.c (force_fit_type_double): Move to tree.c.
10951         * tree.h (force_fit_type_double): Declare.
10952         * tree.h (force_fit_type_double): Moved from double-int.c. Use
10953         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
10954         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
10955         * convert.c (convert_to_pointer): Adjust call to
10956         force_fit_type_double.
10957         * tree-vrp.c (extract_range_from_assert,
10958         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
10959         * fold-const.c: Update comment.
10960         (int_const_binop, fold_convert_const_int_from_int,
10961         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
10962         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
10963         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
10964         round_up_loc): Adjust call to force_fit_type_double.
10965
10966 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10967
10968         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
10969
10970 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10971
10972         * tree-sra.c (convert_callers): New parameter, change fndecls of
10973         recursive calls.
10974         (modify_function): Pass the old decl to convert_callers.
10975
10976 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10977
10978         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
10979         ipa_check_create_node_params and ipa_initialize_node_params with
10980         checking asserts they are not necessary.
10981
10982 2010-06-28  Jan Hubicka  <jh@suse.cz>
10983
10984         PR tree-optimization/44687
10985         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
10986
10987 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10988
10989         PR c++/44535
10990         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
10991         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
10992         instead of BINFO_BASE_BINFO.
10993
10994 2010-06-28  Michael Matz  <matz@suse.de>
10995
10996         PR middle-end/44592
10997         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
10998         proper VDEF chain for intermediate stores in the sequence.
10999
11000 2010-06-28  Jan Hubicka  <jh@suse.cz>
11001
11002         PR tree-optimization/44357
11003         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
11004         uninlinable functions.
11005
11006 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11007
11008         * config.gcc (powerpc*-*-*): Handle titan.
11009         * config/rs6000/rs6000.c (titan_cost): New costs.
11010         (rs6000_override_options): Add "titan" to processor_target_table.
11011         Add Titan to branch alignment logic.
11012         Correctly set rs6000_cost for titan.
11013         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
11014         * config/rs6000/titan.md: New file.
11015         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
11016
11017 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11018
11019         * tree-browser.c (TB_history_stack): Convert to a VEC.
11020         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
11021         (TB_history_prev): Likewise.
11022
11023 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
11024
11025         * vec.h (vec_heap_free): Add parentheses around free.
11026
11027 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
11028
11029         * system.h: Poison GCC_EXCEPT_H for front-end files.
11030
11031         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
11032         langhook.
11033         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
11034         Define to NULL by default.
11035         * except.h: Define GCC_EXCEPT_H.
11036         (doing_eh): Remove prototype.
11037         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
11038         (lang_protect_cleanup_actions): Remove.
11039         * except.c (lang_protect_cleanup_actions): Remove.
11040         (doing_eh): Remove.
11041         (gen_eh_region): Don't check doing_eh here.
11042         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
11043         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
11044         instead of lang_protect_cleanup_actions.
11045         * omp-low.c (maybe_catch_exception): Likewise.
11046         * Makefile.in: Update dependencies.
11047
11048 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
11049
11050         * cgraph.h (struct varpool_node): new used_from_object_file flag.
11051         (struct cgraph_local_info): new used_from_object_file flag.
11052         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
11053         (cgraph_clone_node): initialize used_from_object_file.
11054         (cgraph_create_virtual_clone): initialize used_from_object_file.
11055         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
11056         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
11057         when compiling with -fwhole-program.
11058         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
11059         internal resolver.
11060         * ipa.c (function_and_variable_visibility): Set externally_visible
11061         flag of varpool_node if used_from_object_file flag is set.
11062         (cgraph_externally_visible_p): check used_from_object_file flag.
11063         * doc/invoke.texi (-fwhole-program option): Change description of
11064         externally_visible attribute accordingly.
11065         * doc/extend.texi (externally_visible): Ditto.
11066
11067 2010-06-27  Jan Hubicka  <jh@suse.cz>
11068
11069         * params.def (max-inline-insns-auto): Default to 40.
11070         * doc/invoke.texi (max-inline-insns-auto): Document the change.
11071
11072 2010-06-27  Jan Hubicka  <jh@suse.cz>
11073
11074         PR middle-end/44671
11075         PR middle-end/44686
11076         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
11077         signature change.
11078         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
11079         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
11080
11081 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
11082
11083         * target.h (struct gcc_target): Add register_move_cost field.
11084         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
11085         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
11086         * targhooks.c (default_register_move_cost): New function.
11087         * targhooks.h (default_register_move_cost): Declare function.
11088         * defaults.h (REGISTER_MOVE_COST): Delete.
11089         * ira-int.h (ira_register_move_cost): Update comment.
11090         * ira.c (ira_register_move_cost): Update comment.
11091         * reload.h (register_move_cost): Declare.
11092         * reginfo.c (register_move_cost): New function.
11093         (move_cost): Update comment.
11094         (init_move_cost, memory_move_secondary_cost): Replace
11095         REGISTER_MOVE_COST with register_move_cost.
11096         * postreload.c (reload_cse_simplify_set): (Ditto.).
11097         * reload.c (find_valid_class, find_reloads): (Ditto.).
11098         * reload1.c (choose_reload_regs): (Ditto.).
11099         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
11100         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
11101         * doc/md.texi (can_create_pseudo_p): Update documentation.
11102
11103         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
11104         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
11105         * config/i386/i386.h (ix86_memory_move_cost): Make static.
11106         (TARGET_MEMORY_MOVE_COST): Define.
11107
11108         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
11109         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
11110         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
11111         (TARGET_MEMORY_MOVE_COST): Define.
11112
11113 2010-06-27  Richard Guenther  <rguenther@suse.de>
11114
11115         PR tree-optimization/44683
11116         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
11117         false edge from the inverted condition.
11118
11119 2010-06-27  Richard Guenther  <rguenther@suse.de>
11120
11121         PR middle-end/44684
11122         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
11123         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
11124         for register LHS.  Or non-store assignments.
11125
11126 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
11127
11128         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
11129         (sparc_emit_set_const64): Likewise.  Remove disabled code.
11130         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
11131         (sparc_emit_set_const64): Likewise.
11132
11133 2010-06-26  Catherine Moore  <clm@codesourcery.com>
11134
11135         * config/mips/mips.md (alu_type): New attribute.
11136         (type): Infer type from alu_type.
11137         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
11138         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
11139         *subsi3_extended, negsi2, negdi2, *low<mode>,
11140         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
11141         xor<mode>3, *nor<mode>3,
11142         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
11143         *zero_extendhi_truncqi):  Set alu_type instead of type.
11144
11145 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
11146
11147         * config/alpha/alpha.c (alpha_need_linkage): Adjust
11148         splay_tree_new_ggc call.
11149         (alpha_use_linkage): Likewise.
11150
11151 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11152
11153         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
11154         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
11155         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
11156         (static_specs): Remove switches_need_spaces.
11157         (process_command, do_self_spec): Hardcode handling "-o" instead of
11158         checking switches_need_spaces.
11159         * system.h (SWITCHES_NEED_SPACES): Poison.
11160
11161 2010-06-26  Richard Guenther  <rguenther@suse.de>
11162
11163         PR tree-optimization/44393
11164         * tree-loop-distribution.c (generate_loops_for_partition): Fix
11165         stmt removal and VOP renaming.
11166         (generate_memset_zero): Remove redundant stmt updating.
11167         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
11168         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
11169
11170 2010-06-26  Jan Hubicka  <jh@suse.cz>
11171
11172         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
11173         edges comming from header are equivalent.
11174         (visit_bb): Handle PHIs correctly.
11175         * tree-inline.c (copy_phis_for_bb): Be able to copy
11176         PHI from entry edge.
11177         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
11178
11179 2010-06-26  Richard Guenther  <rguenther@suse.de>
11180
11181         PR middle-end/44674
11182         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
11183         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
11184
11185 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
11186
11187         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
11188         add_infile, alloc_switch): New.
11189         (process_command): Remove variable lang_n_infiles.  Process
11190         options in a single pass.  Use new functions for allocating
11191         infiles and switches arrays.  Properly skip operands of
11192         -Xpreprocessor and -Xassembler.
11193
11194 2010-06-26  Jan Hubicka  <jh@suse.cz>
11195
11196         PR middle-end/44671
11197         * cgraphunit.c (cgraph_function_versioning): Remove wrong
11198         cgraph_make_decl_local call; fix typo copying RTL data.
11199
11200 2010-06-25  DJ Delorie  <dj@redhat.com>
11201
11202         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
11203         (m32c_output_aligned_common): Likewise.
11204         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11205         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11206         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
11207         (m32c_register_pragmas): Register it.
11208         * config/m32c/m32c.c (m32c_get_pragma_address): New.
11209         (m32c_insert_attributes): Set #pragma address decls volatile.
11210         (pragma_entry_eq): New.
11211         (pragma_entry_hash): New.
11212         (m32c_note_pragma_address): New.
11213         (m32c_get_pragma_address): New.
11214         (m32c_output_aligned_common): New.
11215         * doc/extend.texi: Document the new pragma.
11216
11217         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
11218         also.
11219         * config/m32c/predicates.md (m32c_any_operand): Check the code
11220         instead of memory_operand so as to allow matching volatile MEMs.
11221         (m32c_nonimmediate_operand): Likewise.
11222         (mra_operand): Allow volatiles.
11223
11224 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
11225
11226         PR debug/44610
11227         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
11228         address if the offset is unknown.
11229
11230 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
11231
11232         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
11233         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
11234         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
11235         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
11236         to ia64_start_function. Invoke it.
11237         * config/ia64/ia64.c (ia64_start_function): Call new function
11238         dwarf2out_vms_debug_main_pointer.
11239
11240 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11241
11242         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
11243         statements computing the true predicate.
11244
11245 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11246
11247         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
11248         to boolean_true_node.
11249         (reset_bb_predicate): New.
11250         (predicate_bbs): Call reset_bb_predicate.
11251
11252 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11253
11254         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
11255         (tree_if_conversion): Returns true when something has been changed.
11256         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
11257         changed something.
11258
11259 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
11260
11261         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
11262         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
11263         * tree-if-conv.c: Include dbgcnt.h.
11264         (tree_if_conversion): Use if_conversion_tree to count the number of
11265         if-convertible loops.
11266
11267 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
11268
11269         * common.opt (fprefetch-loop-arrays): Re-define
11270         -fprefetch-loop-arrays as a tri-state option with the initial
11271         value of -1.
11272         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
11273         pass only when flag_prefetch_loop_arrays > 0.
11274         * toplev.c (process_options): Note that, with tri-states,
11275         flag_prefetch_loop_arrays>0 means prefetching is enabled.
11276         * config/i386/i386.c (override_options): Enable prefetching at -O3
11277         for a set of CPUs that sw prefetching is helpful.
11278         (software_prefetching_beneficial_p): New.  Return TRUE if software
11279         prefetching is beneficial for the given CPU.
11280
11281 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
11282
11283         PR rtl-optimization/44326
11284         * implicit-zee.c (find_removable_zero_extends): Replace
11285         INSN_P with NONDEBUG_INSN_P.
11286
11287 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11288
11289         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
11290         (struct ipa_node_params): Removed the modification_analysis_done flag.
11291         (ipa_is_param_modified): Removed.
11292         (ipa_analyze_node): Declare.
11293         (ipa_compute_jump_functions): Remove declaration.
11294         (ipa_count_arguments): Likewise.
11295         (ipa_detect_param_modifications): Likewise.
11296         (ipa_analyze_params_uses): Likewise.
11297         * ipa-prop.c (struct param_analysis_info): New type.
11298         (visit_store_addr_for_mod_analysis): Removed.
11299         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
11300         moved down in the file.
11301         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
11302         (ipa_count_arguments): Made static.
11303         (mark_modified): New function.
11304         (is_parm_modified_before_call): New function.
11305         (compute_pass_through_member_ptrs): New parameter parms_info, call
11306         is_parm_modified_before_call instead of ipa_is_param_modified.
11307         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
11308         it to compute_pass_through_member_ptrs.
11309         (ipa_compute_jump_functions): New parameter parms_info, pass it to
11310         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
11311         on the callee if it is analyzed.  Made static.
11312         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
11313         is_parm_modified_before_call instead of ipa_is_param_modified.
11314         (ipa_analyze_call_uses): New parameter parms_info, pass it to
11315         ipa_analyze_indirect_call_uses.
11316         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
11317         ipa_analyze_call_uses.
11318         (ipa_analyze_params_uses): New parameter parms_info, pass it to
11319         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
11320         (ipa_analyze_node): New function.
11321         (ipa_print_node_params): Do not dump the modified flag.
11322         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
11323         it.  Do not stream the modified parameter flag.
11324         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
11325         it.  Do not stream the modified parameter flag.
11326         * ipa-cp.c (ipcp_analyze_node): Removed.
11327         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
11328         with only a call to ipa_analyze_node.
11329         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
11330         node with only a call to ipa_analyze_node.
11331
11332 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11333
11334         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
11335
11336 2010-06-25  Jan Hubicka  <jh@suse.cz>
11337
11338         * tree-pass.h (pass_split_functions): Declare.
11339         * opts.c (decode_options): Enable function splitting at -O2
11340         * timevar.def (TV_IPA_FNSPLIT): New macro.
11341         * ipa-split.c: New file.
11342         * common.opt (-fpartial-inlining): New flag.
11343         * Makefile.in (ipa-split.o): New object file.
11344         * passes.c (init_optimization_passes): Add ipa-split.
11345         * params.def (partial-inlining-entry-probability): New parameters.
11346         * doc/invoke.texi (-fpartial-inlining): New.
11347
11348 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11349
11350         PR 44665
11351         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
11352         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
11353         (gimplify_expr): Likewise.
11354
11355 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11356
11357         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
11358         statements instead of bailing out on them.
11359         (ipa_analyze_indirect_call_uses): Do not require that loads from the
11360         parameter are in the same BB as the condition.  Update comments.
11361
11362 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
11363
11364         PR middle-end/43866
11365         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
11366         true or always false, return NULL_TREE.
11367         (tree_unswitch_single_loop): Optimize conditions even when reaching
11368         max-unswitch-level parameter.  If num > 0, optimize first all conditions
11369         using entry checks, then do still reachable block discovery and consider
11370         only conditions in still reachable basic blocks in the loop.
11371
11372         PR tree-optimization/44539
11373         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
11374         the call doesn't have LHS, but has VDEF.
11375
11376 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11377
11378         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
11379         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
11380         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
11381         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
11382         * system.h (MODIFY_TARGET_NAME): Poison.
11383
11384 2010-06-25  Alan Modra  <amodra@gmail.com>
11385
11386         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
11387         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
11388         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11389         CMODEL_LARGE as default.
11390         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
11391         (offsettable_ok_by_alignment): Delete.
11392         (rs6000_emit_move): Remove mcmodel=medium optimization.
11393
11394 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11395
11396         With large parts from Jim Wilson:
11397         PR target/43902
11398         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
11399         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11400         * optabs.c (optab_for_tree_code): Likewise.
11401         (expand_widen_pattern_expr): Likewise.
11402         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
11403         out of execute_optimize_widening_mul.
11404         (convert_plusminus_to_widen): New function.
11405         (execute_optimize_widening_mul): Use the two new functions.
11406         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
11407         Remove code to generate widening multiply-accumulate.  Add support
11408         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11409         * gimple-pretty-print.c (dump_ternary_rhs): New function.
11410         (dump_gimple_assign): Call it when appropriate.
11411         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
11412         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11413         (expand_gimple_stmt_1): Likewise.
11414         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
11415         WIDEN_MULT_MINUS_EXPR.
11416         * tree-ssa-operands.c (get_expr_operands): Likewise.
11417         * tree-inline.c (estimate_operator_cost): Likewise.
11418         * gimple.c (extract_ops_from_tree_1): Renamed from
11419         extract_ops_from_tree.  Add new arg for a third operand; fill it.
11420         (gimple_build_assign_stat): Support operations with three operands.
11421         (gimple_build_assign_with_ops_stat): Likewise.
11422         (gimple_assign_set_rhs_from_tree): Likewise.
11423         (gimple_assign_set_rhs_with_ops_1): Renamed from
11424         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
11425         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
11426         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
11427         WIDEN_MULT_MINUS_EXPR.
11428         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
11429         (extract_ops_from_tree_1): Adjust declaration.
11430         (gimple_assign_set_rhs_with_ops_1): Likewise.
11431         (gimple_build_assign_with_ops): Pass NULL for last operand.
11432         (gimple_build_assign_with_ops3): New macro.
11433         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
11434         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
11435         functions.
11436         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
11437         (verify_gimple_assign): Call it.
11438         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
11439         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
11440         functions for dealing with three-operand statements.
11441         * tree.c (commutative_ternary_tree_code): New function.
11442         * tree.h (commutative_ternary_tree_code): Declare it.
11443         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
11444         ternary statements.
11445         (gimple_assign_nonzero_warnv_p): Likewise.
11446         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
11447         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
11448         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
11449         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
11450         (struct hashtable_expr): New member ternary in the union.
11451         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
11452         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
11453         (iterative_hash_hashable_expr): Likewise.
11454         (print_expr_hash_elt): Handle EXPR_TERNARY.
11455         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
11456         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
11457         statements.  Handle GIMPLE_TERNARY_RHS.
11458
11459 2010-06-25  Jan Hubicka  <jh@suse.cz>
11460
11461         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
11462
11463 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
11464
11465         PR c/44517
11466         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
11467         parameters are not good.
11468         (c_parser_parameter_declaration): Error unknown type name if the type
11469         name can't start declaration specifiers.
11470
11471 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11472
11473         * gcc.c (translate_options): Don't mention +e in comment.
11474         (process_command): Don't handle +e specially.
11475
11476 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11477
11478         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
11479
11480         * ira-build.c (merge_hard_reg_conflicts): New function.
11481         (create_cap_allocno, copy_info_to_removed_store_destinations,
11482         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
11483         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
11484         (remove_unnecessary_allocnos, remove_low_level_allocnos)
11485         copy_nifo_to_removed_store_destination): Use them.
11486         * ira-lives.c (make_hard_regno_born): New function, split out of
11487         make_regno_born.
11488         (make_allocno_born): Likewise.
11489         (make_hard_regno_dead): New function, split out of make_regno_dead.
11490         (make_allocno_dead): Likewise.
11491         (inc_register_pressure): New function, split out of set_allocno_live.
11492         (dec_register_pressure): New function, split out of clear_allocno_live.
11493         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
11494         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
11495         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
11496         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
11497         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
11498         mark_pseudo_regno_live.
11499         (process_bb_node_lives): Use mark_pseudo_regno_live,
11500         make_hard_regno_born and make_allocno_dead.
11501         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
11502         set_allocno_live, clear_allocno_live): Delete functions.
11503
11504         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
11505         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
11506         functions.
11507         (ira_flattening): Use ira_parent_allocno.
11508         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
11509         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
11510
11511         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
11512         statement.
11513
11514         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
11515         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
11516         minmax_set_iter_cond, minmax_set_iter_next,
11517         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
11518         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
11519         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
11520         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
11521         uses changed.
11522
11523         * ira-int.h (struct live_range, live_range_t): Renamed from struct
11524         ira_allocno_live_range and allocno_live_range_t; all uses changed.
11525         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
11526         All uses changed.
11527
11528 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
11529
11530         * thumb2.md (thumb2_tlobits_cbranch): Delete.
11531         (peephole2 to convert zero_extract/compare of single bit to
11532          lshift/compare): New.
11533
11534 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
11535
11536         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
11537         recursive call and call to 'int_const_binop'.
11538         (build_range_check, fold_cond_expr_with_comparison, unextend,
11539         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
11540         multiple_of_p): Adjust call to const_binop.
11541
11542 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
11543
11544         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
11545         determine size of XFmode operand.
11546         (XFmode extended DFmode push splitter): Ditto.
11547         (XFmode extended SFmode push splitter): Ditto.
11548
11549 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11550
11551         PR target/44588
11552         * config/i386/i386.md (extract_code): New.
11553         (<u>divmodqi4): Likewise.
11554         (divmodhiqi3): Likewise.
11555         (udivmodhiqi3): Likewise.
11556         (<u>divqi3): Remvoved.
11557
11558 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
11559
11560         PR middle-end/44492
11561         * recog.h (struct recog_data): Add is_asm field.
11562         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
11563         present in constraints of inline-asm operand and memory operand
11564         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
11565         (extract_insn): Initialize recog_data.is_asm.
11566         * doc/md.texi (Constraints): Document operand side-effect rules.
11567
11568 2010-06-24  Andi Kleen  <ak@linux.intel.com>
11569
11570         * c-parser.c (c_parser_conditional_expression): Call
11571         warn_for_omitted_condop.
11572         * doc/invoke.texi: Document omitted condop warning.
11573
11574 2010-06-24  Nick Clifton<nickc@redhat.com>
11575
11576         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
11577         insn in the sequence is a jump insn before setting its label.
11578
11579 2010-06-24  Alan Modra  <amodra@gmail.com>
11580
11581         * collect2.c (main): Match exactly --version and --help.
11582
11583 2010-06-24  DJ Delorie  <dj@redhat.com>
11584
11585         * config/m32c/m32c-pragma.c: Don't include rtl.h.
11586
11587 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
11588
11589         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
11590         using X87MODEF mode iterator.
11591         (pushsf splitter): Macroize splitter using P mode iterator.
11592         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
11593         mode iterator.
11594
11595         (*movxf_internal): Rename from *movxf_integer.
11596         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
11597         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
11598         (*movdf_internal): Rename from *movdf_integer.
11599         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
11600         (*movsf_internal): Rename from *movdf_1.
11601
11602 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
11603
11604         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
11605         (const_gimple_seq_node): Removed typedefs.
11606
11607         * gimple.h (gimple_seq_node_d, gimple_seq_node)
11608         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
11609
11610 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
11611
11612         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
11613         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
11614         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
11615         and CODE_FOR_vec_extract_lo_v4df.
11616
11617         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
11618         Changed to define_insn_and_split.
11619         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
11620         (vec_extract_lo_v16hi): Likewise.
11621         (vec_extract_lo_v32qi): Likewise.
11622         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
11623         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
11624
11625 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
11626
11627         PR target/44640
11628         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
11629         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
11630         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
11631         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
11632         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
11633
11634         PR target/44640
11635         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
11636
11637         PR other/44644
11638         * df-core.c (struct df): Rename to df_d.
11639         * df.h (struct df): Likewise.
11640         * dse.h (struct df): Remove forward declaration.
11641         * recog.h (struct insn_data): Rename to:
11642         (struct_insn_data_d).  Adjusted all users.
11643
11644 2010-06-23  Arnaud Charlet  <charlet@adacore.com
11645
11646         PR ada/22220
11647         * doc/install.texi: Update requirements to build GNAT.
11648
11649 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
11650
11651         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
11652         enum type.
11653         (m68k_sched_attr_opx_type): Remove unreachable return.
11654         (m68k_sched_attr_opy_type): Likewise.
11655         (m68k_sched_attr_size): Likewise.
11656         (sched_get_opxy_mem_type): Likewise.
11657         (m68k_sched_attr_op_mem): Likewise.
11658
11659 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
11660
11661         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
11662         new statement and adjust VDEF only if necessary.  Remove superfluous
11663         call to maybe_clean_or_replace_eh_stmt.
11664         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
11665         copy the flags.
11666         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
11667         * tree-inline.c (copy_bb): ...and not there.
11668
11669 2010-06-22  Cary Coutant  <ccoutant@google.com>
11670
11671         * dwarf2out.c (is_nested_in_subprogram): New function.
11672         (should_move_die_to_comdat): Use it.
11673         (copy_ancestor_tree): Don't mark DIEs here.
11674         (copy_decls_walk): Start walk from root of newly-added tree;
11675         mark DIEs here instead.
11676
11677 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11678
11679         * config/i386/i386.md (unit): Also check sseishft1.
11680
11681 2010-06-22  Jan Hubicka  <jh@suse.cz>
11682
11683         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
11684         enabled.
11685
11686 2010-06-22  Jan Hubicka  <jh@suse.cz>
11687
11688         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
11689         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
11690         Return true if something changed.
11691         * df.h (df_confluence_function_n): Return bool.
11692         * df-core.c (df_worklist_propagate_forward,
11693         df_worklist_propagate_backward): Track changes and ages.
11694         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
11695         track ages.
11696         * dse.c (dse_confluence_n): Return always true.
11697
11698 2010-06-22  Jan Hubicka  <jh@suse.cz>
11699
11700         * bitmap.c (bitmap_clear_bit): Micro optimize.
11701
11702 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
11703
11704         * config/i386/i386.md (SWI1248x): New mode iterator.
11705         (SWI48x): Ditto.
11706         (SWI12): Ditto.
11707         (SWI24): Ditto.
11708
11709         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
11710         SWI1248x mode iterator.
11711         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
11712         using SWI124 mode iterator.
11713         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
11714         mode iterator.
11715         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
11716         *pushdi2_prologue_rex64 using P mode iterator.
11717         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
11718         using SWI48 mode iterator.
11719         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
11720         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
11721         using SWI1248x mode iterator.
11722         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
11723         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
11724         SWI48 mode iterator.
11725         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
11726         iterator.
11727         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
11728         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
11729         SWI12 mode iterator.
11730         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
11731         SWI12 mode iterator.
11732         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
11733         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
11734         SWI24 mode iterator.
11735         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
11736         SWI48 mode iterator.
11737         (mov<mode>_insn_1): New expander.
11738         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
11739         using SWI48x mode iterator.
11740
11741         (*movoi_internal_avx): Rename from *movoi_internal.
11742         (*movti_internal_rex64): Rename from *movti_rex64.
11743         (*movti_internal_sse): Rename from *movti_sse.
11744         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
11745         (*movdi_internal): Rename from *movdi_2.
11746         (*movsi_internal): Rename from *movsi_1.
11747         (*movhi_internal): Rename from *movhi_1.
11748         (*movqi_internal): Rename from *movqi_1.
11749
11750         (insv): Update the call to gen_movsi_insv_1 for rename.
11751         * config/i386/i386.c (promote_duplicated_reg): Ditto.
11752
11753 2010-06-22  Jan Hubicka  <jh@suse.cz>
11754
11755         * passes.c (execute_function_todo): Move call of statistics_fini_pass
11756         to ...
11757         (execute_todo) ... this one.
11758
11759 2010-06-22  Alan Modra  <amodra@gmail.com>
11760
11761         PR target/44364
11762         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11763         * caller-save.c (insert_restore, insert_save): Use non-validate
11764         form of adjust_address.
11765
11766 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11767
11768         PR target/39690
11769         * config/pa/pa.c (override_options): Disable
11770         -freorder-blocks-and-partition.
11771
11772 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
11773
11774         PR target/44615
11775         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
11776
11777         * config/i386/i386.md (type): Add sseishft1
11778
11779         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
11780         (ppro_insn_load): Likewise.
11781         (ppro_insn_store): Likewise.
11782         (ppro_insn_both): Likewise.
11783
11784         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
11785         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
11786         for type.
11787         (*vec_extractv2di_1_avx): Likewise.
11788         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
11789         type.  Remove atom_unit.
11790         (*vec_extractv2di_1_sse2): Likewise.
11791
11792 2010-06-21  DJ Delorie  <dj@redhat.com>
11793
11794         * diagnostic.h (diagnostic_classification_change_t): New.
11795         (diagnostic_context): Add history and push/pop list.
11796         (diagnostic_push_diagnostics): Declare.
11797         (diagnostic_pop_diagnostics): Declare.
11798         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
11799         from pragmas in a history chain instead of the global table.
11800         (diagnostic_push_diagnostics): New.
11801         (diagnostic_pop_diagnostics): New.
11802         (diagnostic_report_diagnostic): Scan history chain to find state
11803         of diagnostics as of the diagnostic location.
11804         * opts.c (set_option): Pass UNKNOWN_LOCATION to
11805         diagnostic_classify_diagnostic.
11806         (enable_warning_as_error): Likewise.
11807         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
11808         use in the history chain.
11809         * doc/extend.texi: Document pragma GCC diagnostic changes.
11810
11811 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
11812
11813         * dwarf2out.c (add_linkage_name): New function.  Don't add
11814         anything to DW_TAG_member DIEs.
11815         (add_name_and_src_coords_attributes): Use it.
11816         (gen_variable_die): Call it for C++ static data members if
11817         specification is DW_TAG_member.
11818
11819         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
11820         C++ char16_t and char32_t.
11821
11822         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
11823         * genattrtab.c: Include vecprim.h.
11824         (cached_attrs, cached_attr_count, attrs_seen_once,
11825         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
11826         attrs_cached_after): New variables.
11827         (find_attrs_to_cache): New function.
11828         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
11829         (write_test_expr): Add attrs_cached argument, return it too,
11830         attempt to cache non-const attributes used more than once in
11831         a single case handling.
11832         (write_attr_get): Use find_attrs_to_cache, for caching candidates
11833         emit cached_* variables.  Adjust write_attr_set callers.
11834         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
11835         to find attributes that should be cached in this block.  Adjust
11836         write_test_expr callers.
11837         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
11838         callers.
11839         (make_automaton_attrs): Adjust write_test_expr caller.
11840
11841         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
11842         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
11843         (make_automaton_attrs): If find_tune_attr returns non-NULL,
11844         write separate internal_dfa_insn_code_* and insn_default_latency_*
11845         functions for each attribute's value and emit init_sched_attrs
11846         function and function pointers.
11847         * genattr.c (const_attrs, reservations): New variables.
11848         (gen_attr): Add const attributes to const_attrs vector.
11849         (check_tune_attr, find_tune_attr): New functions.
11850         (main): Add reservations to reservations vector.  If find_tune_attr
11851         returns true, add prototype for init_sched_attrs and make
11852         internal_dfa_insn_code and insn_default_latency function pointers,
11853         otherwise define init_sched_attrs as dummy macro.
11854         * cfgexpand.c: Include insn-attr.h.
11855         (gimple_expand_cfg): Call init_sched_attrs.
11856
11857         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
11858
11859         PR target/44575
11860         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
11861         va_arg from a set of register save slots into a temporary,
11862         if the container is bigger than type size, do the copying
11863         using smaller mode or using memcpy.
11864
11865         PR bootstrap/44426
11866         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
11867         prototype.
11868         (sel_print_to_dot): Remove macro.
11869         (sel_print): Likewise.  New prototype.
11870         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
11871         (sel_print): New function.
11872
11873 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11874
11875         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
11876         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
11877
11878 2010-06-21  Nick Clifton  <nickc@redhat.com>
11879
11880         * config/rx/rx.h (PTRDIFF_TYPE): Define.
11881         (SMALL_REGISTER_CLASS): Define (to zero).
11882         (PRINT_OPERAND): Delete.
11883         (PRINT_OPERAND_ADDRESS): Delete.
11884         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
11885         (rx_print_operand_address): Delete prototype.
11886         * config/rx/rx.c (rx_print_operand): Make static.
11887         Allow %H and %L to handle CONST_DOUBLEs.
11888         (rx_print_operand_address): Make static.
11889         (rx_gen_move_template): Rename local variable 'template' to
11890         out_template.
11891         (rx_function_arg): Do not pass unknown sized objects in registers.
11892         (TARGET_PRINT_OPERAND): Define.
11893         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11894
11895 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
11896
11897         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
11898
11899 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
11900
11901         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
11902         stack-alignment for simple leaf-functions.
11903
11904 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11905
11906         * doc/install.texi: Document bootstrap-lto.
11907
11908 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11909
11910         PR debug/44248
11911         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
11912         (input_function): Drop them here, if VTA is disabled.
11913
11914 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
11915
11916         PR target/44546
11917         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
11918         New predicate.
11919         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
11920         ix86_swapped_fp_comparsion_operator instead of
11921         ix86_fp_comparison_operator.
11922
11923         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
11924         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
11925         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
11926         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
11927         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
11928         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
11929
11930 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
11931
11932         PR other/32998
11933         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
11934         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
11935         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
11936         (decode_cmdline_option): Update for this return value.  Set
11937         orig_option_with_args_text field.  Set arg field for unknown
11938         options.  Make static.
11939         (decode_cmdline_options_to_array): New.
11940         (prune_options): Update handling of find_opt return value.
11941         * opts.c (read_cmdline_option): Take decoded option.  Return void.
11942         (read_cmdline_options): Take decoded options.
11943         (decode_options): Add parameters for decoded options.  Use
11944         decode_cmdline_options_to_array.  Use decoded options for -O
11945         scan.  Use integral_argument for -O parameters.  Update call to
11946         read_cmdline_options.
11947         (enable_warning_as_error): Update handling of find_opt return value.
11948         * opts.h: Update comment on unknown options.
11949         (struct cl_decoded_option): Update comments on opt_index and arg.
11950         Add orig_option_with_args_text.
11951         (decode_cmdline_option): Remove.
11952         (decode_cmdline_options_to_array): Declare.
11953         (decode_options): Update prototype.
11954         * toplev.c (save_argv): Remove.
11955         (save_decoded_options, save_decoded_options_count): New.
11956         (read_integral_parameter): Remove.
11957         (print_switch_values): Use decoded options.
11958         (toplev_main): Don't set save_argv.  Update call to decode_options.
11959         * toplev.h (read_integral_parameter): Remove.
11960         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
11961
11962 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
11963
11964         PR target/44072
11965         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
11966         immediate.
11967         * constraints.md (Pw, Px): New constraints.
11968         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
11969
11970 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
11971
11972         * config/i386/sse.md (fma4modesuffixf4): Removed.
11973         (ssemodesuffixf2s): Likewise.
11974         (ssemodesuffixf4): Likewise.
11975         (ssemodesuffixf2c): Likewise.
11976         (ssescalarmodesuffix2s): Likewise.
11977         (avxmodesuffixf2c): Likewise.
11978         (ssemodesuffix): New.
11979         (ssescalarmodesuffix): Likewise.
11980         Update patterns with ssemodesuffix and ssescalarmodesuffix.
11981
11982 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
11983
11984         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
11985
11986 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11987
11988         * stor-layout.c (debug_rli): Remove unused local variables.
11989
11990 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11991
11992         PR rtl-optimization/40900
11993         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
11994         original expression for later reuse.
11995         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
11996         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
11997
11998 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
11999
12000         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
12001         double_int_fits_in_uhwi_p): Implement as static inline.
12002         (double_int_xor): New inline function.
12003         (double_int_lrotate, double_int_rrotate, double_int_max,
12004         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12005         double_int_smin): Declare.
12006         (lrotate_double, rrotate_double): Remove declaration.
12007         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
12008         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
12009         (double_int_lrotate, double_int_rrotate, double_int_max,
12010         double_int_umax, double_int_smax, double_int_min, double_int_umin,
12011         double_int_smin): New function.
12012         * fold-const.c (int_const_binop): Clean up, use double_int_*
12013         functions.
12014         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
12015         double_int_* and immed_double_int_const functions.
12016
12017 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12018
12019         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
12020         * function.c (types_used_by_cur_var_decl): Likewise.
12021         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
12022
12023 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
12024
12025         * tree.h (record_layout_info): Change type of pending_statics field
12026         to a VEC.
12027         * stor-layout.c (start_record_layout): Store NULL into
12028         pending_statics.
12029         (debug_rli): Call debug_vec_tree instead of debug_tree.
12030         (place_field): Likewise.
12031         (finish_record_layout): Likewise.
12032
12033 2010-06-18  Alan Modra  <amodra@gmail.com>
12034
12035         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
12036
12037 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12038
12039         PR target/43740
12040         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
12041         for SET source operand from SET destination operand.
12042
12043 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
12044
12045         PR rtl-optimization/39871
12046         * reload1.c (init_eliminable_invariants): For flag_pic, disable
12047         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
12048         (function_invariant_p): Rule out a plus of frame or arg pointer with
12049         a SYMBOL_REF.
12050         * ira.c (find_reg_equiv_invariant_const): Likewise.
12051
12052 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
12053
12054         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
12055         print_operand_address and puts to output the operand for CONST.
12056
12057 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR debug/44572
12060         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
12061         hook.
12062
12063 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12064
12065         * v850-protos.h (print_operand): Delete.
12066         (print_operand_address): Delete.
12067         * v850.h (PRINT_OPERAND): Delete.
12068         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12069         (PRINT_OPERAND_ADDRESS): Delete.
12070         * v850.c (print_operand_address): Rename to...
12071         (v850_print_operand_address): ...this.  Make static. Call
12072         v850_print_operand.
12073         (print_operand): Rename to...
12074         (v850_print_operand): ...this.  Make static.  Call
12075         v850_print_operand_address.
12076         (v850_print_operand_punct_valid_p): New function.
12077         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12078         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12079
12080 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12081
12082         * config/sh/sh-protos.h (print_operand): Delete.
12083         (print_operand_address): Delete.
12084         * config/sh/sh.h (PRINT_OPERAND): Delete.
12085         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12086         (PRINT_OPERAND_ADDRESS): Delete.
12087         * config/sh/sh.c (sh_print_operand_address): Make static.
12088         (sh_print_operand): Make static.  Call sh_print_operand_address
12089         and sh_print_operand.
12090         (sh_print_operand_punct_valid_p): New function.
12091         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12092         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12093
12094 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12095
12096         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
12097         (mcore_print_operand_address): Delete.
12098         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
12099         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12100         (PRINT_OPERAND_ADDRESS): Delete.
12101         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
12102         (mcore_print_operand): Make static.
12103         (mcore_print_operand_punct_valid_p): New function.
12104         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
12105         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12106
12107 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12108
12109         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
12110         (print_operand_address): Delete.
12111         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
12112         (PRINT_OPERAND_ADDRESS): Delete.
12113         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
12114         static.
12115         (m68hc11_print_operand): Make static.
12116         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12117
12118 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12119
12120         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
12121         (m32r_print_operand_address): Delete.
12122         * config/m32r/m32r.h (m32r_punct_chars): Delete.
12123         (PRINT_OPERAND): Delete.
12124         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12125         (PRINT_OPERAND_ADDRESS): Delete.
12126         * config/m32r/m32r.c (m32r_punct_chars): Make static.
12127         (m32r_print_operand_address): Make static.
12128         (m32r_print_operand): Make static.
12129         (m32r_print_operand_punct_valid_p): New function.
12130         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12131         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12132
12133 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12134
12135         * config/iq2000/iq2000-protos.h (print_operand): Delete.
12136         (print_operand_address): Delete.
12137         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
12138         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12139         (PRINT_OPERAND_ADDRESS): Delete.
12140         (iq2000_print_operand_punct): Delete.
12141         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
12142         (iq2000_print_operand_address): Make static.
12143         (iq2000_print_operand): Make static.
12144         (iq2000_print_operand_punct_valid_p): New function.
12145         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12146         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12147
12148 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12149
12150         * config/frv/frv-protos.h (frv_print_operand): Delete.
12151         (frv_print_operand_address): Delete.
12152         * config/frv/frv.h (PRINT_OPERAND): Delete.
12153         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12154         (PRINT_OPERAND_ADDRESS): Delete.
12155         * config/frv/frv.c (frv_print_operand_address): Make static.
12156         (frv_print_operand): Make static.
12157         (frv_print_operand_punct_valid_p): New function.
12158         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12159         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12160
12161 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
12162
12163         * tree.h (vec_member): Declare.
12164         * tree.c (vec_member): Define.
12165
12166 2010-06-17  Richard Guenther  <rguenther@suse.de>
12167
12168         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
12169         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
12170
12171 2010-06-17  Richard Guenther  <rguenther@suse.de>
12172
12173         * tree-inline.c (declare_return_variable): Remove bogus code.
12174
12175 2010-06-17  Richard Guenther  <rguenther@suse.de>
12176
12177         * gimplify.c (gimplify_bind_expr): Always promote complex
12178         and vector variables to registers if possible.
12179
12180 2010-06-17  Richard Guenther  <rguenther@suse.de>
12181
12182         * expr.c (get_inner_reference): Use double_int for bit_offset
12183         calculation.
12184
12185 2010-06-16  DJ Delorie  <dj@redhat.com>
12186
12187         * common.opt (-fstrict-volatile-bitfields): new.
12188         * doc/invoke.texi: Document it.
12189         * fold-const.c (optimize_bit_field_compare): For volatile
12190         bitfields, use the field's type to determine the mode, not the
12191         field's size.
12192         * expr.c (expand_assignment): Likewise.
12193         (get_inner_reference): Likewise.
12194         (expand_expr_real_1): Likewise.
12195         * expmed.c (store_fixed_bit_field): Likewise.
12196         (extract_bit_field_1): Likewise.
12197         (extract_fixed_bit_field): Likewise.
12198
12199 2010-06-16  Richard Guenther  <rguenther@suse.de>
12200
12201         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
12202
12203 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
12204
12205         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
12206         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
12207         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
12208         * debug.c: Likewise.
12209         * sdbout.c: Likewise.
12210         * vmsdbgout.c: Likewise.
12211         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
12212         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
12213         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
12214         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
12215         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
12216         * dwarf2out.c (dw_fde_struct): New fields
12217         dw_fde_vms_{end,begin}_prologue.
12218         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
12219         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
12220         (dwarf2out_vms_end_prologue): New function.
12221         (dwarf2out_vms_begin_epilogue): New function.
12222         (dw_val_struct): New value dw_val_class_vms_delta.
12223         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
12224         begin_epilogue for VMS.
12225         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
12226         new static functions.
12227         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
12228         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
12229         static functions.
12230         (print_die): New case dw_val_class_vms_delta.
12231         (attr_checksum): Likewise.
12232         (same_dw_val_p: Likewise.
12233         (size_of_die): Likewise.
12234         (value_format): Likewise.
12235         (output_die): Likewise.
12236         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
12237         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
12238         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
12239         dwarf2out_cfi_begin_epilogue
12240         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
12241
12242 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12243
12244         * config/cris/cris-protos.h (cris_print_operand): Delete.
12245         (cris_print_operand_address): Delete.
12246         * config/cris/cris.h (PRINT_OPERAND): Delete.
12247         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12248         (PRINT_OPERAND_ADDRESS): Delete.
12249         * config/cris/cris.c (cris_print_operand_address): Make static.
12250         (cris_print_operand): Make static.
12251         (cris_print_operand_punct_valid_p): New function.
12252         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12253         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12254
12255 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
12256
12257         * config/arm/arm-protos.h (arm_print_operand): Delete.
12258         (arm_print_operand_address): Delete.
12259         * config/arm/arm.h (PRINT_OPERAND): Delete.
12260         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
12261         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
12262         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
12263         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
12264         (arm_print_operand): Make static.
12265         (arm_print_operand_punct_valid_p): New function.
12266         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
12267         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12268
12269 2010-06-16  Nick Clifton  <nickc@redhat.com>
12270
12271         * config/rx/constraints.md (NEGint4): New constraint.
12272         * config/rx/rx.md (attr cc): Add set_zsc.
12273         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
12274         initialised.
12275         (cmpsf): Likewise.
12276         (call_internal): Clobber the cc0 register.
12277         (call_value_internal): Likewise.
12278         (cstoresi4): Likewise.
12279         (movsieq): Likewise.
12280         (movsine): Likewise.
12281         (addsi3): Add alternative to handle small negative constants.
12282         (sunsi3): Likewise.
12283         (addsi3): Do not set the O bit in the cc0 register.
12284         (adddi3): Likewise.
12285         (subsi3): Likewise.
12286         (subdi3): Likewise.
12287         (andsi3): Reorder alternatives to prefer shorter forms.
12288         (mulsi3): Likewise.
12289         (iorsi3): Likewise.
12290         (negsi2): Note that the cc0 flags are set.
12291         (rotlsi3): Note that only the Z and S bits are set in cc0.
12292         (lshrsi3): Likewise.
12293         (ashlsi3): Likewise.
12294         (subsf3): Use %Q for the MEM operand.
12295         (fix_truncsfsi2): Likewise.
12296         (floatsisf2): Likewise.
12297         (bitset): Remove early clobber from destination.
12298         (bitset_in_memory): Likewise.
12299         (lrintsf2): Clobber the cc0 register.
12300         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
12301         (rx_print_operand): Handle %N.
12302
12303 2010-06-16  Jan Hubicka  <jh@suse.cz>
12304
12305         * df-core.c (df_compact_blocks): Free problem_temps vector.
12306
12307 2010-06-16  Martin Jambor  <mjambor@suse.cz>
12308
12309         PR tree-optimization/43905
12310         * tree-sra.c: Include tree-inline.h.
12311         (create_abstract_origin): Removed.
12312         (modify_function): Version the call graph node instead of creating
12313         abstract origins and dealing with same_body aliases.
12314         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
12315         function is versionable.
12316         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
12317
12318 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
12319
12320         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
12321         (CHOOSE_DYNAMIC_LINKER): Update.
12322
12323 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
12324
12325         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
12326         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
12327         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
12328         *prefetch_3dnow_rex.
12329
12330 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
12331
12332         * target.h (struct asm_out):Add declare_constant_name field.
12333         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12334         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
12335         * output.h (default_asm_declare_constant_name): Declare.
12336         (assemble_label): Update prototype.
12337         * varasm.c (assemble_constant_contents): Use
12338         targetm.asm_out.declare_constant_name target hook.
12339         (assemble_label): Add 'file' argument.
12340         (default_asm_declare_constant_name): New function.
12341         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
12342         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
12343         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
12344
12345         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
12346         * config/darwin.c (darwin_asm_declare_constant_name): New function.
12347         (machopic_output_indirection): Update assemble_label argument list.
12348         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
12349         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12350
12351 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
12352
12353         PR middle-end/44391
12354         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12355         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
12356
12357 2010-06-15  Richard Guenther  <rguenther@suse.de>
12358
12359         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
12360
12361 2010-06-15  Paul Brook  <paul@codesourcery.com>
12362
12363         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
12364         hard-float ABI.
12365
12366 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
12367
12368         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
12369         don't get a vector type for output.
12370
12371 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
12372
12373         PR fortran/44536
12374         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
12375         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
12376         (LANG_HOOKS_DECLS): Add it.
12377         * gimplify.c (omp_notice_variable): Call
12378         lang_hooks.decls.omp_report_decl.
12379
12380 2010-06-15  Martin Jambor  <mjambor@suse.cz>
12381
12382         PR lto/44464
12383         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
12384         on the newly dead SSA name.
12385
12386 2010-06-15  Alan Modra  <amodra@gmail.com>
12387
12388         * doc/invoke.texi: Add mcmodel to powerpc options.
12389         * configure.ac: Add HAVE_LD_LARGE_TOC test.
12390         * configure: Regenerate.
12391         * config.in: Regenerate.
12392         * config/rs6000/linux64.opt (mcmodel): New.
12393         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
12394         (TARGET_CMODEL, SET_CMODEL): Define.
12395         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
12396         select CMODEL_MEDIUM default.
12397         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
12398         (TARGET_CMODEL): Define default.
12399         * config/rs6000/rs6000.c (cmodel): New variable.
12400         (rs6000_explicit_options): Add cmodel field.
12401         (rs6000_handle_option): Handle -mcmodel.
12402         (create_TOC_reference): Add largetoc_reg param.  Generate high,
12403         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
12404         (rs6000_delegitimize_address): Recognise new toc reference rtl
12405         and minimal-toc rtl.
12406         (rs6000_legitimize_reload_address): Handle new toc references.
12407         (print_operand_address): Handle legitimate_constant_pool_address_p
12408         match before lo_sum.
12409         (rs6000_eliminate_indexed_memrefs): Tidy.
12410         (rs6000_emit_move): Tweak threshold for inlining constants.
12411         Keep rs6000_emit_allocate_stack large stack frame offsets
12412         loaded into r0 inline.
12413         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
12414         (tocrel_base, tocrel_offset): New variables.
12415         (toc_relative_expr_p): Set them here.
12416         (print_operand_address): Skip over any offset on constant pool address.
12417         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
12418         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
12419         (offsettable_ok_by_alignment): New function.
12420         (rs6000_emit_move): Address suitably aligned local symbol_refs
12421         relative to the toc pointer for -mcmodel=medium.
12422         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
12423         strict param.  Allow lo_sum version of addressing.  Verify reg
12424         used for -mminimal-toc and -mcmodel != small.  Update all callers.
12425         * config/rs6000/constraints.md: Update for above change.
12426         * config/rs6000/predicates.md: Likewise.
12427         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
12428         code.
12429         (tls_gd): Split for -mcmodel=medium/large.
12430         (tls_gd_high, tls_gd_low): New.
12431         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
12432         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
12433         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
12434         (largetoc_high, largetoc_low): New.
12435         (cmptf_internal2): Add clobber.
12436         * config/rs6000/rs6000-protos.h: Update.
12437
12438 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
12439
12440         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
12441         true if no prefetch is going to be generated for a given group.
12442         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
12443         estimate the prefetch_count.
12444         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
12445         prefetch count by considering the unroll_factor and prefetch_mod
12446         for is_loop_prefetching_profitable.
12447
12448 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
12449
12450         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
12451         anything if the argument is not a MEM.
12452
12453 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12454
12455         PR debug/43650
12456         PR debug/44181
12457         PR debug/44247
12458         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
12459         debug stmts.
12460         (canonicalize_loop_ivs): Likewise.
12461
12462 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12463
12464         PR debug/43656
12465         * haifa-sched.c (setup_insn_reg_pressure_info,
12466         update_register_pressure): Reject debug insns.
12467         (ready_sort): Don't setup reg pressure for debug insns.
12468         (schedule_insn): Don't update reg pressure for debug insns.
12469
12470 2010-06-14  Richard Guenther  <rguenther@suse.de>
12471
12472         * lto-streamer.c (cached_bp): Remove.
12473         (bitpack_delete): Likewise.
12474         (bitpack_create): Likewise.
12475         (bp_get_next_word): Likewise.
12476         (bp_pack_value, bp_unpack_value): Move ...
12477         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
12478         Re-implement.
12479         (struct bitpack_d): Likewise.
12480         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
12481         New inline functions.
12482         * lto-streamer-out.c (lto_output_bitpack): Remove.
12483         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12484         (pack_value_fields): Adjust.
12485         (lto_write_tree): Likewise.
12486         (output_gimple_stmt): Likewise.
12487         (output_function): Likewise.
12488         * lto-streamer-in.c (input_gimple_stmt): Adjust.
12489         (input_function): Likewise.
12490         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12491         (lto_input_bitpack): Remove.
12492         (lto_materialize_tree): Adjust.
12493         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
12494         * lto-cgraph.c (lto_output_edge): Adjust.
12495         (lto_output_node): Likewise.
12496         (lto_output_varpool_node): Likewise.
12497         (lto_output_ref): Likewise.
12498         (input_node): Likewise.
12499         (input_varpool_node): Likewise.
12500         (input_ref): Likewise.
12501         (input_edge): Likewise.
12502         (output_node_opt_summary): Likewise.
12503         (input_node_opt_summary): Likewise.
12504         * ipa-pure-const.c (pure_const_write_summary): Likewise.
12505         (pure_const_read_summary): Likewise.
12506         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
12507         (ipa_read_indirect_edge_info): Likewise.
12508         (ipa_write_node_info): Likewise.
12509         (ipa_read_node_info): Likewise.
12510
12511 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
12512
12513         PR target/44534
12514         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
12515         (vec_extract_lo_v16hi): Likewise.
12516         (vec_extract_lo_v32qi): Likewise.
12517
12518 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12519
12520         PR bootstrap/44426
12521         * tree.h (build_call_expr): Don't define as vararg macro, instead
12522         add a prototype.
12523         * builtins.c (build_call_nofold): Remove.
12524         (expand_builtin_int_roundingfn, expand_builtin_pow,
12525         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
12526         expand_builtin_memset_args, expand_builtin_strcmp,
12527         expand_builtin_strncmp, expand_builtin_memory_chk): Use
12528         build_call_nofold_loc instead of build_call_nofold.
12529         (build_call_expr): New function.
12530
12531         PR tree-optimization/44508
12532         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
12533         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
12534         don't eliminate trivially dead stmts.
12535         * tree-vrp.c (vrp_finalize): Pass false as last argument
12536         to substitute_and_fold.
12537         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
12538         to substitute_and_fold.
12539         * tree-ssa-ccp.c (ccp_finalize): Likewise.
12540
12541         PR bootstrap/44509
12542         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
12543
12544 2010-06-14  Ira Rosen  <irar@il.ibm.com>
12545
12546         PR tree-optimization/44507
12547         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
12548         to build initial vector for BIT_AND_EXPR.
12549         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
12550
12551 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12552
12553         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
12554         adjust z10prop set_attr.
12555
12556 2010-06-13  Jan Hubicka  <jh@suse.cz>
12557
12558         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
12559         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
12560         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
12561         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
12562         datastructure checks into checking asserts.
12563         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
12564         * tree-ssa-sccvn.c (VN_INFO): Likewise.
12565         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
12566         df_ref_create_structure): Likewise.
12567         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
12568         pool_free): Use gcc_checking_assert.
12569         * alias.c (get_alias_set): Likewise.
12570         * var-tracking.c (variable_htab_free, shared_hash_copy,
12571         canonicalize_values_mark, variable_merge_over_cur): Likewise.
12572         * lto-streamer.c (bp_unpack_value): Likewise.
12573
12574 2010-06-13  Richard Guenther  <rguenther@suse.de>
12575
12576         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
12577         Do not stream but initialize TYPE_CANONICAL to NULL.
12578         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
12579         * gimple.c (gimple_types_compatible_p): Disregard
12580         TYPE_STRUCTURAL_EQUALITY_P.
12581         (gimple_register_type): Use TYPE_CANONICAL as cache.
12582         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
12583         before registering common types.
12584         * config/i386/i386.c (ix86_function_arg_boundary): Do not
12585         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
12586         * tree.h (TYPE_CANONICAL): Clarify documentation.
12587
12588 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
12589
12590         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12591         LIBCALL_VALUE): Remove macros.
12592         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
12593         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12594         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12595         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
12596         (ia64_function_value): Make static. Handle receiving the function
12597         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
12598
12599 2010-06-12  Jan Hubicka  <jh@suse.cz>
12600
12601         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
12602         at correct place.
12603
12604 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
12605
12606         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
12607
12608 2010-06-12  Jan Hubicka  <jh@suse.cz>
12609
12610         * df-core.c (df_clear_bb_info): New function.
12611         (df_set_blocks): bb_info is always allocated.
12612         (df_get_bb_info): Use block_info_elt_size.
12613         (df_set_bb_info): Likewise.
12614         (df_compact_blocks): Update for new block_info.
12615         (grow_bb_info): New function.
12616         * df-problems.c (df_grow_bb_info): Move to df-core.c
12617         (df_rd_set_bb_info): Remove.
12618         (df_rd_free_bb_info): Do not free block pool.
12619         (df_rd_alloc): Do not create pool, use check for
12620         obstack presence instead of NULL pointer for new blocks.
12621         (df_rd_free): DO not free alloc pool; clear block_info.
12622         (problem_RD): Add size of block info structure.
12623         (df_lr_set_bb_info): Remove.
12624         (df_lr_free_bb_info): Do not free block pool.
12625         (df_lr_alloc): Do not create pool, use check for
12626         obstack presence instead of NULL pointer for new blocks.
12627         (df_lr_free): DO not free alloc pool; clear block_info.
12628         (problem_LR): Add size of block info structure.
12629         (df_live_set_bb_info): Remove.
12630         (df_live_free_bb_info): Do not free block pool.
12631         (df_live_alloc): Do not create pool, use check for
12632         obstack presence instead of NULL pointer for new blocks.
12633         (df_live_free): DO not free alloc pool; clear block_info.
12634         (problem_LIVE): Add size of block info structure.
12635         (problem_CHAIN): Add size of block info structure.
12636         (df_byte_lr_set_bb_info): Remove.
12637         (df_byte_lr_free_bb_info): Do not free block pool.
12638         (df_byte_lr_alloc): Do not create pool, use check for
12639         obstack presence instead of NULL pointer for new blocks.
12640         (df_byte_lr_free): DO not free alloc pool; clear block_info.
12641         (problem_BYTE_LR): Add size of block info structure.
12642         (problem_NOTE): Add size of block info structure.
12643         (df_byte_MD_set_bb_info): Remove.
12644         (df_byte_MD_free_bb_info): Do not free block pool.
12645         (df_byte_MD_alloc): Do not create pool, use check for
12646         obstack presence instead of NULL pointer for new blocks.
12647         (df_byte_MD_free): DO not free alloc pool; clear block_info.
12648         (problem_BD): Add size of block info structure.
12649         * df-scan.c (df_scan_free_internal): Free block pool.
12650         (df_scan_set_bb_info): Remove.
12651         (df_scan_free_bb_info): Check for artificial_defs instead
12652         of bb_info being non-NULL.
12653         (df_scan_alloc): DO not create df_scan_block pool.
12654         (problem_SCAN): Set size of block info.
12655         (df_bb_refs_record): Do not allocate bb_info.
12656         * df.h (df_problem): Add block_info_elt_size.
12657         (struct dataflow): Change block_info to void *.
12658         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
12659         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
12660         in-line structures.
12661
12662 2010-06-12  Jan Hubicka  <jh@suse.cz>
12663
12664         PR tree-optimize/44485
12665         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
12666         containing use of return value of noreturn function.
12667
12668 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
12669
12670         * targhooks.c (default_function_value): Don't use
12671         FUNCTION_OUTGOING_VALUE.
12672         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
12673         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
12674
12675 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
12676
12677         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
12678         Add crtfastmath.o to extra_parts.
12679         * config/mips/crtfastmath.c: New.
12680         * config/mips/linux.h (ENDFILE_SPEC): New.
12681
12682 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
12683
12684         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
12685         old_type in parameter.
12686         (gcc_type_for_value): Update call to gcc_type_for_interval.
12687         (compute_type_for_level_1): Renamed compute_type_for_level.
12688         Update call to gcc_type_for_interval.
12689
12690 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12691
12692         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
12693         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
12694
12695 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12696
12697         * opts-common.c: Include options.h.
12698         (integral_argument): Move from opts.c.
12699         (decode_cmdline_option): New.  Based on read_cmdline_option.
12700         * opts.c (integral_argument): Move to opts-common.c.
12701         (read_cmdline_option): Move most contents to
12702         decode_cmdline_option.  Use %qs in diagnostics.
12703         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
12704         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
12705         decode_cmdline_option): New.
12706
12707 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12708
12709         PR target/44481
12710         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
12711         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
12712         (partiysi2_cmp): Ditto.
12713         (*partiyhi2_cmp): Ditto.
12714         (*parityqi2_cmp): Remove.
12715
12716 2010-06-11  Jan Hubicka  <jh@suse.cz>
12717
12718         * bitmap.h (bmp_iter_next_bit): New.
12719         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
12720
12721 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
12722             Eric Botcazou  <ebotcazou@adacore.com>
12723
12724         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
12725         computed cost.
12726
12727 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12728
12729         * config/i386/i386.md (unspec): New define_c_enum.
12730         (unspecv): Ditto.
12731
12732 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
12733
12734         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
12735
12736 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
12737
12738         PR middle-end/44483
12739         * tree-if-conv.c (bb_predicate_s): New struct.
12740         (bb_predicate_p): New.
12741         (bb_has_predicate): New.
12742         (bb_predicate): New.
12743         (set_bb_predicate): New.
12744         (bb_predicate_gimplified_stmts): New.
12745         (set_bb_predicate_gimplified_stmts): New.
12746         (add_bb_predicate_gimplified_stmts): New.
12747         (init_bb_predicate): New.
12748         (free_bb_predicate): New.
12749         (is_predicated): Use bb_predicate.
12750         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
12751         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
12752         before processing their successors.
12753         (clean_predicate_lists): Removed.
12754         (find_phi_replacement_condition): Use bb_predicate.
12755         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
12756         computations.
12757         (insert_gimplified_predicates): New.
12758         (combine_blocks): Call insert_gimplified_predicates.
12759         (tree_if_conversion): Call free_bb_predicate instead of
12760         clean_predicate_lists.
12761
12762 2010-10-11  Paul Brook  <paul@codesourcery.com>
12763
12764         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
12765         * config/arm/arm.c (all_architectures): Change v7e-m default to
12766         cortexm4.
12767         * config/arm/arm-cores.def: Add cortex-m4.
12768         * config/arm/arm-tune.md: Regenerate.
12769
12770 2010-06-11  Jan Hubicka  <jh@suse.cz>
12771
12772         * ipa-pure-const.c (special_builtlin_state): New function.
12773         (check_call): Use it instead of special casign BUILT_IN_RETURN.
12774         (propagate_pure_const): Use it.
12775
12776 2010-06-11  Jan Hubicka  <jh@suse.cz>
12777
12778         * df-problems.c (df_live_scratch): Convert to bitmap_head.
12779         (df_live_alloc): Initialize df_live_scratch when initializing
12780         problem_data.
12781         (df_live_transfer_function): Update uses of df_live_scratch.
12782         (df_live_free): Free problem_data; clear df_live_scratch before
12783         releasing the obstack.
12784         (df_md_free): Free problem data.
12785
12786 2010-06-11  Jan Hubicka  <jh@suse.cz>
12787
12788         * doc/invoke.texi (Wsuggest-attribute): Document.
12789         (Wmissing-noreturn): Remove.
12790         * ipa-pure-const.c (warn_function_noreturn): New function.
12791         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
12792         warn_missing_noreturn.
12793         * common.opt (Wsuggest-attribute=noreturn): New.
12794         * tree-flow.h (warn_function_noreturn): Declare.
12795         * tree-cfg.c (execute_warn_function_noreturn): Use
12796         warn_function_noreturn.
12797         (gate_warn_function_noreturn): New.
12798         (pass_warn_function_noreturn): Update.
12799
12800 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12801
12802         * c-typeck.c (handle_warn_cast_qual): Add loc
12803         parameter. Improve warning message.
12804         (build_c_cast): Pass location to handle_warn_cast_qual.
12805
12806 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12807
12808         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
12809         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
12810         insn mnemonic.
12811         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
12812
12813 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
12814
12815         Fix bootstap on mips
12816         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
12817         be naming typedefs.
12818
12819 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
12820
12821         * system.h (helper_const_non_const_cast): New inline for
12822         gcc version <= 4.0.
12823         (CONST_CAST2): For gcc version <= 4.0 use
12824         new helper to do const/non-const casting.
12825
12826 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12827
12828         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
12829         * Makefile.in (OBJS-common): Include insn-enums.o.
12830         (insn-enums.o): New rule.
12831         (simple_generated_c): Add insn-enums.c.
12832         (build/genenums.o): New rule.
12833         (genprogmd): Add "enums".
12834         * genconstants.c (print_enum_type): Declare a C string array
12835         for each enum.
12836         * genenums.c: New file.
12837         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
12838         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
12839         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
12840
12841 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12842
12843         * doc/md.texi (define_enum_attr): Document.
12844         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
12845         * read-md.h (lookup_enum_type): Declare.
12846         * read-md.c (lookup_enum_type): New function.
12847         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
12848         * genattrtab.c (attr_desc): Add an enum_name field.
12849         (evaluate_eq_attr): Take the associated attribute as argument.
12850         Get the enum prefix from the enum_name field, if defined.
12851         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
12852         (simplify_test_exp): Pass attr to evaluate_eq_attr.
12853         (add_attr_value): New function, split out from...
12854         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
12855         (write_test_expr): Pass attr to evaluate_eq_attr.
12856         (write_attr_get): Use the enum_name as the enum tag, if defined.
12857         (write_attr_valueq): Use the enum_name as a prefix, if defined.
12858         (find_attr): Initialize enum_name.
12859         (main): Handle DEFINE_ENUM_ATTR.
12860         * gensupport.c (process_rtx): Likewise.
12861         * config/mips/mips.h (mips_tune_attr): Delete.
12862         * config/mips/mips.md (cpu): Use define_attr_enum.
12863
12864 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12865
12866         * doc/md.texi (define_c_enum, define_enum): Document.
12867         * read-md.h (md_constant): Add a parent_enum field.
12868         (enum_value, enum_type): New structures.
12869         (upcase_string, traverse_enum_types): Declare.
12870         * read-md.c (enum_types): New variable.
12871         (upcase_string, add_constant): New functions.
12872         (handle_constants): Don't create the hash table here.
12873         Use add_constant.
12874         (traverse_md_constants): Don't check for a null md_constants.
12875         (decimal_string, handle_enum, traverse_enum_types): New functions.
12876         (read_md_files): Initialize md_constants and md_enums.
12877         * genconstants.c (print_md_constant): Ignore info argument.
12878         Only print constants that belong to no enum.
12879         (print_enum_type): New function.
12880         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
12881         for each defined enum type.
12882         * config/mips/mips.md (processor): New define_enum.
12883         (unspec): New define_c_enum.
12884         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
12885         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
12886         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
12887         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
12888         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
12889         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
12890         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
12891         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
12892         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
12893         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
12894         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
12895         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
12896         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
12897         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
12898         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
12899         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
12900         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
12901         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
12902         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
12903         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
12904         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
12905         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
12906         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12907         (UNSPEC_RDDSP): Move to mips-dsp.md.
12908         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
12909         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
12910         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
12911         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
12912         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
12913         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
12914         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
12915         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
12916         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
12917         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
12918         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
12919         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
12920         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
12921         Moved to mips-dspr2.md.
12922         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
12923         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
12924         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
12925         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
12926         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
12927         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
12928         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12929         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12930         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12931         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12932         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12933         UNSPEC_LOONGSON_PSADBH)
12934         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12935         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12936         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
12937         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12938         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12939         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12940         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
12941         (cpu): Update comment.
12942         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
12943         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
12944         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
12945         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
12946         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
12947         UNSPEC_LOONGSON_PCMPEQ)
12948         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
12949         UNSPEC_LOONGSON_PINSR_0)
12950         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12951         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12952         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12953         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12954         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12955         UNSPEC_LOONGSON_PSADBH)
12956         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12957         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12958         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
12959         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12960         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12961         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12962         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
12963         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
12964         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
12965         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
12966         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
12967         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
12968         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
12969         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
12970         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
12971         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
12972         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
12973         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
12974         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
12975         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
12976         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
12977         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
12978         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
12979         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
12980         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
12981         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
12982         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12983         (UNSPEC_RDDSP): Moved from mips.md.
12984         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
12985         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
12986         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
12987         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
12988         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
12989         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
12990         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
12991         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
12992         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
12993         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
12994         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
12995         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
12996         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
12997         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
12998         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
12999         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
13000         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
13001         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
13002         (UNSPEC_SCC): Moved from mips.md.
13003         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
13004         "processor_type" to "processor".
13005         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
13006         * config/mips/mips.h (processor_type): Delete.
13007         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
13008         "processor_type" to "processor".
13009
13010 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13011
13012         * configure.ac (tm_include_list): Add insn-constants.h.
13013         * configure: Regenerate.
13014         * Makefile.in (GTM_H): Move insn-constants.h here from...
13015         (TM_H): ...here.
13016         * mkconfig.sh: Remove special handling for insn-constants.h.
13017
13018 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13019
13020         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
13021         (BUILD_MD): ...this new variable.
13022         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
13023         that include the old contents of simple_generated_h and
13024         simple_generated_c.
13025         (simple_generated_h, simple_generated_c): Include them.  Add
13026         insn-constants.h.
13027         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
13028         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
13029         Remove these dependencies from the main rule and include
13030         insn-conditions.md in the command line only if it appears
13031         in the dependency list.
13032         (insn-constants.h, s-constants): Delete.
13033         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
13034         or gensupport.h.
13035         (build/genmddeps.o): Likewise.
13036         (genprogrtl): New variable that contains everything from genprogmd
13037         except mddeps and constants.
13038         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
13039         depend on $(BUILD_MD)
13040         (genprog): New variable.  Make these programs depend on
13041         $(BUILD_ERRORS).
13042         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
13043         (main): Use read_md_files instead of init_rtx_reader_args.
13044         * genconstants.c: As for genmddeps.c.
13045         * read-md.h (read_skip_construct): Declare.
13046         * read-md.c (read_skip_construct): New function.
13047         (handle_file): Allow a null handle_directive, skipping the
13048         construct if so.
13049         (parse_include): Update the comment accordingly.
13050
13051 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13052
13053         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
13054         * genmddeps.c: Include read-md.h.
13055         (main): Call init_rtx_reader_args instead of init_md_reader_args.
13056         * genattr.c (main): Likewise.
13057         * genattrtab.c (main): Likewise.
13058         * genautomata.c (main): Likewise.
13059         * gencodes.c (main): Likewise.
13060         * genconditions.c (main): Likewise.
13061         * genconfig.c (main): Likewise.
13062         * genconstants.c (main): Likewise.
13063         * genemit.c (main): Likewise.
13064         * genextract.c (main): Likewise.
13065         * genflags.c (main): Likewise.
13066         * genopinit.c (main): Likewise.
13067         * genoutput.c (main): Likewise.
13068         * genpeep.c (main): Likewise.
13069         * genrecog.c (main): Likewise.
13070         * genpreds.c (main): Likewise.
13071         * gensupport.h (in_fname): Move to read-md.h.
13072         (init_md_reader_args_cb): Rename to...
13073         (init_rtx_reader_args_cb): ...this and return a bool.
13074         (init_md_reader_args): Rename to...
13075         (init_rtx_reader_args): ...this and return a bool.
13076         (include_callback): Move to read-md.h.
13077         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
13078         (file_name_list, first_dir_md_include): Move to read-md.c
13079         (first_bracket_include): Delete unused variable.
13080         (last_dir_md_include): Move to read-md.c.
13081         (process_include): Delete, moving code to read-md.c:handle_include.
13082         (process_rtx): Don't handle INCLUDE.
13083         (save_string): Delete.
13084         (rtx_handle_directive): New function.
13085         (init_md_reader_args_cb): Rename to...
13086         (init_rtx_reader_args_cb): ...this and return a boolean success value.
13087         Use read_md_args.
13088         (init_md_reader_args): Rename to...
13089         (init_rtx_reader_args): ...this and return a boolean success value.
13090         * rtl.def (INCLUDE): Delete.
13091         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
13092         argument.
13093         * read-rtl.c (read_conditions): Don't gobble ')' here.
13094         (read_mapping): Likewise.
13095         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
13096         Handle top-level non-rtx constructs here rather than in read_rtx_1.
13097         Store the whole queue in *X.  Remove call to init_md_reader.
13098         (read_rtx_1): Rename to...
13099         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
13100         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
13101         here.
13102         (read_nested_rtx): New function.  Handle (nil) here rather than
13103         in read_rtx_code.
13104         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
13105         gobble ')' here.
13106         * read-md.h (directive_handler_t): New type.
13107         (in_fname, include_callback): Moved from read-md.h.
13108         (read_constants, init_md_reader): Delete.
13109         (read_md_files): Declare.
13110         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
13111         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
13112         from gensupport.c.
13113         (read_constants): Rename to...
13114         (handle_constants): ...this.  Don't gobble ')' here.
13115         (handle_include, handle_file, handle_toplevel_file)
13116         (parse_include): New functions, mostly taken from gensupport.c.
13117         (init_md_reader): Subsume into...
13118         (read_md_files): ...this new function.
13119
13120 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13121
13122         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
13123         (unread_char): Decrement read_md_lineno after putting back '\n'.
13124         * read-md.c (fatal_with_file_and_line): Push back any characters
13125         that we decide not to add to the context.
13126         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
13127         fatal_expected_char in cases where '/' ends a line (for example).
13128         (read_name): Don't increment read_md_lineno here.
13129         (read_escape): Likewise.
13130         (read_quoted_string): Likewise.
13131         (read_braced_string): Likewise.
13132
13133 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13134
13135         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
13136         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
13137         * genconstants.c: Include read-md.h.
13138         * read-rtl.c (md_constants): Move to read-md.c.
13139         (md_name): Move to read-md.h.
13140         (initialize_iterators): Use leading_string_hash instead of def_hash
13141         and leading_string_eq_p instead of def_name_eq_p.
13142         (read_name): Move to read-md.c.
13143         (def_hash, def_name_eq_p): Delete.
13144         (read_constants, traverse_md_constants): Move to read-md.c.
13145         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
13146         * read-md.h: Include hashtab.h.
13147         (md_name): Moved from read-rtl.c.
13148         (md_constant): Moved from read-md.h.
13149         (leading_string_hash, leading_string_eq_p, read_name)
13150         (read_constants, traverse_md_constants): Declare.
13151         * read-md.c (md_constants): Moved from read-rtl.c.
13152         (leading_string_hash, leading_string_eq_p): New functions.
13153         (read_name, read_constants, traverse_md_constants): Moved from
13154         read-rtl.c.
13155
13156 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13157
13158         * read-rtl.c (md_name): New structure.
13159         (read_name): Take an md_name instead of a buffer pointer.
13160         Use the "string" field instead of strcpy when expanding constants.
13161         (read_constants): Remove the tmp_char argument.  Update the calls
13162         to read_name, using two local name buffers instead of the tmp_char
13163         argument.  Merge the constant-creation code.
13164         (read_conditions): Remove the tmp_char argument.  Update the calls
13165         to read_name, using a local name buffer instead of the tmp_char
13166         argument.
13167         (read_mapping): Replace tmp_char variable with a local name buffer.
13168         Update the calls to read_name.
13169         (read_rtx_1): Likewise.  Update the calls to read_constants and
13170         read_conditions.
13171
13172 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13173
13174         * Makefile.in (build/read-md.o): Depend on errors.h.
13175         * read-md.h (error_with_line): Declare.
13176         * read-md.c: Include errors.h.
13177         (message_with_line_1): New function, extracted from...
13178         (message_with_line): ...here.
13179         (error_with_line): New function.
13180         * genattrtab.c: If a call to message_with_line is followed by
13181         "have_error = 1;", replace both statements with a call to
13182         error_with_line.
13183         * genoutput.c: Likewise.
13184         * genpreds.c: Likewise.
13185         * genrecog.c: If a call to message_with_line is followed by
13186         "error_count++;", replace both statements with a call to
13187         error_with_line.
13188         (errorcount): Delete.
13189         (main): Don't check it.
13190         * gensupport.c: If a call to message_with_line is followed by
13191         "errors = 1;", replace both statements with a call to error_with_line.
13192         (errors): Delete.
13193         (process_define_cond_exec): Check have_error instead of errors.
13194         (init_md_reader_args_cb): Likewise.  Don't set errors.
13195
13196 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13197
13198         * read-md.h (read_md_file): Declare.
13199         (read_char, unread_char): New functions.
13200         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13201         (read_quoted_string, read_string): Remove FILE * argument.
13202         * read-md.c (read_md_file): New variable.
13203         (read_md_filename, read_md_lineno): Update comments and remove
13204         unnecessary initialization.
13205         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
13206         (read_escape, read_quoted_string, read_braced_string, read_string):
13207         Remove FILE * argument.  Update calls accordingly, using read_char
13208         and unread_char instead of getc and ungetc.
13209         * rtl.h (read_rtx): Remove FILE * argument.
13210         * read-rtl.c (iterator_group): Remove FILE * argument from
13211         "find_builtin".
13212         (iterator_traverse_data): Remove "infile" field.
13213         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
13214         (add_mapping, read_name, read_constants, read_conditions)
13215         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
13216         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
13217         Remove file arguments from all calls, using read_char and unread_char
13218         instead of getc and ungetc.
13219         * gensupport.c (process_include): Preserve read_md_file around
13220         the include.  Set read_md_file to the handle of the included file.
13221         Update call to read_rtx.
13222         (init_md_reader_args_cb): Set read_md_file to the handle of the file
13223         and remove local FILE *.  Update calls to read_rtx.
13224
13225 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13226
13227         * read-md.h (read_rtx_lineno): Rename to...
13228         (read_md_lineno): ...this.
13229         (read_rtx_filename): Rename to...
13230         (read_md_filename): ...this.
13231         (copy_rtx_ptr_loc): Rename to...
13232         (copy_md_ptr_loc): ...this.
13233         (print_rtx_ptr_loc): Rename to...
13234         (print_md_ptr_loc): ...this.
13235         * read-md.c: Likewise.  Update references after renaming.
13236         (string_obstack): Replace RTL with MD in comment.
13237         (set_rtx_ptr_loc): Rename to...
13238         (set_md_ptr_loc): ...this.
13239         (get_rtx_ptr_loc): Rename to...
13240         (get_md_ptr_loc): ...this.
13241         * genconditions.c: Update references after renaming.
13242         * genemit.c: Likewise.
13243         * genoutput.c: Likewise.
13244         * genpreds.c: Likewise.
13245         * gensupport.c: Likewise.
13246         * read-rtl.c: Likewise.
13247
13248 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
13249
13250         * Makefile.in (READ_MD_H): New variable.
13251         (BUILD_RTL): Add build/read-md.o.
13252         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
13253         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
13254         (build/genattrtab.o, build/genconditions.o build/genemit.o)
13255         (build/genextract.o, build/genflags.o, build/genoutput.o)
13256         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
13257         (build/read-md.o): New rule.
13258         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
13259         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
13260         * coretypes.h: ...here.
13261         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
13262         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
13263         * genattr.c: Include read-md.h.
13264         * genattrtab.c: Likewise.
13265         * genconditions.c: Likewise.
13266         * genemit.c: Likewise.
13267         * genextract.c: Likewise.
13268         * genflags.c: Likewise.
13269         * genoutput.c: Likewise.
13270         * genpreds.c: Likewise.
13271         * genrecog.c: Likewise.
13272         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
13273         (join_c_conditions, print_c_condition, read_rtx_filename)
13274         (read_rtx_lineno): Move to read-md.h.
13275         * read-rtl.c: Include read-md.h.
13276         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
13277         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
13278         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
13279         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
13280         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
13281         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
13282         (read_braced_string, read_string): Move to read-md.c.
13283         (read_rtx): Move some initialization to init_md_reader and call
13284         init_md_reader here.
13285         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
13286         Move to read-md.h.
13287         * gensupport.c: Include read-md.h.
13288         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
13289         * read-md.h, read-md.c: New files.
13290
13291 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
13292
13293         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13294         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13295         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
13296         * config/moxie/moxie.c (moxie_function_value): Make static.
13297         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
13298         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
13299
13300 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13301
13302         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
13303         * dbgcnt.def (tree_sra): New counter.
13304         * tree-sra.c: Include dbgcnt.h.
13305         (gate_intra_sra): Check tree_sra debug counter.
13306
13307 2010-06-10  Martin Jambor  <mjambor@suse.cz>
13308
13309         PR tree-optimization/44258
13310         * tree-sra.c (build_access_subtree): Return false iff there is a
13311         partial overlap.
13312         (build_access_trees): Likewise.
13313         (analyze_all_variable_accesses): Disqualify candidates if
13314         build_access_trees returns true for them.
13315
13316 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
13317
13318         PR debug/41371
13319         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
13320         tail-recurse into canonical node.  Fast-forward over
13321         non-canonical VALUEs.
13322
13323 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
13324
13325         PR boostrap/44470
13326         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
13327         (*addsi_1_zext) <TYPE_LEA>: Likewise.
13328         (add lea splitter): Likewise.
13329         (add_zext lea splitter): Likewise.
13330
13331 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
13332
13333         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
13334
13335 2010-06-10  Jan Hubicka  <jh@suse.cz>
13336
13337         * df-problems.c (df_live_problem_data): Add live_bitmaps.
13338         (df_live_alloc): Initialize problem data and live_osbtacks.
13339         (df_live_finalize): Remove obstack, problem data; do not
13340         clear all bitmaps.
13341         (df_live_top_dump, df_live_bottom_dump): Do not dump old
13342         data when not allocated.
13343         (df_live_verify_solution_start): Do not allocate problem data.
13344         (df_live_verify_solution_end): Check if out is allocated.
13345         (struct df_md_problem_data): New structure.
13346         (df_md_alloc): Allocate problem data.
13347         (df_md_free): Free problem data; do not clear bitmaps.
13348
13349 2010-06-10  Jan Beulich  <jbeulich@novell.com>
13350
13351         PR bootstrap/37304
13352         * configure.ac: Replace $() with ${} when intending to expand
13353         variables rather than invoking commands.
13354         * configure: Re-generate.
13355
13356 2010-06-10  Jan Hubicka  <jh@suse.cz>
13357
13358         PR rtl-optimization/44460
13359         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
13360         TYPE_NEEDS_CONSTRUCTING sanity check.
13361
13362 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
13363
13364         * doc/include/fdl.texi: Move to GFDL version 1.3.
13365
13366         * doc/cpp.texi: Move to GFDL version 1.3.
13367         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
13368         * doc/gccint.texi: Move to GFDL version 1.3.
13369         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
13370         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
13371         * doc/invoke.texi: Move to GFDL version 1.3.
13372
13373 2010-06-09  Jan Hubicka  <jh@suse.cz>
13374
13375         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
13376         Break out from ...
13377         (propagate) ... here; swap the order.
13378
13379 2010-06-09  Jan Hubicka  <jh@suse.cz>
13380
13381         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
13382         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
13383         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
13384         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
13385
13386 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13387
13388         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
13389         Do not the gather memory reference in the outer loop if the step
13390         is not a constant.
13391
13392 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13393
13394         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
13395         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
13396         8 to 4.  Minor change of the related comments.
13397
13398 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13399
13400         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
13401         the scev analysis when the variable is not used outside the loop
13402         in a close phi node: call compute_overall_effect_of_inner_loop.
13403
13404 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13405
13406         * graphite-sese-to-poly.c (single_pred_cond): Renamed
13407         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
13408         (build_sese_conditions_before): Renamed call to single_pred_cond.
13409         (build_sese_conditions_after): Same.
13410
13411 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13412
13413         * graphite-poly.h: Fix comments and indentation.
13414         * graphite-sese-to-poly.c: Same.
13415         (build_sese_conditions_before): Compute stmt and gbb only when needed.
13416         * tree-chrec.c: Fix comments and indentation.
13417         (tree-ssa-loop-niter.c): Same.
13418
13419 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
13420
13421         PR rtl-optimization/42461
13422         * dce.c (deletable_insn_p): Return true for const or pure calls again.
13423         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
13424
13425 2010-06-09  Jan Hubicka  <jh@suse.cz>
13426
13427         * bitmap.c (bitmap_and): Walk array forward.
13428         (bitmap_and_compl_into): Likewise.
13429         (bitmap_xor): Likewise.
13430         (bitmap_xor_into):  Likewise.
13431         (bitmap_equal_p): Likewise.
13432         (bitmap_intersect_p): Likewise.
13433         (bitmap_intersect_compl_p): Likewise.
13434         (bitmap_ior_and_into): Likewise.
13435         (bitmap_elt_copy): Likewise.
13436         (bitmap_and_compl): Likewise.
13437         (bitmap_elt_ior): Likewise.
13438
13439 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
13440
13441         * opts-common.c (prune_options): Ensure replacement argv array
13442         is correctly terminated by a NULL entry.
13443
13444 2010-06-09  Jan Hubicka  <jh@suse.cz>
13445
13446         * cgraph.h (varpool_first_static_initializer,
13447         varpool_next_static_initializer): Make checking only when
13448         checking enabled.
13449         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
13450         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
13451         gcc_assert to gcc_checking_assert.
13452         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
13453         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
13454         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
13455         op_iter_init_phiuse, op_iter_init_phidef,
13456         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
13457         gcc_checking_assert.
13458         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
13459         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
13460         partition_is_global, live_on_entry, live_on_exit,
13461         live_merge_and_clear): Likewise.
13462         * system.h (gcc_checking_assert): New macro.
13463         * gimple.h (set_bb_seq): Use gcc_checking_assert.
13464
13465 2010-06-09  Jason Merrill  <jason@redhat.com>
13466
13467         * Makefile.in (TAGS): Collect tags info from c-family.
13468
13469 2010-06-09  Jan Hubicka  <jh@suse.cz>
13470
13471         * gimple.h (gcc_gimple_checking_assert): New macro.
13472         (gimple_set_def_ops, gimple_set_use_ops,
13473         gimple_set_vuse, gimple_set_vdef,
13474         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
13475         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
13476         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
13477         gimple_asm_output_op, gimple_asm_output_op_ptr,
13478         gimple_asm_set_output_op, gimple_asm_clobber_op,
13479         gimple_asm_set_clobber_op, gimple_asm_label_op,
13480         gimple_asm_set_label_op, gimple_try_set_kind,
13481         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
13482         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
13483         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
13484         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
13485         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
13486         gimple_omp_for_set_initial, gimple_omp_for_final,
13487         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
13488         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
13489         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
13490         conditional with ENABLE_GIMPLE_CHECKING.
13491         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
13492
13493 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
13494
13495         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
13496         (get_computation_cost_at): Use it.
13497         (determine_use_iv_cost_condition): Likewise.
13498         (determine_iv_cost): Likewise.
13499
13500 2010-06-09  Richard Guenther  <rguenther@suse.de>
13501
13502         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
13503         replace constants.
13504
13505 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
13506
13507         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
13508
13509 2010-06-09  Martin Jambor  <mjambor@suse.cz>
13510
13511         PR tree-optimization/44423
13512         * tree-sra.c (dump_access): Dump also grp_assignment_read.
13513         (analyze_access_subtree): Pass negative allow_replacements to children
13514         if the current type is scalar.
13515
13516 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13517
13518         PR testsuite/42843
13519         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
13520         * doc/plugins.texi (Plugin license check): Update information
13521         on type of plugin_is_GPL_compatible.
13522         * Makefile.in (PLUGINCC): Define as $(COMPILER).
13523         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
13524
13525 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
13526
13527         * config/arm/arm.c (thumb2_reorg): New function.
13528         (arm_reorg): Call it.
13529         * config/arm/thumb2.md (define_peephole2 for flag clobbering
13530         arithmetic operations): Delete.
13531
13532 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
13533
13534         PR target/44067
13535         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
13536         e500v2 target.
13537
13538 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13539
13540         PR plugins/44459
13541         * gcc-plugin.h: Encapsulate all declarations in extern "C".
13542
13543 2010-06-08  Jan Hubicka  <jh@suse.cz>
13544
13545         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
13546         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
13547
13548 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
13549
13550         PR tree-optimization/39874
13551         PR middle-end/28685
13552         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
13553         Declare.
13554         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
13555         same_bool_result_p): New.
13556         (and_var_with_comparison, and_var_with_comparison_1,
13557         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
13558         (or_var_with_comparison, or_var_with_comparison_1,
13559         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
13560         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
13561         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
13562         of combine_comparisons.
13563         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
13564
13565 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
13566
13567         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13568         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13569         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
13570         pdp11_function_value_regno_p): New functions.
13571         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13572         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13573
13574 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
13575
13576         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
13577         Thumb-2 in the MINUS case.
13578
13579 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13580
13581         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
13582
13583         * doc/gty.texi (GTY Options): Document typed GC allocation and
13584         variable_size GTY option.
13585
13586         * ggc-internal.h: New.
13587
13588         * ggc.h: Update copyright year.
13589         (digit_string): Move to stringpool.c.
13590         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
13591         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
13592         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
13593         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
13594         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
13595         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
13596         (ggc_force_collect, ggc_get_size, ggc_statistics)
13597         (ggc_print_common_statistics): Move to ggc-internal.h.
13598         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
13599         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
13600         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
13601         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
13602         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
13603         (ggc_alloc_zone_pass_stat): Remove.
13604         (ggc_internal_alloc_stat, ggc_internal_alloc)
13605         (ggc_internal_cleared_alloc_stat): New.
13606         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
13607         (ggc_internal_vec_alloc_stat)
13608         (ggc_internal_cleared_vec_alloc_stat)
13609         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
13610         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
13611         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
13612         (ggc_cleared_alloc_ptr_array_two_args): New.
13613         (htab_create_ggc, splay_tree_new_ggc): Redefine.
13614         (ggc_splay_alloc): Change the type of the first argument to
13615         enum gt_types_enum.
13616         (ggc_alloc_string): Make macro.
13617         (ggc_alloc_string_stat): New.
13618         (ggc_strdup): Redefine.
13619         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
13620         (ggc_alloc_rtvec_sized): New.
13621         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
13622         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
13623         (ggc_internal_cleared_alloc_zone_stat)
13624         (ggc_internal_zone_alloc_stat)
13625         (ggc_internal_zone_cleared_alloc_stat)
13626         (ggc_internal_zone_vec_alloc_stat)
13627         (ggc_alloc_zone_rtx_def_stat)
13628         (ggc_alloc_zone_tree_node_stat)
13629         (ggc_alloc_zone_cleared_tree_node_stat)
13630         (ggc_alloc_cleared_gimple_statement_d_stat): New.
13631
13632         * ggc-common.c: Include ggc-internal.h.
13633         (ggc_internal_cleared_alloc_stat): Rename from
13634         ggc_alloc_cleared_stat.
13635         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
13636         (ggc_calloc): Remove.
13637         (ggc_cleared_alloc_htab_ignore_args): New.
13638         (ggc_cleared_alloc_ptr_array_two_args): New.
13639         (ggc_splay_alloc): Add obj_type parameter.
13640         (init_ggc_heuristics): Formatting fixes.
13641
13642         * ggc-none.c: Update copyright year.
13643         (ggc_alloc_stat): Rename to ggc_alloc_stat.
13644         (ggc_alloc_cleared_stat): Rename to
13645         ggc_internal_cleared_alloc_stat.
13646         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13647
13648         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
13649         Remove references to ggc_alloc in comments.
13650         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
13651         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
13652         (new_ggc_zone, destroy_ggc_zone): Remove.
13653         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13654
13655         * ggc-zone.c: Include ggc-internal.h.  Remove references to
13656         ggc_alloc in comments.
13657         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
13658         (ggc_internal_alloc_zone_pass_stat): New.
13659         (ggc_internal_cleared_alloc_zone_stat): New.
13660         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
13661         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
13662         (new_ggc_zone, destroy_ggc_zone): Remove.
13663
13664         * stringpool.c: Update copyright year.  Include ggc-internal.h
13665         (digit_vector): Make static.
13666         (digit_string): Moved from ggc.h.
13667         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
13668         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
13669
13670         * Makefile.in (GGC_INTERNAL_H): New.
13671         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
13672         $(GGC_INTERNAL_H) to dependencies.
13673
13674         * gentype.c: Update copyright year.
13675         (walk_type): Accept variable_size GTY option.
13676         (USED_BY_TYPED_GC_P): New macro.
13677         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
13678         whitespace at the end of strings.
13679         (get_type_specifier, variable_size_p): New functions.
13680         (alloc_quantity, alloc_zone): New enums.
13681         (write_typed_alloc_def): New function.
13682         (write_typed_struct_alloc_def): Likewise.
13683         (write_typed_typed_typedef_alloc_def): Likewise.
13684         (write_typed_alloc_defns): Likewise.
13685         (output_typename, write_splay_tree_allocator_def): Likewise.
13686         (write_splay_tree_allocators): Likewise.
13687         (main): Call write_typed_alloc_defns and
13688         write_splay_tree_allocators.
13689
13690         * lto-streamer.h (lto_file_decl_data_ptr): New.
13691
13692         * passes.c (order): Define using cgraph_node_ptr.
13693
13694         * strinpool.c (struct string_pool_data): Declare nested_ptr using
13695         ht_identifier_ptr.
13696
13697         * gimple.h (union gimple_statement_d): Likewise.
13698
13699         * rtl.h (struct rtx_def): Likewise.
13700         (struct rtvec_def): Likewise.
13701
13702         * tree.h (union tree_node): Likewise.
13703
13704         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
13705
13706         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
13707
13708         * tree-scalar-evolution.c (scev_initialize): Likewise.
13709
13710         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
13711
13712         * dwarf2asm.c (dw2_force_const_mem): Likewise.
13713
13714         * omp-low.c (lower_omp_critical): Likewise.
13715
13716         * bitmap.h (struct bitmap_head_def): Update comment to not
13717         reference ggc_alloc.
13718
13719         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
13720
13721         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
13722
13723         * ipa-prop.c (duplicate_ggc_array): Rename to
13724         duplicate_ipa_jump_func_array.  Use typed GC allocation.
13725         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
13726
13727         * gimple.c (gimple_alloc_stat): Use
13728         ggc_alloc_cleared_gimple_statement_d_stat.
13729
13730         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
13731
13732         * tree.c (make_node_stat): Use
13733         ggc_alloc_zone_cleared_tree_node_stat.
13734         (make_tree_vec_stat): Likewise.
13735         (build_vl_exp_stat): Likewise.
13736         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
13737         (make_tree_binfo_stat): Likewise.
13738         (tree_cons_stat): Likewise.
13739
13740         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
13741         (shallow_copy_rtx_stat): Likewise.
13742         (make_node_stat): Likewise.
13743
13744         * lto-symtab.c: Fix comment.
13745
13746         * tree-cfg.c (create_bb): Update comment to not reference
13747         ggc_alloc_cleared.
13748         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
13749
13750         * varpool.c (varpool_node): Use typed GC allocation.
13751         (varpool_extra_name_alias): Likewise.
13752
13753         * varasm.c (emutls_decl): Likewise.
13754         (get_unnamed_section): Likewise.
13755         (get_noswitch_section): Likewise.
13756         (get_section): Likewise.
13757         (get_block_for_section): Likewise.
13758         (build_constant_desc): Likewise.
13759         (create_constant_pool): Likewise.
13760         (force_const_mem): Likewise.
13761
13762         * tree.c (build_vl_exp_stat): Likewise.
13763         (build_real): Likewise.
13764         (build_string): Likewise.
13765         (decl_debug_expr_insert): Likewise.
13766         (decl_value_expr_insert): Likewise.
13767         (type_hash_add): Likewise.
13768         (build_omp_clause): Likewise.
13769
13770         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
13771
13772         * tree-ssa.c (init_tree_ssa): Likewise.
13773
13774         * tree-ssa-structalias.c (heapvar_insert): Likewise.
13775
13776         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
13777
13778         * tree-ssa-loop-niter.c (record_estimate): Likewise.
13779
13780         * tree-ssa-alias.c (get_ptr_info): Likewise.
13781
13782         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
13783
13784         * tree-phinodes.c (allocate_phi_node): Likewise.
13785
13786         * tree-iterator.c (tsi_link_before): Likewise.
13787         (tsi_link_after): Likewise.
13788
13789         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
13790
13791         * tree-dfa.c (create_var_ann): Likewise.
13792
13793         * tree-cfg.c (create_bb): Likewise.
13794
13795         * toplev.c (alloc_for_identifier_to_locale): Likewise.
13796         (general_init): Likewise.
13797
13798         * stringpool.c (stringpool_ggc_alloc): Likewise.
13799         (gt_pch_save_stringpool): Likewise.
13800
13801         * sese.c (if_region_set_false_region): Likewise.
13802
13803         * passes.c (do_per_function_toporder): Likewise.
13804
13805         * optabs.c (set_optab_libfunc): Likewise.
13806         (set_conv_libfunc): Likewise.
13807
13808         * lto-symtab.c (lto_symtab_register_decl): Likewise.
13809
13810         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
13811         (input_eh_region): Likewise.
13812         (input_eh_lp): Likewise.
13813         (make_new_block): Likewise.
13814         (unpack_ts_real_cst_value_fields): Likewise.
13815
13816         * lto-section-in.c (lto_new_in_decl_state): Likewise.
13817
13818         * lto-cgraph.c (input_node_opt_summary): Likewise.
13819
13820         * loop-init.c (loop_optimizer_init): Likewise.
13821
13822         * lambda.h (lambda_vector_new): Likewise.
13823
13824         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13825
13826         * ira.c (update_equiv_regs): Likewise.
13827
13828         * ipa.c (cgraph_node_set_new): Likewise.
13829         (cgraph_node_set_add): Likewise.
13830         (varpool_node_set_new): Likewise.
13831         (varpool_node_set_add): Likewise.
13832
13833         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
13834         (duplicate_ipa_jump_func_array): Likewise.
13835         (ipa_read_node_info): Likewise.
13836
13837         * ipa-cp.c (ipcp_create_replace_map): Likewise.
13838
13839         * integrate.c (get_hard_reg_initial_val): Likewise.
13840
13841         * gimple.c (gimple_alloc_stat): Likewise.
13842         (gimple_build_omp_for): Likewise.
13843         (gimple_seq_alloc): Likewise.
13844         (gimple_copy): Likewise.
13845
13846         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
13847         (gsi_insert_after_without_update): Likewise.
13848
13849         * function.c (add_frame_space): Likewise.
13850         (insert_temp_slot_address): Likewise.
13851         (assign_stack_temp_for_type): Likewise.
13852         (allocate_struct_function): Likewise.
13853         (types_used_by_var_decl_insert): Likewise.
13854
13855         * except.c (init_eh_for_function): Likewise.
13856         (gen_eh_region): Likewise.
13857         (gen_eh_region_catch): Likewise.
13858         (gen_eh_landing_pad): Likewise.
13859         (add_call_site): Likewise.
13860
13861         * emit-rtl.c (get_mem_attrs): Likewise.
13862         (get_reg_attrs): Likewise.
13863         (start_sequence): Likewise.
13864         (init_emit): Likewise.
13865
13866         * dwarf2out.c (new_cfi): Likewise.
13867         (queue_reg_save): Likewise.
13868         (dwarf2out_frame_init): Likewise.
13869         (new_loc_descr): Likewise.
13870         (find_AT_string): Likewise.
13871         (new_die): Likewise.
13872         (add_var_loc_to_decl): Likewise.
13873         (clone_die): Likewise.
13874         (clone_as_declaration): Likewise.
13875         (break_out_comdat_types): Likewise.
13876         (new_loc_list): Likewise.
13877         (loc_descriptor): Likewise.
13878         (add_loc_descr_to_each): Likewise.
13879         (add_const_value_attribute): Likewise.
13880         (tree_add_const_value_attribute): Likewise.
13881         (add_comp_dir_attribute): Likewise.
13882         (add_name_and_src_coords_attributes): Likewise.
13883         (lookup_filename): Likewise.
13884         (store_vcall_insn): Likewise.
13885         (dwarf2out_init): Likewise.
13886
13887         * dbxout.c (dbxout_init): Likewise.
13888
13889         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13890
13891         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13892
13893         * config/score/score7.c (score7_output_external): Likewise.
13894
13895         * config/score/score3.c (score3_output_external): Likewise.
13896
13897         * config/s390/s390.c (s390_init_machine_status): Likewise.
13898
13899         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
13900         (rs6000_init_machine_status): Likewise.
13901         (output_toc): Likewise.
13902
13903         * config/pa/pa.c (pa_init_machine_status): Likewise.
13904         (get_deferred_plabel): Likewise.
13905
13906         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
13907
13908         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
13909
13910         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
13911
13912         * config/mep/mep.c (mep_init_machine_status): Likewise.
13913         (mep_note_pragma_flag): Likewise.
13914
13915         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
13916
13917         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
13918
13919         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
13920
13921         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
13922         (i386_pe_maybe_record_exported_symbol): Likewise.
13923
13924         * config/i386/i386.c (get_dllimport_decl): Likewise.
13925         (ix86_init_machine_status): Likewise.
13926         (assign_386_stack_local): Likewise.
13927
13928         * config/frv/frv.c (frv_init_machine_status): Likewise.
13929
13930         * config/darwin.c (machopic_indirection_name): Likewise.
13931
13932         * config/cris/cris.c (cris_init_machine_status): Likewise.
13933
13934         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
13935
13936         * config/avr/avr.c (avr_init_machine_status): Likewise.
13937
13938         * config/arm/arm.c (arm_init_machine_status): Likewise.
13939
13940         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
13941         (alpha_need_linkage): Likewise.
13942         (alpha_use_linkage): Likewise.
13943
13944         * cgraph.c (cgraph_allocate_node): Likewise.
13945         (cgraph_create_edge_1): Likewise.
13946         (cgraph_create_indirect_edge): Likewise.
13947         (cgraph_add_asm_node): Likewise.
13948
13949         * cfgrtl.c (init_rtl_bb_info): Likewise.
13950
13951         * cfgloop.c (alloc_loop): Likewise.
13952         (rescan_loop_exit): Likewise.
13953
13954         * cfg.c (init_flow): Likewise.
13955         (alloc_block): Likewise.
13956         (unchecked_make_edge): Likewise.
13957
13958         * c-parser.c (c_parse_init): Likewise.
13959         (c_parse_file): Likewise.
13960
13961         * c-decl.c (bind): Likewise.
13962         (record_inline_static): Likewise.
13963         (push_scope): Likewise.
13964         (make_label): Likewise.
13965         (lookup_label_for_goto): Likewise.
13966         (finish_struct): Likewise.
13967         (finish_enum): Likewise.
13968         (c_push_function_context): Likewise.
13969
13970         * bitmap.c (bitmap_element_allocate): Likewise.
13971         (bitmap_gc_alloc_stat): Likewise.
13972
13973         * alias.c (record_alias_subset): Likewise.
13974         (init_alias_analysis): Likewise.
13975
13976 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
13977
13978         * fold-const.c (fold_comparison): Remove redundant parenthesis.
13979         * tree-inline.c (expand_call_inline): Pass translated return value of
13980         cgraph_inline_failed_string to diagnostic function.
13981
13982 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
13983             Shujing Zhao  <pearly.zhao@oracle.com>
13984
13985         PR c/37724
13986         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
13987         implicit bad conversions is initialization.
13988         (error_init): Use gmsgid instead of msgid for argument name and change
13989         the call for error.
13990         (pedwarn_init): Use gmsgid instead of msgid for argument name and
13991         change the call for pedwarn.
13992         (warning_init): Use gmsgid instead of msgid for argument name and
13993         change the call for warning.
13994
13995 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
13996
13997         * config/mips/mips-protos.h (mips_print_operand): Delete.
13998         (mips_print_operand_address): Delete.
13999         * config/mips/mips.h (mips_print_operand_punct): Delete.
14000         (PRINT_OPERAND): Delete.
14001         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14002         (PRINT_OPERAND_ADDRESS): Delete.
14003         * config/mips/mips.c (mips_print_operand_punct): Make static.
14004         (mips_print_operand_address): Make static.
14005         (mips_print_operand): Make static.  Call
14006         mips_print_operand_punct_valid_p.
14007         (mips_print_operand_punct_valid_p): New function.
14008         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
14009         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14010
14011 2010-06-07  Jan Hubicka  <jh@suse.cz>
14012
14013         PR middle-end/44454
14014         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
14015         are allocated.
14016
14017 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14018
14019         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
14020         name of RECORD.
14021
14022 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14023
14024         * doc/sourcebuild.texi (Effective-Target Keywords, Other
14025         attributes): Document gas.
14026
14027 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
14028
14029         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
14030         <TYPE_LEA>: Split instruction.
14031         <default>: Remove alternative 2 handling.
14032         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
14033         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
14034         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
14035
14036         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
14037         (ashift_zext lea splitter): Use DImode for multiplication.
14038
14039         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
14040         to generate addition.
14041
14042 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
14043
14044         * common.opt (fira-verbose): Use Var.
14045         (fpcc-struct-return): Use Init instead of VarExists.
14046         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
14047         toplev.c.
14048         * flags.h (flag_signed_char, flag_short_enums,
14049         flag_pcc_struct_return, flag_ira_verbose,
14050         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
14051         * toplev.c (flag_detailed_statistics, flag_signed_char,
14052         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
14053         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
14054         * toplev.h (flag_crossjumping, flag_if_conversion,
14055         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
14056         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
14057         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
14058         flag_cprop_registers, time_report, flag_ira_loop_pressure,
14059         flag_ira_coalesce, flag_ira_move_spills,
14060         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
14061
14062 2010-06-07  Jan Hubicka  <jh@suse.cz>
14063
14064         * df-core.c (df_analyze_problem): Do verification after allocation.
14065
14066         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
14067         (df_lr_alloc): Initialize problem data; move bitmaps to
14068         lr_bitmaps obstack.
14069         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
14070         (df_lr_verify_solution_start): Do not initialize problem data;
14071         allocate bitmaps in lr_bitmaps.
14072         (df_lr_verify_solution_end): Do not free problem data.
14073
14074 2010-06-07  Jan Hubicka  <jh@suse.cz>
14075
14076         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
14077         if caller is noreturn.
14078         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
14079         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
14080         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
14081         * ipa-pure-const.c (check_decl): Add IPA parameter.
14082         (state_from_flags): New function.
14083         (better_state, worse_state): New functions.
14084         (check_call): When in IPA mode, do not care about callees.
14085         (check_load, check_store): Update.
14086         (check_ipa_load, check_ipa_store): New.
14087         (check_stmt): When in IPA mode, use IPA checkers.
14088         (analyze_function): Use state_from_flags.
14089         (propagate): Check indirect edges and references.
14090
14091 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
14092
14093         PR rtl-optimization/44404
14094         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
14095         of count_occurrences to see if it's safe to modify mem_insn.
14096
14097 2010-06-07  Richard Guenther  <rguenther@suse.de>
14098
14099         * gimplify.c (gimplify_cleanup_point_expr): For empty body
14100         and EH-only cleanup drop the cleanup instead of inserting it
14101         unconditionally.
14102
14103 2010-06-07  Ira Rosen  <irar@il.ibm.com>
14104
14105         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
14106         documentation.
14107         * targhooks.c (default_builtin_vectorization_cost): New function.
14108         * targhooks.h (default_builtin_vectorization_cost): Declare.
14109         * target.h (enum vect_cost_for_stmt): Define.
14110         (builtin_vectorization_cost): Change argument and comment.
14111         * tree-vectorizer.h: Remove cost model macros.
14112         * tree-vect-loop.c: Include target.h.
14113         (vect_get_cost): New function.
14114         (vect_estimate_min_profitable_iters): Replace cost model macros with
14115         calls to vect_get_cost.
14116         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
14117         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
14118         default implementation.
14119         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
14120         calls to target hook builtin_vectorization_cost.
14121         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
14122         Likewise.
14123         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
14124         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
14125         implementation to return costs.
14126         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
14127         * config/spu/spu.h: Remove vectorizer cost model macros.
14128         * config/i386/i386.h: Likewise.
14129         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
14130         a call to target hook builtin_vectorization_cost.
14131
14132 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
14133
14134         PR target/44319
14135         * config/i386/i386.c (override_options): Turn zee pass on for level 2
14136         and above and defer till target is known.
14137         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
14138         turn off otherwise.
14139
14140 2010-05-25  Jan Hubicka  <jh@suse.cz>
14141
14142         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
14143         (df_compact_blocks): Likewise.
14144         * df.h (struct df): Turn hardware_regs_used,
14145         regular_block_artificial_uses, eh_block_artificial_uses,
14146         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
14147         bitmap_head.
14148         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
14149         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
14150         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
14151         df_scan_blocks, df_insn_delete, df_insn_rescan,
14152         df_insn_rescan_debug_internal, df_insn_rescan_all,
14153         df_process_deferred_rescans, df_process_deferred_rescans,
14154         df_notes_rescan, df_get_call_refs, df_get_call_refs,
14155         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
14156         df_record_entry_block_defs, df_record_exit_block_uses,
14157         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
14158         df_scan_verify): Update.
14159
14160 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
14161
14162         PR c++/44188
14163         * c-common.c (is_typedef_decl): Move this definition ...
14164         * tree.c (is_typedef_decl): ... here.
14165         (typdef_variant_p): Move definition here from cp/tree.c.
14166         * c-common.h (is_typedef_decl): Move this declaration ...
14167         * tree.h (is_typedef_decl): ... here.
14168         (typedef_variant_p): Move declaration here from cp/cp-tree.h
14169         * dwarf2out.c (is_naming_typedef_decl): New function.
14170         (gen_tagged_type_die): Split out of ...
14171         (gen_type_die_with_usage): ... this function. When an anonymous
14172         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14173         is emitted for the typedef.
14174         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
14175         anonymous tagged types.
14176
14177 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14178
14179         PR c/20000
14180         * c-decl.c (grokdeclarator): Delete warning.
14181
14182 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
14183
14184         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
14185         newly built CALL_EXPR.
14186         * tree-profile.c (tree_profiling): Don't profile functions produced
14187         for built-in stuff.
14188
14189 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
14190
14191         PR bootstrap/44427
14192         PR bootstrap/44428
14193         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
14194         endianness-independent.
14195
14196 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
14197
14198         * c-common.c: Move to c-family/.
14199         * c-common.def: Likewise.
14200         * c-common.h: Likewise.
14201         * c-cppbuiltin.c: Likewise.
14202         * c-dump.c: Likewise.
14203         * c-format.c: Likewise.
14204         * c-format.h : Likewise.
14205         * c-gimplify.c: Likewise.
14206         * c-lex.c: Likewise.
14207         * c-omp.c: Likewise.
14208         * c.opt: Likewise.
14209         * c-opts.c: Likewise.
14210         * c-pch.c: Likewise.
14211         * c-ppoutput.c: Likewise.
14212         * c-pragma.c: Likewise.
14213         * c-pragma.h: Likewise.
14214         * c-pretty-print.c: Likewise.
14215         * c-pretty-print.h: Likewise.
14216         * c-semantics.c: Likewise.
14217         * stub-objc.c: Likewise.
14218
14219         * gengtype.c (get_file_langdir): Special-case files in c-family/.
14220         (get_output_file_with_visibility): Fix name for c-common.h.
14221         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
14222
14223         * c-tree.h: Update include path for moved files.
14224         * c-lang.c: Likewise.
14225         * c-lang.h: Likewise.
14226         * c-parser.c: Likewise.
14227         * c-convert.c: Likewise.
14228         * c-decl.c: Likewise.
14229         * c-objc-common.c: Likewise.
14230         * configure.ac: Make sure c-family/ exists in the build directory.
14231         * configure: Regenerate.
14232         * Makefile.in: Update paths for moved files.  Regroup files per
14233         location and update dependencies.  Move generated_files down after
14234         ALL_GTFILES_H.
14235
14236         * config/spu/spu-c.c: Update paths for moved files.
14237         * config/mep/mep-pragma.c: Likewise.
14238         * config/darwin-c.c: Likewise.
14239         * config/i386/msformat-c.c: Likewise.
14240         * config/i386/i386-c.c: Likewise.
14241         * config/avr/avr-c.c: Likewise.
14242         * config/sol2-c.c: Likewise.
14243         * config/ia64/ia64-c.c: Likewise.
14244         * config/rs6000/rs6000-c.c: Likewise.
14245         * config/arm/arm.c: Likewise.
14246         * config/arm/arm-c.c: Likewise.
14247         * config/h8300/h8300.c: Likewise.
14248         * config/v850/v850-c.c: Likewise.
14249
14250         * config/t-darwin: Fix dependencies for moved files.
14251         * config/t-sol2: Fix dependencies for moved files.
14252         * config/mep/t-mep: Fix dependencies for moved files.
14253         * config/ia64/t-ia64: Fix dependencies for moved files.
14254         * config/rs6000/t-rs6000: Fix dependencies for moved files.
14255         * config/v850/t-v850: Fix dependencies for moved files.
14256         * config/v850/t-v850e: Fix dependencies for moved files.
14257
14258         * config/m32c/m32c-pragma.c
14259
14260         * po/exgettext: Look in c-family/ also.
14261
14262 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
14263
14264         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
14265         (mark_control_dependent_edges_necessary): Call it instead of marking
14266         the last statement manually.
14267         (propagate_necessity): Likewise.
14268
14269 2010-06-05  Jan Hubicka  <jh@suse.cz>
14270
14271         * basic-block.h (compute_dominance_frontiers): Updated.
14272         (compute_idf): Likewise.
14273
14274         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
14275         for dominance frontiers.
14276         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
14277         (insert_updated_phi_nodes_for): Likewise.
14278         (update_ssa): Likewise.
14279         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14280         (compute_dominance_frontiers): Likewise.
14281         (compute_idf): Likewise.
14282         * df-problems.c (df_md_local_compute): Likewise.
14283
14284 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
14285
14286         * target.h (struct gcc_target): Add memory_move_cost field.
14287         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
14288         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
14289         * targhooks.c (default_memory_move_cost): New function.
14290         * targhooks.h (default_memory_move_cost): Declare function.
14291         * reload.h (memory_move_cost): Declare.
14292         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14293         * reginfo.c (memory_move_cost): New function.
14294         (memory_move_secondary_cost): Change type of 'in' argument to bool.
14295         * ira.h (ira_memory_move_cost): Update comment.
14296         * ira.c (ira_memory_move_cost): Update comment.
14297         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
14298         with memory_move_cost.
14299         * postreload.c (reload_cse_simplify_set): (Ditto.).
14300         * reload1.c (choose_reload_regs): (Ditto.).
14301         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
14302         (MEMORY_MOVE_COST):  Revise documentation.
14303
14304         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
14305         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
14306         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
14307         type of 'in' argument to bool.
14308         (TARGET_MEMORY_MOVE_COST): Define.
14309
14310 2010-06-05  Jan Hubicka  <jh@suse.cz>
14311
14312         * ipa-pure-const.c (propagate): Fix typo in handling of functions
14313         that cannot return.  Be more careful when merging the results with
14314         previously known ones.
14315
14316 2010-06-05  Matthias Klose  <doko@ubuntu.com>
14317
14318         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
14319         function to add the -iplugindir option.
14320         (find_plugindir_spec_function): Add new declaration and function.
14321         (static_spec_func): Use it for "find-plugindir".
14322
14323 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
14324
14325         PR c++/44361
14326         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
14327         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
14328         statement expression.
14329
14330 2010-06-05  Jan Hubicka  <jh@suse.cz>
14331
14332         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
14333         (df_rd_problem_data): Convert sparse_invalidated_by_call,
14334         dense_invalidated_by_call to bitmap head.
14335         (df_rd_alloc, df_rd_bb_local_compute_process_def,
14336         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
14337         df_rd_start_dump, df_lr_verify_transfer_functions,
14338         df_live_verify_transfer_functions, df_chain_create_bb,
14339         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
14340         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
14341         df_simulate_one_insn_forwards, df_md_alloc,
14342         df_md_bb_local_compute_process_def,
14343         df_md_bb_local_compute_process_def, df_md_local_compute,
14344         df_md_transfer_function df_md_free): Update.
14345
14346 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
14347
14348         PR c/44322
14349         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
14350         target type for ADDR_EXPR; require no changes to qualifiers except
14351         for function types.
14352         * c-tree.h (c_build_type_variant): Remove.
14353
14354 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14355
14356         * genautomata.c (get_excl_set): Do work per element, not per char.
14357         (check_presence_pattern_sets): Similar.
14358         (check_absence_pattern_sets): Similar.
14359
14360 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14361
14362         * genautomata.c (curr_state_pass_num): Delete.
14363         (min_issue_delay_pass_states): Delete.
14364         (min_issue_delay): Delete.
14365         (initiate_min_issue_delay_pass_states): Delete.
14366         (output_min_issue_delay_table): Compute min_issue_delay_vect
14367         using a breadth-first search variant.
14368         (output_tables): Don't call initiate_min_issue_delay_pass_states.
14369
14370 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14371
14372         PR boostrap/44421
14373         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
14374         (df_byte_lr_bb_local_compute): Likewise.
14375
14376 2010-06-03  Jason Merrill  <jason@redhat.com>
14377
14378         Implement noexcept operator (5.3.7)
14379         * c-common.c (c_common_reswords): Add noexcept.
14380         * c-common.h (enum rid): Add RID_NOEXCEPT.
14381
14382 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
14383
14384         * config/darwin-driver.c (darwin_default_min_version): Use
14385         GCC-specific formats in diagnostics.
14386         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
14387         diagnostics.
14388         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
14389         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
14390         eval_spec_function, handle_braces, process_brace_body, main,
14391         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
14392         getenv_spec_function, compare_version_strings,
14393         version_compare_spec_function): Use GCC-specific formats in
14394         diagnostics.
14395
14396 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14397
14398         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
14399         that operand 0 and operand 1 are equal.
14400         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
14401         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
14402         and operand 1 are equal.
14403         <default>: Ditto.  Remove ??? comment.
14404         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
14405         and operand 1 are equal.
14406         <default>: Ditto.  Remove ??? comment.
14407         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
14408         are equal.
14409         (*add<mode>_4) <default>: Ditto.
14410         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
14411
14412 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
14413
14414         * config/i386/i386-protos.h (ix86_print_operand): Declare.
14415         * config/i386/i386.c (ix86_print_operand): Make non-static.
14416         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
14417         * output.h (output_operand): Declare.
14418         * final.c (output_operand): Make non-static.
14419
14420 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
14421
14422         PR rtl-optimization/44013
14423         * sched-deps.c (add_dependence_list_and_free): Don't free lists
14424         when processing debug insns.
14425
14426         PR debug/41371
14427         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
14428         recursing.  Check that recursion is bounded.  Rename inner var
14429         to avoid hiding incoming argument.
14430
14431 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14432
14433         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
14434         operands[2] == 255.
14435         (*addqi_3): Ditto.
14436         (*addqi_4): Ditto.
14437         (*addqi_5): Ditto.
14438         (*addqi_ext_1_rex64): Ditto.
14439         (*addqi_ext_1): Ditto.
14440
14441         (*addqi_4): Check for incdec_operand in QImode.
14442
14443         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
14444         using SWI mode iterator.
14445         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
14446         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
14447         mode iterator.
14448         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
14449         using SWI mode iterator.
14450
14451 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14452
14453         PR c/25880
14454         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
14455         * c-format.c (gcc_diag_flag_specs): Add hash.
14456         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
14457         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
14458         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
14459         pp_c_cv_qualifiers. Handle qualifiers spelling here.
14460         (pp_c_type_qualifier_list): Call the function above.
14461         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
14462         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
14463         (WARN_FOR_QUALIFIERS): New macro.
14464         (convert_for_assignment): Use it.
14465
14466 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
14467
14468         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
14469
14470 2010-06-04  Jan Hubicka  <jh@suse.cz>
14471
14472         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
14473         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
14474         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
14475         DF_BYTE_LR_OUT): Update for embedded bitmaps.
14476         * fwprop.c (single_def_use_enter_block): Likewise.
14477         * ddg.c (create_ddg_dep_from_intra_loop_link,
14478         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
14479         * loop-iv.c (latch_dominating_def): Likewise.
14480         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
14481         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
14482         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
14483         df_rd_transfer_function, df_rd_top_dump,
14484         df_rd_bottom_dump): Update.
14485         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
14486         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
14487         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
14488         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
14489         df_lr_verify_solution_start, df_lr_verify_solution_end,
14490         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
14491         df_live_free_bb_info, df_live_alloc, df_live_reset,
14492         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
14493         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
14494         df_live_verify_solution_start, df_live_verify_solution_end,
14495         df_live_verify_transfer_functions, df_chain_create_bb,
14496         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
14497         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14498         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14499         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
14500         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
14501         df_byte_lr_transfer_function, df_byte_lr_top_dump,
14502         df_byte_lr_bottom_dump, df_create_unused_note,
14503         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
14504         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
14505         df_md_transfer_function, df_md_init, df_md_confluence_0,
14506         df_md_confluence_n,
14507         df_md_top_dump, df_md_bottom_dump): Update.
14508         (struct df_lr_problem_data): Embedd bitmap headers.
14509
14510 2010-06-04  Jan Hubicka  <jh@suse.cz>
14511
14512         * dce.c (dce_process_block): Do not re-scan already marked
14513         instructions.
14514
14515 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
14516
14517         PR rtl-optimization/39871
14518         PR rtl-optimization/40615
14519         PR rtl-optimization/42500
14520         PR rtl-optimization/42502
14521         * ira.c (init_reg_equiv_memory_loc: New function.
14522         (ira): Call it twice.
14523         * reload.h (calculate_elim_costs_all_insns): Declare.
14524         * ira-costs.c: Include "reload.h".
14525         (regno_equiv_gains): New static variable.
14526         (init_costs): Allocate it.
14527         (finish_costs): Free it.
14528         (ira_costs): Call calculate_elim_costs_all_insns.
14529         (find_costs_and_classes): Take estimated elimination costs
14530         into account.
14531         (ira_adjust_equiv_reg_cost): New function.
14532         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
14533         * reload1.c (init_eliminable_invariants, free_reg_equiv,
14534         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
14535         (elim_bb): New static variable.
14536         (reload): Move code out of here into init_eliminable_invariants and
14537         free_reg_equiv.  Call them.
14538         (calculate_elim_costs_all_insns): New function.
14539         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
14540         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
14541         but call note_reg_elim_costly if we turned a valid memory address
14542         into an invalid one.
14543         * Makefile.in (ira-costs.o): Depend on reload.h.
14544
14545 2010-06-04  Julian Brown  <julian@codesourcery.com>
14546
14547         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
14548         for pool ranges.
14549
14550 2010-06-04  Richard Guenther  <rguenther@suse.de>
14551
14552         PR lto/41584
14553         * cgraph.h (struct varpool_node): Add lto_file_data field.
14554         * lto-cgraph.c (input_varpool_node): Initialize it.
14555
14556 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14557
14558         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
14559         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
14560         predicate in "type" attribute calculation.
14561         (*addsi_1_zext): Ditto.
14562         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
14563         (*addsi_2_zext): Ditto.
14564         (*add<mode>_3): Ditto.
14565         (*addsi_3_zext): Ditto.
14566         (*add<mode>_5): Ditto.
14567
14568 2010-06-03  Jan Hubicka  <jh@suse.cz>
14569
14570         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
14571         of bitmap_bit_p.
14572         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14573
14574 2010-06-03  Jan Hubicka  <jh@suse.cz>
14575
14576         * df-problems.c (df_create_unused_note, df_note_bb_compute):
14577         micro-optimize the checks when to add new note.
14578
14579 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
14580
14581         * final.c (output_asm_insn): Call
14582         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
14583         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
14584         (output_address): Call targetm.asm_out.print_operand_address.
14585         Update comments.
14586         * target.h (struct gcc_target): Add print_operand,
14587         print_operand_address, and print_operand_punct_valid_p fields.
14588         * targhooks.h (default_print_operand): Declare.
14589         (default_print_operand_address): Declare.
14590         (default_print_operand_punct_valid_p): Declare.
14591         * targhooks.c (default_print_operand): Define.
14592         (default_print_operand_address): Define.
14593         (default_print_operand_punct_valid_p): Define.
14594         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
14595         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
14596         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
14597         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
14598         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
14599         * vmsdbgout.c (addr_const_to_string): Update comment.
14600         * config/i386/i386.c (print_operand): Rename to...
14601         (ix86_print_operand): ...this.  Make static.
14602         (print_operand_address): Rename to...
14603         (ix86_print_operand_address): ...this.  Make static.  Call
14604         ix86_print_operand instead of PRINT_OPERAND.
14605         (ix86_print_operand_punct_valid_p): New function.
14606         (TARGET_PRINT_OPERAND): Define.
14607         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14608         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14609         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
14610         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14611         (PRINT_OPERAND): Delete.
14612         (PRINT_OPERAND_ADDRESS): Delete.
14613         * config/i386/i386-protos.h (print_operand): Delete prototype.
14614         (print_operand_address): Delete prototype.
14615
14616 2010-06-03  Richard Guenther  <rguenther@suse.de>
14617
14618         PR tree-optimization/44403
14619         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14620         Preserve pointer qualifiers.
14621         (vect_create_data_ref_ptr): Likewise.
14622
14623 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14624
14625         PR c++/44294
14626         * defaults.h (MAX_FIXED_MODE_SIZE): New.
14627
14628         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
14629
14630 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
14631
14632         PR debug/44375
14633         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
14634         return false if merging the bbs would lead to goto_locus
14635         location being lost from the IL.
14636
14637 2010-06-03  Jan Hubicka  <jh@suse.cz>
14638             Jakub Jelinek  <jakub@redhat.com>
14639
14640         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
14641         set->regs[i] is NULL or has just one entry.
14642
14643 2010-06-03  Jan Hubicka  <jh@suse.cz>
14644
14645         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
14646         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
14647
14648 2010-06-03  Paul Brook  <paul@codesourcery.com>
14649
14650         * config/arm/arm.c (FL_TUNE): Define.
14651         (arm_default_cpu, arm_cpu_select): Remove.
14652         (all_cores): Populate core field.
14653         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
14654         (arm_find_cpu): New function.
14655         (arm_handle_option): Lookup cpu/architecture names.
14656         (arm_override_options): Cleanup mcpu/march/mtune handling.
14657         (arm_file_start): Ditto.
14658
14659 2010-06-03  Alan Modra  <amodra@gmail.com>
14660
14661         PR target/44169
14662         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
14663         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
14664         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
14665         (rs6000_emit_load_toc_table): Likewise.
14666
14667 2010-06-02  Jan Hubicka  <jh@suse.cz>
14668
14669         * passes.c (init_optimization_passes): Put ipa reference
14670         after ipa pure-const.
14671
14672 2010-06-02  Jan Hubicka  <jh@suse.cz>
14673
14674         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
14675         calls_read_all and calls_write_all.
14676         (get_reference_optimization_summary): Fix formatting.
14677         (is_proper_for_analysis): Check that decl is not readonly.
14678         (propagate_bits): Check CONST/PURE/noreturn flags.
14679         (ipa_init): Move all_module_statics to optimization_summary_obstack.
14680         (analyze_function): Ignore indirect edges.
14681         (copy_global_bitmap): For all module statics, do nothing.
14682         (generate_summary): Do not print calls_read_all/calls_write_all.
14683         (read_write_all_from_decl): Take node as argument; check
14684         cgraph_node_cannot_return.
14685         (propagate): Reorganize read_all/write_all computation;
14686         check indirect edges; check ecf flags; use all_module_statics
14687         in the results; do not free all_module_statics.
14688         (stream_out_bitmap): Handle all_module_statics.
14689         (ipa_reference_write_optimization_summary): Likewise; use
14690         varpool/cgraph encoders to get boundaries.
14691         (ipa_reference_read_optimization_summary): Read in all_module_statics;
14692         use it when possible.
14693
14694 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14695
14696         PR target/44218
14697         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
14698         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
14699
14700         * doc/extend.texi (powerpc builtins): Document vec_recip,
14701         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
14702
14703         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
14704         (rs6000_emit_swrsqrt): Ditto.
14705         (rs6000_emit_swdivsf): Delete.
14706         (rs6000_emit_swdivdf): Ditto.
14707         (rs6000_emit_swrsqrtsf): Ditto.
14708
14709         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
14710         describe the reciprocal estimate support for each type.
14711         (recip_options): Map -mrecip=<opt> into option bits.
14712         (gen_2arg_fn_t): New typedef for binary rtx gen function.
14713         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
14714         reciprocal estimate instructions.
14715         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
14716         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
14717         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
14718         cost information if -mdebug=cost or -mdebug=reg.
14719         (rs6000_override_options): Set -mrecip-precision for power6, and
14720         power7 machines.  If -mvsx or -mdfp, enable various options that
14721         came in previous instruction set ISAs, unless the option was
14722         explicitly disabled by the command line option.  Parse
14723         -mrecip=<opt> options.
14724         (rs6000_builtin_vectorized_function): Add support for vectorizing
14725         the reciprocal estimate builtins and expansions.
14726         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
14727         (bdesc_2arg): Add reciprocal estimate builtins.
14728         (bdesc_1arg): Add reciprocal square root estimate builtins.
14729         (rs6000_expand_builtin): Rewrite to use a switch statement,
14730         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
14731         (rs6000_init_builtins): Create declarations for reciprocal
14732         estimate builtins.
14733         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
14734         sized, prefer traditional floating point registers, if integer
14735         vector types, prefer altivec registers.  Don't actually look at
14736         the memory address any more.
14737         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
14738         builtins.
14739         (rs6000_load_constant_and_splat): New helper function to load up
14740         the constant for reciprocal estimate instructions.
14741         (rs6000_emit_madd): New helper function for generating
14742         multiply/add type instructions, based on the current switches.
14743         (rs6000_emit_msub): Ditto.
14744         (rs6000_emit_mnsub): Ditto.
14745         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
14746         replace a divide with a reciprocal estimate and fixup, adding
14747         support for machines with high precision and vectors.
14748         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
14749         low precision machines.
14750         (rs6000_emit_swdiv): New common function to be called to replace a
14751         division with reciprocal estimate and fixup.
14752         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
14753         for double and vector types.  Add support for high precision machines.
14754
14755         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
14756         the reciprocal estimate instructions can be generated.
14757         (TARGET_FRE): Ditto.
14758         (TARGET_FRSQRTES): Ditto.
14759         (TARGET_FRSQRTE): Ditto.
14760         (RS6000_RECIP_*): New macros for reciprocal estimate support.
14761
14762         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
14763         square root estimate on vectors.
14764         (re<mode>2): New insn for reciprocal division estimate on vectors.
14765
14766         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
14767         New builtin.
14768         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
14769         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
14770         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
14771         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
14772         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
14773         (RS6000_BUILTIN_RSQRT): Ditto.
14774         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
14775         floating point builtin.
14776
14777         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14778         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
14779         __RECIP_PRECISION__ based on the command line switches.
14780         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
14781
14782         * config/rs6000/rs6000.opt (-mrecip): Document add support for
14783         replacing division instructions with reciprocal estimate and fixup.
14784         (-mrecip=<opt>): New option.
14785         (-mrecip-precision): Ditto.
14786
14787         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
14788         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
14789         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
14790         precision scalar.
14791
14792         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
14793         (UNSPEC_VREFP): Ditto.
14794         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
14795         conterparts with regard to support of -mno-fused-madd and -ffast-math.
14796         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
14797         reciprocal estimate instructions to be generated.
14798         (altivec_vrefp): Ditto.
14799
14800         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
14801         estimate support.
14802         (rreg): New mode attribute for reciprocal estimate support.
14803         (recip<mode>3): New insn for division using reciprocal estimate
14804         and fixup builtins.
14805         (divide define_split): New define_split to convert floating point
14806         division to use reciprocal estimate if the user used the
14807         appropriate options and the split is run when we can add new
14808         pseudo registers for the fixup.
14809         (rsqrt<mode>2): New insn for reciprocal square root support.
14810         (recipsf3): Move into recip<mode>3.
14811         (recipdf3): Ditto.
14812         (fres): Use TARGET_FRES.
14813         (rsqrtsf2): Move into rsqrt<mode>2.
14814         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
14815         (copysignsf3): Add support for VSX.
14816         (fred): Use TARGET_FRE.
14817         (fred_fpr): Ditto.
14818         (rsqrtdf_internal1): New function for frsqrte instruciton.
14819
14820         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
14821         (vec_rsqrt): Ditto.
14822
14823 2010-06-03  Richard Guenther  <rguenther@suse.de>
14824
14825         PR middle-end/44291
14826         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
14827         (set_user_assembler_libfunc): Likewise.
14828
14829 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14830
14831         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
14832         defaults.h.
14833         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
14834         to defaults.h
14835         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
14836         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
14837         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
14838         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
14839         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
14840         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
14841         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
14842         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
14843         * defaults.h: Updated for above mentioned changes.
14844
14845 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
14846
14847         * c-common.c: Remove header include of tm_p.h.
14848         * Makefile.in (c-common.o): Remove TM_P_H dependency.
14849
14850 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
14851
14852         * tree.h (struct tree_decl_map): New type.
14853         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
14854         (tree_decl_map_hash): New prototype.
14855         (debug_expr_for_decl, value_expr_for_decl): Change into
14856         tree_decl_map hashtab from tree_map.
14857         (init_ttree): Adjust initialization.
14858         (tree_decl_map_hash): New function.
14859         (decl_debug_expr_lookup, decl_debug_expr_insert,
14860         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
14861
14862 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14863
14864         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
14865         linker emulations.
14866         * configure: Regenerate.
14867         * config.in: Regenerate.
14868
14869         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
14870         (X86_64_EMULATION): Define.
14871         (TARGET_LD_EMULATION): Use them.
14872
14873         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
14874         (SPARC64_EMULATION): Define.
14875         (LINK_ARCH_SPEC): Use them.
14876
14877 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14878
14879         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
14880         smallest_mode_for_size for computing the precision types of new
14881         graphite IVs.  Do not call lang_hooks.types.type_for_size.
14882
14883 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14884
14885         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
14886         information.
14887         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
14888
14889 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14890
14891         PR middle-end/44363
14892         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
14893         return false instead.
14894
14895 2010-06-02  Jan Hubicka  <jh@suse.cz>
14896
14897         PR middle-end/44295
14898         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
14899         create new cgraph node to check callee.
14900
14901 2010-06-02  Richard Guenther  <rguenther@suse.de>
14902
14903         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
14904
14905 2010-06-02  Richard Guenther  <rguenther@suse.de>
14906
14907         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
14908         (lto_wrapper_cleanup): ... this.  Do not exit.
14909         (fatal): Adjust.  Exit here.
14910         (fatal_perror): Likewise.
14911         (fatal_signal): New function.
14912         (main): Set up signal handlers to cleanup temporary files.
14913         * Makefile.in (lto-wrapper.o): Adjust dependencies.
14914
14915 2010-06-02  Richard Guenther  <rguenther@suse.de>
14916
14917         PR tree-optimization/44377
14918         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
14919
14920 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14921
14922         * config/s390/2097.md (z10_fhex): Remove insn reservation.
14923         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
14924         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
14925         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
14926         instruction.
14927         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
14928
14929 2010-06-02  Jan Hubicka  <jh@suse.cz>
14930
14931         * bitmap.c (bitmap_descriptor): Add search_iter.
14932         (bitmap_find_bit): Increment it.
14933         (print_statistics): Print it.
14934
14935 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
14936
14937         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
14938         instead of gimple_build_call_vec.  Delete unnecessary local variable.
14939
14940 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14941
14942         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
14943         change from yesterday.
14944
14945 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14946
14947         * c-ada-spec.c: Clean up redundant includes.
14948
14949 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
14950
14951         * gimplify.c: Do not include except.h and optabs.h.
14952         (gimplify_body): Do not initialize RTL profiling.
14953         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
14954         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
14955         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
14956         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
14957         langhooks.h.
14958
14959         * tree-pretty-print.h: Include pretty-print.h.
14960         * gimple-pretty-print.h: Include pretty-print.h.
14961
14962         * tree-pretty-print.c: Do not include diagnostic.h.
14963         * tree-vrp.c: Likewise.
14964         * tree-tailcall.c: Likewise
14965         * tree-scalar-evolution.c: Likewise
14966         * tree-ssa-dse.c: Likewise
14967         * tree-chrec.c: Likewise
14968         * tree-ssa-sccvn.c: Likewise
14969         * tree-ssa-copyrename.c: Likewise
14970         * tree-nomudflap.c: Likewise
14971         * tree-call-cdce.c: Likewise
14972         * tree-stdarg.c: Likewise
14973         * tree-ssa-math-opts.c: Likewise
14974         * tree-nrv.c: Likewise
14975         * tree-ssa-sink.c: Likewise
14976         * tree-browser.c: Likewise
14977         * tree-ssa-loop-ivcanon.c: Likewise
14978         * tree-ssa-loop.c: Likewise
14979         * tree-parloops.c: Likewise
14980         * tree-ssa-address.c: Likewise
14981         * tree-ssa-ifcombine.c: Likewise
14982         * tree-if-conv.c: Likewise
14983         * tree-data-ref.c: Likewise
14984         * tree-affine.c: Likewise
14985         * tree-ssa-phiopt.c: Likewise
14986         * tree-ssa-coalesce.c: Likewise
14987         * tree-ssa-pre.c: Likewise
14988         * tree-ssa-live.c: Likewise
14989         * tree-predcom.c: Likewise
14990         * tree-ssa-forwprop.c: Likewise
14991         * tree-ssa-dce.c: Likewise
14992         * tree-ssa-ter.c: Likewise
14993         * tree-ssa-loop-prefetch.c: Likewise
14994         * tree-optimize.c: Likewise
14995         * tree-ssa-phiprop.c: Likewise
14996         * tree-object-size.c: Likewise
14997         * tree-outof-ssa.c: Likewise
14998         * tree-ssa-structalias.c: Likewise
14999         * tree-switch-conversion.c: Likewise
15000         * tree-ssa-reassoc.c: Likewise
15001         * tree-ssa-operands.c: Likewise
15002         * tree-vectorizer.c: Likewise
15003         * tree-vect-data-refs.c: Likewise
15004         * tree-vect-generic.c: Likewise
15005         * tree-vect-stmts.c: Likewise
15006         * tree-vect-patterns.c: Likewise
15007         * tree-vect-slp.c: Likewise
15008         * tree-vect-loop.c: Likewise
15009         * tree-ssa-loop-ivopts.c: Likewise
15010         * tree-ssa-loop-im.c: Likewise
15011         * tree-ssa-loop-niter.c: Likewise
15012         * tree-ssa-loop-unswitch.c: Likewise
15013         * tree-ssa-loop-manip.c: Likewise
15014         * tree-ssa-loop-ch.c: Likewise
15015         * tree-dump.c: Likewise
15016         * tree-complex.c: Likewise
15017
15018         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
15019         * tree-ssa-uninit.c: Likewise
15020         * tree-ssa-threadupdate.c: Likewise
15021         * tree-ssa-uncprop.c: Likewise
15022         * tree-ssa-ccp.c: Likewise
15023         * tree-ssa-dom.c: Likewise
15024         * tree-ssa-propagate.c: Likewise
15025         * tree-ssa-alias.c: Likewise
15026         * tree-dfa.c: Likewise
15027         * tree-cfgcleanup.c: Likewise
15028         * tree-sra.c: Likewise
15029         * tree-ssa-copy.c: Likewise
15030         * tree-ssa.c: Likewise
15031         * tree-profile.c: Likewise
15032         * tree-cfg.c: Likewise
15033         * tree-ssa-threadedge.c: Likewise
15034         * tree-vect-loop-manip.c: Likewise
15035
15036         * tree-inline.c: Do not include diagnostic.h and expr.h.
15037         Include rtl.h.
15038         (copy_decl_for_dup_finish): Do not use NULL_RTX.
15039
15040         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
15041         * tree-loop-distribution.c: Likewise.
15042
15043 2010-06-01  Jan Hubicka  <jh@suse.cz>
15044
15045         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
15046
15047 2010-06-01  Jan Hubicka  <jh@suse.cz>
15048
15049         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
15050         remove return value.
15051         (split_bbs_on_noreturn_calls) .... here.
15052         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
15053         * tree-flow.h (fixup_noreturn_call): New.
15054
15055 2010-06-01  Jan Hubicka  <jh@suse.cz>
15056
15057         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
15058
15059 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
15060
15061         * tree.h (build_nt_call_list): Delete.
15062         * tree.c (build_nt_call_list): Delete.
15063
15064 2010-06-01  Jan Hubicka  <jh@suse.cz>
15065
15066         * fwprop.c: Make emit-rtl.h include last.
15067         * rtlanal.c: Include emit-rtl.h.
15068         * genautomata.c: Output emit-rtl include into insn-automata.c
15069         * df-scan.c: Include emit-rtl.h.
15070         * haifa-sched.c: Indlude emit-rtl.h.
15071         * mode-switching.c: Indlude emit-rtl.h.
15072         * graph.c: Indlude emit-rtl.h.
15073         * sel-sched.c: Include emit-rtl.h.
15074         * sel-sched-ir.c: Include emit-rtl.h.
15075         * ira-build.c: Include emit-rtl.h.
15076         * emit-rtl.c (first_insn, last_insn): Remove defines.
15077         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
15078         Move to emit-rtl.h.
15079         (set_new_first_and_last_insn, get_last_insn_anywhere,
15080         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
15081         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
15082         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
15083         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
15084         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
15085         Use accessor functions.
15086         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15087          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15088         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15089         mem_expr_equal_p): Move here from rtl.h.
15090         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
15091         Move here from emit-rtl.c; make inline.
15092         * cfglayout.h: Include emit-rtl.h.
15093         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
15094          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
15095         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
15096         mem_expr_equal_p, get_insns, set_first-insn,
15097         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
15098         * reg-stack.c: Include emit-rtl.h.
15099         * dce.c: Likewise.
15100
15101 2010-06-01  Jan Hubicka  <jh@suse.cz>
15102
15103         * cgraph.h (tree_function_versioning): Update prototype.
15104         (cgraph_function_versioning): Update prototype.
15105         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
15106         bitmap.
15107         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
15108         (cgraph_materialize_clone, save_inline_function_body): Update use of
15109         tree_function_versioning.
15110         * tree-inline.c (copy_bb): Look for previous copied block to link
15111         after; fix debug output.
15112         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
15113         (copy_body): Likewise.
15114         (expand_call_inline): Update use of copy_body.
15115         (tree_function_versioning): Update use of copy body; accept
15116         blocks_to_copy and new_entry.
15117
15118 2010-06-01  Jan Hubicka  <jh@suse.cz>
15119
15120         * gegenrtl.c: Remove unnecesary prototypes.
15121         (gendecl): Remove.
15122         (gendef): Produce static inline.
15123         (gencode): Remove.
15124         (main): Do not decode parameters; generate header only.
15125         * Makefile.in (genrtl.c): Remove.
15126
15127 2010-06-01  Jan Hubicka  <jh@suse.cz>
15128
15129         * tree-switch-conversion.c (build_one_array): Make it readonly.
15130
15131 2010-06-01  Richard Guenther  <rguenther@suse.de>
15132
15133         * optabs.c (init_optabs): Guard all accesses to reinit.
15134         * ipa-pure-const.c (propagate): Fix another typo.
15135         * opts.c (common_handle_option): Split assignment to bool.
15136         * c-opts.c (c_common_handle_option): Likewise.
15137
15138 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
15139             Matthew Gingell  <gingell@adacore.com>
15140
15141         * doc/invoke.texi: Mention -fdump-ada-spec.
15142         * tree-dump.c (dump_files): Add ada-spec.
15143         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
15144         * tree-pass.h (tree_dump_index): Add TDI_ada.
15145         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
15146         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
15147         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
15148         * c-decl.c: Include c-ada-spec.h.
15149         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
15150         functions.
15151         (c_write_global_declarations): Add handling of -fdump-ada-spec.
15152         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
15153         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
15154         * c-ada-spec.h, c-ada-spec.c: New files.
15155
15156 2010-06-01  Richard Guenther  <rguenther@suse.de>
15157
15158         PR lto/43853
15159         * ipa-pure-const.c (get_function_state): Hand back varying state
15160         if we do not have one.
15161         (has_function_state): New function.
15162         (duplicate_node_data): Adjust.
15163         (remove_node_data): Likewise.
15164         (pure_const_write_summary): Likewise.
15165         (propagate): Likewise.  Fix typo.
15166
15167 2010-06-01  Jan Hubicka  <jh@suse.cz>
15168
15169         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
15170         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
15171         (execute_all_ipa_transforms): Do not play with the states.
15172
15173 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
15174
15175         * config/arm/t-linux-androideabi: New.
15176         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
15177
15178 2010-06-01  Jan Hubicka  <jh@suse.cz>
15179
15180         * tree-inline.c (estimate_num_insns): For stdarg functions look
15181         into call statement to count cost of argument passing.
15182
15183 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
15184
15185         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
15186         argument for fprintf.
15187         (ix86_output_addr_diff_elt): Likewise.
15188         (x86_function_profiler): Likewise.
15189         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
15190         (LPREFIX): Likewise.
15191         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
15192
15193 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15194
15195         PR target/44338
15196         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
15197         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
15198         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
15199         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
15200         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
15201         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
15202         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
15203         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
15204         TARGET_FUSED_MADD.
15205
15206 2010-05-31  Jan Hubicka  <jh@suse.cz>
15207
15208         * tree.h (tree_range_check_failed): Declare noreturn.
15209
15210 2010-05-31  Jan Hubicka  <jh@suse.cz>
15211
15212         * gimple.c (gimple_call_builtin_p): New function.
15213         * gimple.h (gimple_call_builtin_p): Declare.
15214         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
15215         to exit.
15216         (execute_warn_function_return): BUILT_IN_RETURN is return.
15217         (split_critical_edges): Return edges are not critical.
15218         (is_ctrl_altering_stmt): Builtin_in_return is altering.
15219         (gimple_verify_flow_info): Handle built_in_return.
15220         (execute_warn_function_return): Handle built_in_return.
15221         * ipa-pure-const.c (check_call): Ignore builtin_return.
15222
15223 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR middle-end/44337
15226         * expr.c (expand_assignment): Don't store anything for out-of-bounds
15227         array accesses with non-MEM.
15228
15229         PR tree-optimization/44182
15230         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
15231         newly needs to end a bb is followed by debug stmts, instead return
15232         true from the function at the end.
15233         (maybe_move_debug_stmts_to_successors): New function.
15234         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
15235
15236 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
15237
15238         PR target/44161
15239         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
15240
15241 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
15242
15243         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
15244         for nested functions in non-optimized compilation.
15245
15246 2010-05-31  Richard Guenther  <rguenther@suse.de>
15247
15248         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
15249
15250 2010-05-30  Jan Hubicka  <jh@suse.cz>
15251
15252         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
15253
15254 2010-05-30  Richard Guenther  <rguenther@suse.de>
15255
15256         PR lto/42975
15257         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
15258         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
15259         no longer needed.
15260
15261 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
15262
15263         * config/darwin.c (output_objc_section_asm_op): Add comment.
15264         (name_needs_quotes): Add '_' to list of valid comment chars.
15265         (machopic_output_function_base_name): Remove unneeded quotes.
15266         (darwin_encode_section_info): Adjust asm whitespace.
15267         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
15268         (ASM_OUTPUT_LOCAL): Ditto.
15269         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
15270         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
15271         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
15272
15273 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
15274
15275         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
15276         RS6000_OUTPUT_BASENAME unconditionally.
15277         (rs6000_output_function_epilogue): Likewise.
15278
15279 2010-05-30  Jan Hubicka  <jh@suse.cz>
15280
15281         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
15282         nodes.
15283
15284 2010-05-30  Richard Guenther  <rguenther@suse.de>
15285
15286         * tree-cfg.c (verify_gimple_assign_single): Implement
15287         verification for COND_EXPR rhs.
15288
15289 2010-05-30  Jan Hubicka  <jh@suse.cz>
15290
15291         * cgraph.h (cgraph_dump_file): Declare.
15292         * cgraphunit.c (cgraph_dump_file): Export.
15293         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
15294
15295 2010-05-30  Jan Hubicka  <jh@suse.cz>
15296
15297         * dwarf2out.c (reference_to_unused,
15298         premark_types_used_by_global_vars_helper): Avoid creation of new
15299         varpool nodes.
15300
15301 2010-05-30  Jan Hubicka  <jh@suse.cz>
15302
15303         * cgraph.h (cgraph_node_cannot_return,
15304         cgraph_edge_cannot_lead_to_return): New functions.
15305         * cgraph.c (cgraph_node_cannot_return,
15306         cgraph_edge_cannot_lead_to_return): Use them.
15307         * ipa-pure-const.c (pure_const_names): New static var.
15308         (check_call): Handle calls not leading to return.
15309         (pure_const_read_summary): Dump info read.
15310         (propagate): Dump info about propagation process; ignore side effects
15311         of functions not leading to exit; fix handling of pure functions.
15312
15313 2010-05-30  Jan Hubicka  <jh@suse.cz>
15314
15315         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
15316         for tail call epilogues.
15317
15318 2010-05-30  Jan Hubicka  <jh@suse.cz>
15319
15320         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
15321         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
15322         dump files.
15323
15324 2010-05-29  Jan Hubicka  <jh@suse.cz>
15325
15326         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
15327         node; remove references in node we no longer keep in cgrpah but need
15328         body of.
15329
15330 2010-05-29  Jan Hubicka  <jh@suse.cz>
15331
15332         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
15333
15334 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15335
15336         PR target/44165
15337         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
15338
15339 2010-05-29  Jan Hubicka  <jh@suse.cz>
15340
15341         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
15342         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
15343         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
15344         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
15345         debug_names_replaced_by, debug_update_ssa): Likewise.
15346         * sbitmap.c (debug_sbitmap): Likewise.
15347         * genrecog.c (debug_decision, debug_decision_list): Likewise.
15348         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
15349         debug_tree_chain): Likewise.
15350         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
15351         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
15352         * optabs.c (debug_optab_libfuncs): Likewise.
15353         (verify_loop_closed_ssa): Likewise.
15354         * value-prof.c (verify_histograms): Likewise.
15355         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
15356         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
15357         * cfghooks.c (verify_flow_info): Likewise.
15358         * fold-const.c (debug_fold_checksum): Likewise.
15359         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
15360         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
15361         Likewise.
15362         * omega.c (debug_omega_problem): Likewise.
15363         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
15364         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
15365         * dominance.c (verify_dominators, debug_dominance_info,
15366         debug_dominance_tree): Likewise.
15367         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
15368         * df_regno_debug, df_ref_debug,
15369         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
15370         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
15371         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
15372         * sel-sched.c (debug_state): Likewise.
15373         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
15374         Likewise.
15375         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
15376         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
15377         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
15378         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
15379         Likewise.
15380         * c-pretty-print.c (debug_c_tree): Likewise.
15381         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
15382         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
15383         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
15384         * ebitmap.c (debug_ebitmap): Likewise.
15385         * function.c (debug_find_var_in_block_tree): Likewise.
15386         * print-rtl.c (debug_rtx): Likewise.
15387         (debug_rtx_count): Likewise.
15388         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
15389         * stor-layout.c (debug_rli): Likewise.
15390         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
15391         * tree-data-ref.c (debug_data_references,
15392         debug_data_dependence_relations, debug_data_reference,
15393         debug_data_dependence_relation, debug_rdg_vertex,
15394         debug_rdg_component, debug_rdg): Likewise.
15395         * tree-affine.c (debug_aff): Likewise.
15396         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
15397         Likewise.
15398         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
15399         * emit-rtl.c (verify_rtl_sharing): Likewise.
15400         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
15401         debug_value_expressions): Likewise.
15402         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
15403         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
15404         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
15405         * cfglayout.c (verify_insn_chain): Likewise.
15406         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
15407         debug_clast_stmt, debug_generated_program): Likewise.
15408         * ggc-page.c (debug_print_page_list): Likewise.
15409         * tree-ssa-ter.c (debug_ter): Likewise.
15410         * graphite-dependences.c (debug_pddr): Likewise.
15411         * sched-deps.c (debug_ds): Likewise.
15412         * tree-ssa.c (verify_ssa): Likewise.
15413         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
15414         debug_scattering_functions, debug_iteration_domains, debug_pdr,
15415         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
15416         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
15417         * tree-inline.c (debug_find_tree): Likewise.
15418         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
15419         debug_ppl_powerset_matrix): Likewise.
15420         * var-tracking.c (debug_dv): Likewise.
15421         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
15422         * cfgloop.c (verify_loop_structure): Likewise.
15423         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
15424         * c-common.c (verify_sequence_points): Likewise.
15425         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
15426         debug_candidates, debug_rgn_dependencies): Likewise.
15427         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
15428         * debug_constraint_graph, debug_solution_for_var,
15429         debug_sa_points_to_info): Likewise.
15430         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
15431         Likewie.
15432         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
15433         debug_loops, debug_loop, debug_loop_num): Likewise.
15434         * passes.c (debug_pass): Likewise.
15435         (dump_properties): Likewise; add cfglayout property.
15436         (debug_properties): Likewise.
15437         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
15438         * varpool.c (debug_varpool): Likewise.
15439         * regcprop.c (debug_value_data): Likewise.
15440         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
15441         debug_immediate_uses_for): Likewise.
15442
15443 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15444
15445         PR bootstrap/44315
15446         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
15447         Filter out insn-flags.h.
15448
15449 2010-05-29  Jan Hubicka  <jh@suse.cz>
15450
15451         * cgraph.h (struct varpool_node_set_def,
15452         struct cgraph_node_set_def): Remove unused AUX pointer.
15453         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
15454         VEC_empty macro.
15455
15456 2010-05-29  Jan Hubicka  <jh@suse.cz>
15457
15458         PR middle-end/44324
15459         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
15460
15461 2010-05-29  Richard Guenther  <rguenther@suse.de>
15462
15463         * lto-streamer.c (cached_bp): New global variable.
15464         (bitpack_create): Return the cached bitpack, if available.
15465         (bitpack_delete): Clear and cache the bitpack, if appropriate.
15466         (bp_pack_value): Remove redundant asserts.
15467
15468 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15469
15470         PR middle-end/44306
15471         * tree-if-conv.c (is_true_predicate): New.
15472         (is_predicated): Use is_true_predicate.
15473         (add_to_predicate_list): Same.  Do not use unshare_expr.
15474         (add_to_dst_predicate_list): Same.
15475
15476 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15477
15478         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
15479         field on edges.
15480         (predicate_bbs): Same.
15481         (clean_predicate_lists): Same.
15482         (find_phi_replacement_condition): Do not AND the predicate from
15483         edge->aux.
15484
15485 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15486
15487         PR bootstrap/44315
15488         * Makefile.in (build/gencondmd.o): Add a missing `\'.
15489
15490 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15491
15492         PR target/44261
15493         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
15494         (negdf2): Adjust expander pattern and use negdf2_slow.
15495         (negsf2): Likewise.
15496
15497 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
15498
15499         * basic-block.h (struct control_flow_graph): Move last_label_uid field
15500         up.
15501         * df.h (struct df_base_ref): Move regno field up.
15502         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
15503         * expr.h (struct separate_ops): Move location field up.
15504         * optabs.h (struct optab_d): Move libcall_basename field down.
15505         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
15506         * config/i386/i386.h (struct machine_function): Convert call_abi field
15507         into a bitfield.  Move cfa field to the end of the structure.
15508
15509 2010-05-29  Jan Hubicka  <jh@suse.cz>
15510
15511         * varpool.c (varpool_get_node): Fix lookup.
15512
15513 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15514
15515         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
15516         RTL specific prototypes with #ifdef RTX_CODE.
15517         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
15518         * config/spu/t-spu-elf: Fix dependencies.
15519
15520         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
15521
15522 2010-05-29  Mike Stump  <mikestump@comcast.net>
15523
15524         PR bootstrap/44315
15525         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
15526         TM_H when building to avoid dependency loops.
15527
15528 2010-05-29  Jan Hubicka  <jh@suse.cz>
15529
15530         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
15531         refs and body; not the whole node for masters of materialized clones.
15532
15533 2010-05-29  Mike Stump  <mikestump@comcast.net>
15534
15535         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
15536
15537 2010-05-29  Jan Hubicka  <jh@suse.cz>
15538
15539         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
15540         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
15541         use of clone_function_name.
15542         * cgraph.h (cgraph_create_virtual_clone,
15543         cgraph_function_versioning): update prototypes.
15544         (clone_function_name): Declare.
15545         * ipa-cp.c (ipcp_insert_stage): Update call of
15546         cgraph_create_virtual_clone.
15547         * omp-low.c (create_omp_child_function_name): Use
15548         cgraph_create_virtual_clone.
15549         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
15550         (cgraph_function_versioning): Take SUFFIX argument; produce new name
15551         and make decl local.
15552
15553 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15554
15555         * vec.h: Include statistics.h
15556         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
15557         with VEC_H.
15558
15559 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15560
15561         * c-lex.c: Do not include c-tree.h.
15562         * c-pretty-print.c: Likewise.
15563         * c-opts.c: Likewise.
15564         * c-gimplify.c: Likewise.
15565         * c-common.c: Likewise.
15566         * c-dump.c: Likewise.  Include c-common.h.
15567
15568 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15569
15570         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
15571         before including diagnostic-core.h.
15572         (c_cpp_error): New prototype moved from c-tree.h.
15573         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
15574         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
15575         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
15576         (c_cpp_error): Prototype moved to c-common.h.
15577         * Makefile.in: Update dependency for C_COMMON_H.
15578
15579 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15580
15581         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
15582         * c-common.c (c_register_addr_space): Remove here.
15583         * c-decl.c (c_register_addr_space): Re-add here.
15584
15585 2010-05-28  Mike Stump  <mikestump@comcast.net>
15586
15587         * config/darwin-c.c: Remove c-tree.h include.
15588
15589 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15590
15591         * gcc.c: Include diagnostic.h.
15592         (error_count): Remove.  All users changed to use errorcount.
15593         (programname): Remove.  All users changed to use progname.
15594         (fancy_abort, internal_error, fatal_error, error, warning, inform,
15595         fnotice): Remove.
15596         (execute): Don't include "Internal error" and bug reporting
15597         information in argument of internal_error call.
15598         (process_command): Don't increment error_count after calling
15599         perror_with_name.
15600         (input_filename): Rename to gcc_input_filename.  All users
15601         changed.
15602         (main): Call diagnostic_initialize.  Register delete_temp_files
15603         with atexit.  Use seen_error to test for errors.
15604         * gcc.h: Include diagnostic-core.h.
15605         (fatal_error, error, warning): Remove.
15606         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
15607         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
15608         (gcc.o): Update dependencies.
15609
15610 2010-05-28  Jeff Law  <law@redhat.com>
15611
15612         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
15613         functions.
15614         * ira.h (ira_bad_reload_regno): Declare
15615         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
15616
15617         * ira-color.c (update_curr_costs): Free updated hard reg costs.
15618         (ira_reassign_conflict_allocnos): Remove bogus asserts.
15619         (allocno_reload_assign): Likewise.
15620
15621 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
15622
15623         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
15624         build1_stat.
15625
15626 2010-05-28  Richard Guenther  <rguenther@suse.de>
15627
15628         PR lto/44312
15629         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
15630         Stream fixed-point constants mode.
15631         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
15632         and TYPE_PRECISION.
15633         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
15634         Stream fixed-point constants mode.
15635         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
15636         and TYPE_PRECISION.
15637
15638 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15639
15640         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
15641         only place it was called from.
15642         (number_of_latch_executions): Do not return chrec_dont_know when the
15643         may_be_zero is a runtime condition: instead, return a COND_EXPR
15644         including the may_be_zero condition.
15645         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
15646         of nb_iterations.
15647         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
15648         COND_EXPRs.
15649
15650 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15651
15652         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
15653         generate COND_EXPRs for degenerate_phi_result.
15654
15655 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15656
15657         PR middle-end/44293
15658         * tree-if-conv.c (if_convertible_loop_p): Check the
15659         if-convertibility of phi nodes in non predicated BBs.
15660
15661 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15662
15663         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
15664
15665 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15666
15667         PR driver/15303
15668         * gcc.c (inform, warning, inform): New functions.
15669         (fatal_ice): Rename to internal_error; change cmsgid parameter to
15670         gmsgid.  All callers changed.
15671         (notice): Rename to fnotice; add parameter fp.  All callers changed.
15672         (fatal_error): Rename to fatal_signal.  All users changed.
15673         (fatal): Rename to fatal_error; change cmsgid parameter to
15674         gmsgid.  All callers changed.
15675         (process_command): Use warning instead of error for warnings.
15676         (end_going_arg): Don't use _() around argument of error.
15677         (do_spec_1): Use inform for message from %n specs.  Use warning
15678         instead of error for warnings.
15679         (main): Use inform for comparison messages.  Use warning for
15680         message about unused linker input.
15681         (error): Increment error_count.  Print "error: ".
15682         * gcc.h (fatal): Change to fatal_error.
15683         (warning): Declare.
15684         * config/darwin-driver.c (darwin_default_min_version): Use warning
15685         instead of fprintf for warnings.
15686         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
15687
15688 2010-05-28  Julian Brown  <julian@codesourcery.com>
15689
15690         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
15691         (*thumb2_addsi3_compare0_scratch): New.
15692         * config/arm/constraints.md (Pv): New.
15693         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
15694         for ARM mode only.
15695         (*addsi3_compare0_scratch): Likewise.
15696
15697 2010-05-28  Jan Hubicka  <jh@suse.cz>
15698
15699         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
15700         check.
15701         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
15702         only on local statics.
15703
15704 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
15705
15706         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
15707
15708 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15709
15710         PR bootstrap/44314
15711         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
15712         (OPTION_GLIBC): Define.
15713
15714 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15715
15716         PR debug/41048
15717         * dwarf2out.c (double_int_type_size_in_bits): New function.
15718         (round_up_to_align): Change first argument and return value to
15719         double_int.
15720         (field_byte_offset): Work internally on double_ints.
15721
15722         PR target/43636
15723         * builtins.c (expand_movstr): Use a temporary pseudo instead
15724         of target even when target is not NULL and not const0_rtx, but
15725         fails movstr predicate.
15726         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
15727
15728 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15729
15730         * final.c (rest_of_clean_state): Use %m in errors instead of
15731         strerror (errno).
15732         * gengtype.c (read_input_list, close_output_files): Use xstrerror
15733         instead of strerror.
15734         * toplev.c (process_options): Use %m in errors instead of strerror
15735         (errno).
15736         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
15737         (errno).
15738
15739 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
15740
15741         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
15742         (ix86_canonical_va_list_type): Make static.  Add declaration.
15743         (ix86_enum_va_list): Make static.  Reindent.
15744         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
15745         (ix86_canonical_va_list_type): Ditto.
15746         (ix86_enum_va_list): Ditto.
15747
15748 2010-05-28  Richard Guenther  <rguenther@suse.de>
15749
15750         * lto-wrapper.c (run_gcc): With -save-temps generate a
15751         user-visible ltrans filename.  Fixup ltrans unit numbering.
15752
15753 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
15754
15755         * c-common.c (c_common_nodes_and_builtins): Replace use
15756         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
15757         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
15758         to ix86_enum_va_list.
15759         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
15760         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
15761         (TARGET_ENUM_VA_LIST_P): Add hook description.
15762         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
15763         * target.h (gcc_target): Add enum_va_list hook.
15764
15765         PR bootstrap/44299
15766         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
15767         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
15768         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
15769
15770 2010-05-28  Alan Modra  <amodra@gmail.com>
15771
15772         PR target/44266
15773         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
15774         emit_library_call machinery to set up __tls_get_addr calls.
15775
15776 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15777
15778         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
15779
15780 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
15781
15782         Revert fix for PR c++/44188
15783         * c-common.c (is_typedef_decl): Revert the moving of  this
15784         definition ...
15785         * tree.c (is_typedef_decl): ... here.
15786         (typdef_variant_p): Revert the moving of this  definition
15787         here from cp/tree.c.
15788         * c-common.h (is_typedef_decl): Revert the moving of this
15789         declaration ...
15790         * tree.h (is_typedef_decl): ... here.
15791         (typedef_variant_p): Revert the moving of this  declaration here
15792         from cp/cp-tree.h
15793         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15794         (gen_tagged_type_die): Revert the splitting out of ...
15795         (gen_type_die_with_usage): ... this function. Revert the anonymous
15796         tagged type handling.
15797         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
15798         typedefs naming anonymous tagged types.
15799
15800 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15801
15802         * config/rs6000/rs6000-modes.def (PSImode): Delete.
15803
15804 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15805
15806         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
15807         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
15808         throughout.
15809         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
15810         "xer" to "ca".
15811         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
15812         XER_REGS to CA_REGS throughout.
15813         * config/rs6000/rs6000.h: Same.
15814         (ADDITIONAL_REGISTER_NAMES): Add "xer".
15815         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
15816         that mode_iterator "P" is the size for arithmetic carries as well.
15817         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15818
15819 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15820
15821         PR bootstrap/44255
15822         * combine.c (struct rtx_subst_pair): Define unconditionally.
15823         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
15824         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
15825         Call make_compound_operation on pair->to.
15826         (propagate_for_debug): Don't call make_compound_operation here.
15827         Always use simplify_replace_fn_rtx.
15828
15829 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
15830
15831         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
15832         * config/xtensa/xtensa.c (override_options): Check
15833           TARGET_FORCE_NO_PIC and set flag_pic.
15834         * config/xtensa/xtensa.opt: Document -mforce-no-pic
15835
15836 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15837
15838         PR bootstrap/44299
15839         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
15840         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
15841
15842 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15843
15844         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
15845         toplev.h.
15846         * diagnostic.c: Don't include toplev.h.
15847         (progname): Define.  Moved from toplev.c.
15848         (seen_error): New function.
15849         * diagnostic.h: Include diagnostic-core.h.
15850         (diagnostic_t, emit_diagnostic): Don't declare here.
15851         * toplev.c (progname): Move to toplev.c.
15852         (emit_debug_global_declarations, compile_file, finalize,
15853         do_compile, toplev_main): Use seen_error.
15854         * toplev.h: Include diagnostic-core.h.
15855         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15856         internal_error, warning, warning_at, error, error_n, error_at,
15857         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
15858         verbatim, fnotice, progname): Move to diagnostic-core.h.
15859         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
15860         (expand_builtin_expect): Use seen_error.
15861         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
15862         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
15863         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
15864         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
15865         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
15866         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
15867         errorcount for errors.
15868         * c-opts.c (c_common_finish): Use seen_error.
15869         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15870         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
15871         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
15872         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
15873         (get_coverage_counts): Use seen_error.
15874         * dwarf2out.c (dwarf2out_finish): Use seen_error.
15875         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
15876         gimplify_body): Use seen_error.
15877         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
15878         * ipa-pure-const.c (gate_pure_const): Use seen_error.
15879         * ipa-reference.c (gate_reference): Use seen_error.
15880         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
15881         * lambda-code.c: Include diagnostic-core.h instead of
15882         diagnostic.h.
15883         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15884         * lto-compress.c: Include diagnostic-core.h instead of
15885         diagnostic.h.
15886         * lto-section-in.c: Include diagnostic-core.h instead of
15887         diagnostic.h.
15888         * lto-streamer-out.c: Include diagnostic-core.h instead of
15889         diagnostic.h.
15890         * lto-streamer.c: Include diagnostic-core.h instead of
15891         diagnostic.h.
15892         (gate_lto_out): Use seen_error.
15893         * matrix-reorg.c: Include diagnostic-core.h instead of
15894         diagnostic.h.
15895         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
15896         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
15897         (gate_expand_omp, lower_omp_1): Use seen_error.
15898         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
15899         (rest_of_decl_compilation, rest_of_type_compilation,
15900         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
15901         * tree-cfg.c (label_to_block_fn): Use seen_error.
15902         * tree-inline.c (optimize_inline_calls): Use seen_error.
15903         * tree-mudflap.c (mudflap_finish_file): Use
15904         seen_error.
15905         * tree-optimize.c (gate_all_optimizations,
15906         gate_all_early_local_passes, gate_all_early_optimizations): Use
15907         seen_error.
15908         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
15909         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
15910         (varpool_remove_unreferenced_decls,
15911         varpool_assemble_pending_decls): Use seen_error.
15912         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
15913         (TOPLEV_H, DIAGNOSTIC_H): Update.
15914         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
15915         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
15916         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
15917         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
15918         coverage.o, lambda-code.o): Update dependencies.
15919
15920 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15921
15922         PR c++/44188
15923         * c-common.c (is_typedef_decl): Move this definition ...
15924         * tree.c (is_typedef_decl): ... here.
15925         (typdef_variant_p): Move definition here from cp/tree.c.
15926         * c-common.h (is_typedef_decl): Move this declaration ...
15927         * tree.h (is_typedef_decl): ... here.
15928         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15929         * dwarf2out.c (is_naming_typedef_decl): New function.
15930         (gen_tagged_type_die): Split out of ...
15931         (gen_type_die_with_usage): ... this function. When an anonymous
15932         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15933         is emitted for the typedef.
15934         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15935         anonymous tagged types.
15936
15937 2010-05-27  Jason Merrill  <jason@redhat.com>
15938
15939         * print-tree.c (debug_vec_tree): New fn.
15940         (print_vec_tree): New fn.
15941         * tree.h: Declare them.
15942         * gdbinit.in (pvt): New command.
15943
15944         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
15945
15946         * gdbinit.in (pdd): New command.
15947
15948 2010-05-27  Jan Hubicka  <jh@suse.cz>
15949
15950         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
15951         (update_caller_keys): Return early if there are no callers;
15952         only update fibheap when decresing the key.
15953         (update_callee_keys): Avoid recursion.
15954         (decide_inlining_of_small_functions): When badness does not match;
15955         re-insert into fibheap.
15956
15957 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
15958
15959         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
15960         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
15961         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
15962         (ALL_HOST_OBJS): Now a union of the above two.
15963         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
15964         all files in ALL_HOST_FRONTEND_OBJS.
15965         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
15966
15967         * c-common.c: Pretend to be a backend file by undefining
15968         IN_GCC_FRONTEND (still need rtl.h here).
15969
15970 2010-05-27  Jan Hubicka  <jh@suse.cz>
15971
15972         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
15973         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
15974
15975 2010-05-27  Jan Hubicka  <jh@suse.cz>
15976
15977         * sched-ebb.c: Rename struct deps to struct deps_desc.
15978         * ddg.c: Likewise.
15979         * sel-sched-ir.c: Likewise.
15980         * sched-deps.c: Likewise.
15981         * sched-int.h: Likewise.
15982         * sched-rgn.c: Likewise.
15983
15984 2010-05-27  Jon Beniston  <jon@beniston.com>
15985
15986         PR 43726
15987         * config/lm32/lm32.h: Remove definition of
15988         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
15989
15990 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15991
15992         PR lto/44230
15993         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
15994
15995 2010-05-27  Richard Guenther  <rguenther@suse.de>
15996
15997         PR tree-optimization/44284
15998         * tree-vect-stmts.c (vectorizable_assignment): Handle
15999         sign-changing conversions as simple copy.
16000
16001 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16002
16003         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
16004         Bionic C library.
16005         (__gthread_active_p): Check for pthread_create if compiling against
16006         Bionic C library.
16007
16008 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16009
16010         Support compilation for Android platform.  Reimplement -mandroid.
16011
16012         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
16013         (*android*): Set ANDROID_DEFAULT.
16014         (arm*-*-linux*): Include linux-android.h.
16015         (arm*-*-eabi*): Don't include previous -mandroid implementation.
16016         * config/arm/eabi.h: Remove, move Android-specific parts ...
16017         * config/linux-android.h: ... here.  New file.
16018         * config/arm/eabi.opt: Rename to ...
16019         * config/linux-android.opt: ... this.
16020         (mandroid): Allow -mno-android option.  Initialize based on
16021         ANDROID_DEFAULT.
16022         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
16023         Move logic to corresponding LINUX_TARGET_* macros.
16024         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
16025         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
16026         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
16027         Android definitions.
16028         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
16029         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
16030         Document.
16031
16032 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
16033
16034         Add support for Bionic C library
16035
16036         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
16037         macro.
16038         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
16039         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
16040
16041         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
16042         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
16043         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
16044         to support multiple C libraries.  Handle Bionic.
16045         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
16046         (BIONIC_DYNAMIC_LINKER64): Define.
16047         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
16048         Update.
16049         (TARGET_HAS_SINCOS): Enable for Bionic.
16050
16051         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
16052         the last option specified on command line take effect.
16053         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
16054         (mbionic): New.
16055         (mglibc, muclibc): Update.
16056
16057         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
16058         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
16059         DEFAULT_LIBC.
16060
16061         * doc/invoke.texi (-mglibc, -muclibc): Update.
16062         (-mbionic): Document.
16063
16064 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16065
16066         * c-common.h (c_register_addr_space): Add prototype.
16067         (ADDR_SPACE_KEYWORD): Remove.
16068         * c-common.c (c_register_addr_space): New function.
16069         (c_addr_space_name): Reimplement.
16070         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
16071
16072         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
16073         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
16074
16075         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
16076         Remove TARGET_ADDR_SPACE_KEYWORDS.
16077
16078 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
16079
16080         * input.c: New file.
16081         * input.h (main_input_filename): Move declaration to toplev.h.
16082         * toplev.c (input_location, line_table): Move to input.c
16083         * toplev.h (main_input_filename): Move declaration from input.h.
16084         * tree.c (expand_location): Move to input.c.
16085         * Makefile.in (OBJS-common): Add input.o.
16086         (input.o): Add dependencies.
16087
16088 2010-05-27  Richard Guenther  <rguenther@suse.de>
16089
16090         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
16091         for non-existant files.
16092         (fork_execute): Mark args_name file as deleted.
16093
16094 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
16095
16096         PR bootstrp/44287
16097         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
16098         (narrow_signed_type): Likewise.
16099
16100 2010-05-26  Jan Hubicka  <jh@suse.cz>
16101
16102         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
16103         edge only when checking is enabled; check using former_clone_of;
16104         check inline clones too.
16105         (cgraph_materialize_clone): Record former_clone_of pointer.
16106         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
16107         combining redirections; dump args_to_skip bitmap
16108         (cgraph_materialize_all_clones): Do no redirection here.
16109         * ipa-inline.c (inline_transform): Do redirection here.
16110         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
16111         cheking only).
16112
16113 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16114
16115         * config/avr/avr-c.c: Do not include regs.h.
16116         Include cpplib.h for cpp_define and tree.h for c-common.h.
16117         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
16118         * config/avr/t-avr: Fix dependencies for avr-c.o.
16119
16120 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16121
16122         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
16123         string instead of SYMBOL_REF rtx.
16124         * rtl.h (set_stack_check_libfunc): Move prototype from here...
16125         * libfuncs.h: ...to here.  Adjust for explow.c change.
16126
16127 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16128
16129         * pretty-print.c: Don't include ggc.h.
16130         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
16131         (identifier_to_locale): Use them for allocation.
16132         * pretty-print.h (identifier_to_locale_alloc,
16133         identifier_to_locale_free): Declare.
16134         * toplev.c (alloc_for_identifier_to_locale): New.
16135         (general_init): Set identifier_to_locale_alloc and
16136         identifier_to_locale_free.
16137         * Makefile.in (pretty-print.o): Update dependencies.
16138
16139 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16140
16141         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
16142         pointer types if they have different alignment or mode.
16143
16144 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
16145
16146         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16147         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16148         * config/sparc/sparc-protos.h (function_value): Remove declaration.
16149         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
16150         sparc_function_value_regno_p): New functions.
16151         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16152         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16153         (function_value): Rename to...
16154         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
16155         argument to 'outgoing'.
16156         (function_arg_record_value, function_arg_union_value,
16157         function_arg_vector_value): Update comment.
16158
16159 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
16160
16161         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
16162         (fde_needed_for_eh_p): New predicate.
16163         (output_call_frame_info): Use it throughout to decide whether FDEs
16164         are needed for EH purpose.
16165         (dwarf2out_begin_prologue): Reorder assignments.
16166
16167 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16168
16169         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
16170         special case loop->header.
16171         (is_predicated): New.
16172         (if_convertible_loop_p): Call it.
16173
16174 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16175
16176         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
16177         iterator in parameter.  Do not generate code during the analysis.
16178         (tree_if_convert_cond_stmt): Removed.
16179         (tree_if_convert_stmt): Removed.
16180         (predicate_bbs): New.
16181         (if_convertible_loop_p): Call predicate_bbs.
16182         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
16183         now contains all the analysis part.
16184
16185 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16186
16187         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
16188         statements in the analysis part.
16189         (tree_if_convert_stmt): Update comment.
16190         (remove_conditions_and_labels): New.
16191         (combine_blocks): Call remove_conditions_and_labels.
16192         (tree_if_conversion): Update comment.
16193
16194 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16195
16196         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
16197         than 2 predecessors or more than 2 successors.
16198
16199 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16200
16201         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
16202         of loops in which the data dependence analysis fails.
16203
16204 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16205
16206         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
16207         CDI_POST_DOMINATORS.
16208         (tree_if_conversion): Same.
16209
16210 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16211
16212         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
16213
16214 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
16215
16216         * tree-if-conv.c: Update copyright years.  Fix comments.
16217         Fix indentation.
16218
16219 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
16220
16221         * builtin-types.def (BT_INT128): New primitive type.
16222         (BT_UINT128): Likewise.
16223         * c-common.c (c_common_r): Add __int128 keyword.
16224         (c_common_type_for_size): Handle __int128.
16225         (c_common_type_for_mode): Likewise.
16226         (c_common_signed_or_unsigned_type): Likewise.
16227         (c_common_nodes_and_builtins): Add builtin type
16228         if target supports 128-bit integer scalar.
16229         * c-common.h (enum rid): Add RID_INT128.
16230         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
16231         if target supports 128-bit integer scalar.
16232         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
16233         (finish_declspecs): Likewise.
16234         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
16235         (c_token_starts_declspecs): Likewise.
16236         (c_parser_declspecs): Likewise.
16237         (c_parser_attributes): Likewise.
16238         (c_parser_objc_selector): Likewise.
16239         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
16240         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
16241         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
16242         * tree.c (make_or_reuse_type): Likewise.
16243         (make_unsigned_type): Likewise.
16244         (build_common_tree_nodes_2): Likewise.
16245         * tree.h (enum integer_type_kind): Add itk_int128 and
16246         itk_unsigned_int128.
16247         (int128_integer_type_node): New define.
16248         (int128_unsigned_type_node): New define.
16249         * doc/extend.texi: Add documentation about __int128 type.
16250
16251 2010-05-26  Richard Guenther  <rguenther@suse.de>
16252
16253         * tree-ssa-sccvn.c (copy_nary): Adjust.
16254         (copy_phis): Rename to ...
16255         (copy_phi): ... this.  Adjust.
16256         (copy_references): Rename to ...
16257         (copy_reference): ... this.  Adjust.
16258         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
16259         result into the valid table.
16260
16261 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16262
16263         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
16264         insn-config.h, insn-codes.h, recog.h, and optabs.h.
16265
16266 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16267
16268         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
16269
16270 2010-05-26  Richard Guenther  <rguenther@suse.de>
16271
16272         * opts.c (common_handle_option): Handle OPT_Ofast.
16273
16274 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
16275
16276         * diagnostic.c: Don't include opts.h.
16277         (permissive_error_option): Define.
16278         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
16279         for classify_diagnostic.  Don't use memset for
16280         classify_diagnostic.  Initialize new and recently added fields.
16281         (diagnostic_classify_diagnostic): Use context->n_opts instead of
16282         N_OPTS.
16283         (diagnostic_report_diagnostic): Pass context parameter to
16284         diagnostic_report_warnings_p.  Use option_enabled and option_name
16285         hooks from context.
16286         (emit_diagnostic): Use permissive_error_option.
16287         (permerror): Likewise.
16288         * diagnostic.h: Don't include options.h.
16289         (struct diagnostic_context): Add n_opts, opt_permissive,
16290         inhibit_warnings, warn_system_headers, option_enabled and
16291         option_name fields.  Change classify_diagnostic to a pointer.
16292         * opts-diagnostic.h: New file.
16293         * opts.c: Include opts-diagnostic.h.
16294         (common_handle_option): Set global_dc fields for -Wfatal-errors,
16295         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
16296         (option_name): New function.
16297         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
16298         (c_common_handle_option): Set global_dc->permissive for
16299         -fpermissive.
16300         * c-common.c (c_cpp_error): Save and restore
16301         global_dc->warn_system_headers, not variable warn_system_headers.
16302         * toplev.c: Include opts-diagnostic.h.
16303         (general_init): Update call to diagnostic_initialize.  Set
16304         global_dc->show_column, global_dc->option_enabled and
16305         global_dc->option_name.
16306         (process_options): Don't set global_dc fields here.
16307         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
16308         (diagnostic.o, opts.o, toplev.o): Update dependencies.
16309
16310 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
16311
16312         * config/picochip/picochip.md (movsi): Split a movsi from a
16313         const after reload.
16314
16315 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16316
16317         * ggc-zone.c: Update copyright year.
16318         (poison_region): Mark memory for Valgrind as undefined before
16319         memset () call and inaccessible afterwards.
16320         (ggc_pch_total_size): Change type of i to int.
16321
16322 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16323
16324         * ggc-common.c (ggc_free_overhead): Allow empty slot.
16325
16326 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16327
16328         * ggc-common.c: Update copyright year.
16329         (ggc_rlimit_bound): Remove prototype.  Compile only if
16330         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
16331         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
16332         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
16333         (ggc_min_heapsize_heuristic): Likewise.
16334
16335 2010-05-26  Richard Guenther  <rguenther@suse.de>
16336
16337         PR rtl-optimization/44164
16338         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
16339         no-common access-path disambiguation.
16340         (indirect_ref_may_alias_decl_p): Adjust.
16341         (indirect_refs_may_alias_p): Likewise.
16342         (refs_may_alias_p_1): Likewise.
16343
16344 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16345
16346         * c-typeck.c: Do not include expr.h.
16347
16348 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16349
16350         * rtl.h (decl_default_tls_model): Move prototype from here...
16351         * output.h: ...to here.
16352         * c-decl.c: Do not include rtl.h.
16353         * c-pragma.c: Likewise.
16354         * c-parser.c: Likewise.
16355         * c-gimplify.c: Likewise.  And also not hard-reg-set.
16356         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
16357         FIXME note for it.  Add a FIXME note for expr.h.
16358         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
16359         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
16360         defined.
16361
16362 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
16363
16364         PR target/44199
16365         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
16366         or total_size is larger than red zone size for non-V4 ABI, emit a
16367         stack_tie resp. frame_tie insn before stack pointer restore.
16368         * config/rs6000/rs6000.md (frame_tie): New insn.
16369
16370 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16371
16372         * function.h (struct function): Add can_throw_non_call_exceptions bit.
16373         * lto-streamer-in.c (input_function): Stream it in.
16374         * lto-streamer-out.c (output_function): Stream it out.
16375         * function.c (allocate_struct_function): Set it.
16376         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
16377         for flag_non_call_exceptions.
16378         * cfgbuild.c (control_flow_insn_p): Likewise.
16379         (make_edges): Likewise.
16380         * cfgexpand.c (expand_stack_alignment): Likewise.
16381         * combine.c (distribute_notes): Likewise.
16382         * cse.c (cse_extended_basic_block): Likewise.
16383         * except.c (insn_could_throw_p): Likewise.
16384         * gcse.c (simple_mem): Likewise.
16385         * ipa-pure-const.c (check_call): Likewise.
16386         (check_stmt ): Likewise.
16387         * lower-subreg.c (lower-subreg.c): Likewise.
16388         * optabs.c (emit_libcall_block): Likewise.
16389         (prepare_cmp_insn): Likewise.
16390         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
16391         * postreload.c (rest_of_handle_postreload): Likewise.
16392         * reload1.c (reload_as_needed): Likewise.
16393         (emit_input_reload_insns): Likewise.
16394         (emit_output_reload_insns): Likewise.
16395         (fixup_abnormal_edges): Likewise.
16396         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
16397         * store-motion.c (find_moveable_store): Likewise.
16398         * tree-eh.c (stmt_could_throw_p): Likewise.
16399         (tree_could_throw_p): Likewise.
16400         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
16401         * config/arm/arm.c (arm_expand_prologue): Likewise.
16402         (thumb1_expand_prologue): Likewise.
16403         * config/rx/rx.md (cbranchsf4): Likewise.
16404         (cmpsf): Likewise.
16405         * config/s390/s390.c (s390_emit_prologue): Likewise.
16406         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
16407         (inline_forbidden_into_p): New predicate.
16408         (expand_call_inline): Use it to forbid inlining.
16409         (tree_can_inline_p): Likewise.
16410
16411 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16412
16413         * config/i386/i386-c.c: Do not include rtl.h.
16414         * config/i386/t-i386: Update dependencies.
16415
16416 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16417
16418         * attribs.c: Do not include rtl.h.
16419         * Makefile.in: Update dependencies.
16420
16421 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
16422
16423         * double-int.h (double_int_and): New.
16424         * combine.c (try_combine): Clean up, use double_int_* and
16425         immed_double_int_const functions.
16426
16427 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16428
16429         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
16430         stderr to /dev/null instead of grep -q.
16431         * configure: Regenerate.
16432
16433 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16434
16435         * Makefile.in (EXCEPT_H): Fix typo.
16436
16437 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
16438
16439         * ira-build.c (update_conflict_hard_reg_costs): New.
16440         (ira_build): Call update_conflict_hard_reg_costs.
16441
16442 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16443
16444         PR debug/41371
16445         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
16446         ENABLE_CHECKING.
16447         (intersect_loc_chains): Walk the s2var's loc_chain together
16448         with s1node chain as long as the locations are equal, don't
16449         call find_loc_in_1pdv in that case.
16450
16451         PR debug/42801
16452         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
16453         (copy_bind_expr): ... instead of here.
16454         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
16455         if the block hasn't been remapped.
16456         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
16457         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
16458
16459 2010-05-25  Richard Guenther  <rguenther@suse.de>
16460
16461         PR middle-end/44069
16462         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
16463         out-of-bounds array accesses.
16464
16465 2010-05-25  Richard Guenther  <rguenther@suse.de>
16466
16467         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
16468         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
16469         (run_gcc): Re-organize to make cleanup easier.
16470
16471 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16472
16473         * config/s390/s390.c (optimization_options): Fix and move the
16474         flag_prefetch_loop_arrays override ...
16475         (override_options): ... here.
16476
16477 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
16478
16479         * diagnostic.c: Don't include plugin.h.
16480         (diagnostic_report_diagnostic): Don't handle plugins specially
16481         here.  Pass context to internal_error callback.
16482         * diagnostic.h (struct diagnostic_context): Add context parameter
16483         to internal_error callback.
16484         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
16485         * plugin.h (struct diagnostic_context): Declare.
16486         (warn_if_plugins, plugins_internal_error_function): Declare.
16487         * toplev.c (general_init): Set global_dc->internal_error.
16488         * Makefile.in (diagnostic.o): Update dependencies.
16489
16490 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
16491
16492         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
16493         * config/rs6000/t-darwin64: New.
16494         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
16495         build crt2.
16496
16497 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
16498
16499         PR 44203
16500         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
16501         match the original (and intended) behaviour before r159557.  This
16502         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
16503         in two ways.
16504
16505 2010-05-25  Richard Guenther  <rguenther@suse.de>
16506
16507         * doc/invoke.texi: Document -Ofast.
16508         * target.h (struct gcc_target): Add handle_ofast.
16509         * target-def.h (TARGET_HANDLE_OFAST): Add.
16510         (TARGET_INITIALIZER): Adjust.
16511         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
16512         * common.opt (Ofast): Add.
16513
16514 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16515
16516         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
16517         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
16518
16519 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16520
16521         PR target/43610
16522         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
16523         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
16524         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
16525         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
16526
16527 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16528
16529         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
16530         DW_OP_minus with negated offset instead of DW_OP_plus.
16531         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
16532
16533 2010-05-25  Wei Guozhi  <carrot@google.com>
16534
16535         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
16536         tst instruction and a new alternative.
16537         * config/arm/constraints.md (Pu): New constraint.
16538
16539 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
16540
16541         * function.c (assign_stack_local_1): Initialize variable
16542         to avoid warning when bootstrapping at -O3.
16543
16544 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
16545
16546         * configure.ac (all_lang_makefiles): Remove everything related to it.
16547         * configure: Regenerate.
16548         * Makefile.in: Fix reference to ada Make-lang.in.
16549         Remove support for LANG_MAKEFILES.
16550
16551 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
16552             Sandra Loosemore  <sandra@codesourcery.com>
16553
16554         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
16555         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
16556         description.  Add arm_neon_fp16_ok.
16557         (Add Options): Add arm_neon and arm_neon_fp16.
16558
16559 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
16560
16561         * diagnostic.c: Don't include flags.h.
16562         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
16563         context parameters.  Check flags in the context passed as a parameter.
16564         (diagnostic_build_prefix): Add context parameter.  Check
16565         show_column flag in context.
16566         (diagnostic_action_after_output): Check fatal_errors flag in context.
16567         (diagnostic_report_current_module): Check show_column flag in context.
16568         (default_diagnostic_starter): Update call to
16569         diagnostic_build_prefix.
16570         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
16571         (emit_diagnostic): Pass context to permissive_error_kind.
16572         (permerror): Pass context to permissive_error_kind.
16573         * diagnostic.h (struct diagnostic_context): Add show_column,
16574         pedantic_errors, permissive and fatal_errors fields.
16575         (diagnostic_build_prefix): Update prototype.
16576         * langhooks.c
16577         * toplev.c (process_options): Set flags in global_dc from
16578         flag_show_column, flag_pedantic_errors, flag_permissive,
16579         flag_fatal_errors.
16580         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
16581         to diagnostic_build_prefix.
16582         * Makefile.in (diagnostic.o): Update dependencies.
16583
16584 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16585
16586         * config/i386/ia32intrin.h (__crc32q): Define only if
16587         __SSE4_2__ is defined.
16588
16589 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
16590
16591         PR target/44132
16592         PR middle-end/43602
16593         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
16594         DECL_VISIBILITY_SPECIFIED.
16595         (emutls_decl): Set DECL_PRESERVE_P and copy
16596         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
16597         (emutls_finalize_control_var): New callback.
16598         (emutls_finish): Finalize emutls control variables.
16599         * toplev.c (compile_file): Move the call to emutls_finish ()
16600         before varpool_assemble_pending_decls ().
16601
16602 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
16603
16604         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
16605         added to the preprocessor condition.
16606
16607 2010-05-24  Paul Brook  <paul@codesourcery.com>
16608
16609         * gengtype-lex.l: Add HARD_REG_SET.
16610         * expr.c (expand_expr_real_1): Record writes to hard registers.
16611         * function.c (rtl_data): Add asm_clobbers.
16612         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
16613         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
16614         Use crtl->asm_clobbers.
16615
16616 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16617
16618         * doc/makefile.texi (Makefile): Mention stages 'profile'
16619         and 'feedback' for profiledbootstrap.
16620
16621 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16622
16623         PR target/44245
16624         * config/i386/i386.c (def_builtin): Properly check
16625         OPTION_MASK_ISA_64BIT.
16626
16627 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
16628
16629         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
16630         typedefs with different but compatible types.  Allow duplicate
16631         typedefs with the same type except for pedantic non-C1X, but give
16632         warning for variably modified types.
16633         * c-typeck.c (tagged_types_tu_compatible_p,
16634         function_types_compatible_p, type_lists_compatible_p,
16635         comptypes_internal): Add parameter different_types_p; set
16636         *different_types_p for different but compatible types.  All
16637         callers changed.
16638         (comptypes_check_different_types): New.
16639         * c-tree.h (comptypes_check_different_types): Declare.
16640
16641 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16642
16643         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
16644         * jump.c: Include basic-block.h.
16645         * profile.c: Likewise.
16646         * tree-profile.c: Likewise.
16647         * coverage.c: Likewise.
16648         * basic-block.h (optimize_function_for_size_p): Move to function.h.
16649         (optimize_function_for_speed_p): Likewise.
16650         * function.h (optimize_function_for_size_p,
16651         optimize_function_for_speed_p): Moved here from basic-block.h.
16652         * Makefile.in: Update dependencies.
16653
16654 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16655
16656         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
16657         before calling make; allow override through $MAKE.
16658         * doc/invoke.texi (Optimize Options): Document override.
16659
16660 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
16661
16662         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
16663         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16664         (rs6000_mode_dependent_address_ptr): Make static.
16665         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16666         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
16667         Remove.
16668
16669 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
16670
16671         PR target/43869
16672         * config/i386/i386.c: Make sure that the correct regparm is passed.
16673
16674 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16675
16676         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
16677         * sbitmap.c: ...to here to internalize sbitmap element access.
16678         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
16679         Explain why basic-block.h is included.
16680         * function.h: Include tm.h for CUMULATIVE_ARGS.
16681         * Makefile.in: Update dependencies.
16682
16683 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16684
16685         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
16686         New core types.
16687         * sbitmap.h (struct sbitmap_def): Do not typedef here.
16688         * sbitmap.c: Include sbitmap.h.
16689         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
16690         hard-reg-set.h.  Split everything related to regsets out from here...
16691         * regset.h: ...to here.  New file.
16692         * df.h: Include regset.h and sbitmap.h.
16693         * tree-flow.h: Likewise.
16694         * cfgloop.h: Likewise.
16695         * except.h: Do not include sbitmap.h.  Include hashtab.h.
16696         * cgraph.h: Include vec.h and function.h.
16697         * reload.h (struct insn_chain): Change types of live_throughout
16698         and dead_or_set from regset_head to bitmap_head.
16699         (compute_use_by_pseudos): Be defined also if regset.h is not included.
16700         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
16701         spilled_regs from regset_head to bitmap_head to avoid dependency
16702         in regset.h.
16703         * sel-sched-ir.h: Include regset.h.
16704         * reload.c: Include df.h before reload.h.
16705         * caller-save.c: Likewise.
16706         * reload1.c: Likewise.
16707         * ira.c: Likewise.
16708         (mark_elimination): Update type of r to bitmap, consistent with
16709         DF_LR_IN.
16710         * dominance.c: Include bitmap.h.
16711         * modulo-sched.c: Include df.h.
16712         * cfganal.c: Include bitmap.h and sbitmap.h.
16713         * cfgbuild.c: Include sbitmap.h.
16714         * lcm.c: Include sbitmap.h.
16715         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
16716         * domwalk.c: Include sbitmap.h, exclude ggc.h.
16717         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
16718         * cselib.c: Include bitmap.h.
16719         * tree-optimize.c: Include regset.h.
16720         * stmt.c: Include bitmap.h.
16721         * Makefile.in: Update dependencies.
16722
16723 2010-05-22  Jan Hubicka  <jh@suse.cz>
16724
16725         * cgraph.h (struct varpool_node): Add same_comdat_group.
16726         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
16727         pointer.
16728         (output_varpool): Update call of lto_output_varpool_node.
16729         (input_varpool): Read same_comdat_group pointer.
16730         (input_varpool_1): Fixup same_comdat_group pointer.
16731         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
16732         group is needed, all are.
16733         * varpool.c (varpool_remove_node): Remove node from same comdat group
16734         linklist too.
16735         (varpool_analyze_pending_decls): Walk same comdat groups.
16736
16737 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16738
16739         * rtl.h (union rtunion_def): Remove rt_bit member.
16740         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
16741         * print-rtl (print_rtx): Do not print the member.
16742         * gengtype.c (adjust_field_rtx_def): Do not handle it.
16743         * gengenrtl.c (type_from_format): Likewise.
16744         (accessor_from_format): Likewise.
16745
16746 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
16747
16748         * dbgcnt.c: Include toplev.h instead of errors.h.
16749         * ira-emit.c: Don't include errors.h.
16750         * ira.c: Include toplev.h instead of errors.h.
16751         * lto-compress.c: Include toplev.h instead of errors.h.
16752         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
16753         ira.o, dbgcnt.o): Update dependencies.
16754
16755 2010-05-22  Richard Guenther  <rguenther@suse.de>
16756
16757         * gimple.c (gimple_types_compatible_p): Check type qualifications
16758         before merging pointer to complete and pointer to incomplete type.
16759         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
16760         we use our own resolution algorithm.  The gold linker plugin
16761         doesn't do the job we want it to do here.
16762
16763 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
16764
16765         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16766         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16767         (sparc_mode_dependent_address_p): New function.
16768
16769 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16770
16771         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
16772
16773         * timevar.c: Do not include any core headers.
16774         (timevar_print): De-i18n-ize.
16775         (print_time): Likewise.
16776         * timevar.h (timevar_push, timevar_pop): Make inline functions.
16777
16778 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
16779
16780         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
16781         langhooks-def.h.
16782         (diagnostic_initialize): Initialize x_data not last_function.
16783         (diagnostic_report_current_function): Move to tree-diagnostic.c.
16784         (default_diagnostic_starter): Call
16785         diagnostic_report_current_module not
16786         diagnostic_report_current_function.
16787         (diagnostic_report_diagnostic): Initialize x_data not
16788         abstract_origin.
16789         (verbatim): Likewise.
16790         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
16791         x_data.
16792         (struct diagnostic_context): Change last_function to x_data.
16793         (diagnostic_auxiliary_data): Replace with
16794         diagnostic_context_auxiliary_data and
16795         diagnostic_info_auxiliary_data.
16796         (diagnostic_last_function_changed, diagnostic_set_last_function,
16797         diagnostic_report_current_function): Move to tree-diagnostic.h.
16798         (print_declaration, dump_generic_node, print_generic_stmt,
16799         print_generic_stmt_indented, print_generic_expr,
16800         print_generic_decl, debug_c_tree, dump_omp_clauses,
16801         print_call_name, debug_generic_expr, debug_generic_stmt,
16802         debug_tree_chain, default_tree_printer): Move to
16803         tree-pretty-print.h.
16804         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
16805         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
16806         gimple-pretty-print.h.
16807         * pretty-print.c: Don't include tree.h
16808         (pp_base_format): Don't handle %K here.
16809         (pp_base_tree_identifier): Move to tree-pretty-print.c.
16810         * pretty-print.h (text_info): Change abstract_origin to x_data.
16811         (pp_tree_identifier, pp_unsupported_tree,
16812         pp_base_tree_identifier): Move to tree-pretty-print.h.
16813         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
16814         tree-pretty-print.h: New files.
16815         * tree-pretty-print.c: Include tree-pretty-print.h.
16816         (percent_K_format): New.  Moved from pretty-print.c.
16817         (pp_base_tree_identifier): Move from pretty-print.c.
16818         * c-objc-common.c: Include tree-pretty-print.h.
16819         (c_tree_printer): Handle %K here.
16820         * langhooks.c: Include tree-diagnostic.h.
16821         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
16822         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
16823         (default_tree_printer): Handle %K using percent_K_format.
16824         (general_init): Use default_tree_diagnostic_starter.
16825         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
16826         (free_lang_data): Use default_tree_diagnostic_starter.
16827         * c-pretty-print.c: Include tree-pretty-print.h.
16828         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16829         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16830         * dwarf2out.c: Include tree-pretty-print.h.
16831         * except.c: Include tree-pretty-print.h.
16832         * gimple-pretty-print.c: Include tree-pretty-print.h and
16833         gimple-pretty-print.h.
16834         * gimplify.c: Include tree-pretty-print.h.
16835         * graphite-poly.c: Include tree-pretty-print.h and
16836         gimple-pretty-print.h.
16837         * ipa-cp.c: Include tree-pretty-print.h.
16838         * ipa-inline.c: Include gimple-pretty-print.h.
16839         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16840         * ipa-pure-const.c: Include gimple-pretty-print.h.
16841         * ipa-struct-reorg.c: Include tree-pretty-print.h and
16842         gimple-pretty-print.h.
16843         * ipa-type-escape.c: Include tree-pretty-print.h.
16844         * print-rtl.c: Include tree-pretty-print.h.
16845         * print-tree.c: Include gimple-pretty-print.h.
16846         * sese.c: Include tree-pretty-print.h.
16847         * tree-affine.c: Include tree-pretty-print.h.
16848         * tree-browser.c: Include tree-pretty-print.h.
16849         * tree-call-cdce.c: Include gimple-pretty-print.h.
16850         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16851         * tree-chrec.c: Include tree-pretty-print.h.
16852         * tree-data-ref.c: Include tree-pretty-print.h and
16853         gimple-pretty-print.h.
16854         * tree-dfa.c: Include tree-pretty-print.h.
16855         * tree-if-conv.c: Include tree-pretty-print.h and
16856         gimple-pretty-print.h.
16857         * tree-inline.c: Include tree-pretty-print.h.
16858         * tree-into-ssa.c: Include tree-pretty-print.h and
16859         gimple-pretty-print.h.
16860         * tree-nrv.c: Include tree-pretty-print.h.
16861         * tree-object-size.c: Include tree-pretty-print.h and
16862         gimple-pretty-print.h.
16863         * tree-outof-ssa.c: Include tree-pretty-print.h and
16864         gimple-pretty-print.h.
16865         * tree-parloops.c: Include tree-pretty-print.h and
16866         gimple-pretty-print.h.
16867         * tree-predcom.c: Include tree-pretty-print.h and
16868         gimple-pretty-print.h.
16869         * tree-scalar-evolution.c: Include tree-pretty-print.h and
16870         gimple-pretty-print.h.
16871         * tree-sra.c: Include tree-pretty-print.h.
16872         * tree-ssa-address.c: Include tree-pretty-print.h.
16873         * tree-ssa-alias.c: Include tree-pretty-print.h.
16874         * tree-ssa-ccp.c: Include tree-pretty-print.h and
16875         gimple-pretty-print.h.
16876         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
16877         * tree-ssa-copy.c: Include tree-pretty-print.h and
16878         gimple-pretty-print.h.
16879         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
16880         * tree-ssa-dce.c: Include tree-pretty-print.h and
16881         gimple-pretty-print.h.
16882         * tree-ssa-dom.c: Include tree-pretty-print.h and
16883         gimple-pretty-print.h.
16884         * tree-ssa-dse.c: Include gimple-pretty-print.h.
16885         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
16886         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
16887         * tree-ssa-live.c: Include tree-pretty-print.h and
16888         gimple-pretty-print.h.
16889         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
16890         gimple-pretty-print.h.
16891         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
16892         gimple-pretty-print.h.
16893         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
16894         gimple-pretty-print.h.
16895         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
16896         gimple-pretty-print.h.
16897         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
16898         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
16899         * tree-ssa-operands.c: Include tree-pretty-print.h and
16900         gimple-pretty-print.h.
16901         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
16902         gimple-pretty-print.h.
16903         * tree-ssa-pre.c: Include tree-pretty-print.h and
16904         gimple-pretty-print.h.
16905         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
16906         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
16907         gimple-pretty-print.h.
16908         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
16909         gimple-pretty-print.h.
16910         * tree-ssa-sink.c: Include gimple-pretty-print.h.
16911         * tree-ssa-ter.c: Include tree-pretty-print.h and
16912         gimple-pretty-print.h.
16913         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
16914         * tree-ssa.c: Include tree-pretty-print.h and
16915         gimple-pretty-print.h.
16916         * tree-stdarg.c: Include gimple-pretty-print.h.
16917         * tree-switch-conversion.c: Include gimple-pretty-print.h.
16918         * tree-tailcall.c: Include tree-pretty-print.h and
16919         gimple-pretty-print.h.
16920         * tree-vect-data-refs.c: Include tree-pretty-print.h and
16921         gimple-pretty-print.h.
16922         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
16923         gimple-pretty-print.h.
16924         * tree-vect-loop.c: Include tree-pretty-print.h and
16925         gimple-pretty-print.h.
16926         * tree-vect-patterns.c: Include gimple-pretty-print.h.
16927         * tree-vect-slp.c: Include tree-pretty-print.h and
16928         gimple-pretty-print.h.
16929         * tree-vect-stmts.c: Include tree-pretty-print.h and
16930         gimple-pretty-print.h.
16931         * tree-vectorizer.c: Include tree-pretty-print.h.
16932         * tree-vrp.c: Include tree-pretty-print.h and
16933         gimple-pretty-print.h.
16934         * value-prof.c: Include tree-pretty-print.h and
16935         gimple-pretty-print.h.
16936         * var-tracking.c: Include tree-pretty-print.h.
16937         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
16938         (tree-diagnostic.o): New dependencies.
16939         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
16940         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
16941         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
16942         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
16943         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
16944         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
16945         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
16946         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
16947         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
16948         tree-ssa-address.o, tree-ssa-loop-niter.o,
16949         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
16950         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
16951         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
16952         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
16953         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
16954         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
16955         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
16956         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
16957         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
16958         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
16959         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
16960         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
16961         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
16962         tree-switch-conversion.o, var-tracking.o, value-prof.o,
16963         cfgexpand.o, pretty-print.o): Update dependencies.
16964
16965 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
16966
16967         * tree-ssa-structalias.c: Remove tm_p.h from include.
16968
16969 2010-05-21  Jeff Law  <law@redhat.com>
16970
16971         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
16972
16973 2010-05-21  Jason Merrill  <jason@redhat.com>
16974
16975         * tree-eh.c (cleanup_is_dead_in): New.
16976         (lower_try_finally): Don't generate a dead cleanup region.
16977         (lower_cleanup): Likewise.
16978
16979 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16980
16981         PR debug/44223
16982         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
16983         unchain each use from the cyclic next_regno_use chain first.
16984
16985 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16986
16987         * real: Do not include gmp.h, mpfr.h, and mpc.h.
16988         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
16989         (real_value_negate, real_value_abs): New prototypes.
16990         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
16991         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
16992         new include file for interface between MPFR and REAL_VALUE_TYPE.
16993         * real.c: Include realmpfr.h.
16994         (real_arithmetic2): Remove legacy function.
16995         (real_value_negate): New.
16996         (real_value_abs): New.
16997         (mfpr_from_real, real_from_mpfr): Move from here...
16998         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
16999         * builtins.c: Include realmpfr.h.
17000         * fold-const.c: Include realmpfr.h.
17001         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
17002         (fold_negate_const): Likewise.
17003         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
17004         * toplev.c: Include realmpfr.h.
17005         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
17006         and real_value_negate.
17007         * fixed-value.c (check_real_for_fixed_mode): Likewise.
17008         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
17009         (vfp3_const_double_index): Likewise.
17010         (arm_print_operand): Likewise.
17011         * Makefile.in: Update dependencies.
17012
17013 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17014
17015         * config/s390/s390.c (override_options): Increase the default
17016         of max-completely-peel-times.
17017
17018 2010-05-21  Julian Brown  <julian@codesourcery.com>
17019             Mark Mitchell  <mark@codesourcery.com>
17020
17021         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
17022         sibling calls for Thumb-1.
17023         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
17024         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
17025         Thumb-2.
17026         (*call_insn, *call_value_insn): Don't use for Thumb-2.
17027         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
17028         for Thumb-2.
17029         (return): New expander.
17030         (*arm_return): New name for ARM return insn.
17031         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
17032
17033 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
17034
17035         * config.gcc (sparc64-*-rtems*): New target.
17036
17037 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17038
17039         * tree.c (build_function_decl_skip_args): Fix grammar.
17040         (build_function_type_list_1): Fix typos, adjust formatting.
17041
17042 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
17043
17044         * tree.h: Include real.h and fixed-value.h as basic datatypes.
17045         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
17046         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
17047         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
17048         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
17049         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
17050         tree-pretty-print.c, tree-loop-distribution.c,
17051         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
17052         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
17053         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
17054         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
17055         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
17056         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
17057         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
17058         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
17059         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
17060         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
17061         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
17062         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
17063         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
17064         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
17065         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
17066         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
17067         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
17068         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
17069         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
17070         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
17071         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
17072         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
17073         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
17074         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
17075         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
17076         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
17077         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
17078         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
17079         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
17080         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
17081         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
17082         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
17083         config/score/score7.c, config/score/score.c, config/arm/arm.c,
17084         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
17085         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
17086         config/bfin/bfin.c: Clean up redundant includes.
17087         * Makefile.in: Update accordingly.
17088
17089 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
17090
17091         PR middle-end/44204
17092         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
17093         statement has no arguments.
17094
17095 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
17096
17097         PR/44139
17098         * varasm.c (emutls_decl): Merge attributes to new decl.
17099
17100 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
17101
17102         PR middle-end/44101
17103         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
17104         around the uniquized constructor if its type requires a conversion.
17105
17106 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
17107
17108         PR debug/44205
17109         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
17110         at -O0 goto_locus of any of the incoming edges differs from
17111         goto_locus of outgoing edge, or gimple_location of any of the
17112         labels differs.
17113
17114 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
17115
17116         * ira.c (ira_non_ordered_class_hard_regs): Define.
17117         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
17118         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
17119         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
17120         cost of unaligned hard regs when allocating multi-reg pseudos.
17121
17122 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
17123
17124         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
17125         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
17126         for TARGET_NO_FLOAT.
17127         * config/mips/mips.c (mips_file_start): Expand conditional expression
17128         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
17129         (mips_override_options): Move -mno-float override -msoft-float and
17130         -mhard-float.
17131         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
17132         Condition(TARGET_SUPPORTS_NO_FLOAT).
17133         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
17134         __mips_no_float here.
17135         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
17136         (TARGET_SUPPORTS_NO_FLOAT): Define.
17137         * config/mips/sdemtk.opt: Delete.
17138
17139 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
17140
17141         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
17142
17143 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
17144
17145         PR target/43733
17146         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
17147         * configure: Regenerate.
17148         * config.in: Regenerate.
17149         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
17150         instead of sahf only for 64bit targets.
17151
17152 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17153
17154         PR debug/44178
17155         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
17156         setup_ref_regs for DEBUG_INSNs.
17157
17158 2010-05-20  Jan Hubicka  <jh@suse.cz>
17159
17160         PR middle-end/44197
17161         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
17162
17163 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
17164
17165         PR bootstrap/43870
17166         * df-scan.c (df_ref_compare): Stabilize sort.
17167
17168 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
17169
17170         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
17171         argument.  Don't use DW_OP_piece if offset is non-zero,
17172         put offset into second DW_OP_bit_piece argument.
17173         (dw_sra_loc_expr): Adjust callers.  For memory expressions
17174         compute offset.
17175
17176 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
17177
17178         PR target/44202
17179         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
17180         settings for 16-bit-constant "addo" alternative.
17181
17182 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
17183
17184         * config/mips/mips-dsp.md (add<DSPV:mode>3,
17185         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
17186
17187         PR target/43764
17188         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
17189         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
17190         Use it.
17191
17192 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
17193
17194         * diagnostic.c (FLOAT, FFS): Don't undefine.
17195         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
17196         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
17197         include ordering.
17198
17199 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
17200
17201         * combine.c (propagate_for_debug): Call make_compound_operation
17202         on the source value.
17203         (try_combine): When implementing a split chosen by find_split_point,
17204         either copy i2src or set it to null.  Assert that i2src is not null
17205         before substituting into CALL_INSN_FUNCTION_USAGE.
17206
17207 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
17208
17209         * double-int.h (double_int_ior): New function.
17210         * tree.h (build_int_cst_wide_type): Remove.
17211         * tree.c (build_int_cst_wide_type): Remove.
17212         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
17213         of build_int_cst_wide_type.
17214         * stor-layout.c (set_sizetype): (Ditto.).
17215         * dojump.c (do_jump): Use build_int_cstu instead of
17216         build_int_cst_wide_type.
17217
17218 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
17219
17220         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
17221         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
17222         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
17223         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
17224         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
17225         propagate the 'data' argument to copy_tree_r.
17226         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
17227         Propagate 'data' argument to walk_tree.
17228         (copy_if_shared): New function.
17229         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
17230         (unmark_visited): New function.
17231         (unshare_body): Call copy_if_shared instead of doing it manually.
17232         (unvisit_body): Call unmark_visited instead of doing it manually.
17233
17234 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
17235
17236         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
17237         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
17238         * hooks.c: Likewise.
17239         * target-def.h (TARGET_FOLD_BUILTIN): Define to
17240         hook_tree_tree_int_treep_bool_null.
17241         * target.h (struct gcc_target): Update signature of fold_builtin
17242         field.
17243         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
17244         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
17245         instead of the call expression.
17246         (fold_builtin_call_array): Pass n and argarray directly.
17247         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
17248         consing a list.
17249         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
17250         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
17251         `i' and use it in place of `arity'.
17252         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
17253         Dereference `args' directly.
17254         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
17255
17256 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17257
17258         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17259         3dnow, sse3, sse2.
17260         (Directives): Document optional dg-require-effective-target
17261         selector.
17262
17263 2010-05-19  Richard Guenther  <rguenther@suse.de>
17264
17265         PR lto/44196
17266         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
17267
17268 2010-05-19  Richard Guenther  <rguenther@suse.de>
17269
17270         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
17271         * common.opt (fwhopr=): New.
17272         * opts.c (common_handle_option): Handle OPT_fwhopr.
17273         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
17274         * collect2.c (main): Match -fwhopr*.
17275         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
17276         Execute ltrans stage in parallel when jobs is bigger than 1.
17277
17278 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17279
17280         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17281         pentiumpro on Solaris 8/x86 with Sun as.
17282         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
17283         hidden alias bug.
17284         (gcc_cv_as_ix86_quad): Check for .quad directive.
17285         * configure: Regenerate.
17286         * config.in: Regenerate.
17287         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
17288
17289 2010-05-19  Martin Jambor  <mjambor@suse.cz>
17290
17291         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
17292         also for indirect edges.  Actual printing moved...
17293         (ipa_print_node_jump_functions_for_edge): ...here.
17294         (ipa_compute_jump_functions): Renamed to
17295         ipa_compute_jump_functions_for_edge and made static.
17296         (ipa_compute_jump_functions): New function.
17297         (make_edge_direct_to_target): Check if the number of arguments on
17298         the newly direct edge is the same as the number of parametrs of
17299         the callee.
17300         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
17301         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
17302         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
17303         analysis functions unconditionally, call the new
17304         ipa_analyze_params_uses on the node instead of every edge.
17305
17306 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
17307
17308         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
17309         to tree.
17310         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
17311         also checks for a constant int vs.  non-constant but
17312         loop-invariant steps.
17313         (find_or_create_group): Change the sort algorithm to only consider
17314         steps that are constant ints.
17315         (idx_analyze_ref): Adopt code to handle a tree instead of a
17316         HOST_WIDE_INT for step.
17317         (gather_memory_references_ref): Handle tree instead of int and be
17318         prepared to see a NULL_TREE.
17319         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
17320         prefetches if the step cannot be calculated at compile time.
17321         (issue_prefetch_ref): Issue prefetches for non-constant but
17322         loop-invariant steps.
17323
17324 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17325
17326         Revert:
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  Nathan Froyd  <froydnj@codesourcery.com>
17333
17334         * tree.h (build_call_list): Remove.
17335         * tree.c (build_call_list): Remove.
17336
17337 2010-05-18  Jan Hubicka  <jh@suse.cz>
17338
17339         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
17340
17341 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
17342
17343         PR rtl-optimization/43332
17344         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
17345
17346 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
17347
17348         * tree.h (build_int_cstu): Implement as static inline.
17349         * tree.c (build_int_cstu): Remove function.
17350         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
17351         sign extended.
17352
17353 2010-05-18  Richard Guenther  <rguenther@suse.de>
17354
17355         PR lto/44143
17356         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
17357         (debug): Initialize from -save-temps.
17358         (collect_execute): Print command-line when verbose.
17359         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
17360         for ltrans invocation.  Produce -dumpbase flag again.
17361         (process_args): Remove.
17362         (main): Simplify.
17363         * collect2.c (maybe_run_lto_and_relink): Only pass object
17364         files to lto-wrapper.
17365         * gcc.c (LINK_COMMAND_SPEC): Likewise.
17366
17367 2010-05-18  Jan Hubicka  <jh@suse.cz>
17368
17369         * opts.c (decode_options): Do not disable whopr at ipa_cp.
17370         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
17371
17372 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17373
17374         PR lto/44184
17375         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
17376         in a GIMPLE_ASM.
17377         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
17378         in a GIMPLE_ASM.
17379
17380 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
17381
17382         PR debug/41371
17383         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
17384         rtx_equal_p inline.
17385
17386 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17387
17388         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
17389         lto-macho as lto_binary_reader.
17390
17391         * darwin.c (darwin_asm_named_section): Do not add assembler comment
17392         after .section directive; just print it before the directive instead.
17393
17394 2010-05-17  Jan Hubicka  <jh@suse.cz>
17395
17396         * cgraph.c (cgraph_create_virtual_clone): Only check
17397         versionable_function_p when not in wpa and checking is enabled.
17398         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
17399         there are no more functions to materialize.
17400
17401 2010-05-17  Jan Hubicka  <jh@suse.cz>
17402
17403         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
17404         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
17405         New functions.
17406         (output_cgraph): Call output_cgraph_opt_summary.
17407         (input_cgrpah): Call input_cgraph_opt_summary.
17408         (output_cgraph_opt_summary_p, output_node_opt_summary,
17409         input_node_opt_summary, input_cgraph_opt_section): New functions.
17410         * lto-section-in.c (lto_section_name): Add cgraphopt.
17411         * tree-inline.c (tree_function_versioning): Handle parm_num.
17412         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
17413         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
17414
17415 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17416
17417         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
17418         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
17419         the insn to prefetch ratio heuristic to loops with known trip count.
17420
17421 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17422
17423         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
17424         (schedule_prefetches): Do not generate a prefetch if the unroll factor
17425         is far from what is required by the prefetch.
17426
17427 2010-05-17  Jan Hubicka  <jh@suse.cz>
17428
17429         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
17430         (ipcp_estimate_growth): Likewise.
17431         (ipcp_const_param_count): Likewise.
17432         (ipcp_insert_stage): Likewise.
17433         * ipa-prop.c (visit_load_for_mod_analysis): New function.
17434         (visit_store_addr_for_mod_analysis): Set used flag.
17435         (ipa_detect_param_modifications): Set used flag for SSE params;
17436         update use of walk_stmt_load_store_addr_ops.
17437         (ipa_print_node_params): Print used flag.
17438         (ipa_write_node_info): Stream used flag.
17439         (ipa_read_node_info): Likewise.
17440         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
17441         (ipa_is_param_used): New function.
17442         (lto_ipa_fixup_call_notes): Remove unused declaration.
17443
17444 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17445
17446         PR target/44074
17447         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
17448         * configure: Regenerate.
17449         * config.in: Regenerate.
17450         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
17451         !HAVE_AS_IX86_REP_LOCK_PREFIX.
17452         Don't emit whitespace.
17453         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
17454         (*rep_movsi): Likewise.
17455         (*rep_movsi_rex64): Likewise.
17456         (*rep_movqi): Likewise.
17457         (*rep_movqi_rex64): Likewise.
17458         (*rep_stosdi_rex64): Likewise.
17459         (*rep_stossi): Likewise.
17460         (*rep_stossi_rex64): Likewise.
17461         (*rep_stosqi): Likewise.
17462         (*rep_stosqi_rex64): Likewise.
17463         (*cmpstrnqi_nz_1): Use {%;} after repz.
17464         (*cmpstrnqi_nz_rex_1): Likewise.
17465         (*cmpstrnqi_1): Likewise.
17466         (*cmpstrnqi_rex_1): Likewise.
17467         (*strlenqi_1): Use {%;} after repnz.
17468         (*strlenqi_rex_1): Likewise.
17469         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
17470         (*sync_compare_and_swap<mode>): Likewise.
17471         (sync_double_compare_and_swap<mode>): Likewise.
17472         (*sync_double_compare_and_swapdi_pic): Likewise.
17473         (sync_old_add<mode>): Likewise.
17474         (sync_add<mode>): Likewise.
17475         (sync_sub<mode>): Likewise.
17476         (sync_<code><mode>): Likewise.
17477
17478 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17479
17480         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
17481         otr_token and polymorphic.
17482         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
17483         (cgraph_clone_edge): Copy the above fields.
17484         * tree.c (get_binfo_at_offset): New function.
17485         * tree.h (get_binfo_at_offset): Declare.
17486         * ipa-prop.h (enum jump_func_type): Added known_type jump function
17487         type, reordered items, updated comments.
17488         (union jump_func_value): Added base_type field, reordered fields.
17489         (enum ipa_lattice_type): Moved down in the file.
17490         (struct ipa_param_descriptor): New field polymorphic.
17491         (ipa_is_param_polymorphic): New function.
17492         * ipa-prop.c: Include gimple.h and gimple-fold.h.
17493         (ipa_print_node_jump_functions): Print known type jump functions.
17494         (compute_complex_pass_through): Renamed to...
17495         (compute_complex_assign_jump_func): this.
17496         (compute_complex_ancestor_jump_func): New function.
17497         (compute_known_type_jump_func): Likewise.
17498         (compute_scalar_jump_functions): Create known type and complex ancestor
17499         jump functions.
17500         (ipa_note_param_call): New parameter polymorphic, set the corresponding
17501         flag in the call note accordingly.
17502         (ipa_analyze_call_uses): Renamed to...
17503         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
17504         variable var only in the block where it is used.
17505         (ipa_analyze_virtual_call_uses): New function.
17506         (ipa_analyze_call_uses): Likewise.
17507         (combine_known_type_and_ancestor_jfs): Likewise.
17508         (update_jump_functions_after_inlining): Implemented handling of a
17509         number of new jump function types combination.
17510         (print_edge_addition_message): Removed.
17511         (make_edge_direct_to_target): New function.
17512         (try_make_edge_direct_simple_call): Likewise.
17513         (try_make_edge_direct_virtual_call): Likewise.
17514         (update_call_notes_after_inlining): Renamed to...
17515         (update_indirect_edges_after_inlining): this.  Moved edge creation for
17516         indirect calls to try_make_edge_direct_simple_call, also calls
17517         try_make_edge_direct_virtual_call for virtual calls.
17518         (ipa_print_node_params): Changed the header message.
17519         (ipa_write_jump_function): Stream also known type jump functions.
17520         (ipa_read_jump_function): Likewise.
17521         (ipa_write_indirect_edge_info): Stream new fields in
17522         cgraph_indirect_call_info.
17523         (ipa_read_indirect_edge_info): Likewise.
17524         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
17525         GIMPLE_FOLD_H.
17526
17527 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17528
17529         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
17530
17531 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17532
17533         * tree.h (CALL_EXPR_ARGS): Delete.
17534         (call_expr_arglist): Delete.
17535         * tree.c (call_expr_arglist): Delete.
17536         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
17537         targetm.fold_builtin.
17538         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
17539         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
17540         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
17541         arglist parameter.  Use CALL_EXPR_ARG.
17542         (picochip_expand_builtin_3op): Likewise.
17543         (picochip_expand_builtin_2opvoid): Likewise.
17544         (picochip_expand_array_get): Likewise.
17545         (picochip_expand_array_put): Likewise.
17546         (picochip_expand_array_testport): Likewise.
17547         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
17548         rather than arglist.
17549         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
17550         CALL_EXPR_ARGS.
17551         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
17552         than TREE_VALUE and TREE_CHAIN.
17553         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
17554         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
17555         the arglist.
17556
17557 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17558
17559         PR bootstrap/42347
17560         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
17561         to have no fallthru edge.
17562
17563         PR middle-end/44102
17564         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
17565         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
17566         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
17567         add BARRIER after previous bb if needed.
17568
17569 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17570
17571         * tree.c (build_function_type_list_1): Remove bogus assert condition.
17572
17573 2010-05-17  Alan Modra  <amodra@gmail.com>
17574
17575         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
17576         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
17577         with copy_reg rtx param.
17578         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
17579         Correct cases where code for ABI_V4 did not initialise the reg
17580         used to access frame.  Also leave frame_reg_rtx as sp for large
17581         frames that save no regs.
17582
17583 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17584
17585         PR middle-end/44133
17586         * tree-sra.c (create_access_replacement): New parameter rename, mark
17587         the replaement for renaming only when it is true.
17588         (get_access_replacement): Pass true in the rename parameter of
17589         create_access_replacement.
17590         (get_unrenamed_access_replacement): New function.
17591         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
17592         replacement declaration from it.
17593
17594 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
17595
17596         * function.c (try_fit_stack_local, add_frame_space): New static
17597         functions.
17598         (assign_stack_local_1): Use them.  Look for opportunities to use
17599         space previously wasted on alignment.
17600         * function.h (struct frame_space): New.
17601         (struct rtl_data): Add FRAME_SPACE_LIST member.
17602         * reload1.c (something_was_spilled): New static variable.
17603         (alter_reg): Set it.
17604         (reload): Test it in addition to testing if the frame size changed.
17605
17606 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
17607
17608         * config/s390/s390.c: Define sane prefetch settings and activate
17609         flag_prefetch_loop_arrays on -O3.
17610         * config/s390/s390.h: Declare that read can use write prefetch.
17611
17612 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17613
17614         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
17615         build.
17616
17617 2010-05-16  Jan Hubicka  <jh@suse.cz>
17618
17619         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
17620         function body; do not check stdarg field of struct function.
17621
17622 2010-05-16  Jan Hubicka  <jh@suse.cz>
17623
17624         * cgraph.c (dump_cgraph_node): Dump versionable flag.
17625         * cgraph.h (cgraph_local_info): Add versionable flag.
17626         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
17627         (ipcp_versionable_function_p): Use it.
17628         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
17629         versionable flag.
17630
17631 2010-05-16  Jan Hubicka  <jh@suse.cz>
17632
17633         * cgraph.c (cgraph_clone_node): Take decl argument and insert
17634         clone into hash when it is different from orig.
17635         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
17636         * cgraph.h (cgraph_clone_node): Update prototype.
17637         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
17638         (lto_cgraph_encoder_delete): Delete body map.
17639         (lto_cgraph_encoder_size): Move to header.
17640         (lto_cgraph_encoder_encode_body_p,
17641         lto_set_cgraph_encoder_encode_body): New.
17642         (lto_output_node): Do not take written_decls argument; output clone_of
17643         pointer.
17644         (add_node_to): Add include_body_argument; call
17645         lto_set_cgraph_encoder_encode_body on master of the clone.
17646         (add_references): Update use of add_node_to.
17647         (compute_ltrans_boundary): Likewise.
17648         (output_cgraph): Do not create written_decls bitmap.
17649         (input_node): Take nodes argument; stream in clone_of correctly.
17650         (input_cgraph_1): Update use of input_node.
17651         * lto-streamer-out.c (lto_output): Use encoder info to decide
17652         what bodies to output.
17653         * ipa-inline.c (cgraph_clone_inlined_nodes,
17654         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
17655         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
17656         (lto_cgraph_encoder_size): Define here.
17657         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
17658         Declare.
17659
17660 2010-05-16  Richard Guenther  <rguenther@suse.de>
17661
17662         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
17663         -fipa-type-escape.
17664         * ipa-type-escape.c (gate_type_escape_vars): Run when
17665         -fipa-struct-reorg runs.
17666         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
17667         * common.opt (fipa-type-escape): Remove.
17668
17669 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17670
17671         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
17672         (decode_options): Likewise.
17673         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
17674
17675 2010-05-16  Jan Hubicka  <jh@suse.cz>
17676
17677         * ipa.c (function_and_variable_visibility): Also bring local all
17678         aliases.
17679
17680 2010-05-16  Richard Guenther  <rguenther@suse.de>
17681
17682         * alias.c (nonoverlapping_memrefs_p): Remove use of
17683         IPA type-escape information.
17684
17685 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
17686
17687         * c-common.c (c_common_reswords): Add _Static_assert for C.
17688         * c-parser.c (c_token_starts_declaration,
17689         c_parser_next_token_starts_declaration,
17690         c_parser_static_assert_declaration_no_semi,
17691         c_parser_static_assert_declaration): New.
17692         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
17693         Handle static assertions if static_assert_ok.
17694         (c_parser_external_declaration, c_parser_declaration_or_fndef,
17695         c_parser_compound_statement_nostart, c_parser_label,
17696         c_parser_for_statement, c_parser_objc_methodprotolist,
17697         c_parser_omp_for_loop): All callers of
17698         c_parser_declaration_or_fndef changed.
17699         (c_parser_struct_declaration): Handle static assertions.
17700         (c_parser_compound_statement_nostart): Use
17701         c_parser_next_token_starts_declaration and
17702         c_token_starts_declaration to detect start of declarations.
17703         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
17704         Likewise.
17705
17706 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
17707
17708         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17709         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17710         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17711         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17712         (mmix_function_outgoing_value): Rename to...
17713         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
17714         (mmix_function_value_regno_p): Make static.
17715         (mmix_libcall_value): New function.
17716         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
17717         mmix_function_value_regno_p): Remove declaration.
17718
17719 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17720
17721         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
17722         BUILT_IN_ALLOCA if stack checking is enabled.
17723
17724 2010-05-16  Richard Guenther  <rguenther@suse.de>
17725
17726         * var-tracking.c (vars_copy_1): Inline ...
17727         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17728         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
17729         (variable_merge_over_cur): Adjust.  Merge asserts.
17730         (variable_merge_over_src): Likewise.
17731         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
17732         (variable_post_merge_new_vals): Merge asserts.
17733         (variable_post_merge_perm_vals): Likewise.
17734         (find_mem_expr_in_1pdv): Likewise.
17735         (dataflow_set_different_value): Remove.
17736         (onepart_variable_different_p): Merge asserts.
17737         (variable_different_p): Likewise.
17738         (dataflow_set_different_1): Inline ...
17739         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17740         (emit_notes_for_differences_1): Merge asserts.
17741
17742 2010-05-16  Richard Guenther  <rguenther@suse.de>
17743
17744         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
17745         * optabs.c (libfunc_decl_hash): Likewise.
17746         * varasm.c (emutls_decl): Likewise.
17747
17748 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
17749
17750         * c-decl.c: Don't include gimple.h.
17751         (merge_decls): Do not copy gimple_body.
17752
17753 2010-05-15  Jason Merrill  <jason@redhat.com>
17754
17755         * c.opt: Add -fnothrow-opt.
17756
17757 2010-05-15  Jan Hubicka  <jh@suse.cz>
17758
17759         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
17760         analyzed.
17761         * passes.c (ipa_write_summaries): Write all analyzed nodes.
17762
17763 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
17764
17765         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
17766         * Makefile.in: Add it.
17767         Fix all other Makefile dependencies for changes below.
17768         * tree.h: Include it instead of defining VEC primitives here.
17769         * gimple.h: Likewise.
17770         * rtl.h: Likewise.
17771         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
17772         * except.h: Include vecir.h, break dependence on tree.h.
17773
17774         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
17775         Move from here...
17776         * tree-iterator.c: ...to here.
17777         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
17778
17779         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
17780         tm_p.h.
17781         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
17782         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
17783         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
17784         tree-mudflap.h, and target.h.
17785         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
17786         predict.h, tree-inline.h, gimple.h, and langhooks.h.
17787         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
17788         Add FIXME for why gimple.h is still included (should be unnecessary
17789         since GCC 4.5 gimplification unit-at-a-time).
17790         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
17791         * c-pragma.c: Add FIXME for why function.h needs to be included just
17792         for cfun, at front-end level.
17793         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
17794         Do not include ggc.h, but include vecprim.h for VEC(char).
17795         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
17796         Explain why target.h is included.
17797         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
17798         Explain why gimple.h is included.
17799         * c-ppoutput.c: Do not include tm.h.
17800         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
17801         * c-parses.c: Explain why rtl.h is included, and that this (and only
17802         this) is also why tm.h must be included.
17803         Do not include except.h.
17804         * c-lang.c: Do not include ggc.h.
17805
17806 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
17807
17808         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
17809
17810 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
17811
17812         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
17813         unions by default if those structs and unions have no tags.  Do
17814         not condition anonymous struct and unions handling on flag_iso.
17815         Allow anonymous structs and unions for C1X.
17816         (finish_struct): Do not diagnose lack of named fields when
17817         anonymous structs and unions present for C1X.  Accept flexible
17818         array members in structure with anonymous structs or unions but no
17819         directly named fields.
17820         * doc/extend.texi (Unnamed Fields): Update.
17821
17822 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
17823
17824         * gimple.h (compare_field_offset): Rename into...
17825         (gimple_compare_field_offset): ...this.
17826         * gimple.c (compare_field_offset): Rename into...
17827         (gimple_compare_field_offset): ...this.  Compare the full access if
17828         the offset is self-referential.
17829         (gimple_types_compatible_p): Adjust for above renaming.
17830         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
17831         DECL_NONADDRESSABLE_P flag of fields before merging them.
17832
17833 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
17834
17835         * tree.h (ctor_to_list): Delete.
17836         * tree.c (ctor_to_list): Delete.
17837
17838 2010-05-15  Jan Hubicka  <jh@suse.cz>
17839
17840         * ipa-reference.c: Include toplev.h
17841         (is_proper_for_analysis): Only add to all_module_statics
17842         if it is allocated.
17843         (write_node_summary_p, stream_out_bitmap,
17844         ipa_reference_write_optimization_summary,
17845         ipa_reference_read_optimization_summary): New.
17846         (struct ipa_opt_pass_d pass_ipa_reference): Add
17847         optimization summary streaming.
17848         * lto-cgraph.c (referenced_from_this_partition_p,
17849         reachable_from_this_partition_p): New functions.
17850         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
17851         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
17852         * opts.c (decode_options): Enable ipa_reference.
17853         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
17854         * lto-streamer.h (referenced_from_this_partition_p,
17855         reachable_from_this_partition_p): Declare.
17856
17857 2010-05-15  Richard Guenther  <rguenther@suse.de>
17858
17859         PR tree-optimization/44038
17860         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
17861         taking the address of a V_C_E of a constant.
17862
17863 2010-05-14  Jan Hubicka  <jh@suse.cz>
17864
17865         * tree.h (memory_identifier_string): Remove.
17866         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
17867         (ipa_reference_global_vars_info_d): Remove statics_not_read and
17868         statics_not_written.
17869         (ipa_reference_optimization_summary_d): New structure.
17870         (ipa_reference_optimization_summary_t): New type and vector.
17871         (ipa_reference_vars_info_d): Embedd structures instead of using
17872         pointers.
17873         (reference_vars_to_consider): Remove out of GGC space.
17874         (module_statics_escape): Remove.
17875         (global_info_obstack): Rename to ...
17876         (optimization_summary_obstack): ... this one.
17877         (initialization_status_t): Remove.
17878         (memory_identifier_string): Remove.
17879         (get_reference_vars_info): Fix indenting.
17880         (set_reference_vars_info): Likewise.
17881         (get_reference_optimization_summary): New.
17882         (set_reference_optimization_summary): New.
17883         (get_global_reference_vars_info): Remove.
17884         (ipa_reference_get_read_global): Remove.
17885         (ipa_reference_get_written_global): Remove.
17886         (ipa_reference_get_not_read_global): Update.
17887         (ipa_reference_get_not_written_global): Update.
17888         (is_proper_for_analysis): Outlaw addressable.
17889         (propagate_bits): Update for new datastructures.
17890         (analyze_variable): Remove.
17891         (init_function_info): Update for new datastructures.
17892         (clean_function_local_data): Remove.
17893         (clean_function): Remove.
17894         (copy_global_bitmap): Use optimizations_summary_obstack.
17895         (duplicate_node_data): Duplicate optimization summary only.
17896         (remove_node_data): Remove optimization summary only.
17897         (generate_summary): Do not analyze variables; do not compute
17898         module_statics_escape; do not prune solutions by it.
17899         (read_write_all_from_decl): Fix typos in comments.
17900         (propagate): Doscover readonly and nonaddressable first;
17901         update for new datastructures; share global bitmaps.
17902         * ipa-reference.h (ipa_reference_get_read_global,
17903         ipa_reference_get_written_global): Remove.
17904         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
17905         * Makefile.in: Remove ipa-refereference from GT files.
17906
17907 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17908
17909         PR debug/44112
17910         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
17911         for all SYMBOL_REF_DECLs.
17912
17913 2010-05-14  Jan Hubicka  <jh@suse.cz>
17914
17915         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
17916         (varpool_all_refs_explicit_p): New inline function.
17917         * ipa-reference.c: Update comment.
17918         (module_statics_written): Remove.
17919         (get_static_decl): Remove.
17920         (ipa_init): Do not initialize module_statics_written.
17921         (analyze_function): Likewise.
17922         (generate_summary): Likewise; do not compute module_statics_readonly
17923         and do not update variable flags.
17924         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
17925         * ipa.c: Inlucde flags.h
17926         (cgraph_local_node_p): New.
17927         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
17928         promote functions to local.
17929         (ipa_discover_readonly_nonaddressable_vars): New function.
17930         (function_and_variable_visibility): Use cgraph_local_node_p.
17931         * varpool.c (varpool_finalize_decl): Set force_output for
17932         DECL_PRESERVE_P vars.
17933
17934 2010-05-14  Jan Hubicka  <jh@suse.cz>
17935
17936         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
17937
17938 2010-05-14  Richard Guenther  <rguenther@suse.de>
17939
17940         PR tree-optimization/44119
17941         * tree-ssa-pre.c (eliminate): Properly mark replacement of
17942         a PHI node necessary.
17943
17944 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17945
17946         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
17947
17948 2010-05-14  Jason Merrill  <jason@redhat.com>
17949
17950         PR c++/44127
17951         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
17952         (gimple_call_set_nothrow): New.
17953         * gimple.c (gimple_build_call_from_tree): Call it.
17954         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
17955
17956         PR c++/44127
17957         * gimplify.c (gimplify_seq_add_stmt): No longer static.
17958         * gimple.h: Declare it.
17959         * gimple.c (gimple_build_eh_filter): No ops.
17960
17961 2010-05-14  Jan Hubicka  <jh@suse.cz>
17962
17963         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
17964         nodes already in queue.
17965         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
17966         re-enqueueing node.
17967
17968 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17969
17970         PR debug/44136
17971         * cfgexpand.c (expand_debug_expr): If non-memory op0
17972         has BLKmode, return NULL.
17973
17974 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
17975
17976         * config.gcc: Add support for --with-cpu option for bdver1.
17977         * config/i386/i386.h (TARGET_BDVER1): New macro.
17978         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
17979         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17980         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
17981         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17982         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
17983         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
17984         (processor_type): Add PROCESSOR_BDVER1.
17985         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
17986         processor_type in config/i386/i386.h.
17987         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
17988         movaps <reg, reg> instead of movapd <reg, reg> when replacing
17989         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
17990         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
17991         to emit packed xor instead of packed double/packed integer
17992         xor for SSE and AVX when moving a zero value.
17993         * config/i386/sse.md: Add check for
17994         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
17995         movapd/movdqa for SSE and AVX.
17996         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
17997         single logical operations i.e and, or and xor instead of packed double
17998         logical operations for SSE and AVX.
17999         * config/i386/i386-c.c (ix86_target_macros_internal):
18000         Add PROCESSOR_BDVER1.
18001         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
18002         (has_fma4, has_xop): New.
18003         * config/i386/i386.c (bdver1_cost): New variable.
18004         (m_BDVER1): New macro.
18005         (m_AMD_MULTIPLE): Add m_BDVER1.
18006         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
18007         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
18008         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
18009         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
18010         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
18011         x86_tune_sse_partial_reg_dependency,
18012         x86_tune_sse_unaligned_load_optimal,
18013         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
18014         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
18015         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
18016         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
18017         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
18018         Enable/disable for bdver1.
18019         (processor_target_table): Add bdver1_cost.
18020         (cpu_names): Add bdver1.
18021         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
18022          processor_alias_table.
18023         (ix86_expand_vector_move_misalign): Change.
18024         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
18025         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
18026         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
18027         of movupd/movdqu for SSE and AVX.
18028         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
18029         (ix86_tune_adjust_cost): Add code for bdver1.
18030         (standard_sse_constant_opcode): Add check for
18031         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
18032         of packed double xor for SSE and AVX.
18033
18034 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
18035
18036         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
18037         result to unsigned.
18038
18039 2010-05-14  Tristan Gingold  <gingold@adacore.com>
18040
18041         * toplev.c (default_debug_hooks): Remove this variable.
18042         (process_options): Remove assignments to default_debug_hooks.
18043
18044 2010-05-14  Martin Jambor  <mjambor@suse.cz>
18045
18046         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
18047         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
18048         * langhooks.h (struct lang_hooks_for_decls): Removed field
18049         fold_obj_type_ref.
18050         * tree.c (free_lang_data): Remove assignment to
18051         lang_hooks.fold_obj_type_ref.
18052         * tree.def (OBJ_TYPE_REF): Update comment.
18053
18054 2010-05-14  Richard Guenther  <rguenther@suse.de>
18055
18056         PR tree-optimization/44124
18057         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
18058
18059 2010-05-14  Alan Modra  <amodra@gmail.com>
18060
18061         PR target/44075
18062         * config/rs6000/rs6000.c (struct machine_function): Reorder
18063         fields for better packing.  Add lr_save_state.
18064         (rs6000_ra_ever_killed): Return lr_save_state if set.
18065         (rs6000_emit_eh_reg_restore): Set lr_save_state.
18066
18067 2010-05-13  Jan Hubicka  <jh@suse.cz>
18068
18069         * varpool.c (decide_is_variable_needed): Drop code checking
18070         TREE_SYMBOL_REFERENCED.
18071
18072 2010-05-13  Jan Hubicka  <jh@suse.cz>
18073
18074         * final.c (output_addr_const): Do not call mark_decl_referenced.
18075         * cgraphunit.c (process_function_and_variable_attributes): Use
18076         mark_needed_node dirrectly.
18077         (assemble_thunk): Do not call mark_decl_referenced.
18078
18079 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
18080
18081         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
18082
18083 2010-05-13  Jeff Law  <law@redhat.com>
18084
18085         * ira-conflicts.c (print_allocno_conflicts): New function broken out
18086         from...
18087         (print_conflicts): Call print_allocno_conflicts.
18088
18089 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18090
18091         PR debug/44104
18092         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
18093         if it is NULL.
18094
18095 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
18096
18097         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
18098         t-mingw-w64 or t-mingw-w32 for multilib configuration.
18099         * config/i386/t-mingw-w32: New.
18100         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
18101
18102 2010-05-13  Martin Jambor  <mjambor@suse.cz>
18103
18104         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
18105         gimple-fold.c).
18106         * gimple-fold.c (get_base_binfo_for_type): New function.
18107         (gimple_get_relevant_ref_binfo): Likewise.
18108         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18109         (gimple_fold_obj_type_ref): Likewise.
18110         (fold_gimple_call): Simplify condition for folding virtual calls
18111         and call gimple_fold_obj_type_ref.
18112         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
18113         (gimple_fold_obj_type_ref_known_binfo): Likewise.
18114
18115 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
18116
18117         * config/rs6000/rs6000-protos.h
18118         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
18119         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
18120         (rs6000_debug_mode_dependent_address)
18121         (rs6000_mode_dependent_address_ptr): Likewise.
18122
18123 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
18124
18125         PR debug/43983
18126         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
18127         by SRA.
18128         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
18129         * tree-sra.c (create_access_replacement): Call unshare_expr before
18130         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
18131         * dwarf2out.c: Include tree-flow.h.
18132         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
18133         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
18134         Handle DW_OP_bit_piece.
18135         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
18136         construct_piece_list, adjust_piece_list): New functions.
18137         (add_var_loc_to_decl): Handle SRA optimized variables.
18138         Adjust for var_loc_note to loc field renaming.
18139         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
18140         in VAR_LOCATION note.
18141         (new_loc_descr_op_bit_piece): New function.
18142         (dw_sra_loc_expr): New function.
18143         (dw_loc_list): Use it.  Don't handle the last range after the
18144         loop, handle it inside of the loop.  Adjust for var_loc_note
18145         to loc field renaming.
18146         (add_location_or_const_value_attribute): Only special case
18147         single entry loc lists if loc is NOTE_P.  Adjust for
18148         var_loc_note to loc field renaming.
18149         (dwarf2out_var_location): Don't set newloc->var_loc_note
18150         and newloc->next here.
18151
18152 2010-05-12  Jan Hubicka  <jh@suse.cz>
18153
18154         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
18155         flag.
18156         * cgraph.h (cgraph_only_called_directly_p,
18157         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
18158         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
18159         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
18160         (assemble
18161         * ipa.c (cgraph_remove_unreachable_nodes): Use
18162         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
18163         flags.
18164         * tree-inline.c (copy_bb): Check address_taken flag.
18165         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
18166         externally_visible flag.
18167
18168 2010-05-12  Jason Merrill  <jason@redhat.com>
18169
18170         PR bootstrap/44048
18171         PR target/44099
18172         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
18173         * sdbout.c (plain_type_1): Likewise.
18174         * dwarf2out.c (is_base_type): Likewise.
18175         (gen_type_die_with_usage): Likewise.  Generate
18176         DW_TAG_unspecified_type for any LANG_TYPE.
18177
18178 2010-05-12  Jan Hubicka  <jh@suse.cz>
18179
18180         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
18181         indrect edges too.
18182         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
18183         (cgraph_clone_edge): Update.
18184         (cgraph_node_remove_callees): Remove indirect calls too.
18185         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
18186         (cgraph_create_indirect_edge): Update prototype.
18187         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
18188         is_proper_for_analysis.
18189         (add_new_function, visited_nodes, function_insertion_hook_holder,
18190         get_local_reference_vars_info, mark_address_taken, mark_address,
18191         mark_load, mark_store, check_asm_memory_clobber, check_call,
18192         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
18193         (ipa_init): Do not initialize visited_nodes;
18194         function_insertion_hook_holder.
18195         (analyze_variable): Rewrite.
18196         (analyze_function): Rewrite.
18197         (copy_local_bitmap): Remove.
18198         (duplicate_node_dat): Do not duplicate local info.
18199         (generate_summary): Simplify to only walk cgraph.
18200         (write_node_summary_p, ipa_reference_write_summary,
18201         ipa_reference_read_summary): Remove.
18202         (propagate): Do not remove function insertion;
18203         generate summary.
18204         (pass_ipa_reference): NULLify summary handling fields.
18205         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
18206         (input_edge): Input ecf_flags.
18207         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
18208         (update_indirect_edges_after_inlining): Ignore edges with unknown
18209         param.
18210
18211 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
18212
18213         * implicit-zee.c: New file.
18214         * tree-pass.h (pass_implicit_zee): Declare.
18215         * passes.c (init_optimization_passes): Add zee pass.
18216         * common.opt (fzee): New flag.
18217         * timevar.def (TV_ZEE): Define.
18218         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
18219         and beyond.
18220         * Makefile.in (implicit-zee.o): Add new build file.
18221
18222 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18223             Nathan Froyd  <froydnj@codesourcery.com>
18224
18225         * c-common.c (sync_resolve_params): Remove write-only variable.
18226
18227 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
18228
18229         * target.h (struct gcc_target): Add mode_dependent_address_p field.
18230         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18231         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
18232         * targhooks.c (default_mode_dependent_address_p): New function.
18233         * targhooks.h (default_mode_dependent_address_p): Declare function.
18234         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
18235         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
18236         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
18237         target hook. Change return type to bool.
18238         * recog.h (mode_dependent_address_p): Change return type to bool.
18239
18240 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18241             Nathan Froyd  <froydnj@codesourcery.com>
18242
18243         * tree-mudflap.c (build_function_type_0, build_function_type_1,
18244         build_function_type_2, build_function_type_3): Remove.
18245         (mudflap_init): Use build_function_type_list.
18246
18247 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
18248             Nathan Froyd  <froydnj@codesourcery.com>
18249
18250         * coverage.c (build_fn_info_value): Call build_constructor instead of
18251         build_constructor_from_list.
18252         (build_ctr_info_value): Likewise.
18253         (build_gcov_info): Likewise.
18254
18255 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
18256
18257         * tree.c (build_constructor): Compute TREE_CONSTANT for the
18258         resultant constructor.
18259         (build_constructor_single): Don't set TREE_CONSTANT.
18260         (build_constructor_from_list): Don't compute TREE_CONSTANT.
18261
18262 2010-05-12  Jan Hubicka  <jh@suse.cz>
18263
18264         * cgraph.h (struct varpool_node): Add aux.
18265         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
18266         * varpool.c (varpool_remove_node): Do not remove initializer.
18267         (varpool_reset_queue): Export.
18268         (varpool_finalize_decl): Volatile vars are forced to be output.
18269         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
18270         replaced decl.
18271         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
18272         process_references, varpool_can_remove_if_no_refs): New functions.
18273         (cgraph_remove_unreachable_nodes): Handle variables too.
18274
18275 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
18276
18277         PR target/44088
18278         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
18279
18280 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
18281
18282         PR middle-end/44085
18283         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
18284         change value of ORT_TASK.
18285         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
18286         (omp_notice_threadprivate_variable): New function.
18287         (omp_notice_variable): Call it for threadprivate variables.
18288         If enclosing ctx is a task, print enclosing task rather than
18289         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
18290         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
18291         if task has untied clause.
18292
18293         PR debug/42278
18294         * dwarf2out.c (base_type_die): Don't add name attribute here.
18295         (modified_type_die): Instead of sizetype use
18296         its underlying original type.  If a DW_TAG_base_type doesn't
18297         have name added, add __unknown__.
18298         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
18299         always call force_type_die instead.
18300
18301 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
18302
18303         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
18304         for __stack_chk_guard.
18305
18306 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18307
18308         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
18309         don't call start_source_file debug hook here...
18310         (finish_options): ... but here, after outputting predefined and
18311         command line defines and undefs.
18312
18313         PR middle-end/44071
18314         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
18315         no fallthru edge.
18316         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
18317         optimizing away empty bb with no successors, move over its
18318         footer chain to fallthru predecessor.
18319         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
18320         (rtl_split_edge): For asm goto call patch_jump_insn even if
18321         splitting fallthru edge.
18322
18323         PR c++/44059
18324         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
18325         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
18326         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
18327         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
18328         on DW.ref.* decls.
18329
18330         PR c++/44062
18331         * c-parser.c (c_parser_expression): Mark LHS of a comma
18332         expression as read if it is a decl, handled component or
18333         COMPOUND_EXPR with that on the RHS.
18334         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
18335         if it is a decl or handled component.
18336
18337 2010-05-11  Jan Hubicka  <jh@suse.cz>
18338
18339         * lto-symtab.c (lto_symtab_free): New function.
18340         * lto-streamer.h (lto_symtab_free): Declare.
18341
18342 2010-05-11  Jan Hubicka  <jh@suse.cz>
18343
18344         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
18345         that if function is needed it is reachable.
18346         (lto_output_node): See if it the function is reachable or referenced.
18347         (output_cgraph): Update call of lto_output_node.
18348         * lto-streamer.h (reachable_from_other_partition_p): Declare.
18349
18350 2010-05-11  Jan Hubicka  <jh@suse.cz>
18351
18352         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
18353         Mark as used.
18354
18355 2010-05-11  Jan Hubicka  <jh@suse.cz>
18356
18357         PR tree-optimize/44063
18358         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
18359         queue.
18360         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
18361         limits.
18362         (estimate_function_body_sizes): Compute sizes even when disregarding.
18363
18364 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
18365
18366         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
18367
18368 2010-05-11  Jan Hubicka  <jh@suse.cz>
18369
18370         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
18371         into every boundary.
18372
18373 2010-05-11  Jan Hubicka  <jh@suse.cz>
18374
18375         * matrix-reorg.c (matrix_reorg): Rebuild edges.
18376
18377 2010-05-11  Jan Hubicka  <jh@suse.cz>
18378
18379         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
18380         lto_streamer_cache_delete): Put nodes into heap.
18381         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
18382         heap.
18383
18384 2010-05-11  Jan Hubicka  <jh@suse.cz>
18385
18386         * cgraphbuild.c (cgraph_rebuild_references): New.
18387         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
18388         out extern inlines.
18389         * cgraph.h (cgraph_rebuild_references): Declare.
18390         * tree-inline.c (tree_function_versioning): Use it.
18391         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
18392
18393 2010-05-11  Jan Hubicka  <jh@suse.cz>
18394
18395         * cgraph.c: Include ipa-utils.h
18396         (cgraph_create_virtual_clone): Update references.
18397         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
18398
18399 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18400
18401         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
18402         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
18403         cache size.
18404
18405 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18406
18407         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
18408
18409 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18410
18411         * gcc.c (execute): For -### don't quote arguments that
18412         contain just alphanumerics and _/-. characters.
18413         * doc/invoke.texi: Document that change for -###.
18414
18415         PR debug/44023
18416         * df-problems.c (struct dead_debug): Add to_rescan field.
18417         (dead_debug_init): Clear to_rescan field.
18418         (dead_debug_finish): Rescan all debug insns in to_rescan
18419         bitmap and free the bitmap.
18420         (dead_debug_insert_before): Instead of rescanning debug insns
18421         immediately queue their rescanning until dead_debug_finish.
18422         (df_note_bb_compute): After dead_debug_add do continue instead
18423         of break.
18424
18425 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
18426
18427         PR debug/44028
18428         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
18429         clear also INSN_REG_USE_LIST.
18430
18431 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18432
18433         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
18434
18435 2010-05-10  Jan Hubicka  <jh@suse.cz>
18436
18437         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
18438         commited change.
18439
18440 2010-05-10  Jan Hubicka  <jh@suse.cz>
18441
18442         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
18443         Allocate encoders.
18444         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
18445         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
18446         (lto_streamer_cache_create): Init alloc pool.
18447         (lto_streamer_cache_delete): Free alloc pool.
18448         * lto-streamer.h: Include alloc pool.
18449         (lto_streamer_cache_d): Use alloc pool.
18450         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
18451
18452 2010-05-10  Jan Hubicka  <jh@suse.cz>
18453
18454         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
18455         * cgraphbuild.c: Include except.h
18456         (record_type_list, record_eh_tables): New function.
18457         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
18458
18459 2010-05-10  Jan Hubicka  <jh@suse.cz>
18460
18461         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
18462         __frame_dummy_init_array_entry, force_to_data): Attribute as used
18463         rather than unused.
18464
18465 2010-05-10  Michael Matz  <matz@suse.de>
18466
18467         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
18468         (can_reassociate_p): Use FLOAT_TYPE_P.
18469         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
18470         (vect_force_simple_reduction): ... this.
18471         * tree-parloops.c (gather_scalar_reductions): Use
18472         vect_force_simple_reduction.
18473         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
18474         vect_is_simple_reduction, add modify argument, if true rewrite
18475         "a-b" into "a+(-b)".
18476         (vect_is_simple_reduction, vect_force_simple_reduction): New
18477         functions.
18478         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
18479
18480 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
18481             Vladimir Makarov  <vmakarov@redhat.com>
18482
18483         PR rtl-optimization/44012
18484         * ira-build.c (remove_unnecessary_allocnos): Nullify
18485         regno_allocno_map of the removed allocno.
18486
18487 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18488
18489         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
18490         to /dev/null.
18491         * configure: Regenerate.
18492
18493 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18494
18495         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
18496         unused.
18497         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
18498         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
18499         support in Sun ld.
18500         * configure: Regenerate.
18501
18502 2010-05-10  Richard Guenther  <rguenther@suse.de>
18503
18504         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
18505         marked if the entry identifier is marked.
18506
18507 2010-05-10  Richard Guenther  <rguenther@suse.de>
18508
18509         * c-common.c (struct c_common_attributes): Add fnspec attribute.
18510         (handle_fnspec_attribute): New function.
18511         * gimple.h (gimple_call_return_flags): Declare.
18512         (gimple_call_arg_flags): Likewise.
18513         * gimple.c (gimple_call_arg_flags): New function.
18514         (gimple_call_return_flags): Likewise.
18515         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
18516         New argument flags.
18517         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
18518         return value flags.
18519         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
18520         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
18521         main work to ...
18522         (make_heapvar_for): ... this new function.
18523         (handle_rhs_call): Handle fnspec attribute argument specifiers.
18524         (handle_lhs_call): Likewise.
18525         (find_func_aliases): Adjust.
18526
18527 2010-05-10  Richard Guenther  <rguenther@suse.de>
18528
18529         PR tree-optimization/44050
18530         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
18531
18532 2010-05-10  Wei Guozhi  <carrot@google.com>
18533
18534         PR target/42879
18535         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
18536
18537 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18538
18539         PR c/10676
18540         * c-typeck.c (lookup_field): Take a type directly.  Update
18541         recursive calls.
18542         (build_component_ref): Update call to lookup_field.
18543         (set_init_label): Use lookup_field to find initialized field.
18544         Handle returned list of fields like a sequence of designators.
18545
18546 2010-05-09  Richard Guenther  <rguenther@suse.de>
18547
18548         PR middle-end/44024
18549         * fold-const.c (tree_single_nonzero_warnv_p): Properly
18550         handle &FUNCTION_DECL.
18551
18552 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18553
18554         PR c/4784
18555         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
18556         structures and unions recursively.
18557         (detect_field_duplicates): Move duplicate detection with a hash to
18558         detect_field_duplicates_hash.  Always use a hash if anonymous
18559         structures or unions are present.
18560         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
18561         give errors.
18562
18563 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
18564
18565         PR target/44046
18566         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
18567         detect Atom, Core 2 and Core i7.
18568
18569 2010-05-09  Richard Guenther  <rguenther@suse.de>
18570
18571         * gcc.c (store_arg): Handle temporary file deletion for
18572         joined arguments.
18573
18574 2010-05-09  Richard Guenther  <rguenther@suse.de>
18575
18576         PR middle-end/44043
18577         * ipa-inline.c (estimate_function_body_sizes): Return after
18578         disregarding inline limits.
18579
18580 2010-05-09  Richard Guenther  <rguenther@suse.de>
18581
18582         * gcc.c (store_arg): Revert last change.
18583
18584 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
18585
18586         PR middle-end/28685
18587         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
18588         (optimize_ops_list): Call it.
18589
18590 2010-05-08  Richard Guenther  <rguenther@suse.de>
18591
18592         PR tree-optimization/44030
18593         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
18594         NECESSARY flag if we propagate from a inserted expression.
18595
18596 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18597
18598         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
18599         domain types as equal if they are both PLACEHOLDER_EXPRs.
18600
18601 2010-05-08  Richard Guenther  <rguenther@suse.de>
18602
18603         * lto-wrapper.c (run_gcc): Remove linker output from
18604         command line for LTRANS invocation.
18605
18606 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18607
18608         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
18609         lto-macho as lto_binary_reader.
18610         * target.h (struct gcc_target): New hooks lto_start and lto_end.
18611         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
18612         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
18613         in lto_start and lto_end calls.
18614         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
18615         magic numbers.
18616         (scan_prog_file): Update is_elf_or_coff call.
18617         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
18618
18619         * collect2.c (main): Fix enum comparison.
18620
18621         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
18622         Add prototypes.
18623         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
18624         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
18625         and TARGET_ASM_LTO_END.
18626         * darwin.c: Include obstack.h and lto-streamer.h.
18627         (lto_section_names_offset, lto_section_names_obstack,
18628         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
18629         global variables.
18630         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
18631         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
18632         to a temporary file.
18633         (darwin_asm_lto_end): New function.  Restore asm_out_file.
18634         (darwin_asm_named_section): For LTO sections, replace the name with
18635         the offset of the section name in a string table, and build this
18636         table.
18637         (darwin_file_start): Initialize global vars for LTO support.
18638         (darwin_file_end): If output to asm_out_file was redirected, append it
18639         to the proper asm_out_file here.  Add the section names section.
18640
18641 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18642
18643         * c-pragma.c (pending_weak_d, pending_weak): New.
18644         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
18645         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
18646         handle_pragma_weak): Update the uses of pending_weaks.
18647
18648 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18649
18650         PR documentation/44016
18651         * doc/standards.texi (Standards): Link to unversioned
18652         cxx0x_status.html page.
18653
18654 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
18655
18656         PR target/43708
18657         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
18658         in addition to TREE_USED, to avoid "set but unused" warnings.
18659
18660 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18661
18662         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
18663         (is_loop_prefetching_profitable): Do not insert prefetches
18664         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
18665         times the prefetch ahead distance.
18666
18667 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18668
18669         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
18670         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
18671         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
18672         the unroll_factor.
18673
18674 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18675
18676         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
18677         a diagnostic info when the insn-to-mem ratio is too small.
18678
18679 2010-05-07  Richard Guenther  <rguenther@suse.de>
18680
18681         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
18682         the linker plugin.
18683         (store_arg): Queue temp_filename for deletion instead of
18684         the whole argument.
18685
18686 2010-05-07  Richard Guenther  <rguenther@suse.de>
18687
18688         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
18689         (run_gcc): Handle LTRANS phase invocation.
18690         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
18691
18692 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
18693
18694         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
18695         this is also meaningful on PARM_DECLs and RESULT_DECLs.
18696
18697 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18698
18699         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
18700
18701 2010-05-07  Richard Guenther  <rguenther@suse.de>
18702
18703         PR tree-optimization/44020
18704         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
18705         code when PRE is not yet initialized.
18706
18707 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18708
18709         * config/mips/dbxmdebug.h: Remove.
18710         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
18711
18712 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
18713
18714         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
18715         with null pointer and also warn about ordered comparison of zero with
18716         pointer if -Wextra.
18717
18718 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18719
18720         * graphite-blocking.c
18721         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
18722         * graphite-clast-to-gimple.c
18723         (clast_to_gcc_expression): Same.
18724         (precision_for_value): Same.
18725         (precision_for_interval): Same.
18726         (gcc_type_for_interval): Same.
18727         (graphite_create_new_guard): Same.
18728         (compute_bounds_for_level): Same.
18729         (graphite_create_new_loop_guard): Same.
18730         * graphite-interchange.c
18731         (build_linearized_memory_access): Same.
18732         (pdr_stride_in_loop): Same.
18733         (memory_strides_in_loop_1): Same.
18734         (memory_strides_in_loop): Same.
18735         (extend_scattering): Same.
18736         (psct_scattering_dim_for_loop_depth): Same.
18737         (pbb_number_of_iterations): Same.
18738         * graphite-poly.h
18739         (debug_iteration_domains): Same.
18740         * graphite-ppl.c
18741         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
18742         (ppl_set_inhomogeneous_gmp): Same.
18743         (ppl_strip_loop): Same.
18744         (ppl_lexico_compare_linear_expressions): Same.
18745         (ppl_read_polyhedron_matrix): Same.
18746         (ppl_max_for_le_pointset): Same.
18747         * graphite-ppl.h
18748         (ppl_read_polyhedron_matrix): Same.
18749         (tree_int_to_gmp): Same.
18750         (gmp_cst_to_tree): Same.
18751         (ppl_set_inhomogeneous): Same.
18752         (ppl_set_inhomogeneous_tree): Same.
18753         (ppl_set_coef): Same.
18754         (ppl_set_coef_tree): Same.
18755         * graphite-sese-to-poly.c
18756         (build_pbb_scattering_polyhedrons): Same.
18757         (build_scop_scattering): Same.
18758         (scan_tree_for_params_right_scev): Same.
18759         (scan_tree_for_params): Same.
18760         (find_params_in_bb): Same.
18761         (find_scop_parameters): Same.
18762         (add_upper_bounds_from_estimated_nit): Same.
18763         (build_loop_iteration_domains): Same.
18764         (add_condition_to_domain): Same.
18765         (pdr_add_memory_accesses): Same.
18766
18767 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18768
18769         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
18770         CLooG's value_* macros to their respective mpz_* counterparts.
18771         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
18772         (graphite_create_new_loop_guard): Same.
18773         * graphite-interchange.c (build_linearized_memory_access): Same.
18774         (pdr_stride_in_loop): Same.
18775         (memory_strides_in_loop_1): Same.
18776         (1st_interchange_profitable_p): Same.
18777         * graphite-poly.c (extend_scattering): Same.
18778         (psct_scattering_dim_for_loop_depth): Same.
18779         (pbb_number_of_iterations): Same.
18780         (pbb_number_of_iterations_at_time): Same.
18781         * graphite-poly.h (new_1st_loop): Same.
18782         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
18783         (oppose_constraint): Same.
18784         (insert_constraint_into_matrix): Same.
18785         (ppl_set_inhomogeneous_gmp): Same.
18786         (ppl_set_coef_gmp): Same.
18787         (ppl_strip_loop): Same.
18788         (ppl_lexico_compare_linear_expressions): Same.
18789         (ppl_max_for_le_pointset): Same.
18790         (ppl_min_for_le_pointset): Same.
18791         (ppl_build_realtion): Same.
18792         * graphite-ppl.h (gmp_cst_to_tree): Same.
18793         (ppl_set_inhomogeneous): Same.
18794         (ppl_set_inhomogeneous_tree): Same.
18795         (ppl_set_coef): Same.
18796         (ppl_set_coef_tree): Same.
18797         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
18798         (build_scop_scattering): Same.
18799         (add_value_to_dim): Same.
18800         (scan_tree_for_params_right_scev): Same.
18801         (scan_tree_for_params_int): Same.
18802         (scan_tree_for_params): Same.
18803         (find_params_in_bb): Same.
18804         (find_scop_parameters): Same.
18805         (add_upper_bounds_from_estimated_nit): Same.
18806         (build_loop_iteration_domains): Same.
18807         (create_linear_expr_from_tree): Same.
18808         (add_condition_to_domain): Same.
18809         (pdr_add_memory_accesses): Same.
18810
18811 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
18812             Jason Merrill  <jason@redhat.com>
18813
18814         * c-common.c (c_common_reswords): Add nullptr.
18815         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
18816         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
18817         (gen_type_die_with_usage): Likewise.
18818         * dbxout.c (dbxout_type): Likewise.
18819         * sdbout.c (plain_type_1): Likewise.
18820
18821 2010-05-06  Jason Merrill  <jason@redhat.com>
18822
18823         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
18824         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
18825         ret appropriately.
18826         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
18827
18828         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
18829         stripping WITH_SIZE_EXPR.
18830         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
18831         change.
18832
18833 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18834
18835         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
18836         list of obsolete configurations.
18837         Disabled check for obsolete configurations.
18838         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
18839         Removed support for previous versions.
18840         * config/mips/iris.h: Removed.
18841         * config/mips/iris5.h: Removed.
18842         * config/mips/iris6.h: Merged old iris.h contents.
18843         (TARGET_IRIX): Removed.
18844         (DRIVER_SELF_SPECS): Removed mabi=32.
18845         (IDENT_ASM_OP): Removed undef.
18846         (STARTFILE_SPEC): Removed mabi=32.
18847         (ENDFILE_SPEC): Likewise.
18848         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
18849         (MACHINE_TYPE): Update for IRIX 6.5.
18850         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
18851         TARGET_IRIX by TARGET_IRIX6.
18852         (mips_file_start): Likewise.
18853         (mips_output_external): Remove IRIX 5/6 O32 support.
18854         (mips_output_function_prologue): Likewise.
18855         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
18856         TARGET_IRIX6.
18857         (TARGET_CPU_CPP_BUILTINS): Likewise.
18858         (TARGET_IRIX): Removed.
18859         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
18860         (MULTILIB_DIRNAMES): Removed 32.
18861         (MULTILIB_OSDIRNAMES): Removed ../lib.
18862         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
18863         (Specific, mips-sgi-irix5): Document removal.
18864         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
18865         Remove references to older IRIX 6 releases and the O32 ABI.
18866
18867 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
18868
18869         PR bootstrap/43994
18870         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
18871         instead of DF_REF_REAL_REG.
18872
18873 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
18874
18875         PR target/43888
18876         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
18877         handling to still return true for x64 targets.
18878
18879 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18880
18881         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
18882
18883 2010-05-06  Jan Hubicka  <jh@suse.cz>
18884
18885         PR tree-optimization/43791
18886         * ipa-inline.c (update_caller_keys): Remove bogus
18887         disregard_inline_limits check.
18888
18889 2010-05-06  Michael Matz  <matz@suse.de>
18890
18891         PR tree-optimization/43984
18892         * tree-ssa-pre.c (inserted_phi_names): Remove.
18893         (inserted_exprs): Change to bitmap.
18894         (create_expression_by_pieces): Set bits, don't append to vector.
18895         (insert_into_preds_of_block): Don't handle inserted_phi_names.
18896         (eliminate): Don't look at inserted_phi_names, remove deleted
18897         insns from inserted_exprs.
18898         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
18899         (init_pre, fini_pre): Allocate and free bitmaps.
18900         (execute_pre): Insert insns on edges before elimination.
18901
18902 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18903
18904         * tree.c (initializer_zerop): Handle STRING_CST.
18905
18906 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18907
18908         PR 40989
18909         * doc/invoke.texi (Wimplicit): Document as C only.
18910         * opts.c (common_handle_option): Add argument kind.
18911         (handle_option): Rename as read_cmdline_option. Factor out code to...
18912         (handle_option): ... here. New.
18913         (handle_options): Rename as read_cmdline_options.
18914         (decode_options): Update call.
18915         (set_option): Use option index instead of option pointer. Classify
18916         diagnostics correctly.
18917         (enable_warning_as_error): Call handle_option.
18918         * opts.h (set_option): Update declaration.
18919         (handle_option): Declare.
18920         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
18921         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
18922         * c-opts.c (set_Wimplicit): Delete.
18923         (c_family_lang_mask): New static constant.
18924         (c_common_handle_option): Add argument kind. Use handle_option
18925         instead of set_Wimplicit.
18926         (c_common_post_options): warn_implicit and warn_implicit_int
18927         are disabled by default.
18928         * c-common.c (warn_implicit): Do not define here.
18929         * c-common.h (warn_implicit): Do not declare here.
18930         (c_common_handle_option): Update declaration.
18931         * lto-opts.c (lto_reissue_options): Update call to set_option.
18932
18933 2010-05-06  Richard Guenther  <rguenther@suse.de>
18934
18935         PR tree-optimization/43571
18936         * domwalk.c (walk_dominator_tree): Walk the dominator
18937         sons in more optimal order.
18938
18939 2010-05-06  Richard Guenther  <rguenther@suse.de>
18940
18941         PR tree-optimization/43934
18942         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
18943         (stmt_cost): Likewise.
18944         (extract_true_false_args_from_phi): New helper.
18945         (determine_max_movement): For PHI nodes verify we can hoist them
18946         and compute their cost.
18947         (determine_invariantness_stmt): Handle PHI nodes.
18948         (move_computations_stmt): Likewise.  Hoist PHI nodes in
18949         if-converted form using COND_EXPRs.
18950         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
18951         (tree_ssa_lim): Likewise.
18952         * tree-flow.h (tree_ssa_lim): Adjust prototype.
18953         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
18954
18955 2010-05-06  Richard Guenther  <rguenther@suse.de>
18956
18957         PR tree-optimization/43987
18958         * tree-ssa-structalias.c (could_have_pointers): For possibly
18959         address-taken variables force pointers to be recorded.
18960         (create_variable_info_for_1): Likewise.
18961         (push_fields_onto_fieldstack): Pass in wheter all fields
18962         must have pointers.
18963         (find_func_aliases): Query types instead of vars whether
18964         they contain pointers where appropriate.
18965
18966 2010-05-06  Jan Hubicka  <jh@suse.cz>
18967
18968         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
18969         (record_reference, mark_address, mark_load, mark_store): Record
18970         references.
18971         (record_references_in_initializer): Update call of record_references.
18972         (rebuild_cgraph_edges): Remove all references before rebuiding.
18973         * cgraph.c (cgraph_create_node): Clear ref list.
18974         (cgraph_remove_node): Remove references.
18975         (dump_cgraph_node): Dump references.
18976         (cgraph_clone_node): Clone references.
18977         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
18978         (struct cgraph_node, varpool_node): Add ref_lst.
18979         * ipa-ref.c: New file.
18980         * ipa-ref.h: New file.
18981         * ipa-ref-inline.h: New file.
18982         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
18983         (referenced_from_other_partition_p): New function.
18984         (lto_output_varpool_node): Take set arugment; call
18985         referenced_from_other_partition.
18986         (lto_output_ref): New.
18987         (add_references): New.
18988         (output_refs): New.
18989         (output_cgraph): Compute boundary based on references; output refs.
18990         (output_varpool): Accept cgraph_node_set argument.
18991         (input_ref): New.
18992         (input_refs): New.
18993         (input_cgraph): Call input_refs.
18994         * lto-section-in.c (lto_section_name): Add refs.
18995         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
18996         (ipa-ref.o): New file.
18997         * varpool.c (varpool_node): Clear ipa ref list.
18998         (varpool_remove_node): Remove references.
18999         (dump_varpool_node): Dump references.
19000         (varpool_assemble_decl): Only compile finalized ones.
19001         (varpool_extra_name_alias): Initialize ref list.
19002         * lto-streamer.c (lto-get_section_name): Add .refs section.
19003         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
19004         (referenced_from_other_partition_p): Declared.
19005
19006 2010-05-06  Ira Rosen  <irar@il.ibm.com>
19007
19008         PR tree-optimization/43901
19009         * tree-vect-stmts.c (vectorizable_call): Assert that vector
19010         type is not NULL if it's transformation phase, and return
19011         FALSE if it's analysis.
19012         (vectorizable_conversion, vectorizable_operation,
19013         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
19014
19015 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
19016
19017         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19018         Delete.
19019         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
19020         New define.
19021         * config/mips/mips-protos.h
19022         (mips_small_register_classes_for_mode_p): Delete prototype.
19023
19024 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
19025
19026         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
19027         * config/arm/arm.c (multiple_operation_profitable_p,
19028         compute_offset_order): New static functions.
19029         (load_multiple_sequence, store_multiple_sequence): Use them.
19030         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
19031         memory offsets, not register numbers.
19032         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
19033
19034 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
19035
19036         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
19037         (get_pending_sizes, put_pending_size, put_pending_sizes):
19038         Update the uses of pending_sizes.
19039         * c-decl.c (store_parm_decls): Likewise.
19040         * c-tree.h (struct c_arg_info): Likewise.
19041         * tree.h: Update the prototype for get_pending_sizes and
19042         put_pending_sizes.
19043
19044 2010-05-05  Jason Merrill  <jason@redhat.com>
19045
19046         PR debug/43370
19047         * c-common.c (handle_aligned_attribute): Respect
19048         ATTR_FLAG_TYPE_IN_PLACE.
19049
19050         PR testsuite/43758
19051         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
19052         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19053         (TARGET_INITIALIZER): Use it.
19054         * c-common.c (attribute_takes_identifier_p): Call it.
19055         * c-common.h: Update prototype.
19056         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
19057         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
19058
19059 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19060
19061         PR debug/43950
19062         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
19063         DW_ID_down_case for Fortran compilation units.
19064
19065 2010-05-05  Jan Hubicka  <jh@suse.cz>
19066
19067         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
19068         handle aliases.
19069
19070 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
19071
19072         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
19073         a variable-sized RESULT_DECL.
19074
19075 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
19076
19077         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
19078
19079 2010-05-05  Jason Merrill  <jason@redhat.com>
19080
19081         PR c++/43787
19082         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
19083         returns GS_OK.
19084         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
19085
19086 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
19087             Jakub Jelinek  <jakub@redhat.com>
19088
19089         PR debug/43478
19090         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
19091         (dead_debug_init, dead_debug_finish): New functions.
19092         (dead_debug_add, dead_debug_insert_before): Likewise.
19093         (df_note_bb_compute): Initialize a dead_debug object, add dead
19094         debug uses to it, insert debug bind insns before death insns,
19095         reset debug insns that refer to pending uses at the end.
19096         * rtl.h (make_debug_expr_from_rtl): New prototype.
19097         * varasm.c (make_debug_expr_from_rtl): New function.
19098
19099 2010-05-05  Jan Hubicka  <jh@suse.cz>
19100
19101         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
19102         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
19103         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
19104         lto_varpool_encoder_deref, lto_varpool_encoder_size,
19105         lto_varpool_encoder_encode_initializer_p,
19106         lto_set_varpool_encoder_encode_initializer): New functions.
19107         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
19108         call output_varpool.
19109         (input_varpool_node): Do not always set analyzed.
19110         (input_cgraph_1): Return vector of cgraph nodes.
19111         (input_varpool_1): Return vector of varpools.
19112         (input_cgraph): Free the vectors.
19113         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
19114         output only initializers needed.
19115         (lto_output): Only call output_cgraph.
19116         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
19117         * lto-section-out.c (lto_new_out_decl_state): Initialize
19118         state->varpool_node_encoder.
19119         * lto-streamer.h (lto_varpool_encoder_d): New.
19120         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
19121         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
19122         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
19123         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
19124         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
19125         Declare.
19126         (output_varpool, input_varpool): Remove declarations.
19127
19128 2010-05-05  Jan Hubicka  <jh@suse.cz>
19129
19130         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
19131         with body can prevail.
19132
19133 2010-05-05  Jan Hubicka  <jh@suse.cz>
19134
19135         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
19136         size.
19137
19138 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19139
19140         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
19141
19142         * gengtype.h (erro_at_line): Constify pos argument.
19143
19144         * gengtype.c: Include hashtab.h.
19145         (enum gc_used): Document GC_MAYBE_POINTED_TO.
19146         (error_at_line): Constify pos argument.
19147         (do_typedef): Initialize p->opt field.
19148         (get_file_gtfilename): Fix comment typo.
19149         (struct walk_type_data): Constify line field.
19150         (get_output_file_for_structure): New function.
19151         (write_local_func_for_structure): Constify orig_s argument.
19152         Use get_output_file_for_structure.
19153         (write_func_for_structure): Use get_output_file_for_structure.
19154         (INDENT): New define.
19155         (dump_pair, dump_type, dump_type_list, dump_typekind)
19156         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
19157         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
19158         functions.
19159         (seen_types): New variable.
19160         (main): New variable do_dump.  Process "-d" command line option.
19161         Call dump_everything if dump requested.
19162
19163 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
19164
19165         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
19166         in a temporary instead of invoking the macro multiple times.
19167         (track_expr_p): Likewise.
19168
19169 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
19170
19171         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
19172         per new semantics.
19173         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
19174         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
19175         conditions for printing notes.
19176         * common.opt (-Wcoverage-mismatch): Allow negative, default to
19177         true, update documentation.
19178         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
19179
19180 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
19181
19182         PR c/43981
19183         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
19184         on dimen.
19185
19186 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19187
19188         PR target/43799
19189         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
19190         (*sse_prologue_save_insn1): Likewise.
19191         (SSE prologue save splitter): Likewise.
19192
19193 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
19194
19195         * tree.c (free_lang_data_in_one_sizepos): New inline function.
19196         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
19197         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
19198         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
19199         all decls.  Call it on DECL_FIELD_OFFSET of fields.
19200         (find_decls_types_r): Follow DECL_VALUE_EXPR.
19201         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
19202
19203 2010-05-04  Martin Jambor  <mjambor@suse.cz>
19204
19205         * tree-sra.c (build_access_from_expr_1): The first parameter type
19206         changed to simple tree.
19207         (build_access_from_expr): Likewise, gsi parameter was eliminated.
19208         (scan_assign_result): Renamed to assignment_mod_result, enum elements
19209         renamed as well.
19210         (build_accesses_from_assign): Removed all parameters except for a
19211         simple gimple statement.  Now returns a simple bool.
19212         (scan_function): All non-analysis parts moved to separate functions
19213         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
19214         parameters and updated both callers.
19215         (sra_modify_expr): Removed parameter data.
19216         (sra_modify_function_body): New function.
19217         (perform_intra_sra): Call sra_modify_function_body to modify the
19218         function body.
19219         (replace_removed_params_ssa_names): Parameter data changed into
19220         adjustments vector.
19221         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
19222         changed the parameter dont_convert to convert with the opposite
19223         meaning.
19224         (sra_ipa_modify_assign): Parameter data changed into adjustments
19225         vector, return value changed to bool.
19226         (ipa_sra_modify_function_body): New function.
19227         (sra_ipa_reset_debug_stmts): Updated a comment.
19228         (modify_function): Use ipa_sra_modify_function_body to modify function
19229         body.
19230
19231 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
19232
19233         PR middle-end/43671
19234         * alias.c (true_dependence): Handle the same VALUE in x and mem.
19235         (canon_true_dependence): Likewise.
19236         (write_dependence_p): Likewise.
19237
19238 2010-05-04  Jan Hubicka  <jh@suse.cz>
19239
19240         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
19241         * cgraphbuild.c: Include ipa-utils.h
19242         (record_reference_ctx): New struct.
19243         (record_reference): Simplify to work on initializers; not statements.
19244         (mark_address, mark_load, mark_store): New.
19245         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19246         walk PHI nodes too.
19247         (record_references_in_initializer): Update use of record_reference.
19248         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
19249         walk PHI nodes too.
19250
19251 2010-05-04  Jan Hubicka  <jh@suse.cz>
19252
19253         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
19254         node will be removed anyway.
19255         (lto_varpool_replace_node): Allow also unanalyzed nodes;
19256         relink aliases of node into prevailing node.
19257         * varpool.c (varpool_remove_node): Remove aliases properly;
19258         when removing node, remove all its aliases too; remove DECL_INITIAL
19259         of removed node; ggc_free the varpool node.
19260
19261 2010-05-04  Richard Guenther  <rguenther@suse.de>
19262
19263         PR tree-optimization/43879
19264         * tree-ssa-structalias.c (alias_get_name): Use
19265         DECL_ASSEMBLER_NAME if available.
19266         (create_function_info_for): Return the varinfo node.
19267         (ipa_pta_execute): Associate same-body aliases and extra names
19268         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
19269
19270 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
19271
19272         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
19273
19274 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
19275
19276         PR bootstrap/43964
19277         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
19278         only if HONOR_REG_ALLOC_ORDER is not defined.
19279
19280 2010-05-04  Richard Guenther  <rguenther@suse.de>
19281
19282         PR tree-optimization/43949
19283         * tree-vrp.c (extract_range_from_binary_expr): Only handle
19284         TRUNC_MOD_EXPR.
19285
19286 2010-04-26  Jason Merrill  <jason@redhat.com>
19287
19288         * c.opt (-fstrict-enums): New.
19289         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
19290
19291 2010-05-03  David Ung  <davidu@mips.com>
19292             James E. Wilson  <wilson@codesourcery.com>
19293
19294         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
19295         emit the trap instruction before the divide for TUNE_74K.
19296
19297 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
19298
19299         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
19300         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
19301         based on the above, for new target hook.
19302
19303         * hooks.c (hook_bool_mode_true): New generic hook.
19304         * hooks.h (hook_bool_mode_true): Add prototype.
19305
19306         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
19307         target hook.
19308         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
19309         target hook, set to hook_bool_mode_false.
19310         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
19311         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
19312         with targetm.small_register_classes_for_mode_p.
19313         (find_reusable_reload): Likewise.
19314         (combine_reloads): Likewise.
19315         * reload1.c (reload_as_needed): Likewise.
19316         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
19317         * ifcvt.c (noce_process_if_block, check_cond_move_block,
19318         dead_or_predicable): Likewise.
19319         * regmove.c (optimize_reg_copy_1): Likewise.
19320         * calls.c (prepare_call_address): Likewise.
19321         (precompute_register_parameters): Likewise.
19322
19323         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
19324         hook definition.
19325         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
19326         implementation of the hook that considers all register classes
19327         small except for SH64.
19328         (sh_override_options): Use the new hook.
19329         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
19330         Add prototype.
19331
19332         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
19333         hook definition.
19334         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
19335         implementation of the hook that considers all register classes
19336         small for THUMB1.
19337         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
19338         Add prototype.
19339
19340         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
19341         hook definition.
19342         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
19343         implementation of the hook that considers all register classes
19344         small for MIPS16.
19345         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
19346         Add prototype.
19347
19348         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
19349         hook definition.
19350         * config/m32c/m32c.h: Likewise.
19351         * config/pdp11/pdp11.h: Likewise.
19352         * config/avr/avr.h: Likewise.
19353         * config/xtensa/xtensa.h: Likewise.
19354         * config/m68hc11/m68hc11.h: Likewise.
19355         * config/mn10300/mn10300.h: Likewise.
19356         * config/mcore/mcore.h: Likewise.
19357         * config/h8300/h8300.h: Likewise.
19358         * config/bfin/bfin.h: Likewise.
19359
19360         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
19361         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
19362
19363 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
19364
19365         * double-int.h (tree_to_double_int): Remove macro.
19366         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
19367         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19368         (tree_to_double_int): New function.
19369         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
19370         Move ...
19371         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19372
19373 2010-05-03  Richard Guenther  <rguenther@suse.de>
19374
19375         PR tree-optimization/43971
19376         * tree-ssa-structalias.c (get_constraint_for_1): Fix
19377         constraints in the !flag_delete_null_pointer_checks case.
19378
19379 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
19380
19381         PR debug/43972
19382         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
19383         result mode matches original rtl mode.
19384
19385 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
19386
19387         PR target/43888
19388         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
19389
19390 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19391
19392         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
19393         when processing flag options.
19394
19395 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19396
19397         * gcov-iov.c (main): Change format string placeholder
19398         from %#08x to 0x%08x.
19399         * genchecksum.c (dosum): Change format string placeholder
19400         from %#02x to 0x%02x.
19401
19402 2010-05-02  Richard Guenther  <rguenther@suse.de>
19403
19404         PR tree-optimization/43879
19405         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
19406
19407 2010-05-02  Bruno Haible  <bruno@clisp.org>
19408
19409         * doc/extend.texi (Function Attributes): Fix a typo.
19410
19411 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19412
19413         Revert:
19414         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
19415         placeholder from 0x%x to %#x.
19416         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19417         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19418         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19419         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19420         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19421         * config/i386/i386.c (ix86_target_string): Ditto.
19422         * config/i386/i386.c (output_pic_addr_const): Ditto.
19423         (print_operand): Ditto.
19424
19425 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19426
19427         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
19428         placeholder from 0x%x to %#x.
19429         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
19430         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
19431         (ASM_OUTPUT_DEBUG_DATA): Ditto.
19432         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
19433         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
19434         * optc-gen.awk: Ditto.
19435         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
19436         (HOST_WIDE_INT_PRINT_HEX): Ditto.
19437         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
19438         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19439
19440 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19441
19442         * target.h (struct calls): Add function_value_regno_p field.
19443         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
19444         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
19445         * targhooks.c (default_function_value_regno_p): New function.
19446         * targhooks.h (default_function_value_regno_p): Declare function.
19447         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
19448         * builtins.c. (apply_result_size): (Ditto.).
19449         * combine.c. (likely_spilled_retval_p): (Ditto.).
19450         * mode-switching.c. Include 'target.h'.
19451         (create_pre_exit): Use function_value_regno_p hook.
19452         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
19453         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
19454         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
19455
19456         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
19457         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
19458         (ix86_function_value_regno_p): Declare as static, change argument
19459         type to const unsigned int.
19460         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
19461
19462 2010-05-01  Richard Guenther  <rguenther@suse.de>
19463
19464         PR tree-optimization/43949
19465         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
19466         types.
19467         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
19468
19469 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19470
19471         * rtl.h (CONST_DOUBLE_P): Define.
19472         (rtx_to_double_int): Declare.
19473         * emit-rtl.c (rtx_to_double_int): New function.
19474         * dwarf2out.c (insert_double): New function.
19475         (loc_descriptor, add_const_value_attribute): Clean up, use
19476         rtx_to_double_int and insert_double functions.
19477
19478 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
19479
19480         * doc/extend.texi (Inline): Add missing return keyword to examples.
19481         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
19482         "command-line".
19483
19484 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
19485
19486         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
19487         the variable part of the offset as well.  Use highest_pow2_factor for
19488         all alignment checks.
19489
19490 2010-04-30  Richard Guenther  <rguenther@suse.de>
19491
19492         PR tree-optimization/43879
19493         * tree-ssa-structalias.c (type_could_have_pointers): Functions
19494         can have pointers.
19495
19496 2010-04-30  Jan Hubicka  <jh@suse.cz>
19497
19498         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
19499         varpool.
19500         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
19501
19502 2010-04-30  Jan Hubicka  <jh@suse.cz>
19503
19504         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
19505         New.
19506         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
19507         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
19508         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
19509         cgraph_node_set_needs_ltrans_p): Remove.
19510
19511 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19512
19513         * sdbout.c: Include vec.h, do not include varray.h.
19514         (deferred_global_decls, sdbout_global_decl,
19515         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
19516         * toplev.c: Do not include varray.h.
19517         (dump_memory_report): Do not dump VARRAY statistics.
19518         * gengtype.c (open_base_file): Ignore varray.h.
19519         * Makefile.in: Update for abovementioned changes.
19520         Remove all traces of varray.c and varray.h.
19521         * varray.c: Remove file.
19522         * varray.h: Remove file.
19523
19524 2010-04-30  Jan Hubicka  <jh@suse.cz>
19525
19526         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
19527         references.
19528
19529 2010-04-30  Jan Hubicka  <jh@suse.cz>
19530
19531         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
19532         needed.
19533
19534 2010-04-30  Richard Guenther  <rguenther@suse.de>
19535
19536         * tree-ssa-structalias.c (get_constraint_for_1): Generate
19537         constraints for CONSTRUCTOR.
19538
19539 2010-04-30  Richard Guenther  <rguenther@suse.de>
19540
19541         PR lto/43946
19542         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
19543         first after all lowering passes.
19544
19545 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19546
19547         * toplev.c: Include varray.h for statistics dumping.
19548         * tree.h: Do not declare varray_head_tag.
19549         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
19550         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
19551         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
19552         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
19553         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
19554         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
19555         c-common.c, c-common.h, reg-stack.c, basic-block.h,
19556         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
19557         include varray.h.
19558         * Makefile.in: Update for abovementioned changes.
19559
19560 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
19561
19562         PR debug/43942
19563         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
19564
19565 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19566
19567         * config/picochip/picochip.c (picochip_legitimize_address): Define.
19568         Use this function to do machine-specific conversion.
19569         (picochip_legitimize_reload_address): Likewise.
19570         (picochip_legitimate_address_p): Check valid base register only if
19571         strict.
19572         (picochip_check_conditional_copy): Check for modw only if opnd is
19573         register.
19574         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
19575         to call the function in c.
19576         * config/picochip/picochip-protos.h
19577         (picochip_legitimize_reload_address): Define.
19578         * config/picochip/picochip.md (supported_compare1): Define.
19579
19580 2010-04-30  Jan Hubicka  <jh@suse.cz>
19581
19582         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
19583         (cgraph_global_info): Remove inlined.
19584         (LTO_cgraph_tag_names): Remove.
19585         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
19586         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
19587         simplify cgraph tags and document.
19588         (lto_output_node): Use only LTO_cgraph_unavail_node and
19589         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
19590         for_functions_valid, global info, process and output flags.
19591         (input_overwrite_node): Initialize estimated stack size and
19592         estimated growth.  Do not read flags we no longer store.
19593         (input_node): Likewise do not read info no longer stored.
19594         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
19595         flag.
19596
19597 2010-04-30  Richard Guenther  <rguenther@suse.de>
19598
19599         PR tree-optimization/43879
19600         * tree-ssa-structalias.c (get_constraint_for_1): Properly
19601         handle non-zero initializers.
19602
19603 2010-04-30  Richard Guenther  <rguenther@suse.de>
19604
19605         * builtins.c (fold_builtin_1): Delete free (0).
19606
19607 2010-04-29  Jan Hubicka  <jh@suse.cz>
19608
19609         * gengtype.c (open_base_files): Add lto-streamer.h
19610         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
19611         (pass_ipa_cp): GGC collect.
19612         * toplev. (compile_file): Do not output symbols.
19613         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
19614         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
19615         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
19616         * lto-section-in.c: Include ggc.h
19617         (lto_new_in_decl_state): Alloc in GGC.
19618         (lto_delete_in_decl_state): Likewise.
19619         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
19620         Collect.
19621
19622 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19623
19624         PR target/42895
19625         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
19626         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
19627         (HONOR_REG_ALLOC_ORDER): Describe new macro.
19628         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
19629         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
19630         account only if HONOR_REG_ALLOC_ORDER is not defined.
19631         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
19632         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
19633
19634 2010-04-29  Jon Grant  <04@jguk.org>
19635
19636         * collect2.c (vflag): Change type from int to bool.
19637         (debug): Likewise.
19638         (helpflag): New global bool.
19639         (main): Set vflag and debug with boolean, not integer truth values.
19640         Accept new "--help" option and output usage text if found.
19641         * collect2.h (vflag): Update prototype.
19642         (debug): Likewise.
19643
19644 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19645
19646         PR bootstrap/43936
19647         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
19648
19649 2010-04-29  Richard Guenther  <rguenther@suse.de>
19650
19651         PR bootstrap/43935
19652         * plugin.h (invoke_plugin_callbacks): Annotate arguments
19653         with ATTRIBUTE_UNUSED.
19654
19655 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19656
19657         PR target/43921
19658         * config/i386/i386.c (get_some_local_dynamic_name): Replace
19659         INSN_P with NONDEBUG_INSN_P.
19660         (distance_non_agu_define): Likewise.
19661         (distance_agu_use): Likewise.
19662
19663 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19664
19665         From Dominique d'Humieres  <dominiq@lps.ens.fr>
19666         PR bootstrap/43858
19667         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
19668         test_set.
19669
19670 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
19671
19672         * plugin.h (invoke_plugin_callbacks): New inline function.
19673         * plugin.c (flag_plugin_added): New global flag.
19674         (add_new_plugin): Initialize above flag.
19675         (invoke_plugin_callbacks): Rename to ...
19676         (invoke_plugin_callbacks_full): ... this.
19677
19678 2010-04-28  Jan Hubicka  <jh@suse.cz>
19679
19680         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
19681         (lto_varpool_replace_node): New.
19682         (lto_symtab_resolve_symbols): Resolve varpool nodes.
19683         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
19684         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
19685         * cgraph.h (varpool_node_ptr): New type.
19686         (varpool_node_ptr): New vector.
19687         (varpool_node_set_def): New structure.
19688         (varpool_node_set): New type.
19689         (varpool_node_set): New vector.
19690         (varpool_node_set_element_def): New structure.
19691         (varpool_node_set_element, const_varpool_node_set_element): New types.
19692         (varpool_node_set_iterator): New type.
19693         (varpool_node): Add prev pointers, add used_from_other_partition,
19694         in_other_partition.
19695         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
19696         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
19697         varpool_get_node, varpool_remove_node): Declare.
19698         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
19699         varpool_node_set_size): New inlines.
19700         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
19701         * tree-pass.h (varpool_node_set_def): Forward declare.
19702         (ipa_opt_pass_d): Summary writting takes vnode sets too.
19703         (ipa_write_optimization_summaries): Update prototype.
19704         * ipa-cp.c (ipcp_write_summary): Update.
19705         * ipa-reference.c (ipa_reference_write_summary): Update.
19706         * lto-cgraph.c (lto_output_varpool_node): New static function.
19707         (output_varpool): New function.
19708         (input_varpool_node): New static function.
19709         (input_varpool_1): New function.
19710         (input_cgraph): Input varpool.
19711         * ipa-pure-const.c (pure_const_write_summary): Update.
19712         * lto-streamer-out.c (lto_output): Update, output varpool too.
19713         (write_global_stream): Kill WPA hack.
19714         (produce_asm_for_decls): Update.
19715         (output_alias_pair_p): Handle variables.
19716         (output_unreferenced_globals): Output only needed partition of varpool.
19717         * ipa-inline.c (inline_write_summary): Update.
19718         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
19719         cgraph.
19720         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
19721         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
19722         varpool_node_set_new, varpool_node_set_add,
19723         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
19724         debug_varpool_node_set): New functions.
19725         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
19726         (execute_one_pass): Process new decls too.
19727         (ipa_write_summaries_2): Pass around vsets.
19728         (ipa_write_summaries_1): Likewise.
19729         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
19730         to add.
19731         (ipa_write_optimization_summaries_1): Pass around vsets.
19732         (ipa_write_optimization_summaries): Likewise.
19733         * varpool.c (varpool_get_node): New.
19734         (varpool_node): Update doubly linked lists.
19735         (varpool_remove_node): New.
19736         (dump_varpool_node): More dumping.
19737         (varpool_enqueue_needed_node): Update doubly linked lists.
19738         (decide_is_variable_needed): Kill ltrans hack.
19739         (varpool_finalize_decl): Kill lto hack.
19740         (varpool_assemble_decl): Skip decls in other partitions.
19741         (varpool_assemble_pending_decls): Update doubly linkes lists.
19742         (varpool_empty_needed_queue): Likewise.
19743         (varpool_extra_name_alias): Likewise.
19744         * lto-streamer.c (lto_get_section_name): Add vars section.
19745         * lto-streamer.h (lto_section_type): Update.
19746         (output_varpool, input_varpool): Declare.
19747
19748 2010-04-28  Mike Stump  <mikestump@comcast.net>
19749
19750         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
19751
19752 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19753
19754         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
19755         record or union type with RECORD_OR_UNION_TYPE_P predicate.
19756         (lto_input_ts_type_tree_pointers): Likewise.
19757         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
19758         (lto_output_ts_type_tree_pointers): Likewise.
19759
19760 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19761
19762         Uniquization of constants at the Tree level
19763         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
19764         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
19765         bit to the end.
19766         (tree_output_constant_def): Declare.
19767         * gimplify.c (gimplify_init_constructor): When using block copy, first
19768         uniquize the constant constructor on the RHS.
19769         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
19770         DECL_IN_CONSTANT_POOL flag.
19771         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
19772         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
19773         constant pool.
19774         (assemble_variable): Deal with symbols belonging to the tree constant
19775         pool.
19776         (get_constant_section): Add ALIGN parameter and simplify.
19777         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
19778         (assemble_constant_contents): Use the expression of the VAR_DECL.
19779         (output_constant_def_contents): Use the alignment of the VAR_DECL.
19780         (tree_output_constant_def): New global function.
19781         (mark_constant): Use the expression of the VAR_DECL.
19782         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
19783         its expression.
19784         (output_object_block): Likewise and assemble the expression.
19785
19786 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19787
19788         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
19789         hash_tree, eq_tree): New tree hash table.
19790         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
19791         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
19792         lto_orig_address_remove): Reimplement.
19793
19794 2010-04-28  Xinliang David Li  <davidxl@google.com>
19795
19796         PR c/42643
19797         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
19798         (compute_uninit_opnds_pos): New function.
19799         (is_non_loop_exit_postdominating): New function.
19800         (compute_control_dep_chain): New function.
19801         (find_pdom): New function.
19802         (convert_control_dep_chain_into_preds): New function.
19803         (find_predicates): New function.
19804         (find_control_equiv_block): New function.
19805         (collect_phi_def_edges): New function.
19806         (find_def_preds): New function.
19807         (find_dom): New function.
19808         (dump_predicates): New function.
19809         (get_cmp_code): New function.
19810         (is_value_included_in): New function.
19811         (find_matching_predicate_in_rest_chains): New function.
19812         (use_pred_not_overlap_with_undef_path_pred): New function.
19813         (is_use_properly_guarded): New function.
19814         (normalize_cond_1): New function.
19815         (is_and_or_or): New function.
19816         (normalize_cond): New function.
19817         (is_gcond_subset_of): New function.
19818         (is_subset_of_any): New function.
19819         (is_or_set_subset_of): New function.
19820         (is_and_set_subset_of): New function.
19821         (is_norm_cond_subset_of): New function.
19822         (is_pred_expr_subset_of): New function.
19823         (is_pred_chain_subset_of): New function.
19824         (is_included_in): New function.
19825         (is_superset_of): New function.
19826         (find_uninit_use): New function.
19827         (warn_uninitialized_phi): New function.
19828         (compute_possibly_undefined_names): New function.
19829         (ssa_undefined_value_p): New function.
19830         (execute_late_warn_uninitialized): New function.
19831         * tree-ssa.c (ssa_undefined_value_p): Removed.
19832         (warn_uninit): Changed to extern.
19833         (warn_uninitialized_phi): Removed.
19834         (warn_uninitialized_vars): Changed to extern.
19835         (execute_late_warn_uninitialized): Removed
19836         * tree-flow.h: Add new prototypes.
19837         * timevar.def: Add new time variable.
19838         * Makefile.in: Add new build file.
19839
19840 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
19841
19842         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
19843         type if available.
19844
19845 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19846
19847         PR target/22224
19848         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
19849
19850 2010-04-28  Martin Jambor  <mjambor@suse.cz>
19851
19852         * cgraph.h (struct cgraph_node): New field indirect_calls.
19853         (struct cgraph_indirect_call_info): New type.
19854         (struct cgraph_edge): Removed field indirect_call. New fields
19855         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
19856         (cgraph_create_indirect_edge): Declare.
19857         (cgraph_make_edge_direct): Likewise.
19858         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
19859         * ipa-prop.h (struct ipa_param_call_note): Removed.
19860         (struct ipa_node_params): Removed field param_calls.
19861         (ipa_create_all_structures_for_iinln): Declare.
19862         * cgraph.c: Described indirect edges and uids in initial comment.
19863         (cgraph_add_edge_to_call_site_hash): New function.
19864         (cgraph_edge): Search also among the indirect edges, use
19865         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
19866         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
19867         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
19868         site hash.
19869         (initialize_inline_failed): Assign a reason to indirect edges.
19870         (cgraph_create_edge_1): New function.
19871         (cgraph_create_edge): Moved some functionality to
19872         cgraph_create_edge_1.
19873         (cgraph_create_indirect_edge): New function.
19874         (cgraph_edge_remove_callee): Add an assert checking for
19875         non-indirectness.
19876         (cgraph_edge_remove_caller): Special-case indirect edges.
19877         (cgraph_remove_edge): Likewise.
19878         (cgraph_set_edge_callee): New function.
19879         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
19880         (cgraph_make_edge_direct): New function.
19881         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
19882         the declaration of the call statement matches.
19883         (cgraph_node_remove_callees): Special-case indirect edges.
19884         (cgraph_clone_edge): Likewise.
19885         (cgraph_clone_node): Clone also the indirect edges.
19886         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
19887         indirect_call, dump count of indirect_calls edges.
19888         * ipa-prop.c (iinlining_processed_edges): New variable.
19889         (ipa_note_param_call): Create indirect edges instead of
19890         creating notes.  New parameter node.
19891         (ipa_analyze_call_uses): New parameter node, pass it on to
19892         ipa_note_param_call.
19893         (ipa_analyze_stmt_uses): Likewise.
19894         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
19895         (print_edge_addition_message): Work on edges rather than on notes.
19896         (update_call_notes_after_inlining): Likewise, renamed to
19897         update_indirect_edges_after_inlining.
19898         (ipa_create_all_structures_for_iinln): New function.
19899         (ipa_free_node_params_substructures): Do not free notes.
19900         (ipa_edge_duplication_hook): Propagate bits within
19901         iinlining_processed_edges bitmap.
19902         (ipa_node_duplication_hook): Do not duplicate notes.
19903         (free_all_ipa_structures_after_ipa_cp): Renamed to
19904         ipa_free_all_structures_after_ipa_cp.
19905         (free_all_ipa_structures_after_iinln): Renamed to
19906         ipa_free_all_structures_after_iinln.
19907         (ipa_write_param_call_note): Removed.
19908         (ipa_read_param_call_note): Removed.
19909         (ipa_write_indirect_edge_info): New function.
19910         (ipa_read_indirect_edge_info): Likewise.
19911         (ipa_write_node_info): Do not stream notes, do stream information
19912         in indirect edges.
19913         (ipa_read_node_info): Likewise.
19914         (lto_ipa_fixup_call_notes): Removed.
19915         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
19916         * ipa-inline.c (pass_ipa_inline): Likewise.
19917         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
19918         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
19919         * tree-inline.c (copy_bb): Removed an unnecessary double check for
19920         is_gimple_call.
19921         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
19922         edges.
19923         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
19924         (output_cgraph): Stream also indirect edges.
19925         (lto_output_edge): Added capability to stream indirect edges.
19926         (input_edge): Likewise.
19927         (input_cgraph_1): Likewise.
19928         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
19929         of indirect edges.
19930
19931 2010-04-28  Richard Guenther  <rguenther@suse.de>
19932
19933         PR tree-optimization/43879
19934         PR tree-optimization/43909
19935         * tree-ssa-structalias.c (struct variable_info): Add
19936         only_restrict_pointers flag.
19937         (new_var_info): Initialize it.  Increment stats.total_vars here.
19938         (create_function_info_for): Do not increment stats.total_vars here.
19939         (get_function_part_constraint): Fix build with C++.
19940         (insert_into_field_list): Remove.
19941         (push_fields_onto_fieldstack): Properly merge fields.
19942         (create_variable_info_for): Split and simplify.
19943         (create_variable_info_for_1): New piece.
19944         (intra_create_variable_infos): Properly make restrict constraints
19945         from parameters.
19946
19947 2010-04-28  Richard Guenther  <rguenther@suse.de>
19948
19949         PR c++/43880
19950         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
19951
19952 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19953             Jan Hubicka  <hubicka@ucw.cz>
19954
19955         * doc/invoke.texi (-Wsuggest-attribute=const,
19956         -Wsuggest-attribute=pure): Document.
19957         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
19958         (function_always_visible_to_compiler_p,
19959         suggest_attribute, warn_function_pure, warn_function_const):
19960         New functions.
19961         (check_call): Improve debug info.
19962         (analyze_function): Do not check availability.
19963         (add_new_function): Check availability.
19964         (propagate): Output warnings.
19965         (skip_function_for_local_pure_const): New function.
19966         (local_pure_const): Use it; output warnings.
19967         * common.opt (Wsuggest-attribute=const,
19968         Wsuggest-attribute=pure): New.
19969
19970 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19971
19972         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
19973         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
19974         or DW_CFA_def_cfa_offset{,_sf}.
19975
19976 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19977
19978         * tree.h: Fix truncated long macros.
19979
19980 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
19981
19982         * collect2.c (TARGET_64BIT): Redefine to target's default.
19983         * tlink.c: Likewise.
19984         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
19985         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
19986         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
19987         for underscoring __USER_LABEL_PREFIX__.
19988         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
19989         (SUB_LINK_ENTRY32): New.
19990         (SUB_LINK_ENTRY64): New.
19991         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
19992         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
19993         (SUB_LINK_ENTRY64): New.
19994         (SUB_LINK_ENTRY): New.
19995         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
19996         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
19997         x64 target is choosen.
19998         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
19999         * configure: Regenerated.
20000         * configure.ac (leading-mingw64-underscores): Option added.
20001
20002 2010-04-27  Jan Hubicka  <jh@suse.cz>
20003
20004         * doc/invoke.texi (-fipa-profile): Document.
20005         * opts.c (decode_options): Enable ipa-profile at -O1.
20006         * timevar.def (TV_IPA_PROFILE): Define.
20007         * common.opt (fipa-profile): Add.
20008         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
20009         flag for clones.
20010         (cgraph_propagate_frequency): Handle only local ones.
20011         * tree-pass.h (pass_ipa_profile): Declare.
20012         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
20013         (pass_ipa_profile): Use TV_IPA_PROFILE.
20014         * ipa.c (ipa_profile): New function.
20015         (gate_ipa_profile): Likewise.
20016         (pass_ipa_profile): New global variable.
20017         * passes.c (pass_ipa_profile): New.
20018
20019 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
20020
20021         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
20022
20023 2010-04-27  Martin Jambor  <mjambor@suse.cz>
20024
20025         PR middle-end/43812
20026         * ipa.c (dissolve_same_comdat_group_list): New function.
20027         (function_and_variable_visibility): Call
20028         dissolve_same_comdat_group_list when comdat group contains external or
20029         newly local nodes.
20030         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
20031         lists are circular and that they contain only DECL_ONE_ONLY nodes.
20032
20033 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
20034
20035         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
20036         (const_hash_1) <VECTOR_CST>: New case.
20037         (compare_constant) <VECTOR_CST>: Likewise.
20038         <ADDR_EXPR>: Deal with LABEL_REFs.
20039         (copy_constant) <VECTOR_CST>: New case.
20040
20041 2010-04-27  Jan Hubicka  <jh@suse.cz>
20042
20043         * cgraph.c (cgraph_propagate_frequency): New function.
20044         * cgraph.h (cgraph_propagate_frequency): Declare.
20045         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
20046         cgraph_propagate_frequency.
20047
20048 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
20049
20050         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
20051
20052 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
20053
20054         PR target/40657
20055         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
20056         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
20057         here to determine which regs to push and how much stack to reserve.
20058
20059 2010-04-27  Jie Zhang  <jie@codesourcery.com>
20060
20061         * doc/gimple.texi (gimple_statement_with_ops): Remove
20062         addresses_taken field.
20063         (gimple_statement_with_memory_ops): Likewise.
20064
20065 2010-04-27  Jan Hubicka  <jh@suse.cz>
20066
20067         * tree-inline.c (eni_inlining_weights): Remove.
20068         (estimate_num_insns): Special case more builtins.
20069
20070 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
20071
20072         PR c/32207
20073         * c-typeck.c (build_binary_op): Move forward check for comparison
20074         pointer with null pointer constant and adjust the diagnostic message.
20075
20076 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
20077
20078         PR lto/42776
20079         * configure.ac (gcc_cv_as_section_has_align): Set if installed
20080         binutils supports extended .section directive needed by LTO, or
20081         warn if older binutils found.
20082         (LTO_BINARY_READER): New AC_SUBST'd variable.
20083         (LTO_USE_LIBELF): Likewise.
20084         * config.gcc (lto_binary_reader): New target-specific configure
20085         variable.
20086         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
20087         (LTO_USE_LIBELF): Likewise.
20088         * configure: Regenerate.
20089
20090         * collect2.c (is_elf): Rename from this ...
20091         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
20092          object files in addition to ELF-formatted ones.
20093         (scan_prog_file): Caller updated.  Also allow for LTO info marker
20094         symbol to be prefixed or not by an extra underscore.
20095
20096         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
20097         * config/i386/winnt.c: Also #include lto-streamer.h
20098         (i386_pe_asm_named_section): Specify 1-byte section alignment for
20099         LTO named sections.
20100         (i386_pe_asm_output_aligned_decl_common): Add comment.
20101         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
20102
20103 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
20104
20105         PR target/43889
20106         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
20107         Add missing earlyclobber for second alternative.
20108
20109 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
20110
20111         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
20112         bits for artificial defs at the top of the block.
20113         * fwprop.c (single_def_use_enter_block): Don't call it.
20114
20115 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
20116
20117         PR 43715
20118         * configure.ac: Use "$gcc_cv_nm -g" on darwin
20119         instead of "$gcc_cv_objdump -T".
20120         Use "-undefined dynamic_lookup" on darwin.
20121         * configure: Regenerate.
20122
20123 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
20124
20125         PR c/43893
20126         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
20127
20128 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20129
20130         * c-parser.c (struct c_token): Move location field up.
20131         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
20132         (struct c_declspecs): Convert typespec_word, storage_class, and
20133         default_int_p into bitfields.
20134         (struct c_declarator): Move loc field up.
20135
20136 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
20137
20138         * cfgloop.h (struct loop): Move can_be_parallel field up.
20139         * ipa-prop.h (struct ip_node_params): Move bitfields up.
20140         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
20141         down.
20142         (struct iv_cand): Convert pos field into a bitfield.
20143         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
20144         field up.
20145         (struct _stmt_vec_info): Shuffle fields for better packing.
20146
20147 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20148
20149         * varasm.c (IN_NAMED_SECTION): Remove guard.
20150         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
20151         (IN_NAMED_SECTION_P): ...this.
20152         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
20153         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
20154
20155 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
20156
20157         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
20158         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
20159         of shadowing it.  Fix comments.
20160
20161 2010-04-26  Jan Hubicka  <jh@suse.cz>
20162
20163         * cgraph.c (cgraph_create_node): Set node frequency to normal.
20164         (cgraph_clone_node): Copy function frequency.
20165         * cgraph.h (node_frequency): New enum
20166         (struct cgraph_node): Add.
20167         * final.c (rest_of_clean_state): Update.
20168         * lto-cgraph.c (lto_output_node): Output node frequency.
20169         (input_overwrite_node): Input node frequency.
20170         * tre-ssa-loop-ivopts (computation_cost): Update.
20171         * lto-streamer-out.c (output_function): Do not output function
20172         frequency.
20173         * predict.c (maybe_hot_frequency_p): Update and handle functions
20174         executed once.
20175         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
20176         attribute lookup.
20177         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
20178         (compute_function_frequency): Set noreturn functions to be executed
20179         once.
20180         (choose_function_section): Update.
20181         * lto-streamer-in.c (input_function): Do not input function frequency.
20182         * function.c (allocate_struct_function): Do not initialize function
20183         frequency.
20184         * function.h (function_frequency): Remove.
20185         (struct function): Remove function frequency.
20186         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
20187         (try_update): Update.
20188         * tree-inline.c (initialize_cfun): Do not update function frequency.
20189         * passes.c (pass_init_dump_file): Update.
20190         * i386.c (ix86_compute_frame_layout): Update.
20191         (ix86_pad_returns): Update.
20192
20193 2010-04-26  Jie Zhang  <jie@codesourcery.com>
20194
20195         PR tree-optimization/43833
20196         * tree-vrp.c (range_int_cst_p): New.
20197         (range_int_cst_singleton_p): New.
20198         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
20199         when both operands are constants.  Use range_int_cst_p in
20200         BIT_IOR_EXPR case.
20201
20202 2010-04-26  Jan Hubicka  <jh@suse.cz>
20203
20204         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
20205
20206 2010-04-26  Richard Guenther  <rguenther@suse.de>
20207
20208         PR lto/43080
20209         * gimple.c (gimple_decl_printable_name): Deal gracefully
20210         with a NULL DECL_NAME.
20211
20212 2010-04-26  Richard Guenther  <rguenther@suse.de>
20213
20214         PR lto/42425
20215         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
20216         if emitting debug information and it is either a function
20217         or a namespace decl.
20218
20219 2010-04-26  Ira Rosen  <irar@il.ibm.com>
20220
20221         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
20222         determine if the statement is vectorizable, and a macro to access it.
20223         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
20224         Skip statements that can't be vectorized. If the analysis fails,
20225         mark the statement as unvectorizable if vectorizing basic block.
20226         (vect_compute_data_refs_alignment): Likewise.
20227         (vect_verify_datarefs_alignment): Skip statements marked as
20228         unvectorizable. Add print.
20229         (vect_analyze_group_access): Skip statements that can't be
20230         vectorized. If the analysis fails, mark the statement as
20231         unvectorizable if vectorizing basic block.
20232         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
20233         * tree-vect-stmts.c (vectorizable_store): Fix the number of
20234         generated stmts for SLP.
20235         (new_stmt_vec_info): Initialize the new field.
20236         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
20237         statements marked as unvectorizable.
20238
20239 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
20240
20241         * c-common.c (flag_isoc1x): New.
20242         (flag_isoc99): Update comment.
20243         * c-common.h (flag_isoc1x): New.
20244         (flag_isoc99): Update comment.
20245         * c-cppbuiltin.c (builtin_define_float_constants): Also define
20246         __<type>_DECIMAL_DIG__.
20247         * c-opts.c (set_std_c1x): New.
20248         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
20249         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
20250         * c.opt (-std=c1x, -std=gnu1x): New options.
20251         * doc/cpp.texi: Mention -std=c1x.
20252         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
20253         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
20254         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
20255         * doc/standards.texi: Mention C1X.
20256         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
20257         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
20258         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
20259         Define for C1X.
20260
20261 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
20262
20263         * config/i386/gmon-sol2.c (_mcleanup): Change format string
20264         placeholder from 0x%x to %#x.
20265         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
20266         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
20267         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
20268         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
20269         * config/i386/i386.c (ix86_target_string): Ditto.
20270         (output_pic_addr_const): Ditto.
20271         (print_operand): Ditto.
20272
20273 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
20274
20275         * combine.c (find_split_point): Add third argument.  Use it
20276         to find nested multiply-accumulate instructions.  Adjust calls.
20277         (try_combine): Adjust call to find_split_point.
20278
20279 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
20280
20281         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
20282
20283 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
20284
20285         PR tree-optimization/41442
20286         * fold-const.c (merge_truthop_with_opposite_arm): New function.
20287         (fold_binary_loc): Call it.
20288
20289 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20290
20291         * toplev.c (general_init): Set default for fdiagnostics-show-option.
20292         * opts.c (common_handle_option): Allow disabling it.
20293         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
20294
20295 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
20296
20297         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
20298         between modes if both types are integral.
20299
20300 2010-04-23  Richard Guenther  <rguenther@suse.de>
20301
20302         PR tree-optimization/43572
20303         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
20304
20305 2010-04-23  Richard Guenther  <rguenther@suse.de>
20306
20307         PR lto/43455
20308         * tree-inline.c (tree_can_inline_p): Also check compatibility
20309         of return types.
20310
20311 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20312
20313         PR tree-optimization/43846
20314         * tree-sra.c (struct access): New flag grp_assignment_read.
20315         (build_accesses_from_assign): Set grp_assignment_read.
20316         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
20317         (enum mark_read_status): New type.
20318         (analyze_access_subtree): Propagate grp_assignment_read, create
20319         accesses also if both direct_read and root->grp_assignment_read.
20320
20321 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20322
20323         PR middle-end/43835
20324         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
20325         function does not have type attributes.
20326
20327 2010-04-23  Richard Guenther  <rguenther@suse.de>
20328
20329         PR lto/42653
20330         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
20331         of FUNCTION_DECLs.
20332
20333 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20334
20335         * sese.h (create_if_region_on_edge): Remove.
20336
20337         * sese.c (create_if_region_on_edge): Make static.
20338
20339         * tree-inline.c: Do not include ggc.h.
20340
20341         * expr.c: Do not include ggc.h.
20342
20343         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
20344         dependencies.
20345
20346 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
20347
20348         PR target/43744
20349         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20350         in the middle of insns for casesi_worker_2.
20351
20352 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
20353
20354         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
20355
20356 2010-04-22  Ira Rosen  <irar@il.ibm.com>
20357
20358         PR tree-optimization/43842
20359         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
20360         loop unrolling in update of exit phis. Fix comment.
20361         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
20362         least two reduction statements in the loop before starting SLP
20363         analysis.
20364
20365 2010-04-22  Nick Clifton  <nickc@redhat.com>
20366
20367         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
20368
20369 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
20370
20371         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
20372         to simplify a + ~a.
20373
20374 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20375
20376         * tree-parloops.c (loop_parallel_p): New argument
20377         parloop_obstack.  Pass it down.
20378         (parallelize_loops): New variable parloop_obstack.  Initialize it,
20379         pass it down, free it.
20380
20381         * tree-loop-linear.c (linear_transform_loops): Pass down
20382         lambda_obstack.
20383
20384         * tree-data-ref.h (lambda_compute_access_matrices): New argument
20385         of type struct obstack *.
20386
20387         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
20388         scratch_obstack.  Initialize it, pass down, free it.
20389
20390         * lambda.h (lambda_loop_new): Remove.
20391         (lambda_matrix_new, lambda_matrix_inverse)
20392         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
20393         argument of type struct obstack *.
20394
20395         * lambda-trans.c (lambda_trans_matrix_new): New argument
20396         lambda_obstack.  Pass it down, use obstack allocation for ret.
20397         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
20398         it down.
20399
20400         * lambda-mat.c (lambda_matrix_get_column)
20401         (lambda_matrix_project_to_null): Remove.
20402         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
20403         allocation for mat.
20404         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
20405         lambda_obstack.
20406
20407         * lambda-code.c (lambda_loop_new): New function.
20408         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
20409         (lambda_compute_auxillary_space, lambda_compute_target_space)
20410         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
20411         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
20412         (build_access_matrix): New argument lambda_obstack.  Use obstack
20413         allocation for am.
20414         (lambda_compute_step_signs, lambda_compute_access_matrices): New
20415         argument lambda_obstack.  Pass it down.
20416
20417 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20418
20419         * optabs.h (expand_widening_mult): Declare.
20420
20421 2010-04-22  Richard Guenther  <rguenther@suse.de>
20422
20423         PR tree-optimization/43845
20424         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
20425         lookup the CALL_EXPR function and arguments.
20426
20427 2010-04-22  Nick Clifton  <nickc@redhat.com>
20428
20429         * config/stormy16/stormy16.c
20430         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
20431         * config/stormy16/stormy16.h: Tidy up formatting.
20432         (DONT_USE_BUILTIN_SETJMP): Remove definition.
20433         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
20434         (ineqbranchsi): Delete pattern.
20435         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
20436         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
20437         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
20438         stormy16-lib2-ucmpsi2.c.
20439
20440 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20441
20442         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
20443         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
20444         extra set merge_set_noclobber, and use it to relax the final test
20445         slightly.
20446         * df.h (df_simulate_find_noclobber_defs): Declare.
20447         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
20448         conditional defs.
20449         (df_simulate_find_noclobber_defs): New function.
20450
20451 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
20452
20453         * config/i386/i386.md: Use {} around multi-line preparation statements.
20454
20455 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20456
20457         * c-tree.h (push_init_level, pop_init_level, set_init_index)
20458         (process_init_element): New argument of type struct obstack *.
20459
20460         * c-typeck.c (push_init_level, pop_init_level, set_designator)
20461         (set_init_index, set_init_label, set_nonincremental_init)
20462         (set_nonincremental_init_from_string, find_init_member)
20463         (output_init_element, output_pending_init_elements)
20464         (process_init_element): New argument braced_init_obstack.  Pass it
20465         down.
20466         (push_range_stack, add_pending_init): New argument
20467         braced_init_obstack.  Use obstack allocation.
20468
20469         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
20470         braced_init_obstack.  Pass it down.
20471         (c_parser_braced_init): New variables ret, braced_init_obstack.
20472         Initialize obstack, pass it down and finally free it.
20473
20474 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20475
20476         PR middle-end/29274
20477         * tree-pass.h (pass_optimize_widening_mul): Declare.
20478         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
20479         gate_optimize_widening_mul): New static functions.
20480         (pass_optimize_widening_mul): New.
20481         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
20482         <case MULT_EXPR>: Remove support for widening multiplies.
20483         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
20484         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
20485         simplify_gen_unary rather than directly building extensions.
20486         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
20487         WIDEN_MULT_EXPR.
20488         * expmed.c (expand_widening_mult): New function.
20489         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
20490
20491 2010-04-21  Jan Hubicka  <jh@suse.cz>
20492
20493         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
20494         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
20495         * lto-wpa-fixup.c: Remove.
20496         * Makefile.in (lto-wpa-fixup.o): Remove.
20497         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
20498         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
20499         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
20500
20501 2010-04-21  Jan Hubicka  <jh@suse.cz>
20502
20503         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
20504         add write_optimization_summary, read_optimization_summary.
20505         (ipa_write_summaries_of_cgraph_node_set): Remove.
20506         (ipa_write_optimization_summaries): Declare.
20507         (ipa_read_optimization_summaries): Declare.
20508         * ipa-cp.c (pass_ipa_cp): Update.
20509         * ipa-reference.c (pass_ipa_reference): Update.
20510         * ipa-pure-const.c (pass_ipa_pure_const): Update.
20511         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
20512         Update.
20513         * ipa-inline.c (pass_ipa_inline): Update.
20514         * ipa.c (pass_ipa_whole_program): Update.
20515         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
20516         * passes.c (ipa_write_summaries_1): Do not test wpa.
20517         (ipa_write_optimization_summaries_1): New.
20518         (ipa_write_optimization_summaries): New.
20519         (ipa_read_summaries): Do not test ltrans.
20520         (ipa_read_optimization_summaries_1): New.
20521         (ipa_read_optimization_summaries): New.
20522
20523 2010-04-21  Jan Hubicka  <jh@suse.cz>
20524
20525         * lto-cgraph.c (lto_output_node): Do not output comdat groups
20526         for boundary nodes.
20527         (output_cgraph): Do not arrange comdat groups for boundary nodes.
20528
20529 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20530
20531         PR debug/40040
20532         * dwarf2out.c (add_name_and_src_coords_attributes): Add
20533         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
20534
20535 2010-04-21  Jan Hubicka  <jh@suse.cz>
20536
20537         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
20538
20539 2010-04-21  Jan Hubicka  <jh@suse.cz>
20540
20541         * varpool.c (decide_is_variable_needed): Variable is always needed
20542         during ltrans.
20543
20544 2010-04-21  Jan Hubicka  <jh@suse.cz>
20545
20546         * opts.c (decode_options): Enable pure-const pass for whopr.
20547
20548 2010-04-21  Jan Hubicka  <jh@suse.cz>
20549
20550         * cgraph.c (dump_cgraph_node): Dump also assembler name.
20551         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
20552         at WPA dumping.
20553         (cgraph_decide_inlining): Do not expect callee to be removed in all
20554         cases.
20555
20556 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
20557
20558         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
20559
20560 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20561
20562         * config/i386/i386.md (x86_shrd): Add athlon_decode and
20563         amdfam10_decode attributes.
20564
20565 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20566
20567         PR middle-end/43570
20568         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
20569         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
20570         (lower_copyprivate_clauses): Use private var in outer
20571         context instead of original var.  Make sure the types
20572         are correct for VLAs.
20573
20574 2010-04-21  Richard Guenther  <rguenther@suse.de>
20575
20576         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
20577         to non-pointer objects.
20578
20579 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20580
20581         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
20582         last chain entry if it starts with the still current label.
20583         (add_location_or_const_value_attribute): Check that
20584         loc_list->first->next is NULL instead of comparing ->first with ->last.
20585         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
20586         to add_var_loc_to_decl.
20587
20588         * dwarf2out.c (output_call_frame_info): For dw_cie_version
20589         >= 4 add also address size and segment size fields into CIE header.
20590
20591         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
20592         long as address size is the same as sizeof (void *) and
20593         segment size is 0.
20594         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
20595         address size or segment size is unexpected, return DW_EH_PE_omit.
20596         (classify_object_over_fdes): If get_cie_encoding returned
20597         DW_EH_PE_omit, return -1.
20598         (init_object): If classify_object_over_fdes returned -1,
20599         pretend there were no FDEs at all.
20600
20601 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20602
20603         * config/i386/i386.md (bswap<mode>2): Macroize expander from
20604         bswap{si,di}2 using SWI48 mode iterator.
20605         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
20606         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
20607         set modrm attribute of bswap insn to 0 and remove length attribute.
20608         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
20609         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
20610         set mode attribute to <MODE> and remove length attribute.
20611
20612 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
20613
20614         PR rtl-optimization/43520
20615         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
20616         zero available registers.
20617
20618 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20619
20620         * builtins.c (fold_builtin_cproj): Fold more cases.
20621
20622 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20623
20624         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
20625         (fold_builtin_1): Fold builtin cproj.
20626         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
20627         Use ATTR_CONST_NOTHROW_LIST.
20628
20629 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
20630
20631         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
20632         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
20633         ffsi2_no_cmove for !TARGET_CMOVE.
20634         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
20635         (ffssi2): Remove expander.
20636         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
20637         mode iterator.
20638         (ctz<mode>2): Ditto from ctz{si,di}2.
20639         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
20640         mode iterator.
20641         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
20642         mode iterator.
20643
20644 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20645
20646         * dwarf2out.c (AT_linkage_name): Define.
20647         (clone_as_declaration): Handle DW_AT_linkage_name.
20648         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
20649         of DW_AT_MIPS_linkage_name.
20650         (move_linkage_attr): Likewise.
20651         (dwarf2out_finish): Likewise.
20652
20653 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
20654
20655         PR middle-end/41952
20656         * fold-const.c (fold_comparison): New folding rule.
20657
20658 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
20659
20660         * double-int.h (double_int_setbit): Declare.
20661         * double-int.c (double_int_setbit): New function.
20662         * rtl.h (immed_double_int_const): Declare.
20663         * emit-rtl.c (immed_double_int_const): New function.
20664         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
20665         and immed_double_int_const functions.
20666         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
20667         expand_copysign_bit): (Ditto.).
20668         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
20669         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
20670         * dojump.c (prefer_and_bit_test): (Ditto.).
20671         * expr.c (convert_modes, reduce_to_bit_field_precision,
20672         const_vector_from_tree): (Ditto.).
20673         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20674
20675 2010-04-20  Jan Hubicka  <jh@suse.cz>
20676
20677         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
20678         (dump_cgraph_node): Dump new flags.
20679         * cgraph.h (struct cgraph_node): Add flags
20680         reachable_from_other_partition and in_other_partition.
20681         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
20682         other partition can not be removed.
20683         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
20684         the other partition must be output; silence sanity checking on
20685         leaking functions bodies from other paritition.
20686         * lto-cgraph.c (reachable_from_other_partition_p): New function.
20687         (lto_output_node): Output new flags; do not sanity check that inline
20688         clones are output; drop lto_forced_extern_inline_p code; do not mock
20689         visibility flags at partition boundaries.
20690         (add_node_to): New function.
20691         (output_cgraph): Use it to sort functions so masters appear before
20692         clones.
20693         (input_overwrite_node): Input new flags.
20694         * passes.c (ipa_write_summaries): Do not call
20695         lto_new_extern_inline_states.
20696         * lto-section-out.c (forced_extern_inline,
20697         lto_new_extern_inline_states lto_delete_extern_inline_states,
20698         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
20699         * lto-streamer.h (lto_new_extern_inline_states,
20700         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
20701         lto_forced_extern_inline_p): Kill.
20702
20703 2010-04-20  Richard Guenther  <rguenther@suse.de>
20704
20705         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
20706         from vars that can have pointers.
20707         (process_constraint): Dump useless constraints.
20708
20709 2010-04-20  Richard Guenther  <rguenther@suse.de>
20710
20711         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
20712         (dump_sa_points_to_info): Remove asserts.
20713         (init_base_vars): nothing_id isn't an escape point nor does it
20714         have pointers.
20715
20716 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20717
20718         * tree.h (TYPE_REF_IS_RVALUE): Define.
20719         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
20720         should_move_die_to_comdat, prune_unused_types_walk): Handle
20721         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
20722         (modified_type_die, gen_reference_type_die): Emit
20723         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
20724         if TYPE_REF_IS_RVALUE and -gdwarf-4.
20725
20726 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20727
20728         PR target/43635
20729         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
20730         calls for -fpic -m31 if they have been sibcall optimized.
20731
20732 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
20733
20734         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
20735         ar.lc fixed and call-used.
20736
20737         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
20738
20739 2010-04-19  Jan Hubicka  <jh@suse.cz>
20740
20741         * opts.c (decode_options): Disable whpr incompatible passes.
20742         * lto/lto.c (lto_1_to_1_map): Skip clones.
20743         (read_cgraph_and_symbols): Do not mark everything as needed.
20744         (do_whole_program_analysis): Do map only after optimizing;
20745         set proper cgraph_state; use passmanager.
20746
20747 2010-04-19  DJ Delorie  <dj@redhat.com>
20748
20749         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
20750         POINTER_PLUS_EXPR and fix them.
20751
20752 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
20753
20754         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
20755         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
20756         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
20757         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
20758         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
20759         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
20760         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
20761         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
20762         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
20763         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
20764         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
20765
20766 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20767
20768         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
20769         (check_cond_move_block): Likewise.
20770         (cond_move_process_if_block): Likewise.
20771         (noce_find_if_block): Improve formatting.
20772         (find_if_header): Pass 0 to memset and tweak conditions.
20773         (cond_exec_find_if_block): Fix long lines and tweak conditions.
20774
20775 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20776
20777         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
20778         for -gdwarf-4.
20779
20780         PR middle-end/43337
20781         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
20782         with non-local decl doesn't need chain.
20783
20784 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
20785
20786         * ira-color.c (allocno_reload_assign): Avoid accumulating
20787         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
20788
20789 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20790
20791         * gimple.h (create_tmp_reg): Declare.
20792         * gimplify.c (create_tmp_reg): New function.
20793         (gimplify_return_expr): Use create_tmp_reg.
20794         (gimplify_omp_atomic): Likewise.
20795         (gimple_regimplify_operands): Likewise.
20796         * tree-dfa.c (make_rename_temp): Likewise.
20797         * tree-predcom.c (predcom_tmp_var): Likewise.
20798         (reassociate_to_the_same_stmt): Likewise.
20799         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
20800         (get_replaced_param_substitute): Likewise.
20801         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20802         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
20803         * tree-ssa-pre.c (get_representative_for): Likewise.
20804         (create_expression_by_pieces): Likewise.
20805         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
20806         (create_tailcall_accumulator): Likewise.
20807
20808 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20809
20810         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
20811         new_stmt.
20812         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
20813
20814 2010-04-19  Richard Guenther  <rguenther@suse.de>
20815
20816         PR tree-optimization/43796
20817         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
20818         from SCEV in the lattice.
20819         (vrp_visit_phi_node): Dump change.
20820
20821 2010-04-19  Richard Guenther  <rguenther@suse.de>
20822
20823         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
20824         * configure: Re-generated.
20825
20826 2010-04-19  Richard Guenther  <rguenther@suse.de>
20827
20828         PR tree-optimization/43783
20829         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
20830         constant ARRAY_REF operands two and three if possible.
20831
20832 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
20833
20834         PR target/43766
20835         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
20836
20837 2010-04-19  Jie Zhang  <jie@codesourcery.com>
20838
20839         PR target/43662
20840         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
20841
20842 2010-04-19  Ira Rosen  <irar@il.ibm.com>
20843
20844         PR tree-optimization/37027
20845         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
20846         and macro to access it.
20847         (vectorizable_reduction): Add argument.
20848         (vect_get_slp_defs): Likewise.
20849         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
20850         statements for possible use in SLP.
20851         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
20852         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
20853         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
20854         add new argument.
20855         (vectorizable_reduction): Likewise.
20856         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
20857         vect_get_slp_defs.
20858         (vectorizable_type_demotion, vectorizable_type_promotion,
20859         vectorizable_store): Likewise.
20860         (vect_analyze_stmt): Update call to vectorizable_reduction.
20861         (vect_transform_stmt): Likewise.
20862         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
20863         (vect_build_slp_tree): Fix indentation. Check that there are no loads
20864         from different interleaving chains in same node.
20865         (vect_slp_rearrange_stmts): New function.
20866         (vect_supported_load_permutation_p): Allow load permutations for
20867         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
20868         inside SLP nodes if necessary.
20869         (vect_analyze_slp_instance): Handle reductions.
20870         (vect_analyze_slp): Try to build SLP instances originating from groups
20871         of reductions.
20872         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
20873         (vect_get_constant_vectors): Create initial vectors for reductions
20874         according to reduction code. Add new argument.
20875         (vect_get_slp_defs): Add new argument, pass it to
20876         vect_get_constant_vectors.
20877         (vect_schedule_slp_instance): Remove SLP tree root statements.
20878
20879 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20880
20881         * tree.h (ENUM_IS_SCOPED): Define.
20882         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
20883         for ENUM_IS_SCOPED enums.
20884
20885 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20886
20887         * fold-const.c (fold_comparison): Use ssizetype.
20888         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
20889         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
20890         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
20891         * tree-object-size.c (compute_object_sizes): Use size_type_node.
20892
20893         * tree.h (initialize_sizetypes): Remove parameter.
20894         (build_common_tree_nodes): Remove second parameter.
20895         * stor-layout.c (initialize_sizetypes): Remove parameter.
20896         Always create an unsigned type.
20897         (set_sizetype): Assert that the passed type is unsigned and simplify.
20898         * tree.c (build_common_tree_nodes): Remove second parameter.
20899         Adjust call to initialize_sizetypes.
20900         * c-decl.c (c_init_decl_processing): Remove second argument in call to
20901         build_common_tree_nodes.
20902
20903 2010-04-18  Matthias Klose  <doko@ubuntu.com>
20904
20905         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
20906
20907 2010-04-18  Ira Rosen  <irar@il.ibm.com>
20908
20909         PR tree-optimization/43771
20910         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
20911         load permutation doesn't have gaps.
20912
20913 2010-04-18  Jan Hubicka  <jh@suse.cz>
20914
20915         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
20916         (sse_prologue_save_insn expander): Use new pattern.
20917         (sse_prologue_save_insn1): New pattern and splitter.
20918         (sse_prologue_save_insn): Update to deal also with 64bit aligned
20919         blocks.
20920         * i386.c (setup_incoming_varargs_64): Do not compute jump
20921         destination here.
20922         (ix86_gimplify_va_arg): Update alignment needed.
20923         (ix86_local_alignment): Do not align all local arrays to 128bit.
20924
20925 2010-04-17  Jan Hubicka  <jh@suse.cz>
20926
20927         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
20928
20929 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20930
20931         * arm.md (negdi2): Remove redundant code to force values into a
20932         register.
20933
20934 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20935
20936         * arm/bpabi.S: Add EABI alignment attributes to objects.
20937         * arm/bpabi-v6m.S: Likewise.
20938         * arm/crti.asm: Likewise.
20939         * arm/crtn.asm: Likewise.
20940         * arm/lib1funcs.asm: Likewise.
20941         * arm/libunwind.S: Likewise.
20942
20943 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20944
20945         * arm-protos.h (tune_params): New structure.
20946         * arm.c (current_tune): New variable.
20947         (arm_constant_limit): Delete.
20948         (struct processors): Add pointer to the tune parameters.
20949         (arm_slowmul_tune): New tuning option.
20950         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
20951         (all_cores): Adjust to pick up the tuning model.
20952         (arm_constant_limit): New function.
20953         (arm_override_options): Select the appropriate tuning model.  Delete
20954         initialization of arm_const_limit.
20955         (arm_split_constant): Use the new constant-limit model.
20956         (arm_rtx_costs): Pick up the current tuning model.
20957         * arm.md (is_strongarm, is_xscale): Delete.
20958         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
20959         for Xscale variant architectures.
20960         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
20961
20962 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20963
20964         * config/arm/arm.c (arm_gen_constant): Remove unused variable
20965         can_shift.
20966         (arm_rtx_costs_1): Remove unused variable extra_cost.
20967         (arm_unwind_emit_set): Use variable offset.
20968         (thumb1_output_casesi): Remove unused variable flags.
20969
20970 2010-04-16  Jeff Law  <law@redhat.com>
20971
20972         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
20973         needing assignment rather than doing a two-phase assignment.  Remove
20974         unused variable 'm'.
20975
20976 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20977
20978         PR bootstrap/43767
20979         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
20980
20981 2010-04-16  Doug Kwan  <dougkwan@google.com>
20982
20983         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
20984         (next_operand_entry_id): New static variable.
20985         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
20986         (add_to_ops_vec): Assigned unique ID to operand entry.
20987         (struct oecount_s): New field ID.
20988         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
20989         (undistribute_ops_list): Assign unique IDs to oecounts.
20990         (init_reassoc): reset next_operand_entry_id.
20991
20992 2010-04-16  Doug Kwan  <dougkwan@google.com>
20993
20994         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
20995         missing left parenthesis.
20996
20997 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
20998
20999         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
21000         *btdi_rex64 using SWI48 mode iterator.
21001         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
21002         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
21003         *jcc_btdi_mask_rex64.
21004
21005 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
21006
21007         * double-int.h (tree_to_double_int): Convert to macro.
21008         * double-int.c (tree_to_double_int): Remove.
21009
21010 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21011
21012         PR debug/43762
21013         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
21014         with want_address 2 and in case a single element list might be
21015         possible, call it again with want_address 0.
21016
21017 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21018
21019         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
21020         case 'W' print operands for HI mode.
21021         * config/h8300/h8300.h (Y0, Y2) : New constraints.
21022         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
21023         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
21024         * config/h8300/predicate.md (bit_register_indirect_operand): New.
21025
21026         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
21027
21028         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
21029         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
21030         #xx:3 and #xx:4 mode.
21031
21032         * config/h8300/h8300.md (inverted load with HImode dest): Add
21033         support for H8300SX.
21034
21035         * config/h8300/predicate.md (bit_operand): Allow immediate values that
21036         satisfy 'U' constraint.
21037
21038 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21039
21040         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
21041         * configure: Regenerate.
21042         * config.in: Regenerate.
21043         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
21044         works.
21045
21046 2010-04-16  Richard Guenther  <rguenther@suse.de>
21047
21048         * tree.h (struct tree_decl_minimal): Move pt_uid ...
21049         (struct tree_decl_common): ... here.
21050         (DECL_PT_UID): Adjust.
21051         (SET_DECL_PT_UID): Likewise.
21052         (DECL_PT_UID_SET_P): Likewise.
21053
21054 2010-04-16  Richard Guenther  <rguenther@suse.de>
21055
21056         PR tree-optimization/43572
21057         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
21058         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
21059         * tree-flow.h (is_call_clobbered): Remove.
21060         * tree-flow-inline.h (is_call_clobbered): Likewise.
21061         * tree-dfa.c (dump_variable): Do not dump call clobber state.
21062         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
21063         (execute_return_slot_opt): Adjust.
21064         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
21065         check for call clobbered vars here.
21066         (find_tail_calls): Move tailcall verification to the
21067         proper place.
21068
21069 2010-04-16  Diego Novillo  <dnovillo@google.com>
21070
21071         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
21072
21073 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21074
21075         PR target/40603
21076         * config/arm/arm.md (cbranchqi4): New pattern.
21077         * config/arm/predicates.md (const0_operand,
21078         cbranchqi4_comparison_operator): New predicates.
21079
21080 2010-04-16  Richard Guenther  <rguenther@suse.de>
21081
21082         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
21083         (dump_gimple_stmt): Likewise.
21084
21085 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
21086
21087         * recog.h (struct recog_data): New field is_operator.
21088         (struct insn_operand_data): New field is_operator.
21089         * recog.c (extract_insn): Set recog_data.is_operator.
21090         * genoutput.c (output_operand_data): Emit code to set the
21091         is_operator field.
21092         * reload.c (find_reloads): Use it rather than testing for an
21093         empty constraint string.
21094
21095         PR target/41514
21096         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
21097         If the previous insn is a cbranchsi4_insn with the same arguments,
21098         omit the compare instruction.
21099
21100         * config/arm/arm.md (addsi3_cbranch): If destination is a high
21101         register, inputs must be low registers and we need a low register
21102         scratch.  Handle alternative 2 like alternative 3.
21103
21104 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
21105
21106         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
21107         don't call get_addr on both.  If one expression is a VALUE and
21108         the other a REG, check VALUE's locs if the REG isn't among them.
21109
21110 2010-04-16  Christian Bruel  <christian.bruel@st.com>
21111
21112         * config/sh/sh.h (sh_frame_pointer_required): New function.
21113         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
21114         (flag_omit_frame_pointer) Set.
21115         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
21116         (rounded_frame_size): Adjust size with outgoing_args_size.
21117         (sh_set_return_address): Must return from stack pointer.
21118         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
21119         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
21120         (ACCUMULATE_OUTGOING_ARGS): Define.
21121         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
21122         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
21123
21124 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21125
21126         PR target/43471
21127         * config/sh/sh.c (sh_legitimize_reload_address): Use
21128         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
21129         Remove a unneeded check for offset_base.
21130
21131 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
21132
21133         * configure: Regenerated.
21134
21135 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21136
21137         * config/s390/s390.c (s390_call_save_register_used): Switch back
21138         to HARD_REGNO_NREGS.
21139
21140 2010-04-15  Richard Guenther  <rguenther@suse.de>
21141
21142         * alias.c (alias_set_subset_of): Handle alias-set zero
21143         child properly.
21144
21145 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
21146             Julian Brown  <julian@codesourcery.com>
21147
21148         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
21149         alternatives according to use of high and low regs.
21150         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
21151         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
21152         optimizing for size on Thumb-2.
21153
21154 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
21155
21156         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
21157
21158 2010-04-15  Richard Guenther  <rguenther@suse.de>
21159
21160         * tree-ssa-structalias.c (struct variable_info): Add
21161         is_fn_info flag.
21162         (new_var_info): Initialize it.
21163         (dump_constraints): Support printing last added constraints.
21164         (debug_constraints): Adjust.
21165         (dump_constraint_graph): Likewise.
21166         (make_heapvar_for): Check for NULL cfun.
21167         (get_function_part_constraint): New function.
21168         (get_fi_for_callee): Likewise.
21169         (find_func_aliases): Properly implement IPA PTA constraints.
21170         (process_ipa_clobber): New function.
21171         (find_func_clobbers): Likewise.
21172         (insert_into_field_list_sorted): Remove.
21173         (create_function_info_for): Properly allocate vars for IPA mode.
21174         Do not use insert_into_field_list_sorted.
21175         (create_variable_info_for): Properly generate constraints for
21176         global vars in IPA mode.
21177         (dump_solution_for_var): Always dump the solution.
21178         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
21179         (find_what_var_points_to): Adjust.
21180         (pt_solution_set): Change.
21181         (pt_solution_ior_into): New function.
21182         (pt_solution_empty_p): Export.
21183         (pt_solution_includes_global): Adjust.
21184         (pt_solution_includes_1): Likewise.
21185         (pt_solutions_intersect_1): Likewise.
21186         (dump_sa_points_to_info): Check some invariants.
21187         (solve_constraints): Move constraint dumping ...
21188         (compute_points_to_sets): ... here.
21189         (ipa_pta_execute): ... and here.
21190         (compute_may_aliases): Do not re-compute points-to info
21191         locally if IPA info is available.
21192         (ipa_escaped_pt): New global var.
21193         (ipa_pta_execute): Properly implement IPA PTA.
21194         * tree-into-ssa.c (dump_decl_set): Support dumping
21195         decls not in referenced-vars.
21196         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
21197         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
21198         (dump_points_to_solution): Likewise.
21199         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
21200         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
21201         (remap_gimple_stmt): Reset call clobber/use information if necessary.
21202         (copy_decl_to_var): Copy DECL_PT_UID.
21203         (copy_result_decl_to_var): Likewise.
21204         * tree.c (make_node_stat): Initialize DECL_PT_UID.
21205         (copy_node_stat): Copy it.
21206         * tree.h (DECL_PT_UID): New macro.
21207         (SET_DECL_PT_UID): Likewise.
21208         (DECL_PT_UID_SET_P): Likewise.
21209         (struct tree_decl_minimal): Add pt_uid member.
21210         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
21211         (pt_solution_empty_p): Declare.
21212         (pt_solution_set): Adjust.
21213         (ipa_escaped_pt): Declare.
21214         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
21215         * gimple-pretty-print.c (pp_points_to_solution): New function.
21216         (dump_gimple_call): Dump call clobber/use information.
21217         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
21218         * tree-pass.h (TDF_ALIAS): New dump option.
21219         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
21220         * doc/invoke.texi (-fipa-pta): Update documentation.
21221
21222 2010-04-15  Richard Guenther  <rguenther@suse.de>
21223
21224         * Makefile.in (OBJS-common): Add gimple-fold.o.
21225         (gimple-fold.o): New rule.
21226         * tree.h (maybe_fold_offset_to_reference,
21227         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
21228         prototypes ...
21229         * gimple.h: ... here.
21230         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
21231         may_propagate_address_into_dereference): Move prototypes ...
21232         * gimple.h: ... here.
21233         * tree-ssa-ccp.c (get_symbol_constant_value,
21234         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
21235         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
21236         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
21237         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
21238         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
21239         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
21240         gimplify_and_update_call_from_tree): Move ...
21241         * gimple-fold.c: ... here.  New file.
21242         (ccp_fold_builtin): Rename to ...
21243         (gimple_fold_builtin): ... this.
21244         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
21245
21246 2010-04-15  Richard Guenther  <rguenther@suse.de>
21247
21248         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
21249         fit_double_type, force_fit_type_double, add_double_with_sign,
21250         neg_double, mul_double_with_sign, lshift_double, rshift_double,
21251         lrotate_double, rrotate_double, div_and_round_double): Move ...
21252         * double-int.c: ... here.
21253         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
21254         add_double, neg_double, mul_double_with_sign, mul_double,
21255         lshift_double, rshift_double, lrotate_double, rrotate_double,
21256         div_and_round_double): Move prototypes ...
21257         * double-int.h: ... here.
21258
21259 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
21260
21261         PR target/43742
21262         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
21263         matching constraints to ensure inputs match the output.
21264
21265 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
21266
21267         PR target/43742
21268         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
21269         in an input-only operand.
21270
21271 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
21272
21273         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
21274         (double_int_not, double_int_lshift, double_int_rshift): Declare.
21275         (double_int_negative_p): Convert to static inline function.
21276         * double-int.c (double_int_lshift, double_int_lshift): New functions.
21277         (double_int_negative_p): Remove.
21278         * tree.h (lshift_double, rshift_double):
21279         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
21280         * fold-const.c (fold_convert_const_int_from_real,
21281         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
21282         (lshift_double): Change type of arith argument to bool.
21283         (rshift_double): Change type of arith argument to bool. Correct
21284         comment.
21285         * expmed.c (mask_rtx, lshift_value): (Ditto.).
21286
21287 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
21288
21289         PR target/21803
21290         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
21291         at the start and end of the then/else blocks, and omit them from the
21292         conversion.
21293         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
21294         argument; all callers changed.  Pass zero to old_insns_match_p instead.
21295         (flow_find_head_matching_sequence): New function.
21296         (old_insns_match_p): Check REG_EH_REGION notes for calls.
21297         * basic-block.h (flow_find_cross_jump,
21298         flow_find_head_matching_sequence): Declare functions.
21299
21300 2010-04-14  Jason Merrill  <jason@redhat.com>
21301
21302         PR c++/36625
21303         * c-common.c (attribute_takes_identifier_p): New fn.
21304         * c-common.h: Declare it.
21305
21306 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21307
21308         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
21309         splitter condition.
21310         (*udivmod<mode>4): Ditto.
21311
21312 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21313
21314         * config/i386/i386.md (maxmin_int): Rename code attribute from
21315         maxminiprefix and update all users.
21316         (maxmin_float): Ditto from maxminfprefix.
21317         (logic): Ditto from logicprefix.
21318         (absneg_mnemonic): Ditto from absnegprefix.
21319         * config/i386/mmx.md: Update all users of maxminiprefix,
21320         maxminfprefix and logicprefix for rename.
21321         * config/i386/sse.md: Ditto.
21322         * config/i386/sync.md (sync_<code><mode>): Update for
21323         logicprefix rename.
21324
21325 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21326
21327         PR 42966
21328         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
21329         warnings converted to errors.
21330
21331 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21332
21333         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
21334         used insn_type variable.
21335         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
21336         to avoid set-but-not-used warning.
21337
21338 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21339
21340         * df-core.c (df_ref_debug): Change format string placeholder
21341         from 0x%x to %#x.
21342         * dwarf2asm.c (dw2_asm_output_data_raw,
21343         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
21344         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
21345         * dwarf2out.c (output_cfi, output_cfi_directive,
21346         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
21347         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
21348         Ditto.
21349         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
21350         * print-rtl.c (print_rtx): Ditto.
21351
21352 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21353
21354         PR middle-end/42694
21355         * builtins.c (expand_builtin_pow_root): New function to expand pow
21356         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
21357         series of sqrt and cbrt calls under -ffast-math.
21358         (expand_builtin_pow): Call it.
21359
21360 2010-04-14  Michael Matz  <matz@suse.de>
21361
21362         PR tree-optimization/42963
21363         * tree-cfg.c (touched_switch_bbs): New static variable.
21364         (group_case_labels_stmt): New function broken out from ...
21365         (group_case_labels): ... here, use the above.
21366         (start_recording_case_labels): Allocate touched_switch_bbs.
21367         (end_recording_case_labels): Deallocate it, call
21368         group_case_labels_stmt.
21369         (gimple_redirect_edge_and_branch): Remember index of affected BB.
21370
21371 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21372
21373         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
21374         from insn template.
21375
21376 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21377
21378         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
21379
21380 2010-04-13  Jan Hubicka  <jh@suse.cz>
21381
21382         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
21383         of optimized out static functions.
21384         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
21385         cost computation.  Also sanity check for overflows.
21386         (update_caller_keys): Update cgraph_edge_badness call; properly
21387         update fibheap and sanity check that it is up to date.
21388         (add_new_edges_to_heap): Update cgraph_edge_badness.
21389         (cgraph_decide_inlining_of_small_function): Likewise;
21390         add sanity checking that badness in heap is up to date;
21391         improve dumping of reason; Update badness of calls to the
21392         offline copy of function currently inlined; dump badness
21393         of functions not inlined because of unit growth limits.
21394
21395 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21396
21397         PR middle-end/32628
21398         * c-common.c (pointer_int_sum): Disregard overflow that occured only
21399         because of sign-extension change when converting to sizetype here...
21400         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
21401
21402         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
21403         the folding to constants.  Remove redundant final conversion.
21404         (fold_binary) <associate>: Do not associate if the re-association of
21405         constants alone overflows.
21406         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
21407         to the end of the list.
21408         (multiple_of_p) <COND_EXPR>: New case.
21409
21410 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21411
21412         * opt-functions.awk (opt_sanitized_name): New.
21413         (opt_enum): New.
21414         * optc-gen.awk: Use it
21415         * opth-gen.awk: Use it.
21416
21417 2010-04-13  Martin Jambor  <mjambor@suse.cz>
21418
21419         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
21420         (sra_modify_assign): Delete stmts loading dead data even if racc has no
21421         children.  Call replace_uses_with_default_def_ssa_name to handle
21422         SSA_NAES on lhs.
21423
21424 2010-04-13  Michael Matz  <matz@suse.de>
21425
21426         PR middle-end/43730
21427         * builtins.c (expand_builtin_interclass_mathfn): Also create
21428         a register if the predicate doesn't match.
21429
21430 2010-04-13  Diego Novillo  <dnovillo@google.com>
21431
21432         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
21433         * c-pch.c: Include timevar.h.
21434         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
21435         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
21436         * ggc-common.c: Include timevar.h.
21437         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
21438         * timevar.def (TV_PCH_SAVE): Define.
21439         (TV_PCH_CPP_SAVE): Define.
21440         (TV_PCH_PTR_REALLOC): Define.
21441         (TV_PCH_PTR_SORT): Define.
21442         (TV_PCH_RESTORE): Define.
21443         (TV_PCH_CPP_RESTORE): Define.
21444
21445 2010-04-13  Michael Matz  <matz@suse.de>
21446
21447         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
21448         into MINUS_EXPRs.
21449         (can_reassociate_p): New function.
21450         (break_up_subtract_bb, reassociate_bb): Use it.
21451
21452 2010-04-13  Richard Guenther  <rguenther@suse.de>
21453
21454         PR bootstrap/43737
21455         * builtins.c (c_readstr): Fix assert.
21456
21457 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
21458
21459         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
21460         when generating cltd insn.
21461
21462         (*ashl<mode>3_1): Remove special handling for register operand 2.
21463         (*ashlsi3_1_zext): Ditto.
21464         (*ashlhi3_1): Ditto.
21465         (*ashlhi3_1_lea): Ditto.
21466         (*ashlqi3_1): Ditto.
21467         (*ashlqi3_1_lea): Ditto.
21468         (*<shiftrt_insn><mode>3_1): Ditto.
21469         (*<shiftrt_insn>si3_1_zext): Ditto.
21470         (*<shiftrt_insn>qi3_1_slp): Ditto.
21471         (*<rotate_insn><mode>3_1): Ditto.
21472         (*<rotate_insn>si3_1_zext): Ditto.
21473         (*<rotate_insn>qi3_1_slp): Ditto.
21474
21475 2010-04-13  Richard Guenther  <rguenther@suse.de>
21476
21477         * tree-ssa-structalias.c (callused_id): Remove.
21478         (call_stmt_vars): New.
21479         (get_call_vi): Likewise.
21480         (lookup_call_use_vi): Likewise.
21481         (lookup_call_clobber_vi): Likewise.
21482         (get_call_use_vi): Likewise.
21483         (get_call_clobber_vi): Likewise.
21484         (make_transitive_closure_constraints): Likewise.
21485         (handle_const_call): Adjust to do per-call call-used handling.
21486         (handle_pure_call): Likewise.
21487         (find_what_var_points_to): Remove general callused handling.
21488         (init_base_vars): Likewise.
21489         (init_alias_vars): Initialize call_stmt_vars.
21490         (compute_points_to_sets): Process call-used and call-clobbered
21491         vars for call statements.
21492         (delete_points_to_sets): Free call_stmt_vars.
21493
21494 2010-04-13  Richard Guenther  <rguenther@suse.de>
21495
21496         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21497         Only add RW dependence for dependence distance zero.
21498         Adjust maximal vectorization factor according to dependences.
21499         Move alignment handling ...
21500         (vect_find_same_alignment_drs): ... here.  New function.
21501         (vect_analyze_data_ref_dependences): Adjust.
21502         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
21503         (vect_analyze_data_refs): Adjust minimal vectorization factor
21504         according to data references.
21505         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
21506         dependences before determining the vectorization factor.
21507         Analyze alignment after determining the vectorization factor.
21508         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
21509         dependences before alignment.
21510         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
21511         Adjust prototype.
21512         (vect_analyze_data_refs): Likewise.
21513         (MAX_VECTORIZATION_FACTOR): New define.
21514
21515 2010-04-13  Duncan Sands  <baldrick@free.fr>
21516
21517         * except.h (lang_eh_type_covers): Remove.
21518         * except.c (lang_eh_type_covers): Likewise.
21519
21520 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21521             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21522
21523         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
21524         * config/s390/s390.c: Replace UNTIS_PER_WORD with
21525         UNITS_PER_LONG where it is ABI relevant.
21526         (s390_return_addr_rtx): Likewise.
21527         (s390_back_chain_rtx): Likewise.
21528         (s390_frame_area): Likewise.
21529         (s390_frame_info): Likewise.
21530         (s390_initial_elimination_offset): Likewise.
21531         (save_gprs): Likewise.
21532         (s390_emit_prologue): Likewise.
21533         (s390_emit_epilogue): Likewise.
21534         (s390_function_arg_advance): Likewise.
21535         (s390_function_arg): Likewise.
21536         (s390_va_start): Likewise.
21537         (s390_gimplify_va_arg): Likewise.
21538         (s390_function_profiler): Likewise.
21539         (s390_optimize_prologue): Likewise.
21540         (s390_rtx_costs): Likewise.
21541         (s390_secondary_reload): Likewise.
21542         (s390_promote_function_mode): Likewise.
21543         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
21544         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
21545         registers available.
21546         (s390_unwind_word_mode): New function.
21547         (s390_function_value): Split 64 bit values into register pair if
21548         used as return value.
21549         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
21550         function call parameters.  Handle parallels.
21551         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
21552         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
21553         (DWARF_CIE_DATA_ALIGNMENT): New macro.
21554         (s390_expand_setmem): Remove unused variable src_addr.
21555         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
21556         deal with 64 bit registers.
21557         * config/s390/s390.h: Define __zarch__ predefined macro.
21558         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
21559         (UNITS_PER_LONG): New macro.
21560         * libjava/include/s390-signal.h: Define extended ucontext
21561         structure containing the upper halfs of the 64 bit registers.
21562
21563 2010-04-13  Simon Baldwin  <simonb@google.com>
21564
21565         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
21566
21567 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21568
21569         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
21570         rvalue on the RHS if the LHS is of a non-renamable type.
21571         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
21572
21573 2010-04-13  Matthias Klose  <doko@ubuntu.com>
21574
21575         * gcc.c (cc1_options): Handle -iplugindir before processing
21576         the cc1 spec. Only add -iplugindir once.
21577         (cpp_unique_options): Add -iplugindir option if -fplugin* options
21578         found.
21579         * common.opt (iplugindir): Remove `Separate' property, initialize.
21580         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
21581         option.
21582         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
21583         (distclean): Remove plugin dir.
21584         * doc/invoke.texi: Document -iplugindir.
21585
21586 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
21587
21588         * doc/plugins.texi (Loading Plugins): Document short
21589         -fplugin=foo option.
21590         (Plugin API): Mention default_plugin_dir_name function.
21591
21592         * gcc.c (find_file_spec_function): Add new declaration.
21593         (static_spec_func): Use it for "find-file".
21594         (find_file_spec_function): Add new function.
21595         (cc1_options): Add -iplugindir option if -fplugin* options found.
21596
21597         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
21598
21599         * plugin.c (add_new_plugin): Updated comment, and handle short
21600         plugin name.
21601         (default_plugin_dir_name): Added new function.
21602
21603         * common.opt (iplugindir): New option to set the plugin directory.
21604
21605 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
21606
21607         * config/i386/i386.md (any_rotate): New code iterator.
21608         (rotate_insn): New code attribute.
21609         (rotate): Ditto.
21610         (SWIM124): New mode iterator.
21611         (<rotate_insn>ti3): New expander.
21612         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
21613         any_rotate code iterator.
21614         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
21615         using any_rotate code iterator and SWIM124 mode iterator.
21616         (ix86_rotlti3): New insn_and_split pattern.
21617         (ix86_rotrti3): Ditto.
21618         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
21619         ix86_rotl{di,ti}3 patterns.
21620         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
21621         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
21622         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
21623         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
21624         code iterator and SWI mode iterator.
21625         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
21626         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
21627         code iterator.
21628         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
21629         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
21630         (bswap rotatert splitter): Add splitter.
21631         (bswap splitter): Macroize splitter using any_rotate code iterator.
21632         Add insn predicate to split only for TARGET_USE_XCHGB or when
21633         optimizing function for size.
21634
21635 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21636
21637         * config/pa/pa.c (emit_move_sequence): Remove use of
21638         deleted variable flag_argument_noalias.
21639
21640 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21641
21642         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
21643         configurations.
21644         Add to unsupported targets list.
21645         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
21646         sparc*-sun-solaris2.[567]* from target lists.
21647         * configure: Regenerate.
21648         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
21649         removal.
21650         Remove Solaris 7 patch references.
21651         (Specific, sparc-sun-solaris2.7): Removed.
21652         (sparc-sun-solaris2*): Update Solaris 7 example.
21653         (sparc64-*-solaris2*): Likewise.
21654
21655 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21656
21657         * config.build (alpha*-dec-osf4*): Remove.
21658         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
21659         of obsolete configurations.
21660         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
21661         support.
21662         * config/alpha/t-osf4: Renamed to ...
21663         * config/alpha/t-osf5: ... this.
21664         * config/alpha/osf.h: Renamed to ...
21665         * config/alpha/osf5.h: ... this.
21666         Merged old osf5.h contents.
21667         Update comments.
21668         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
21669         (EXTRA_SPECS): Removed.
21670         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
21671         reflect removal of Tru64 UNIX V4.0/V5.0 support.
21672         Document that.
21673
21674 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21675
21676         * doc/contrib.texi (Contributors, Rainer Orth): Update.
21677
21678 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
21679
21680         PR/43702
21681         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
21682         __thiscall convention.
21683
21684 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21685
21686         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
21687         orig_base.
21688         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
21689
21690 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21691
21692         * function.c (assign_parms_initialize_all): Add unused attribute
21693         to fntype.
21694
21695 2010-04-12  Richard Guenther  <rguenther@suse.de>
21696
21697         * gsstruct.def (GSS_CALL): New.
21698         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
21699         * gimple.h: Include tree-ssa-alias.h.
21700         (struct gimple_statement_call): New.
21701         (union gimple_statement_struct_d): Add gimple_call member.
21702         (gimple_call_reset_alias_info): Declare.
21703         (gimple_call_use_set): New function.
21704         (gimple_call_clobber_set): Likewise.
21705         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
21706         * gimple.c (gimple_call_reset_alias_info): New function.
21707         (gimple_build_call_1): Call it.
21708         * lto-streamer-in.c (input_gimple_stmt): Likewise.
21709         * tree-inline.c (remap_gimple_stmt): Likewise.
21710         (expand_call_inline): Remove callused handling.
21711         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
21712         * tree-dfa.c (dump_variable): Likewise.
21713         * tree-parloops.c (parallelize_loops): Likewise.
21714         * tree-ssa.c (init_tree_ssa): Likewise.
21715         (delete_tree_ssa): Likewise.
21716         * tree-flow-inline.h (is_call_used): Remove.
21717         * tree-flow.h (struct gimple_df): Remove callused member.
21718         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
21719         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
21720         (ref_maybe_used_by_call_p_1): Simplify.
21721         (call_may_clobber_ref_p_1): Likewise.
21722         * tree-ssa-structalias.c (compute_points_to_sets): Set
21723         the call stmt used and clobbered sets.
21724         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
21725         (find_tail_calls): Verify the tail call.
21726
21727 2010-04-12  Richard Guenther  <rguenther@suse.de>
21728
21729         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
21730         single-iteration always-inline inlining.
21731         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
21732         (cgraph_decide_inlining): Do not handle always-inline specially.
21733         (try_inline): Remove always-inline cycle detection special case.
21734         Do not recurse on always-inlines.
21735         (cgraph_early_inlining): Do not iterate if not optimizing.
21736         (cgraph_gate_early_inlining): remove.
21737         (pass_early_inline): Run unconditionally.
21738         (gate_cgraph_decide_inlining): New function.
21739         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
21740         not inlining or optimizing.
21741         (cgraph_decide_inlining_of_small_functions): Also consider
21742         always-inline functions.
21743         (cgraph_default_inline_p): Return true for nodes which should
21744         disregard inline limits.
21745         (estimate_function_body_sizes): Assume zero size and time for
21746         nodes which are marked as disregarding inline limits.
21747         (cgraph_decide_recursive_inlining): Do not perform recursive
21748         inlining on always-inline nodes.
21749
21750 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
21751
21752         PR bootstrap/43699
21753         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
21754         for exprs satisfying handled_component_p.
21755
21756 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
21757
21758         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
21759         non-constant aggregate elements.
21760
21761         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
21762         is a real initialization.
21763
21764 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
21765
21766         PR c/36774
21767         * c-decl.c (start_function): Move forward check for nested function.
21768
21769 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
21770
21771         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
21772         * config/sh/sh.c: Include reload.h.
21773         (sh_legitimize_reload_address): New.
21774         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
21775         sh_legitimize_reload_address.
21776
21777 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21778
21779         * config/sh/sh.md (*movqi_pop): New insn pattern.
21780         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
21781
21782 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21783
21784         * config/i386/i386.md (any_shiftrt): New code iterator.
21785         (shiftrt_insn): New code attribute.
21786         (shiftrt): Ditto.
21787         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
21788         using any_shiftrt code iterator.
21789         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
21790         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
21791         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
21792         pattern from corresponding peephole2 patterns.
21793         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
21794         using any_shiftrt code iterator.
21795         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
21796         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
21797         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
21798         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
21799         *{ashr,lshr}<mode>3_cmp_zext.
21800         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
21801
21802 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21803
21804         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
21805         scratch register.
21806         (*lshr<mode>3_cconly): Ditto.
21807
21808 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21809
21810         * config/i386/i386.md (lshr<mode>3): Macroize expander from
21811         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21812         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21813         pattern from *lshr{di,ti}3_1 and corresponding splitters using
21814         DWI mode iterator.
21815         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21816         from corresponding peephole2 patterns.
21817         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
21818         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
21819         and *lshrdi3_1_rex64 using SWI mode iterator.
21820         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
21821         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
21822         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
21823         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
21824         and *lshrdi3_cmp_rex64 using SWI mode iterator.
21825         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
21826         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
21827         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
21828         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
21829         SWI mode iterator.
21830
21831 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
21832
21833         * config/i386/i386.md (ashr<mode>3): Macroize expander from
21834         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21835         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21836         pattern from *ashr{di,ti}3_1 and corresponding splitters using
21837         DWI mode iterator.
21838         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21839         from corresponding peephole2 patterns.
21840         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
21841         (ashrsi3_cvt): Rename from ashrsi3_31.
21842         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
21843         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
21844         and x86_64_shift_adj_3 using SWI48 mode iterator.
21845         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
21846         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
21847         and *ashrdi3_1_rex64 using SWI mode iterator.
21848         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
21849         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
21850         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
21851         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
21852         and *ashrdi3_cmp_rex64 using SWI mode iterator.
21853         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
21854         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
21855         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
21856         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
21857         SWI mode iterator.
21858         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
21859         * config/i386/i386.c (ix86_split_ashr): Update for renamed
21860         x86_shift<mode>_adj_3 expanders.
21861
21862 2010-04-10  Wei Guozhi  <carrot@google.com>
21863
21864         PR target/42601
21865         * config/arm/arm.c (arm_pic_static_addr): New function.
21866         (legitimize_pic_address): Call arm_pic_static_addr when it detects
21867         a static symbol.
21868         (arm_output_addr_const_extra): Output expression for new pattern.
21869         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
21870
21871 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
21872
21873         * ira-costs.c (record_reg_classes): Ignore alternatives that are
21874         not enabled.
21875
21876         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
21877         * web.c: Include "insn-config.h" and "recog.h".
21878         (union_match_dups): New function.
21879         (web_main): Call it.
21880         (union_defs): Don't try to recognize match_dups.
21881
21882         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
21883         if doing so would replace the entire pattern.
21884
21885 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21886
21887         PR target/43707
21888         PR target/43709
21889         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
21890         and splitter pattern.  Change splitter operand 1 predicate to
21891         nonmemory_operand.
21892
21893 2010-04-09  Martin Jambor  <mjambor@suse.cz>
21894
21895         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
21896         lattices are addresses of CONST_DECLs with the same initial value.
21897         (ipcp_print_all_lattices): Print values of CONST_DECLs.
21898         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
21899
21900 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
21901             Bernd Schmidt  <bernds@codesourcery.com>
21902
21903         * loop-invariant.c (replace_uses): New static function.
21904         (move_invariant_reg): Use it to ensure we can replace the uses.
21905
21906 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21907
21908         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
21909         function template.
21910         (picochip_override_options): Enable section anchors only above -O1.
21911         (picochip_reorg): Fixed a couple of build warnings.
21912
21913 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21914
21915         * configure.ac (plugin -rdynamic test): Log result.
21916         * configure: Regenerate.
21917         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
21918         (RDYNAMIC_SPEC): Define.
21919         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
21920
21921 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21922
21923         * configure.ac: Determine Sun ld version numbers.
21924         (comdat_group): Restrict GNU ld version checks to gld.
21925         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
21926         (enable_comdat): Support --enable-comdat.
21927         * configure: Regenerate.
21928         * doc/install.texi (Configuration): Document --enable-comdat.
21929
21930 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21931
21932         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
21933         * config/sol2-gld.h: ... here.
21934         * config.gcc (sparc*-*-solaris2*): Reflect this.
21935         (i[34567]86-*-solaris2*): Use it.
21936
21937 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
21938
21939         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
21940         setup_clocks_p.
21941         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
21942
21943 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21944
21945         PR 42965
21946         * diagnostic.c (diagnostic_initialize): Initialize
21947         some_warnings_are_errors.
21948         (diagnostic_finish): New.
21949         (diagnostic_action_after_output): Call it before exiting.
21950         (diagnostic_report_diagnostic): Do not print message here. Set
21951         some_warnings_are_errors.
21952         * diagnostic.h (diagnostic_context): Delete
21953         issue_warnings_are_errors_message. Add some_warnings_are_errors.
21954         (diagnostic_finish): Declare.
21955         * toplev.c (toplev_main): Call it before exit.
21956
21957 2010-04-09  Jason Merrill  <jason@redhat.com>
21958
21959         PR c++/42623
21960         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
21961         for incomplete type.
21962
21963         PR c++/41788
21964         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
21965         based on a warning flag.
21966
21967 2010-04-09  Richard Guenther  <rguenther@suse.de>
21968
21969         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
21970
21971 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
21972
21973         PR bootstrap/43684
21974         * varasm.c (default_assemble_visibility): Wrap vars that are
21975         set, but unused, by targets without GAS.
21976         * config/rs6000/rs6000.c (paired_emit_vector_compare):
21977         Remove set, but unused, vars.
21978         (rs6000_legitimize_tls_address): Likewise.
21979         (altivec_expand_dst_builtin): Likewise.
21980         * config/darwin.c (machopic_classify_symbol): Likewise.
21981         (machopic_indirection_name): Likewise.
21982
21983 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21984
21985         * config/i386/i386.md (DWI): New mode iterator.
21986         (S): New mode attribute.
21987         (shift_operand): Ditto.
21988         (shift_immediate_operand): Ditto.
21989         (ashl_input_operand): Ditto.
21990         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
21991         using SDWIM mode iterator.
21992         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21993         pattern from *ashl{di,ti}3_1 and corresponding splitters using
21994         DWI mode iterator.
21995         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
21996         from corresponding peephole2 patterns.
21997         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
21998         and x86_64_shift_adj_1 using SWI48 mode iterator.
21999         (x86_shift<mode>_adj_2): Ditto.
22000         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
22001         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
22002         using SWI48 mode iterator.
22003         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
22004         *ashldi3_cmp_rex64 using SWI mode iterator.
22005         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
22006         *ashldi3_cconly_rex64 using SWI mode iterator.
22007         * config/i386/i386.c (ix86_split_ashl): Update for renamed
22008         x86_shift<mode>_adj_{1,2}.
22009         (ix86_split_ashr): Ditto.
22010         (ix86_split_lshr): Ditto.
22011
22012 2010-04-09  Richard Guenther  <rguenther@suse.de>
22013
22014         * target.h (builtin_conversion): Pass in input and output types.
22015         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
22016         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
22017         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
22018         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
22019
22020         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
22021         Handle AVX modes.
22022         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
22023
22024 2010-04-09  Richard Guenther  <rguenther@suse.de>
22025
22026         PR target/43152
22027         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
22028
22029 2010-04-09  Richard Guenther  <rguenther@suse.de>
22030
22031         * tree-vectorizer.h (struct _stmt_vec_info): Document
22032         that vectype is the type of the LHS.
22033         (supportable_widening_operation, supportable_narrowing_operation):
22034         Get both input and output vector types as arguments.
22035         (vect_is_simple_use_1): Declare.
22036         (get_same_sized_vectype): Likewise.
22037         * tree-vect-loop.c (vect_determine_vectorization_factor):
22038         Set STMT_VINFO_VECTYPE to the vector type of the def.
22039         (vectorizable_reduction): Adjust.
22040         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
22041         Adjust.  Specify the output vector type.
22042         (vect_pattern_recog_1): Adjust.
22043         * tree-vect-stmts.c (get_same_sized_vectype): New function.
22044         (vectorizable_call): Adjust.
22045         (vectorizable_conversion): Likewise.
22046         (vectorizable_operation): Likewise.
22047         (vectorizable_type_demotion): Likewise.
22048         (vectorizable_type_promotion): Likewise.
22049         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
22050         the def.
22051         (vect_is_simple_use_1): New function.
22052         (supportable_widening_operation): Get both input and output
22053         vector types.
22054         (supportable_narrowing_operation): Likewise.
22055         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
22056
22057 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
22058
22059         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
22060         __thiscall and _thiscall as predefined macros.
22061         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
22062         thiscall attribute handling.
22063         (ix86_comp_type_attributes): Likewise.
22064         (ix86_function_regparm): Likewise.
22065         (ix86_return_pops_args): Likewise.
22066         (init_cumulative_args): Likewise.
22067         (find_drap_reg): Likewise.
22068         (ix86_static_chain): Likewise.
22069         (x86_this_parameter): Likewise.
22070         (x86_output_mi_thunk): Likewise.
22071         (ix86_attribute_table): Add description for thiscall attribute.
22072         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
22073         * doc/extend.texi: Add documentation for thiscall.
22074
22075 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22076
22077         PR c++/28584
22078         * c.opt (Wint-to-pointer-cast): Available in C++.
22079         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
22080
22081 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
22082
22083         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
22084         * calls.c (expand_call): Pass the function type to aggregate_value_p.
22085         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
22086         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
22087         function type instead.  Reorder and simplify checks.
22088
22089         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
22090
22091 2010-04-08  Jing Yu  <jingyu@google.com>
22092             Zdenek Dvorak  <ook@ucw.cz>
22093
22094         PR tree-optimization/42720
22095         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
22096         loop unswitch conditions here from ...
22097         (tree_unswitch_single_loop): ... here.
22098
22099 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22100
22101         * tree-if-conv.c: Fix comments and simplify logic.
22102
22103 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
22104
22105         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
22106         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
22107         (main_tree_if_conversion): Update call to tree_if_conversion.
22108
22109 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22110
22111         PR 42485
22112         * doc/invoke.texi (-b,-V): Delete.
22113         * doc/tm.texi: Do not mention -b.
22114         * gcc.c (display_help): Delete -b and -V.
22115         (process_command): Delete -b and -V.
22116         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
22117
22118 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
22119             Wolfgang Gellerich  <gellerich@de.ibm.com>
22120
22121         Implement target hook for loop unrolling
22122         * target.h (loop_unroll_adjust): Add a new target hook function.
22123         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
22124         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
22125         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
22126         (s390_loop_unroll_adjust): Implement the new target hook for s390.
22127         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
22128         target hook.
22129         (decide_unroll_stupid): Likewise.
22130
22131 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22132
22133         PR target/43643
22134         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
22135
22136 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22137
22138         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
22139         (Specific, *-*-solaris2*): Likewise.
22140         Don't prefer Sun as over GNU as.
22141
22142 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
22143
22144         * config/s390/s390.c (override_options): Adjust the z10 defaults
22145         for max-unroll-times, max-completely-peeled-insns
22146         and max-completely-peel-times.
22147
22148 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22149
22150         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
22151         instructions for z10.
22152         (s390_expand_setmem): Likewise.
22153         (s390_expand_cmpmem): Likewise.
22154
22155 2010-04-08  Richard Guenther  <rguenther@suse.de>
22156
22157         PR tree-optimization/43679
22158         * tree-ssa-pre.c (eliminate): Only propagate copies.
22159
22160 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22161
22162         PR bootstrap/43681
22163         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
22164         set but not used variable warning.
22165
22166 2010-04-08  Wei Guozhi  <carrot@google.com>
22167
22168         PR target/41653
22169         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
22170         (arm_size_rtx_costs): Call the new function when optimized for size.
22171
22172 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
22173
22174         PR debug/43670
22175         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
22176         op0 is not a MEM, just return NULL instead of assertion
22177         failure.
22178         (discover_nonconstant_array_refs): Don't walk debug stmts.
22179
22180 2010-04-08  Doug Kwan  <dougkwan@google.com>
22181
22182         * configure.ac: Recognize gold and do not use its version number
22183         to test ld features.
22184         * configure: Regenerate.
22185
22186 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
22187
22188         PR middle-end/40815
22189         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
22190         (negate_value): Move code to push elements to broken_up_substracts ...
22191         (eliminate_plus_minus_pair): ... here.  Push operands that have no
22192         negative pair to plus_negates.
22193         (repropagate_negates, init_reassoc, fini_reassoc): Update.
22194
22195 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22196
22197         * doc/install.texi (Configuration): Move description of
22198         --enable-lto, --with-libelf*, --enable-gold from Java section to
22199         general section.
22200
22201         * doc/generic.texi (Working with declarations)
22202         (Function Properties, C and C++ Trees): Fix typos.
22203         * doc/sourcebuild.texi (Top Level): Likewise.
22204
22205 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22206
22207         PR c/18624
22208         * tree.h (DECL_READ_P): Define.
22209         (struct tree_decl_common): Add decl_read_flag.
22210         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
22211         a set but not used warning.
22212         (merge_decls): Merge DECL_READ_P flag.
22213         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
22214         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
22215         * c-common.c (handle_used_attribute, handle_unused_attribute):
22216         Likewise.
22217         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
22218         New prototypes.
22219         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
22220         New functions.
22221         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
22222         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
22223         c_parser_binary_expression, c_parser_cast_expression,
22224         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
22225         Call default_function_array_read_conversion instead of
22226         default_function_array_conversion where needed.
22227         (c_parser_unary_expression, c_parser_conditional_expression,
22228         c_parser_postfix_expression_after_primary, c_parser_initelt):
22229         Likewise.  Call mark_exp_read where needed.
22230         (c_parser_statement_after_labels, c_parser_asm_operands,
22231         c_parser_typeof_specifier, c_parser_sizeof_expression,
22232         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
22233         where needed.
22234         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
22235         New.
22236         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
22237         (warn_unused_but_set_parameter): Default to warn_unused
22238         && extra_warnings.
22239         * doc/invoke.texi: Document -Wunused-but-set-variable and
22240         -Wunused-but-set-parameter.
22241
22242         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
22243         used count variable.
22244         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
22245         when operandN variables aren't used in the body of the expander
22246         or splitter.
22247         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
22248         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
22249         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
22250         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
22251         FOR_EACH_IMM_USE_ON_STMT): Likewise.
22252         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
22253         * tree.c (PROCESS_ARG): Likewise.
22254
22255 2010-04-07  Simon Baldwin  <simonb@google.com>
22256
22257         * diagnostic.h (diagnostic_override_option_index): New macro to
22258         set a diagnostic's option_index.
22259         * c-tree.h (c_cpp_error): Add warning reason argument.
22260         * opts.c (_warning_as_error_callback): New.
22261         (register_warning_as_error_callback): Store callback for
22262         warnings enabled via enable_warning_as_error.
22263         (enable_warning_as_error): Call callback, minor code tidy.
22264         * opts.h (register_warning_as_error_callback): Declare.
22265         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
22266         response to -Werror=.
22267         (c_common_init_options): Register warning_as_error_callback in opts.c.
22268         * common.opt: Add -Wno-cpp option.
22269         * c-common.c (struct reason_option_codes_t): Map cpp warning
22270         reason codes to gcc option indexes.
22271         * (c_option_controlling_cpp_error): New function, lookup the gcc
22272         option index for a cpp warning reason code.
22273         * (c_cpp_error): Add warning reason argument, call
22274         c_option_controlling_cpp_error for diagnostic_override_option_index.
22275         * doc/invoke.texi: Document -Wno-cpp.
22276
22277 2010-04-07  Richard Guenther  <rguenther@suse.de>
22278
22279         * ipa-reference.c (mark_load): Use get_base_address.
22280         (mark_store): Likewise.
22281
22282         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
22283         inserting GIMPLE_NOPs into the IL.
22284         * tree-ssa-structalias.c (get_constraint_for_component_ref):
22285         Explicitly strip handled components and indirect references.
22286
22287         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
22288         folding address expressions.
22289         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
22290         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
22291         operand_equal_p to compare decls.
22292         (ptr_deref_may_alias_decl_p): Likewise.
22293         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
22294         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
22295         Handle reversed comparison ops.
22296         * tree-sra.c (asm_visit_addr): Use get_base_address.
22297         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
22298         * ipa-reference.c (mark_address): Use get_base_address.
22299
22300 2010-04-07  Richard Guenther  <rguenther@suse.de>
22301
22302         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
22303         Propagate constants everywhere.
22304
22305 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
22306
22307         PR debug/43516
22308         * tree.c (MAX_INT_CACHED_PREC): Define.
22309         (nonstandard_integer_type_cache): New array.
22310         (build_nonstandard_integer_type): Cache results for precision
22311         <= MAX_INT_CACHED_PREC.
22312
22313 2010-04-07  Richard Guenther  <rguenther@suse.de>
22314
22315         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
22316         -fargument-noalias-global, -fargument-noalias-anything): Remove.
22317         * common.opt: Likewise.
22318         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
22319         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
22320         (nonoverlapping_memrefs_p): Likewise.
22321         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22322         * opts.c (common_handle_option): Handle OPT_fargument_alias,
22323         OPT_fargument_noalias, OPT_fargument_noalias_anything and
22324         OPT_fargument_noalias_global for backward compatibility.
22325
22326 2010-04-07  Richard Guenther  <rguenther@suse.de>
22327
22328         PR tree-optimization/43270
22329         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
22330         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
22331         * tree-ssa-pre.c (phi_translate_1): Adjust.
22332         (fully_constant_expression): Split out vn_reference handling to ...
22333         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
22334         Fold reads from constant strings.
22335         (vn_reference_lookup): Handle fully constant references.
22336         (vn_reference_lookup_pieces): Likewise.
22337         * Makefile.in (expmed.o-warn): Add -Wno-error.
22338
22339 2010-04-07  Martin Jambor  <mjambor@suse.cz>
22340
22341         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
22342
22343 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
22344
22345         PR driver/41594
22346         * gcc.c: Add -static-libstdc++ to list of recognized options.
22347
22348 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22349
22350         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
22351
22352 2010-04-07  Richard Guenther  <rguenther@suse.de>
22353
22354         PR middle-end/42617
22355         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
22356         bases build simple mem attributes to retain points-to information.
22357
22358 2010-04-07  Richard Guenther  <rguenther@suse.de>
22359
22360         PR middle-end/42617
22361         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
22362         preserve points-to related information.
22363
22364 2010-04-07  Richard Guenther  <rguenther@suse.de>
22365
22366         PR middle-end/42617
22367         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
22368         discard plain indirect references.
22369         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
22370         * tree.c (tree_nop_conversion): Likewise.
22371
22372 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
22373
22374         PR debug/43628
22375         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
22376
22377 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
22378
22379         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
22380         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
22381
22382 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22383
22384         * tree-if-conv.c: Fix indentation and comments.
22385
22386 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22387
22388         * tree-if-conv.c: Sort static functions in topological order.
22389
22390 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22391
22392         * tree-if-conv.c: Fix indentation and comments.
22393
22394 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22395
22396         PR middle-end/43519
22397         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
22398         lang_hooks.types.type_for_size instead of
22399         build_nonstandard_integer_type.
22400         When converting an unsigned type to signed, double its precision.
22401         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
22402         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
22403         (graphite_create_new_loop_guard): When ub + 1 wraps around,
22404         use lb <= ub.
22405
22406 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22407
22408         PR middle-end/43519
22409         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22410         POINTER_PLUS_EXPR for pointer types.
22411
22412 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22413
22414         PR middle-end/43519
22415         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
22416         * graphite-clast-to-gimple.c: Include langhooks.h.
22417         (max_signed_precision_type): New.
22418         (max_precision_type): Takes two types as arguments.
22419         (precision_for_value): New.
22420         (precision_for_interval): New.
22421         (gcc_type_for_interval): New.
22422         (gcc_type_for_value): New.
22423         (gcc_type_for_clast_term): New.
22424         (gcc_type_for_clast_red): New.
22425         (gcc_type_for_clast_bin): New.
22426         (gcc_type_for_clast_expr): Split up into several functions.
22427         (gcc_type_for_clast_eq): Rewritten.
22428         (compute_bounds_for_level): New.
22429         (compute_type_for_level_1): New.
22430         (compute_type_for_level): New.
22431         (gcc_type_for_cloog_iv): Removed.
22432         (gcc_type_for_iv_of_clast_loop): Rewritten.
22433         (graphite_create_new_loop): Compute the lower and upper bound types
22434         with gcc_type_for_clast_expr.
22435         (graphite_create_new_loop_guard): Same.
22436         (find_cloog_iv_in_expr): Removed.
22437         (compute_cloog_iv_types_1): Removed.
22438         (compute_cloog_iv_types): Removed.
22439         (gloog): Do not call compute_cloog_iv_types.
22440         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
22441         GBB_CLOOG_IV_TYPES.
22442         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
22443         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
22444         (GBB_CLOOG_IV_TYPES): Removed.
22445
22446 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22447
22448         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
22449         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
22450         (detect_commutative_reduction): Same.
22451
22452 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22453
22454         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
22455         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
22456         argument.
22457         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
22458         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
22459         (rewrite_commutative_reductions_out_of_ssa): Same.
22460         * passes.c (execute_function_todo): Call verify_ssa for every pass
22461         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
22462         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
22463         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
22464         with an extra argument.
22465         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
22466         verify_ssa only when the extra argument is true.
22467         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
22468         with an extra argument.
22469         (tree_transform_and_unroll_loop): Same.
22470
22471 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22472
22473         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
22474         for all the passes of the LNO having LOOP_CLOSED_SSA.
22475         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
22476         * tree-loop-distribution.c (pass_loop_distribution): Same.
22477         * tree-pass.h (TODO_verify_loops): Removed.
22478         * tree-ssa-loop.c (pass_tree_loop_init): Same.
22479         (pass_lim): Same.
22480         (pass_tree_unswitch): Same.
22481         (pass_predcom): Same.
22482         (pass_vectorize): Same.
22483         (pass_linear_transform): Same.
22484         (pass_graphite_transforms): Same.
22485         (pass_iv_canon): Same.
22486         (pass_complete_unroll): Same.
22487         (pass_complete_unrolli): Same.
22488         (pass_parallelize_loops): Same.
22489         (pass_loop_prefetch): Same.
22490         (pass_iv_optimize): Same.
22491
22492 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
22493
22494         PR middle-end/32824
22495         * passes.c (init_optimization_passes): Move pass_lim before
22496         pass_copy_prop and pass_dce_loop.
22497
22498 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22499
22500         PR target/43667
22501         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
22502         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
22503         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
22504         MULTI_* defines for 4 argument vpermil2p* builtins.
22505
22506 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22507
22508         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
22509         * config/i386/i386.c (x86_maybe_negate_const_int): New.
22510         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
22511         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
22512         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
22513         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
22514         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
22515         Use x86_maybe_negate_const_int to output insn mnemonic.
22516         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
22517         check from instruction predicate.  Update comments.
22518         * config/i386/sync.md (sync_add<mode>): Use
22519         x86_maybe_negate_const_int to output insn mnemonic.
22520
22521 2010-04-06  Jan Hubicka  <jh@suse.cz>
22522
22523         PR tree-optimization/42906
22524         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
22525         IGNORE_SELF argument.  Set visited_control_parents for fully
22526         processed BBs.
22527         (find_obviously_necessary_stmts): Update call of
22528         mark_control_dependent_edges_necessary.
22529         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
22530
22531 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22532
22533         * config/i386/i386.md: Remove comment about 'e' and 'E'
22534         operand modifier.
22535
22536 2010-04-06  Richard Guenther  <rguenther@suse.de>
22537
22538         PR tree-optimization/43627
22539         * tree-vrp.c (extract_range_from_unary_expr): Widenings
22540         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
22541         not varying.
22542
22543 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22544
22545         * BASE-VER: Change to 4.6.0.
22546
22547         PR target/43638
22548         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
22549         handling.
22550
22551 2010-04-06  Richard Guenther  <rguenther@suse.de>
22552
22553         PR middle-end/43661
22554         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
22555
22556 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22557
22558         * doc/invoke.texi (Optimize Options): Document that LTO
22559         won't remove object access purely due to incompatible
22560         declarations.
22561
22562 2010-04-04  Matthias Klose  <doko@ubuntu.com>
22563
22564         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
22565         Initialize variable.
22566
22567 2010-04-03  Richard Guenther  <rguenther@suse.de>
22568
22569         PR middle-end/42509
22570         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
22571         require a non-NULL MEM_OFFSET.
22572
22573 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
22574
22575         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
22576         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
22577         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
22578         config/alpha/predicates.md, config/arm/arm.md,
22579         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
22580         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
22581         config/darwin9.h, config/darwin.c, config/darwin.h,
22582         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
22583         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
22584         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
22585         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
22586         config/mips/mips.md, config/mn10300/mn10300.c,
22587         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
22588         config/rs6000/aix.h, config/rs6000/dfp.md,
22589         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
22590         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
22591         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
22592         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
22593         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
22594         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
22595         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
22596         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
22597         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
22598         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
22599         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
22600         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
22601         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
22602         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
22603         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
22604         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
22605         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
22606         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
22607         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
22608         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
22609         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
22610         opt-functions.awk, opth-gen.awk, params.def, passes.c,
22611         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
22612         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
22613         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
22614         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
22615         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
22616         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
22617         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
22618         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
22619         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
22620         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
22621         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
22622         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
22623         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
22624         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
22625
22626 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22627
22628         PR other/43620
22629         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
22630         * aclocal.m4: Regenerate.
22631
22632 2010-04-02  Richard Guenther  <rguenther@suse.de>
22633
22634         PR tree-optimization/43629
22635         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
22636         if we have seen a constant value.
22637
22638 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
22639
22640         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
22641
22642 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
22643
22644         PR target/43469
22645         * arm.c (legitimize_tls_address): Adjust call to
22646         gen_tls_load_dot_plus_four.
22647         (arm_note_pic_base): New function.
22648         (arm_cannot_copy_insn_p): Use it.
22649         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
22650         constraint.
22651
22652 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22653
22654         PR bootstrap/43531
22655
22656         Revert:
22657         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22658
22659         * Makefile.in ($(out_object_file)): Depend on
22660         gt-$(basename $(notdir $(out_file))).h.
22661
22662 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
22663
22664         * config.gcc (lm32-*-rtems*): Add t-lm32.
22665
22666 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
22667
22668         * config.gcc: Add lm32-*-rtems*.
22669         * config/lm32/rtems.h: New file.
22670
22671 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
22672
22673         PR target/42609
22674         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
22675
22676 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
22677
22678         * dwarf2out.c (output_compilation_unit_header): For
22679         -gdwarf-4 use version 4 instead of version 3.
22680         (output_line_info): For version 4 and above emit additional
22681         maximum ops per insn header field.
22682         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
22683
22684         * dwarf2out.c (is_c_family, is_java): Remove.
22685         (lower_bound_default): New function.
22686         (add_bound_info, gen_descr_array_type_die): Use it.
22687
22688 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
22689
22690         PR debug/43325
22691         * dwarf2out.c (gen_variable_die): Allow debug info for variable
22692         re-declaration when it happens in a function.
22693
22694 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
22695
22696         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
22697         (cgraph_remove_function_insertion_hook): Same.
22698         (cgraph_call_function_insertion_hooks): Same.
22699
22700 2010-04-01  Richard Guenther  <rguenther@suse.de>
22701
22702         PR middle-end/43614
22703         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
22704         and TREE_THIS_VOLATILE.
22705         (copy_ref_info): Likewise.
22706         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
22707         * tree.c (build6_stat): Ignore side-effects of all but arg5
22708         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
22709         TARGET_MEM_REF.
22710
22711 2010-04-01  Richard Guenther  <rguenther@suse.de>
22712
22713         PR tree-optimization/43607
22714         * ipa-type-escape.c (check_call): Do not access non-existing
22715         arguments.
22716
22717 2010-04-01  Richard Guenther  <rguenther@suse.de>
22718
22719         PR middle-end/43602
22720         Revert
22721         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22722                     Jack Howarth  <howarth@bromo.med.uc.edu>
22723
22724         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22725         variables TLS.
22726
22727 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22728
22729         * doc/install.texi (Prerequisites): Document libelf usability on
22730         IRIX 5/6 and Solaris 2.
22731         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
22732         Update GNU as, GNU ld requirements.
22733         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
22734         Document Sun Studio compiler download.
22735         Update and simplify as, ld recommendations.
22736         (Specific, *-*-solaris2.7): Note obsoletion, removal.
22737
22738 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22739
22740         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
22741         with_tune_32 to pentium4.
22742
22743 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
22744
22745         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
22746
22747 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22748
22749         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
22750         obsoletion, removal.
22751         Update IDO URL.
22752         Document GNU as requirement.
22753         Update configure requirements.
22754         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
22755         Recomment IRIX 6.5.18+.
22756         Document IDF/IDL requirement.
22757         Document GNU as requirement.
22758         Document GNU ld bootstrap failure.
22759         Remove freeware.sgi.com reference.
22760
22761 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22762
22763         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
22764         UNIX V4.0, V5.0 obsoletion, removal.
22765         Remove --with-gc=simple reference.
22766         Update VM requirements during bootstrap.
22767         Remove -oldas bootstrap description.
22768         Update binutils reference.
22769         Remove comparison failure note.
22770
22771 2010-03-31  Richard Guenther  <rguenther@suse.de>
22772             Zdenek Dvorak  <ook@ucw.cz>
22773             Sebastian Pop  <sebastian.pop@amd.com>
22774
22775         PR middle-end/43464
22776         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
22777         with multiple arguments.
22778         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
22779
22780 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22781
22782         * graphite-dependences.c (print_pddr): Call print_pdr with an
22783         extra argument.
22784         * graphite-poly.c (debug_pdr): Add an extra argument for the
22785         verbosity level.
22786         (print_pdr): Same.
22787         (print_pbb_domain): Same.
22788         (print_pbb): Same.
22789         (print_scop_context): Same.
22790         (print_scop): Same.
22791         (print_cloog): Same.
22792         (debug_pbb_domain): Same.
22793         (debug_pbb): Same.
22794         (print_pdrs): Same.
22795         (debug_pdrs): Same.
22796         (debug_scop_context): Same.
22797         (debug_scop): Same.
22798         (debug_cloog): Same.
22799         (print_scop_params): Same.
22800         (debug_scop_params): Same.
22801         (print_iteration_domain): Same.
22802         (print_iteration_domains): Same.
22803         (debug_iteration_domain): Same.
22804         (debug_iteration_domains): Same.
22805         (print_scattering_function): Same.
22806         (print_scattering_functions): Same.
22807         (debug_scattering_function): Same.
22808         (debug_scattering_functions): Same.
22809         * graphite-poly.h (debug_pdr): Update declaration.
22810         (print_pdr): Same.
22811         (print_pbb_domain): Same.
22812         (print_pbb): Same.
22813         (print_scop_context): Same.
22814         (print_scop): Same.
22815         (print_cloog): Same.
22816         (debug_pbb_domain): Same.
22817         (debug_pbb): Same.
22818         (print_pdrs): Same.
22819         (debug_pdrs): Same.
22820         (debug_scop_context): Same.
22821         (debug_scop): Same.
22822         (debug_cloog): Same.
22823         (print_scop_params): Same.
22824         (debug_scop_params): Same.
22825         (print_iteration_domain): Same.
22826         (print_iteration_domains): Same.
22827         (debug_iteration_domain): Same.
22828         (debug_iteration_domains): Same.
22829         (print_scattering_function): Same.
22830         (print_scattering_functions): Same.
22831         (debug_scattering_function): Same.
22832         (debug_scattering_functions): Same.
22833
22834 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22835
22836         * graphite-poly.c (print_scattering_function_1): New.
22837         (print_scattering_function): Call it.
22838         (print_scop_params): Remove spaces at the end of lines.
22839         (print_cloog): New.
22840         (debug_cloog): New.
22841         * graphite-poly.h (print_cloog): Declared.
22842         (debug_cloog): Declared.
22843
22844 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22845
22846         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
22847         in loop->header.
22848         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
22849         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
22850         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
22851         to switch between adding the IV bump in loop->latch or in loop->header.
22852
22853 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22854
22855         * graphite-poly.c (print_scattering_function): Pretty print following
22856         the scoplib format.
22857         (print_pdr): Same.
22858         (print_pbb_domain): Same.
22859         (dump_gbb_cases): Same.
22860         (dump_gbb_conditions): Same.
22861         (print_pdrs): Same.
22862         (print_pbb): Same.
22863         (print_scop_params): Same.
22864         (print_scop_context): Same.
22865         (print_scop): Same.
22866         (print_pbb_body): New.
22867         (lst_indent_to): New.
22868         (print_lst): Start new lines with a #.
22869         * graphite-poly.h (pbb_bb): New.
22870         (pbb_index): Use pbb_bb.
22871         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
22872         disjuncts.
22873         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
22874
22875 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22876
22877         * dwarf2out.c (size_of_die): For -gdwarf-4 use
22878         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
22879         and 0 instead of 1 for dw_val_class_flag.
22880         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
22881         dw_val_class_range_list, dw_val_class_loc_list,
22882         dw_val_class_lineptr and dw_val_class_macptr, use
22883         DW_FORM_flag_present for dw_val_class_flag and
22884         DW_FORM_exprloc for dw_val_class_loc.
22885         (output_die): For -gdwarf-4 print dw_val_class_loc
22886         size as uleb128 instead of 1 or 2 bytes and don't print
22887         anything for dw_val_class_flag.
22888
22889         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
22890         instead of cselib_lookup following by tweaking locs->setting_insn.
22891
22892         PR bootstrap/43596
22893         * cselib.c (cselib_process_insn): Clear cselib_current_insn
22894         even before returning from label, setjmp call or volatile asm
22895         handling.
22896
22897 2010-03-31  Richard Guenther  <rguenther@suse.de>
22898
22899         PR middle-end/43600
22900         * cgraphunit.c (cgraph_output_in_order): Do not allocate
22901         temporary data on stack.
22902
22903 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22904
22905         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
22906         (PUSHSECTION_ASM_OP): Remove.
22907         (POPSECTION_ASM_OP): Remove.
22908         (PUSHSECTION_FORMAT): Remove.
22909         * config/sol2.h (PUSHSECTION_FORMAT): Define.
22910         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
22911         * config/sol2.c (solaris_output_init_fini): Use it.
22912
22913 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22914
22915         PR 43574
22916         * opt-functions.awk (var_type_struct): Use signed char type
22917         for simple variables.
22918
22919 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22920
22921         * config/sol2.c: Include output.h.
22922         (solaris_assemble_visibility): New function.
22923         * config/t-sol2 (sol2.o): Add output.h dependency.
22924         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
22925         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
22926         Redefine.
22927
22928 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22929
22930         PR target/43580
22931         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
22932         V2SImode or XFmode on PRE_DEC.
22933
22934         PR debug/43557
22935         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
22936         BLKmode.
22937
22938 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22939
22940         PR 43562
22941         * reload.h (caller_save_initialized_p): Declare.
22942         * toplev.c (backend_init_target): Don't call
22943         init_caller_save but set caller_save_initialized_p to false.
22944         * caller-save.c (caller_save_initialized_p): Define.
22945         (init_caller_save): Check caller_save_initialized_p.
22946         * ira.c (ira): Call init_caller_save if flag_caller_saves.
22947
22948 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22949
22950         PR target/39048
22951         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
22952         and soft-fp/t-softfp to tmake_file.
22953         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
22954         (LIBGCC2_TF_CEXT): Define.
22955         (TF_SIZE): Define.
22956
22957 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
22958
22959         PR debug/42977
22960         * cselib.c (n_useless_values): Document handling of debug locs.
22961         (n_useless_debug_values, n_debug_values): New variables.
22962         (new_elt_loc_list): Don't add to debug values, keep count.
22963         (promote_debug_loc): New.
22964         (cselib_reset_table): Zero new variables.
22965         (entry_and_rtx_equal_p): Promote debug locs.
22966         (discard_useless_locs): Increment n_useless_debug_values for
22967         debug values.
22968         (remove_useless_values): Adjust n_useless_values and n_debug_values
22969         with n_useless_debug_values.
22970         (add_mem_for_addr): Promote debug locs.
22971         (cselib_lookup_mem): Likewise.
22972         (cselib_lookup_addr): Renamed to...
22973         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
22974         (cselib_log_lookup): ... this.  Turn into...
22975         (cselib_lookup_addr): ... new wrapper.
22976         (cselib_lookup_from_insn): New.
22977         (cselib_invalidate_regno): Increment n_useless_debug_values for
22978         debug values.
22979         (cselib_invalidate_mem): Likewise.
22980         (cselib_process_insn): Take n_deleted and n_debug_values into
22981         account to guard remove_useless_value call.
22982         (cselib_finish): Zero n_useless_debug_values.
22983         * cselib.h (cselib_lookup_from_insn): Declare.
22984         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
22985         (sched_analyze_2): Likewise.
22986
22987 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
22988
22989         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
22990         functions.
22991         (adjust_mems): Replace narrowing SUBREG of expression containing
22992         just PLUS, MINUS, MULT and ASHIFT of registers and constants
22993         with operations in the narrower mode.
22994
22995         PR debug/43593
22996         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
22997         regs_invalidated_by_call instead all call_used_reg_set registers.
22998
22999 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
23000
23001         PR middle-end/43430
23002         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
23003         pointer comparisons with types_compatible_p.
23004         * tree-vect-stmts.c (vectorizable_call): Same.
23005         (vectorizable_condition): Same.
23006
23007 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23008
23009         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
23010         stack check if the mask would be zero.
23011
23012 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
23013             Jack Howarth  <howarth@bromo.med.uc.edu>
23014
23015         * tree-profile.c (tree_init_ic_make_global_vars): Make static
23016         variables TLS.
23017
23018 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
23019
23020         PR other/25232
23021         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
23022         and __unordtf2.
23023         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
23024         Include ___unordxf2 and ___unordtf2.
23025         * config/i386/libgcc-glibc.ver: Do not define inheritance from
23026         GCC_4.4.0 here.
23027
23028 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
23029
23030         * config/lm32/t-lm32: New file.
23031         * config.gcc: Use the above file when targetting lm32.
23032
23033 2010-03-28  Duncan Sands  <baldrick@free.fr>
23034
23035         * Makefile.in (PLUGIN_HEADERS): Add except.h.
23036
23037 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23038
23039         PR middle-end/43431
23040         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
23041         Improve vectorization cost model diagnostic.
23042
23043 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
23044
23045         PR middle-end/43436
23046         * tree-vect-data-refs.c (vect_analyze_data_refs): When
23047         compute_data_dependences_for_loop returns false, early exit
23048         and output an extra diagnostic for the failed data reference
23049         analysis.
23050
23051 2010-03-29  Richard Guenther  <rguenther@suse.de>
23052
23053         PR tree-optimization/43560
23054         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
23055         (can_sm_ref_p): Treat stores to readonly locations as trapping.
23056
23057 2010-03-29  Jie Zhang  <jie@codesourcery.com>
23058
23059         PR 43564
23060         * toplev.c (process_options): Set optimization_default_node
23061         and optimization_current_node.
23062         * opts.c (decode_options): Don't set optimization_default_node
23063         and optimization_current_node.
23064
23065 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
23066
23067         * config/rtems.h: Abandon -qrtems_debug.
23068
23069 2010-03-28  Jan Hubicka  <jh@suse.cz>
23070
23071         PR tree-optimization/43505
23072         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
23073         map should not be copied.
23074
23075 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23076
23077         PR middle-end/41674
23078         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
23079         cdtors, set DECL_PRESERVE_P.
23080         * ipa.c (cgraph_externally_visible_p): Return true if declaration
23081         should be preseved.
23082
23083 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
23084
23085         PR tree-optimization/43528
23086         * stor-layout.c (place_field): Check that constant fits into
23087         unsigned HWI when skipping calculation of MS bitfield layout.
23088
23089 2010-03-27  Jan Hubicka  <jh@suse.cz>
23090
23091         PR middle-end/43391
23092         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
23093         notice_global_symbol work.
23094
23095 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
23096
23097         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
23098         instead of dwarf2out_decl.
23099         (struct var_loc_node): Remove section_label field.
23100         (dwarf2out_function_decl): New function.
23101         (dwarf2out_var_location): Don't set section_label field.
23102         (dwarf2out_begin_function): Don't empty decl_loc_table here.
23103
23104 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
23105
23106         PR tree-optimization/43544
23107         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
23108         First argument for builtin vectorized function hook is now a
23109         tree to be able to distinguish between machine specific and
23110         standard builtins.
23111         * targhooks.c (default_builtin_vectorized_function): Ditto.
23112         * targhooks.h (default_builtin_vectorized_function): Ditto.
23113         * target.h (struct gcc_target): Ditto.
23114         * tree-vect-stmts.c (vectorizable_function): Ditto.
23115         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
23116         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
23117         Ditto.
23118
23119 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
23120
23121         PR c/43381
23122         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
23123         nested binding iff it is a FUNCTION_DECL.
23124         (store_parm_decls_newstyle): Pass nested=true to bind for
23125         FUNCTION_DECLs amongst parameters.
23126
23127 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23128
23129         * var-tracking.c (vt_expand_loc_callback): Don't run
23130         cselib_expand_value_rtx_cb in dummy mode if
23131         cselib_dummy_expand_value_rtx_cb returned false.
23132
23133         * var-tracking.c (emit_note_insn_var_location): For one part
23134         notes with offset 0, don't add EXPR_LIST around the location.
23135         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
23136         add_location_or_const_value_attribute): Adjust for that change.
23137
23138         PR debug/43540
23139         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
23140         into first operand and location into second.
23141         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
23142         dw_cfi_oprnd_loc for DW_CFA_expression.
23143         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
23144         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
23145         assume first argument is regnum and second argument is location.
23146
23147 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23148
23149         PR target/42113
23150         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
23151         of scratch register to DImode.  Split to DImode comparison operator.
23152         Use SImode subreg of scratch register in the multiplication.
23153         (*cmp_sadd_sidi): Ditto.
23154         (*cmp_ssub_si): Ditto.
23155         (*cmp_ssub_sidi): Ditto.
23156
23157 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
23158
23159         PR target/43524
23160         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
23161         Remove invalid assert and wrong comment.
23162
23163 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
23164
23165         PR debug/43516
23166         * flags.h (final_insns_dump_p): New extern.
23167         * final.c (final_insns_dump_p): New variable.
23168         (rest_of_clean_state): Set it before -fdump-final-insns=
23169         dumping, clear afterwards.
23170         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
23171         MEM_ALIAS_SET on MEMs.
23172
23173 2010-03-26  David S. Miller  <davem@davemloft.net>
23174
23175         * configure.ac: Fix sparc GOTDATA_OP bug check.
23176         * configure: Rebuild.
23177
23178 2010-03-26  Alan Modra  <amodra@gmail.com>
23179
23180         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
23181
23182 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23183
23184         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
23185         TLS_SECTION_ASM_FLAG.
23186
23187 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
23188
23189         PR bootstrap/43511
23190         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
23191         Clear first_function_block_is_cold.
23192
23193         PR c/43385
23194         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
23195         argument if the argument is truth_value_p.
23196
23197 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23198
23199         * config/rs6000/constraints.md: Update copyright year for my changes.
23200
23201         PR target/43484
23202         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
23203         used in reg+reg addressing, swap registers.
23204
23205 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23206
23207         PR debug/43293
23208         * target.h (struct gcc_target): Add code_end hook.
23209         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
23210         if not yet defined.
23211         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
23212         * toplev.c (compile_file): Call targetm.asm_out.code_end
23213         hook before unwind info/debug info output.
23214         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
23215         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
23216         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23217         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
23218         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
23219         * config/i386/i386.c (ix86_file_end): Renamed to...
23220         (ix86_code_end): ... this.  Make static.  Don't call
23221         file_end_indicate_exec_stack.  Emit unwind info using
23222         final_start_function/final_end_function.
23223         (darwin_x86_file_end): Remove.
23224         (TARGET_ASM_CODE_END): Define.
23225         * config/i386/i386.h (TARGET_ASM_FILE_END,
23226         NEED_INDICATE_EXEC_STACK): Don't define.
23227         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
23228         (TARGET_ASM_FILE_END): Define to darwin_file_end.
23229         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
23230         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
23231
23232         PR target/43498
23233         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
23234         at the beginning and final_end_function at the end.
23235         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
23236
23237 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23238
23239         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
23240         and Sun as TLS syntax.
23241         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
23242         * configure: Regenerate.
23243         * config.in: Regenerate.
23244         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
23245         (default_elf_asm_named_section): Use it.
23246         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
23247         (i386_output_dwarf_dtprel): Likewise.
23248         (output_addr_const_extra): Likewise.
23249         (output_pic_addr_const): Lowercase @GOTTPOFF.
23250         (output_addr_const_extra): Likewise.
23251         (output_pic_addr_const): Lowercase @GOTNTPOFF.
23252         (output_addr_const_extra): Likewise.
23253         (output_pic_addr_const): Lowercase @INDNTPOFF.
23254         (output_addr_const_extra): Likewise.
23255         (output_pic_addr_const): Lowercase @NTPOFF.
23256         (output_addr_const_extra): Likewise.
23257         (output_pic_addr_const): Lowercase @TPOFF.
23258         (output_addr_const_extra): Likewise.
23259         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
23260         (*tls_global_dynamic_64): Likewise.
23261         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
23262         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
23263
23264         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
23265         (ASM_OUTPUT_TLS_COMMON): Use it.
23266         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
23267
23268         PR target/38118
23269         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
23270         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
23271         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
23272         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
23273         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23274         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
23275
23276 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23277
23278         * config/i386/i386.c (override_options): Don't accept
23279         -mtls-dialect=sun any longer.
23280         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
23281         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
23282         (*tls_local_dynamic_base_32_sun): Likewise.
23283         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
23284
23285 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
23286
23287         PR debug/43508
23288         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
23289         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
23290
23291         PR debug/43479
23292         * ira.c (adjust_cleared_regs): New function.
23293         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
23294
23295         PR debug/19192
23296         PR debug/43479
23297         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
23298         from gimple_block.
23299         * expr.c (expand_expr_real): Restore previous
23300         curr_insn_source_location and curr_insn_block after
23301         expand_expr_real_1 call.
23302         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
23303         instead of expand_expr_real_1.
23304
23305 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
23306
23307         PR rtl-optimization/43413
23308         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
23309         hard regs too.
23310
23311 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
23312
23313         PR target/43348
23314         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
23315         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
23316
23317 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
23318
23319         * config/i386/i386.c (ix86_target_string): Add -mfma.
23320         Fix a typo in comment.
23321
23322 2010-03-22  Mike Stump  <mikestump@comcast.net>
23323
23324         PR target/23071
23325         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
23326         Don't overly align based upon packed packed fields.
23327
23328 2010-03-22  Jason Merrill  <jason@redhat.com>
23329
23330         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
23331         Use () rather than [], and move before the element type.
23332
23333 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23334
23335         * doc/configfiles.texi (Configuration Files): Removed
23336         fixinc/Makefile*, intl/Makefile.*.
23337         * doc/makefile.texi: Fixed markup. Abstract from version
23338         control system used.
23339         (Makefile): Removed obsolete java/parse.y example.
23340         * doc/sourcebuild.texi: Likewise.
23341         (Top Level): Added config, gnattools, libdecnumber, libgcc,
23342         libgomp, libssp.  Removed fastjar.
23343         (Miscellaneous Docs): Clarify location.
23344         Added COPYING3, COPYING3.LIB.
23345         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
23346
23347 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23348
23349         PR target/38085
23350         * config/i386/i386.c (x86_function_profiler)
23351         [!NO_PROFILE_COUNTERS]: Fix typo.
23352         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
23353         instead of callq.
23354
23355 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
23356             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23357
23358         * doc/sourcebuild.texi (Test Directives): Split into six
23359         subsections, with most of the current text in new subsections
23360         Directives, Selectors, and Final Actions.
23361         (Directives): Split list of test directives into multiple
23362         subsubsections.
23363         (Selectors): Describe use and syntax of selectors.
23364         (Effective-Target Keywords): Describe all existing keywords.
23365         (Add Options): Describe features for dg-add-options.
23366         (Require Support): Describe variants of dg-require-support.
23367         (Final Actions): Describe commands to use in dg-final.
23368
23369 2010-03-22  Michael Matz  <matz@suse.de>
23370
23371         PR middle-end/43475
23372         * recog.c (validate_replace_rtx_group): Replace also in
23373         REG_EQUAL and REG_EQUIV notes.
23374
23375 2010-03-22  Richard Guenther  <rguenther@suse.de>
23376
23377         PR tree-optimization/43390
23378         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
23379         sure vector extracts are type correct.
23380
23381 2010-03-22  Richard Guenther  <rguenther@suse.de>
23382
23383         PR middle-end/40106
23384         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
23385         x * sqrt (x) even when optimizing for size if the target
23386         has native support for sqrt.
23387
23388 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
23389
23390         * varasm.c (make_decl_rtl_for_debug): Also clear
23391         flag_mudflap for the duration of make_decl_rtl call.
23392
23393         PR debug/43443
23394         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
23395         locs from preserved VALUEs.
23396
23397 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23398
23399         PR middle-end/42718
23400         * pa.md (movmemsi): Set align to one if zero.
23401         (movmemdi): Likewise.
23402
23403 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
23404
23405         PR target/42321
23406         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
23407         with their corresponding prologue pushes.
23408
23409 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
23410
23411         PR target/43156
23412         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
23413         at the begining or end.
23414         (spu_expand_epilogue): Likewise.
23415
23416 2010-03-20  Richard Guenther  <rguenther@suse.de>
23417
23418         PR rtl-optimization/43438
23419         * combine.c (make_extraction): Properly zero-/sign-extend an
23420         extraction of the low part of a CONST_INT.  Also handle
23421         CONST_DOUBLE.
23422
23423 2010-03-19  Mike Stump  <mikestump@comcast.net>
23424
23425         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
23426         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
23427         (override_options): Use SUBTARGET32_DEFAULT_CPU.
23428
23429 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23430
23431         PR c/43211
23432         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
23433         an error.
23434
23435 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
23436
23437         PR rtl-optimization/42258
23438         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
23439         use that may match DEF.
23440
23441         PR target/40697
23442         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
23443         the cost of loading the constant rather than assuming
23444         COSTS_N_INSNS (1).
23445         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
23446         outer code is AND, do the same tests as the andsi3 expander and
23447         return COSTS_N_INSNS (1) if and is cheap.
23448
23449         * optabs.c (avoid_expensive_constant): Fix formatting.
23450
23451 2010-03-19  Michael Matz  <matz@suse.de>
23452
23453         PR c++/43116
23454         * attribs.c (decl_attributes): When rebuilding a function pointer
23455         type use the same qualifiers as the original pointer type.
23456
23457 2010-03-19  Martin Jambor  <mjambor@suse.cz>
23458
23459         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
23460         and is_gimple_ip_invariant_address.
23461
23462 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23463
23464         Revert
23465         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23466
23467         * config/arm/arm.c (arm_override_options): Turn off
23468         flag_dwarf2_cfi_asm for AAPCS variants.
23469
23470 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23471
23472         PR target/43399
23473         * config/arm/arm.c (emit_multi_reg_push): Update comments.
23474         Use PRE_MODIFY instead of PRE_DEC.
23475         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
23476         (vfp_emit_fstmd): Likewise.
23477
23478 2010-03-19  Michael Matz  <matz@suse.de>
23479
23480         PR target/43305
23481         * builtins.c (expand_builtin_interclass_mathfn,
23482         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
23483         if that fails.
23484
23485 2010-03-19  Richard Guenther  <rguenther@suse.de>
23486
23487         PR tree-optimization/43415
23488         * tree-ssa-pre.c (phi_translate): Split out worker to ...
23489         (phi_translate_1): ... this.
23490         (phi_translate): Move all caching here.  Cache all NARY
23491         and REFERENCE translations.
23492
23493 2010-03-19  David S. Miller  <davem@davemloft.net>
23494
23495         With help from Eric Botcazou.
23496         * config/sparc/sparc.c: Include dwarf2out.h.
23497         (emit_pic_helper): Delete.
23498         (pic_helper_symbol_name): Delete.
23499         (pic_helper_emitted_p): Delete.
23500         (pic_helper_needed): New.
23501         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
23502         (get_pc_thunk_name): New.
23503         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
23504         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
23505         Set pic_helper_needed to true.  Don't call emit_pic_helper.
23506         (sparc_expand_prologue): Update load_pic_register call.
23507         (sparc_output_mi_thunk): Likewise.
23508         (sparc_file_end): Emit a hidden comdat symbol for the PIC
23509         thunk if possible.  Output CFI information as needed.
23510
23511 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23512             Jack Howarth  <howarth@bromo.med.uc.edu>
23513
23514         PR target/36399
23515         * config/i386/i386.h: Fix ABI on darwin x86-32.
23516
23517 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
23518
23519         * tree.h: Declare make_decl_rtl_for_debug.
23520         * varasm.c (make_decl_rtl_for_debug): New.
23521         * dwarf2out.c (rtl_for_decl_location): Call it.
23522         * cfgexpand.c (expand_debug_expr): Call it.
23523
23524 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23525
23526         PR bootstrap/43399
23527         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
23528         mem_mode.
23529
23530         PR bootstrap/43403
23531         * var-tracking.c (vt_init_cfa_base): Do nothing if
23532         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
23533
23534 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
23535
23536         PR debug/42873
23537         * var-tracking.c (canonicalize_vars_star): New.
23538         (dataflow_post_merge_adjust): Use it.
23539
23540 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23541
23542         PR debug/43058
23543         * var-tracking.c (non_suitable_const): New function.
23544         (add_uses): For DEBUG_INSNs with constants, don't record any
23545         value, instead just the constant value itself.
23546         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
23547         is not VAR_LOC_UNKNOWN_P, set var to the constant.
23548         (emit_notes_in_bb): Likewise.
23549         (emit_note_insn_var_location): For onepart variables if
23550         cur_loc is a VOIDmode constant, use DECL_MODE.
23551
23552 2010-03-18  Martin Jambor  <mjambor@suse.cz>
23553
23554         PR middle-end/42450
23555         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
23556         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
23557         all non-clones.  Moved call redirection...
23558         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
23559         (cgraph_materialize_all_clones): Dispose of all
23560         combined_args_to_skip bitmaps.
23561         (verify_cgraph_node): Do not check for edges pointing to wrong
23562         nodes in inline clones.
23563         * tree-inline.c (copy_bb): Call
23564         cgraph_redirect_edge_call_stmt_to_callee.
23565         * ipa.c (cgraph_remove_unreachable_nodes): Call
23566         cgraph_node_remove_callees even when there are used clones.
23567
23568 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23569
23570         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
23571
23572 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23573
23574         PR target/43383
23575         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
23576         for 32bit.
23577
23578 2010-03-18  Michael Matz  <matz@suse.de>
23579
23580         PR middle-end/43419
23581         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
23582         into sqrt(x) if we need to preserve signed zeros.
23583
23584 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
23585             Eric Botcazou  <ebotcazou@adacore.com>
23586
23587         PR rtl-optimization/43360
23588         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
23589         note if we don't know its invariant status.
23590
23591 2010-03-18  Michael Matz  <matz@suse.de>
23592
23593         PR tree-optimization/43402
23594         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
23595         PHI chains of ssa names registered for update.
23596
23597 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
23598
23599         PR target/42427
23600         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
23601         non-offsettable and pre_modify update addressing.
23602         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
23603         and "2" alternatives "#".
23604         (*movdd_softfloat32): Make all alternatives "#";
23605         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
23606         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
23607         (*movdf_softfloat32): Make all alternatives "#";
23608         (movdi): Use the new DIFD mode iterator to create a common splitter
23609         for movdi, movdf and movdd patterns.
23610
23611 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
23612
23613         * common.opt (dumpdir): Remove redundant tab.
23614
23615 2010-03-17  Martin Jambor  <mjambor@suse.cz>
23616
23617         PR tree-optimization/43347
23618         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
23619         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
23620
23621 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
23622
23623         PR rtl-optimization/42216
23624         * regrename.c (create_new_chain): New function, broken out from...
23625         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
23626         appending a use to an empty chain.
23627         (build_def_use): Remove previous changes that convert OP_INOUT to
23628         OP_OUT operands; instead detect the case where an OP_INOUT operand
23629         uses a previously untracked register and create an empty chain for it.
23630
23631 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23632
23633         * doc/extend.texi (Function Attributes): Rewrite unfinished
23634         sentence in ms_abi documentation.
23635
23636 2010-03-17  Alan Modra  <amodra@gmail.com>
23637
23638         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
23639         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
23640         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
23641         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
23642
23643 2010-03-16  Richard Henderson  <rth@redhat.com>
23644
23645         PR middle-end/43365
23646         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
23647         (lower_try_finally): Save and restore eh_seq around the expansion
23648         of the try-finally.
23649
23650 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23651
23652         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
23653         statements before splitting block.
23654
23655 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23656
23657         * doc/sourcebuild.texi (Testsuites): Fix markup.
23658         Use pathnames relative to gcc/testsuite.
23659         (Test Directives): Move description of how timeout is determined.
23660         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
23661         (C Tests): Correct gcc.misc-tests directory.
23662         Framework tests now live in gcc.test-framework.
23663
23664 2010-03-16  Richard Guenther  <rguenther@suse.de>
23665
23666         PR middle-end/43379
23667         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
23668         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
23669
23670 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23671             Alexandre Oliva  <aoliva@redhat.com>
23672
23673         PR tree-optimization/42917
23674         * lambda-code.c (remove_iv): Skip debug statements.
23675         (lambda_loopnest_to_gcc_loopnest): Likewise.
23676         (not_interesting_stmt): Debug statements are not interesting.
23677
23678 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
23679
23680         PR debug/43051
23681         PR debug/43092
23682         * cselib.c (cselib_preserve_constants,
23683         cfa_base_preserved_val): New static variables.
23684         (preserve_only_constants): New function.
23685         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
23686         clear its REG_VALUES.  If cselib_preserve_constants, don't
23687         empty the whole hash table, but preserve there VALUEs with constants,
23688         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
23689         (cselib_preserve_cfa_base_value): New function.
23690         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
23691         (cselib_init): Change argument to int bitfield.  Set
23692         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
23693         is in it.
23694         (cselib_finish): Clear cselib_preserve_constants and
23695         cfa_base_preserved_val.
23696         * cselib.h (enum cselib_record_what): New enum.
23697         (cselib_init): Change argument to int.
23698         (cselib_preserve_cfa_base_value): New prototype.
23699         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
23700         * dse.c (dse_step1): Likewise.
23701         * cfgcleanup.c (thread_jump): Likewise.
23702         * sched-deps.c (sched_analyze): Likewise.
23703         * gcse.c (local_cprop_pass): Likewise.
23704         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
23705         If FN is non-NULL, call the callback always and whenever it returns
23706         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
23707         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
23708         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
23709         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
23710         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
23711         * var-tracking.c: Include recog.h.
23712         (bb_stack_adjust_offset): Remove.
23713         (vt_stack_adjustments): Don't call it, instead just gather the
23714         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
23715         (adjust_stack_reference): Remove.
23716         (compute_cfa_pointer): New function.
23717         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
23718         (struct adjust_mem_data): New type.
23719         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
23720         functions.
23721         (get_address_mode): New function.
23722         (replace_expr_with_values): Use it.
23723         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
23724         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
23725         (adjust_sets): Remove.
23726         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
23727         Use get_address_mode.
23728         (get_adjusted_src): Remove.
23729         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
23730         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
23731         (add_with_sets): Don't call adjust_sets.
23732         (fp_setter, vt_init_cfa_base): New functions.
23733         (vt_initialize): Change return type to bool.  Move most of pool etc.
23734         initialization to the beginning of the function from end.  Pass
23735         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
23736         If !frame_pointer_needed, call vt_stack_adjustment before mos
23737         vector is filled, call vt_init_cfa_base if argp/framep has been
23738         eliminated to sp.  If frame_pointer_needed and argp/framep has
23739         been eliminated to hard frame pointer, set
23740         hard_frame_pointer_adjustment and call vt_init_cfa_base after
23741         encountering fp setter in the prologue.  For MO_ADJUST, call
23742         log_op_type before pusing the op into mos vector, not afterwards.
23743         Call adjust_insn before cselib_process_insn/add_with_sets,
23744         call cancel_changes (0) afterwards.
23745         (variable_tracking_main_1): Adjust for vt_initialize calling
23746         vt_stack_adjustments and returning whether it succeeded or not.
23747
23748 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
23749
23750         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
23751         debug statements.
23752
23753 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
23754
23755         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
23756         has been set.
23757         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
23758         drap_reg has not been set.
23759
23760 2010-03-15  Michael Matz  <matz@suse.de>
23761
23762         PR middle-end/43300
23763         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
23764         use it to expand block copies.
23765         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
23766         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
23767         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
23768
23769 2010-03-15  Richard Guenther  <rguenther@suse.de>
23770
23771         PR tree-optimization/43367
23772         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
23773         elimination check.
23774
23775 2010-03-15  Richard Guenther  <rguenther@suse.de>
23776
23777         PR tree-optimization/43317
23778         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
23779
23780 2010-03-15  Martin Jambor  <mjambor@suse.cz>
23781
23782         PR tree-optimization/43141
23783         * tree-sra.c (create_abstract_origin): New function.
23784         (modify_function): Call create_abstract_origin.
23785
23786 2010-03-15  Chris Demetriou  <cgd@google.com>
23787
23788         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
23789         wasn't copied.
23790
23791 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23792
23793         PR middle-end/43354
23794         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
23795         call insert_out_of_ssa_copy for default definitions.
23796
23797 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23798
23799         * graphite-clast-to-gimple.c (my_long_long): Defined.
23800         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
23801         * graphite-sese-to-poly.c (my_long_long): Defined.
23802         (scop_ivs_can_be_represented): Use it.
23803
23804 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23805
23806         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
23807         graphite-max-bbs-per-function, and loop-block-tile-size.
23808         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
23809         with "maximum".
23810         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
23811
23812 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23813
23814         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
23815         forward declaration.
23816         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
23817         (add_upper_bounds_from_estimated_nit): New.
23818         (build_loop_iteration_domains): Use it.
23819
23820 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23821
23822         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
23823
23824 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23825
23826         PR middle-end/43306
23827         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
23828         should be an INTEGER_CST.  Also handle CASE_CONVERT.
23829
23830 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23831
23832         * graphite.c (graphite_initialize): To bound the number of bbs per
23833         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
23834         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
23835         * doc/invoke.texi: Document it.
23836
23837 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23838
23839         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
23840         * graphite-sese-to-poly.h (build_poly_scop): Same.
23841
23842 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23843
23844         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
23845         the number of parameters in the scop.  Use as an upper bound
23846         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
23847         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
23848         * doc/invoke.texi: Document it.
23849
23850 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
23851
23852         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
23853         * doc/c-tree.texi: Remove.
23854         * doc/generic.texi: Merge c-tree.texi here.
23855         * doc/gccint.texi (Trees): Remove menu entry.
23856         (c-tree.texi): Remove @include.
23857         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
23858         * doc/languages.texi (Reading RTL): Ditto.
23859
23860 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
23861
23862         PR target/42869
23863         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
23864
23865 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23866
23867         PR middle-end/42431
23868         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
23869         code added to work around reload clobbering CONST insns.
23870
23871 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
23872
23873         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
23874         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
23875         (cselib_preserve_only_values): Remove retain argument, don't
23876         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
23877         * cselib.h (cselib_preserve_only_values): Remove retain argument.
23878         * var-tracking.c (micro_operation): Move insn field before union.
23879         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
23880         (struct variable_tracking_info_def): Remove n_mos field, change
23881         mos into a vector of micro_operations.
23882         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
23883         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
23884         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
23885         changing into a vector.
23886         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
23887         come before all other uops generated by add_stores.
23888         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
23889         argument removal.
23890         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
23891         a vector.  Run just one pass over the bbs instead of separate counting
23892         and computation phase.
23893         (vt_finalize): Free VTI (bb)->mos vector instead of array.
23894
23895         PR debug/43329
23896         * tree-inline.c (remap_decls): Put old_var rather than origin_var
23897         into *nonlocalized_list vector.
23898         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
23899         even if origin is non-NULL.
23900         (gen_variable_die): Likewise.
23901         (process_scope_var): Don't change origin.
23902         (gen_decl_die): Likewise.
23903         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
23904         before adding new edges instead of after it, fix moving over
23905         debug stmts.
23906
23907 2010-03-11  David S. Miller  <davem@davemloft.net>
23908
23909         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
23910         of four.
23911         * configure: Rebuild.
23912
23913 2010-03-11  Martin Jambor  <mjambor@suse.cz>
23914
23915         PR tree-optimization/43257
23916         * tree.c (assign_assembler_name_if_neeeded): New function.
23917         (free_lang_data_in_cgraph): Assembler name assignment moved to the
23918         above new function.
23919         * tree.h (assign_assembler_name_if_neeeded): Declare.
23920         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
23921         the function if needed.
23922
23923 2010-03-11  Chris Demetriou  <cgd@google.com>
23924
23925         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
23926         include/stdint-gcc.h, and include/stdint.h world-readable.
23927
23928 2010-03-11  Richard Guenther  <rguenther@suse.de>
23929
23930         PR tree-optimization/43255
23931         * tree-vrp.c (process_assert_insertions_for): Do not insert
23932         asserts for trivial conditions.
23933
23934 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23935
23936         PR tree-optimization/43280
23937         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
23938         generation.  Move calculation of size out of the if branch.
23939         (find_bswap): Modify compare number generation.
23940
23941 2010-03-11  Richard Guenther  <rguenther@suse.de>
23942
23943         PR lto/43200
23944         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
23945         (input_gimple_stmt): Fixup handled component types during
23946         operand read.  Also fix up decls in ADDR_EXPRs.
23947
23948 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
23949
23950         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
23951         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
23952
23953 2010-03-10  Jan Hubicka  <jh@suse.cz>
23954
23955         PR c/43288
23956         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
23957         * varasm.c (get_variable_section): Don't do that here...
23958         (make_decl_rtl): ... and here.
23959         (do_assemble_alias): Produce decl RTL.
23960         (assemble_alias): Likewise.
23961
23962 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23963
23964         PR debug/43290
23965         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
23966         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
23967         of fde->vdrap_reg.
23968         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
23969         (based_loc_descr): Only express drap or vdrap regno based expressions
23970         using DW_OP_fbreg when not optimizing.
23971         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
23972         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
23973         REG_CFA_SET_VDRAP note.
23974
23975 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
23976
23977         PR tree-optimization/43236
23978         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
23979         error in calculation of base address in reverse iteration case.
23980         (generate_builtin): Take number of latch executions if the statement
23981         is in the latch.
23982
23983 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
23984
23985         PR middle-end/42859
23986         * tree-eh.c: Include pointer-set.h.
23987         (lower_eh_dispatch): Filter out duplicate case labels and
23988         remove the unneeded edge when the label is unused.  Return
23989         true when some edges are removed.
23990         (execute_lower_eh_dispatch): When any lowering resulted in
23991         removing an edge, also delete unreachable blocks.
23992
23993 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23994
23995         PR bootstrap/43287
23996         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23997         UNSPEC_MACHOPIC_OFFSET.
23998
23999 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
24000
24001         PR target/43294
24002         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
24003         (m68k_delegitimize_address): New function.
24004
24005 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
24006
24007         PR debug/43299
24008         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
24009
24010         PR debug/43299
24011         * var-tracking.c (adjust_sets): New function.
24012         (count_with_sets, add_with_sets): Use it.
24013         (get_adjusted_src): New inline function.
24014         (add_stores): Use it.
24015
24016         PR debug/43304
24017         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
24018         call cselib_dummy_expand_value_rtx_cb instead of
24019         cselib_expand_value_rtx_cb.
24020
24021         PR debug/43293
24022         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
24023         * config/i386/i386.c: Include debug.h and dwarf2out.h.
24024         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
24025         and .cfi_endproc around the pic thunks.
24026         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
24027         all queued unwind info register saves are saved before the call.
24028         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
24029         considered as sp-=4 for unwind info and the pop as sp+=4 which
24030         also clobbers dest, but doesn't actually restore it.
24031
24032         PR debug/43290
24033         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
24034         RTX_FRAME_RELATED_P.
24035
24036 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24037
24038         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
24039         whitespaces in output template.
24040
24041 2010-03-09  Jie Zhang  <jie@codesourcery.com>
24042
24043         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
24044         out array boundary.
24045
24046 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24047
24048         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
24049         builtins.exp in a separate job.
24050
24051 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24052
24053         * graphite-sese-to-poly.c (add_param_constraints): Use
24054         lower_bound_in_type and upper_bound_in_type.
24055
24056 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24057
24058         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
24059         instead of unsigned_type_node.
24060
24061 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24062             Reza Yazdani  <reza.yazdani@amd.com>
24063
24064         PR middle-end/43065
24065         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
24066         on pointer type parameters.
24067
24068 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24069
24070         PR middle-end/42644
24071         PR middle-end/42130
24072         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
24073         handle conversions from pointer to integers.
24074         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
24075         induction variable, to be able to work with code generated by CLooG.
24076         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
24077         (build_poly_scop): Bail out if we cannot codegen a loop.
24078
24079 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
24080
24081         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
24082         code generation with gloog_error.
24083
24084 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24085
24086         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
24087         Call fold_convert on all the returned values.
24088         (expand_scalar_variables_expr): Pass to
24089         expand_scalar_variables_ssa_name the type of the resulting expression.
24090
24091 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24092
24093         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
24094         ppl_min_for_le_pointset.
24095         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
24096         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
24097
24098 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24099
24100         * graphite-dependences.c (map_into_dep_poly): Removed.
24101         (dependence_polyhedron_1): Use combine_context_id_scat.
24102
24103 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24104
24105         * graphite-poly.h (struct poly_scattering): Add layout documentation.
24106         (struct poly_bb): Same.
24107         (combine_context_id_scat): New.
24108
24109 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24110
24111         PR middle-end/42326
24112         * sese.c (name_defined_in_loop_p): Return false for default
24113         definitions.
24114
24115 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24116
24117         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
24118         and clean up the logic.
24119
24120 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
24121
24122         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
24123         early return.
24124
24125 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
24126
24127         * var-tracking.c (remove_cselib_value_chains): Define only for
24128         ENABLE_CHECKING.
24129         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
24130         delete_slot_part, emit_notes_for_differences_1): Don't call
24131         remove_cselib_value_chains here.
24132         (set_slot_part, emit_notes_for_differences_2): Don't call
24133         add_cselib_value_chains here.
24134         (preserved_values): New vector.
24135         (preserve_value): New function.
24136         (add_uses, add_stores, vt_add_function_parameters): Use it
24137         instead of cselib_preserve_value.
24138         (changed_values_stack): New vector.
24139         (check_changed_vars_0): New function.
24140         (check_changed_vars_1, check_changed_vars_2): Use it.
24141         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
24142         changed_values_stack VALUEs.
24143         (vt_emit_notes): For all preserved_values call
24144         add_cselib_value_chains.  If ENABLE_CHECKING call
24145         remove_cselib_value_chains before verifying value_chains is empty.
24146         Initialize and free changed_values_stack.
24147         (vt_initialize): Initialize preserved_values.
24148         (vt_finalize): Free preserved_values.
24149
24150 2010-03-08  Richard Guenther  <rguenther@suse.de>
24151
24152         PR tree-optimization/43269
24153         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
24154         region detection.
24155
24156 2010-03-08  Martin Jambor  <mjambor@suse.cz>
24157
24158         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
24159         (ipa_is_param_called): Removed.
24160         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
24161         (ipa_print_node_params): Do not print the called flag.
24162         (ipa_write_node_info): Do not stream the called flag.
24163         (ipa_read_node_info): Likewise.
24164
24165 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
24166
24167         PR debug/43176
24168         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
24169         * cselib.c (struct expand_value_data): Add dummy field.
24170         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
24171         dummy to false.
24172         (cselib_dummy_expand_value_rtx_cb): New function.
24173         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
24174         any rtl.
24175         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
24176         * var-tracking.c: Include pointer-set.h.
24177         (variable): Change n_var_parts to char from int.  Add
24178         cur_loc_changed and in_changed_variables fields.
24179         (variable_canonicalize): Remove.
24180         (shared_var_p): New inline function.
24181         (unshare_variable): Maintain cur_loc_changed and
24182         in_changed_variables fields.  If var was in changed_variables,
24183         replace it there with new_var.  Just copy cur_loc instead of
24184         resetting it to something else.
24185         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
24186         (dataflow_set_union): Don't call variable_canonicalize.
24187         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
24188         of their DEBUG_EXPR_TREE_DECLs.
24189         (canonicalize_loc_order_check): Verify that cur_loc is NULL
24190         and in_changed_variables and cur_loc_changed is false.
24191         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
24192         and cur_loc_changed.  Don't update cur_loc here.
24193         (variable_merge_over_src): Don't call variable_canonicalize.
24194         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
24195         removing loc that is equal to cur_loc, clear cur_loc,
24196         set cur_loc_changed and ensure variable_was_changed is called.
24197         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
24198         compare pointers in cur_loc check, if it is equal to loc,
24199         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
24200         (variable_different_p): Remove compare_current_location argument,
24201         don't compare cur_loc.
24202         (dataflow_set_different_1): Adjust variable_different_p caller.
24203         (variable_was_changed): If dv had some var in changed_variables
24204         already, reset in_changed_variables flag for it and propagate
24205         cur_loc_changed over to the new variable.  On empty var
24206         always set cur_loc_changed.  Set in_changed_variables on whatever
24207         var is added to changed_variables.
24208         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
24209         Use shared_var_p.  When removing loc that is equal to cur_loc,
24210         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
24211         end, don't set it to something else, just call variable_was_changed.
24212         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
24213         loc being removed, clear cur_loc and set cur_loc_changed.
24214         Set cur_loc_changed if all locations have been removed.
24215         (struct expand_loc_callback_data): New type.
24216         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
24217         allocated.  Always create SUBREGs if simplify_subreg failed.
24218         Prefer to use cur_loc, when that fails and still in
24219         changed_variables (and seen first time) recompute it.  Set
24220         cur_loc_changed of variables which had to change cur_loc and
24221         compute elcd->cur_loc_changed if any of the subexpressions used
24222         had to change cur_loc.
24223         (vt_expand_loc): Adjust to pass arguments in
24224         expand_loc_callback_data structure.
24225         (vt_expand_loc_dummy): New function.
24226         (emitted_notes): New variable.
24227         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
24228         that weren't used for any other decl in current
24229         emit_notes_for_changes call call vt_expand_loc_dummy to update
24230         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
24231         first loc_chain location if NULL before.  Always use just
24232         cur_loc instead of first loc_chain location.  When cur_loc_changed
24233         is false, when not --enable-checking=rtl just don't emit any note.
24234         When rtl checking, compute the note and assert it is the same
24235         as previous note.  Clear cur_loc_changed and in_changed_variables
24236         at the end before removing from changed_variables.
24237         (check_changed_vars_3): New function.
24238         (emit_notes_for_changes): Traverse changed_vars to call
24239         check_changed_vars_3 on each changed var.
24240         (emit_notes_for_differences_1): Clear cur_loc_changed and
24241         in_changed_variables.  Recompute cur_loc of new_var.
24242         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
24243         (vt_emit_notes): Initialize and destroy emitted_notes.
24244
24245 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
24246
24247         PR rtl-optimization/42220
24248         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
24249         Use verify_reg_tracked to determine if we should use OP_OUT rather
24250         than OP_INOUT.
24251         (build_def_use): If we see an in-out operand for a register that we
24252         know nothing about, treat is an output if possible, fail the block if
24253         not.
24254
24255 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24256
24257         PR debug/42897
24258         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
24259         permanently.
24260
24261 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24262
24263         PR debug/42897
24264         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
24265         uses of relevant DEFs that are dead outside the loop too.
24266
24267 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
24268
24269         * var-tracking.c (dataflow_set_merge): Swap src and src2.
24270         Reverted:
24271         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
24272         PR debug/41371
24273         * var-tracking.c (values_to_unmark): New variable.
24274         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
24275         values_to_unmark vector.  Moved body to...
24276         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
24277         instead queue it into values_to_unmark vector.
24278         (vt_find_locations): Free values_to_unmark vector.
24279
24280 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
24281
24282         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
24283         (site.exp): Export them when plugins are enabled.
24284
24285 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
24286
24287         PR middle-end/42326
24288         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
24289         that contain scevs.
24290         (chrec_fold_multiply): Same.
24291
24292 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
24293
24294         PR c/43248
24295         * c-decl.c (build_compound_literal): Return early if init is
24296         an error_mark_node.
24297
24298 2010-03-04  Martin Jambor  <mjambor@suse.cz>
24299
24300         PR tree-optimization/43164
24301         PR tree-optimization/43191
24302         * tree-sra.c (type_consists_of_records_p): Reject records with
24303         zero-size bit-fields at the end.
24304
24305 2010-03-04  Mike Stump  <mikestump@comcast.net>
24306
24307         * Makefile.in (TAGS): Remove *.y.
24308
24309 2010-03-04  Richard Guenther  <rguenther@suse.de>
24310
24311         PR tree-optimization/40761
24312         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
24313         in reverse order.
24314         (my_rev_post_order_compute): New function.
24315         (init_pre): Call it.
24316
24317 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
24318
24319         PR middle-end/43209
24320         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
24321         decrease the cost of an IV candidate when the cost is infinite.
24322
24323 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24324
24325         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
24326         Use '3DNow!' for the extension of that name, ensure normal space
24327         after the string.
24328         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
24329
24330 2010-03-03  Jeff Law  <law@redhat.com>
24331
24332         * PR middle-end/32693
24333         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
24334         than gen_rtx_SUBREG.
24335         (extract_bit_field_1): Likewise.
24336
24337 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
24338
24339         * doc/sourcebuild.texi (Test directives): Document that arguments
24340         include-opts and exclude-opts are now optional for dg-skip-if,
24341         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
24342
24343 2010-03-03  Jason Merrill  <jason@redhat.com>
24344
24345         PR c++/12909
24346         * cgraph.h (varpool_node): Add extra_name field.
24347         * varpool.c (varpool_extra_name_alias): New.
24348         (varpool_assemble_decl): Emit extra name aliases.
24349         (varpool_mark_needed_node): Look past an extra name alias.
24350         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
24351         * lto-streamer-in.c (lto_input_tree): Read it.
24352         * lto-streamer-out.c (output_unreferenced_globals): Write it.
24353
24354 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
24355
24356         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
24357         (sparc*-*-solaris2*): ...this.
24358
24359 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
24360
24361         PR debug/43229
24362         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
24363         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
24364         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
24365         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
24366
24367         PR debug/43237
24368         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
24369         fallthrough to default handling, just with want_address 0 instead of 2.
24370         For single element lists, add_AT_loc directly, otherwise create an
24371         artificial variable DIE and stick location list to it.
24372
24373         PR debug/43177
24374         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
24375         (VAL_EXPR_HAS_REVERSE): Define.
24376         (reverse_op): New function.
24377         (add_stores): For reversible operations add an extra MO_VAL_USE.
24378
24379 2010-03-02  Jason Merrill  <jason@redhat.com>
24380
24381         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
24382
24383 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
24384
24385         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
24386         (sparc64-*-linux*): Likewise.
24387         (sparc64-*-solaris2*): Include assembler files before linker ones.
24388         (sparc-*-solaris2*): Simplify and reorder to match previous case.
24389         * config/sparc/gas.h: Delete.
24390         * config/sparc/sol2-64.h: Add copyright notice.
24391         * config/sparc/sol2-gas-bi.h: Likewise.
24392         * config/sparc/sol2-gld.h: Likewise.
24393         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
24394         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
24395         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
24396         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
24397         (sparc_elf_asm_named_section): Rename into...
24398         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
24399
24400 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
24401
24402         * config/alpha/alpha.c (override_options): Fix -mtune error message.
24403
24404 2010-03-02  Jeff Law  <law@redhat.com>
24405
24406         PR middle-end/42431
24407         * reload1.c (rtx_p, substitute_stack): Declare.
24408         (substitute): Record addresses of changed rtxs.
24409         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
24410         Restore the original rtx when complete.
24411         (reload): Free subsitute_stack when complete.
24412
24413 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
24414
24415         * doc/gccint.texi (menu): Add Testsuites as a chapter.
24416         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
24417         new chapter.
24418         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
24419         LTO Testing, gcov Testing, profopt Testing, compat Testing,
24420         Torture Tests): Change from subsection to section.
24421
24422 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
24423             Steven Bosscher  <steven@gcc.gnu.org>
24424
24425         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
24426         instead of bb.
24427
24428 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
24429
24430         PR middle-end/42640
24431         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
24432         the assignment from the new induction variable to the assignment
24433         of the value from the original loop PHI function.
24434
24435 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
24436             Daniel Jacobowitz  <dan@codesourcery.com>
24437
24438         * doc/sourcebuild.texi (Test directives): Clarify options to
24439         dg-skip-if.
24440
24441 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24442
24443         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
24444         Disable cfi directives unless GCC and gas agree on using read-only
24445         .eh_frame sections for 64-bit.
24446         * configure: Regenerate.
24447
24448 2010-03-01  Richard Guenther  <rguenther@suse.de>
24449
24450         PR tree-optimization/43220
24451         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
24452         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
24453
24454 2010-03-01  Richard Guenther  <rguenther@suse.de>
24455             Martin Jambor  <mjambor@suse.cz>
24456
24457         PR middle-end/41250
24458         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
24459         gimplified parameters.
24460
24461 2010-03-01  Christian Bruel  <christian.bruel@st.com>
24462
24463         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
24464
24465 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
24466
24467         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
24468
24469 2010-03-01  Richard Guenther  <rguenther@suse.de>
24470
24471         PR middle-end/43213
24472         * expr.c (expand_assignment): Use the alias-oracle to tell
24473         if the rhs aliases the result decl.
24474
24475 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24476
24477         PR pch/14940
24478         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
24479         to sol_gt_pch_get_address.
24480         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
24481         64-bit, SPARC and x86.
24482         (sol_gt_pch_get_address): New function.
24483
24484 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
24485
24486         * toplev.h (inform_n, error_n): Declare.
24487         * diagnostic.c (inform_n, error_n): New function.
24488
24489 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
24490
24491         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
24492         has no rtl yet when processing local_decls, queue it and recheck
24493         if deferred stack allocation hasn't assigned it rtl.
24494
24495 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
24496
24497         * config/sh/sh.c (unspec_bbr_uid): New.
24498         (gen_block_redirect): Use it instead of INSN_UID.
24499         (gen_far_branch): Likewise.
24500
24501 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
24502
24503         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
24504         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
24505
24506 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24507
24508         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
24509         (Warning Options): -Wno-conversion-null is valid for
24510         Objective-C++ as well.
24511         * doc/tm.texi (Named Address Spaces): Likewise.
24512         * doc/plugins.texi (Plugins): Replace TABs with spaces.
24513         * doc/tree-ssa.texi (Tree SSA): Likewise.
24514
24515 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24516
24517         PR bootstrap/43202
24518         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
24519         by default.  Don't set the default arch for
24520         i[34567]86-*-darwin*|x86_64-*-darwin*.
24521
24522 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24523
24524         PR bootstrap/43202
24525         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
24526         default.  Set the default 32bit/64bit archs with $with_arch
24527         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
24528
24529 2010-02-27  Richard Guenther  <rguenther@suse.de>
24530
24531         PR tree-optimization/43186
24532         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
24533         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
24534         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
24535         unroller iterations.
24536
24537 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24538
24539         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
24540         required and i[34567]86-*-* targets don't support 64bit ISA.
24541
24542 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
24543
24544         PR ada/43096
24545         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24546         the same alias set.
24547
24548 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24549
24550         * config.gcc: Set the default arch at least to Prescott for
24551         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
24552         if SSE math is enabled.
24553
24554 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24555
24556         * diagnostic.c (diagnostic_initialize): Update.
24557         (diagnostic_report_diagnostic): Test inhibit_notes_p for
24558         informative notes.
24559         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
24560         (diagnostic_inhibit_notes): New.
24561         * toplev.c (process_options): inhibit notes with -fcompare-debug.
24562
24563 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24564
24565         PR c/20631
24566         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
24567         * doc/standards.texi: Likewise.
24568         * doc/extend.texi: Likewise.
24569         * doc/trouble.texi: Likewise.
24570         * doc/cppopts.texi: Likewise.
24571         * doc/install.texi: Likewise.
24572         * c.opt (std=c90,std=gnu90): New options.
24573         * c-opts.c (c_common_handle_option): Handle them.
24574
24575 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24576
24577         PR c/24577
24578         * c-decl.c (undeclared_variable): Use an informative note.
24579
24580 2010-02-26  Richard Guenther  <rguenther@suse.de>
24581
24582         PR tree-optimization/43186
24583         * gimple.h (gimple_fold): Remove.
24584         * gimple.c (gimple_fold): Remove.  Inline into single user ...
24585         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
24586         Try harder for conditions.
24587
24588 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24589
24590         PR debug/43190
24591         * function.c (used_types_insert): Don't skip through named pointer
24592         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
24593         and it is different from the main variant's type.
24594
24595 2010-02-26  Nick Clifton  <nickc@redhat.com>
24596
24597         * config/rx/rx.md (sminsi3): Remove bogus alternative.
24598
24599 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24600
24601         * config.gcc: Support --with-fpmath=sse for x86.
24602
24603         * config/i386/ssemath.h: New.
24604
24605         * doc/install.texi (--with-fpmath=sse): Documented.
24606
24607 2010-02-26  Richard Guenther  <rguenther@suse.de>
24608
24609         PR tree-optimization/43188
24610         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
24611         vector types of over-aligned element type.
24612
24613 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
24614
24615         PR target/43175
24616         * config/i386/i386.c (expand_vec_perm_blend): Use correct
24617         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
24618
24619 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
24620
24621         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
24622
24623 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24624
24625         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
24626         * var-tracking.c: Include diagnostic.h.
24627         (debug_dv): New function.
24628         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
24629
24630         PR debug/43160
24631         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
24632         (add_value_chain, add_value_chains, remove_value_chain,
24633         remove_value_chains): Handle DEBUG_EXPRs.
24634         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
24635
24636         PR debug/43161
24637         * regcprop.c (struct queued_debug_insn_change): New type.
24638         (struct value_data_entry): Add debug_insn_changes field.
24639         (struct value_data): Add n_debug_insn_changes field.
24640         (debug_insn_changes_pool): New variable.
24641         (free_debug_insn_changes, apply_debug_insn_changes,
24642         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
24643         (kill_value_one_regno): Call free_debug_insn_changes if needed.
24644         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
24645         fields.
24646         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
24647         changes for them.
24648         (copyprop_hardreg_forward_1): Don't call apply_change_group for
24649         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
24650         changes, call cprop_find_used_regs via note_stores.
24651         (copyprop_hardreg_forward): When copying vd from predecessor
24652         which has any queued DEBUG_INSN changes, make sure the pointers are
24653         cleared.  At the end call df_analyze and then if there are any
24654         DEBUG_INSN changes queued at the end of some basic block for still
24655         live registers, apply them.
24656         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
24657
24658 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
24659
24660         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
24661         (arm*-*-*): Ditto.
24662
24663 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
24664
24665         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
24666         targets.  Set the default with_cpu/with_arch from arch/cpu.
24667         Allow x86-64 and native for with_cpu/with_arch.
24668
24669 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
24670
24671         * ebitmap.c: Change calls to verify_popcount with calls to
24672         sbitmap_verify_popcount.
24673         (ebitmap_clear_bit): Fixed map->cacheindex test and
24674         map>cache update when bit clearing results in an empty
24675         element.
24676
24677 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
24678
24679         PR target/43154
24680         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
24681         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
24682         and support both V2DF and V2DI modes.
24683         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
24684         support both V2DF and V2DI modes.
24685         (general): Delete trailing whitespace from a few patterns.
24686
24687         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24688         V2DF/V2DI interleave high/low builtins.
24689
24690         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
24691         new VSX builtins.
24692
24693         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
24694         interleave high/low functions.
24695
24696 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
24697
24698         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
24699         #pragma extern_prefix.
24700
24701 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
24702
24703         PR debug/43166
24704         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
24705         BLKmode, assert op0 is a MEM and just adjust its mode.
24706
24707         PR debug/43165
24708         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
24709         if bitpos isn't multiple of mode's bitsize.
24710
24711 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24712
24713         * c.opt (-ftemplate-depth=): New.
24714         (-ftemplate-depth-): Deprecate.
24715         * optc-gen.awk: Handle -ftemplate-depth=.
24716         * opth-gen.awk: Likewise.
24717         * c-opts.c (c_common_handle_option): Likewise.
24718         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
24719
24720 2010-02-24  Jason Merrill  <jason@redhat.com>
24721
24722         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
24723
24724 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24725
24726         * cfg.c (alloc_aux_for_block): Remove inline.
24727         (alloc_aux_for_edge): Likewise.
24728
24729 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24730
24731         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
24732
24733 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24734
24735         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
24736         * config/i386/sol2-gas.h: New file.
24737         * config.gcc (i[34567]86-*-solaris2*): Use it.
24738
24739 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24740
24741         PR c/43128
24742         * c-typeck.c (ep_convert_and_check): New.
24743         (build_conditional_expr): Use it.
24744         (build_binary_op): Likewise.
24745
24746 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
24747
24748         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
24749
24750         PR debug/43150
24751         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
24752         bounds even for -O+.
24753         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
24754         expr needs to have DECL_NAME set.
24755
24756 2010-02-24  Nick Clifton  <nickc@redhat.com>
24757
24758         * config/mep/mep.c: Include gimple.h.
24759         (mep_function_uses_sp): Delete unused function.
24760         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
24761         parameters.  Use unsigned integers to count args.  Return a
24762         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
24763
24764 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24765
24766         PR target/43107
24767         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
24768         greater or equal to nelt instead of 2 * nelt.
24769         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
24770         with nelt - 1.
24771
24772 2010-02-23  Jason Merrill  <jason@redhat.com>
24773
24774         PR debug/42800
24775         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
24776         in cfun->local_decls even if they have register types.
24777
24778         PR c++/42837
24779         * stor-layout.c (place_field): Don't warn about unnecessary
24780         DECL_PACKED if the type is packed.
24781
24782 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24783
24784         PR target/43139
24785         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
24786         GOTOFF relocs, even when the base reg isn't pic pointer.
24787
24788 2010-02-23  Michael Matz  <matz@suse.de>
24789
24790         PR debug/43077
24791         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
24792         (expand_gimple_basic_block): Generate and use debug temps if there
24793         are debug uses left after the last real use of TERed ssa names.
24794         Unlink debug immediate uses when they are expanded.
24795
24796 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24797
24798         PR 43123
24799         * config/i386/i386.c (override_options): Reorganise to provide
24800         better error messages.
24801
24802 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24803
24804         PR middle-end/43083
24805         * graphite-scop-detection.c (create_single_exit_edge): Move
24806         the call to find_single_exit_edge to....
24807         (create_sese_edges): ...here.  Don't handle multiple edges
24808         exiting the function.
24809         (build_graphite_scops): Don't handle multiple edges
24810         exiting the function.
24811
24812 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24813
24814         PR middle-end/43097
24815         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
24816         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
24817
24818 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24819
24820         PR middle-end/43026
24821         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
24822
24823 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24824
24825         PR c++/43126
24826         * c-typeck.c (convert_arguments): Print declaration location.
24827         * c-common.c (validate_nargs): Rename as
24828         builtin_function_validate_nargs.
24829         (check_builtin_function_arguments): Update.
24830
24831 2010-02-22  Richard Guenther  <rguenther@suse.de>
24832
24833         PR lto/43045
24834         * tree-inline.c (declare_return_variable): Use the type of
24835         the call stmt lhs if available.
24836
24837 2010-02-22  Duncan Sands  <baldrick@free.fr>
24838
24839         * passes.c (register_pass): Always consider all pass lists when
24840         ref_pass_instance_number is zero.
24841
24842 2010-02-22  Richard Guenther  <rguenther@suse.de>
24843
24844         PR tree-optimization/42749
24845         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
24846         parameter.  Do arithmetic in the original type.
24847         (update_accumulator_with_ops): Likewise.
24848         (adjust_accumulator_values): Adjust.
24849
24850 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24851
24852         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
24853         (QI to BLKmode splitter): New splitter.
24854
24855 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
24856
24857         * config/i386/i386.c (initial_ix86_tune_features): Turn on
24858         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
24859
24860 2010-02-22  Richard Guenther  <rguenther@suse.de>
24861
24862         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
24863
24864 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
24865
24866         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
24867         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
24868         ($(T)crti.o, $(T)crtn.o): Remove rules.
24869
24870 2010-02-21  Tobias Burnus  <burnus@net-b.de>
24871
24872         PR fortran/35259
24873         * doc/invoke.texi (-fassociative-math): Document that this
24874         option is automatically enabled for Fortran.
24875
24876 2010-02-20  David S. Miller  <davem@davemloft.net>
24877
24878         * configure.ac: Test if linker and assembler properly support
24879         GOTDATA_OP relocations.
24880         * configure: Rebuild.
24881         * config.in: Likewise.
24882         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
24883         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
24884         (movsi_high_pic): Likewise.
24885         (movdi_lo_sum_pic): Likewise.
24886         (movdi_high_pic): Likewise.
24887         (movsi_pic_gotdata_op): New pattern.
24888         (movdi_pic_gotdata_op): Likewise.
24889         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
24890         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
24891
24892 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
24893
24894         PR target/43067
24895         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
24896         attribute to ssemul.
24897         (xop_mulv2div2di3_high): Ditto.
24898
24899 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24900
24901         PR c++/35669
24902         * c.opt (Wconversion-null): New option.
24903         * doc/invoke.texi (Wconversion-null): Document.
24904
24905 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24906
24907         * common.opt (Wlarger-than-): Add Undocumented.
24908
24909 2010-02-19  Mike Stump  <mikestump@comcast.net>
24910
24911         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
24912
24913 2010-02-19  Jason Merrill  <jason@redhat.com>
24914
24915         PR target/40332
24916         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
24917         * configure: Likewise.
24918
24919 2010-02-20  Alan Modra  <amodra@gmail.com>
24920
24921         PR middle-end/42344
24922         * cgraph.h (cgraph_make_decl_local): Declare.
24923         * cgraph.c (cgraph_make_decl_local): New function.
24924         (cgraph_make_node_local): Use it.
24925         * cgraphunit.c (cgraph_function_versioning): Likewise.
24926         * ipa.c (function_and_variable_visibility): Likewise.
24927
24928 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24929
24930         PR bootstrap/43121
24931         * except.c (sjlj_emit_function_enter): Don't call
24932         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
24933         directly.
24934         * rtl.h (add_reg_br_prob_note): Remove prototype.
24935
24936 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24937
24938         PR 41779
24939         * c-common.c (conversion_warning): Remove widening conversions
24940         before checking the conversion of integers to reals.
24941
24942 2010-02-19  Mike Stump  <mikestump@comcast.net>
24943
24944         PR middle-end/43125
24945         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
24946
24947         PR objc/43061
24948         * cgraphunit.c (process_function_and_variable_attributes): Check
24949         DECL_PRESERVE_P instead of looking up attribute "used".
24950         * ipa-pure-const.c (check_decl): Likewise.
24951         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
24952         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
24953         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
24954         instead of attribute "used".
24955         * config/sol2-c.c (solaris_pragma_init): Likewise.
24956         (solaris_pragma_fini): Likewise.
24957
24958 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24959
24960         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
24961         Use XCNEW instead of xcalloc.
24962         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
24963         XNEW instead of xmalloc.
24964         (get_fields): Use XNEWVEC instead of xmalloc.
24965
24966         PR debug/43084
24967         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
24968         populate vars array.
24969         (create_new_general_access): For debug stmts just reset value.
24970         (get_stmt_accesses): For accesses within debug stmts just record them
24971         using add_access_to_acc_sites instead of preventing the peeling or
24972         counting them as accesses.
24973
24974         PR middle-end/42233
24975         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
24976
24977 2010-02-19  Richard Guenther  <rguenther@suse.de>
24978
24979         PR tree-optimization/42916
24980         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
24981         instructions.
24982
24983 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
24984
24985         * configure.ac: Replace all uses of changequote in macro arguments
24986         with proper quoting.
24987
24988 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24989
24990         PR middle-end/42233
24991         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
24992
24993 2010-02-19  Richard Guenther  <rguenther@suse.de>
24994
24995         PR tree-optimization/42944
24996         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
24997         test for aliasing with errno.
24998
24999 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
25000
25001         PR middle-end/42233
25002         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
25003         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
25004         * dojump.c: Include output.h.
25005         (inv): New inline function.
25006         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
25007         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
25008         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
25009         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
25010         argument, pass it down to other calls.
25011         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
25012         add REG_BR_PROB note to the conditional jump.
25013         * cfgexpand.c (add_reg_br_prob_note): Removed.
25014         (expand_gimple_cond): Don't call it, add the probability
25015         as last argument to jumpif_1/jumpifnot_1.
25016         * Makefile.in (dojump.o): Depend on output.h.
25017         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
25018         callers.
25019         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
25020         * stmt.c (do_jump_if_equal): Likewise.
25021         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
25022         * loop-unswitch.c (compare_and_jump_seq): Likewise.
25023         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
25024         Likewise.
25025         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
25026         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
25027         jumpifnot_1 callers.
25028         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
25029         callers.
25030         (store_expr): Adjust jumpifnot caller.
25031         (store_constructor): Adjust jumpif caller.
25032
25033         PR middle-end/42233
25034         * gimplify.c (gimple_boolify): For __builtin_expect call
25035         gimple_boolify also on its first argument.
25036
25037 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
25038
25039         * configure.ac (gnu-unique-object): Wrap regexps using [] in
25040         changequote block.
25041         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
25042         * configure: Regenerated.
25043
25044 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25045
25046         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
25047         lang_hooks.types_compatible_p instead of comptypes.
25048
25049 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25050
25051         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
25052         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
25053         if __prefer_thumb__ is defined.
25054
25055 2010-02-18  Martin Jambor  <mjambor@suse.cz>
25056
25057         PR tree-optimization/43066
25058         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
25059         array with zero-sized element type.
25060
25061 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
25062
25063         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
25064         rtx, allocate struct var_loc_node here and return it to the
25065         caller, and only if it is actually needed.
25066         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
25067         move it earlier and return immediately if it returns NULL.
25068
25069 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
25070
25071         * config/sparc/gas.h: New file.  Restore
25072         TARGET_ASM_NAMED_SECTION to its ELF default.
25073         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
25074         check !HAVE_GNU_AS.
25075         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25076         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
25077         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
25078         after sparc/sysv4.h.
25079
25080 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
25081
25082         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
25083
25084 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
25085
25086         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
25087         patterns from predicated pattern.
25088
25089 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
25090
25091         PR target/43103
25092         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
25093         for insn mnemonic suffix.
25094
25095 2010-02-17  Richard Guenther  <rguenther@suse.de>
25096
25097         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
25098         to loop PHI nodes.
25099
25100 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
25101
25102         PR debug/42918
25103         * caller-save.c (save_call_clobbered_regs): If BB ends with
25104         a DEBUG_INSN, move any notes in between last real insn and the last
25105         DEBUG_INSN after the last DEBUG_INSN.
25106
25107 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
25108
25109         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
25110         Fix return type.  Fix argument type.  Explain meaning of return value.
25111
25112 2010-02-16  Richard Guenther  <rguenther@suse.de>
25113
25114         PR tree-optimization/41043
25115         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
25116         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
25117         statements ...
25118         (vrp_visit_phi_node): ... but only for loop PHI nodes.
25119
25120 2010-02-16  Ira Rosen  <irar@il.ibm.com>
25121
25122         PR tree-optimization/43074
25123         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
25124         * tree-vect-loop.c (vect_analyze_loop_operations): Add
25125         vectorizable cycles in hybrid SLP check.
25126         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
25127
25128 2010-02-16  Richard Guenther  <rguenther@suse.de>
25129
25130         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
25131         (true_dependence): If memrefs_conflict_p computes must-alias
25132         trust it.  Move TBAA check after offset-based disambiguation.
25133         (canon_true_dependence): Likewise.
25134
25135 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
25136
25137         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
25138         * doc/invoke.texi: Document it.
25139         * var-tracking.c: Include toplev.h and params.h.
25140         (vt_find_locations): Return bool indicating success.  Compute
25141         hash sizes unconditionally.  Check new parameter, report.
25142         (variable_tracking_main_1): Check vt_find_locations results and
25143         retry.  Renamed from...
25144         (variable_tracking_main): ... this.  New wrapper to preserve
25145         flag_var_tracking_assignments.
25146         * Makefile.in (var-tracking.o): Adjust dependencies.
25147
25148 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
25149             Jakub Jelinek  <jakub@redhat.com>
25150
25151         PR target/42854
25152         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
25153         if weak_import attribute is present.
25154         * config/darwin.c (machopic_select_section): Likewise.
25155
25156 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
25157
25158         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
25159         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
25160         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
25161         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
25162
25163         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
25164         types.
25165
25166         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
25167         Fix argument types.
25168
25169         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
25170         Rewrite text to refer to the names.
25171
25172 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
25173
25174         * config/i386/i386-builtin-types.def
25175         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
25176         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
25177         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
25178         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
25179         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
25180         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
25181         IX86_BUILTIN_VPERMIL2PS256.
25182         (MULTI_ARG_4_DF2_DI_I): Defined.
25183         (MULTI_ARG_4_DF2_DI_I1): Defined.
25184         (MULTI_ARG_4_SF2_SI_I): Defined.
25185         (MULTI_ARG_4_SF2_SI_I1): Defined.
25186         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
25187         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
25188         __builtin_ia32_vpermil2ps256.
25189         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25190         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25191         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
25192         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
25193         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
25194         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
25195         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
25196         CODE_FOR_xop_vpermil2v8sf3.
25197         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
25198         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
25199         * config/i386/xopintrin.h (_mm_permute2_pd): New.
25200         (_mm256_permute2_pd): New.
25201         (_mm_permute2_ps): New.
25202         (_mm256_permute2_ps): New.
25203
25204 2010-02-15  Nick Clifton  <nickc@redhat.com>
25205
25206         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
25207         boolean parameters.  Use emit_jump_insn when emitting a pop
25208         instruction containing a return insn.
25209         (push): Use 'true' rather than '1' as second parameter to F.
25210         (h8300_expand_prologue): Likewise.
25211         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
25212         (h8300_expand_epilogue): Likewise.
25213
25214 2010-02-15  Richard Guenther  <rguenther@suse.de>
25215
25216         PR middle-end/43068
25217         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
25218         if that is zero.
25219
25220 2010-02-15  Nick Clifton  <nickc@redhat.com>
25221
25222         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
25223         delta.
25224
25225 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
25226
25227         * intl.c (fake_ngettext): New function.
25228         * intl.h (fake_ngettext): Declare.
25229         (ngettext): Define macro.
25230         * collect2.c (notice_translated): New function.
25231         (main): Use notice_translated and ngettext.
25232         * collect2.h (notice_translated): Declare.
25233
25234 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
25235
25236         * reorg.c (delete_computation): Comment fixes.
25237         * caller-save.c (setup_save_areas): Idem.
25238         * sel-sched-dump.c (dump_lv_set): Idem.
25239         * rtl.def: Idem.
25240
25241 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25242
25243         * config/s390/s390.c (s390_sched_init): New function.
25244         (TARGET_SCHED_INIT): Target hook defined.
25245
25246 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
25247             Jack Howarth  <howarth@bromo.med.uc.edu>
25248             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
25249
25250         PR target/42982
25251         Partial revert of unintended change in fix for PR41605.
25252         * config/darwin.h: Fix typo.
25253         * config/darwin9.h: Same.
25254
25255 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25256
25257         * c-pch.c (pch_init): Clear v.
25258
25259 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25260
25261         PR middle-end/42930
25262         * graphite-scop-detection.c (graphite_can_represent_scev): Call
25263         graphite_can_represent_init for MULT_EXPR.
25264
25265 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25266
25267         PR middle-end/42914
25268         PR middle-end/42530
25269         * graphite-sese-to-poly.c (remove_phi): New.
25270         (translate_scalar_reduction_to_array): Call remove_phi.
25271
25272 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25273
25274         PR middle-end/42771
25275         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
25276         * graphite-clast-to-gimple.h (gloog): Update declaration.
25277         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
25278         * graphite-poly.h (struct poly_bb): Add missing comments.
25279         (struct scop): Add poly_scop_p field.
25280         (POLY_SCOP_P): New.
25281         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
25282         * graphite.c (graphite_transform_loops): Build the polyhedral
25283         representation for each scop before code generation.
25284         * sese.c (rename_variables_in_operand): Removed.
25285         (rename_variables_in_expr): Return the renamed expression.
25286         (rename_sese_parameters): New.
25287         * sese.h (rename_sese_parameters): Declared.
25288
25289 2010-02-11  Richard Guenther  <rguenther@suse.de>
25290
25291         PR tree-optimization/42998
25292         * tree-ssa-pre.c (create_expression_by_pieces): Treat
25293         POINTER_PLUS_EXPR properly.
25294
25295 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
25296             Changpeng Fang  <changpeng.fang@amd.com>
25297
25298         PR middle-end/40886
25299         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
25300         the cost of an IV candidate when the IV is used in a test against zero.
25301
25302         * gcc.dg/tree-ssa/ivopts-3.c: New.
25303
25304 2010-02-11  Richard Guenther  <rguenther@suse.de>
25305
25306         PR lto/41664
25307         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
25308         pointer-vs-decl case by swapping refs.  Handle some cases
25309         of pointer-vs-decl disambiguations more conservatively.
25310         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
25311         to false after expanding.
25312
25313 2010-02-11  Richard Guenther  <rguenther@suse.de>
25314
25315         PR driver/43021
25316         * gcc.c (process_command): Handle LTO file@offset case more
25317         appropriately.
25318
25319 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25320
25321         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
25322         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
25323         of DEBUG_INSNs.
25324         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
25325
25326         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
25327         if MEM's mode size isn't DWARF2_ADDR_SIZE.
25328         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
25329         Optimize eq/ne comparisons when both arguments are known to be
25330         zero-extended.
25331         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
25332         Don't mask operands unnecessarily if they are known to be already
25333         zero-extended.
25334
25335 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
25336
25337         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
25338         instead of loop.
25339
25340 2010-02-10  Richard Guenther  <rguenther@suse.de>
25341
25342         PR tree-optimization/43017
25343         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
25344         for wrapping signed arithmetic.
25345
25346 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25347
25348         PR debug/43010
25349         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
25350         if no debug info should be emitted for it.
25351
25352 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25353
25354         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
25355         note when flag_exceptions is set.
25356
25357 2010-02-10  Duncan Sands  <baldrick@free.fr>
25358
25359         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
25360
25361 2010-02-10  Richard Guenther  <rguenther@suse.de>
25362
25363         PR c/43007
25364         * tree.c (get_unwidened): Handle constants.
25365         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
25366
25367 2010-02-10  Martin Jambor  <mjambor@suse.cz>
25368
25369         PR lto/42985
25370         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
25371         check for variable argument counts independently.
25372
25373 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25374
25375         PR target/42841
25376         * config/sh/sh.c (find_barrier): Increase length for non delayed
25377         conditional branches.
25378
25379 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25380
25381         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
25382
25383 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25384
25385         * builtins.c (set_builtin_user_assembler_name): Also handle
25386         ffs if int is smaller than word.
25387
25388 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
25389
25390         PR middle-end/42973
25391         * ira-conflicts.c (get_dup): Remove.
25392         (process_reg_shuffles): Add new parameter.  Use it as an
25393         additional guard for copy generation.
25394         (add_insn_allocno_copies): Rewrite.
25395
25396 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
25397
25398         * common.opt (fsched2-use-traces): Preserved for backward
25399         compatibility.
25400         * doc/invoke.texi: Remove the documentation about option
25401         -fsched2-use-traces.
25402         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
25403         flag_sched2_use_traces.
25404         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
25405         the backward compatibility flag section.
25406
25407 2010-02-09  Richard Guenther  <rguenther@suse.de>
25408
25409         PR tree-optimization/43008
25410         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
25411         make HEAP variables initialized from global memory if they
25412         are not known builtin functions.
25413         (find_func_aliases): Adjust.
25414
25415 2010-02-09  Richard Guenther  <rguenther@suse.de>
25416
25417         PR tree-optimization/43000
25418         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
25419         arithmetic manually.
25420
25421 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
25422
25423         PR tree-optimization/42931
25424         * tree-loop-linear.c (try_interchange_loops): Don't call
25425         double_int_mul if estimated_loop_iterations failed.
25426
25427 2010-02-08  Martin Jambor  <mjambor@suse.cz>
25428
25429         PR middle-end/42898
25430         * tree-sra.c (build_accesses_from_assign): Do not mark in
25431         should_scalarize_away_bitmap if stmt has volatile ops.
25432         (sra_modify_assign): Do not process assigns piecemeal if if stmt
25433         has volatile ops.
25434
25435 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
25436
25437         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
25438
25439 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
25440
25441         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
25442         before the pattern.
25443
25444 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
25445
25446         PR middle-end/42946
25447         * df-core.c (df_finish_pass): Change type of saved_flags to int.
25448
25449 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25450
25451         PR middle-end/42988
25452         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
25453         to unknown_dependence.
25454         (graphite_legal_transform_dr): Handle the unknown_dependence.
25455         (graphite_carried_dependence_level_k): Same.
25456
25457 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25458
25459         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
25460
25461 2010-02-07  Richard Guenther  <rguenther@suse.de>
25462
25463         PR middle-end/42991
25464         * expr.c (get_inner_reference): Always initialize *pbitsize.
25465
25466 2010-02-07  Richard Guenther  <rguenther@suse.de>
25467
25468         PR middle-end/42956
25469         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
25470         new ARRAY_REFs on variable size element or minimal index arrays.
25471         Complete.
25472         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
25473         gimple_fold_indirect_ref.
25474
25475 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
25476
25477         PR target/42957
25478         * arm.c (arm_override_options): Just return if the user has specified
25479         an invalid fpu name.
25480
25481 2010-02-03  Jason Merrill  <jason@redhat.com>
25482
25483         PR c++/42870
25484         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
25485         i386_pe_maybe_record_exported_symbol.
25486
25487 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
25488
25489         PR target/42924
25490         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25491         (pa_delegitimize_address): New function.
25492
25493 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
25494
25495         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
25496         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
25497
25498 2010-02-05  Richard Guenther  <rguenther@suse.de>
25499
25500         PR lto/42762
25501         * lto-streamer-in.c (get_resolution): Deal with references
25502         to undefined functions.
25503
25504 2010-02-05  Richard Guenther  <rguenther@suse.de>
25505
25506         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
25507         (fold_const_aggregate_ref): Likewise.
25508         (ccp_fold_stmt): Substitute loads.
25509         (maybe_fold_reference): Verify types before substituting.
25510         Unshare properly.
25511         (fold_gimple_assign): Unshare properly.
25512         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
25513
25514 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
25515
25516         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
25517         for rs6000_gen_cell_microcode.
25518
25519 2010-02-04  Richard Guenther  <rguenther@suse.de>
25520
25521         PR rtl-optimization/42952
25522         * dse.c (const_or_frame_p): Remove MEM handling.
25523
25524 2010-02-04  Nick Clifton  <nickc@redhat.com>
25525
25526         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25527         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
25528         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
25529         (mn10300_asm_output_mi_thunk): New function.
25530         (mn10300_can_output_mu_thunk): New function.
25531         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
25532         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
25533         (FUNCTION_ARG): Delete incorrect comment.
25534
25535 2010-02-03  Jason Merrill  <jason@redhat.com>
25536
25537         PR c++/40138
25538         * fold-const.c (operand_equal_p): Handle erroneous types.
25539
25540 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25541
25542         * config/h8300/h8300.md (can_delay): Fix attibute condition.
25543
25544 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
25545
25546         PR rtl-optimization/42941
25547         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
25548         of xmalloc.
25549
25550 2010-02-03  Jason Merrill  <jason@redhat.com>
25551
25552         PR c++/35652
25553         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
25554
25555 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
25556
25557         PR debug/42896
25558         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
25559         (cselib_reset_table): Renamed from...
25560         (cselib_reset_table_with_next_value): ... this.
25561         (cselib_get_next_uid): Renamed from...
25562         (cselib_get_next_unknown_value): ... this.
25563         * cselib.c (next_uid): Renamed from...
25564         (next_unknown_value): ... this.
25565         (cselib_clear_table): Adjust.
25566         (cselib_reset_table): Adjust.  Renamed from...
25567         (cselib_reset_table_with_next_value): ... this.
25568         (cselib_get_next_uid): Adjust.  Renamed from...
25569         (cselib_get_next_unknown_value): ... this.
25570         (get_value_hash): Use hash.
25571         (cselib_hash_rtx): Likewise.
25572         (new_cselib_val): Adjust.  Set and dump uid.
25573         (cselib_lookup_mem): Pass next_uid as hash.
25574         (cselib_subst_to_values): Likewise.
25575         (cselib_log_lookup): Dump uid.
25576         (cselib_lookup): Pass next_uid as hash.  Adjust.
25577         (cselib_process_insn): Adjust.
25578         (cselib_init): Initialize next_uid.
25579         (cselib_finish): Adjust.
25580         (dump_cselib_table): Likewise.
25581         * dse.c (canon_address): Dump value uid.
25582         * print-rtl.c (print_rtx): Print value uid.
25583         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
25584         (dvuid): New type.
25585         (dv_uid): New function, sort of renamed from...
25586         (dv_htab_hash): ... this, reimplemented in terms of it and...
25587         (dv_uid2hash): ... this.  New.
25588         (variable_htab_eq): Drop excess assertions.
25589         (tie_break_pointers): Removed.
25590         (canon_value_cmp): Compare uids.
25591         (variable_post_merge_New_vals): Print uids.
25592         (vt_add_function_parameters): Adjust.
25593         (vt_initialize): Reset table.  Adjust.
25594
25595 2010-02-03  Richard Guenther  <rguenther@suse.de>
25596
25597         PR tree-optimization/42944
25598         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
25599         (call_may_clobber_ref_p_1): Likewise.  Properly handle
25600         malloc and calloc clobbering errno.
25601
25602 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
25603
25604         * doc/invoke.texi: Fix name of sched1 dump.
25605
25606         * opts.c (decode_options): Set flag_tree_switch_conversion
25607         only conditionally on optimize >= 2.
25608
25609         * gcse.c: Assorted comment fixes in pass description.
25610
25611 2010-02-03  Anthony Green  <green@moxielogic.com>
25612
25613         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
25614         nop padding in order to maintain alignment of storage location of
25615         target function address.
25616         (moxie_trampoline_init): Store target function address at newly
25617         aligned location.
25618         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
25619         to 32.
25620         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
25621
25622 2010-02-03  Richard Guenther  <rguenther@suse.de>
25623
25624         PR middle-end/42927
25625         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
25626
25627 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25628
25629         * config.gcc: Reenable check for obsolete targets.
25630         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
25631         mips-sgi-irix6.[0-4]*.
25632
25633 2010-02-02  Nick Clifton  <nickc@redhat.com>
25634
25635         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
25636         constant size of 4 as being the same as 0.
25637         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
25638         can take values in the range 0..4.
25639
25640 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
25641
25642         PR java/41991
25643         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
25644         as _darwin10_Unwind_FindEnclosingFunction().
25645         * libgcc-libsystem.ver: New.
25646
25647 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
25648
25649         PR target/41399
25650         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
25651         implicitly set registers.
25652
25653 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
25654
25655         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
25656         (arm_override_options): Allow automatic selection of the thread
25657         pointer register if thumb2.
25658         (legitimize_pic_address): Improve code sequences for Thumb2.
25659         (arm_call_tls_get_addr): Likewise.
25660         (legitimize_tls_address): Likewise.
25661         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
25662         (pic_load_addr_32bit): ... this.  New named pattern.
25663         * thumb2.md (pic_load_addr_thumb2): Delete.
25664         (pic_load_dot_plus_four): Delete.
25665         (tls_load_dot_plus_four): New named pattern.
25666
25667 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25668
25669         PR libgomp/29986
25670         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
25671         Document fix for TLS bug.
25672
25673 2010-01-31  Richard Guenther  <rguenther@suse.de>
25674
25675         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
25676         conservatively correct.
25677
25678 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25679
25680         PR target/42850
25681         Revert:
25682         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25683
25684         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25685
25686 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25687
25688         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
25689
25690 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
25691
25692         * config.gcc: Adjust order of makefile fragments for mingw targets.
25693
25694 2010-01-31  Richard Guenther  <rguenther@suse.de>
25695
25696         PR middle-end/42898
25697         * gimplify.c (gimplify_init_constructor): For volatile LHS
25698         initialize a temporary.
25699
25700 2010-01-31  Matthias Klose  <doko@ubuntu.com>
25701
25702         * configure.ac: Fix __stack_chk_fail check for cross builds configured
25703         --with-headers
25704         * configure: Regenerate.
25705
25706 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
25707
25708         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25709         the same alias set and their sizes different constantness.
25710         (aliasing_component_refs_p): Revert 2009-10-24 change.
25711
25712 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25713
25714         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
25715         unused.
25716
25717 2010-01-29  Richard Guenther  <rguenther@suse.de>
25718
25719         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
25720         Assert we successfully updated the call.
25721
25722 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
25723
25724         PR rtl-optimization/42889
25725         * df.h (df_set_bb_dirty_nonlr): New prototype.
25726         * df-core.c (df_set_bb_dirty_nonlr): New function.
25727         * df-scan.c (df_insn_rescan): Call it instead of
25728         df_set_bb_dirty for DEBUG_INSNs.
25729
25730 2010-01-29  Richard Guenther  <rguenther@suse.de>
25731
25732         PR middle-end/37448
25733         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
25734         quadratic behavior in most cases.
25735
25736 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
25737
25738         PR target/42891
25739         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
25740         in the call to gen_x86_movsicc_0_m1.
25741
25742 2010-01-28  Richard Guenther  <rguenther@suse.de>
25743
25744         PR tree-optimization/42871
25745         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
25746
25747 2010-01-28  Richard Guenther  <rguenther@suse.de>
25748
25749         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
25750         into call arguments.
25751
25752 2010-01-28  Richard Guenther  <rguenther@suse.de>
25753
25754         PR middle-end/42883
25755         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
25756         the forwarder if the destination is an EH landing pad.
25757
25758 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
25759
25760         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
25761         block list passed to gimple_duplicate_sese_tail.
25762         (parallelize_loops): Avoid parallelization when the function
25763         has_nonlocal_label.
25764         Avoid parallelization when the preheader is IRREDUCIBLE.
25765         Try to optimize when estimated_loop_iterations_int is unresolved.
25766         Add the loop's location to the dump file.
25767         * tree-cfg.c (add_phi_args_after_redirect): Remove.
25768         (gimple_duplicate_sese_tail): Remove the check for the latch.
25769         Redirect nexits to the exit block.
25770         Remove handling of the incoming edges to the latch.
25771         Redirect the backedge from the copied latch to the exit bb.
25772
25773 2010-01-28  Michael Matz  <matz@suse.de>
25774
25775         PR target/42881
25776         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
25777         Wrap force_reg into a sequence, emit it before user.
25778
25779 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
25780
25781         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
25782         (arm_rev): New.
25783         (arm_legacy_rev): Likewise.
25784         (thumb_legacy_rev): Likewise.
25785
25786 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25787
25788         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
25789         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
25790         on MEM's address failed, try avoid_constant_pool_reference and
25791         recurse if it returned something different.
25792         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
25793         address, try avoid_constant_pool_reference and recurse if it
25794         returned something different.
25795         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
25796         address and avoid_constant_pool_reference returned something
25797         different, don't set have_address.
25798
25799 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
25800
25801         PR debug/42861
25802         * var-tracking.c (val_store): Add modified argument, obey it.
25803         Adjust callers.
25804         (count_uses): Move down logging of main.
25805         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
25806         don't need resolution.
25807         (emit_notes_in_bb): Likewise.
25808
25809 2010-01-27  Richard Guenther  <rguenther@suse.de>
25810
25811         PR middle-end/42878
25812         * tree-inline.c (remap_decl): Delay remapping of SSA name
25813         default definitions until we need them.
25814
25815 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25816
25817         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25818         (rs6000_delegitimize_address): New function.
25819
25820         * config/s390/s390.c (s390_delegitimize_address): Call
25821         delegitimize_mem_from_attrs.
25822
25823         PR middle-end/42874
25824         * tree-inline.c (cannot_copy_type_1): Removed.
25825         (copy_forbidden): Don't forbid copying of functions containing
25826         records/unions with variable length fields.
25827
25828 2010-01-27  Christian Bruel  <christian.bruel@st.com>
25829
25830         Revert:
25831         PR target/42841
25832         * config/sh/sh.c (find_barrier): Increase length for non delayed
25833         conditional branches.
25834
25835 2010-01-27  Matthias Klose  <doko@ubuntu.com>
25836
25837         * configure.ac (gnu-unique-object): Fix ldd version check.
25838         * configure: Regenerate.
25839
25840 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25841
25842         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
25843         HAVE_GNU_AS value.
25844         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
25845         Test for HAVE_GNU_AS value.
25846
25847 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25848
25849         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
25850         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
25851         INT64_TYPE): Define.
25852         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
25853         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
25854         INT_LEAST64_TYPE): Define.
25855         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
25856         UINT_LEAST64_TYPE): Define.
25857         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
25858         INT_FAST64_TYPE): Define.
25859         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
25860         UINT_FAST64_TYPE): Define.
25861         (INTMAX_TYPE, UINTMAX_TYPE): Define.
25862         (INTPTR_TYPE, UINTPTR_TYPE): Define.
25863         (SIG_ATOMIC_TYPE): Define.
25864
25865 2010-01-26  Richard Guenther  <rguenther@suse.de>
25866
25867         * df-scan.c (df_scan_set_bb_info): Remove assert.
25868         (df_insn_rescan_debug_internal): Merge asserts.
25869         (df_install_ref): Likewise.
25870         (df_mark_reg): Use bitmap_set_range.
25871         (df_hard_reg_used_p): Remove assert.
25872         (df_hard_reg_used_count): Likewise.
25873
25874 2010-01-26  Richard Guenther  <rguenther@suse.de>
25875
25876         PR rtl-optimization/42685
25877         * web.c (web_main): Ignore DEBUG_INSNs.
25878
25879 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
25880
25881         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
25882
25883         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
25884         Fix types of fndecl and arglist parameters.
25885
25886 2010-01-26  Richard Guenther  <rguenther@suse.de>
25887
25888         PR middle-end/42806
25889         * tree-eh.c (unsplit_eh): Skip debug insns.
25890
25891 2010-01-26  Richard Guenther  <rguenther@suse.de>
25892
25893         PR tree-optimization/42250
25894         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
25895
25896 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
25897
25898         PR fortran/42866
25899         * omp-low.c (expand_omp_sections): Only use single_pred if
25900         l2_bb is single_pred_p.
25901
25902 2010-01-25  Christian Bruel  <christian.bruel@st.com>
25903
25904         PR target/42841
25905         * config/sh/sh.c (find_barrier): Increase length for non delayed
25906         conditional branches.
25907         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
25908
25909 2010-01-24  David S. Miller  <davem@davemloft.net>
25910
25911         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
25912         define if not using GAS.
25913         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25914         Likewise.  Delete SECTION_MERGE code, which is only applicable
25915         when using GAS.
25916
25917 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
25918
25919         PR c++/42748
25920         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
25921         mangling of va_list in system headers.
25922
25923 2010-01-23  Toon Moene  <toon@moene.org>
25924
25925         * tree-predcom.c (combine_chains): Return NULL, not false.
25926
25927 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
25928
25929         * tree-loop-distribution.c (distribute_loop): Fix declaration and
25930         initialization of variable res to agree with return type.
25931
25932 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
25933
25934         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
25935         * tree-sra.c: Add include of expr.h.
25936
25937 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
25938
25939         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
25940         insert the debug stmt on the single non-EH edge from the stmt.
25941
25942 2010-01-22  Richard Henderson  <rth@redhat.com>
25943
25944         PR tree-opt/42833
25945         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
25946         the RHS until after generate_subtree_copies has insertted its
25947         code before the current statement.
25948
25949 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
25950
25951         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
25952
25953         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
25954
25955 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25956
25957         PR tree-optimization/42585
25958         * tree-sra.c (struct access): New field grp_total_scalarization.
25959         (dump_access): Dump the new field.
25960         (should_scalarize_away_bitmap): New variable.
25961         (cannot_scalarize_away_bitmap): Likewise.
25962         (sra_initialize): Allocate new bitmaps.
25963         (sra_deinitialize): Free new bitmaps.
25964         (create_access_1): New function.
25965         (create_access): Parts moved to create_access_1.
25966         (type_consists_of_records_p): New function.
25967         (completely_scalarize_record): Likewise.
25968         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
25969         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
25970         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
25971         access.
25972         (analyze_all_variable_accesses): Completely scalarize small eligible
25973         records.
25974
25975 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25976
25977         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
25978
25979 2010-01-21  Andrew Haley  <aph@redhat.com>
25980
25981         * gcc.c (process_command): Move lang_specific_driver before
25982         setting cc_libexec_prefix.
25983
25984 2010-01-21  Richard Guenther  <rguenther@suse.de>
25985
25986         PR middle-end/19988
25987         * fold-const.c (negate_expr_p): Pretend only negative
25988         real constants are easily negatable.
25989
25990 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
25991             Jason Merrill  <jason@redhat.com>
25992
25993         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
25994         (TYPE_TRANSPARENT_AGGR): this, for union and record.
25995         * calls.c (initialize argument_information): Handle it.
25996         * c-common.c (handle_transparent_union_attribute): Use new name.
25997         * c-decl.c (finish_struct): Ditto.
25998         * c-typeck.c (type_lists_compatible_p): Ditto.
25999         (convert_for_assignment): Use new name and also handle record.
26000         * function.c (aggregate_value_p): Handle it.
26001         (pass_by_reference): Ditto.
26002         (assign_parm_data_types): Ditto.
26003         * print-tree.c (print_node): Ditto.
26004         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
26005         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
26006         * tree.c (first_field): New fn.
26007
26008 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
26009
26010         PR target/42818
26011         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
26012         even when linking statically, for now.
26013
26014 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26015
26016         PR debug/42715
26017         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
26018         without a cselib val.
26019         (count_uses): Accept MO_VAL_SET with no val on stores.
26020         (add_stores): Likewise.
26021
26022 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26023
26024         * var-tracking.c (check_value_val): Add a compile time assertion.
26025         (dv_is_decl_p): Simplify.
26026         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
26027         gcc_assert if ENABLE_CHECKING.
26028
26029 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
26030
26031         PR debug/42782
26032         * var-tracking.c: Include tree-flow.h.
26033         (mem_dies_at_call): New.
26034         (dataflow_set_preserve_mem_locs): Use it.
26035         (dataflow_set_remove_mem_locs): Likewise.
26036         (dump_var): Renamed from dump_variable.  Adjust all callers.
26037         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
26038         * Makefile.in (var-tracking.o): Adjust deps.
26039
26040 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
26041
26042         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
26043
26044 2010-01-20  Richard Guenther  <rguenther@suse.de>
26045
26046         PR tree-optimization/42717
26047         * tree-ssa-dce.c (get_live_post_dom): Remove.
26048         (forward_edge_to_pdom): Take an arbitrary edge to copy
26049         degenerate PHI args from.
26050         (remove_dead_stmt): Use the first post-dominator even if it
26051         does not contain live statements as redirection destination.
26052
26053 2010-01-20  Richard Guenther  <rguenther@suse.de>
26054
26055         * tree-inline.c (estimate_num_insns): Handle EH builtins.
26056
26057 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26058
26059         * sel-sched.c (create_speculation_check): Remove set but not used
26060         variable twin.
26061         (try_transformation_cache): Remove set but not used variable ds.
26062         (calculate_privileged_insns): Remove set but not used variables
26063         cur_insn and min_spec_insn.
26064         (find_best_expr): Remove set but not used variable avail_n.
26065         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
26066         variable e.
26067         * cgraphunit.c (assemble_thunk): Remove set but not used variable
26068         false_label.
26069         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
26070         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
26071         new_scop_exit_edge.
26072
26073 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
26074
26075         PR bootstrap/42786
26076         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
26077         cpu types.  Add support for *-sse3 cpu types.
26078         (x86_64-*-*): Ditto.
26079
26080 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26081
26082         PR middle-end/42803
26083         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
26084         argument, call initializer_constant_valid_p_1 instead of
26085         initializer_constant_valid_p, pass CACHE to it, return NULL
26086         immediately if first call returns NULL.
26087         (initializer_constant_valid_p_1): New function.
26088         (initializer_constant_valid_p): Use it.
26089
26090 2010-01-20  Thomas Quinot  <quinot@adacore.com>
26091
26092         * tree.def (PLACEHOLDER_EXPR): Fix comment.
26093
26094 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
26095
26096         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
26097         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
26098         (loc_list_from_tree): Don't handle unsigned division.  Handle
26099         signed modulo using DW_OP_{over,over,div,mul,minus}.
26100         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
26101         modulo instead of signed.
26102
26103 2010-01-20  DJ Delorie  <dj@redhat.com>
26104
26105         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
26106         (Fpa): Pass it
26107         (h8300_emit_stack_adjustment): Propogate it.
26108         (push): Pass it.
26109         (h8300_expand_prologue): Likewise.
26110         (h8300_expand_epilogue): Likewise.
26111
26112 2010-01-19  Michael Matz  <matz@suse.de>
26113
26114         PR tree-optimization/41783
26115         * tree-data-ref.c (toplevel): Include flags.h.
26116         (dump_data_dependence_relation):  Also dump the inputs if the
26117         result will be unknown.
26118         (split_constant_offset_1): Look through some conversions.
26119         * tree-predcom.c (determine_roots_comp): Restart a new chain if
26120         the offset from last element is too large.
26121         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
26122         (reassociate_to_the_same_stmt): Handle vector registers.
26123         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
26124         (e.g. conversions).
26125         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
26126         wide_prolog_niters argument, emit widening instructions.
26127         (vect_do_peeling_for_alignment): Adjust caller, use widened
26128         variant of the iteration cound.
26129         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
26130
26131 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26132
26133         PR target/38697
26134         * config/arm/neon-testgen.m (emit_automatics): New parameter
26135         features. Adjust for Fixed_return_reg feature.
26136         (test_intrinsic): Call emit_automatics with new feature.
26137         * config/arm/neon.ml: Update copyright years.
26138         (features): New Fixed_return_reg feature.
26139         (ops): Update feature for Vget_low.
26140
26141 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
26142
26143         PR tree-optimization/42719
26144         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
26145         stmt uses.
26146
26147         PR debug/42728
26148         * fwprop.c (all_uses_available_at): Return false if def_set dest
26149         is a REG that is used in def_insn.
26150
26151 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
26152
26153         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
26154
26155         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
26156         Add argument names.
26157
26158         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
26159
26160         * target.h (struct gcc_target) <secondary_reload>: Change type
26161         of last argument to secondary_reload_info *.
26162
26163 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
26164
26165         PR target/42774
26166         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
26167         memory references with unaligned offsets.  Remove CQImode handling.
26168         (unaligned_memory_operand): Return 1 for memory references with
26169         unaligned offsets.  Remove CQImode handling.
26170
26171 2010-01-18  Richard Guenther  <rguenther@suse.de>
26172
26173         PR middle-end/39954
26174         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
26175         builtin calls.
26176
26177 2010-01-18  Richard Guenther  <rguenther@suse.de>
26178
26179         PR tree-optimization/42781
26180         * tree-ssa-structalias.c (find_what_var_points_to): Skip
26181         restrict processing only if the original variable was artificial.
26182
26183 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
26184
26185         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
26186         find number of popped argument bytes.
26187
26188         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
26189         Fix the text that describes the return value for invalid insns.
26190
26191         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
26192
26193         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
26194         Clarify what 'cost of the -dependence' is.  Fix quoting.
26195
26196         * toplev.c (default_get_pch_validity): Rename argument to "sz".
26197         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
26198
26199 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
26200
26201         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
26202         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
26203
26204 2010-01-17  Richard Guenther  <rguenther@suse.de>
26205
26206         PR middle-end/42248
26207         * function.c (split_complex_args): Take a VEC to modify.
26208         (assign_parms_augmented_arg_list): Build a VEC instead of
26209         a chain of PARM_DECLs.
26210         (assign_parms_unsplit_complex): Take a VEC of arguments.
26211         Do not fixup unmodified parms.
26212         (assign_parms): Deal with the VEC.
26213         (gimplify_parameters): Likewise.
26214
26215 2010-01-17  Richard Guenther  <rguenther@suse.de>
26216
26217         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
26218         node existence check.
26219         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
26220         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
26221         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
26222         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
26223         (gimple_execute_on_growing_pred): Likewise.
26224
26225 2010-01-17  Richard Guenther  <rguenther@suse.de>
26226
26227         PR tree-optimization/42773
26228         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
26229         (compute_antic_aux): Likewise.
26230         (compute_partial_antic_aux): Likewise.
26231
26232 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
26233
26234         PR debug/42767
26235         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
26236         and US_TRUNCATE.
26237
26238 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
26239
26240         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
26241         appearance.
26242
26243         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
26244         Fix markup for strict argument.
26245
26246         (TARGET_SCHED_REORDER2): Fix argument types.
26247
26248         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
26249         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
26250
26251         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
26252         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
26253
26254         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
26255         Add argument name.
26256
26257         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
26258         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
26259         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
26260         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
26261         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
26262
26263         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
26264
26265         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
26266
26267         (TARGET_ASM_RELOC_RW_MASK): Add return type.
26268         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
26269
26270         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
26271
26272         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
26273         Use prototype.
26274
26275         (TARGET_ASM_NAMED_SECTION): Fix argument list.
26276
26277         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
26278         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
26279
26280         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
26281
26282         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
26283
26284         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
26285         referring to it.  Fix language.
26286
26287         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
26288
26289         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
26290
26291         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
26292
26293         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
26294
26295         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
26296         '@var{stream}.  Remove stray 'and'.
26297
26298         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
26299
26300         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
26301
26302         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
26303
26304         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
26305         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
26306
26307         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
26308         Fix description of return value.
26309         Rename argument "sz" to "len."
26310
26311         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
26312         Clarify meaning of 'true' return value.
26313
26314         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
26315
26316         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
26317         rep_mode versus mode_rep.
26318
26319         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
26320
26321         (TARGET_BUILTIN_DECL): Fix name.
26322
26323         (TARGET_COMMUTATIVE_P): Fix type of first argument.
26324
26325         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
26326
26327         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
26328
26329         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
26330
26331         (TARGET_RELAXED_ORDERING): Use @deftypevr.
26332
26333         (TARGET_GET_DRAP_RTX): Note that this is a hook.
26334         Clarify language.
26335
26336         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
26337         Rename argument tm_fn to md_fn.
26338
26339         (TARGET_OPTION_PRINT): Fix argument list.
26340
26341 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
26342
26343         PR target/42664
26344         * config/i386/i386.c (ix86_fixup_binary_operands):
26345         Revert FMA4 fixup of operands.
26346
26347 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26348
26349         PR gcc/42525
26350         * Makefile.in (write_entries_to_file, install-plugin):
26351         Use \012 instead of \n with tr.
26352
26353 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
26354
26355         * configure.ac (HAVE_AS_REF): New C macro.
26356         * configure: Regenerate.
26357         * config.in: Likewise.
26358         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
26359         if HAVE_AS_REF.
26360         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
26361         if HAVE_AS_REF.
26362
26363 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
26364
26365         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
26366
26367         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
26368
26369         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
26370
26371         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
26372
26373         (TARGET_IN_SMALL_DATA_P): Fix argument type.
26374
26375         (TARGET_BINDS_LOCAL_P): Fix argument type.
26376
26377         (TARGET_ASM_FILE_END): Use prototype.
26378
26379         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
26380
26381         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
26382
26383         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
26384
26385         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
26386
26387         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
26388         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
26389
26390         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
26391         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
26392
26393         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
26394         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
26395         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
26396         (TARGET_ADDR_SPACE_CONVERT): Likewise.
26397
26398         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
26399
26400         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
26401
26402         (TARGET_INIT_BUILTINS): Use prototype.
26403
26404         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
26405         Put 'const char *' in braces.  Fix parameter types.
26406         (TARGET_INVALID_CONVERSION): Fix parameter types.
26407         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
26408         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
26409
26410         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
26411         Fix argument type.
26412
26413         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
26414
26415         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
26416
26417 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
26418
26419         * doc/tm.texi (TARGET_HELP): Fix return type.
26420
26421         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
26422         in braces.  Fix argument types.
26423
26424         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
26425
26426         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
26427
26428         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
26429
26430         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
26431         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
26432
26433         (TARGET_MANGLE_TYPE): Fix argument types.
26434
26435         (TARGET_IRA_COVER_CLASSES): Use prototype.
26436
26437         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
26438
26439         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
26440
26441         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
26442
26443         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
26444
26445         (TARGET_CALLEE_COPIES): Fix argument types.
26446
26447         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
26448
26449         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
26450
26451         (TARGET_FUNCTION_VALUE): Fix argument types.
26452
26453         (TARGET_RETURN_IN_MSB): Fix argument type.
26454
26455         (TARGET_RETURN_IN_MEMORY): Fix argument types.
26456
26457         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
26458
26459         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
26460
26461         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
26462         agree with return type.
26463
26464         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
26465
26466 2010-01-15  Jing Yu  <jingyu@google.com>
26467
26468         PR rtl-optimization/42691
26469         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
26470         a pseudo to a constant and are merged, and adjust comments.
26471
26472 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26473
26474         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
26475
26476 2010-01-15  Richard Guenther  <rguenther@suse.de>
26477
26478         PR middle-end/42739
26479         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
26480         labels of computed or non-local gotos to the destination.
26481         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
26482         landing pad label is the first label.
26483
26484 2010-01-15  Richard Guenther  <rguenther@suse.de>
26485
26486         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
26487
26488 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26489
26490         PR target/42747
26491         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
26492         to allow generation of the xssqrtdp instruction on power7.
26493         (sqrtdf2_fpr): Ditto.
26494
26495 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26496
26497         PR middle-end/42674
26498         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
26499         functions with noreturn attribute.
26500
26501         PR c++/42608
26502         * varasm.c (declare_weak): Add weak attribute to decl if it
26503         doesn't have one already.
26504         (assemble_external): Only add decls to weak_decls if they also
26505         have weak attribute.
26506
26507 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
26508
26509         * var-tracking.c (var_reg_delete): Don't delete the association
26510         between REGs and values or one-part variables if the register
26511         isn't clobbered.
26512
26513 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26514
26515         PR debug/42657
26516         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
26517         because its first operand is a non-localized variable.
26518
26519 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26520
26521         PR tree-optimization/42706
26522         * tree-sra.c (encountered_recursive_call): New variable.
26523         (encountered_unchangable_recursive_call): Likewise.
26524         (sra_initialize): Initialize both new variables.
26525         (callsite_has_enough_arguments_p): New function.
26526         (scan_function): Call decl and flags check only for IPA-SRA, check
26527         whether there is a recursive call and whether it has enough arguments.
26528         (all_callers_have_enough_arguments_p): New function.
26529         (convert_callers): Look for recursive calls only when
26530         encountered_recursive_call is set.
26531         (ipa_early_sra): Bail out either if
26532         !all_callers_have_enough_arguments_p or
26533         encountered_unchangable_recursive_call.
26534
26535 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26536
26537         * sel-sched.c: Add 2010 to copyright years.
26538         * sel-sched-ir.c: Likewise.
26539         * sel-sched-ir.h: Likewise.
26540
26541 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26542
26543         PR tree-optimization/42714
26544         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
26545         constructors specially.
26546
26547 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26548
26549         * config/i386/drivers-i386.c (detect_caches_intel):
26550         Add l2sizekb parameter and fill in.
26551         (host_detect_local_cpu): Add l2sizekb, fill in.
26552         Add Atom small cache heuristic.
26553
26554 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26555
26556         * config/i386/drivers-i386.c (detect_caches_cpuid4):
26557         Add level3 parameter and fill in.
26558         (detect_caches_intel): Handle level3 cache.
26559
26560 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26561
26562         * config/i386/drivers-i386.c (host_detect_local_cpu):
26563         Fix core duo detection.
26564
26565 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26566
26567         * config/i386/drivers-i386.c (host_detect_local_cpu):
26568         Fix Atom detection.
26569
26570 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26571
26572         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
26573         (rs6000_variable_issue_1): this.  Use...
26574         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
26575
26576 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26577
26578         * sel-sched-ir.c (sel_restore_other_notes): Rename to
26579         sel_restore_notes.  Update all callers.  Call reemit_notes
26580         for all insns.
26581
26582 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26583
26584         PR rtl-optimization/42246
26585         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
26586         loops.
26587
26588 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26589
26590         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
26591         all successors is the same as number of successors in current region.
26592
26593 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26594
26595         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
26596         to rename is not separable.  Otherwise check that its LHS is not NULL.
26597
26598 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26599
26600         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
26601
26602 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26603
26604         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
26605         available registers when failed to discover LHS register class.
26606         Fix indentation.  Update comment.
26607
26608 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26609             Alexander Monakov  <amonakov@ispras.ru>
26610
26611         PR rtl-optimization/42389
26612         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
26613         to can_issue_more.
26614         (advance_state_on_fence): Likewise.
26615         (sel_target_adjust_priority): Print debug output only when
26616         sched_verbose >= 4, not 2.
26617         (get_expr_cost): Do not issue all unique insns on the next cycle.
26618         (fill_insns): Initialize can_issue_more from the value saved
26619         with the fence.
26620         * sel-sched-ir.c (flist_add): New parameter issue_more.
26621         Init FENCE_ISSUE_MORE with it.
26622         (merge_fences): Likewise.
26623         (init_fences): Update call to flist_add.
26624         (add_to_fences, add_clean_fence_to_fences)
26625         (add_dirty_fence_to_fences): Likewise.
26626         (move_fence_to_fences): Update call to merge_fences.
26627         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
26628         sched groups.
26629         * sel-sched-ir.h (struct _fence): New field issue_more.
26630         (FENCE_ISSUE_MORE): New accessor macro.
26631
26632 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26633
26634         PR rtl-optimization/42388
26635         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
26636         that have no predecessors nor successors.  Do not call move_bb_info
26637         for empty blocks outside of current region.
26638
26639 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26640
26641         PR rtl-optimization/42294
26642         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
26643         * sel-sched.c (move_exprs_to_boundary): Transitively add all
26644         originators' originators.
26645
26646 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26647
26648         PR rtl-optimization/39453
26649         PR rtl-optimization/42246
26650         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
26651         for pipelining_p.
26652         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
26653
26654 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26655             Alexander Monakov  <amonakov@ispras.ru>
26656
26657         PR middle-end/42245
26658         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
26659         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
26660         argument.  Update all callers.
26661         (tidy_control_flow): ... and here.  Recompute topological order
26662         of basic blocks in region if necessary.
26663         (sel_redirect_edge_and_branch): Change return type.  Return true
26664         if topological order might have been invalidated.
26665         (purge_empty_blocks): Export and move from...
26666         * sel-sched.c (purge_empty_blocks): ... here.
26667         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
26668         (maybe_tidy_empty_bb): Delete prototype.
26669         (purge_empty_blocks): Declare.
26670
26671 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26672
26673         PR rtl-optimization/42249
26674         * sel-sched.c (try_replace_dest_reg): When chosen register
26675         and original register is the same, do not bail out early, but
26676         still check all original insns for validity of replacing destination
26677         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
26678         in this case.
26679
26680 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26681
26682         PR c/42721
26683         Port from no-undefined-overflow branch:
26684         2009-03-09  Richard Guenther  <rguenther@suse.de>
26685
26686         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
26687
26688 2010-01-14  Richard Guenther  <rguenther@suse.de>
26689
26690         PR lto/42665
26691         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
26692
26693 2010-01-14  Ira Rosen  <irar@il.ibm.com>
26694
26695         PR tree-optimization/42709
26696         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
26697         as scalar type in creation of constant vector operand.
26698
26699 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26700
26701         PR testsuite/42414
26702         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
26703         (check-parallel-%): Match `testsuite' directory component only
26704         at the end.
26705
26706 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
26707
26708         PR translation/39521
26709         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
26710         strings with _().
26711
26712 2010-01-13  Richard Guenther  <rguenther@suse.de>
26713
26714         PR tree-optimization/42730
26715         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
26716         offset zero.
26717
26718 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
26719
26720         PR target/pr42542
26721         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
26722         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
26723         them signed.
26724
26725 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
26726
26727         * config/bfin/libgcc-bfin.ver: Regenerate based on current
26728         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
26729         ___umulsi3_highpart.
26730
26731         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
26732         rather than schedule_insns if the pass is enabled.
26733
26734 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26735
26736         PR tree-optimization/42704
26737         * tree-sra.c (sra_modify_assign): Do not delete assignments to
26738         SSA_NAMEs.
26739
26740 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26741
26742         PR tree-optimization/42703
26743         * tree-sra.c (analyze_access_subtree): Check that we can build a
26744         reference to the original data within the aggregate.
26745
26746 2010-01-13  Richard Guenther  <rguenther@suse.de>
26747
26748         PR tree-optimization/42705
26749         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
26750
26751 2010-01-13  Richard Guenther  <rguenther@suse.de>
26752
26753         PR middle-end/42716
26754         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
26755
26756 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26757
26758         PR debug/41371
26759         * var-tracking.c (values_to_unmark): New variable.
26760         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26761         values_to_unmark vector.  Moved body to...
26762         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26763         instead queue it into values_to_unmark vector.
26764         (vt_find_locations): Free values_to_unmark vector.
26765
26766 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
26767
26768         * config/s390/s390.c (override_options): Set
26769         default of max-pending-list-length to 256
26770
26771 2010-01-13  Richard Guenther  <rguenther@suse.de>
26772
26773         PR lto/42678
26774         * tree-pass.h (PROP_gimple_lcx): New.
26775         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
26776         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
26777         before the final cleanup_eh.
26778         (dump_properties): Dump PROP_gimple_lcx.
26779         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
26780         (tree_lower_complex_O0): Remove.
26781         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
26782         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
26783         tree_lower_complex, schedule TODO_update_ssa.
26784         * lto-streamer-out.c (output_function): Stream the functions
26785         properties.
26786         * lto-streamer-in.c (input_function): Likewise.
26787         (lto_read_body): Do not override them here.
26788
26789 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
26790
26791         PR c/42708
26792         * c-typeck.c (build_c_cast): Fold value cast to union type before
26793         wrapping it in a CONSTRUCTOR.
26794
26795 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26796
26797         PR rtl-optimization/42699
26798         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
26799         involved.
26800
26801 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26802
26803         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26804         SUBTARGET_WARN_UNUSED_SPEC): Move ...
26805         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26806         SUBTARGET_WARN_UNUSED_SPEC): ... here
26807         * config/mips/iris5.h (LIBGCC_SPEC): Define.
26808
26809 2010-01-12  Julian Brown  <julian@codesourcery.com>
26810
26811         * config/arm/neon-schedgen.ml (Utils): Don't try to
26812         open missing module.
26813         (find_with_result): New.
26814
26815 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26816
26817         PR debug/42662
26818         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
26819         sharing when canonicalizing ({lt,ge}u (plus a b) b).
26820
26821         PR tree-optimization/42645
26822         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
26823         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
26824         decl_map, set processing_debug_stmt to -1 and return name without
26825         any remapping.
26826
26827 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
26828
26829         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
26830         binutils version, and reword target configuration description.
26831
26832 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26833
26834         * config/avr/avr.h (LINKER_NAME): Remove.
26835
26836 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
26837
26838         PR target/42416
26839         * config/rs6000/rs6000.c (rs6000_override_options): On targets
26840         that support VSX, warn for -mno-altivec if vsx is not disabled,
26841         and disable vsx.
26842
26843 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
26844             Shujing Zhao  <pearly.zhao@oracle.com>
26845
26846         PR translation/42469
26847         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
26848         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
26849         character between option name and help text.
26850         * c.opt (imultilib): Likewise.
26851
26852 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
26853
26854         * lto-streamer-out.c (output_unreferenced_globals): Output static
26855         variables.
26856
26857 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
26858
26859         PR rtl-optimization/42621
26860         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
26861         optimizing for size.
26862         (duplicate_computed_gotos): Remove now-redundant check.
26863
26864 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
26865
26866         PR target/37454
26867         * configure.ac: Save and restore LDFLAGS and LIBS
26868         * configure: Regenerate.
26869
26870 2010-01-10  Richard Guenther  <rguenther@suse.de>
26871
26872         PR middle-end/42667
26873         * builtins.c (fold_builtin_strlen): Add type argument and
26874         convert the resulting length to it.
26875         (fold_builtin_1): Adjust.
26876
26877 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26878
26879         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
26880         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26881         1 insn.
26882         (num_insns_constant_wide): Adjust for that change.
26883
26884 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26885
26886         PR debug/42631
26887         * web.c (union_defs): Add used argument, to combine uses of
26888         uninitialized regs.
26889         (entry_register): Adjust type and tests of used argument.
26890         (web_main): Widen used for new use.  Pass it to union_defs.
26891         * df.h (union_defs): Adjust prototype.
26892
26893 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26894
26895         PR debug/42630
26896         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
26897         uses in new incoming argument.  Free body.
26898         (reset_debug_uses_in_loop): New.
26899         (analyze_insn_to_expand_var): Call the latter if the former found
26900         anything.  Fix whitespace.  Reject invalid dest overlaps before
26901         going through all insns in the loop.
26902
26903 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26904
26905         PR debug/42629
26906         * haifa-sched.c (dying_use_p): Debug insns don't count.
26907
26908 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26909
26910         PR middle-end/42363
26911         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
26912         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
26913         (verify_gimple_call): Reject LHS in noreturn calls.
26914
26915 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26916
26917         PR debug/42604
26918         PR debug/42395
26919         * tree-vect-loop-manip.c (adjust_info): New type.
26920         (adjust_vec): New pointer to vector.
26921         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
26922         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
26923         (slpeel_update_phis_for_duplicate_loop): Use them.
26924         (slpeel_update_phi_nodes_for_guard1): Likewise.
26925         (slpeel_update_phi_nodes_for_guard2): Likewise.
26926         (slpeel_tree_peel_loop_to_edge): Likewise.
26927         (vect_update_ivs_after_vectorizer): Likewise.
26928
26929 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26930
26931         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
26932         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
26933
26934 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26935
26936         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
26937         bogus uninitialized warning.
26938
26939 2010-01-09  Richard Guenther  <rguenther@suse.de>
26940
26941         PR middle-end/42512
26942         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
26943         the evolution is compatible with the initial condition.
26944
26945 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26946
26947         * gcc.c (process_command): Update copyright notice dates.
26948         * gcov.c (print_version): Likewise.
26949         * gcov-dump.c (print_version): Likewise.
26950         * mips-tfile.c (main): Likewise.
26951         * mips-tdump.c (main): Likewise.
26952
26953 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26954
26955         PR target/41885
26956         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
26957         (rotlhi3): Delete.
26958         (rotlhi3_8): Delete.
26959         (rotlsi3): Delete.
26960         (rotlsi3_8): Delete.
26961         (rotlsi3_16): Delete.
26962         (rotlsi3_24): Delete.
26963         (rotl<mode>3): New.
26964         (*rotw<mode>3): New.
26965         (*rotb<mode>3): New.
26966         * config/avr/avr.c (avr_rotate_bytes): New function.
26967         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
26968
26969 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
26970
26971         PR target/37454
26972         * configure.ac: Modify -rdynamic check.
26973         * configure: Regenerate.
26974
26975 2010-01-08  DJ Delorie  <dj@redhat.com>
26976
26977         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
26978         register popping order.
26979
26980 2010-01-08  Richard Guenther  <rguenther@suse.de>
26981
26982         PR lto/42528
26983         * c.opt (fsigned-char): Also let LTO handle this option.
26984         (funsigned-char): Likewise.
26985
26986 2010-01-07  Richard Guenther  <rguenther@suse.de>
26987
26988         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
26989         (gimple_op): Likewise.
26990         (gimple_op_ptr): Likewise.
26991         (gimple_assign_set_lhs): Remove gcc_assert.
26992         (gimple_assign_set_rhs1): Likewise.
26993         (gimple_assign_set_rhs2): Likewise.
26994         (gimple_call_set_lhs): Likewise.
26995         (gimple_call_set_fn): Likewise.
26996         (gimple_call_set_fndecl): Likewise.
26997         (gimple_call_fndecl): Likewise.
26998         (gimple_call_return_type): Likewise.
26999         (gimple_call_set_chain): Likewise.
27000         (gimple_call_num_args): Likewise.
27001         (gimple_call_set_arg): Likewise.
27002         (gimple_cond_set_code): Likewise.
27003         (gimple_cond_set_lhs): Likewise.
27004         (gimple_cond_set_rhs): Likewise.
27005         (gimple_cond_set_true_label): Likewise.
27006         (gimple_cond_set_false_label): Likewise.
27007         (gimple_label_set_label): Likewise.
27008         (gimple_goto_set_dest): Likewise.
27009         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
27010         (gimple_debug_bind_get_value): Likewise.
27011         (gimple_debug_bind_get_value_ptr): Likewise.
27012         (gimple_debug_bind_set_var): Likewise.
27013         (gimple_debug_bind_set_value): Likewise.
27014         (gimple_debug_bind_reset_value): Likewise.
27015         (gimple_debug_bind_has_value_p): Likewise.
27016         (gimple_return_retval_ptr): Remove gcc_assert.
27017         (gimple_return_retval): Likewise.
27018         (gimple_return_set_retval): Likewise.
27019         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
27020         (safe_referenced_var_iterator): Remove.
27021         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
27022         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
27023         (fill_referenced_var_vec): Remove.
27024         (first_readonly_imm_use): Remove redundant gcc_assert.
27025         (phi_arg_index_from_use): Combine gcc_asserts.
27026         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
27027         (first_imm_use_stmt): Remove redundant gcc_assert.
27028         * tree-cfg.c (verify_gimple_call): Verify function and chain
27029         operands.  Verify arguments.
27030         (verify_types_in_gimple_stmt): Verify condition code and labels.
27031
27032 2010-01-07  Richard Guenther  <rguenther@suse.de>
27033
27034         PR tree-optimization/42641
27035         * sese.c (rename_map_elt_info): Use the SSA name version, do
27036         not hash pointers.
27037
27038 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
27039
27040         PR tree-optimization/42625
27041         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
27042         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
27043
27044 2010-01-07  Duncan Sands  <baldrick@free.fr>
27045
27046         * Makefile.in (PLUGIN_HEADERS): Add version.h.
27047
27048 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
27049
27050         PR target/42511
27051         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
27052         note itself is not function_invariant_p.
27053
27054 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
27055
27056         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
27057         Do not add the DF_NOTE problem.
27058         * store-motion.c (execute_rtl_store_motion): Likewise.
27059
27060 2010-01-07  Martin Jambor  <mjambor@suse.cz>
27061
27062         PR tree-optimization/42157
27063         * tree-sra.c (compare_access_positions): Stabilize sort if both
27064         accesses have integer types, return zero immediately if they are the
27065         same.
27066
27067 2010-01-06  Richard Henderson  <rth@redhat.com>
27068
27069         PR middle-end/41883
27070         * haifa-sched.c (add_to_note_list): Merge into ...
27071         (concat_note_lists): ... here, and ...
27072         (unlink_other_notes, rm_other_notes): Merge into...
27073         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
27074         NOTE_INSN_EPILOGUE_BEG.
27075
27076 2010-01-06  Richard Guenther  <rguenther@suse.de>
27077
27078         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
27079         not inline regular functions into always-inline functions.
27080
27081 2010-01-06  Nick Clifton  <nickc@redhat.com>
27082
27083         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
27084         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
27085         used together.
27086         (OVERRIDE_OPTIONS): Delete.
27087         (OPTIMIZATION_OPTIONS): Define.
27088         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
27089         * config/rx/rx.c (rx_handle_option): Issue an error message if
27090         -mcpu=rx200 and -fpu are used together.
27091         (rx_set_optimization_options): New function.  Issue an error
27092         message if an optimization attribute attempts to reset the FPU/
27093         math optimization pairing.
27094         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
27095         * config/rx/rx.opt: Set the default to 32-bit doubles.
27096         * config/rx/t-rx: Add multilibs for -nofpu option.
27097         * doc/invoke.texi: Update documentation of RX options.
27098
27099 2010-01-06  Richard Guenther  <rguenther@suse.de>
27100
27101         * tree-ssa-pre.c (name_to_id): New global.
27102         (alloc_expression_id): Simplify SSA name handling.
27103         (lookup_expression_id): Likewise.
27104         (init_pre): Zero name_to_id.
27105         (fini_pre): Free it.
27106
27107 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
27108
27109         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
27110
27111 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
27112
27113         PR target/42542
27114         * config/i386/sse.md (smaxv2di3): New.
27115         (umaxv2di3): Likewise.
27116         (sminv2di3): Likewise.
27117         (uminv2di3): Likewise.
27118
27119 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
27120
27121         PR target/42564
27122         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
27123         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
27124         (legitimize_tls_address): Likewise.
27125         (sparc_tls_referenced_p): Likewise.
27126         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
27127         and adjust calls to legitimize_pic_address.
27128         (legitimate_constant_p) Use sparc_tls_referenced_p.
27129         (legitimate_pic_operand_p): Likewise.
27130         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
27131         (sparc_tls_symbol_ref_1): Delete.
27132         (sparc_tls_referenced_p): Make static, recognize specific patterns.
27133         (legitimize_tls_address): Make static, handle CONST patterns.
27134         (legitimize_pic_address): Make static, remove unused parameter and
27135         adjust recursive calls.
27136         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
27137         and adjust call to legitimize_pic_address.
27138         (sparc_output_mi_thunk): Likewise.
27139
27140 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
27141             H.J. Lu  <hongjiu.lu@intel.com>
27142
27143         PR target/42542
27144         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
27145         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
27146         operands to make them signed.
27147
27148         Revert:
27149         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27150
27151         PR target/42542
27152         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27153         GTU to GT for V4SI and V2DI.
27154
27155         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27156         (umin<mode>3): Removed.
27157         (uminv8hi3): New.
27158         (uminv4si3): Likewise.
27159
27160 2010-01-05  Martin Jambor  <mjambor@suse.cz>
27161
27162         PR tree-optimization/42462
27163         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
27164         current_function_decl to helper functions and macros.
27165
27166 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27167
27168         PR bootstrap/41771
27169         * flags.h: Don't include real.h.
27170         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
27171         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
27172         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
27173         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
27174         * dominance.c: Update copyright.
27175         * gimple.c (walk_gimple_op): Remove inline.
27176         * tree-ssa-reassoc.c: Include real.h.
27177         * Makefile.in (FLAGS_H): Remove $(REAL_H).
27178         (tree-ssa-reassoc.o): Depend on $(REAL_H).
27179
27180 2010-01-05  Nick Clifton  <nickc@redhat.com>
27181
27182         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
27183         register to push into the stack frame when the accumulator has to
27184         be saved during interrupts.
27185
27186 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
27187
27188         * doc/invoke.texi: Remove the documentation about option
27189         -Wunreachable-code.
27190         * common.opt (Wunreachable-code):  Preserved for backward
27191         compatibility.
27192         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
27193         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
27194         the backward compatibility flag section.
27195
27196 2010-01-05  Richard Guenther  <rguenther@suse.de>
27197
27198         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
27199
27200 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
27201
27202         PR other/42611
27203         * cfgexpand.c (expand_one_var): Diagnose too large variables.
27204
27205         PR tree-optimization/42508
27206         * tree-sra.c (convert_callers): Check for recursive call
27207         by comparing cgraph nodes instead of decls.
27208         (modify_function): Call ipa_modify_formal_parameters also
27209         on all same_body aliases.
27210
27211         * cgraphunit.c (cgraph_materialize_all_clones): Compare
27212         cgraph nodes when checking for same_body aliases.
27213
27214 2010-01-05  Richard Guenther  <rguenther@suse.de>
27215
27216         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
27217         allocation and lookup.
27218         (get_or_alloc_expr_for_constant): Likewise.
27219         (phi_translate): Sink allocation.
27220
27221 2010-01-04  Richard Guenther  <rguenther@suse.de>
27222
27223         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
27224         a new entry only if needed.
27225         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
27226         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
27227         hashtable lookup.
27228         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
27229         the result array.
27230         (phi_translate): Handle CONSTANTs early.
27231
27232 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27233
27234         PR tree-optimization/42398
27235         * tree-sra.c (struct access): Removed flag grp_different_types.
27236         (dump_access): Do not dump the removed flag.
27237         (sort_and_splice_var_accesses): Do not set the removed flag.
27238         (sra_modify_expr): Check for type compatibility directly.
27239
27240 2010-01-04  Martin Jambor  <mjambor@suse.cz>
27241
27242         PR tree-optimization/42366
27243         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
27244         edges with variable number of parameters.
27245         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
27246         flag instead of asserting it.
27247         (ipa_read_node_info): Read uses_analysis_done flag.
27248
27249 2010-01-04  Richard Guenther  <rguenther@suse.de>
27250
27251         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
27252         iterative_hash_* as intended.
27253         (vn_reference_compute_hash): Likewise.  Simplify hashing
27254         SSA names.
27255         (vn_reference_lookup_2): Likewise.
27256         (vn_nary_op_compute_hash): Likewise.
27257         (vn_phi_compute_hash): Likewise.
27258         (expressions_equal_p): Remove strange code.
27259         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
27260         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
27261         (bitmap_insert_into_set_1): Take value-id as parameter.
27262         (add_to_value): Pass it.
27263         (bitmap_insert_into_set): Likewise.
27264         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
27265
27266 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
27267
27268         PR driver/42442
27269         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
27270         (do_self_spec): For switches with SWITCH_IGNORE set set also
27271         SWITCH_IGNORE_PERMANENTLY.
27272         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
27273         of SWITCH_IGNORE.
27274
27275 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
27276
27277         * lto-streamer-out.c (output_unreferenced_globals): Output the full
27278         tree of an unreferenced global var.
27279
27280 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27281
27282         PR target/42542
27283         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
27284         GTU to GT for V4SI and V2DI.
27285
27286         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
27287         (umin<mode>3): Removed.
27288         (uminv8hi3): New.
27289         (uminv4si3): Likewise.
27290
27291 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
27292
27293         PR lto/42581
27294         * collect2.c (main): Turn on trace in collect2 if -v is passed
27295         to gcc with LTO.
27296
27297 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
27298
27299         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
27300         description of expression operand.
27301
27302 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
27303
27304         * configure.ac: Add install-html to target_list for Make-hooks.
27305         * configure: Regenerate.
27306         * fortran/Make-lang.in (F95_HTMLFILES): New.
27307         (fortran.html): Use it.
27308         (fortran.install-html): New.
27309         * Makefile.in (install-html): Add lang.install-html.
27310         * java/Make-lang.in (JAVA_HTMLFILES): New.
27311         (java.html): Use it.
27312         (java.install-html): New.
27313         * objc/Make-lang.in (objc.install-html): New.
27314         * objcp/Make-lang.in (obj-c++.install-html): New.
27315         * cp/Make-lang.in (c++.install-html): New.
27316         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
27317         * lto/Make-lang.in (lto.install-html): New.
27318
27319 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27320
27321         PR lto/42520
27322         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
27323
27324 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27325
27326         PR rtl-optimization/41862
27327         * store-motion.c (store_killed_in_insn, compute_store_table,
27328         remove_reachable_equiv_notes, replace_store_insn,
27329         build_store_vectors): Ignore all DEBUG_INSNs.
27330
27331 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27332
27333         PR lto/41564
27334         * common.opt: Add dumpdir.
27335
27336         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
27337         isn't specified.
27338         (option_map): Add --dumpdir.
27339
27340         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
27341
27342         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
27343
27344         * opts.c (decode_options): Try dump_dir_name first if
27345         dump_base_name isn't an absolute path.
27346         (common_handle_option): Handle OPT_dumpdir.
27347
27348         * toplev.c (dump_dir_name): New.
27349         (print_switch_values): Also ignore -dumpdir.
27350
27351         * toplev.h (dump_dir_name): New.
27352
27353 2010-01-03  Richard Guenther  <rguenther@suse.de>
27354
27355         PR tree-optimization/42589
27356         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
27357         double-word expansion of bswap32.
27358
27359 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27360
27361         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
27362         with BLOCK_FOR_INSN.
27363         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
27364         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
27365         noce_process_if_block): Likewise.
27366         * gcse.c (compute_local_properties, insert_expr_in_table,
27367         insert_set_in_table, canon_list_insert, find_avail_set,
27368         pre_insert_copy_insn): Likewise.
27369
27370         * basic-block.h (BLOCK_NUM): Move from here...
27371         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
27372
27373 2010-01-03  Richard Guenther  <rguenther@suse.de>
27374
27375         PR tree-optimization/42438
27376         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
27377         contains_may_not_return_call flag.
27378         (BB_MAY_NOTRETURN): New.
27379         (valid_in_sets): Trapping nary operations are not valid
27380         in blocks that may not return.
27381         (insert_into_preds_of_block): Remove check for trapping expressions.
27382         (compute_avail): Compute also BB_MAY_NOTRETURN.
27383
27384 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
27385
27386         * doc/invoke.texi: Add 2010 to copyright years.
27387
27388 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27389
27390         * config/sparc/sparc.c: Fix formatting nits.
27391
27392 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
27393             Alexander Monakov  <amonakov@ispras.ru>
27394
27395         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
27396
27397 2010-01-02  Richard Guenther  <rguenther@suse.de>
27398
27399         PR middle-end/42577
27400         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
27401         (simplify_switch_using_ranges): Mark to be removed edges
27402         as non-executable.
27403
27404 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27405
27406         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27407
27408         * collect2.c (scan_libraries): Add missing argument in call to
27409         scan_prog_file.
27410
27411 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
27412
27413         PR target/42448
27414         * config/alpha/predicates.md (aligned_memory_operand): Return false
27415         for CQImode.
27416         (unaligned_memory_operand): Return true for CQImode.
27417         * config/alpha/alpha.c (get_aligned_mem): Assert that location
27418         doesn not cross aligned SImode word boundary.
27419
27420 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
27421
27422         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
27423         Remove.
27424         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
27425         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
27426
27427 2010-01-02  Richard Guenther  <rguenther@suse.de>
27428
27429         PR lto/41597
27430         * toplev.c (compile_file): Emit LTO marker properly.  Change
27431         it to __gnu_lto_v1.
27432         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
27433
27434 2010-01-01  Richard Guenther  <rguenther@suse.de>
27435
27436         PR debug/42455
27437         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
27438
27439 2010-01-01  Richard Guenther  <rguenther@suse.de>
27440
27441         PR c/42570
27442         * c-decl.c (grokdeclarator): For zero-size arrays force
27443         structural equality checks as layout_type does.
27444
27445 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27446
27447         * builtins.c: Update copyright to 2010.
27448
27449 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27450
27451         PR lto/42531
27452         * lto-streamer-out.c (produce_asm): Revert the last change.
27453         (copy_function): Likewise.
27454
27455         * lto-streamer.c (lto_get_section_name): Skip any leading
27456         asterisk in name.
27457
27458 2010-01-01  Richard Guenther  <rguenther@suse.de>
27459
27460         PR middle-end/42559
27461         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
27462         for LABEL_DECLs.
27463
27464 \f
27465 Copyright (C) 2010 Free Software Foundation, Inc.
27466
27467 Copying and distribution of this file, with or without modification,
27468 are permitted in any medium without royalty provided the copyright
27469 notice and this notice are preserved.