OSDN Git Service

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