OSDN Git Service

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