OSDN Git Service

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