OSDN Git Service

* doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
4         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
5         based on the above, for new target hook.
6
7         * hooks.c (hook_bool_mode_true): New generic hook.
8         * hooks.h (hook_bool_mode_true): Add prototype.
9
10         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
11         target hook.
12         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
13         target hook, set to hook_bool_mode_false.
14         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
16         with targetm.small_register_classes_for_mode_p.
17         (find_reusable_reload): Likewise.
18         (combine_reloads): Likewise.
19         * reload1.c (reload_as_needed): Likewise.
20         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
21         * ifcvt.c (noce_process_if_block, check_cond_move_block,
22         dead_or_predicable): Likewise.
23         * regmove.c (optimize_reg_copy_1): Likewise.
24         * calls.c (prepare_call_address): Likewise.
25         (precompute_register_parameters): Likewise.
26
27         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
28         hook definition.
29         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
30         implementation of the hook that considers all register classes
31         small except for SH64.
32         (sh_override_options): Use the new hook.
33         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
34         Add prototype.
35
36         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
37         hook definition.
38         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
39         implementation of the hook that considers all register classes
40         small for THUMB1.
41         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
42         Add prototype.
43
44         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
45         hook definition.
46         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
47         implementation of the hook that considers all register classes
48         small for MIPS16.
49         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
50         Add prototype.
51
52         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
53         hook definition.
54         * config/m32c/m32c.h: Likewise.
55         * config/pdp11/pdp11.h: Likewise.
56         * config/avr/avr.h: Likewise.
57         * config/xtensa/xtensa.h: Likewise.
58         * config/m68hc11/m68hc11.h: Likewise.
59         * config/mn10300/mn10300.h: Likewise.
60         * config/mcore/mcore.h: Likewise.
61         * config/h8300/h8300.h: Likewise.
62         * config/bfin/bfin.h: Likewise.
63
64         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
65         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
66
67 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
68
69         * double-int.h (tree_to_double_int): Remove macro.
70         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
71         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
72         (tree_to_double_int): New function.
73         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
74         Move ...
75         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
76
77 2010-05-03  Richard Guenther  <rguenther@suse.de>
78
79         PR tree-optimization/43971
80         * tree-ssa-structalias.c (get_constraint_for_1): Fix
81         constraints in the !flag_delete_null_pointer_checks case.
82
83 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
84
85         PR debug/43972
86         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
87         result mode matches original rtl mode.
88
89 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
90
91         PR target/43888
92         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
93
94 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
95
96         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
97         when processing flag options.
98
99 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
100
101         * gcov-iov.c (main): Change format string placeholder
102         from %#08x to 0x%08x.
103         * genchecksum.c (dosum): Change format string placeholder
104         from %#02x to 0x%02x.
105
106 2010-05-02  Richard Guenther  <rguenther@suse.de>
107
108         PR tree-optimization/43879
109         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
110
111 2010-05-02  Bruno Haible  <bruno@clisp.org>
112
113         * doc/extend.texi (Function Attributes): Fix a typo.
114
115 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
116
117         Revert:
118         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
119         placeholder from 0x%x to %#x.
120         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
121         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
122         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
123         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
124         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
125         * config/i386/i386.c (ix86_target_string): Ditto.
126         * config/i386/i386.c (output_pic_addr_const): Ditto.
127         (print_operand): Ditto.
128
129 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
130
131         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
132         placeholder from 0x%x to %#x.
133         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
134         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
135         (ASM_OUTPUT_DEBUG_DATA): Ditto.
136         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
137         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
138         * optc-gen.awk: Ditto.
139         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
140         (HOST_WIDE_INT_PRINT_HEX): Ditto.
141         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
142         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
143
144 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
145
146         * target.h (struct calls): Add function_value_regno_p field.
147         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
148         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
149         * targhooks.c (default_function_value_regno_p): New function.
150         * targhooks.h (default_function_value_regno_p): Declare function.
151         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
152         * builtins.c. (apply_result_size): (Ditto.).
153         * combine.c. (likely_spilled_retval_p): (Ditto.).
154         * mode-switching.c. Include 'target.h'.
155         (create_pre_exit): Use function_value_regno_p hook.
156         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
157         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
158         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
159
160         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
161         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
162         (ix86_function_value_regno_p): Declare as static, change argument
163         type to const unsigned int.
164         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
165
166 2010-05-01  Richard Guenther  <rguenther@suse.de>
167
168         PR tree-optimization/43949
169         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
170         types.
171         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
172
173 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
174
175         * rtl.h (CONST_DOUBLE_P): Define.
176         (rtx_to_double_int): Declare.
177         * emit-rtl.c (rtx_to_double_int): New function.
178         * dwarf2out.c (insert_double): New function.
179         (loc_descriptor, add_const_value_attribute): Clean up, use
180         rtx_to_double_int and insert_double functions.
181
182 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
183
184         * doc/extend.texi (Inline): Add missing return keyword to examples.
185         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
186         "command-line".
187
188 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
189
190         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
191         the variable part of the offset as well.  Use highest_pow2_factor for
192         all alignment checks.
193
194 2010-04-30  Richard Guenther  <rguenther@suse.de>
195
196         PR tree-optimization/43879
197         * tree-ssa-structalias.c (type_could_have_pointers): Functions
198         can have pointers.
199
200 2010-04-30  Jan Hubicka  <jh@suse.cz>
201
202         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
203         varpool.
204         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
205
206 2010-04-30  Jan Hubicka  <jh@suse.cz>
207
208         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
209         New.
210         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
211         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
212         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
213         cgraph_node_set_needs_ltrans_p): Remove.
214
215 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
216
217         * sdbout.c: Include vec.h, do not include varray.h.
218         (deferred_global_decls, sdbout_global_decl,
219         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
220         * toplev.c: Do not include varray.h.
221         (dump_memory_report): Do not dump VARRAY statistics.
222         * gengtype.c (open_base_file): Ignore varray.h.
223         * Makefile.in: Update for abovementioned changes.
224         Remove all traces of varray.c and varray.h.
225         * varray.c: Remove file.
226         * varray.h: Remove file.
227
228 2010-04-30  Jan Hubicka  <jh@suse.cz>
229
230         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
231         references.
232
233 2010-04-30  Jan Hubicka  <jh@suse.cz>
234
235         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
236         needed.
237
238 2010-04-30  Richard Guenther  <rguenther@suse.de>
239
240         * tree-ssa-structalias.c (get_constraint_for_1): Generate
241         constraints for CONSTRUCTOR.
242
243 2010-04-30  Richard Guenther  <rguenther@suse.de>
244
245         PR lto/43946
246         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
247         first after all lowering passes.
248
249 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
250
251         * toplev.c: Include varray.h for statistics dumping.
252         * tree.h: Do not declare varray_head_tag.
253         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
254         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
255         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
256         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
257         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
258         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
259         c-common.c, c-common.h, reg-stack.c, basic-block.h,
260         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
261         include varray.h.
262         * Makefile.in: Update for abovementioned changes.
263
264 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
265
266         PR debug/43942
267         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
268
269 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
270
271         * config/picochip/picochip.c (picochip_legitimize_address): Define.
272         Use this function to do machine-specific conversion.
273         (picochip_legitimize_reload_address): Likewise.
274         (picochip_legitimate_address_p): Check valid base register only if
275         strict.
276         (picochip_check_conditional_copy): Check for modw only if opnd is
277         register.
278         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
279         to call the function in c.
280         * config/picochip/picochip-protos.h
281         (picochip_legitimize_reload_address): Define.
282         * config/picochip/picochip.md (supported_compare1): Define.
283
284 2010-04-30  Jan Hubicka  <jh@suse.cz>
285
286         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
287         (cgraph_global_info): Remove inlined.
288         (LTO_cgraph_tag_names): Remove.
289         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
290         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
291         simplify cgraph tags and document.
292         (lto_output_node): Use only LTO_cgraph_unavail_node and
293         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
294         for_functions_valid, global info, process and output flags.
295         (input_overwrite_node): Initialize estimated stack size and
296         estimated growth.  Do not read flags we no longer store.
297         (input_node): Likewise do not read info no longer stored.
298         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
299         flag.
300
301 2010-04-30  Richard Guenther  <rguenther@suse.de>
302
303         PR tree-optimization/43879
304         * tree-ssa-structalias.c (get_constraint_for_1): Properly
305         handle non-zero initializers.
306
307 2010-04-30  Richard Guenther  <rguenther@suse.de>
308
309         * builtins.c (fold_builtin_1): Delete free (0).
310
311 2010-04-29  Jan Hubicka  <jh@suse.cz>
312
313         * gengtype.c (open_base_files): Add lto-streamer.h
314         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
315         (pass_ipa_cp): GGC collect.
316         * toplev. (compile_file): Do not output symbols.
317         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
318         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
319         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
320         * lto-section-in.c: Include ggc.h
321         (lto_new_in_decl_state): Alloc in GGC.
322         (lto_delete_in_decl_state): Likewise.
323         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
324         Collect.
325
326 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
327
328         PR target/42895
329         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
330         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
331         (HONOR_REG_ALLOC_ORDER): Describe new macro.
332         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
333         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
334         account only if HONOR_REG_ALLOC_ORDER is not defined.
335         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
336         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
337
338 2010-04-29  Jon Grant  <04@jguk.org>
339
340         * collect2.c (vflag): Change type from int to bool.
341         (debug): Likewise.
342         (helpflag): New global bool.
343         (main): Set vflag and debug with boolean, not integer truth values.
344         Accept new "--help" option and output usage text if found.
345         * collect2.h (vflag): Update prototype.
346         (debug): Likewise.
347
348 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
349
350         PR bootstrap/43936
351         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
352
353 2010-04-29  Richard Guenther  <rguenther@suse.de>
354
355         PR bootstrap/43935
356         * plugin.h (invoke_plugin_callbacks): Annotate arguments
357         with ATTRIBUTE_UNUSED.
358
359 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
360
361         PR target/43921
362         * config/i386/i386.c (get_some_local_dynamic_name): Replace
363         INSN_P with NONDEBUG_INSN_P.
364         (distance_non_agu_define): Likewise.
365         (distance_agu_use): Likewise.
366
367 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
368
369         From Dominique d'Humieres <dominiq@lps.ens.fr>
370         PR bootstrap/43858
371         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
372         test_set.
373
374 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
375
376         * plugin.h (invoke_plugin_callbacks): New inline function.
377         * plugin.c (flag_plugin_added): New global flag.
378         (add_new_plugin): Initialize above flag.
379         (invoke_plugin_callbacks): Rename to ...
380         (invoke_plugin_callbacks_full): ... this.
381
382 2010-04-28  Jan Hubicka  <jh@suse.cz>
383
384         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
385         (lto_varpool_replace_node): New.
386         (lto_symtab_resolve_symbols): Resolve varpool nodes.
387         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
388         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
389         * cgraph.h (varpool_node_ptr): New type.
390         (varpool_node_ptr): New vector.
391         (varpool_node_set_def): New structure.
392         (varpool_node_set): New type.
393         (varpool_node_set): New vector.
394         (varpool_node_set_element_def): New structure.
395         (varpool_node_set_element, const_varpool_node_set_element): New types.
396         (varpool_node_set_iterator): New type.
397         (varpool_node): Add prev pointers, add used_from_other_partition,
398         in_other_partition.
399         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
400         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
401         varpool_get_node, varpool_remove_node): Declare.
402         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
403         varpool_node_set_size): New inlines.
404         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
405         * tree-pass.h (varpool_node_set_def): Forward declare.
406         (ipa_opt_pass_d): Summary writting takes vnode sets too.
407         (ipa_write_optimization_summaries): Update prototype.
408         * ipa-cp.c (ipcp_write_summary): Update.
409         * ipa-reference.c (ipa_reference_write_summary): Update.
410         * lto-cgraph.c (lto_output_varpool_node): New static function.
411         (output_varpool): New function.
412         (input_varpool_node): New static function.
413         (input_varpool_1): New function.
414         (input_cgraph): Input varpool.
415         * ipa-pure-const.c (pure_const_write_summary): Update.
416         * lto-streamer-out.c (lto_output): Update, output varpool too.
417         (write_global_stream): Kill WPA hack.
418         (produce_asm_for_decls): Update.
419         (output_alias_pair_p): Handle variables.
420         (output_unreferenced_globals): Output only needed partition of varpool.
421         * ipa-inline.c (inline_write_summary): Update.
422         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
423         cgraph.
424         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
425         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
426         varpool_node_set_new, varpool_node_set_add,
427         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
428         debug_varpool_node_set): New functions.
429         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
430         (execute_one_pass): Process new decls too.
431         (ipa_write_summaries_2): Pass around vsets.
432         (ipa_write_summaries_1): Likewise.
433         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
434         to add.
435         (ipa_write_optimization_summaries_1): Pass around vsets.
436         (ipa_write_optimization_summaries): Likewise.
437         * varpool.c (varpool_get_node): New.
438         (varpool_node): Update doubly linked lists.
439         (varpool_remove_node): New.
440         (dump_varpool_node): More dumping.
441         (varpool_enqueue_needed_node): Update doubly linked lists.
442         (decide_is_variable_needed): Kill ltrans hack.
443         (varpool_finalize_decl): Kill lto hack.
444         (varpool_assemble_decl): Skip decls in other partitions.
445         (varpool_assemble_pending_decls): Update doubly linkes lists.
446         (varpool_empty_needed_queue): Likewise.
447         (varpool_extra_name_alias): Likewise.
448         * lto-streamer.c (lto_get_section_name): Add vars section.
449         * lto-streamer.h (lto_section_type): Update.
450         (output_varpool, input_varpool): Declare.
451
452 2010-04-28  Mike Stump  <mikestump@comcast.net>
453
454         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
455
456 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
457
458         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
459         record or union type with RECORD_OR_UNION_TYPE_P predicate.
460         (lto_input_ts_type_tree_pointers): Likewise.
461         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
462         (lto_output_ts_type_tree_pointers): Likewise.
463
464 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
465
466         Uniquization of constants at the Tree level
467         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
468         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
469         bit to the end.
470         (tree_output_constant_def): Declare.
471         * gimplify.c (gimplify_init_constructor): When using block copy, first
472         uniquize the constant constructor on the RHS.
473         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
474         DECL_IN_CONSTANT_POOL flag.
475         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
476         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
477         constant pool.
478         (assemble_variable): Deal with symbols belonging to the tree constant
479         pool.
480         (get_constant_section): Add ALIGN parameter and simplify.
481         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
482         (assemble_constant_contents): Use the expression of the VAR_DECL.
483         (output_constant_def_contents): Use the alignment of the VAR_DECL.
484         (tree_output_constant_def): New global function.
485         (mark_constant): Use the expression of the VAR_DECL.
486         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
487         its expression.
488         (output_object_block): Likewise and assemble the expression.
489
490 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
491
492         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
493         hash_tree, eq_tree): New tree hash table.
494         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
495         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
496         lto_orig_address_remove): Reimplement.
497
498 2010-04-28  Xinliang David Li  <davidxl@google.com>
499
500         PR c/42643
501         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
502         (compute_uninit_opnds_pos): New function.
503         (is_non_loop_exit_postdominating): New function.
504         (compute_control_dep_chain): New function.
505         (find_pdom): New function.
506         (convert_control_dep_chain_into_preds): New function.
507         (find_predicates): New function.
508         (find_control_equiv_block): New function.
509         (collect_phi_def_edges): New function.
510         (find_def_preds): New function.
511         (find_dom): New function.
512         (dump_predicates): New function.
513         (get_cmp_code): New function.
514         (is_value_included_in): New function.
515         (find_matching_predicate_in_rest_chains): New function.
516         (use_pred_not_overlap_with_undef_path_pred): New function.
517         (is_use_properly_guarded): New function.
518         (normalize_cond_1): New function.
519         (is_and_or_or): New function.
520         (normalize_cond): New function.
521         (is_gcond_subset_of): New function.
522         (is_subset_of_any): New function.
523         (is_or_set_subset_of): New function.
524         (is_and_set_subset_of): New function.
525         (is_norm_cond_subset_of): New function.
526         (is_pred_expr_subset_of): New function.
527         (is_pred_chain_subset_of): New function.
528         (is_included_in): New function.
529         (is_superset_of): New function.
530         (find_uninit_use): New function.
531         (warn_uninitialized_phi): New function.
532         (compute_possibly_undefined_names): New function.
533         (ssa_undefined_value_p): New function.
534         (execute_late_warn_uninitialized): New function.
535         * tree-ssa.c (ssa_undefined_value_p): Removed.
536         (warn_uninit): Changed to extern.
537         (warn_uninitialized_phi): Removed.
538         (warn_uninitialized_vars): Changed to extern.
539         (execute_late_warn_uninitialized): Removed
540         * tree-flow.h: Add new prototypes.
541         * timevar.def: Add new time variable.
542         * Makefile.in: Add new build file.
543
544 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
545
546         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
547         type if available.
548
549 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
550
551         PR target/22224
552         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
553
554 2010-04-28  Martin Jambor  <mjambor@suse.cz>
555
556         * cgraph.h (struct cgraph_node): New field indirect_calls.
557         (struct cgraph_indirect_call_info): New type.
558         (struct cgraph_edge): Removed field indirect_call. New fields
559         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
560         (cgraph_create_indirect_edge): Declare.
561         (cgraph_make_edge_direct): Likewise.
562         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
563         * ipa-prop.h (struct ipa_param_call_note): Removed.
564         (struct ipa_node_params): Removed field param_calls.
565         (ipa_create_all_structures_for_iinln): Declare.
566         * cgraph.c: Described indirect edges and uids in initial comment.
567         (cgraph_add_edge_to_call_site_hash): New function.
568         (cgraph_edge): Search also among the indirect edges, use
569         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
570         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
571         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
572         site hash.
573         (initialize_inline_failed): Assign a reason to indirect edges.
574         (cgraph_create_edge_1): New function.
575         (cgraph_create_edge): Moved some functionality to
576         cgraph_create_edge_1.
577         (cgraph_create_indirect_edge): New function.
578         (cgraph_edge_remove_callee): Add an assert checking for
579         non-indirectness.
580         (cgraph_edge_remove_caller): Special-case indirect edges.
581         (cgraph_remove_edge): Likewise.
582         (cgraph_set_edge_callee): New function.
583         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
584         (cgraph_make_edge_direct): New function.
585         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
586         the declaration of the call statement matches.
587         (cgraph_node_remove_callees): Special-case indirect edges.
588         (cgraph_clone_edge): Likewise.
589         (cgraph_clone_node): Clone also the indirect edges.
590         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
591         indirect_call, dump count of indirect_calls edges.
592         * ipa-prop.c (iinlining_processed_edges): New variable.
593         (ipa_note_param_call): Create indirect edges instead of
594         creating notes.  New parameter node.
595         (ipa_analyze_call_uses): New parameter node, pass it on to
596         ipa_note_param_call.
597         (ipa_analyze_stmt_uses): Likewise.
598         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
599         (print_edge_addition_message): Work on edges rather than on notes.
600         (update_call_notes_after_inlining): Likewise, renamed to
601         update_indirect_edges_after_inlining.
602         (ipa_create_all_structures_for_iinln): New function.
603         (ipa_free_node_params_substructures): Do not free notes.
604         (ipa_edge_duplication_hook): Propagate bits within
605         iinlining_processed_edges bitmap.
606         (ipa_node_duplication_hook): Do not duplicate notes.
607         (free_all_ipa_structures_after_ipa_cp): Renamed to
608         ipa_free_all_structures_after_ipa_cp.
609         (free_all_ipa_structures_after_iinln): Renamed to
610         ipa_free_all_structures_after_iinln.g
611         (ipa_write_param_call_note): Removed.
612         (ipa_read_param_call_note): Removed.
613         (ipa_write_indirect_edge_info): New function.
614         (ipa_read_indirect_edge_info): Likewise.
615         (ipa_write_node_info): Do not stream notes, do stream information
616         in indirect edges.
617         (ipa_read_node_info): Likewise.
618         (lto_ipa_fixup_call_notes): Removed.
619         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
620         * ipa-inline.c (pass_ipa_inline): Likewise.
621         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
622         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
623         * tree-inline.c (copy_bb): Removed an unnecessary double check for
624         is_gimple_call.
625         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
626         edges.
627         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
628         (output_cgraph): Stream also indirect edges.
629         (lto_output_edge): Added capability to stream indirect edges.
630         (input_edge): Likewise.
631         (input_cgraph_1): Likewise.
632         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
633         of indirect edges.
634
635 2010-04-28  Richard Guenther  <rguenther@suse.de>
636
637         PR tree-optimization/43879
638         PR tree-optimization/43909
639         * tree-ssa-structalias.c (struct variable_info): Add
640         only_restrict_pointers flag.
641         (new_var_info): Initialize it.  Increment stats.total_vars here.
642         (create_function_info_for): Do not increment stats.total_vars
643         here.
644         (get_function_part_constraint): Fix build with C++.
645         (insert_into_field_list): Remove.
646         (push_fields_onto_fieldstack): Properly merge fields.
647         (create_variable_info_for): Split and simplify.
648         (create_variable_info_for_1): New piece.
649         (intra_create_variable_infos): Properly make restrict constraints
650         from parameters.
651
652 2010-04-28  Richard Guenther  <rguenther@suse.de>
653
654         PR c++/43880
655         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
656
657 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
658             Jan Hubicka <hubicka@ucw.cz>
659
660         * doc/invoke.texi (-Wsuggest-attribute=const,
661         -Wsuggest-attribute=pure): Document.
662         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
663         (function_always_visible_to_compiler_p,
664         suggest_attribute, warn_function_pure, warn_function_const):
665         New functions.
666         (check_call): Improve debug info.
667         (analyze_function): Do not check availability.
668         (add_new_function): Check availability.
669         (propagate): Output warnings.
670         (skip_function_for_local_pure_const): New function.
671         (local_pure_const): Use it; output warnings.
672         * common.opt (Wsuggest-attribute=const,
673         Wsuggest-attribute=pure): New.
674
675 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
676
677         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
678         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
679         or DW_CFA_def_cfa_offset{,_sf}.
680
681 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
682
683         * tree.h: Fix truncated long macros.
684
685 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
686
687         * collect2.c (TARGET_64BIT): Redefine to target's default.
688         * tlink.c: Likewise.
689         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
690         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
691         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
692         for underscoring __USER_LABEL_PREFIX__.
693         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
694         (SUB_LINK_ENTRY32): New.
695         (SUB_LINK_ENTRY64): New.
696         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
697         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
698         (SUB_LINK_ENTRY64): New.
699         (SUB_LINK_ENTRY): New.
700         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
701         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
702         x64 target is choosen.
703         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
704         * configure: Regenerated.
705         * configure.ac (leading-mingw64-underscores): Option added.
706
707 2010-04-27  Jan Hubicka  <jh@suse.cz>
708
709         * doc/invoke.texi (-fipa-profile): Document.
710         * opts.c (decode_options): Enable ipa-profile at -O1.
711         * timevar.def (TV_IPA_PROFILE): Define.
712         * common.opt (fipa-profile): Add.
713         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
714         flag for clones.
715         (cgraph_propagate_frequency): Handle only local ones.
716         * tree-pass.h (pass_ipa_profile): Declare.
717         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
718         (pass_ipa_profile): Use TV_IPA_PROFILE.
719         * ipa.c (ipa_profile): New function.
720         (gate_ipa_profile): Likewise.
721         (pass_ipa_profile): New global variable.
722         * passes.c (pass_ipa_profile): New.
723
724 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
725
726         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
727
728 2010-04-27  Martin Jambor  <mjambor@suse.cz>
729
730         PR middle-end/43812
731         * ipa.c (dissolve_same_comdat_group_list): New function.
732         (function_and_variable_visibility): Call
733         dissolve_same_comdat_group_list when comdat group contains external or
734         newly local nodes.
735         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
736         lists are circular and that they contain only DECL_ONE_ONLY nodes.
737
738 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
739
740         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
741         (const_hash_1) <VECTOR_CST>: New case.
742         (compare_constant) <VECTOR_CST>: Likewise.
743         <ADDR_EXPR>: Deal with LABEL_REFs.
744         (copy_constant) <VECTOR_CST>: New case.
745
746 2010-04-27  Jan Hubicka  <jh@suse.cz>
747
748         * cgraph.c (cgraph_propagate_frequency): New function.
749         * cgraph.h (cgraph_propagate_frequency): Declare.
750         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
751         cgraph_propagate_frequency.
752
753 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
754
755         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
756
757 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
758
759         PR target/40657
760         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
761         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
762         here to determine which regs to push and how much stack to reserve.
763
764 2010-04-27  Jie Zhang  <jie@codesourcery.com>
765
766         * doc/gimple.texi (gimple_statement_with_ops): Remove
767         addresses_taken field.
768         (gimple_statement_with_memory_ops): Likewise.
769
770 2010-04-27  Jan Hubicka  <jh@suse.cz>
771
772         * tree-inline.c (eni_inlining_weights): Remove.
773         (estimate_num_insns): Special case more builtins.
774
775 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
776
777         PR c/32207
778         * c-typeck.c (build_binary_op): Move forward check for comparison
779         pointer with null pointer constant and adjust the diagnostic message.
780
781 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
782
783         PR lto/42776
784         * configure.ac (gcc_cv_as_section_has_align): Set if installed
785         binutils supports extended .section directive needed by LTO, or
786         warn if older binutils found.
787         (LTO_BINARY_READER): New AC_SUBST'd variable.
788         (LTO_USE_LIBELF): Likewise.
789         * gcc/config.gcc (lto_binary_reader): New target-specific configure
790         variable.
791         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
792         (LTO_USE_LIBELF): Likewise.
793         * configure: Regenerate.
794
795         * collect2.c (is_elf): Rename from this ...
796         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
797          object files in addition to ELF-formatted ones.
798         (scan_prog_file): Caller updated.  Also allow for LTO info marker
799         symbol to be prefixed or not by an extra underscore.
800
801         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
802         * config/i386/winnt.c: Also #include lto-streamer.h
803         (i386_pe_asm_named_section): Specify 1-byte section alignment for
804         LTO named sections.
805         (i386_pe_asm_output_aligned_decl_common): Add comment.
806         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
807
808 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
809
810         PR target/43889
811         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
812         Add missing earlyclobber for second alternative.
813
814 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
815
816         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
817         bits for artificial defs at the top of the block.
818         * fwprop.c (single_def_use_enter_block): Don't call it.
819
820 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
821
822         PR 43715
823         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
824         instead of "$gcc_cv_objdump -T".
825         Use "-undefined dynamic_lookup" on darwin.
826         * gcc/configure: Regenerate.
827
828 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
829
830         PR c/43893
831         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
832
833 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
834
835         * c-parser.c (struct c_token): Move location field up.
836         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
837         (struct c_declspecs): Convert typespec_word, storage_class, and
838         default_int_p into bitfields.
839         (struct c_declarator): Move loc field up.
840
841 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
842
843         * cfgloop.h (struct loop): Move can_be_parallel field up.
844         * ipa-prop.h (struct ip_node_params): Move bitfields up.
845         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
846         down.
847         (struct iv_cand): Convert pos field into a bitfield.
848         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
849         field up.
850         (struct _stmt_vec_info): Shuffle fields for better packing.
851
852 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
853
854         * varasm.c (IN_NAMED_SECTION): Remove guard.
855         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
856         (IN_NAMED_SECTION_P): ...this.
857         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
858         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
859
860 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
861
862         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
863         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
864         of shadowing it.  Fix comments.
865
866 2010-04-26  Jan Hubicka  <jh@suse.cz>
867
868         * cgraph.c (cgraph_create_node): Set node frequency to normal.
869         (cgraph_clone_node): Copy function frequency.
870         * cgraph.h (node_frequency): New enum
871         (struct cgraph_node): Add.
872         * final.c (rest_of_clean_state): Update.
873         * lto-cgraph.c (lto_output_node): Output node frequency.
874         (input_overwrite_node): Input node frequency.
875         * tre-ssa-loop-ivopts (computation_cost): Update.
876         * lto-streamer-out.c (output_function): Do not output function
877         frequency.
878         * predict.c (maybe_hot_frequency_p): Update and handle functions
879         executed once.
880         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
881         attribute lookup.
882         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
883         (compute_function_frequency): Set noreturn functions to be executed
884         once.
885         (choose_function_section): Update.
886         * lto-streamer-in.c (input_function): Do not input function frequency.
887         * function.c (allocate_struct_function): Do not initialize function
888         frequency.
889         * function.h (function_frequency): Remove.
890         (struct function): Remove function frequency.
891         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
892         (try_update): Update.
893         * tree-inline.c (initialize_cfun): Do not update function frequency.
894         * passes.c (pass_init_dump_file): Update.
895         * i386.c (ix86_compute_frame_layout): Update.
896         (ix86_pad_returns): Update.
897
898 2010-04-26  Jie Zhang  <jie@codesourcery.com>
899
900         PR tree-optimization/43833
901         * tree-vrp.c (range_int_cst_p): New.
902         (range_int_cst_singleton_p): New.
903         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
904         when both operands are constants.  Use range_int_cst_p in
905         BIT_IOR_EXPR case.
906
907 2010-04-26  Jan Hubicka  <jh@suse.cz>
908
909         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
910
911 2010-04-26  Richard Guenther  <rguenther@suse.de>
912
913         PR lto/43080
914         * gimple.c (gimple_decl_printable_name): Deal gracefully
915         with a NULL DECL_NAME.
916
917 2010-04-26  Richard Guenther  <rguenther@suse.de>
918
919         PR lto/42425
920         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
921         if emitting debug information and it is either a function
922         or a namespace decl.
923
924 2010-04-26  Ira Rosen  <irar@il.ibm.com>
925
926         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
927         determine if the statement is vectorizable, and a macro to access it.
928         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
929         Skip statements that can't be vectorized. If the analysis fails,
930         mark the statement as unvectorizable if vectorizing basic block.
931         (vect_compute_data_refs_alignment): Likewise.
932         (vect_verify_datarefs_alignment): Skip statements marked as
933         unvectorizable. Add print.
934         (vect_analyze_group_access): Skip statements that can't be
935         vectorized. If the analysis fails, mark the statement as
936         unvectorizable if vectorizing basic block.
937         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
938         * tree-vect-stmts.c (vectorizable_store): Fix the number of
939         generated stmts for SLP.
940         (new_stmt_vec_info): Initialize the new field.
941         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
942         statements marked as unvectorizable.
943
944 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
945
946         * c-common.c (flag_isoc1x): New.
947         (flag_isoc99): Update comment.
948         * c-common.h (flag_isoc1x): New.
949         (flag_isoc99): Update comment.
950         * c-cppbuiltin.c (builtin_define_float_constants): Also define
951         __<type>_DECIMAL_DIG__.
952         * c-opts.c (set_std_c1x): New.
953         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
954         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
955         * c.opt (-std=c1x, -std=gnu1x): New options.
956         * doc/cpp.texi: Mention -std=c1x.
957         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
958         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
959         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
960         * doc/standards.texi: Mention C1X.
961         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
962         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
963         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
964         Define for C1X.
965
966 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
967
968         * config/i386/gmon-sol2.c (_mcleanup): Change format string
969         placeholder from 0x%x to %#x.
970         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
971         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
972         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
973         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
974         * config/i386/i386.c (ix86_target_string): Ditto.
975         (output_pic_addr_const): Ditto.
976         (print_operand): Ditto.
977
978 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
979
980         * combine.c (find_split_point): Add third argument.  Use it
981         to find nested multiply-accumulate instructions.  Adjust calls.
982         (try_combine): Adjust call to find_split_point.
983
984 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
985
986         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
987
988 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
989
990         PR tree-optimization/41442
991         * fold-const.c (merge_truthop_with_opposite_arm): New function.
992         (fold_binary_loc): Call it.
993
994 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
995
996         * toplev.c (general_init): Set default for fdiagnostics-show-option.
997         * opts.c (common_handle_option): Allow disabling it.
998         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
999
1000 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1001
1002         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1003         between modes if both types are integral.
1004
1005 2010-04-23  Richard Guenther  <rguenther@suse.de>
1006
1007         PR tree-optimization/43572
1008         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1009
1010 2010-04-23  Richard Guenther  <rguenther@suse.de>
1011
1012         PR lto/43455
1013         * tree-inline.c (tree_can_inline_p): Also check compatibility
1014         of return types.
1015
1016 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1017
1018         PR tree-optimization/43846
1019         * tree-sra.c (struct access): New flag grp_assignment_read.
1020         (build_accesses_from_assign): Set grp_assignment_read.
1021         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1022         (enum mark_read_status): New type.
1023         (analyze_access_subtree): Propagate grp_assignment_read, create
1024         accesses also if both direct_read and root->grp_assignment_read.
1025
1026 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1027
1028         PR middle-end/43835
1029         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1030         function does not have type attributes.
1031
1032 2010-04-23  Richard Guenther  <rguenther@suse.de>
1033
1034         PR lto/42653
1035         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1036         of FUNCTION_DECLs.
1037
1038 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1039
1040         * sese.h (create_if_region_on_edge): Remove.
1041
1042         * sese.c (create_if_region_on_edge): Make static.
1043
1044         * tree-inline.c: Do not include ggc.h.
1045
1046         * expr.c: Do not include ggc.h.
1047
1048         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1049         dependencies.
1050
1051 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1052
1053         PR target/43744
1054         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1055         in the middle of insns for casesi_worker_2.
1056
1057 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1058
1059         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1060
1061 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1062
1063         PR tree-optimization/43842
1064         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1065         loop unrolling in update of exit phis. Fix comment.
1066         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1067         least two reduction statements in the loop before starting SLP
1068         analysis.
1069
1070 2010-04-22  Nick Clifton  <nickc@redhat.com>
1071
1072         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1073
1074 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1075
1076         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1077         to simplify a + ~a.
1078
1079 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1080
1081         * tree-parloops.c (loop_parallel_p): New argument
1082         parloop_obstack.  Pass it down.
1083         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1084         pass it down, free it.
1085
1086         * tree-loop-linear.c (linear_transform_loops): Pass down
1087         lambda_obstack.
1088
1089         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1090         of type struct obstack *.
1091
1092         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1093         scratch_obstack.  Initialize it, pass down, free it.
1094
1095         * lambda.h (lambda_loop_new): Remove.
1096         (lambda_matrix_new, lambda_matrix_inverse)
1097         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1098         argument of type struct obstack *.
1099
1100         * lambda-trans.c (lambda_trans_matrix_new): New argument
1101         lambda_obstack.  Pass it down, use obstack allocation for ret.
1102         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1103         it down.
1104
1105         * lambda-mat.c (lambda_matrix_get_column)
1106         (lambda_matrix_project_to_null): Remove.
1107         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1108         allocation for mat.
1109         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1110         lambda_obstack.
1111
1112         * lambda-code.c (lambda_loop_new): New function.
1113         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1114         (lambda_compute_auxillary_space, lambda_compute_target_space)
1115         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1116         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1117         (build_access_matrix): New argument lambda_obstack.  Use obstack
1118         allocation for am.
1119         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1120         argument lambda_obstack.  Pass it down.
1121
1122 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1123
1124         * optabs.h (expand_widening_mult): Declare.
1125
1126 2010-04-22  Richard Guenther  <rguenther@suse.de>
1127
1128         PR tree-optimization/43845
1129         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1130         lookup the CALL_EXPR function and arguments.
1131
1132 2010-04-22  Nick Clifton  <nickc@redhat.com>
1133
1134         * config/stormy16/stormy16.c
1135         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1136         * config/stormy16/stormy16.h: Tidy up formatting.
1137         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1138         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1139         (ineqbranchsi): Delete pattern.
1140         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1141         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1142         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1143         stormy16-lib2-ucmpsi2.c.
1144
1145 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1146
1147         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1148         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1149         extra set merge_set_noclobber, and use it to relax the final test
1150         slightly.
1151         * df.h (df_simulate_find_noclobber_defs): Declare.
1152         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1153         conditional defs.
1154         (df_simulate_find_noclobber_defs): New function.
1155
1156 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1157
1158         * config/i386/i386.md: Use {} around multi-line preparation statements.
1159
1160 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1161
1162         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1163         (process_init_element): New argument of type struct obstack *.
1164
1165         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1166         (set_init_index, set_init_label, set_nonincremental_init)
1167         (set_nonincremental_init_from_string, find_init_member)
1168         (output_init_element, output_pending_init_elements)
1169         (process_init_element): New argument braced_init_obstack.  Pass it
1170         down.
1171         (push_range_stack, add_pending_init): New argument
1172         braced_init_obstack.  Use obstack allocation.
1173
1174         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1175         braced_init_obstack.  Pass it down.
1176         (c_parser_braced_init): New variables ret, braced_init_obstack.
1177         Initialize obstack, pass it down and finally free it.
1178
1179 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1180
1181         PR middle-end/29274
1182         * tree-pass.h (pass_optimize_widening_mul): Declare.
1183         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1184         gate_optimize_widening_mul): New static functions.
1185         (pass_optimize_widening_mul): New.
1186         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1187         <case MULT_EXPR>: Remove support for widening multiplies.
1188         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1189         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1190         simplify_gen_unary rather than directly building extensions.
1191         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1192         WIDEN_MULT_EXPR.
1193         * expmed.c (expand_widening_mult): New function.
1194         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1195
1196 2010-04-21  Jan Hubicka  <jh@suse.cz>
1197
1198         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1199         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1200         * lto-wpa-fixup.c: Remove.
1201         * Makefile.in (lto-wpa-fixup.o): Remove.
1202         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1203         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1204         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1205
1206 2010-04-21  Jan Hubicka  <jh@suse.cz>
1207
1208         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1209         add write_optimization_summary, read_optimization_summary.
1210         (ipa_write_summaries_of_cgraph_node_set): Remove.
1211         (ipa_write_optimization_summaries): Declare.
1212         (ipa_read_optimization_summaries): Declare.
1213         * ipa-cp.c (pass_ipa_cp): Update.
1214         * ipa-reference.c (pass_ipa_reference): Update.
1215         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1216         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1217         Update.
1218         * ipa-inline.c (pass_ipa_inline): Update.
1219         * ipa.c (pass_ipa_whole_program): Update.
1220         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1221         * passes.c (ipa_write_summaries_1): Do not test wpa.
1222         (ipa_write_optimization_summaries_1): New.
1223         (ipa_write_optimization_summaries): New.
1224         (ipa_read_summaries): Do not test ltrans.
1225         (ipa_read_optimization_summaries_1): New.
1226         (ipa_read_optimization_summaries): New.
1227
1228 2010-04-21  Jan Hubicka  <jh@suse.cz>
1229
1230         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1231         for boundary nodes.
1232         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1233
1234 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1235
1236         PR debug/40040
1237         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1238         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1239
1240 2010-04-21  Jan Hubicka  <jh@suse.cz>
1241
1242         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1243
1244 2010-04-21  Jan Hubicka  <jh@suse.cz>
1245
1246         * varpool.c (decide_is_variable_needed): Variable is always needed
1247         during ltrans.
1248
1249 2010-04-21  Jan Hubicka  <jh@suse.cz>
1250
1251         * opts.c (decode_options): Enable pure-const pass for whopr.
1252
1253 2010-04-21  Jan Hubicka  <jh@suse.cz>
1254
1255         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1256         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1257         at WPA dumping.
1258         (cgraph_decide_inlining): Do not expect callee to be removed in all
1259         cases.
1260
1261 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1262
1263         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1264
1265 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1266
1267         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1268         amdfam10_decode attributes.
1269
1270 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1271
1272         PR middle-end/43570
1273         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1274         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1275         (lower_copyprivate_clauses): Use private var in outer
1276         context instead of original var.  Make sure the types
1277         are correct for VLAs.
1278
1279 2010-04-21  Richard Guenther  <rguenther@suse.de>
1280
1281         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1282         to non-pointer objects.
1283
1284 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1285
1286         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1287         last chain entry if it starts with the still current label.
1288         (add_location_or_const_value_attribute): Check that
1289         loc_list->first->next is NULL instead of comparing ->first with ->last.
1290         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1291         to add_var_loc_to_decl.
1292
1293         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1294         >= 4 add also address size and segment size fields into CIE header.
1295
1296         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1297         long as address size is the same as sizeof (void *) and
1298         segment size is 0.
1299         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1300         address size or segment size is unexpected, return DW_EH_PE_omit.
1301         (classify_object_over_fdes): If get_cie_encoding returned
1302         DW_EH_PE_omit, return -1.
1303         (init_object): If classify_object_over_fdes returned -1,
1304         pretend there were no FDEs at all.
1305
1306 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1307
1308         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1309         bswap{si,di}2 using SWI48 mode iterator.
1310         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1311         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1312         set modrm attribute of bswap insn to 0 and remove length attribute.
1313         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1314         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1315         set mode attribute to <MODE> and remove length attribute.
1316
1317 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1318
1319         PR rtl-optimization/43520
1320         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1321         zero available registers.
1322
1323 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1324
1325         * builtins.c (fold_builtin_cproj): Fold more cases.
1326
1327 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1328
1329         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1330         (fold_builtin_1): Fold builtin cproj.
1331         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1332         Use ATTR_CONST_NOTHROW_LIST.
1333
1334 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1335
1336         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1337         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1338         ffsi2_no_cmove for !TARGET_CMOVE.
1339         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1340         (ffssi2): Remove expander.
1341         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1342         mode iterator.
1343         (ctz<mode>2): Ditto from ctz{si,di}2.
1344         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1345         mode iterator.
1346         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1347         mode iterator.
1348
1349 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1350
1351         * dwarf2out.c (AT_linkage_name): Define.
1352         (clone_as_declaration): Handle DW_AT_linkage_name.
1353         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1354         of DW_AT_MIPS_linkage_name.
1355         (move_linkage_attr): Likewise.
1356         (dwarf2out_finish): Likewise.
1357
1358 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1359
1360         PR middle-end/41952
1361         * fold-const.c (fold_comparison): New folding rule.
1362
1363 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1364
1365         * double-int.h (double_int_setbit): Declare.
1366         * double-int.c (double_int_setbit): New function.
1367         * rtl.h (immed_double_int_const): Declare.
1368         * emit-rtl.c (immed_double_int_const): New function.
1369         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1370         and immed_double_int_const functions.
1371         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1372         expand_copysign_bit):  (Ditto.).
1373         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1374         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1375         * dojump.c (prefer_and_bit_test): (Ditto.).
1376         * expr.c (convert_modes, reduce_to_bit_field_precision,
1377         const_vector_from_tree): (Ditto.).
1378         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1379
1380 2010-04-20  Jan Hubicka  <jh@suse.cz>
1381
1382         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1383         (dump_cgraph_node): Dump new flags.
1384         * cgraph.h (struct cgraph_node): Add flags
1385         reachable_from_other_partition and in_other_partition.
1386         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1387         other partition can not be removed.
1388         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1389         the other partition must be output; silence sanity checking on
1390         leaking functions bodies from other paritition.
1391         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1392         (lto_output_node): Output new flags; do not sanity check that inline
1393         clones are output; drop lto_forced_extern_inline_p code; do not mock
1394         visibility flags at partition boundaries.
1395         (add_node_to): New function.
1396         (output_cgraph): Use it to sort functions so masters appear before
1397         clones.
1398         (input_overwrite_node): Input new flags.
1399         * passes.c (ipa_write_summaries): Do not call
1400         lto_new_extern_inline_states.
1401         * lto-section-out.c (forced_extern_inline,
1402         lto_new_extern_inline_states lto_delete_extern_inline_states,
1403         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
1404         * lto-streamer.h (lto_new_extern_inline_states,
1405         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
1406         lto_forced_extern_inline_p): Kill.
1407
1408 2010-04-20  Richard Guenther  <rguenther@suse.de>
1409
1410         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
1411         from vars that can have pointers.
1412         (process_constraint): Dump useless constraints.
1413
1414 2010-04-20  Richard Guenther  <rguenther@suse.de>
1415
1416         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
1417         (dump_sa_points_to_info): Remove asserts.
1418         (init_base_vars): nothing_id isn't an escape point nor does it
1419         have pointers.
1420
1421 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1422
1423         * tree.h (TYPE_REF_IS_RVALUE): Define.
1424         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
1425         should_move_die_to_comdat, prune_unused_types_walk): Handle
1426         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
1427         (modified_type_die, gen_reference_type_die): Emit
1428         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
1429         if TYPE_REF_IS_RVALUE and -gdwarf-4.
1430
1431 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1432
1433         PR target/43635
1434         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
1435         calls for -fpic -m31 if they have been sibcall optimized.
1436
1437 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
1438
1439         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
1440         ar.lc fixed and call-used.
1441
1442         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
1443
1444 2010-04-19  Jan Hubicka  <jh@suse.cz>
1445
1446         * opts.c (decode_options): Disable whpr incompatible passes.
1447         * lto/lto.c (lto_1_to_1_map): Skip clones.
1448         (read_cgraph_and_symbols): Do not mark everything as needed.
1449         (do_whole_program_analysis): Do map only after optimizing;
1450         set proper cgraph_state; use passmanager.
1451
1452 2010-04-19  DJ Delorie  <dj@redhat.com>
1453
1454         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1455         POINTER_PLUS_EXPR and fix them.
1456
1457 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1458
1459         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1460         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1461         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1462         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1463         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1464         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1465         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1466         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1467         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1468         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1469         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1470
1471 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1472
1473         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1474         (check_cond_move_block): Likewise.
1475         (cond_move_process_if_block): Likewise.
1476         (noce_find_if_block): Improve formatting.
1477         (find_if_header): Pass 0 to memset and tweak conditions.
1478         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1479
1480 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1481
1482         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1483         for -gdwarf-4.
1484
1485         PR middle-end/43337
1486         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1487         with non-local decl doesn't need chain.
1488
1489 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1490
1491         * ira-color.c (allocno_reload_assign): Avoid accumulating
1492         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1493
1494 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1495
1496         * gimple.h (create_tmp_reg): Declare.
1497         * gimplify.c (create_tmp_reg): New function.
1498         (gimplify_return_expr): Use create_tmp_reg.
1499         (gimplify_omp_atomic): Likewise.
1500         (gimple_regimplify_operands): Likewise.
1501         * tree-dfa.c (make_rename_temp): Likewise.
1502         * tree-predcom.c (predcom_tmp_var): Likewise.
1503         (reassociate_to_the_same_stmt): Likewise.
1504         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1505         (get_replaced_param_substitute): Likewise.
1506         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1507         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1508         * tree-ssa-pre.c (get_representative_for): Likewise.
1509         (create_expression_by_pieces): Likewise.
1510         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1511         (create_tailcall_accumulator): Likewise.
1512
1513 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1514
1515         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1516         new_stmt.
1517         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1518
1519 2010-04-19  Richard Guenther  <rguenther@suse.de>
1520
1521         PR tree-optimization/43796
1522         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1523         from SCEV in the lattice.
1524         (vrp_visit_phi_node): Dump change.
1525
1526 2010-04-19  Richard Guenther  <rguenther@suse.de>
1527
1528         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1529         * configure: Re-generated.
1530
1531 2010-04-19  Richard Guenther  <rguenther@suse.de>
1532
1533         PR tree-optimization/43783
1534         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1535         constant ARRAY_REF operands two and three if possible.
1536
1537 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1538
1539         PR target/43766
1540         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1541
1542 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1543
1544         PR target/43662
1545         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1546
1547 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1548
1549         PR tree-optimization/37027
1550         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1551         and macro to access it.
1552         (vectorizable_reduction): Add argument.
1553         (vect_get_slp_defs): Likewise.
1554         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1555         statements for possible use in SLP.
1556         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1557         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1558         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
1559         add new argument.
1560         (vectorizable_reduction): Likewise.
1561         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
1562         vect_get_slp_defs.
1563         (vectorizable_type_demotion, vectorizable_type_promotion,
1564         vectorizable_store): Likewise.
1565         (vect_analyze_stmt): Update call to vectorizable_reduction.
1566         (vect_transform_stmt): Likewise.
1567         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
1568         (vect_build_slp_tree): Fix indentation. Check that there are no loads
1569         from different interleaving chains in same node.
1570         (vect_slp_rearrange_stmts): New function.
1571         (vect_supported_load_permutation_p): Allow load permutations for
1572         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
1573         inside SLP nodes if necessary.
1574         (vect_analyze_slp_instance): Handle reductions.
1575         (vect_analyze_slp): Try to build SLP instances originating from groups
1576         of reductions.
1577         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
1578         (vect_get_constant_vectors): Create initial vectors for reductions
1579         according to reduction code. Add new argument.
1580         (vect_get_slp_defs): Add new argument, pass it to
1581         vect_get_constant_vectors.
1582         (vect_schedule_slp_instance): Remove SLP tree root statements.
1583
1584 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1585
1586         * tree.h (ENUM_IS_SCOPED): Define.
1587         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
1588         for ENUM_IS_SCOPED enums.
1589
1590 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1591
1592         * fold-const.c (fold_comparison): Use ssizetype.
1593         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1594         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
1595         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
1596         * tree-object-size.c (compute_object_sizes): Use size_type_node.
1597
1598         * tree.h (initialize_sizetypes): Remove parameter.
1599         (build_common_tree_nodes): Remove second parameter.
1600         * stor-layout.c (initialize_sizetypes): Remove parameter.
1601         Always create an unsigned type.
1602         (set_sizetype): Assert that the passed type is unsigned and simplify.
1603         * tree.c (build_common_tree_nodes): Remove second parameter.
1604         Adjust call to initialize_sizetypes.
1605         * c-decl.c (c_init_decl_processing): Remove second argument in call to
1606         build_common_tree_nodes.
1607
1608 2010-04-18  Matthias Klose  <doko@ubuntu.com>
1609
1610         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
1611
1612 2010-04-18  Ira Rosen  <irar@il.ibm.com>
1613
1614         PR tree-optimization/43771
1615         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
1616         load permutation doesn't have gaps.
1617
1618 2010-04-18  Jan Hubicka  <jh@suse.cz>
1619
1620         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
1621         (sse_prologue_save_insn expander): Use new pattern.
1622         (sse_prologue_save_insn1): New pattern and splitter.
1623         (sse_prologue_save_insn): Update to deal also with 64bit aligned
1624         blocks.
1625         * i386.c (setup_incoming_varargs_64): Do not compute jump
1626         destination here.
1627         (ix86_gimplify_va_arg): Update alignment needed.
1628         (ix86_local_alignment): Do not align all local arrays to 128bit.
1629
1630 2010-04-17  Jan Hubicka  <jh@suse.cz>
1631
1632         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
1633
1634 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1635
1636         * arm.md (negdi2): Remove redundant code to force values into a
1637         register.
1638
1639 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1640
1641         * arm/bpabi.S: Add EABI alignment attributes to objects.
1642         * arm/bpabi-v6m.S: Likewise.
1643         * arm/crti.asm: Likewise.
1644         * arm/crtn.asm: Likewise.
1645         * arm/lib1funcs.asm: Likewise.
1646         * arm/libunwind.S: Likewise.
1647
1648 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1649
1650         * arm-protos.h (tune_params): New structure.
1651         * arm.c (current_tune): New variable.
1652         (arm_constant_limit): Delete.
1653         (struct processors): Add pointer to the tune parameters.
1654         (arm_slowmul_tune): New tuning option.
1655         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
1656         (all_cores): Adjust to pick up the tuning model.
1657         (arm_constant_limit): New function.
1658         (arm_override_options): Select the appropriate tuning model.  Delete
1659         initialization of arm_const_limit.
1660         (arm_split_constant): Use the new constant-limit model.
1661         (arm_rtx_costs): Pick up the current tuning model.
1662         * arm.md (is_strongarm, is_xscale): Delete.
1663         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
1664         for Xscale variant architectures.
1665         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
1666
1667 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1668
1669         * config/arm/arm.c (arm_gen_constant): Remove unused variable
1670         can_shift.
1671         (arm_rtx_costs_1): Remove unused variable extra_cost.
1672         (arm_unwind_emit_set): Use variable offset.
1673         (thumb1_output_casesi): Remove unused variable flags.
1674
1675 2010-04-16  Jeff Law  <law@redhat.com>
1676
1677         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
1678         needing assignment rather than doing a two-phase assignment.  Remove
1679         unused variable 'm'.
1680
1681 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1682
1683         PR bootstrap/43767
1684         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
1685
1686 2010-04-16  Doug Kwan  <dougkwan@google.com>
1687
1688         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
1689         (next_operand_entry_id): New static variable.
1690         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
1691         (add_to_ops_vec): Assigned unique ID to operand entry.
1692         (struct oecount_s): New field ID.
1693         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
1694         (undistribute_ops_list): Assign unique IDs to oecounts.
1695         (init_reassoc): reset next_operand_entry_id.
1696
1697 2010-04-16  Doug Kwan  <dougkwan@google.com>
1698
1699         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
1700         missing left parenthesis.
1701
1702 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
1703
1704         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
1705         *btdi_rex64 using SWI48 mode iterator.
1706         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
1707         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
1708         *jcc_btdi_mask_rex64.
1709
1710 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
1711
1712         * double-int.h (tree_to_double_int): Convert to macro.
1713         * double-int.c (tree_to_double_int): Remove.
1714
1715 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1716
1717         PR debug/43762
1718         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
1719         with want_address 2 and in case a single element list might be
1720         possible, call it again with want_address 0.
1721
1722 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1723
1724         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
1725         case 'W' print operands for HI mode.
1726         * config/h8300/h8300.h (Y0, Y2) : New constraints.
1727         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
1728         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
1729         * config/h8300/predicate.md (bit_register_indirect_operand): New.
1730
1731         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
1732
1733         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
1734         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
1735         #xx:3 and #xx:4 mode.
1736
1737         * config/h8300/h8300.md (inverted load with HImode dest): Add
1738         support for H8300SX.
1739
1740         * config/h8300/predicate.md (bit_operand): Allow immediate values that
1741         satisfy 'U' constraint.
1742
1743 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1744
1745         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
1746         * configure: Regenerate.
1747         * config.in: Regenerate.
1748         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
1749         works.
1750
1751 2010-04-16  Richard Guenther  <rguenther@suse.de>
1752
1753         * tree.h (struct tree_decl_minimal): Move pt_uid ...
1754         (struct tree_decl_common): ... here.
1755         (DECL_PT_UID): Adjust.
1756         (SET_DECL_PT_UID): Likewise.
1757         (DECL_PT_UID_SET_P): Likewise.
1758
1759 2010-04-16  Richard Guenther  <rguenther@suse.de>
1760
1761         PR tree-optimization/43572
1762         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
1763         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
1764         * tree-flow.h (is_call_clobbered): Remove.
1765         * tree-flow-inline.h (is_call_clobbered): Likewise.
1766         * tree-dfa.c (dump_variable): Do not dump call clobber state.
1767         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
1768         (execute_return_slot_opt): Adjust.
1769         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
1770         check for call clobbered vars here.
1771         (find_tail_calls): Move tailcall verification to the
1772         proper place.
1773
1774 2010-04-16  Diego Novillo  <dnovillo@google.com>
1775
1776         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
1777
1778 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1779
1780         PR target/40603
1781         * config/arm/arm.md (cbranchqi4): New pattern.
1782         * config/arm/predicates.md (const0_operand,
1783         cbranchqi4_comparison_operator): New predicates.
1784
1785 2010-04-16  Richard Guenther  <rguenther@suse.de>
1786
1787         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
1788         (dump_gimple_stmt): Likewise.
1789
1790 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1791
1792         * recog.h (struct recog_data): New field is_operator.
1793         (struct insn_operand_data): New field is_operator.
1794         * recog.c (extract_insn): Set recog_data.is_operator.
1795         * genoutput.c (output_operand_data): Emit code to set the
1796         is_operator field.
1797         * reload.c (find_reloads): Use it rather than testing for an
1798         empty constraint string.
1799
1800         PR target/41514
1801         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
1802         If the previous insn is a cbranchsi4_insn with the same arguments,
1803         omit the compare instruction.
1804
1805         * config/arm/arm.md (addsi3_cbranch): If destination is a high
1806         register, inputs must be low registers and we need a low register
1807         scratch.  Handle alternative 2 like alternative 3.
1808
1809 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1810
1811         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1812         don't call get_addr on both.  If one expression is a VALUE and
1813         the other a REG, check VALUE's locs if the REG isn't among them.
1814
1815 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1816
1817         * config/sh/sh.h (sh_frame_pointer_required): New function.
1818         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1819         (flag_omit_frame_pointer) Set.
1820         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1821         (rounded_frame_size): Adjust size with outgoing_args_size.
1822         (sh_set_return_address): Must return from stack pointer.
1823         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1824         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1825         (ACCUMULATE_OUTGOING_ARGS): Define.
1826         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1827         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1828
1829 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1830
1831         PR target/43471
1832         * config/sh/sh.c (sh_legitimize_reload_address): Use
1833         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1834         Remove a unneeded check for offset_base.
1835
1836 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1837
1838         * configure: Regenerated.
1839
1840 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1841
1842         * config/s390/s390.c (s390_call_save_register_used): Switch back
1843         to HARD_REGNO_NREGS.
1844
1845 2010-04-15  Richard Guenther  <rguenther@suse.de>
1846
1847         * alias.c (alias_set_subset_of): Handle alias-set zero
1848         child properly.
1849
1850 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1851             Julian Brown  <julian@codesourcery.com>
1852
1853         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1854         alternatives according to use of high and low regs.
1855         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1856         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1857         optimizing for size on Thumb-2.
1858
1859 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1860
1861         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1862
1863 2010-04-15  Richard Guenther  <rguenther@suse.de>
1864
1865         * tree-ssa-structalias.c (struct variable_info): Add
1866         is_fn_info flag.
1867         (new_var_info): Initialize it.
1868         (dump_constraints): Support printing last added constraints.
1869         (debug_constraints): Adjust.
1870         (dump_constraint_graph): Likewise.
1871         (make_heapvar_for): Check for NULL cfun.
1872         (get_function_part_constraint): New function.
1873         (get_fi_for_callee): Likewise.
1874         (find_func_aliases): Properly implement IPA PTA constraints.
1875         (process_ipa_clobber): New function.
1876         (find_func_clobbers): Likewise.
1877         (insert_into_field_list_sorted): Remove.
1878         (create_function_info_for): Properly allocate vars for IPA mode.
1879         Do not use insert_into_field_list_sorted.
1880         (create_variable_info_for): Properly generate constraints for
1881         global vars in IPA mode.
1882         (dump_solution_for_var): Always dump the solution.
1883         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1884         (find_what_var_points_to): Adjust.
1885         (pt_solution_set): Change.
1886         (pt_solution_ior_into): New function.
1887         (pt_solution_empty_p): Export.
1888         (pt_solution_includes_global): Adjust.
1889         (pt_solution_includes_1): Likewise.
1890         (pt_solutions_intersect_1): Likewise.
1891         (dump_sa_points_to_info): Check some invariants.
1892         (solve_constraints): Move constraint dumping ...
1893         (compute_points_to_sets): ... here.
1894         (ipa_pta_execute): ... and here.
1895         (compute_may_aliases): Do not re-compute points-to info
1896         locally if IPA info is available.
1897         (ipa_escaped_pt): New global var.
1898         (ipa_pta_execute): Properly implement IPA PTA.
1899         * tree-into-ssa.c (dump_decl_set): Support dumping
1900         decls not in referenced-vars.
1901         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1902         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1903         (dump_points_to_solution): Likewise.
1904         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1905         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1906         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1907         (copy_decl_to_var): Copy DECL_PT_UID.
1908         (copy_result_decl_to_var): Likewise.
1909         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1910         (copy_node_stat): Copy it.
1911         * tree.h (DECL_PT_UID): New macro.
1912         (SET_DECL_PT_UID): Likewise.
1913         (DECL_PT_UID_SET_P): Likewise.
1914         (struct tree_decl_minimal): Add pt_uid member.
1915         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1916         (pt_solution_empty_p): Declare.
1917         (pt_solution_set): Adjust.
1918         (ipa_escaped_pt): Declare.
1919         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1920         * gimple-pretty-print.c (pp_points_to_solution): New function.
1921         (dump_gimple_call): Dump call clobber/use information.
1922         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1923         * tree-pass.h (TDF_ALIAS): New dump option.
1924         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1925         * doc/invoke.texi (-fipa-pta): Update documentation.
1926
1927 2010-04-15  Richard Guenther  <rguenther@suse.de>
1928
1929         * Makefile.in (OBJS-common): Add gimple-fold.o.
1930         (gimple-fold.o): New rule.
1931         * tree.h (maybe_fold_offset_to_reference,
1932         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1933         prototypes ...
1934         * gimple.h: ... here.
1935         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1936         may_propagate_address_into_dereference): Move prototypes ...
1937         * gimple.h: ... here.
1938         * tree-ssa-ccp.c (get_symbol_constant_value,
1939         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1940         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1941         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1942         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1943         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1944         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1945         gimplify_and_update_call_from_tree): Move ...
1946         * gimple-fold.c: ... here.  New file.
1947         (ccp_fold_builtin): Rename to ...
1948         (gimple_fold_builtin): ... this.
1949         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1950
1951 2010-04-15  Richard Guenther  <rguenther@suse.de>
1952
1953         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1954         fit_double_type, force_fit_type_double, add_double_with_sign,
1955         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1956         lrotate_double, rrotate_double, div_and_round_double): Move ...
1957         * double-int.c: ... here.
1958         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1959         add_double, neg_double, mul_double_with_sign, mul_double,
1960         lshift_double, rshift_double, lrotate_double, rrotate_double,
1961         div_and_round_double): Move prototypes ...
1962         * double-int.h: ... here.
1963
1964 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1965
1966         PR target/43742
1967         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1968         matching constraints to ensure inputs match the output.
1969
1970 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1971
1972         PR target/43742
1973         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1974         in an input-only operand.
1975
1976 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1977
1978         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1979         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1980         (double_int_negative_p): Convert to static inline function.
1981         * double-int.c (double_int_lshift, double_int_lshift): New functions.
1982         (double_int_negative_p): Remove.
1983         * tree.h (lshift_double, rshift_double):
1984         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1985         * fold-const.c (fold_convert_const_int_from_real,
1986         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1987         (lshift_double): Change type of arith argument to bool.
1988         (rshift_double): Change type of arith argument to bool. Correct
1989         comment.
1990         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1991
1992 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
1993
1994         PR target/21803
1995         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
1996         at the start and end of the then/else blocks, and omit them from the
1997         conversion.
1998         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
1999         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2000         (flow_find_head_matching_sequence): New function.
2001         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2002         * basic-block.h (flow_find_cross_jump,
2003         flow_find_head_matching_sequence): Declare functions.
2004
2005 2010-04-14  Jason Merrill  <jason@redhat.com>
2006
2007         PR c++/36625
2008         * c-common.c (attribute_takes_identifier_p): New fn.
2009         * c-common.h: Declare it.
2010
2011 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2012
2013         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2014         splitter condition.
2015         (*udivmod<mode>4): Ditto.
2016
2017 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2018
2019         * config/i386/i386.md (maxmin_int): Rename code attribute from
2020         maxminiprefix and update all users.
2021         (maxmin_float): Ditto from maxminfprefix.
2022         (logic): Ditto from logicprefix.
2023         (absneg_mnemonic): Ditto from absnegprefix.
2024         * config/i386/mmx.md: Update all users of maxminiprefix,
2025         maxminfprefix and logicprefix for rename.
2026         * config/i386/sse.md: Ditto.
2027         * config/i386/sync.md (sync_<code><mode>): Update for
2028         logicprefix rename.
2029
2030 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2031
2032         PR 42966
2033         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2034         warnings converted to errors.
2035
2036 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2037
2038         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2039         used insn_type variable.
2040         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2041         to avoid set-but-not-used warning.
2042
2043 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2044
2045         * df-core.c (df_ref_debug): Change format string placeholder
2046         from 0x%x to %#x.
2047         * dwarf2asm.c (dw2_asm_output_data_raw,
2048         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2049         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2050         * dwarf2out.c (output_cfi, output_cfi_directive,
2051         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2052         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2053         Ditto.
2054         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2055         * print-rtl.c (print_rtx): Ditto.
2056
2057 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2058
2059         PR middle-end/42694
2060         * builtins.c (expand_builtin_pow_root): New function to expand pow
2061         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2062         series of sqrt and cbrt calls under -ffast-math.
2063         (expand_builtin_pow): Call it.
2064
2065 2010-04-14  Michael Matz  <matz@suse.de>
2066
2067         PR tree-optimization/42963
2068         * tree-cfg.c (touched_switch_bbs): New static variable.
2069         (group_case_labels_stmt): New function broken out from ...
2070         (group_case_labels): ... here, use the above.
2071         (start_recording_case_labels): Allocate touched_switch_bbs.
2072         (end_recording_case_labels): Deallocate it, call
2073         group_case_labels_stmt.
2074         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2075
2076 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2077
2078         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2079         from insn template.
2080
2081 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2082
2083         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2084
2085 2010-04-13  Jan Hubicka  <jh@suse.cz>
2086
2087         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2088         of optimized out static functions.
2089         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2090         cost computation.  Also sanity check for overflows.
2091         (update_caller_keys): Update cgraph_edge_badness call; properly
2092         update fibheap and sanity check that it is up to date.
2093         (add_new_edges_to_heap): Update cgraph_edge_badness.
2094         (cgraph_decide_inlining_of_small_function): Likewise;
2095         add sanity checking that badness in heap is up to date;
2096         improve dumping of reason; Update badness of calls to the
2097         offline copy of function currently inlined; dump badness
2098         of functions not inlined because of unit growth limits.
2099
2100 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2101
2102         PR middle-end/32628
2103         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2104         because of sign-extension change when converting to sizetype here...
2105         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2106
2107         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2108         the folding to constants.  Remove redundant final conversion.
2109         (fold_binary) <associate>: Do not associate if the re-association of
2110         constants alone overflows.
2111         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2112         to the end of the list.
2113         (multiple_of_p) <COND_EXPR>: New case.
2114
2115 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2116
2117         * opt-functions.awk (opt_sanitized_name): New.
2118         (opt_enum): New.
2119         * optc-gen.awk: Use it
2120         * opth-gen.awk: Use it.
2121
2122 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2123
2124         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2125         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2126         children.  Call replace_uses_with_default_def_ssa_name to handle
2127         SSA_NAES on lhs.
2128
2129 2010-04-13  Michael Matz  <matz@suse.de>
2130
2131         PR middle-end/43730
2132         * builtins.c (expand_builtin_interclass_mathfn): Also create
2133         a register if the predicate doesn't match.
2134
2135 2010-04-13  Diego Novillo  <dnovillo@google.com>
2136
2137         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2138         * c-pch.c: Include timevar.h.
2139         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2140         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2141         * ggc-common.c: Include timevar.h.
2142         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2143         * timevar.def (TV_PCH_SAVE): Define.
2144         (TV_PCH_CPP_SAVE): Define.
2145         (TV_PCH_PTR_REALLOC): Define.
2146         (TV_PCH_PTR_SORT): Define.
2147         (TV_PCH_RESTORE): Define.
2148         (TV_PCH_CPP_RESTORE): Define.
2149
2150 2010-04-13  Michael Matz  <matz@suse.de>
2151
2152         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2153         into MINUS_EXPRs.
2154         (can_reassociate_p): New function.
2155         (break_up_subtract_bb, reassociate_bb): Use it.
2156
2157 2010-04-13  Richard Guenther  <rguenther@suse.de>
2158
2159         PR bootstrap/43737
2160         * builtins.c (c_readstr): Fix assert.
2161
2162 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2163
2164         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2165         when generating cltd insn.
2166
2167         (*ashl<mode>3_1): Remove special handling for register operand 2.
2168         (*ashlsi3_1_zext): Ditto.
2169         (*ashlhi3_1): Ditto.
2170         (*ashlhi3_1_lea): Ditto.
2171         (*ashlqi3_1): Ditto.
2172         (*ashlqi3_1_lea): Ditto.
2173         (*<shiftrt_insn><mode>3_1): Ditto.
2174         (*<shiftrt_insn>si3_1_zext): Ditto.
2175         (*<shiftrt_insn>qi3_1_slp): Ditto.
2176         (*<rotate_insn><mode>3_1): Ditto.
2177         (*<rotate_insn>si3_1_zext): Ditto.
2178         (*<rotate_insn>qi3_1_slp): Ditto.
2179
2180 2010-04-13  Richard Guenther  <rguenther@suse.de>
2181
2182         * tree-ssa-structalias.c (callused_id): Remove.
2183         (call_stmt_vars): New.
2184         (get_call_vi): Likewise.
2185         (lookup_call_use_vi): Likewise.
2186         (lookup_call_clobber_vi): Likewise.
2187         (get_call_use_vi): Likewise.
2188         (get_call_clobber_vi): Likewise.
2189         (make_transitive_closure_constraints): Likewise.
2190         (handle_const_call): Adjust to do per-call call-used handling.
2191         (handle_pure_call): Likewise.
2192         (find_what_var_points_to): Remove general callused handling.
2193         (init_base_vars): Likewise.
2194         (init_alias_vars): Initialize call_stmt_vars.
2195         (compute_points_to_sets): Process call-used and call-clobbered
2196         vars for call statements.
2197         (delete_points_to_sets): Free call_stmt_vars.
2198
2199 2010-04-13  Richard Guenther  <rguenther@suse.de>
2200
2201         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2202         Only add RW dependence for dependence distance zero.
2203         Adjust maximal vectorization factor according to dependences.
2204         Move alignment handling ...
2205         (vect_find_same_alignment_drs): ... here.  New function.
2206         (vect_analyze_data_ref_dependences): Adjust.
2207         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2208         (vect_analyze_data_refs): Adjust minimal vectorization factor
2209         according to data references.
2210         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2211         dependences before determining the vectorization factor.
2212         Analyze alignment after determining the vectorization factor.
2213         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2214         dependences before alignment.
2215         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2216         Adjust prototype.
2217         (vect_analyze_data_refs): Likewise.
2218         (MAX_VECTORIZATION_FACTOR): New define.
2219
2220 2010-04-13  Duncan Sands  <baldrick@free.fr>
2221
2222         * except.h (lang_eh_type_covers): Remove.
2223         * except.c (lang_eh_type_covers): Likewise.
2224
2225 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2226             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2227
2228         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2229         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2230         UNITS_PER_LONG where it is ABI relevant.
2231         (s390_return_addr_rtx): Likewise.
2232         (s390_back_chain_rtx): Likewise.
2233         (s390_frame_area): Likewise.
2234         (s390_frame_info): Likewise.
2235         (s390_initial_elimination_offset): Likewise.
2236         (save_gprs): Likewise.
2237         (s390_emit_prologue): Likewise.
2238         (s390_emit_epilogue): Likewise.
2239         (s390_function_arg_advance): Likewise.
2240         (s390_function_arg): Likewise.
2241         (s390_va_start): Likewise.
2242         (s390_gimplify_va_arg): Likewise.
2243         (s390_function_profiler): Likewise.
2244         (s390_optimize_prologue): Likewise.
2245         (s390_rtx_costs): Likewise.
2246         (s390_secondary_reload): Likewise.
2247         (s390_promote_function_mode): Likewise.
2248         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2249         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2250         registers available.
2251         (s390_unwind_word_mode): New function.
2252         (s390_function_value): Split 64 bit values into register pair if
2253         used as return value.
2254         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2255         function call parameters.  Handle parallels.
2256         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2257         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2258         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2259         (s390_expand_setmem): Remove unused variable src_addr.
2260         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2261         deal with 64 bit registers.
2262         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2263         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2264         (UNITS_PER_LONG): New macro.
2265         * libjava/include/s390-signal.h: Define extended ucontext
2266         structure containing the upper halfs of the 64 bit registers.
2267
2268 2010-04-13  Simon Baldwin  <simonb@google.com>
2269
2270         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2271
2272 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2273
2274         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2275         rvalue on the RHS if the LHS is of a non-renamable type.
2276         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2277
2278 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2279
2280         * gcc.c (cc1_options): Handle -iplugindir before processing
2281         the cc1 spec. Only add -iplugindir once.
2282         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2283         found.
2284         * common.opt (iplugindir): Remove `Separate' property, initialize.
2285         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2286         option.
2287         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2288         (distclean): Remove plugin dir.
2289         * doc/invoke.texi: Document -iplugindir.
2290
2291 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2292
2293         * doc/plugins.texi (Loading Plugins): Document short
2294         -fplugin=foo option.
2295         (Plugin API): Mention default_plugin_dir_name function.
2296
2297         * gcc.c (find_file_spec_function): Add new declaration.
2298         (static_spec_func): Use it for "find-file".
2299         (find_file_spec_function): Add new function.
2300         (cc1_options): Add -iplugindir option if -fplugin* options found.
2301
2302         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2303
2304         * plugin.c (add_new_plugin): Updated comment, and handle short
2305         plugin name.
2306         (default_plugin_dir_name): Added new function.
2307
2308         * common.opt (iplugindir): New option to set the plugin directory.
2309
2310 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2311
2312         * config/i386/i386.md (any_rotate): New code iterator.
2313         (rotate_insn): New code attribute.
2314         (rotate): Ditto.
2315         (SWIM124): New mode iterator.
2316         (<rotate_insn>ti3): New expander.
2317         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2318         any_rotate code iterator.
2319         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2320         using any_rotate code iterator and SWIM124 mode iterator.
2321         (ix86_rotlti3): New insn_and_split pattern.
2322         (ix86_rotrti3): Ditto.
2323         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2324         ix86_rotl{di,ti}3 patterns.
2325         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2326         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2327         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2328         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2329         code iterator and SWI mode iterator.
2330         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2331         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2332         code iterator.
2333         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2334         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2335         (bswap rotatert splitter): Add splitter.
2336         (bswap splitter): Macroize splitter using any_rotate code iterator.
2337         Add insn predicate to split only for TARGET_USE_XCHGB or when
2338         optimizing function for size.
2339
2340 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2341
2342         * config/pa/pa.c (emit_move_sequence): Remove use of
2343         deleted variable flag_argument_noalias.
2344
2345 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2346
2347         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2348         configurations.
2349         Add to unsupported targets list.
2350         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2351         sparc*-sun-solaris2.[567]* from target lists.
2352         * configure: Regenerate.
2353         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2354         removal.
2355         Remove Solaris 7 patch references.
2356         (Specific, sparc-sun-solaris2.7): Removed.
2357         (sparc-sun-solaris2*): Update Solaris 7 example.
2358         (sparc64-*-solaris2*): Likewise.
2359
2360 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2361
2362         * config.build (alpha*-dec-osf4*): Remove.
2363         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2364         of obsolete configurations.
2365         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2366         support.
2367         * config/alpha/t-osf4: Renamed to ...
2368         * config/alpha/t-osf5: ... this.
2369         * config/alpha/osf.h: Renamed to ...
2370         * config/alpha/osf5.h: ... this.
2371         Merged old osf5.h contents.
2372         Update comments.
2373         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2374         (EXTRA_SPECS): Removed.
2375         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2376         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2377         Document that.
2378
2379 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2380
2381         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2382
2383 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2384
2385         PR/43702
2386         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2387         __thiscall convention.
2388
2389 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2390
2391         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2392         orig_base.
2393         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2394
2395 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2396
2397         * function.c (assign_parms_initialize_all): Add unused attribute
2398         to fntype.
2399
2400 2010-04-12  Richard Guenther  <rguenther@suse.de>
2401
2402         * gsstruct.def (GSS_CALL): New.
2403         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
2404         * gimple.h: Include tree-ssa-alias.h.
2405         (struct gimple_statement_call): New.
2406         (union gimple_statement_struct_d): Add gimple_call member.
2407         (gimple_call_reset_alias_info): Declare.
2408         (gimple_call_use_set): New function.
2409         (gimple_call_clobber_set): Likewise.
2410         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
2411         * gimple.c (gimple_call_reset_alias_info): New function.
2412         (gimple_build_call_1): Call it.
2413         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2414         * tree-inline.c (remap_gimple_stmt): Likewise.
2415         (expand_call_inline): Remove callused handling.
2416         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
2417         * tree-dfa.c (dump_variable): Likewise.
2418         * tree-parloops.c (parallelize_loops): Likewise.
2419         * tree-ssa.c (init_tree_ssa): Likewise.
2420         (delete_tree_ssa): Likewise.
2421         * tree-flow-inline.h (is_call_used): Remove.
2422         * tree-flow.h (struct gimple_df): Remove callused member.
2423         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
2424         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
2425         (ref_maybe_used_by_call_p_1): Simplify.
2426         (call_may_clobber_ref_p_1): Likewise.
2427         * tree-ssa-structalias.c (compute_points_to_sets): Set
2428         the call stmt used and clobbered sets.
2429         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
2430         (find_tail_calls): Verify the tail call.
2431
2432 2010-04-12  Richard Guenther  <rguenther@suse.de>
2433
2434         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
2435         single-iteration always-inline inlining.
2436         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
2437         (cgraph_decide_inlining): Do not handle always-inline specially.
2438         (try_inline): Remove always-inline cycle detection special case.
2439         Do not recurse on always-inlines.
2440         (cgraph_early_inlining): Do not iterate if not optimizing.
2441         (cgraph_gate_early_inlining): remove.
2442         (pass_early_inline): Run unconditionally.
2443         (gate_cgraph_decide_inlining): New function.
2444         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
2445         not inlining or optimizing.
2446         (cgraph_decide_inlining_of_small_functions): Also consider
2447         always-inline functions.
2448         (cgraph_default_inline_p): Return true for nodes which should
2449         disregard inline limits.
2450         (estimate_function_body_sizes): Assume zero size and time for
2451         nodes which are marked as disregarding inline limits.
2452         (cgraph_decide_recursive_inlining): Do not perform recursive
2453         inlining on always-inline nodes.
2454
2455 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2456
2457         PR bootstrap/43699
2458         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2459         for exprs satisfying handled_component_p.
2460
2461 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2462
2463         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2464         non-constant aggregate elements.
2465
2466         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2467         is a real initialization.
2468
2469 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2470
2471         PR c/36774
2472         * c-decl.c (start_function): Move forward check for nested function.
2473
2474 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2475
2476         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2477         * config/sh/sh.c: Include reload.h.
2478         (sh_legitimize_reload_address): New.
2479         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2480         sh_legitimize_reload_address.
2481
2482 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2483
2484         * config/sh/sh.md (*movqi_pop): New insn pattern.
2485         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2486
2487 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2488
2489         * config/i386/i386.md (any_shiftrt): New code iterator.
2490         (shiftrt_insn): New code attribute.
2491         (shiftrt): Ditto.
2492         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2493         using any_shiftrt code iterator.
2494         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2495         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2496         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2497         pattern from corresponding peephole2 patterns.
2498         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2499         using any_shiftrt code iterator.
2500         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2501         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2502         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2503         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2504         *{ashr,lshr}<mode>3_cmp_zext.
2505         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2506
2507 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2508
2509         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2510         scratch register.
2511         (*lshr<mode>3_cconly): Ditto.
2512
2513 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2516         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2517         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2518         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2519         DWI mode iterator.
2520         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2521         from corresponding peephole2 patterns.
2522         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2523         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2524         and *lshrdi3_1_rex64 using SWI mode iterator.
2525         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2526         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2527         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2528         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2529         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2530         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2531         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2532         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2533         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2534         SWI mode iterator.
2535
2536 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2537
2538         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2539         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2540         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2541         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2542         DWI mode iterator.
2543         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2544         from corresponding peephole2 patterns.
2545         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2546         (ashrsi3_cvt): Rename from ashrsi3_31.
2547         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2548         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2549         and x86_64_shift_adj_3 using SWI48 mode iterator.
2550         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2551         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2552         and *ashrdi3_1_rex64 using SWI mode iterator.
2553         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2554         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2555         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2556         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2557         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2558         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
2559         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
2560         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
2561         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
2562         SWI mode iterator.
2563         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
2564         * config/i386/i386.c (ix86_split_ashr): Update for renamed
2565         x86_shift<mode>_adj_3 expanders.
2566
2567 2010-04-10  Wei Guozhi  <carrot@google.com>
2568
2569         PR target/42601
2570         * config/arm/arm.c (arm_pic_static_addr): New function.
2571         (legitimize_pic_address): Call arm_pic_static_addr when it detects
2572         a static symbol.
2573         (arm_output_addr_const_extra): Output expression for new pattern.
2574         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
2575
2576 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
2577
2578         * ira-costs.c (record_reg_classes): Ignore alternatives that are
2579         not enabled.
2580
2581         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
2582         * web.c: Include "insn-config.h" and "recog.h".
2583         (union_match_dups): New function.
2584         (web_main): Call it.
2585         (union_defs): Don't try to recognize match_dups.
2586
2587         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
2588         if doing so would replace the entire pattern.
2589
2590 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2591
2592         PR target/43707
2593         PR target/43709
2594         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
2595         and splitter pattern.  Change splitter operand 1 predicate to
2596         nonmemory_operand.
2597
2598 2010-04-09  Martin Jambor  <mjambor@suse.cz>
2599
2600         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
2601         lattices are addresses of CONST_DECLs with the same initial value.
2602         (ipcp_print_all_lattices): Print values of CONST_DECLs.
2603         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2604
2605 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2606             Bernd Schmidt  <bernds@codesourcery.com>
2607
2608         * loop-invariant.c (replace_uses): New static function.
2609         (move_invariant_reg): Use it to ensure we can replace the uses.
2610
2611 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2612
2613         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
2614         function template.
2615         (picochip_override_options): Enable section anchors only above -O1.
2616         (picochip_reorg): Fixed a couple of build warnings.
2617
2618 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2619
2620         * configure.ac (plugin -rdynamic test): Log result.
2621         * configure: Regenerate.
2622         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
2623         (RDYNAMIC_SPEC): Define.
2624         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
2625
2626 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2627
2628         * configure.ac: Determine Sun ld version numbers.
2629         (comdat_group): Restrict GNU ld version checks to gld.
2630         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
2631         (enable_comdat): Support --enable-comdat.
2632         * configure: Regenerate.
2633         * doc/install.texi (Configuration): Document --enable-comdat.
2634
2635 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2636
2637         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
2638         * config/sol2-gld.h: ... here.
2639         * config.gcc (sparc*-*-solaris2*): Reflect this.
2640         (i[34567]86-*-solaris2*): Use it.
2641
2642 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
2643
2644         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
2645         setup_clocks_p.
2646         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
2647
2648 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2649
2650         PR 42965
2651         * diagnostic.c (diagnostic_initialize): Initialize
2652         some_warnings_are_errors.
2653         (diagnostic_finish): New.
2654         (diagnostic_action_after_output): Call it before exiting.
2655         (diagnostic_report_diagnostic): Do not print message here. Set
2656         some_warnings_are_errors.
2657         * diagnostic.h (diagnostic_context): Delete
2658         issue_warnings_are_errors_message. Add some_warnings_are_errors.
2659         (diagnostic_finish): Declare.
2660         * toplev.c (toplev_main): Call it before exit.
2661
2662 2010-04-09  Jason Merrill  <jason@redhat.com>
2663
2664         PR c++/42623
2665         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
2666         for incomplete type.
2667
2668         PR c++/41788
2669         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
2670         based on a warning flag.
2671
2672 2010-04-09  Richard Guenther  <rguenther@suse.de>
2673
2674         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2675
2676 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2677
2678         PR bootstrap/43684
2679         * varasm.c (default_assemble_visibility): Wrap vars that are
2680         set, but unused, by targets without GAS.
2681         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
2682         Remove set, but unused, vars.
2683         (rs6000_legitimize_tls_address): Likewise.
2684         (altivec_expand_dst_builtin): Likewise.
2685         * config/darwin.c (machopic_classify_symbol): Likewise.
2686         (machopic_indirection_name): Likewise.
2687
2688 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2689
2690         * config/i386/i386.md (DWI): New mode iterator.
2691         (S): New mode attribute.
2692         (shift_operand): Ditto.
2693         (shift_immediate_operand): Ditto.
2694         (ashl_input_operand): Ditto.
2695         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
2696         using SDWIM mode iterator.
2697         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2698         pattern from *ashl{di,ti}3_1 and corresponding splitters using
2699         DWI mode iterator.
2700         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
2701         from corresponding peephole2 patterns.
2702         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
2703         and x86_64_shift_adj_1 using SWI48 mode iterator.
2704         (x86_shift<mode>_adj_2): Ditto.
2705         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
2706         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
2707         using SWI48 mode iterator.
2708         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
2709         *ashldi3_cmp_rex64 using SWI mode iterator.
2710         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
2711         *ashldi3_cconly_rex64 using SWI mode iterator.
2712         * config/i386/i386.c (ix86_split_ashl): Update for renamed
2713         x86_shift<mode>_adj_{1,2}.
2714         (ix86_split_ashr): Ditto.
2715         (ix86_split_lshr): Ditto.
2716
2717 2010-04-09  Richard Guenther  <rguenther@suse.de>
2718
2719         * target.h (builtin_conversion): Pass in input and output types.
2720         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
2721         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
2722         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
2723         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
2724
2725         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
2726         Handle AVX modes.
2727         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
2728
2729 2010-04-09  Richard Guenther  <rguenther@suse.de>
2730
2731         PR target/43152
2732         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
2733
2734 2010-04-09  Richard Guenther  <rguenther@suse.de>
2735
2736         * tree-vectorizer.h (struct _stmt_vec_info): Document
2737         that vectype is the type of the LHS.
2738         (supportable_widening_operation, supportable_narrowing_operation):
2739         Get both input and output vector types as arguments.
2740         (vect_is_simple_use_1): Declare.
2741         (get_same_sized_vectype): Likewise.
2742         * tree-vect-loop.c (vect_determine_vectorization_factor):
2743         Set STMT_VINFO_VECTYPE to the vector type of the def.
2744         (vectorizable_reduction): Adjust.
2745         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
2746         Adjust.  Specify the output vector type.
2747         (vect_pattern_recog_1): Adjust.
2748         * tree-vect-stmts.c (get_same_sized_vectype): New function.
2749         (vectorizable_call): Adjust.
2750         (vectorizable_conversion): Likewise.
2751         (vectorizable_operation): Likewise.
2752         (vectorizable_type_demotion): Likewise.
2753         (vectorizable_type_promotion): Likewise.
2754         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
2755         the def.
2756         (vect_is_simple_use_1): New function.
2757         (supportable_widening_operation): Get both input and output
2758         vector types.
2759         (supportable_narrowing_operation): Likewise.
2760         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
2761
2762 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
2763
2764         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
2765         __thiscall and _thiscall as predefined macros.
2766         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
2767         thiscall attribute handling.
2768         (ix86_comp_type_attributes): Likewise.
2769         (ix86_function_regparm): Likewise.
2770         (ix86_return_pops_args): Likewise.
2771         (init_cumulative_args): Likewise.
2772         (find_drap_reg): Likewise.
2773         (ix86_static_chain): Likewise.
2774         (x86_this_parameter): Likewise.
2775         (x86_output_mi_thunk): Likewise.
2776         (ix86_attribute_table): Add description for thiscall attribute.
2777         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
2778         * doc/extend.texi: Add documentation for thiscall.
2779
2780 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2781
2782         PR c++/28584
2783         * c.opt (Wint-to-pointer-cast): Available in C++.
2784         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
2785
2786 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2787
2788         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
2789         * calls.c (expand_call): Pass the function type to aggregate_value_p.
2790         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
2791         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
2792         function type instead.  Reorder and simplify checks.
2793
2794         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
2795
2796 2010-04-08  Jing Yu  <jingyu@google.com>
2797             Zdenek Dvorak  <ook@ucw.cz>
2798
2799         PR tree-optimization/42720
2800         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
2801         loop unswitch conditions here from ...
2802         (tree_unswitch_single_loop): ... here.
2803
2804 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2805
2806         * tree-if-conv.c: Fix comments and simplify logic.
2807
2808 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2809
2810         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2811         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2812         (main_tree_if_conversion): Update call to tree_if_conversion.
2813
2814 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2815
2816         PR 42485
2817         * doc/invoke.texi (-b,-V): Delete.
2818         * doc/tm.texi: Do not mention -b.
2819         * gcc.c (display_help): Delete -b and -V.
2820         (process_command): Delete -b and -V.
2821         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2822
2823 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2824             Wolfgang Gellerich  <gellerich@de.ibm.com>
2825
2826         Implement target hook for loop unrolling
2827         * target.h (loop_unroll_adjust): Add a new target hook function.
2828         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2829         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2830         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2831         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2832         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2833         target hook.
2834         (decide_unroll_stupid): Likewise.
2835
2836 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2837
2838         PR target/43643
2839         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2840
2841 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2842
2843         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2844         (Specific, *-*-solaris2*): Likewise.
2845         Don't prefer Sun as over GNU as.
2846
2847 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2848
2849         * config/s390/s390.c (override_options): Adjust the z10
2850           defaults for max-unroll-times, max-completely-peeled-insns
2851           and max-completely-peel-times.
2852
2853 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2854
2855         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2856         instructions for z10.
2857         (s390_expand_setmem): Likewise.
2858         (s390_expand_cmpmem): Likewise.
2859
2860 2010-04-08  Richard Guenther  <rguenther@suse.de>
2861
2862         PR tree-optimization/43679
2863         * tree-ssa-pre.c (eliminate): Only propagate copies.
2864
2865 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2866
2867         PR bootstrap/43681
2868         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2869         set but not used variable warning.
2870
2871 2010-04-08  Wei Guozhi  <carrot@google.com>
2872
2873         PR target/41653
2874         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2875         (arm_size_rtx_costs): Call the new function when optimized for size.
2876
2877 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2878
2879         PR debug/43670
2880         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2881         op0 is not a MEM, just return NULL instead of assertion
2882         failure.
2883         (discover_nonconstant_array_refs): Don't walk debug stmts.
2884
2885 2010-04-08  Doug Kwan  <dougkwan@google.com>
2886
2887         * configure.ac: Recognize gold and do not use its version number
2888         to test ld features.
2889         * configure: Regenerate.
2890
2891 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2892
2893         PR middle-end/40815
2894         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2895         (negate_value): Move code to push elements to broken_up_substracts ...
2896         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2897         negative pair to plus_negates.
2898         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2899
2900 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2901
2902         * doc/install.texi (Configuration): Move description of
2903         --enable-lto, --with-libelf*, --enable-gold from Java section to
2904         general section.
2905
2906         * doc/generic.texi (Working with declarations)
2907         (Function Properties, C and C++ Trees): Fix typos.
2908         * doc/sourcebuild.texi (Top Level): Likewise.
2909
2910 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2911
2912         PR c/18624
2913         * tree.h (DECL_READ_P): Define.
2914         (struct tree_decl_common): Add decl_read_flag.
2915         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2916         a set but not used warning.
2917         (merge_decls): Merge DECL_READ_P flag.
2918         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2919         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2920         * c-common.c (handle_used_attribute, handle_unused_attribute):
2921         Likewise.
2922         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2923         New prototypes.
2924         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2925         New functions.
2926         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2927         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2928         c_parser_binary_expression, c_parser_cast_expression,
2929         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2930         Call default_function_array_read_conversion instead of
2931         default_function_array_conversion where needed.
2932         (c_parser_unary_expression, c_parser_conditional_expression,
2933         c_parser_postfix_expression_after_primary, c_parser_initelt):
2934         Likewise.  Call mark_exp_read where needed.
2935         (c_parser_statement_after_labels, c_parser_asm_operands,
2936         c_parser_typeof_specifier, c_parser_sizeof_expression,
2937         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2938         where needed.
2939         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2940         New.
2941         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2942         (warn_unused_but_set_parameter): Default to warn_unused
2943         && extra_warnings.
2944         * doc/invoke.texi: Document -Wunused-but-set-variable and
2945         -Wunused-but-set-parameter.
2946
2947         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2948         used count variable.
2949         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2950         when operandN variables aren't used in the body of the expander
2951         or splitter.
2952         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2953         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2954         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2955         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2956         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2957         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2958         * tree.c (PROCESS_ARG): Likewise.
2959
2960 2010-04-07  Simon Baldwin  <simonb@google.com>
2961
2962         * diagnostic.h (diagnostic_override_option_index): New macro to
2963         set a diagnostic's option_index.
2964         * c-tree.h (c_cpp_error): Add warning reason argument.
2965         * opts.c (_warning_as_error_callback): New.
2966         (register_warning_as_error_callback): Store callback for
2967         warnings enabled via enable_warning_as_error.
2968         (enable_warning_as_error): Call callback, minor code tidy.
2969         * opts.h (register_warning_as_error_callback): Declare.
2970         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2971         response to -Werror=.
2972         (c_common_init_options): Register warning_as_error_callback in opts.c.
2973         * common.opt: Add -Wno-cpp option.
2974         * c-common.c (struct reason_option_codes_t): Map cpp warning
2975         reason codes to gcc option indexes.
2976         * (c_option_controlling_cpp_error): New function, lookup the gcc
2977         option index for a cpp warning reason code.
2978         * (c_cpp_error): Add warning reason argument, call
2979         c_option_controlling_cpp_error for diagnostic_override_option_index.
2980         * doc/invoke.texi: Document -Wno-cpp.
2981
2982 2010-04-07  Richard Guenther  <rguenther@suse.de>
2983
2984         * ipa-reference.c (mark_load): Use get_base_address.
2985         (mark_store): Likewise.
2986
2987         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2988         inserting GIMPLE_NOPs into the IL.
2989         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2990         Explicitly strip handled components and indirect references.
2991
2992         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
2993         folding address expressions.
2994         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
2995         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
2996         operand_equal_p to compare decls.
2997         (ptr_deref_may_alias_decl_p): Likewise.
2998         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
2999         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3000         Handle reversed comparison ops.
3001         * tree-sra.c (asm_visit_addr): Use get_base_address.
3002         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3003         * ipa-reference.c (mark_address): Use get_base_address.
3004
3005 2010-04-07  Richard Guenther  <rguenther@suse.de>
3006
3007         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3008         Propagate constants everywhere.
3009
3010 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3011
3012         PR debug/43516
3013         * tree.c (MAX_INT_CACHED_PREC): Define.
3014         (nonstandard_integer_type_cache): New array.
3015         (build_nonstandard_integer_type): Cache results for precision
3016         <= MAX_INT_CACHED_PREC.
3017
3018 2010-04-07  Richard Guenther  <rguenther@suse.de>
3019
3020         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3021         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3022         * common.opt: Likewise.
3023         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3024         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3025         (nonoverlapping_memrefs_p): Likewise.
3026         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3027         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3028         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3029         OPT_fargument_noalias_global for backward compatibility.
3030
3031 2010-04-07  Richard Guenther  <rguenther@suse.de>
3032
3033         PR tree-optimization/43270
3034         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3035         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3036         * tree-ssa-pre.c (phi_translate_1): Adjust.
3037         (fully_constant_expression): Split out vn_reference handling to ...
3038         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3039         Fold reads from constant strings.
3040         (vn_reference_lookup): Handle fully constant references.
3041         (vn_reference_lookup_pieces): Likewise.
3042         * Makefile.in (expmed.o-warn): Add -Wno-error.
3043
3044 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3045
3046         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3047
3048 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3049
3050         PR driver/41594
3051         * gcc.c: Add -static-libstdc++ to list of recognized options.
3052
3053 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3054
3055         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3056
3057 2010-04-07  Richard Guenther  <rguenther@suse.de>
3058
3059         PR middle-end/42617
3060         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3061         bases build simple mem attributes to retain points-to information.
3062
3063 2010-04-07  Richard Guenther  <rguenther@suse.de>
3064
3065         PR middle-end/42617
3066         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3067         preserve points-to related information.
3068
3069 2010-04-07  Richard Guenther  <rguenther@suse.de>
3070
3071         PR middle-end/42617
3072         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3073         discard plain indirect references.
3074         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3075         * tree.c (tree_nop_conversion): Likewise.
3076
3077 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3078
3079         PR debug/43628
3080         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3081
3082 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3083
3084         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3085         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3086
3087 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3088
3089         * tree-if-conv.c: Fix indentation and comments.
3090
3091 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3092
3093         * tree-if-conv.c: Sort static functions in topological order.
3094
3095 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3096
3097         * tree-if-conv.c: Fix indentation and comments.
3098
3099 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3100
3101         PR middle-end/43519
3102         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3103         lang_hooks.types.type_for_size instead of
3104         build_nonstandard_integer_type.
3105         When converting an unsigned type to signed, double its precision.
3106         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3107         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3108         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3109         use lb <= ub.
3110
3111 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3112
3113         PR middle-end/43519
3114         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3115         POINTER_PLUS_EXPR for pointer types.
3116
3117 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3118
3119         PR middle-end/43519
3120         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3121         * graphite-clast-to-gimple.c: Include langhooks.h.
3122         (max_signed_precision_type): New.
3123         (max_precision_type): Takes two types as arguments.
3124         (precision_for_value): New.
3125         (precision_for_interval): New.
3126         (gcc_type_for_interval): New.
3127         (gcc_type_for_value): New.
3128         (gcc_type_for_clast_term): New.
3129         (gcc_type_for_clast_red): New.
3130         (gcc_type_for_clast_bin): New.
3131         (gcc_type_for_clast_expr): Split up into several functions.
3132         (gcc_type_for_clast_eq): Rewritten.
3133         (compute_bounds_for_level): New.
3134         (compute_type_for_level_1): New.
3135         (compute_type_for_level): New.
3136         (gcc_type_for_cloog_iv): Removed.
3137         (gcc_type_for_iv_of_clast_loop): Rewritten.
3138         (graphite_create_new_loop): Compute the lower and upper bound types
3139         with gcc_type_for_clast_expr.
3140         (graphite_create_new_loop_guard): Same.
3141         (find_cloog_iv_in_expr): Removed.
3142         (compute_cloog_iv_types_1): Removed.
3143         (compute_cloog_iv_types): Removed.
3144         (gloog): Do not call compute_cloog_iv_types.
3145         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3146         GBB_CLOOG_IV_TYPES.
3147         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3148         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3149         (GBB_CLOOG_IV_TYPES): Removed.
3150
3151 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3152
3153         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3154         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3155         (detect_commutative_reduction): Same.
3156
3157 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3158
3159         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3160         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3161         argument.
3162         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3163         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3164         (rewrite_commutative_reductions_out_of_ssa): Same.
3165         * passes.c (execute_function_todo): Call verify_ssa for every pass
3166         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3167         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3168         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3169         with an extra argument.
3170         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3171         verify_ssa only when the extra argument is true.
3172         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3173         with an extra argument.
3174         (tree_transform_and_unroll_loop): Same.
3175
3176 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3177
3178         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3179         for all the passes of the LNO having LOOP_CLOSED_SSA.
3180         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3181         * tree-loop-distribution.c (pass_loop_distribution): Same.
3182         * tree-pass.h (TODO_verify_loops): Removed.
3183         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3184         (pass_lim): Same.
3185         (pass_tree_unswitch): Same.
3186         (pass_predcom): Same.
3187         (pass_vectorize): Same.
3188         (pass_linear_transform): Same.
3189         (pass_graphite_transforms): Same.
3190         (pass_iv_canon): Same.
3191         (pass_complete_unroll): Same.
3192         (pass_complete_unrolli): Same.
3193         (pass_parallelize_loops): Same.
3194         (pass_loop_prefetch): Same.
3195         (pass_iv_optimize): Same.
3196
3197 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3198
3199         PR middle-end/32824
3200         * passes.c (init_optimization_passes): Move pass_lim before
3201         pass_copy_prop and pass_dce_loop.
3202
3203 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3204
3205         PR target/43667
3206         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3207         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3208         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3209         MULTI_* defines for 4 argument vpermil2p* builtins.
3210
3211 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3212
3213         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3214         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3215         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3216         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3217         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3218         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3219         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3220         Use x86_maybe_negate_const_int to output insn mnemonic.
3221         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3222         check from instruction predicate.  Update comments.
3223         * config/i386/sync.md (sync_add<mode>): Use
3224         x86_maybe_negate_const_int to output insn mnemonic.
3225
3226 2010-04-06  Jan Hubicka  <jh@suse.cz>
3227
3228         PR tree-optimization/42906
3229         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3230         IGNORE_SELF argument.  Set visited_control_parents for fully
3231         processed BBs.
3232         (find_obviously_necessary_stmts): Update call of
3233         mark_control_dependent_edges_necessary.
3234         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3235
3236 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3237
3238         * config/i386/i386.md: Remove comment about 'e' and 'E'
3239         operand modifier.
3240
3241 2010-04-06  Richard Guenther  <rguenther@suse.de>
3242
3243         PR tree-optimization/43627
3244         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3245         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3246         not varying.
3247
3248 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3249
3250         * BASE-VER: Change to 4.6.0.
3251
3252         PR target/43638
3253         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3254         handling.
3255
3256 2010-04-06  Richard Guenther  <rguenther@suse.de>
3257
3258         PR middle-end/43661
3259         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3260
3261 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3262
3263         * doc/invoke.texi (Optimize Options): Document that LTO
3264         won't remove object access purely due to incompatible
3265         declarations.
3266
3267 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3268
3269         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3270         Initialize variable.
3271
3272 2010-04-03  Richard Guenther  <rguenther@suse.de>
3273
3274         PR middle-end/42509
3275         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3276         require a non-NULL MEM_OFFSET.
3277
3278 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3279
3280         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3281         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3282         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3283         config/alpha/predicates.md, config/arm/arm.md,
3284         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3285         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3286         config/darwin9.h, config/darwin.c, config/darwin.h,
3287         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3288         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3289         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3290         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3291         config/mips/mips.md, config/mn10300/mn10300.c,
3292         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3293         config/rs6000/aix.h, config/rs6000/dfp.md,
3294         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3295         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3296         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3297         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3298         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3299         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3300         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3301         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3302         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3303         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3304         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3305         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3306         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3307         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3308         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3309         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3310         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3311         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3312         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3313         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3314         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3315         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3316         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3317         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3318         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3319         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3320         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3321         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3322         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3323         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3324         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3325         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3326         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3327         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3328         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3329         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3330
3331 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3332
3333         PR other/43620
3334         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3335         * aclocal.m4: Regenerate.
3336
3337 2010-04-02  Richard Guenther  <rguenther@suse.de>
3338
3339         PR tree-optimization/43629
3340         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3341         if we have seen a constant value.
3342
3343 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3344
3345         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3346
3347 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3348
3349         PR target/43469
3350         * arm.c (legitimize_tls_address): Adjust call to
3351         gen_tls_load_dot_plus_four.
3352         (arm_note_pic_base): New function.
3353         (arm_cannot_copy_insn_p): Use it.
3354         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3355         constraint.
3356
3357 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3358
3359         PR bootstrap/43531
3360
3361         Revert:
3362         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3363
3364         * Makefile.in ($(out_object_file)): Depend on
3365         gt-$(basename $(notdir $(out_file))).h.
3366
3367 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3368
3369         * config.gcc (lm32-*-rtems*): Add t-lm32.
3370
3371 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3372
3373         * config.gcc: Add lm32-*-rtems*.
3374         * config/lm32/rtems.h: New file.
3375
3376 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3377
3378         PR target/42609
3379         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3380
3381 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3382
3383         * dwarf2out.c (output_compilation_unit_header): For
3384         -gdwarf-4 use version 4 instead of version 3.
3385         (output_line_info): For version 4 and above emit additional
3386         maximum ops per insn header field.
3387         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3388
3389         * dwarf2out.c (is_c_family, is_java): Remove.
3390         (lower_bound_default): New function.
3391         (add_bound_info, gen_descr_array_type_die): Use it.
3392
3393 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3394
3395         PR debug/43325
3396         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3397         re-declaration when it happens in a function.
3398
3399 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
3400
3401         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
3402         (cgraph_remove_function_insertion_hook): Same.
3403         (cgraph_call_function_insertion_hooks): Same.
3404
3405 2010-04-01  Richard Guenther  <rguenther@suse.de>
3406
3407         PR middle-end/43614
3408         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
3409         and TREE_THIS_VOLATILE.
3410         (copy_ref_info): Likewise.
3411         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
3412         * tree.c (build6_stat): Ignore side-effects of all but arg5
3413         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
3414         TARGET_MEM_REF.
3415
3416 2010-04-01  Richard Guenther  <rguenther@suse.de>
3417
3418         PR tree-optimization/43607
3419         * ipa-type-escape.c (check_call): Do not access non-existing
3420         arguments.
3421
3422 2010-04-01  Richard Guenther  <rguenther@suse.de>
3423
3424         PR middle-end/43602
3425         Revert
3426         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3427         &