OSDN Git Service

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