OSDN Git Service

Add NIOS2 support. Code from SourceyG++.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-04-26  Jason Merrill  <jason@redhat.com>
2
3         * c.opt (-fstrict-enums): New.
4         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
5
6 2010-05-03  David Ung <davidu@mips.com>
7             James E. Wilson  <wilson@codesourcery.com>
8
9         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
10         emit the trap instruction before the divide for TUNE_74K.
11
12 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
13
14         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
16         based on the above, for new target hook.
17
18         * hooks.c (hook_bool_mode_true): New generic hook.
19         * hooks.h (hook_bool_mode_true): Add prototype.
20
21         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
22         target hook.
23         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
24         target hook, set to hook_bool_mode_false.
25         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
26         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
27         with targetm.small_register_classes_for_mode_p.
28         (find_reusable_reload): Likewise.
29         (combine_reloads): Likewise.
30         * reload1.c (reload_as_needed): Likewise.
31         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32         * ifcvt.c (noce_process_if_block, check_cond_move_block,
33         dead_or_predicable): Likewise.
34         * regmove.c (optimize_reg_copy_1): Likewise.
35         * calls.c (prepare_call_address): Likewise.
36         (precompute_register_parameters): Likewise.
37
38         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
39         hook definition.
40         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
41         implementation of the hook that considers all register classes
42         small except for SH64.
43         (sh_override_options): Use the new hook.
44         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
45         Add prototype.
46
47         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
48         hook definition.
49         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
50         implementation of the hook that considers all register classes
51         small for THUMB1.
52         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
53         Add prototype.
54
55         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
56         hook definition.
57         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
58         implementation of the hook that considers all register classes
59         small for MIPS16.
60         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
61         Add prototype.
62
63         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
64         hook definition.
65         * config/m32c/m32c.h: Likewise.
66         * config/pdp11/pdp11.h: Likewise.
67         * config/avr/avr.h: Likewise.
68         * config/xtensa/xtensa.h: Likewise.
69         * config/m68hc11/m68hc11.h: Likewise.
70         * config/mn10300/mn10300.h: Likewise.
71         * config/mcore/mcore.h: Likewise.
72         * config/h8300/h8300.h: Likewise.
73         * config/bfin/bfin.h: Likewise.
74
75         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
76         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
77
78 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
79
80         * double-int.h (tree_to_double_int): Remove macro.
81         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
82         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
83         (tree_to_double_int): New function.
84         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
85         Move ...
86         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
87
88 2010-05-03  Richard Guenther  <rguenther@suse.de>
89
90         PR tree-optimization/43971
91         * tree-ssa-structalias.c (get_constraint_for_1): Fix
92         constraints in the !flag_delete_null_pointer_checks case.
93
94 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
95
96         PR debug/43972
97         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
98         result mode matches original rtl mode.
99
100 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
101
102         PR target/43888
103         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
104
105 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
106
107         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
108         when processing flag options.
109
110 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
111
112         * gcov-iov.c (main): Change format string placeholder
113         from %#08x to 0x%08x.
114         * genchecksum.c (dosum): Change format string placeholder
115         from %#02x to 0x%02x.
116
117 2010-05-02  Richard Guenther  <rguenther@suse.de>
118
119         PR tree-optimization/43879
120         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
121
122 2010-05-02  Bruno Haible  <bruno@clisp.org>
123
124         * doc/extend.texi (Function Attributes): Fix a typo.
125
126 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
127
128         Revert:
129         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
130         placeholder from 0x%x to %#x.
131         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
132         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
133         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
134         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
135         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
136         * config/i386/i386.c (ix86_target_string): Ditto.
137         * config/i386/i386.c (output_pic_addr_const): Ditto.
138         (print_operand): Ditto.
139
140 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
141
142         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
143         placeholder from 0x%x to %#x.
144         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
145         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
146         (ASM_OUTPUT_DEBUG_DATA): Ditto.
147         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
148         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
149         * optc-gen.awk: Ditto.
150         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
151         (HOST_WIDE_INT_PRINT_HEX): Ditto.
152         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
153         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
154
155 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
156
157         * target.h (struct calls): Add function_value_regno_p field.
158         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
159         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
160         * targhooks.c (default_function_value_regno_p): New function.
161         * targhooks.h (default_function_value_regno_p): Declare function.
162         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
163         * builtins.c. (apply_result_size): (Ditto.).
164         * combine.c. (likely_spilled_retval_p): (Ditto.).
165         * mode-switching.c. Include 'target.h'.
166         (create_pre_exit): Use function_value_regno_p hook.
167         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
168         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
169         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
170
171         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
172         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
173         (ix86_function_value_regno_p): Declare as static, change argument
174         type to const unsigned int.
175         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
176
177 2010-05-01  Richard Guenther  <rguenther@suse.de>
178
179         PR tree-optimization/43949
180         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
181         types.
182         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
183
184 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
185
186         * rtl.h (CONST_DOUBLE_P): Define.
187         (rtx_to_double_int): Declare.
188         * emit-rtl.c (rtx_to_double_int): New function.
189         * dwarf2out.c (insert_double): New function.
190         (loc_descriptor, add_const_value_attribute): Clean up, use
191         rtx_to_double_int and insert_double functions.
192
193 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
194
195         * doc/extend.texi (Inline): Add missing return keyword to examples.
196         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
197         "command-line".
198
199 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
200
201         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
202         the variable part of the offset as well.  Use highest_pow2_factor for
203         all alignment checks.
204
205 2010-04-30  Richard Guenther  <rguenther@suse.de>
206
207         PR tree-optimization/43879
208         * tree-ssa-structalias.c (type_could_have_pointers): Functions
209         can have pointers.
210
211 2010-04-30  Jan Hubicka  <jh@suse.cz>
212
213         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
214         varpool.
215         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
216
217 2010-04-30  Jan Hubicka  <jh@suse.cz>
218
219         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
220         New.
221         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
222         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
223         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
224         cgraph_node_set_needs_ltrans_p): Remove.
225
226 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
227
228         * sdbout.c: Include vec.h, do not include varray.h.
229         (deferred_global_decls, sdbout_global_decl,
230         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
231         * toplev.c: Do not include varray.h.
232         (dump_memory_report): Do not dump VARRAY statistics.
233         * gengtype.c (open_base_file): Ignore varray.h.
234         * Makefile.in: Update for abovementioned changes.
235         Remove all traces of varray.c and varray.h.
236         * varray.c: Remove file.
237         * varray.h: Remove file.
238
239 2010-04-30  Jan Hubicka  <jh@suse.cz>
240
241         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
242         references.
243
244 2010-04-30  Jan Hubicka  <jh@suse.cz>
245
246         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
247         needed.
248
249 2010-04-30  Richard Guenther  <rguenther@suse.de>
250
251         * tree-ssa-structalias.c (get_constraint_for_1): Generate
252         constraints for CONSTRUCTOR.
253
254 2010-04-30  Richard Guenther  <rguenther@suse.de>
255
256         PR lto/43946
257         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
258         first after all lowering passes.
259
260 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
261
262         * toplev.c: Include varray.h for statistics dumping.
263         * tree.h: Do not declare varray_head_tag.
264         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
265         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
266         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
267         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
268         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
269         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
270         c-common.c, c-common.h, reg-stack.c, basic-block.h,
271         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
272         include varray.h.
273         * Makefile.in: Update for abovementioned changes.
274
275 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
276
277         PR debug/43942
278         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
279
280 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
281
282         * config/picochip/picochip.c (picochip_legitimize_address): Define.
283         Use this function to do machine-specific conversion.
284         (picochip_legitimize_reload_address): Likewise.
285         (picochip_legitimate_address_p): Check valid base register only if
286         strict.
287         (picochip_check_conditional_copy): Check for modw only if opnd is
288         register.
289         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
290         to call the function in c.
291         * config/picochip/picochip-protos.h
292         (picochip_legitimize_reload_address): Define.
293         * config/picochip/picochip.md (supported_compare1): Define.
294
295 2010-04-30  Jan Hubicka  <jh@suse.cz>
296
297         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
298         (cgraph_global_info): Remove inlined.
299         (LTO_cgraph_tag_names): Remove.
300         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
301         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
302         simplify cgraph tags and document.
303         (lto_output_node): Use only LTO_cgraph_unavail_node and
304         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
305         for_functions_valid, global info, process and output flags.
306         (input_overwrite_node): Initialize estimated stack size and
307         estimated growth.  Do not read flags we no longer store.
308         (input_node): Likewise do not read info no longer stored.
309         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
310         flag.
311
312 2010-04-30  Richard Guenther  <rguenther@suse.de>
313
314         PR tree-optimization/43879
315         * tree-ssa-structalias.c (get_constraint_for_1): Properly
316         handle non-zero initializers.
317
318 2010-04-30  Richard Guenther  <rguenther@suse.de>
319
320         * builtins.c (fold_builtin_1): Delete free (0).
321
322 2010-04-29  Jan Hubicka  <jh@suse.cz>
323
324         * gengtype.c (open_base_files): Add lto-streamer.h
325         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
326         (pass_ipa_cp): GGC collect.
327         * toplev. (compile_file): Do not output symbols.
328         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
329         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
330         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
331         * lto-section-in.c: Include ggc.h
332         (lto_new_in_decl_state): Alloc in GGC.
333         (lto_delete_in_decl_state): Likewise.
334         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
335         Collect.
336
337 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
338
339         PR target/42895
340         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
341         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
342         (HONOR_REG_ALLOC_ORDER): Describe new macro.
343         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
344         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
345         account only if HONOR_REG_ALLOC_ORDER is not defined.
346         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
347         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
348
349 2010-04-29  Jon Grant  <04@jguk.org>
350
351         * collect2.c (vflag): Change type from int to bool.
352         (debug): Likewise.
353         (helpflag): New global bool.
354         (main): Set vflag and debug with boolean, not integer truth values.
355         Accept new "--help" option and output usage text if found.
356         * collect2.h (vflag): Update prototype.
357         (debug): Likewise.
358
359 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
360
361         PR bootstrap/43936
362         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
363
364 2010-04-29  Richard Guenther  <rguenther@suse.de>
365
366         PR bootstrap/43935
367         * plugin.h (invoke_plugin_callbacks): Annotate arguments
368         with ATTRIBUTE_UNUSED.
369
370 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
371
372         PR target/43921
373         * config/i386/i386.c (get_some_local_dynamic_name): Replace
374         INSN_P with NONDEBUG_INSN_P.
375         (distance_non_agu_define): Likewise.
376         (distance_agu_use): Likewise.
377
378 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
379
380         From Dominique d'Humieres <dominiq@lps.ens.fr>
381         PR bootstrap/43858
382         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
383         test_set.
384
385 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
386
387         * plugin.h (invoke_plugin_callbacks): New inline function.
388         * plugin.c (flag_plugin_added): New global flag.
389         (add_new_plugin): Initialize above flag.
390         (invoke_plugin_callbacks): Rename to ...
391         (invoke_plugin_callbacks_full): ... this.
392
393 2010-04-28  Jan Hubicka  <jh@suse.cz>
394
395         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
396         (lto_varpool_replace_node): New.
397         (lto_symtab_resolve_symbols): Resolve varpool nodes.
398         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
399         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
400         * cgraph.h (varpool_node_ptr): New type.
401         (varpool_node_ptr): New vector.
402         (varpool_node_set_def): New structure.
403         (varpool_node_set): New type.
404         (varpool_node_set): New vector.
405         (varpool_node_set_element_def): New structure.
406         (varpool_node_set_element, const_varpool_node_set_element): New types.
407         (varpool_node_set_iterator): New type.
408         (varpool_node): Add prev pointers, add used_from_other_partition,
409         in_other_partition.
410         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
411         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
412         varpool_get_node, varpool_remove_node): Declare.
413         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
414         varpool_node_set_size): New inlines.
415         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
416         * tree-pass.h (varpool_node_set_def): Forward declare.
417         (ipa_opt_pass_d): Summary writting takes vnode sets too.
418         (ipa_write_optimization_summaries): Update prototype.
419         * ipa-cp.c (ipcp_write_summary): Update.
420         * ipa-reference.c (ipa_reference_write_summary): Update.
421         * lto-cgraph.c (lto_output_varpool_node): New static function.
422         (output_varpool): New function.
423         (input_varpool_node): New static function.
424         (input_varpool_1): New function.
425         (input_cgraph): Input varpool.
426         * ipa-pure-const.c (pure_const_write_summary): Update.
427         * lto-streamer-out.c (lto_output): Update, output varpool too.
428         (write_global_stream): Kill WPA hack.
429         (produce_asm_for_decls): Update.
430         (output_alias_pair_p): Handle variables.
431         (output_unreferenced_globals): Output only needed partition of varpool.
432         * ipa-inline.c (inline_write_summary): Update.
433         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
434         cgraph.
435         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
436         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
437         varpool_node_set_new, varpool_node_set_add,
438         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
439         debug_varpool_node_set): New functions.
440         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
441         (execute_one_pass): Process new decls too.
442         (ipa_write_summaries_2): Pass around vsets.
443         (ipa_write_summaries_1): Likewise.
444         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
445         to add.
446         (ipa_write_optimization_summaries_1): Pass around vsets.
447         (ipa_write_optimization_summaries): Likewise.
448         * varpool.c (varpool_get_node): New.
449         (varpool_node): Update doubly linked lists.
450         (varpool_remove_node): New.
451         (dump_varpool_node): More dumping.
452         (varpool_enqueue_needed_node): Update doubly linked lists.
453         (decide_is_variable_needed): Kill ltrans hack.
454         (varpool_finalize_decl): Kill lto hack.
455         (varpool_assemble_decl): Skip decls in other partitions.
456         (varpool_assemble_pending_decls): Update doubly linkes lists.
457         (varpool_empty_needed_queue): Likewise.
458         (varpool_extra_name_alias): Likewise.
459         * lto-streamer.c (lto_get_section_name): Add vars section.
460         * lto-streamer.h (lto_section_type): Update.
461         (output_varpool, input_varpool): Declare.
462
463 2010-04-28  Mike Stump  <mikestump@comcast.net>
464
465         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
466
467 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
468
469         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
470         record or union type with RECORD_OR_UNION_TYPE_P predicate.
471         (lto_input_ts_type_tree_pointers): Likewise.
472         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
473         (lto_output_ts_type_tree_pointers): Likewise.
474
475 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
476
477         Uniquization of constants at the Tree level
478         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
479         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
480         bit to the end.
481         (tree_output_constant_def): Declare.
482         * gimplify.c (gimplify_init_constructor): When using block copy, first
483         uniquize the constant constructor on the RHS.
484         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
485         DECL_IN_CONSTANT_POOL flag.
486         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
487         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
488         constant pool.
489         (assemble_variable): Deal with symbols belonging to the tree constant
490         pool.
491         (get_constant_section): Add ALIGN parameter and simplify.
492         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
493         (assemble_constant_contents): Use the expression of the VAR_DECL.
494         (output_constant_def_contents): Use the alignment of the VAR_DECL.
495         (tree_output_constant_def): New global function.
496         (mark_constant): Use the expression of the VAR_DECL.
497         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
498         its expression.
499         (output_object_block): Likewise and assemble the expression.
500
501 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
502
503         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
504         hash_tree, eq_tree): New tree hash table.
505         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
506         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
507         lto_orig_address_remove): Reimplement.
508
509 2010-04-28  Xinliang David Li  <davidxl@google.com>
510
511         PR c/42643
512         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
513         (compute_uninit_opnds_pos): New function.
514         (is_non_loop_exit_postdominating): New function.
515         (compute_control_dep_chain): New function.
516         (find_pdom): New function.
517         (convert_control_dep_chain_into_preds): New function.
518         (find_predicates): New function.
519         (find_control_equiv_block): New function.
520         (collect_phi_def_edges): New function.
521         (find_def_preds): New function.
522         (find_dom): New function.
523         (dump_predicates): New function.
524         (get_cmp_code): New function.
525         (is_value_included_in): New function.
526         (find_matching_predicate_in_rest_chains): New function.
527         (use_pred_not_overlap_with_undef_path_pred): New function.
528         (is_use_properly_guarded): New function.
529         (normalize_cond_1): New function.
530         (is_and_or_or): New function.
531         (normalize_cond): New function.
532         (is_gcond_subset_of): New function.
533         (is_subset_of_any): New function.
534         (is_or_set_subset_of): New function.
535         (is_and_set_subset_of): New function.
536         (is_norm_cond_subset_of): New function.
537         (is_pred_expr_subset_of): New function.
538         (is_pred_chain_subset_of): New function.
539         (is_included_in): New function.
540         (is_superset_of): New function.
541         (find_uninit_use): New function.
542         (warn_uninitialized_phi): New function.
543         (compute_possibly_undefined_names): New function.
544         (ssa_undefined_value_p): New function.
545         (execute_late_warn_uninitialized): New function.
546         * tree-ssa.c (ssa_undefined_value_p): Removed.
547         (warn_uninit): Changed to extern.
548         (warn_uninitialized_phi): Removed.
549         (warn_uninitialized_vars): Changed to extern.
550         (execute_late_warn_uninitialized): Removed
551         * tree-flow.h: Add new prototypes.
552         * timevar.def: Add new time variable.
553         * Makefile.in: Add new build file.
554
555 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
556
557         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
558         type if available.
559
560 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
561
562         PR target/22224
563         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
564
565 2010-04-28  Martin Jambor  <mjambor@suse.cz>
566
567         * cgraph.h (struct cgraph_node): New field indirect_calls.
568         (struct cgraph_indirect_call_info): New type.
569         (struct cgraph_edge): Removed field indirect_call. New fields
570         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
571         (cgraph_create_indirect_edge): Declare.
572         (cgraph_make_edge_direct): Likewise.
573         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
574         * ipa-prop.h (struct ipa_param_call_note): Removed.
575         (struct ipa_node_params): Removed field param_calls.
576         (ipa_create_all_structures_for_iinln): Declare.
577         * cgraph.c: Described indirect edges and uids in initial comment.
578         (cgraph_add_edge_to_call_site_hash): New function.
579         (cgraph_edge): Search also among the indirect edges, use
580         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
581         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
582         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
583         site hash.
584         (initialize_inline_failed): Assign a reason to indirect edges.
585         (cgraph_create_edge_1): New function.
586         (cgraph_create_edge): Moved some functionality to
587         cgraph_create_edge_1.
588         (cgraph_create_indirect_edge): New function.
589         (cgraph_edge_remove_callee): Add an assert checking for
590         non-indirectness.
591         (cgraph_edge_remove_caller): Special-case indirect edges.
592         (cgraph_remove_edge): Likewise.
593         (cgraph_set_edge_callee): New function.
594         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
595         (cgraph_make_edge_direct): New function.
596         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
597         the declaration of the call statement matches.
598         (cgraph_node_remove_callees): Special-case indirect edges.
599         (cgraph_clone_edge): Likewise.
600         (cgraph_clone_node): Clone also the indirect edges.
601         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
602         indirect_call, dump count of indirect_calls edges.
603         * ipa-prop.c (iinlining_processed_edges): New variable.
604         (ipa_note_param_call): Create indirect edges instead of
605         creating notes.  New parameter node.
606         (ipa_analyze_call_uses): New parameter node, pass it on to
607         ipa_note_param_call.
608         (ipa_analyze_stmt_uses): Likewise.
609         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
610         (print_edge_addition_message): Work on edges rather than on notes.
611         (update_call_notes_after_inlining): Likewise, renamed to
612         update_indirect_edges_after_inlining.
613         (ipa_create_all_structures_for_iinln): New function.
614         (ipa_free_node_params_substructures): Do not free notes.
615         (ipa_edge_duplication_hook): Propagate bits within
616         iinlining_processed_edges bitmap.
617         (ipa_node_duplication_hook): Do not duplicate notes.
618         (free_all_ipa_structures_after_ipa_cp): Renamed to
619         ipa_free_all_structures_after_ipa_cp.
620         (free_all_ipa_structures_after_iinln): Renamed to
621         ipa_free_all_structures_after_iinln.g
622         (ipa_write_param_call_note): Removed.
623         (ipa_read_param_call_note): Removed.
624         (ipa_write_indirect_edge_info): New function.
625         (ipa_read_indirect_edge_info): Likewise.
626         (ipa_write_node_info): Do not stream notes, do stream information
627         in indirect edges.
628         (ipa_read_node_info): Likewise.
629         (lto_ipa_fixup_call_notes): Removed.
630         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
631         * ipa-inline.c (pass_ipa_inline): Likewise.
632         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
633         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
634         * tree-inline.c (copy_bb): Removed an unnecessary double check for
635         is_gimple_call.
636         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
637         edges.
638         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
639         (output_cgraph): Stream also indirect edges.
640         (lto_output_edge): Added capability to stream indirect edges.
641         (input_edge): Likewise.
642         (input_cgraph_1): Likewise.
643         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
644         of indirect edges.
645
646 2010-04-28  Richard Guenther  <rguenther@suse.de>
647
648         PR tree-optimization/43879
649         PR tree-optimization/43909
650         * tree-ssa-structalias.c (struct variable_info): Add
651         only_restrict_pointers flag.
652         (new_var_info): Initialize it.  Increment stats.total_vars here.
653         (create_function_info_for): Do not increment stats.total_vars
654         here.
655         (get_function_part_constraint): Fix build with C++.
656         (insert_into_field_list): Remove.
657         (push_fields_onto_fieldstack): Properly merge fields.
658         (create_variable_info_for): Split and simplify.
659         (create_variable_info_for_1): New piece.
660         (intra_create_variable_infos): Properly make restrict constraints
661         from parameters.
662
663 2010-04-28  Richard Guenther  <rguenther@suse.de>
664
665         PR c++/43880
666         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
667
668 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
669             Jan Hubicka <hubicka@ucw.cz>
670
671         * doc/invoke.texi (-Wsuggest-attribute=const,
672         -Wsuggest-attribute=pure): Document.
673         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
674         (function_always_visible_to_compiler_p,
675         suggest_attribute, warn_function_pure, warn_function_const):
676         New functions.
677         (check_call): Improve debug info.
678         (analyze_function): Do not check availability.
679         (add_new_function): Check availability.
680         (propagate): Output warnings.
681         (skip_function_for_local_pure_const): New function.
682         (local_pure_const): Use it; output warnings.
683         * common.opt (Wsuggest-attribute=const,
684         Wsuggest-attribute=pure): New.
685
686 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
687
688         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
689         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
690         or DW_CFA_def_cfa_offset{,_sf}.
691
692 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
693
694         * tree.h: Fix truncated long macros.
695
696 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
697
698         * collect2.c (TARGET_64BIT): Redefine to target's default.
699         * tlink.c: Likewise.
700         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
701         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
702         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
703         for underscoring __USER_LABEL_PREFIX__.
704         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
705         (SUB_LINK_ENTRY32): New.
706         (SUB_LINK_ENTRY64): New.
707         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
708         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
709         (SUB_LINK_ENTRY64): New.
710         (SUB_LINK_ENTRY): New.
711         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
712         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
713         x64 target is choosen.
714         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
715         * configure: Regenerated.
716         * configure.ac (leading-mingw64-underscores): Option added.
717
718 2010-04-27  Jan Hubicka  <jh@suse.cz>
719
720         * doc/invoke.texi (-fipa-profile): Document.
721         * opts.c (decode_options): Enable ipa-profile at -O1.
722         * timevar.def (TV_IPA_PROFILE): Define.
723         * common.opt (fipa-profile): Add.
724         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
725         flag for clones.
726         (cgraph_propagate_frequency): Handle only local ones.
727         * tree-pass.h (pass_ipa_profile): Declare.
728         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
729         (pass_ipa_profile): Use TV_IPA_PROFILE.
730         * ipa.c (ipa_profile): New function.
731         (gate_ipa_profile): Likewise.
732         (pass_ipa_profile): New global variable.
733         * passes.c (pass_ipa_profile): New.
734
735 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
736
737         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
738
739 2010-04-27  Martin Jambor  <mjambor@suse.cz>
740
741         PR middle-end/43812
742         * ipa.c (dissolve_same_comdat_group_list): New function.
743         (function_and_variable_visibility): Call
744         dissolve_same_comdat_group_list when comdat group contains external or
745         newly local nodes.
746         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
747         lists are circular and that they contain only DECL_ONE_ONLY nodes.
748
749 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
750
751         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
752         (const_hash_1) <VECTOR_CST>: New case.
753         (compare_constant) <VECTOR_CST>: Likewise.
754         <ADDR_EXPR>: Deal with LABEL_REFs.
755         (copy_constant) <VECTOR_CST>: New case.
756
757 2010-04-27  Jan Hubicka  <jh@suse.cz>
758
759         * cgraph.c (cgraph_propagate_frequency): New function.
760         * cgraph.h (cgraph_propagate_frequency): Declare.
761         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
762         cgraph_propagate_frequency.
763
764 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
765
766         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
767
768 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
769
770         PR target/40657
771         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
772         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
773         here to determine which regs to push and how much stack to reserve.
774
775 2010-04-27  Jie Zhang  <jie@codesourcery.com>
776
777         * doc/gimple.texi (gimple_statement_with_ops): Remove
778         addresses_taken field.
779         (gimple_statement_with_memory_ops): Likewise.
780
781 2010-04-27  Jan Hubicka  <jh@suse.cz>
782
783         * tree-inline.c (eni_inlining_weights): Remove.
784         (estimate_num_insns): Special case more builtins.
785
786 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
787
788         PR c/32207
789         * c-typeck.c (build_binary_op): Move forward check for comparison
790         pointer with null pointer constant and adjust the diagnostic message.
791
792 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
793
794         PR lto/42776
795         * configure.ac (gcc_cv_as_section_has_align): Set if installed
796         binutils supports extended .section directive needed by LTO, or
797         warn if older binutils found.
798         (LTO_BINARY_READER): New AC_SUBST'd variable.
799         (LTO_USE_LIBELF): Likewise.
800         * gcc/config.gcc (lto_binary_reader): New target-specific configure
801         variable.
802         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
803         (LTO_USE_LIBELF): Likewise.
804         * configure: Regenerate.
805
806         * collect2.c (is_elf): Rename from this ...
807         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
808          object files in addition to ELF-formatted ones.
809         (scan_prog_file): Caller updated.  Also allow for LTO info marker
810         symbol to be prefixed or not by an extra underscore.
811
812         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
813         * config/i386/winnt.c: Also #include lto-streamer.h
814         (i386_pe_asm_named_section): Specify 1-byte section alignment for
815         LTO named sections.
816         (i386_pe_asm_output_aligned_decl_common): Add comment.
817         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
818
819 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
820
821         PR target/43889
822         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
823         Add missing earlyclobber for second alternative.
824
825 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
826
827         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
828         bits for artificial defs at the top of the block.
829         * fwprop.c (single_def_use_enter_block): Don't call it.
830
831 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
832
833         PR 43715
834         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
835         instead of "$gcc_cv_objdump -T".
836         Use "-undefined dynamic_lookup" on darwin.
837         * gcc/configure: Regenerate.
838
839 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
840
841         PR c/43893
842         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
843
844 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
845
846         * c-parser.c (struct c_token): Move location field up.
847         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
848         (struct c_declspecs): Convert typespec_word, storage_class, and
849         default_int_p into bitfields.
850         (struct c_declarator): Move loc field up.
851
852 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
853
854         * cfgloop.h (struct loop): Move can_be_parallel field up.
855         * ipa-prop.h (struct ip_node_params): Move bitfields up.
856         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
857         down.
858         (struct iv_cand): Convert pos field into a bitfield.
859         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
860         field up.
861         (struct _stmt_vec_info): Shuffle fields for better packing.
862
863 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
864
865         * varasm.c (IN_NAMED_SECTION): Remove guard.
866         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
867         (IN_NAMED_SECTION_P): ...this.
868         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
869         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
870
871 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
872
873         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
874         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
875         of shadowing it.  Fix comments.
876
877 2010-04-26  Jan Hubicka  <jh@suse.cz>
878
879         * cgraph.c (cgraph_create_node): Set node frequency to normal.
880         (cgraph_clone_node): Copy function frequency.
881         * cgraph.h (node_frequency): New enum
882         (struct cgraph_node): Add.
883         * final.c (rest_of_clean_state): Update.
884         * lto-cgraph.c (lto_output_node): Output node frequency.
885         (input_overwrite_node): Input node frequency.
886         * tre-ssa-loop-ivopts (computation_cost): Update.
887         * lto-streamer-out.c (output_function): Do not output function
888         frequency.
889         * predict.c (maybe_hot_frequency_p): Update and handle functions
890         executed once.
891         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
892         attribute lookup.
893         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
894         (compute_function_frequency): Set noreturn functions to be executed
895         once.
896         (choose_function_section): Update.
897         * lto-streamer-in.c (input_function): Do not input function frequency.
898         * function.c (allocate_struct_function): Do not initialize function
899         frequency.
900         * function.h (function_frequency): Remove.
901         (struct function): Remove function frequency.
902         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
903         (try_update): Update.
904         * tree-inline.c (initialize_cfun): Do not update function frequency.
905         * passes.c (pass_init_dump_file): Update.
906         * i386.c (ix86_compute_frame_layout): Update.
907         (ix86_pad_returns): Update.
908
909 2010-04-26  Jie Zhang  <jie@codesourcery.com>
910
911         PR tree-optimization/43833
912         * tree-vrp.c (range_int_cst_p): New.
913         (range_int_cst_singleton_p): New.
914         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
915         when both operands are constants.  Use range_int_cst_p in
916         BIT_IOR_EXPR case.
917
918 2010-04-26  Jan Hubicka  <jh@suse.cz>
919
920         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
921
922 2010-04-26  Richard Guenther  <rguenther@suse.de>
923
924         PR lto/43080
925         * gimple.c (gimple_decl_printable_name): Deal gracefully
926         with a NULL DECL_NAME.
927
928 2010-04-26  Richard Guenther  <rguenther@suse.de>
929
930         PR lto/42425
931         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
932         if emitting debug information and it is either a function
933         or a namespace decl.
934
935 2010-04-26  Ira Rosen  <irar@il.ibm.com>
936
937         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
938         determine if the statement is vectorizable, and a macro to access it.
939         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
940         Skip statements that can't be vectorized. If the analysis fails,
941         mark the statement as unvectorizable if vectorizing basic block.
942         (vect_compute_data_refs_alignment): Likewise.
943         (vect_verify_datarefs_alignment): Skip statements marked as
944         unvectorizable. Add print.
945         (vect_analyze_group_access): Skip statements that can't be
946         vectorized. If the analysis fails, mark the statement as
947         unvectorizable if vectorizing basic block.
948         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
949         * tree-vect-stmts.c (vectorizable_store): Fix the number of
950         generated stmts for SLP.
951         (new_stmt_vec_info): Initialize the new field.
952         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
953         statements marked as unvectorizable.
954
955 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
956
957         * c-common.c (flag_isoc1x): New.
958         (flag_isoc99): Update comment.
959         * c-common.h (flag_isoc1x): New.
960         (flag_isoc99): Update comment.
961         * c-cppbuiltin.c (builtin_define_float_constants): Also define
962         __<type>_DECIMAL_DIG__.
963         * c-opts.c (set_std_c1x): New.
964         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
965         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
966         * c.opt (-std=c1x, -std=gnu1x): New options.
967         * doc/cpp.texi: Mention -std=c1x.
968         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
969         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
970         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
971         * doc/standards.texi: Mention C1X.
972         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
973         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
974         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
975         Define for C1X.
976
977 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
978
979         * config/i386/gmon-sol2.c (_mcleanup): Change format string
980         placeholder from 0x%x to %#x.
981         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
982         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
983         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
984         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
985         * config/i386/i386.c (ix86_target_string): Ditto.
986         (output_pic_addr_const): Ditto.
987         (print_operand): Ditto.
988
989 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
990
991         * combine.c (find_split_point): Add third argument.  Use it
992         to find nested multiply-accumulate instructions.  Adjust calls.
993         (try_combine): Adjust call to find_split_point.
994
995 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
996
997         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
998
999 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1000
1001         PR tree-optimization/41442
1002         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1003         (fold_binary_loc): Call it.
1004
1005 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1006
1007         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1008         * opts.c (common_handle_option): Allow disabling it.
1009         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1010
1011 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1012
1013         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1014         between modes if both types are integral.
1015
1016 2010-04-23  Richard Guenther  <rguenther@suse.de>
1017
1018         PR tree-optimization/43572
1019         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1020
1021 2010-04-23  Richard Guenther  <rguenther@suse.de>
1022
1023         PR lto/43455
1024         * tree-inline.c (tree_can_inline_p): Also check compatibility
1025         of return types.
1026
1027 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1028
1029         PR tree-optimization/43846
1030         * tree-sra.c (struct access): New flag grp_assignment_read.
1031         (build_accesses_from_assign): Set grp_assignment_read.
1032         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1033         (enum mark_read_status): New type.
1034         (analyze_access_subtree): Propagate grp_assignment_read, create
1035         accesses also if both direct_read and root->grp_assignment_read.
1036
1037 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1038
1039         PR middle-end/43835
1040         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1041         function does not have type attributes.
1042
1043 2010-04-23  Richard Guenther  <rguenther@suse.de>
1044
1045         PR lto/42653
1046         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1047         of FUNCTION_DECLs.
1048
1049 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1050
1051         * sese.h (create_if_region_on_edge): Remove.
1052
1053         * sese.c (create_if_region_on_edge): Make static.
1054
1055         * tree-inline.c: Do not include ggc.h.
1056
1057         * expr.c: Do not include ggc.h.
1058
1059         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1060         dependencies.
1061
1062 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1063
1064         PR target/43744
1065         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1066         in the middle of insns for casesi_worker_2.
1067
1068 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1069
1070         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1071
1072 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1073
1074         PR tree-optimization/43842
1075         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1076         loop unrolling in update of exit phis. Fix comment.
1077         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1078         least two reduction statements in the loop before starting SLP
1079         analysis.
1080
1081 2010-04-22  Nick Clifton  <nickc@redhat.com>
1082
1083         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1084
1085 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1086
1087         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1088         to simplify a + ~a.
1089
1090 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1091
1092         * tree-parloops.c (loop_parallel_p): New argument
1093         parloop_obstack.  Pass it down.
1094         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1095         pass it down, free it.
1096
1097         * tree-loop-linear.c (linear_transform_loops): Pass down
1098         lambda_obstack.
1099
1100         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1101         of type struct obstack *.
1102
1103         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1104         scratch_obstack.  Initialize it, pass down, free it.
1105
1106         * lambda.h (lambda_loop_new): Remove.
1107         (lambda_matrix_new, lambda_matrix_inverse)
1108         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1109         argument of type struct obstack *.
1110
1111         * lambda-trans.c (lambda_trans_matrix_new): New argument
1112         lambda_obstack.  Pass it down, use obstack allocation for ret.
1113         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1114         it down.
1115
1116         * lambda-mat.c (lambda_matrix_get_column)
1117         (lambda_matrix_project_to_null): Remove.
1118         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1119         allocation for mat.
1120         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1121         lambda_obstack.
1122
1123         * lambda-code.c (lambda_loop_new): New function.
1124         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1125         (lambda_compute_auxillary_space, lambda_compute_target_space)
1126         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1127         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1128         (build_access_matrix): New argument lambda_obstack.  Use obstack
1129         allocation for am.
1130         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1131         argument lambda_obstack.  Pass it down.
1132
1133 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1134
1135         * optabs.h (expand_widening_mult): Declare.
1136
1137 2010-04-22  Richard Guenther  <rguenther@suse.de>
1138
1139         PR tree-optimization/43845
1140         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1141         lookup the CALL_EXPR function and arguments.
1142
1143 2010-04-22  Nick Clifton  <nickc@redhat.com>
1144
1145         * config/stormy16/stormy16.c
1146         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1147         * config/stormy16/stormy16.h: Tidy up formatting.
1148         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1149         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1150         (ineqbranchsi): Delete pattern.
1151         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1152         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1153         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1154         stormy16-lib2-ucmpsi2.c.
1155
1156 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1157
1158         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1159         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1160         extra set merge_set_noclobber, and use it to relax the final test
1161         slightly.
1162         * df.h (df_simulate_find_noclobber_defs): Declare.
1163         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1164         conditional defs.
1165         (df_simulate_find_noclobber_defs): New function.
1166
1167 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1168
1169         * config/i386/i386.md: Use {} around multi-line preparation statements.
1170
1171 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1172
1173         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1174         (process_init_element): New argument of type struct obstack *.
1175
1176         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1177         (set_init_index, set_init_label, set_nonincremental_init)
1178         (set_nonincremental_init_from_string, find_init_member)
1179         (output_init_element, output_pending_init_elements)
1180         (process_init_element): New argument braced_init_obstack.  Pass it
1181         down.
1182         (push_range_stack, add_pending_init): New argument
1183         braced_init_obstack.  Use obstack allocation.
1184
1185         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1186         braced_init_obstack.  Pass it down.
1187         (c_parser_braced_init): New variables ret, braced_init_obstack.
1188         Initialize obstack, pass it down and finally free it.
1189
1190 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1191
1192         PR middle-end/29274
1193         * tree-pass.h (pass_optimize_widening_mul): Declare.
1194         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1195         gate_optimize_widening_mul): New static functions.
1196         (pass_optimize_widening_mul): New.
1197         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1198         <case MULT_EXPR>: Remove support for widening multiplies.
1199         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1200         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1201         simplify_gen_unary rather than directly building extensions.
1202         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1203         WIDEN_MULT_EXPR.
1204         * expmed.c (expand_widening_mult): New function.
1205         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1206
1207 2010-04-21  Jan Hubicka  <jh@suse.cz>
1208
1209         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1210         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1211         * lto-wpa-fixup.c: Remove.
1212         * Makefile.in (lto-wpa-fixup.o): Remove.
1213         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1214         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1215         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1216
1217 2010-04-21  Jan Hubicka  <jh@suse.cz>
1218
1219         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1220         add write_optimization_summary, read_optimization_summary.
1221         (ipa_write_summaries_of_cgraph_node_set): Remove.
1222         (ipa_write_optimization_summaries): Declare.
1223         (ipa_read_optimization_summaries): Declare.
1224         * ipa-cp.c (pass_ipa_cp): Update.
1225         * ipa-reference.c (pass_ipa_reference): Update.
1226         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1227         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1228         Update.
1229         * ipa-inline.c (pass_ipa_inline): Update.
1230         * ipa.c (pass_ipa_whole_program): Update.
1231         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1232         * passes.c (ipa_write_summaries_1): Do not test wpa.
1233         (ipa_write_optimization_summaries_1): New.
1234         (ipa_write_optimization_summaries): New.
1235         (ipa_read_summaries): Do not test ltrans.
1236         (ipa_read_optimization_summaries_1): New.
1237         (ipa_read_optimization_summaries): New.
1238
1239 2010-04-21  Jan Hubicka  <jh@suse.cz>
1240
1241         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1242         for boundary nodes.
1243         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1244
1245 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1246
1247         PR debug/40040
1248         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1249         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1250
1251 2010-04-21  Jan Hubicka  <jh@suse.cz>
1252
1253         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1254
1255 2010-04-21  Jan Hubicka  <jh@suse.cz>
1256
1257         * varpool.c (decide_is_variable_needed): Variable is always needed
1258         during ltrans.
1259
1260 2010-04-21  Jan Hubicka  <jh@suse.cz>
1261
1262         * opts.c (decode_options): Enable pure-const pass for whopr.
1263
1264 2010-04-21  Jan Hubicka  <jh@suse.cz>
1265
1266         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1267         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1268         at WPA dumping.
1269         (cgraph_decide_inlining): Do not expect callee to be removed in all
1270         cases.
1271
1272 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1273
1274         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1275
1276 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1277
1278         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1279         amdfam10_decode attributes.
1280
1281 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1282
1283         PR middle-end/43570
1284         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1285         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1286         (lower_copyprivate_clauses): Use private var in outer
1287         context instead of original var.  Make sure the types
1288         are correct for VLAs.
1289
1290 2010-04-21  Richard Guenther  <rguenther@suse.de>
1291
1292         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1293         to non-pointer objects.
1294
1295 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1296
1297         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1298         last chain entry if it starts with the still current label.
1299         (add_location_or_const_value_attribute): Check that
1300         loc_list->first->next is NULL instead of comparing ->first with ->last.
1301         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1302         to add_var_loc_to_decl.
1303
1304         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1305         >= 4 add also address size and segment size fields into CIE header.
1306
1307         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1308         long as address size is the same as sizeof (void *) and
1309         segment size is 0.
1310         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1311         address size or segment size is unexpected, return DW_EH_PE_omit.
1312         (classify_object_over_fdes): If get_cie_encoding returned
1313         DW_EH_PE_omit, return -1.
1314         (init_object): If classify_object_over_fdes returned -1,
1315         pretend there were no FDEs at all.
1316
1317 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1318
1319         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1320         bswap{si,di}2 using SWI48 mode iterator.
1321         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1322         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1323         set modrm attribute of bswap insn to 0 and remove length attribute.
1324         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1325         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1326         set mode attribute to <MODE> and remove length attribute.
1327
1328 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1329
1330         PR rtl-optimization/43520
1331         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1332         zero available registers.
1333
1334 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1335
1336         * builtins.c (fold_builtin_cproj): Fold more cases.
1337
1338 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1339
1340         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1341         (fold_builtin_1): Fold builtin cproj.
1342         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1343         Use ATTR_CONST_NOTHROW_LIST.
1344
1345 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1346
1347         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1348         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1349         ffsi2_no_cmove for !TARGET_CMOVE.
1350         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1351         (ffssi2): Remove expander.
1352         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1353         mode iterator.
1354         (ctz<mode>2): Ditto from ctz{si,di}2.
1355         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1356         mode iterator.
1357         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1358         mode iterator.
1359
1360 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1361
1362         * dwarf2out.c (AT_linkage_name): Define.
1363         (clone_as_declaration): Handle DW_AT_linkage_name.
1364         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1365         of DW_AT_MIPS_linkage_name.
1366         (move_linkage_attr): Likewise.
1367         (dwarf2out_finish): Likewise.
1368
1369 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1370
1371         PR middle-end/41952
1372         * fold-const.c (fold_comparison): New folding rule.
1373
1374 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1375
1376         * double-int.h (double_int_setbit): Declare.
1377         * double-int.c (double_int_setbit): New function.
1378         * rtl.h (immed_double_int_const): Declare.
1379         * emit-rtl.c (immed_double_int_const): New function.
1380         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1381         and immed_double_int_const functions.
1382         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1383         expand_copysign_bit):  (Ditto.).
1384         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1385         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1386         * dojump.c (prefer_and_bit_test): (Ditto.).
1387         * expr.c (convert_modes, reduce_to_bit_field_precision,
1388         const_vector_from_tree): (Ditto.).
1389         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1390
1391 2010-04-20  Jan Hubicka  <jh@suse.cz>
1392
1393         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1394         (dump_cgraph_node): Dump new flags.
1395         * cgraph.h (struct cgraph_node): Add flags
1396         reachable_from_other_partition and in_other_partition.
1397         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1398         other partition can not be removed.
1399         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1400         the other partition must be output; silence sanity checking on
1401         leaking functions bodies from other paritition.
1402         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1403         (lto_output_node): Output new flags; do not sanity check that inline
1404         clones are output; drop lto_forced_extern_inline_p code; do not mock
1405         visibility flags at partition boundaries.
1406         (add_node_to): New function.
1407         (output_cgraph): Use it to sort functions so masters appear before
1408         clones.
1409         (input_overwrite_node): Input new flags.
1410         * passes.c (ipa_write_summaries): Do not call
1411         lto_new_extern_inline_states.
1412         * lto-section-out.c (forced_extern_inline,
1413         lto_new_extern_inline_states lto_delete_extern_inline_states,
1414         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
1415         * lto-streamer.h (lto_new_extern_inline_states,
1416         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
1417         lto_forced_extern_inline_p): Kill.
1418
1419 2010-04-20  Richard Guenther  <rguenther@suse.de>
1420
1421         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
1422         from vars that can have pointers.
1423         (process_constraint): Dump useless constraints.
1424
1425 2010-04-20  Richard Guenther  <rguenther@suse.de>
1426
1427         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
1428         (dump_sa_points_to_info): Remove asserts.
1429         (init_base_vars): nothing_id isn't an escape point nor does it
1430         have pointers.
1431
1432 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1433
1434         * tree.h (TYPE_REF_IS_RVALUE): Define.
1435         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
1436         should_move_die_to_comdat, prune_unused_types_walk): Handle
1437         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
1438         (modified_type_die, gen_reference_type_die): Emit
1439         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
1440         if TYPE_REF_IS_RVALUE and -gdwarf-4.
1441
1442 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1443
1444         PR target/43635
1445         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
1446         calls for -fpic -m31 if they have been sibcall optimized.
1447
1448 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
1449
1450         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
1451         ar.lc fixed and call-used.
1452
1453         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
1454
1455 2010-04-19  Jan Hubicka  <jh@suse.cz>
1456
1457         * opts.c (decode_options): Disable whpr incompatible passes.
1458         * lto/lto.c (lto_1_to_1_map): Skip clones.
1459         (read_cgraph_and_symbols): Do not mark everything as needed.
1460         (do_whole_program_analysis): Do map only after optimizing;
1461         set proper cgraph_state; use passmanager.
1462
1463 2010-04-19  DJ Delorie  <dj@redhat.com>
1464
1465         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1466         POINTER_PLUS_EXPR and fix them.
1467
1468 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1469
1470         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1471         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1472         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1473         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1474         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1475         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1476         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1477         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1478         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1479         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1480         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1481
1482 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1483
1484         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1485         (check_cond_move_block): Likewise.
1486         (cond_move_process_if_block): Likewise.
1487         (noce_find_if_block): Improve formatting.
1488         (find_if_header): Pass 0 to memset and tweak conditions.
1489         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1490
1491 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1492
1493         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1494         for -gdwarf-4.
1495
1496         PR middle-end/43337
1497         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1498         with non-local decl doesn't need chain.
1499
1500 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1501
1502         * ira-color.c (allocno_reload_assign): Avoid accumulating
1503         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1504
1505 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1506
1507         * gimple.h (create_tmp_reg): Declare.
1508         * gimplify.c (create_tmp_reg): New function.
1509         (gimplify_return_expr): Use create_tmp_reg.
1510         (gimplify_omp_atomic): Likewise.
1511         (gimple_regimplify_operands): Likewise.
1512         * tree-dfa.c (make_rename_temp): Likewise.
1513         * tree-predcom.c (predcom_tmp_var): Likewise.
1514         (reassociate_to_the_same_stmt): Likewise.
1515         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1516         (get_replaced_param_substitute): Likewise.
1517         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1518         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1519         * tree-ssa-pre.c (get_representative_for): Likewise.
1520         (create_expression_by_pieces): Likewise.
1521         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1522         (create_tailcall_accumulator): Likewise.
1523
1524 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1525
1526         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1527         new_stmt.
1528         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1529
1530 2010-04-19  Richard Guenther  <rguenther@suse.de>
1531
1532         PR tree-optimization/43796
1533         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1534         from SCEV in the lattice.
1535         (vrp_visit_phi_node): Dump change.
1536
1537 2010-04-19  Richard Guenther  <rguenther@suse.de>
1538
1539         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1540         * configure: Re-generated.
1541
1542 2010-04-19  Richard Guenther  <rguenther@suse.de>
1543
1544         PR tree-optimization/43783
1545         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1546         constant ARRAY_REF operands two and three if possible.
1547
1548 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1549
1550         PR target/43766
1551         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1552
1553 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1554
1555         PR target/43662
1556         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1557
1558 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1559
1560         PR tree-optimization/37027
1561         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1562         and macro to access it.
1563         (vectorizable_reduction): Add argument.
1564         (vect_get_slp_defs): Likewise.
1565         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1566         statements for possible use in SLP.
1567         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1568         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1569         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
1570         add new argument.
1571         (vectorizable_reduction): Likewise.
1572         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
1573         vect_get_slp_defs.
1574         (vectorizable_type_demotion, vectorizable_type_promotion,
1575         vectorizable_store): Likewise.
1576         (vect_analyze_stmt): Update call to vectorizable_reduction.
1577         (vect_transform_stmt): Likewise.
1578         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
1579         (vect_build_slp_tree): Fix indentation. Check that there are no loads
1580         from different interleaving chains in same node.
1581         (vect_slp_rearrange_stmts): New function.
1582         (vect_supported_load_permutation_p): Allow load permutations for
1583         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
1584         inside SLP nodes if necessary.
1585         (vect_analyze_slp_instance): Handle reductions.
1586         (vect_analyze_slp): Try to build SLP instances originating from groups
1587         of reductions.
1588         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
1589         (vect_get_constant_vectors): Create initial vectors for reductions
1590         according to reduction code. Add new argument.
1591         (vect_get_slp_defs): Add new argument, pass it to
1592         vect_get_constant_vectors.
1593         (vect_schedule_slp_instance): Remove SLP tree root statements.
1594
1595 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1596
1597         * tree.h (ENUM_IS_SCOPED): Define.
1598         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
1599         for ENUM_IS_SCOPED enums.
1600
1601 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1602
1603         * fold-const.c (fold_comparison): Use ssizetype.
1604         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1605         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
1606         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
1607         * tree-object-size.c (compute_object_sizes): Use size_type_node.
1608
1609         * tree.h (initialize_sizetypes): Remove parameter.
1610         (build_common_tree_nodes): Remove second parameter.
1611         * stor-layout.c (initialize_sizetypes): Remove parameter.
1612         Always create an unsigned type.
1613         (set_sizetype): Assert that the passed type is unsigned and simplify.
1614         * tree.c (build_common_tree_nodes): Remove second parameter.
1615         Adjust call to initialize_sizetypes.
1616         * c-decl.c (c_init_decl_processing): Remove second argument in call to
1617         build_common_tree_nodes.
1618
1619 2010-04-18  Matthias Klose  <doko@ubuntu.com>
1620
1621         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
1622
1623 2010-04-18  Ira Rosen  <irar@il.ibm.com>
1624
1625         PR tree-optimization/43771
1626         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
1627         load permutation doesn't have gaps.
1628
1629 2010-04-18  Jan Hubicka  <jh@suse.cz>
1630
1631         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
1632         (sse_prologue_save_insn expander): Use new pattern.
1633         (sse_prologue_save_insn1): New pattern and splitter.
1634         (sse_prologue_save_insn): Update to deal also with 64bit aligned
1635         blocks.
1636         * i386.c (setup_incoming_varargs_64): Do not compute jump
1637         destination here.
1638         (ix86_gimplify_va_arg): Update alignment needed.
1639         (ix86_local_alignment): Do not align all local arrays to 128bit.
1640
1641 2010-04-17  Jan Hubicka  <jh@suse.cz>
1642
1643         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
1644
1645 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1646
1647         * arm.md (negdi2): Remove redundant code to force values into a
1648         register.
1649
1650 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1651
1652         * arm/bpabi.S: Add EABI alignment attributes to objects.
1653         * arm/bpabi-v6m.S: Likewise.
1654         * arm/crti.asm: Likewise.
1655         * arm/crtn.asm: Likewise.
1656         * arm/lib1funcs.asm: Likewise.
1657         * arm/libunwind.S: Likewise.
1658
1659 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1660
1661         * arm-protos.h (tune_params): New structure.
1662         * arm.c (current_tune): New variable.
1663         (arm_constant_limit): Delete.
1664         (struct processors): Add pointer to the tune parameters.
1665         (arm_slowmul_tune): New tuning option.
1666         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
1667         (all_cores): Adjust to pick up the tuning model.
1668         (arm_constant_limit): New function.
1669         (arm_override_options): Select the appropriate tuning model.  Delete
1670         initialization of arm_const_limit.
1671         (arm_split_constant): Use the new constant-limit model.
1672         (arm_rtx_costs): Pick up the current tuning model.
1673         * arm.md (is_strongarm, is_xscale): Delete.
1674         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
1675         for Xscale variant architectures.
1676         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
1677
1678 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1679
1680         * config/arm/arm.c (arm_gen_constant): Remove unused variable
1681         can_shift.
1682         (arm_rtx_costs_1): Remove unused variable extra_cost.
1683         (arm_unwind_emit_set): Use variable offset.
1684         (thumb1_output_casesi): Remove unused variable flags.
1685
1686 2010-04-16  Jeff Law  <law@redhat.com>
1687
1688         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
1689         needing assignment rather than doing a two-phase assignment.  Remove
1690         unused variable 'm'.
1691
1692 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1693
1694         PR bootstrap/43767
1695         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
1696
1697 2010-04-16  Doug Kwan  <dougkwan@google.com>
1698
1699         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
1700         (next_operand_entry_id): New static variable.
1701         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
1702         (add_to_ops_vec): Assigned unique ID to operand entry.
1703         (struct oecount_s): New field ID.
1704         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
1705         (undistribute_ops_list): Assign unique IDs to oecounts.
1706         (init_reassoc): reset next_operand_entry_id.
1707
1708 2010-04-16  Doug Kwan  <dougkwan@google.com>
1709
1710         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
1711         missing left parenthesis.
1712
1713 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
1714
1715         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
1716         *btdi_rex64 using SWI48 mode iterator.
1717         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
1718         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
1719         *jcc_btdi_mask_rex64.
1720
1721 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
1722
1723         * double-int.h (tree_to_double_int): Convert to macro.
1724         * double-int.c (tree_to_double_int): Remove.
1725
1726 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1727
1728         PR debug/43762
1729         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
1730         with want_address 2 and in case a single element list might be
1731         possible, call it again with want_address 0.
1732
1733 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1734
1735         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
1736         case 'W' print operands for HI mode.
1737         * config/h8300/h8300.h (Y0, Y2) : New constraints.
1738         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
1739         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
1740         * config/h8300/predicate.md (bit_register_indirect_operand): New.
1741
1742         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
1743
1744         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
1745         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
1746         #xx:3 and #xx:4 mode.
1747
1748         * config/h8300/h8300.md (inverted load with HImode dest): Add
1749         support for H8300SX.
1750
1751         * config/h8300/predicate.md (bit_operand): Allow immediate values that
1752         satisfy 'U' constraint.
1753
1754 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1755
1756         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
1757         * configure: Regenerate.
1758         * config.in: Regenerate.
1759         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
1760         works.
1761
1762 2010-04-16  Richard Guenther  <rguenther@suse.de>
1763
1764         * tree.h (struct tree_decl_minimal): Move pt_uid ...
1765         (struct tree_decl_common): ... here.
1766         (DECL_PT_UID): Adjust.
1767         (SET_DECL_PT_UID): Likewise.
1768         (DECL_PT_UID_SET_P): Likewise.
1769
1770 2010-04-16  Richard Guenther  <rguenther@suse.de>
1771
1772         PR tree-optimization/43572
1773         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
1774         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
1775         * tree-flow.h (is_call_clobbered): Remove.
1776         * tree-flow-inline.h (is_call_clobbered): Likewise.
1777         * tree-dfa.c (dump_variable): Do not dump call clobber state.
1778         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
1779         (execute_return_slot_opt): Adjust.
1780         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
1781         check for call clobbered vars here.
1782         (find_tail_calls): Move tailcall verification to the
1783         proper place.
1784
1785 2010-04-16  Diego Novillo  <dnovillo@google.com>
1786
1787         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
1788
1789 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1790
1791         PR target/40603
1792         * config/arm/arm.md (cbranchqi4): New pattern.
1793         * config/arm/predicates.md (const0_operand,
1794         cbranchqi4_comparison_operator): New predicates.
1795
1796 2010-04-16  Richard Guenther  <rguenther@suse.de>
1797
1798         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
1799         (dump_gimple_stmt): Likewise.
1800
1801 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1802
1803         * recog.h (struct recog_data): New field is_operator.
1804         (struct insn_operand_data): New field is_operator.
1805         * recog.c (extract_insn): Set recog_data.is_operator.
1806         * genoutput.c (output_operand_data): Emit code to set the
1807         is_operator field.
1808         * reload.c (find_reloads): Use it rather than testing for an
1809         empty constraint string.
1810
1811         PR target/41514
1812         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
1813         If the previous insn is a cbranchsi4_insn with the same arguments,
1814         omit the compare instruction.
1815
1816         * config/arm/arm.md (addsi3_cbranch): If destination is a high
1817         register, inputs must be low registers and we need a low register
1818         scratch.  Handle alternative 2 like alternative 3.
1819
1820 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1821
1822         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1823         don't call get_addr on both.  If one expression is a VALUE and
1824         the other a REG, check VALUE's locs if the REG isn't among them.
1825
1826 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1827
1828         * config/sh/sh.h (sh_frame_pointer_required): New function.
1829         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1830         (flag_omit_frame_pointer) Set.
1831         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1832         (rounded_frame_size): Adjust size with outgoing_args_size.
1833         (sh_set_return_address): Must return from stack pointer.
1834         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1835         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1836         (ACCUMULATE_OUTGOING_ARGS): Define.
1837         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1838         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1839
1840 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1841
1842         PR target/43471
1843         * config/sh/sh.c (sh_legitimize_reload_address): Use
1844         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1845         Remove a unneeded check for offset_base.
1846
1847 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1848
1849         * configure: Regenerated.
1850
1851 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1852
1853         * config/s390/s390.c (s390_call_save_register_used): Switch back
1854         to HARD_REGNO_NREGS.
1855
1856 2010-04-15  Richard Guenther  <rguenther@suse.de>
1857
1858         * alias.c (alias_set_subset_of): Handle alias-set zero
1859         child properly.
1860
1861 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1862             Julian Brown  <julian@codesourcery.com>
1863
1864         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1865         alternatives according to use of high and low regs.
1866         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1867         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1868         optimizing for size on Thumb-2.
1869
1870 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1871
1872         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1873
1874 2010-04-15  Richard Guenther  <rguenther@suse.de>
1875
1876         * tree-ssa-structalias.c (struct variable_info): Add
1877         is_fn_info flag.
1878         (new_var_info): Initialize it.
1879         (dump_constraints): Support printing last added constraints.
1880         (debug_constraints): Adjust.
1881         (dump_constraint_graph): Likewise.
1882         (make_heapvar_for): Check for NULL cfun.
1883         (get_function_part_constraint): New function.
1884         (get_fi_for_callee): Likewise.
1885         (find_func_aliases): Properly implement IPA PTA constraints.
1886         (process_ipa_clobber): New function.
1887         (find_func_clobbers): Likewise.
1888         (insert_into_field_list_sorted): Remove.
1889         (create_function_info_for): Properly allocate vars for IPA mode.
1890         Do not use insert_into_field_list_sorted.
1891         (create_variable_info_for): Properly generate constraints for
1892         global vars in IPA mode.
1893         (dump_solution_for_var): Always dump the solution.
1894         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1895         (find_what_var_points_to): Adjust.
1896         (pt_solution_set): Change.
1897         (pt_solution_ior_into): New function.
1898         (pt_solution_empty_p): Export.
1899         (pt_solution_includes_global): Adjust.
1900         (pt_solution_includes_1): Likewise.
1901         (pt_solutions_intersect_1): Likewise.
1902         (dump_sa_points_to_info): Check some invariants.
1903         (solve_constraints): Move constraint dumping ...
1904         (compute_points_to_sets): ... here.
1905         (ipa_pta_execute): ... and here.
1906         (compute_may_aliases): Do not re-compute points-to info
1907         locally if IPA info is available.
1908         (ipa_escaped_pt): New global var.
1909         (ipa_pta_execute): Properly implement IPA PTA.
1910         * tree-into-ssa.c (dump_decl_set): Support dumping
1911         decls not in referenced-vars.
1912         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1913         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1914         (dump_points_to_solution): Likewise.
1915         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1916         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1917         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1918         (copy_decl_to_var): Copy DECL_PT_UID.
1919         (copy_result_decl_to_var): Likewise.
1920         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1921         (copy_node_stat): Copy it.
1922         * tree.h (DECL_PT_UID): New macro.
1923         (SET_DECL_PT_UID): Likewise.
1924         (DECL_PT_UID_SET_P): Likewise.
1925         (struct tree_decl_minimal): Add pt_uid member.
1926         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1927         (pt_solution_empty_p): Declare.
1928         (pt_solution_set): Adjust.
1929         (ipa_escaped_pt): Declare.
1930         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1931         * gimple-pretty-print.c (pp_points_to_solution): New function.
1932         (dump_gimple_call): Dump call clobber/use information.
1933         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1934         * tree-pass.h (TDF_ALIAS): New dump option.
1935         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1936         * doc/invoke.texi (-fipa-pta): Update documentation.
1937
1938 2010-04-15  Richard Guenther  <rguenther@suse.de>
1939
1940         * Makefile.in (OBJS-common): Add gimple-fold.o.
1941         (gimple-fold.o): New rule.
1942         * tree.h (maybe_fold_offset_to_reference,
1943         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1944         prototypes ...
1945         * gimple.h: ... here.
1946         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1947         may_propagate_address_into_dereference): Move prototypes ...
1948         * gimple.h: ... here.
1949         * tree-ssa-ccp.c (get_symbol_constant_value,
1950         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1951         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1952         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1953         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1954         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1955         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1956         gimplify_and_update_call_from_tree): Move ...
1957         * gimple-fold.c: ... here.  New file.
1958         (ccp_fold_builtin): Rename to ...
1959         (gimple_fold_builtin): ... this.
1960         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1961
1962 2010-04-15  Richard Guenther  <rguenther@suse.de>
1963
1964         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1965         fit_double_type, force_fit_type_double, add_double_with_sign,
1966         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1967         lrotate_double, rrotate_double, div_and_round_double): Move ...
1968         * double-int.c: ... here.
1969         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1970         add_double, neg_double, mul_double_with_sign, mul_double,
1971         lshift_double, rshift_double, lrotate_double, rrotate_double,
1972         div_and_round_double): Move prototypes ...
1973         * double-int.h: ... here.
1974
1975 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1976
1977         PR target/43742
1978         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1979         matching constraints to ensure inputs match the output.
1980
1981 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1982
1983         PR target/43742
1984         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1985         in an input-only operand.
1986
1987 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1988
1989         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1990         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1991         (double_int_negative_p): Convert to static inline function.
1992         * double-int.c (double_int_lshift, double_int_lshift): New functions.
1993         (double_int_negative_p): Remove.
1994         * tree.h (lshift_double, rshift_double):
1995         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1996         * fold-const.c (fold_convert_const_int_from_real,
1997         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1998         (lshift_double): Change type of arith argument to bool.
1999         (rshift_double): Change type of arith argument to bool. Correct
2000         comment.
2001         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2002
2003 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2004
2005         PR target/21803
2006         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2007         at the start and end of the then/else blocks, and omit them from the
2008         conversion.
2009         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2010         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2011         (flow_find_head_matching_sequence): New function.
2012         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2013         * basic-block.h (flow_find_cross_jump,
2014         flow_find_head_matching_sequence): Declare functions.
2015
2016 2010-04-14  Jason Merrill  <jason@redhat.com>
2017
2018         PR c++/36625
2019         * c-common.c (attribute_takes_identifier_p): New fn.
2020         * c-common.h: Declare it.
2021
2022 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2023
2024         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2025         splitter condition.
2026         (*udivmod<mode>4): Ditto.
2027
2028 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2029
2030         * config/i386/i386.md (maxmin_int): Rename code attribute from
2031         maxminiprefix and update all users.
2032         (maxmin_float): Ditto from maxminfprefix.
2033         (logic): Ditto from logicprefix.
2034         (absneg_mnemonic): Ditto from absnegprefix.
2035         * config/i386/mmx.md: Update all users of maxminiprefix,
2036         maxminfprefix and logicprefix for rename.
2037         * config/i386/sse.md: Ditto.
2038         * config/i386/sync.md (sync_<code><mode>): Update for
2039         logicprefix rename.
2040
2041 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2042
2043         PR 42966
2044         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2045         warnings converted to errors.
2046
2047 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2048
2049         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2050         used insn_type variable.
2051         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2052         to avoid set-but-not-used warning.
2053
2054 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2055
2056         * df-core.c (df_ref_debug): Change format string placeholder
2057         from 0x%x to %#x.
2058         * dwarf2asm.c (dw2_asm_output_data_raw,
2059         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2060         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2061         * dwarf2out.c (output_cfi, output_cfi_directive,
2062         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2063         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2064         Ditto.
2065         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2066         * print-rtl.c (print_rtx): Ditto.
2067
2068 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2069
2070         PR middle-end/42694
2071         * builtins.c (expand_builtin_pow_root): New function to expand pow
2072         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2073         series of sqrt and cbrt calls under -ffast-math.
2074         (expand_builtin_pow): Call it.
2075
2076 2010-04-14  Michael Matz  <matz@suse.de>
2077
2078         PR tree-optimization/42963
2079         * tree-cfg.c (touched_switch_bbs): New static variable.
2080         (group_case_labels_stmt): New function broken out from ...
2081         (group_case_labels): ... here, use the above.
2082         (start_recording_case_labels): Allocate touched_switch_bbs.
2083         (end_recording_case_labels): Deallocate it, call
2084         group_case_labels_stmt.
2085         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2086
2087 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2088
2089         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2090         from insn template.
2091
2092 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2093
2094         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2095
2096 2010-04-13  Jan Hubicka  <jh@suse.cz>
2097
2098         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2099         of optimized out static functions.
2100         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2101         cost computation.  Also sanity check for overflows.
2102         (update_caller_keys): Update cgraph_edge_badness call; properly
2103         update fibheap and sanity check that it is up to date.
2104         (add_new_edges_to_heap): Update cgraph_edge_badness.
2105         (cgraph_decide_inlining_of_small_function): Likewise;
2106         add sanity checking that badness in heap is up to date;
2107         improve dumping of reason; Update badness of calls to the
2108         offline copy of function currently inlined; dump badness
2109         of functions not inlined because of unit growth limits.
2110
2111 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2112
2113         PR middle-end/32628
2114         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2115         because of sign-extension change when converting to sizetype here...
2116         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2117
2118         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2119         the folding to constants.  Remove redundant final conversion.
2120         (fold_binary) <associate>: Do not associate if the re-association of
2121         constants alone overflows.
2122         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2123         to the end of the list.
2124         (multiple_of_p) <COND_EXPR>: New case.
2125
2126 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2127
2128         * opt-functions.awk (opt_sanitized_name): New.
2129         (opt_enum): New.
2130         * optc-gen.awk: Use it
2131         * opth-gen.awk: Use it.
2132
2133 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2134
2135         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2136         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2137         children.  Call replace_uses_with_default_def_ssa_name to handle
2138         SSA_NAES on lhs.
2139
2140 2010-04-13  Michael Matz  <matz@suse.de>
2141
2142         PR middle-end/43730
2143         * builtins.c (expand_builtin_interclass_mathfn): Also create
2144         a register if the predicate doesn't match.
2145
2146 2010-04-13  Diego Novillo  <dnovillo@google.com>
2147
2148         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2149         * c-pch.c: Include timevar.h.
2150         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2151         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2152         * ggc-common.c: Include timevar.h.
2153         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2154         * timevar.def (TV_PCH_SAVE): Define.
2155         (TV_PCH_CPP_SAVE): Define.
2156         (TV_PCH_PTR_REALLOC): Define.
2157         (TV_PCH_PTR_SORT): Define.
2158         (TV_PCH_RESTORE): Define.
2159         (TV_PCH_CPP_RESTORE): Define.
2160
2161 2010-04-13  Michael Matz  <matz@suse.de>
2162
2163         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2164         into MINUS_EXPRs.
2165         (can_reassociate_p): New function.
2166         (break_up_subtract_bb, reassociate_bb): Use it.
2167
2168 2010-04-13  Richard Guenther  <rguenther@suse.de>
2169
2170         PR bootstrap/43737
2171         * builtins.c (c_readstr): Fix assert.
2172
2173 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2174
2175         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2176         when generating cltd insn.
2177
2178         (*ashl<mode>3_1): Remove special handling for register operand 2.
2179         (*ashlsi3_1_zext): Ditto.
2180         (*ashlhi3_1): Ditto.
2181         (*ashlhi3_1_lea): Ditto.
2182         (*ashlqi3_1): Ditto.
2183         (*ashlqi3_1_lea): Ditto.
2184         (*<shiftrt_insn><mode>3_1): Ditto.
2185         (*<shiftrt_insn>si3_1_zext): Ditto.
2186         (*<shiftrt_insn>qi3_1_slp): Ditto.
2187         (*<rotate_insn><mode>3_1): Ditto.
2188         (*<rotate_insn>si3_1_zext): Ditto.
2189         (*<rotate_insn>qi3_1_slp): Ditto.
2190
2191 2010-04-13  Richard Guenther  <rguenther@suse.de>
2192
2193         * tree-ssa-structalias.c (callused_id): Remove.
2194         (call_stmt_vars): New.
2195         (get_call_vi): Likewise.
2196         (lookup_call_use_vi): Likewise.
2197         (lookup_call_clobber_vi): Likewise.
2198         (get_call_use_vi): Likewise.
2199         (get_call_clobber_vi): Likewise.
2200         (make_transitive_closure_constraints): Likewise.
2201         (handle_const_call): Adjust to do per-call call-used handling.
2202         (handle_pure_call): Likewise.
2203         (find_what_var_points_to): Remove general callused handling.
2204         (init_base_vars): Likewise.
2205         (init_alias_vars): Initialize call_stmt_vars.
2206         (compute_points_to_sets): Process call-used and call-clobbered
2207         vars for call statements.
2208         (delete_points_to_sets): Free call_stmt_vars.
2209
2210 2010-04-13  Richard Guenther  <rguenther@suse.de>
2211
2212         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2213         Only add RW dependence for dependence distance zero.
2214         Adjust maximal vectorization factor according to dependences.
2215         Move alignment handling ...
2216         (vect_find_same_alignment_drs): ... here.  New function.
2217         (vect_analyze_data_ref_dependences): Adjust.
2218         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2219         (vect_analyze_data_refs): Adjust minimal vectorization factor
2220         according to data references.
2221         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2222         dependences before determining the vectorization factor.
2223         Analyze alignment after determining the vectorization factor.
2224         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2225         dependences before alignment.
2226         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2227         Adjust prototype.
2228         (vect_analyze_data_refs): Likewise.
2229         (MAX_VECTORIZATION_FACTOR): New define.
2230
2231 2010-04-13  Duncan Sands  <baldrick@free.fr>
2232
2233         * except.h (lang_eh_type_covers): Remove.
2234         * except.c (lang_eh_type_covers): Likewise.
2235
2236 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2237             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2238
2239         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2240         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2241         UNITS_PER_LONG where it is ABI relevant.
2242         (s390_return_addr_rtx): Likewise.
2243         (s390_back_chain_rtx): Likewise.
2244         (s390_frame_area): Likewise.
2245         (s390_frame_info): Likewise.
2246         (s390_initial_elimination_offset): Likewise.
2247         (save_gprs): Likewise.
2248         (s390_emit_prologue): Likewise.
2249         (s390_emit_epilogue): Likewise.
2250         (s390_function_arg_advance): Likewise.
2251         (s390_function_arg): Likewise.
2252         (s390_va_start): Likewise.
2253         (s390_gimplify_va_arg): Likewise.
2254         (s390_function_profiler): Likewise.
2255         (s390_optimize_prologue): Likewise.
2256         (s390_rtx_costs): Likewise.
2257         (s390_secondary_reload): Likewise.
2258         (s390_promote_function_mode): Likewise.
2259         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2260         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2261         registers available.
2262         (s390_unwind_word_mode): New function.
2263         (s390_function_value): Split 64 bit values into register pair if
2264         used as return value.
2265         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2266         function call parameters.  Handle parallels.
2267         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2268         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2269         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2270         (s390_expand_setmem): Remove unused variable src_addr.
2271         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2272         deal with 64 bit registers.
2273         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2274         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2275         (UNITS_PER_LONG): New macro.
2276         * libjava/include/s390-signal.h: Define extended ucontext
2277         structure containing the upper halfs of the 64 bit registers.
2278
2279 2010-04-13  Simon Baldwin  <simonb@google.com>
2280
2281         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2282
2283 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2284
2285         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2286         rvalue on the RHS if the LHS is of a non-renamable type.
2287         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2288
2289 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2290
2291         * gcc.c (cc1_options): Handle -iplugindir before processing
2292         the cc1 spec. Only add -iplugindir once.
2293         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2294         found.
2295         * common.opt (iplugindir): Remove `Separate' property, initialize.
2296         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2297         option.
2298         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2299         (distclean): Remove plugin dir.
2300         * doc/invoke.texi: Document -iplugindir.
2301
2302 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2303
2304         * doc/plugins.texi (Loading Plugins): Document short
2305         -fplugin=foo option.
2306         (Plugin API): Mention default_plugin_dir_name function.
2307
2308         * gcc.c (find_file_spec_function): Add new declaration.
2309         (static_spec_func): Use it for "find-file".
2310         (find_file_spec_function): Add new function.
2311         (cc1_options): Add -iplugindir option if -fplugin* options found.
2312
2313         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2314
2315         * plugin.c (add_new_plugin): Updated comment, and handle short
2316         plugin name.
2317         (default_plugin_dir_name): Added new function.
2318
2319         * common.opt (iplugindir): New option to set the plugin directory.
2320
2321 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2322
2323         * config/i386/i386.md (any_rotate): New code iterator.
2324         (rotate_insn): New code attribute.
2325         (rotate): Ditto.
2326         (SWIM124): New mode iterator.
2327         (<rotate_insn>ti3): New expander.
2328         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2329         any_rotate code iterator.
2330         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2331         using any_rotate code iterator and SWIM124 mode iterator.
2332         (ix86_rotlti3): New insn_and_split pattern.
2333         (ix86_rotrti3): Ditto.
2334         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2335         ix86_rotl{di,ti}3 patterns.
2336         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2337         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2338         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2339         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2340         code iterator and SWI mode iterator.
2341         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2342         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2343         code iterator.
2344         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2345         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2346         (bswap rotatert splitter): Add splitter.
2347         (bswap splitter): Macroize splitter using any_rotate code iterator.
2348         Add insn predicate to split only for TARGET_USE_XCHGB or when
2349         optimizing function for size.
2350
2351 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2352
2353         * config/pa/pa.c (emit_move_sequence): Remove use of
2354         deleted variable flag_argument_noalias.
2355
2356 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2357
2358         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2359         configurations.
2360         Add to unsupported targets list.
2361         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2362         sparc*-sun-solaris2.[567]* from target lists.
2363         * configure: Regenerate.
2364         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2365         removal.
2366         Remove Solaris 7 patch references.
2367         (Specific, sparc-sun-solaris2.7): Removed.
2368         (sparc-sun-solaris2*): Update Solaris 7 example.
2369         (sparc64-*-solaris2*): Likewise.
2370
2371 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2372
2373         * config.build (alpha*-dec-osf4*): Remove.
2374         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2375         of obsolete configurations.
2376         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2377         support.
2378         * config/alpha/t-osf4: Renamed to ...
2379         * config/alpha/t-osf5: ... this.
2380         * config/alpha/osf.h: Renamed to ...
2381         * config/alpha/osf5.h: ... this.
2382         Merged old osf5.h contents.
2383         Update comments.
2384         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2385         (EXTRA_SPECS): Removed.
2386         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2387         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2388         Document that.
2389
2390 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2391
2392         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2393
2394 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2395
2396         PR/43702
2397         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2398         __thiscall convention.
2399
2400 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2401
2402         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2403         orig_base.
2404         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2405
2406 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2407
2408         * function.c (assign_parms_initialize_all): Add unused attribute
2409         to fntype.
2410
2411 2010-04-12  Richard Guenther  <rguenther@suse.de>
2412
2413         * gsstruct.def (GSS_CALL): New.
2414         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
2415         * gimple.h: Include tree-ssa-alias.h.
2416         (struct gimple_statement_call): New.
2417         (union gimple_statement_struct_d): Add gimple_call member.
2418         (gimple_call_reset_alias_info): Declare.
2419         (gimple_call_use_set): New function.
2420         (gimple_call_clobber_set): Likewise.
2421         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
2422         * gimple.c (gimple_call_reset_alias_info): New function.
2423         (gimple_build_call_1): Call it.
2424         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2425         * tree-inline.c (remap_gimple_stmt): Likewise.
2426         (expand_call_inline): Remove callused handling.
2427         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
2428         * tree-dfa.c (dump_variable): Likewise.
2429         * tree-parloops.c (parallelize_loops): Likewise.
2430         * tree-ssa.c (init_tree_ssa): Likewise.
2431         (delete_tree_ssa): Likewise.
2432         * tree-flow-inline.h (is_call_used): Remove.
2433         * tree-flow.h (struct gimple_df): Remove callused member.
2434         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
2435         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
2436         (ref_maybe_used_by_call_p_1): Simplify.
2437         (call_may_clobber_ref_p_1): Likewise.
2438         * tree-ssa-structalias.c (compute_points_to_sets): Set
2439         the call stmt used and clobbered sets.
2440         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
2441         (find_tail_calls): Verify the tail call.
2442
2443 2010-04-12  Richard Guenther  <rguenther@suse.de>
2444
2445         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
2446         single-iteration always-inline inlining.
2447         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
2448         (cgraph_decide_inlining): Do not handle always-inline specially.
2449         (try_inline): Remove always-inline cycle detection special case.
2450         Do not recurse on always-inlines.
2451         (cgraph_early_inlining): Do not iterate if not optimizing.
2452         (cgraph_gate_early_inlining): remove.
2453         (pass_early_inline): Run unconditionally.
2454         (gate_cgraph_decide_inlining): New function.
2455         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
2456         not inlining or optimizing.
2457         (cgraph_decide_inlining_of_small_functions): Also consider
2458         always-inline functions.
2459         (cgraph_default_inline_p): Return true for nodes which should
2460         disregard inline limits.
2461         (estimate_function_body_sizes): Assume zero size and time for
2462         nodes which are marked as disregarding inline limits.
2463         (cgraph_decide_recursive_inlining): Do not perform recursive
2464         inlining on always-inline nodes.
2465
2466 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2467
2468         PR bootstrap/43699
2469         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2470         for exprs satisfying handled_component_p.
2471
2472 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2473
2474         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2475         non-constant aggregate elements.
2476
2477         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2478         is a real initialization.
2479
2480 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2481
2482         PR c/36774
2483         * c-decl.c (start_function): Move forward check for nested function.
2484
2485 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2486
2487         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2488         * config/sh/sh.c: Include reload.h.
2489         (sh_legitimize_reload_address): New.
2490         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2491         sh_legitimize_reload_address.
2492
2493 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2494
2495         * config/sh/sh.md (*movqi_pop): New insn pattern.
2496         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2497
2498 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2499
2500         * config/i386/i386.md (any_shiftrt): New code iterator.
2501         (shiftrt_insn): New code attribute.
2502         (shiftrt): Ditto.
2503         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2504         using any_shiftrt code iterator.
2505         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2506         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2507         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2508         pattern from corresponding peephole2 patterns.
2509         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2510         using any_shiftrt code iterator.
2511         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2512         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2513         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2514         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2515         *{ashr,lshr}<mode>3_cmp_zext.
2516         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2517
2518 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2519
2520         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2521         scratch register.
2522         (*lshr<mode>3_cconly): Ditto.
2523
2524 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2525
2526         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2527         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2528         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2529         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2530         DWI mode iterator.
2531         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2532         from corresponding peephole2 patterns.
2533         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2534         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2535         and *lshrdi3_1_rex64 using SWI mode iterator.
2536         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2537         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2538         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2539         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2540         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2541         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2542         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2543         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2544         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2545         SWI mode iterator.
2546
2547 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2548
2549         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2550         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2551         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2552         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2553         DWI mode iterator.
2554         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2555         from corresponding peephole2 patterns.
2556         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2557         (ashrsi3_cvt): Rename from ashrsi3_31.
2558         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2559         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2560         and x86_64_shift_adj_3 using SWI48 mode iterator.
2561         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2562         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2563         and *ashrdi3_1_rex64 using SWI mode iterator.
2564         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2565         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2566         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2567         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2568         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2569         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
2570         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
2571         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
2572         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
2573         SWI mode iterator.
2574         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
2575         * config/i386/i386.c (ix86_split_ashr): Update for renamed
2576         x86_shift<mode>_adj_3 expanders.
2577
2578 2010-04-10  Wei Guozhi  <carrot@google.com>
2579
2580         PR target/42601
2581         * config/arm/arm.c (arm_pic_static_addr): New function.
2582         (legitimize_pic_address): Call arm_pic_static_addr when it detects
2583         a static symbol.
2584         (arm_output_addr_const_extra): Output expression for new pattern.
2585         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
2586
2587 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
2588
2589         * ira-costs.c (record_reg_classes): Ignore alternatives that are
2590         not enabled.
2591
2592         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
2593         * web.c: Include "insn-config.h" and "recog.h".
2594         (union_match_dups): New function.
2595         (web_main): Call it.
2596         (union_defs): Don't try to recognize match_dups.
2597
2598         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
2599         if doing so would replace the entire pattern.
2600
2601 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2602
2603         PR target/43707
2604         PR target/43709
2605         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
2606         and splitter pattern.  Change splitter operand 1 predicate to
2607         nonmemory_operand.
2608
2609 2010-04-09  Martin Jambor  <mjambor@suse.cz>
2610
2611         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
2612         lattices are addresses of CONST_DECLs with the same initial value.
2613         (ipcp_print_all_lattices): Print values of CONST_DECLs.
2614         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2615
2616 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2617             Bernd Schmidt  <bernds@codesourcery.com>
2618
2619         * loop-invariant.c (replace_uses): New static function.
2620         (move_invariant_reg): Use it to ensure we can replace the uses.
2621
2622 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2623
2624         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
2625         function template.
2626         (picochip_override_options): Enable section anchors only above -O1.
2627         (picochip_reorg): Fixed a couple of build warnings.
2628
2629 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2630
2631         * configure.ac (plugin -rdynamic test): Log result.
2632         * configure: Regenerate.
2633         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
2634         (RDYNAMIC_SPEC): Define.
2635         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
2636
2637 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2638
2639         * configure.ac: Determine Sun ld version numbers.
2640         (comdat_group): Restrict GNU ld version checks to gld.
2641         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
2642         (enable_comdat): Support --enable-comdat.
2643         * configure: Regenerate.
2644         * doc/install.texi (Configuration): Document --enable-comdat.
2645
2646 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2647
2648         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
2649         * config/sol2-gld.h: ... here.
2650         * config.gcc (sparc*-*-solaris2*): Reflect this.
2651         (i[34567]86-*-solaris2*): Use it.
2652
2653 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
2654
2655         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
2656         setup_clocks_p.
2657         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
2658
2659 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2660
2661         PR 42965
2662         * diagnostic.c (diagnostic_initialize): Initialize
2663         some_warnings_are_errors.
2664         (diagnostic_finish): New.
2665         (diagnostic_action_after_output): Call it before exiting.
2666         (diagnostic_report_diagnostic): Do not print message here. Set
2667         some_warnings_are_errors.
2668         * diagnostic.h (diagnostic_context): Delete
2669         issue_warnings_are_errors_message. Add some_warnings_are_errors.
2670         (diagnostic_finish): Declare.
2671         * toplev.c (toplev_main): Call it before exit.
2672
2673 2010-04-09  Jason Merrill  <jason@redhat.com>
2674
2675         PR c++/42623
2676         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
2677         for incomplete type.
2678
2679         PR c++/41788
2680         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
2681         based on a warning flag.
2682
2683 2010-04-09  Richard Guenther  <rguenther@suse.de>
2684
2685         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2686
2687 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2688
2689         PR bootstrap/43684
2690         * varasm.c (default_assemble_visibility): Wrap vars that are
2691         set, but unused, by targets without GAS.
2692         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
2693         Remove set, but unused, vars.
2694         (rs6000_legitimize_tls_address): Likewise.
2695         (altivec_expand_dst_builtin): Likewise.
2696         * config/darwin.c (machopic_classify_symbol): Likewise.
2697         (machopic_indirection_name): Likewise.
2698
2699 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * config/i386/i386.md (DWI): New mode iterator.
2702         (S): New mode attribute.
2703         (shift_operand): Ditto.
2704         (shift_immediate_operand): Ditto.
2705         (ashl_input_operand): Ditto.
2706         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
2707         using SDWIM mode iterator.
2708         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2709         pattern from *ashl{di,ti}3_1 and corresponding splitters using
2710         DWI mode iterator.
2711         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
2712         from corresponding peephole2 patterns.
2713         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
2714         and x86_64_shift_adj_1 using SWI48 mode iterator.
2715         (x86_shift<mode>_adj_2): Ditto.
2716         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
2717         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
2718         using SWI48 mode iterator.
2719         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
2720         *ashldi3_cmp_rex64 using SWI mode iterator.
2721         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
2722         *ashldi3_cconly_rex64 using SWI mode iterator.
2723         * config/i386/i386.c (ix86_split_ashl): Update for renamed
2724         x86_shift<mode>_adj_{1,2}.
2725         (ix86_split_ashr): Ditto.
2726         (ix86_split_lshr): Ditto.
2727
2728 2010-04-09  Richard Guenther  <rguenther@suse.de>
2729
2730         * target.h (builtin_conversion): Pass in input and output types.
2731         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
2732         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
2733         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
2734         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
2735
2736         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
2737         Handle AVX modes.
2738         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
2739
2740 2010-04-09  Richard Guenther  <rguenther@suse.de>
2741
2742         PR target/43152
2743         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
2744
2745 2010-04-09  Richard Guenther  <rguenther@suse.de>
2746
2747         * tree-vectorizer.h (struct _stmt_vec_info): Document
2748         that vectype is the type of the LHS.
2749         (supportable_widening_operation, supportable_narrowing_operation):
2750         Get both input and output vector types as arguments.
2751         (vect_is_simple_use_1): Declare.
2752         (get_same_sized_vectype): Likewise.
2753         * tree-vect-loop.c (vect_determine_vectorization_factor):
2754         Set STMT_VINFO_VECTYPE to the vector type of the def.
2755         (vectorizable_reduction): Adjust.
2756         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
2757         Adjust.  Specify the output vector type.
2758         (vect_pattern_recog_1): Adjust.
2759         * tree-vect-stmts.c (get_same_sized_vectype): New function.
2760         (vectorizable_call): Adjust.
2761         (vectorizable_conversion): Likewise.
2762         (vectorizable_operation): Likewise.
2763         (vectorizable_type_demotion): Likewise.
2764         (vectorizable_type_promotion): Likewise.
2765         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
2766         the def.
2767         (vect_is_simple_use_1): New function.
2768         (supportable_widening_operation): Get both input and output
2769         vector types.
2770         (supportable_narrowing_operation): Likewise.
2771         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
2772
2773 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
2774
2775         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
2776         __thiscall and _thiscall as predefined macros.
2777         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
2778         thiscall attribute handling.
2779         (ix86_comp_type_attributes): Likewise.
2780         (ix86_function_regparm): Likewise.
2781         (ix86_return_pops_args): Likewise.
2782         (init_cumulative_args): Likewise.
2783         (find_drap_reg): Likewise.
2784         (ix86_static_chain): Likewise.
2785         (x86_this_parameter): Likewise.
2786         (x86_output_mi_thunk): Likewise.
2787         (ix86_attribute_table): Add description for thiscall attribute.
2788         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
2789         * doc/extend.texi: Add documentation for thiscall.
2790
2791 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2792
2793         PR c++/28584
2794         * c.opt (Wint-to-pointer-cast): Available in C++.
2795         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
2796
2797 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2798
2799         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
2800         * calls.c (expand_call): Pass the function type to aggregate_value_p.
2801         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
2802         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
2803         function type instead.  Reorder and simplify checks.
2804
2805         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
2806
2807 2010-04-08  Jing Yu  <jingyu@google.com>
2808             Zdenek Dvorak  <ook@ucw.cz>
2809
2810         PR tree-optimization/42720
2811         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
2812         loop unswitch conditions here from ...
2813         (tree_unswitch_single_loop): ... here.
2814
2815 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2816
2817         * tree-if-conv.c: Fix comments and simplify logic.
2818
2819 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2820
2821         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2822         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2823         (main_tree_if_conversion): Update call to tree_if_conversion.
2824
2825 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2826
2827         PR 42485
2828         * doc/invoke.texi (-b,-V): Delete.
2829         * doc/tm.texi: Do not mention -b.
2830         * gcc.c (display_help): Delete -b and -V.
2831         (process_command): Delete -b and -V.
2832         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2833
2834 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2835             Wolfgang Gellerich  <gellerich@de.ibm.com>
2836
2837         Implement target hook for loop unrolling
2838         * target.h (loop_unroll_adjust): Add a new target hook function.
2839         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2840         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2841         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2842         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2843         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2844         target hook.
2845         (decide_unroll_stupid): Likewise.
2846
2847 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2848
2849         PR target/43643
2850         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2851
2852 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2853
2854         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2855         (Specific, *-*-solaris2*): Likewise.
2856         Don't prefer Sun as over GNU as.
2857
2858 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2859
2860         * config/s390/s390.c (override_options): Adjust the z10
2861           defaults for max-unroll-times, max-completely-peeled-insns
2862           and max-completely-peel-times.
2863
2864 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2865
2866         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2867         instructions for z10.
2868         (s390_expand_setmem): Likewise.
2869         (s390_expand_cmpmem): Likewise.
2870
2871 2010-04-08  Richard Guenther  <rguenther@suse.de>
2872
2873         PR tree-optimization/43679
2874         * tree-ssa-pre.c (eliminate): Only propagate copies.
2875
2876 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2877
2878         PR bootstrap/43681
2879         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2880         set but not used variable warning.
2881
2882 2010-04-08  Wei Guozhi  <carrot@google.com>
2883
2884         PR target/41653
2885         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2886         (arm_size_rtx_costs): Call the new function when optimized for size.
2887
2888 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2889
2890         PR debug/43670
2891         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2892         op0 is not a MEM, just return NULL instead of assertion
2893         failure.
2894         (discover_nonconstant_array_refs): Don't walk debug stmts.
2895
2896 2010-04-08  Doug Kwan  <dougkwan@google.com>
2897
2898         * configure.ac: Recognize gold and do not use its version number
2899         to test ld features.
2900         * configure: Regenerate.
2901
2902 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2903
2904         PR middle-end/40815
2905         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2906         (negate_value): Move code to push elements to broken_up_substracts ...
2907         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2908         negative pair to plus_negates.
2909         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2910
2911 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2912
2913         * doc/install.texi (Configuration): Move description of
2914         --enable-lto, --with-libelf*, --enable-gold from Java section to
2915         general section.
2916
2917         * doc/generic.texi (Working with declarations)
2918         (Function Properties, C and C++ Trees): Fix typos.
2919         * doc/sourcebuild.texi (Top Level): Likewise.
2920
2921 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2922
2923         PR c/18624
2924         * tree.h (DECL_READ_P): Define.
2925         (struct tree_decl_common): Add decl_read_flag.
2926         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2927         a set but not used warning.
2928         (merge_decls): Merge DECL_READ_P flag.
2929         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2930         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2931         * c-common.c (handle_used_attribute, handle_unused_attribute):
2932         Likewise.
2933         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2934         New prototypes.
2935         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2936         New functions.
2937         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2938         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2939         c_parser_binary_expression, c_parser_cast_expression,
2940         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2941         Call default_function_array_read_conversion instead of
2942         default_function_array_conversion where needed.
2943         (c_parser_unary_expression, c_parser_conditional_expression,
2944         c_parser_postfix_expression_after_primary, c_parser_initelt):
2945         Likewise.  Call mark_exp_read where needed.
2946         (c_parser_statement_after_labels, c_parser_asm_operands,
2947         c_parser_typeof_specifier, c_parser_sizeof_expression,
2948         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2949         where needed.
2950         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2951         New.
2952         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2953         (warn_unused_but_set_parameter): Default to warn_unused
2954         && extra_warnings.
2955         * doc/invoke.texi: Document -Wunused-but-set-variable and
2956         -Wunused-but-set-parameter.
2957
2958         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2959         used count variable.
2960         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2961         when operandN variables aren't used in the body of the expander
2962         or splitter.
2963         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2964         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2965         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2966         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2967         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2968         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2969         * tree.c (PROCESS_ARG): Likewise.
2970
2971 2010-04-07  Simon Baldwin  <simonb@google.com>
2972
2973         * diagnostic.h (diagnostic_override_option_index): New macro to
2974         set a diagnostic's option_index.
2975         * c-tree.h (c_cpp_error): Add warning reason argument.
2976         * opts.c (_warning_as_error_callback): New.
2977         (register_warning_as_error_callback): Store callback for
2978         warnings enabled via enable_warning_as_error.
2979         (enable_warning_as_error): Call callback, minor code tidy.
2980         * opts.h (register_warning_as_error_callback): Declare.
2981         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2982         response to -Werror=.
2983         (c_common_init_options): Register warning_as_error_callback in opts.c.
2984         * common.opt: Add -Wno-cpp option.
2985         * c-common.c (struct reason_option_codes_t): Map cpp warning
2986         reason codes to gcc option indexes.
2987         * (c_option_controlling_cpp_error): New function, lookup the gcc
2988         option index for a cpp warning reason code.
2989         * (c_cpp_error): Add warning reason argument, call
2990         c_option_controlling_cpp_error for diagnostic_override_option_index.
2991         * doc/invoke.texi: Document -Wno-cpp.
2992
2993 2010-04-07  Richard Guenther  <rguenther@suse.de>
2994
2995         * ipa-reference.c (mark_load): Use get_base_address.
2996         (mark_store): Likewise.
2997
2998         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2999         inserting GIMPLE_NOPs into the IL.
3000         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3001         Explicitly strip handled components and indirect references.
3002
3003         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3004         folding address expressions.
3005         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3006         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3007         operand_equal_p to compare decls.
3008         (ptr_deref_may_alias_decl_p): Likewise.
3009         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3010         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3011         Handle reversed comparison ops.
3012         * tree-sra.c (asm_visit_addr): Use get_base_address.
3013         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3014         * ipa-reference.c (mark_address): Use get_base_address.
3015
3016 2010-04-07  Richard Guenther  <rguenther@suse.de>
3017
3018         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3019         Propagate constants everywhere.
3020
3021 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3022
3023         PR debug/43516
3024         * tree.c (MAX_INT_CACHED_PREC): Define.
3025         (nonstandard_integer_type_cache): New array.
3026         (build_nonstandard_integer_type): Cache results for precision
3027         <= MAX_INT_CACHED_PREC.
3028
3029 2010-04-07  Richard Guenther  <rguenther@suse.de>
3030
3031         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3032         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3033         * common.opt: Likewise.
3034         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3035         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3036         (nonoverlapping_memrefs_p): Likewise.
3037         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3038         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3039         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3040         OPT_fargument_noalias_global for backward compatibility.
3041
3042 2010-04-07  Richard Guenther  <rguenther@suse.de>
3043
3044         PR tree-optimization/43270
3045         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3046         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3047         * tree-ssa-pre.c (phi_translate_1): Adjust.
3048         (fully_constant_expression): Split out vn_reference handling to ...
3049         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3050         Fold reads from constant strings.
3051         (vn_reference_lookup): Handle fully constant references.
3052         (vn_reference_lookup_pieces): Likewise.
3053         * Makefile.in (expmed.o-warn): Add -Wno-error.
3054
3055 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3056
3057         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3058
3059 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3060
3061         PR driver/41594
3062         * gcc.c: Add -static-libstdc++ to list of recognized options.
3063
3064 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3065
3066         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3067
3068 2010-04-07  Richard Guenther  <rguenther@suse.de>
3069
3070         PR middle-end/42617
3071         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3072         bases build simple mem attributes to retain points-to information.
3073
3074 2010-04-07  Richard Guenther  <rguenther@suse.de>
3075
3076         PR middle-end/42617
3077         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3078         preserve points-to related information.
3079
3080 2010-04-07  Richard Guenther  <rguenther@suse.de>
3081
3082         PR middle-end/42617
3083         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3084         discard plain indirect references.
3085         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3086         * tree.c (tree_nop_conversion): Likewise.
3087
3088 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3089
3090         PR debug/43628
3091         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3092
3093 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3094
3095         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3096         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3097
3098 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3099
3100         * tree-if-conv.c: Fix indentation and comments.
3101
3102 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3103
3104         * tree-if-conv.c: Sort static functions in topological order.
3105
3106 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3107
3108         * tree-if-conv.c: Fix indentation and comments.
3109
3110 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3111
3112         PR middle-end/43519
3113         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3114         lang_hooks.types.type_for_size instead of
3115         build_nonstandard_integer_type.
3116         When converting an unsigned type to signed, double its precision.
3117         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3118         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3119         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3120         use lb <= ub.
3121
3122 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3123
3124         PR middle-end/43519
3125         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3126         POINTER_PLUS_EXPR for pointer types.
3127
3128 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3129
3130         PR middle-end/43519
3131         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3132         * graphite-clast-to-gimple.c: Include langhooks.h.
3133         (max_signed_precision_type): New.
3134         (max_precision_type): Takes two types as arguments.
3135         (precision_for_value): New.
3136         (precision_for_interval): New.
3137         (gcc_type_for_interval): New.
3138         (gcc_type_for_value): New.
3139         (gcc_type_for_clast_term): New.
3140         (gcc_type_for_clast_red): New.
3141         (gcc_type_for_clast_bin): New.
3142         (gcc_type_for_clast_expr): Split up into several functions.
3143         (gcc_type_for_clast_eq): Rewritten.
3144         (compute_bounds_for_level): New.
3145         (compute_type_for_level_1): New.
3146         (compute_type_for_level): New.
3147         (gcc_type_for_cloog_iv): Removed.
3148         (gcc_type_for_iv_of_clast_loop): Rewritten.
3149         (graphite_create_new_loop): Compute the lower and upper bound types
3150         with gcc_type_for_clast_expr.
3151         (graphite_create_new_loop_guard): Same.
3152         (find_cloog_iv_in_expr): Removed.
3153         (compute_cloog_iv_types_1): Removed.
3154         (compute_cloog_iv_types): Removed.
3155         (gloog): Do not call compute_cloog_iv_types.
3156         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3157         GBB_CLOOG_IV_TYPES.
3158         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3159         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3160         (GBB_CLOOG_IV_TYPES): Removed.
3161
3162 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3163
3164         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3165         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3166         (detect_commutative_reduction): Same.
3167
3168 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3169
3170         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3171         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3172         argument.
3173         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3174         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3175         (rewrite_commutative_reductions_out_of_ssa): Same.
3176         * passes.c (execute_function_todo): Call verify_ssa for every pass
3177         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3178         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3179         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3180         with an extra argument.
3181         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3182         verify_ssa only when the extra argument is true.
3183         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3184         with an extra argument.
3185         (tree_transform_and_unroll_loop): Same.
3186
3187 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3188
3189         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3190         for all the passes of the LNO having LOOP_CLOSED_SSA.
3191         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3192         * tree-loop-distribution.c (pass_loop_distribution): Same.
3193         * tree-pass.h (TODO_verify_loops): Removed.
3194         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3195         (pass_lim): Same.
3196         (pass_tree_unswitch): Same.
3197         (pass_predcom): Same.
3198         (pass_vectorize): Same.
3199         (pass_linear_transform): Same.
3200         (pass_graphite_transforms): Same.
3201         (pass_iv_canon): Same.
3202         (pass_complete_unroll): Same.
3203         (pass_complete_unrolli): Same.
3204         (pass_parallelize_loops): Same.
3205         (pass_loop_prefetch): Same.
3206         (pass_iv_optimize): Same.
3207
3208 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3209
3210         PR middle-end/32824
3211         * passes.c (init_optimization_passes): Move pass_lim before
3212         pass_copy_prop and pass_dce_loop.
3213
3214 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3215
3216         PR target/43667
3217         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3218         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3219         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3220         MULTI_* defines for 4 argument vpermil2p* builtins.
3221
3222 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3223
3224         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3225         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3226         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3227         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3228         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3229         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3230         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3231         Use x86_maybe_negate_const_int to output insn mnemonic.
3232         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3233         check from instruction predicate.  Update comments.
3234         * config/i386/sync.md (sync_add<mode>): Use
3235         x86_maybe_negate_const_int to output insn mnemonic.
3236
3237 2010-04-06  Jan Hubicka  <jh@suse.cz>
3238
3239         PR tree-optimization/42906
3240         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3241         IGNORE_SELF argument.  Set visited_control_parents for fully
3242         processed BBs.
3243         (find_obviously_necessary_stmts): Update call of
3244         mark_control_dependent_edges_necessary.
3245         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3246
3247 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3248
3249         * config/i386/i386.md: Remove comment about 'e' and 'E'
3250         operand modifier.
3251
3252 2010-04-06  Richard Guenther  <rguenther@suse.de>
3253
3254         PR tree-optimization/43627
3255         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3256         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3257         not varying.
3258
3259 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3260
3261         * BASE-VER: Change to 4.6.0.
3262
3263         PR target/43638
3264         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3265         handling.
3266
3267 2010-04-06  Richard Guenther  <rguenther@suse.de>
3268
3269         PR middle-end/43661
3270         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3271
3272 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3273
3274         * doc/invoke.texi (Optimize Options): Document that LTO
3275         won't remove object access purely due to incompatible
3276         declarations.
3277
3278 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3279
3280         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3281         Initialize variable.
3282
3283 2010-04-03  Richard Guenther  <rguenther@suse.de>
3284
3285         PR middle-end/42509
3286         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3287         require a non-NULL MEM_OFFSET.
3288
3289 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3290
3291         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3292         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3293         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3294         config/alpha/predicates.md, config/arm/arm.md,
3295         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3296         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3297         config/darwin9.h, config/darwin.c, config/darwin.h,
3298         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3299         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3300         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3301         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3302         config/mips/mips.md, config/mn10300/mn10300.c,
3303         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3304         config/rs6000/aix.h, config/rs6000/dfp.md,
3305         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3306         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3307         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3308         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3309         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3310         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3311         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3312         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3313         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3314         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3315         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3316         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3317         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3318         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3319         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3320         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3321         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3322         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3323         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3324         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3325         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3326         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3327         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3328         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3329         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3330         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3331         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3332         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3333         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3334         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3335         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3336         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3337         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3338         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3339         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3340         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3341
3342 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3343
3344         PR other/43620
3345         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3346         * aclocal.m4: Regenerate.
3347
3348 2010-04-02  Richard Guenther  <rguenther@suse.de>
3349
3350         PR tree-optimization/43629
3351         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3352         if we have seen a constant value.
3353
3354 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3355
3356         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3357
3358 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3359
3360         PR target/43469
3361         * arm.c (legitimize_tls_address): Adjust call to
3362         gen_tls_load_dot_plus_four.
3363         (arm_note_pic_base): New function.
3364         (arm_cannot_copy_insn_p): Use it.
3365         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3366         constraint.
3367
3368 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3369
3370         PR bootstrap/43531
3371
3372         Revert:
3373         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3374
3375         * Makefile.in ($(out_object_file)): Depend on
3376         gt-$(basename $(notdir $(out_file))).h.
3377
3378 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3379
3380         * config.gcc (lm32-*-rtems*): Add t-lm32.
3381
3382 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3383
3384         * config.gcc: Add lm32-*-rtems*.
3385         * config/lm32/rtems.h: New file.
3386
3387 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3388
3389         PR target/42609
3390         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3391
3392 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3393
3394         * dwarf2out.c (output_compilation_unit_header): For
3395         -gdwarf-4 use version 4 instead of version 3.
3396         (output_line_info): For version 4 and above emit additional
3397         maximum ops per insn header field.
3398         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3399
3400         * dwarf2out.c (is_c_family, is_java): Remove.
3401         (lower_bound_default): New function.
3402         (add_bound_info, gen_descr_array_type_die): Use it.
3403
3404 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3405
3406         PR debug/43325
3407         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3408         re-declaration when it happens in a function.
3409
3410 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
3411
3412         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
3413         (cgraph_remove_function_insertion_hook): Same.
3414         (cgraph_call_function_insertion_hooks): Same.
3415
3416 2010-04-01  Richard Guenther  <rguenther@suse.de>
3417
3418         PR middle-end/43614
3419         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
3420         and TREE_THIS_VOLATILE.
3421         (copy_ref_info): Likewise.
3422         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
3423         * tree.c (build6_stat): Ignore side-effects of all but arg5
3424         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
3425         TARGET_MEM_REF.
3426
3427 2010-04-01  Richard Guenther  <rguenther@suse.de>
3428
3429         PR tree-optimization/43607
3430         * ipa-type-escape.c (check_call): Do not access non-existing
3431         arguments.
3432
3433 2010-04-01  Richard Guenther  <rguenther@suse.de>
3434
3435         PR middle-end/43602
3436         Revert
3437         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3438                     Jack Howarth <howarth@bromo.med.uc.edu>
3439
3440         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3441         variables TLS.
3442
3443 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3444
3445         * doc/install.texi (Prerequisites): Document libelf usability on
3446         IRIX 5/6 and Solaris 2.
3447         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
3448         Update GNU as, GNU ld requirements.
3449         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
3450         Document Sun Studio compiler download.
3451         Update and simplify as, ld recommendations.
3452         (Specific, *-*-solaris2.7): Note obsoletion, removal.
3453
3454 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3455
3456         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
3457         with_tune_32 to pentium4.
3458
3459 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
3460
3461         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
3462
3463 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3464
3465         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
3466         obsoletion, removal.
3467         Update IDO URL.
3468         Document GNU as requirement.
3469         Update configure requirements.
3470         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3471         Recomment IRIX 6.5.18+.
3472         Document IDF/IDL requirement.
3473         Document GNU as requirement.
3474         Document GNU ld bootstrap failure.
3475         Remove freeware.sgi.com reference.
3476
3477 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3478
3479         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3480         UNIX V4.0, V5.0 obsoletion, removal.
3481         Remove --with-gc=simple reference.
3482         Update VM requirements during bootstrap.
3483         Remove -oldas bootstrap description.
3484         Update binutils reference.
3485         Remove comparison failure note.
3486
3487 2010-03-31  Richard Guenther  <rguenther@suse.de>
3488             Zdenek Dvorak  <ook@ucw.cz>
3489             Sebastian Pop  <sebastian.pop@amd.com>
3490
3491         PR middle-end/43464
3492         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3493         with multiple arguments.
3494         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3495
3496 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3497
3498         * graphite-dependences.c (print_pddr): Call print_pdr with an
3499         extra argument.
3500         * graphite-poly.c (debug_pdr): Add an extra argument for the
3501         verbosity level.
3502         (print_pdr): Same.
3503         (print_pbb_domain): Same.
3504         (print_pbb): Same.
3505         (print_scop_context): Same.
3506         (print_scop): Same.
3507         (print_cloog): Same.
3508         (debug_pbb_domain): Same.
3509         (debug_pbb): Same.
3510         (print_pdrs): Same.
3511         (debug_pdrs): Same.
3512         (debug_scop_context): Same.
3513         (debug_scop): Same.
3514         (debug_cloog): Same.
3515         (print_scop_params): Same.
3516         (debug_scop_params): Same.
3517         (print_iteration_domain): Same.
3518         (print_iteration_domains): Same.
3519         (debug_iteration_domain): Same.
3520         (debug_iteration_domains): Same.
3521         (print_scattering_function): Same.
3522         (print_scattering_functions): Same.
3523         (debug_scattering_function): Same.
3524         (debug_scattering_functions): Same.
3525         * graphite-poly.h (debug_pdr): Update declaration.
3526         (print_pdr): Same.
3527         (print_pbb_domain): Same.
3528         (print_pbb): Same.
3529         (print_scop_context): Same.
3530         (print_scop): Same.
3531         (print_cloog): Same.
3532         (debug_pbb_domain): Same.
3533         (debug_pbb): Same.
3534         (print_pdrs): Same.
3535         (debug_pdrs): Same.
3536         (debug_scop_context): Same.
3537         (debug_scop): Same.
3538         (debug_cloog): Same.
3539         (print_scop_params): Same.
3540         (debug_scop_params): Same.
3541         (print_iteration_domain): Same.
3542         (print_iteration_domains): Same.
3543         (debug_iteration_domain): Same.
3544         (debug_iteration_domains): Same.
3545         (print_scattering_function): Same.
3546         (print_scattering_functions): Same.
3547         (debug_scattering_function): Same.
3548         (debug_scattering_functions): Same.
3549
3550 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3551
3552         * graphite-poly.c (print_scattering_function_1): New.
3553         (print_scattering_function): Call it.
3554         (print_scop_params): Remove spaces at the end of lines.
3555         (print_cloog): New.
3556         (debug_cloog): New.
3557         * graphite-poly.h (print_cloog): Declared.
3558         (debug_cloog): Declared.
3559
3560 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3561
3562         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
3563         in loop->header.
3564         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
3565         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
3566         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
3567         to switch between adding the IV bump in loop->latch or in loop->header.
3568
3569 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3570
3571         * graphite-poly.c (print_scattering_function): Pretty print following
3572         the scoplib format.
3573         (print_pdr): Same.
3574         (print_pbb_domain): Same.
3575         (dump_gbb_cases): Same.
3576         (dump_gbb_conditions): Same.
3577         (print_pdrs): Same.
3578         (print_pbb): Same.
3579         (print_scop_params): Same.
3580         (print_scop_context): Same.
3581         (print_scop): Same.
3582         (print_pbb_body): New.
3583         (lst_indent_to): New.
3584         (print_lst): Start new lines with a #.
3585         * graphite-poly.h (pbb_bb): New.
3586         (pbb_index): Use pbb_bb.
3587         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
3588         disjuncts.
3589         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
3590
3591 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3592
3593         * dwarf2out.c (size_of_die): For -gdwarf-4 use
3594         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
3595         and 0 instead of 1 for dw_val_class_flag.
3596         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
3597         dw_val_class_range_list, dw_val_class_loc_list,
3598         dw_val_class_lineptr and dw_val_class_macptr, use
3599         DW_FORM_flag_present for dw_val_class_flag and
3600         DW_FORM_exprloc for dw_val_class_loc.
3601         (output_die): For -gdwarf-4 print dw_val_class_loc
3602         size as uleb128 instead of 1 or 2 bytes and don't print
3603         anything for dw_val_class_flag.
3604
3605         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
3606         instead of cselib_lookup following by tweaking locs->setting_insn.
3607
3608         PR bootstrap/43596
3609         * cselib.c (cselib_process_insn): Clear cselib_current_insn
3610         even before returning from label, setjmp call or volatile asm
3611         handling.
3612
3613 2010-03-31  Richard Guenther  <rguenther@suse.de>
3614
3615         PR middle-end/43600
3616         * cgraphunit.c (cgraph_output_in_order): Do not allocate
3617         temporary data on stack.
3618
3619 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3620
3621         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
3622         (PUSHSECTION_ASM_OP): Remove.
3623         (POPSECTION_ASM_OP): Remove.
3624         (PUSHSECTION_FORMAT): Remove.
3625         * config/sol2.h (PUSHSECTION_FORMAT): Define.
3626         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
3627         * config/sol2.c (solaris_output_init_fini): Use it.
3628
3629 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3630
3631         PR 43574
3632         * opt-functions.awk (var_type_struct): Use signed char type
3633         for simple variables.
3634
3635 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3636
3637         * config/sol2.c: Include output.h.
3638         (solaris_assemble_visibility): New function.
3639         * config/t-sol2 (sol2.o): Add output.h dependency.
3640         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
3641         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
3642         Redefine.
3643
3644 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3645
3646         PR target/43580
3647         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
3648         V2SImode or XFmode on PRE_DEC.
3649
3650         PR debug/43557
3651         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
3652         BLKmode.
3653
3654 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3655
3656         PR 43562
3657         * reload.h (caller_save_initialized_p): Declare.
3658         * toplev.c (backend_init_target): Don't call
3659         init_caller_save but set caller_save_initialized_p to false.
3660         * caller-save.c (caller_save_initialized_p): Define.
3661         (init_caller_save): Check caller_save_initialized_p.
3662         * ira.c (ira): Call init_caller_save if flag_caller_saves.
3663
3664 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3665
3666         PR target/39048
3667         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
3668         and soft-fp/t-softfp to tmake_file.
3669         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
3670         (LIBGCC2_TF_CEXT): Define.
3671         (TF_SIZE): Define.
3672
3673 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
3674
3675         PR debug/42977
3676         * cselib.c (n_useless_values): Document handling of debug locs.
3677         (n_useless_debug_values, n_debug_values): New variables.
3678         (new_elt_loc_list): Don't add to debug values, keep count.
3679         (promote_debug_loc): New.
3680         (cselib_reset_table): Zero new variables.
3681         (entry_and_rtx_equal_p): Promote debug locs.
3682         (discard_useless_locs): Increment n_useless_debug_values for
3683         debug values.
3684         (remove_useless_values): Adjust n_useless_values and n_debug_values
3685         with n_useless_debug_values.
3686         (add_mem_for_addr): Promote debug locs.
3687         (cselib_lookup_mem): Likewise.
3688         (cselib_lookup_addr): Renamed to...
3689         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
3690         (cselib_log_lookup): ... this.  Turn into...
3691         (cselib_lookup_addr): ... new wrapper.
3692         (cselib_lookup_from_insn): New.
3693         (cselib_invalidate_regno): Increment n_useless_debug_values for
3694         debug values.
3695         (cselib_invalidate_mem): Likewise.
3696         (cselib_process_insn): Take n_deleted and n_debug_values into
3697         account to guard remove_useless_value call.
3698         (cselib_finish): Zero n_useless_debug_values.
3699         * cselib.h (cselib_lookup_from_insn): Declare.
3700         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
3701         (sched_analyze_2): Likewise.
3702
3703 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
3704
3705         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
3706         functions.
3707         (adjust_mems): Replace narrowing SUBREG of expression containing
3708         just PLUS, MINUS, MULT and ASHIFT of registers and constants
3709         with operations in the narrower mode.
3710
3711         PR debug/43593
3712         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
3713         regs_invalidated_by_call instead all call_used_reg_set registers.
3714
3715 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3716
3717         PR middle-end/43430
3718         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
3719         pointer comparisons with types_compatible_p.
3720         * tree-vect-stmts.c (vectorizable_call): Same.
3721         (vectorizable_condition): Same.
3722
3723 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3724
3725         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
3726         stack check if the mask would be zero.
3727
3728 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3729             Jack Howarth <howarth@bromo.med.uc.edu>
3730
3731         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3732         variables TLS.
3733
3734 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
3735
3736         PR other/25232
3737         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
3738         and __unordtf2.
3739         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
3740         Include ___unordxf2 and ___unordtf2.
3741         * config/i386/libgcc-glibc.ver: Do not define inheritance from
3742         GCC_4.4.0 here.
3743
3744 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
3745
3746         * config/lm32/t-lm32: New file.
3747         * config.gcc: Use the above file when targetting lm32.
3748
3749 2010-03-28  Duncan Sands  <baldrick@free.fr>
3750
3751         * Makefile.in (PLUGIN_HEADERS): Add except.h.
3752
3753 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3754
3755         PR middle-end/43431
3756         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3757         Improve vectorization cost model diagnostic.
3758
3759 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3760
3761         PR middle-end/43436
3762         * tree-vect-data-refs.c (vect_analyze_data_refs): When
3763         compute_data_dependences_for_loop returns false, early exit
3764         and output an extra diagnostic for the failed data reference
3765         analysis.
3766
3767 2010-03-29  Richard Guenther  <rguenther@suse.de>
3768
3769         PR tree-optimization/43560
3770         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
3771         (can_sm_ref_p): Treat stores to readonly locations as trapping.
3772
3773 2010-03-29  Jie Zhang  <jie@codesourcery.com>
3774
3775         PR 43564
3776         * toplev.c (process_options): Set optimization_default_node
3777         and optimization_current_node.
3778         * opts.c (decode_options): Don't set optimization_default_node
3779         and optimization_current_node.
3780
3781 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
3782
3783         * config/rtems.h: Abandon -qrtems_debug.
3784
3785 2010-03-28  Jan Hubicka  <jh@suse.cz>
3786
3787         PR tree-optimization/43505
3788         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
3789         map should not be copied.
3790
3791 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3792
3793         PR middle-end/41674
3794         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
3795         cdtors, set DECL_PRESERVE_P.
3796         * ipa.c (cgraph_externally_visible_p): Return true if declaration
3797         should be preseved.
3798
3799 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
3800
3801         PR tree-optimization/43528
3802         * stor-layout.c (place_field): Check that constant fits into
3803         unsigned HWI when skipping calculation of MS bitfield layout.
3804
3805 2010-03-27  Jan Hubicka  <jh@suse.cz>
3806
3807         PR middle-end/43391
3808         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
3809         notice_global_symbol work.
3810
3811 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
3812
3813         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
3814         instead of dwarf2out_decl.
3815         (struct var_loc_node): Remove section_label field.
3816         (dwarf2out_function_decl): New function.
3817         (dwarf2out_var_location): Don't set section_label field.
3818         (dwarf2out_begin_function): Don't empty decl_loc_table here.
3819
3820 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3821
3822         PR tree-optimization/43544
3823         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3824         First argument for builtin vectorized function hook is now a
3825         tree to be able to distinguish between machine specific and
3826         standard builtins.
3827         * targhooks.c (default_builtin_vectorized_function): Ditto.
3828         * targhooks.h (default_builtin_vectorized_function): Ditto.
3829         * target.h (struct gcc_target): Ditto.
3830         * tree-vect-stmts.c (vectorizable_function): Ditto.
3831         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
3832         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3833         Ditto.
3834
3835 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
3836
3837         PR c/43381
3838         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
3839         nested binding iff it is a FUNCTION_DECL.
3840         (store_parm_decls_newstyle): Pass nested=true to bind for
3841         FUNCTION_DECLs amongst parameters.
3842
3843 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3844
3845         * var-tracking.c (vt_expand_loc_callback): Don't run
3846         cselib_expand_value_rtx_cb in dummy mode if
3847         cselib_dummy_expand_value_rtx_cb returned false.
3848
3849         * var-tracking.c (emit_note_insn_var_location): For one part
3850         notes with offset 0, don't add EXPR_LIST around the location.
3851         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
3852         add_location_or_const_value_attribute): Adjust for that change.
3853
3854         PR debug/43540
3855         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
3856         into first operand and location into second.
3857         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
3858         dw_cfi_oprnd_loc for DW_CFA_expression.
3859         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
3860         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
3861         assume first argument is regnum and second argument is location.
3862
3863 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         PR target/42113
3866         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
3867         of scratch register to DImode.  Split to DImode comparison operator.
3868         Use SImode subreg of scratch register in the multiplication.
3869         (*cmp_sadd_sidi): Ditto.
3870         (*cmp_ssub_si): Ditto.
3871         (*cmp_ssub_sidi): Ditto.
3872
3873 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3874
3875         PR target/43524
3876         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
3877         Remove invalid assert and wrong comment.
3878
3879 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3880
3881         PR debug/43516
3882         * flags.h (final_insns_dump_p): New extern.
3883         * final.c (final_insns_dump_p): New variable.
3884         (rest_of_clean_state): Set it before -fdump-final-insns=
3885         dumping, clear afterwards.
3886         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
3887         MEM_ALIAS_SET on MEMs.
3888
3889 2010-03-26  David S. Miller  <davem@davemloft.net>
3890
3891         * configure.ac: Fix sparc GOTDATA_OP bug check.
3892         * configure: Rebuild.
3893
3894 2010-03-26  Alan Modra  <amodra@gmail.com>
3895
3896         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
3897
3898 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3899
3900         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
3901         TLS_SECTION_ASM_FLAG.
3902
3903 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
3904
3905         PR bootstrap/43511
3906         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
3907         Clear first_function_block_is_cold.
3908
3909         PR c/43385
3910         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
3911         argument if the argument is truth_value_p.
3912
3913 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3914
3915         * config/rs6000/constraints.md: Update copyright year for my changes.
3916
3917         PR target/43484
3918         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
3919         used in reg+reg addressing, swap registers.
3920
3921 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3922
3923         PR debug/43293
3924         * target.h (struct gcc_target): Add code_end hook.
3925         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
3926         if not yet defined.
3927         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
3928         * toplev.c (compile_file): Call targetm.asm_out.code_end
3929         hook before unwind info/debug info output.
3930         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
3931         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
3932         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3933         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
3934         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3935         * config/i386/i386.c (ix86_file_end): Renamed to...
3936         (ix86_code_end): ... this.  Make static.  Don't call
3937         file_end_indicate_exec_stack.  Emit unwind info using
3938         final_start_function/final_end_function.
3939         (darwin_x86_file_end): Remove.
3940         (TARGET_ASM_CODE_END): Define.
3941         * config/i386/i386.h (TARGET_ASM_FILE_END,
3942         NEED_INDICATE_EXEC_STACK): Don't define.
3943         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
3944         (TARGET_ASM_FILE_END): Define to darwin_file_end.
3945         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
3946         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
3947
3948         PR target/43498
3949         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
3950         at the beginning and final_end_function at the end.
3951         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3952
3953 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3954
3955         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
3956         and Sun as TLS syntax.
3957         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
3958         * configure: Regenerate.
3959         * config.in: Regenerate.
3960         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
3961         (default_elf_asm_named_section): Use it.
3962         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
3963         (i386_output_dwarf_dtprel): Likewise.
3964         (output_addr_const_extra): Likewise.
3965         (output_pic_addr_const): Lowercase @GOTTPOFF.
3966         (output_addr_const_extra): Likewise.
3967         (output_pic_addr_const): Lowercase @GOTNTPOFF.
3968         (output_addr_const_extra): Likewise.
3969         (output_pic_addr_const): Lowercase @INDNTPOFF.
3970         (output_addr_const_extra): Likewise.
3971         (output_pic_addr_const): Lowercase @NTPOFF.
3972         (output_addr_const_extra): Likewise.
3973         (output_pic_addr_const): Lowercase @TPOFF.
3974         (output_addr_const_extra): Likewise.
3975         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
3976         (*tls_global_dynamic_64): Likewise.
3977         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
3978         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
3979
3980         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
3981         (ASM_OUTPUT_TLS_COMMON): Use it.
3982         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
3983
3984         PR target/38118
3985         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
3986         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
3987         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
3988         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
3989         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3990         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
3991
3992 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3993
3994         * config/i386/i386.c (override_options): Don't accept
3995         -mtls-dialect=sun any longer.
3996         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
3997         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
3998         (*tls_local_dynamic_base_32_sun): Likewise.
3999         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4000
4001 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4002
4003         PR debug/43508
4004         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4005         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4006
4007         PR debug/43479
4008         * ira.c (adjust_cleared_regs): New function.
4009         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4010
4011         PR debug/19192
4012         PR debug/43479
4013         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4014         from gimple_block.
4015         * expr.c (expand_expr_real): Restore previous
4016         curr_insn_source_location and curr_insn_block after
4017         expand_expr_real_1 call.
4018         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4019         instead of expand_expr_real_1.
4020
4021 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4022
4023         PR rtl-optimization/43413
4024         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4025         hard regs too.
4026
4027 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4028
4029         PR target/43348
4030         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4031         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4032
4033 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4034
4035         * config/i386/i386.c (ix86_target_string): Add -mfma.
4036         Fix a typo in comment.
4037
4038 2010-03-22  Mike Stump  <mikestump@comcast.net>
4039
4040         PR target/23071
4041         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4042         Don't overly align based upon packed packed fields.
4043
4044 2010-03-22  Jason Merrill  <jason@redhat.com>
4045
4046         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4047         Use () rather than [], and move before the element type.
4048
4049 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4050
4051         * doc/configfiles.texi (Configuration Files): Removed
4052         fixinc/Makefile*, intl/Makefile.*.
4053         * doc/makefile.texi: Fixed markup. Abstract from version
4054         control system used.
4055         (Makefile): Removed obsolete gcc/java/parse.y example.
4056         * doc/sourcebuild.texi: Likewise.
4057         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4058         libgomp, libssp.  Removed fastjar.
4059         (Miscellaneous Docs): Clarify location.
4060         Added COPYING3, COPYING3.LIB.
4061         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4062
4063 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4064
4065         PR target/38085
4066         * config/i386/i386.c (x86_function_profiler)
4067         [!NO_PROFILE_COUNTERS]: Fix typo.
4068         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4069         instead of callq.
4070
4071 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4072             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4073
4074         * doc/sourcebuild.texi (Test Directives): Split into six
4075         subsections, with most of the current text in new subsections
4076         Directives, Selectors, and Final Actions.
4077         (Directives): Split list of test directives into multiple
4078         subsubsections.
4079         (Selectors): Describe use and syntax of selectors.
4080         (Effective-Target Keywords): Describe all existing keywords.
4081         (Add Options): Describe features for dg-add-options.
4082         (Require Support): Describe variants of dg-require-support.
4083         (Final Actions): Describe commands to use in dg-final.
4084
4085 2010-03-22  Michael Matz  <matz@suse.de>
4086
4087         PR middle-end/43475
4088         * recog.c (validate_replace_rtx_group): Replace also in
4089         REG_EQUAL and REG_EQUIV notes.
4090
4091 2010-03-22  Richard Guenther  <rguenther@suse.de>
4092
4093         PR tree-optimization/43390
4094         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4095         sure vector extracts are type correct.
4096
4097 2010-03-22  Richard Guenther  <rguenther@suse.de>
4098
4099         PR middle-end/40106
4100         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4101         x * sqrt (x) even when optimizing for size if the target
4102         has native support for sqrt.
4103
4104 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4105
4106         * varasm.c (make_decl_rtl_for_debug): Also clear
4107         flag_mudflap for the duration of make_decl_rtl call.
4108
4109         PR debug/43443
4110         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4111         locs from preserved VALUEs.
4112
4113 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4114
4115         PR middle-end/42718
4116         * pa.md (movmemsi): Set align to one if zero.
4117         (movmemdi): Likewise.
4118
4119 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4120
4121         PR target/42321
4122         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4123         with their corresponding prologue pushes.
4124
4125 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4126
4127         PR target/43156
4128         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4129         at the begining or end.
4130         (spu_expand_epilogue): Likewise.
4131
4132 2010-03-20  Richard Guenther  <rguenther@suse.de>
4133
4134         PR rtl-optimization/43438
4135         * combine.c (make_extraction): Properly zero-/sign-extend an
4136         extraction of the low part of a CONST_INT.  Also handle
4137         CONST_DOUBLE.
4138
4139 2010-03-19  Mike Stump  <mikestump@comcast.net>
4140
4141         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4142         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4143         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4144
4145 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4146
4147         PR c/43211
4148         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4149         an error.
4150
4151 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4152
4153         PR rtl-optimization/42258
4154         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4155         use that may match DEF.
4156
4157         PR target/40697
4158         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4159         the cost of loading the constant rather than assuming
4160         COSTS_N_INSNS (1).
4161         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4162         outer code is AND, do the same tests as the andsi3 expander and
4163         return COSTS_N_INSNS (1) if and is cheap.
4164
4165         * optabs.c (avoid_expensive_constant): Fix formatting.
4166
4167 2010-03-19  Michael Matz  <matz@suse.de>
4168
4169         PR c++/43116
4170         * attribs.c (decl_attributes): When rebuilding a function pointer
4171         type use the same qualifiers as the original pointer type.
4172
4173 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4174
4175         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4176         and is_gimple_ip_invariant_address.
4177
4178 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4179
4180         Revert
4181         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4182
4183         * config/arm/arm.c (arm_override_options): Turn off
4184         flag_dwarf2_cfi_asm for AAPCS variants.
4185
4186 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4187
4188         PR target/43399
4189         * config/arm/arm.c (emit_multi_reg_push): Update comments.
4190         Use PRE_MODIFY instead of PRE_DEC.
4191         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
4192         (vfp_emit_fstmd): Likewise.
4193
4194 2010-03-19  Michael Matz  <matz@suse.de>
4195
4196         PR target/43305
4197         * builtins.c (expand_builtin_interclass_mathfn,
4198         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
4199         if that fails.
4200
4201 2010-03-19  Richard Guenther  <rguenther@suse.de>
4202
4203         PR tree-optimization/43415
4204         * tree-ssa-pre.c (phi_translate): Split out worker to ...
4205         (phi_translate_1): ... this.
4206         (phi_translate): Move all caching here.  Cache all NARY
4207         and REFERENCE translations.
4208
4209 2010-03-19  David S. Miller  <davem@davemloft.net>
4210
4211         With help from Eric Botcazou.
4212         * config/sparc/sparc.c: Include dwarf2out.h.
4213         (emit_pic_helper): Delete.
4214         (pic_helper_symbol_name): Delete.
4215         (pic_helper_emitted_p): Delete.
4216         (pic_helper_needed): New.
4217         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
4218         (get_pc_thunk_name): New.
4219         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
4220         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
4221         Set pic_helper_needed to true.  Don't call emit_pic_helper.
4222         (sparc_expand_prologue): Update load_pic_register call.
4223         (sparc_output_mi_thunk): Likewise.
4224         (sparc_file_end): Emit a hidden comdat symbol for the PIC
4225         thunk if possible.  Output CFI information as needed.
4226
4227 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4228             Jack Howarth <howarth@bromo.med.uc.edu>
4229
4230         PR target/36399
4231         * config/i386/i386.h: Fix ABI on darwin x86-32.
4232
4233 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
4234
4235         * tree.h: Declare make_decl_rtl_for_debug.
4236         * varasm.c (make_decl_rtl_for_debug): New.
4237         * dwarf2out.c (rtl_for_decl_location): Call it.
4238         * cfgexpand.c (expand_debug_expr): Call it.
4239
4240 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4241
4242         PR bootstrap/43399
4243         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
4244         mem_mode.
4245
4246         PR bootstrap/43403
4247         * var-tracking.c (vt_init_cfa_base): Do nothing if
4248         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
4249
4250 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
4251
4252         PR debug/42873
4253         * var-tracking.c (canonicalize_vars_star): New.
4254         (dataflow_post_merge_adjust): Use it.
4255
4256 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4257
4258         PR debug/43058
4259         * var-tracking.c (non_suitable_const): New function.
4260         (add_uses): For DEBUG_INSNs with constants, don't record any
4261         value, instead just the constant value itself.
4262         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
4263         is not VAR_LOC_UNKNOWN_P, set var to the constant.
4264         (emit_notes_in_bb): Likewise.
4265         (emit_note_insn_var_location): For onepart variables if
4266         cur_loc is a VOIDmode constant, use DECL_MODE.
4267
4268 2010-03-18  Martin Jambor  <mjambor@suse.cz>
4269
4270         PR middle-end/42450
4271         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
4272         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
4273         all non-clones.  Moved call redirection...
4274         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
4275         (cgraph_materialize_all_clones): Dispose of all
4276         combined_args_to_skip bitmaps.
4277         (verify_cgraph_node): Do not check for edges pointing to wrong
4278         nodes in inline clones.
4279         * tree-inline.c (copy_bb): Call
4280         cgraph_redirect_edge_call_stmt_to_callee.
4281         * ipa.c (cgraph_remove_unreachable_nodes): Call
4282         cgraph_node_remove_callees even when there are used clones.
4283
4284 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4285
4286         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
4287
4288 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4289
4290         PR target/43383
4291         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
4292         for 32bit.
4293
4294 2010-03-18  Michael Matz  <matz@suse.de>
4295
4296         PR middle-end/43419
4297         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
4298         into sqrt(x) if we need to preserve signed zeros.
4299
4300 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
4301             Eric Botcazou  <ebotcazou@adacore.com>
4302
4303         PR rtl-optimization/43360
4304         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
4305         note if we don't know its invariant status.
4306
4307 2010-03-18  Michael Matz  <matz@suse.de>
4308
4309         PR tree-optimization/43402
4310         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
4311         PHI chains of ssa names registered for update.
4312
4313 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
4314
4315         PR target/42427
4316         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
4317         non-offsettable and pre_modify update addressing.
4318         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
4319         and "2" alternatives "#".
4320         (*movdd_softfloat32): Make all alternatives "#";
4321         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
4322         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
4323         (*movdf_softfloat32): Make all alternatives "#";
4324         (movdi): Use the new DIFD mode iterator to create a common splitter
4325         for movdi, movdf and movdd patterns.
4326
4327 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4328
4329         * common.opt (dumpdir): Remove redundant tab.
4330
4331 2010-03-17  Martin Jambor  <mjambor@suse.cz>
4332
4333         PR tree-optimization/43347
4334         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
4335         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
4336
4337 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4338
4339         PR rtl-optimization/42216
4340         * regrename.c (create_new_chain): New function, broken out from...
4341         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
4342         appending a use to an empty chain.
4343         (build_def_use): Remove previous changes that convert OP_INOUT to
4344         OP_OUT operands; instead detect the case where an OP_INOUT operand
4345         uses a previously untracked register and create an empty chain for it.
4346
4347 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4348
4349         * doc/extend.texi (Function Attributes): Rewrite unfinished
4350         sentence in ms_abi documentation.
4351
4352 2010-03-17  Alan Modra  <amodra@gmail.com>
4353
4354         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
4355         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
4356         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
4357         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
4358
4359 2010-03-16  Richard Henderson  <rth@redhat.com>
4360
4361         PR middle-end/43365
4362         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
4363         (lower_try_finally): Save and restore eh_seq around the expansion
4364         of the try-finally.
4365
4366 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4367
4368         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
4369         statements before splitting block.
4370
4371 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4372
4373         * doc/sourcebuild.texi (Testsuites): Fix markup.
4374         Use pathnames relative to gcc/testsuite.
4375         (Test Directives): Move description of how timeout is determined.
4376         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
4377         (C Tests): Correct gcc.misc-tests directory.
4378         Framework tests now live in gcc.test-framework.
4379
4380 2010-03-16  Richard Guenther  <rguenther@suse.de>
4381
4382         PR middle-end/43379
4383         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
4384         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
4385
4386 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4387             Alexandre Oliva  <aoliva@redhat.com>
4388
4389         PR tree-optimization/42917
4390         * lambda-code.c (remove_iv): Skip debug statements.
4391         (lambda_loopnest_to_gcc_loopnest): Likewise.
4392         (not_interesting_stmt): Debug statements are not interesting.
4393
4394 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
4395
4396         PR debug/43051
4397         PR debug/43092
4398         * cselib.c (cselib_preserve_constants,
4399         cfa_base_preserved_val): New static variables.
4400         (preserve_only_constants): New function.
4401         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
4402         clear its REG_VALUES.  If cselib_preserve_constants, don't
4403         empty the whole hash table, but preserve there VALUEs with constants,
4404         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
4405         (cselib_preserve_cfa_base_value): New function.
4406         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
4407         (cselib_init): Change argument to int bitfield.  Set
4408         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
4409         is in it.
4410         (cselib_finish): Clear cselib_preserve_constants and
4411         cfa_base_preserved_val.
4412         * cselib.h (enum cselib_record_what): New enum.
4413         (cselib_init): Change argument to int.
4414         (cselib_preserve_cfa_base_value): New prototype.
4415         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
4416         * dse.c (dse_step1): Likewise.
4417         * cfgcleanup.c (thread_jump): Likewise.
4418         * sched-deps.c (sched_analyze): Likewise.
4419         * gcse.c (local_cprop_pass): Likewise.
4420         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
4421         If FN is non-NULL, call the callback always and whenever it returns
4422         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
4423         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
4424         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
4425         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
4426         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
4427         * var-tracking.c: Include recog.h.
4428         (bb_stack_adjust_offset): Remove.
4429         (vt_stack_adjustments): Don't call it, instead just gather the
4430         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
4431         (adjust_stack_reference): Remove.
4432         (compute_cfa_pointer): New function.
4433         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
4434         (struct adjust_mem_data): New type.
4435         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
4436         functions.
4437         (get_address_mode): New function.
4438         (replace_expr_with_values): Use it.
4439         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
4440         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
4441         (adjust_sets): Remove.
4442         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
4443         Use get_address_mode.
4444         (get_adjusted_src): Remove.
4445         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
4446         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
4447         (add_with_sets): Don't call adjust_sets.
4448         (fp_setter, vt_init_cfa_base): New functions.
4449         (vt_initialize): Change return type to bool.  Move most of pool etc.
4450         initialization to the beginning of the function from end.  Pass
4451         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
4452         If !frame_pointer_needed, call vt_stack_adjustment before mos
4453         vector is filled, call vt_init_cfa_base if argp/framep has been
4454         eliminated to sp.  If frame_pointer_needed and argp/framep has
4455         been eliminated to hard frame pointer, set
4456         hard_frame_pointer_adjustment and call vt_init_cfa_base after
4457         encountering fp setter in the prologue.  For MO_ADJUST, call
4458         log_op_type before pusing the op into mos vector, not afterwards.
4459         Call adjust_insn before cselib_process_insn/add_with_sets,
4460         call cancel_changes (0) afterwards.
4461         (variable_tracking_main_1): Adjust for vt_initialize calling
4462         vt_stack_adjustments and returning whether it succeeded or not.
4463
4464 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
4465
4466         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
4467         debug statements.
4468
4469 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
4470
4471         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
4472         has been set.
4473         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
4474         drap_reg has not been set.
4475
4476 2010-03-15  Michael Matz  <matz@suse.de>
4477
4478         PR middle-end/43300
4479         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
4480         use it to expand block copies.
4481         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4482         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
4483         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
4484
4485 2010-03-15  Richard Guenther  <rguenther@suse.de>
4486
4487         PR tree-optimization/43367
4488         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
4489         elimination check.
4490
4491 2010-03-15  Richard Guenther  <rguenther@suse.de>
4492
4493         PR tree-optimization/43317
4494         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
4495
4496 2010-03-15  Martin Jambor  <mjambor@suse.cz>
4497
4498         PR tree-optimization/43141
4499         * tree-sra.c (create_abstract_origin): New function.
4500         (modify_function): Call create_abstract_origin.
4501
4502 2010-03-15  Chris Demetriou  <cgd@google.com>
4503
4504         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
4505         wasn't copied.
4506
4507 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4508
4509         PR middle-end/43354
4510         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
4511         call insert_out_of_ssa_copy for default definitions.
4512
4513 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4514
4515         * graphite-clast-to-gimple.c (my_long_long): Defined.
4516         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
4517         * graphite-sese-to-poly.c (my_long_long): Defined.
4518         (scop_ivs_can_be_represented): Use it.
4519
4520 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4521
4522         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
4523         graphite-max-bbs-per-function, and loop-block-tile-size.
4524         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
4525         with "maximum".
4526         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
4527
4528 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4529
4530         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
4531         forward declaration.
4532         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
4533         (add_upper_bounds_from_estimated_nit): New.
4534         (build_loop_iteration_domains): Use it.
4535
4536 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4537
4538         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
4539
4540 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4541
4542         PR middle-end/43306
4543         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
4544         should be an INTEGER_CST.  Also handle CASE_CONVERT.
4545
4546 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4547
4548         * graphite.c (graphite_initialize): To bound the number of bbs per
4549         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4550         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
4551         * doc/invoke.texi: Document it.
4552
4553 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4554
4555         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
4556         * graphite-sese-to-poly.h (build_poly_scop): Same.
4557
4558 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4559
4560         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
4561         the number of parameters in the scop.  Use as an upper bound
4562         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
4563         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
4564         * doc/invoke.texi: Document it.
4565
4566 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
4567
4568         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
4569         * doc/c-tree.texi: Remove.
4570         * doc/generic.texi: Merge c-tree.texi here.
4571         * doc/gccint.texi (Trees): Remove menu entry.
4572         (c-tree.texi): Remove @include.
4573         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
4574         * doc/languages.texi (Reading RTL): Ditto.
4575
4576 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
4577
4578         PR target/42869
4579         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
4580
4581 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4582
4583         PR middle-end/42431
4584         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
4585         code added to work around reload clobbering CONST insns.
4586
4587 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
4588
4589         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
4590         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
4591         (cselib_preserve_only_values): Remove retain argument, don't
4592         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
4593         * cselib.h (cselib_preserve_only_values): Remove retain argument.
4594         * var-tracking.c (micro_operation): Move insn field before union.
4595         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
4596         (struct variable_tracking_info_def): Remove n_mos field, change
4597         mos into a vector of micro_operations.
4598         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
4599         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
4600         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
4601         changing into a vector.
4602         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
4603         come before all other uops generated by add_stores.
4604         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
4605         argument removal.
4606         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
4607         a vector.  Run just one pass over the bbs instead of separate counting
4608         and computation phase.
4609         (vt_finalize): Free VTI (bb)->mos vector instead of array.
4610
4611         PR debug/43329
4612         * tree-inline.c (remap_decls): Put old_var rather than origin_var
4613         into *nonlocalized_list vector.
4614         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
4615         even if origin is non-NULL.
4616         (gen_variable_die): Likewise.
4617         (process_scope_var): Don't change origin.
4618         (gen_decl_die): Likewise.
4619         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
4620         before adding new edges instead of after it, fix moving over
4621         debug stmts.
4622
4623 2010-03-11  David S. Miller  <davem@davemloft.net>
4624
4625         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
4626         of four.
4627         * configure: Rebuild.
4628
4629 2010-03-11  Martin Jambor  <mjambor@suse.cz>
4630
4631         PR tree-optimization/43257
4632         * tree.c (assign_assembler_name_if_neeeded): New function.
4633         (free_lang_data_in_cgraph): Assembler name assignment moved to the
4634         above new function.
4635         * tree.h (assign_assembler_name_if_neeeded): Declare.
4636         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
4637         the function if needed.
4638
4639 2010-03-11  Chris Demetriou  <cgd@google.com>
4640
4641         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
4642         include/stdint-gcc.h, and include/stdint.h world-readable.
4643
4644 2010-03-11  Richard Guenther  <rguenther@suse.de>
4645
4646         PR tree-optimization/43255
4647         * tree-vrp.c (process_assert_insertions_for): Do not insert
4648         asserts for trivial conditions.