OSDN Git Service

* gcc.dg/Wunused-var-8.c: Move to...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
2
3         * gcc.dg/Wunused-var-8.c: Move to...
4         * c-c++-common/Wunused-var-6.c: ... here.  New test.
5
6         PR bootstrap/43994
7         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
8         instead of DF_REF_REAL_REG.
9
10 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
11
12         PR target/43888
13         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14         handling to still return true for x64 targets.
15
16 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
17
18         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
19
20 2010-05-06  Jan Hubicka  <jh@suse.cz>
21
22         PR tree-optimization/43791
23         * ipa-inline.c (update_caller_keys): Remove bogus
24         disregard_inline_limits check.
25
26 2010-05-06  Michael Matz  <matz@suse.de>
27
28         PR tree-optimization/43984
29         * tree-ssa-pre.c (inserted_phi_names): Remove.
30         (inserted_exprs): Change to bitmap.
31         (create_expression_by_pieces): Set bits, don't append to vector.
32         (insert_into_preds_of_block): Don't handle inserted_phi_names.
33         (eliminate): Don't look at inserted_phi_names, remove deleted
34         insns from inserted_exprs.
35         (remove_dead_inserted_code): Adjust to use bitmaps instead of
36         vectors.
37         (init_pre, fini_pre): Allocate and free bitmaps.
38         (execute_pre): Insert insns on edges before elimination.
39
40 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
41
42         * tree.c (initializer_zerop): Handle STRING_CST.
43
44 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
45
46         PR 40989
47         * doc/invoke.texi (Wimplicit): Document as C only.
48         * opts.c (common_handle_option): Add argument kind.
49         (handle_option): Rename as read_cmdline_option. Factor out code to...
50         (handle_option): ... here. New.
51         (handle_options): Rename as read_cmdline_options.
52         (decode_options): Update call.
53         (set_option): Use option index instead of option pointer. Classify
54         diagnostics correctly.
55         (enable_warning_as_error): Call handle_option.
56         * opts.h (set_option): Update declaration.
57         (handle_option): Declare.
58         * langhooks.h (struct lang_hooks): Add argument kind to
59         handle_option.
60         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
61         * c-opts.c (set_Wimplicit): Delete.
62         (c_family_lang_mask): New static constant.
63         (c_common_handle_option): Add argument kind. Use handle_option
64         instead of set_Wimplicit.
65         (c_common_post_options): warn_implicit and warn_implicit_int
66         are disabled by default.
67         * c-common.c (warn_implicit): Do not define here.
68         * c-common.h (warn_implicit): Do not declare here.
69         (c_common_handle_option): Update declaration.
70         * lto-opts.c (lto_reissue_options): Update call to set_option.
71
72 2010-05-06  Richard Guenther  <rguenther@suse.de>
73
74         PR tree-optimization/43571
75         * domwalk.c (walk_dominator_tree): Walk the dominator
76         sons in more optimal order.
77
78 2010-05-06  Richard Guenther  <rguenther@suse.de>
79
80         PR tree-optimization/43934
81         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
82         (stmt_cost): Likewise.
83         (extract_true_false_args_from_phi): New helper.
84         (determine_max_movement): For PHI nodes verify we can hoist them
85         and compute their cost.
86         (determine_invariantness_stmt): Handle PHI nodes.
87         (move_computations_stmt): Likewise.  Hoist PHI nodes in
88         if-converted form using COND_EXPRs.
89         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
90         nodes.
91         (tree_ssa_lim): Likewise.
92         * tree-flow.h (tree_ssa_lim): Adjust prototype.
93         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
94
95 2010-05-06  Richard Guenther  <rguenther@suse.de>
96
97         PR tree-optimization/43987
98         * tree-ssa-structalias.c (could_have_pointers): For possibly
99         address-taken variables force pointers to be recorded.
100         (create_variable_info_for_1): Likewise.
101         (push_fields_onto_fieldstack): Pass in wheter all fields
102         must have pointers.
103         (find_func_aliases): Query types instead of vars whether
104         they contain pointers where appropriate.
105
106 2010-05-06  Jan Hubicka  <jh@suse.cz>
107
108         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
109         (record_reference, mark_address, mark_load, mark_store): Record
110         references.
111         (record_references_in_initializer): Update call of record_references.
112         (rebuild_cgraph_edges): Remove all references before rebuiding.
113         * cgraph.c (cgraph_create_node): Clear ref list.
114         (cgraph_remove_node): Remove references.
115         (dump_cgraph_node): Dump references.
116         (cgraph_clone_node): Clone references.
117         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
118         (struct cgraph_node, varpool_node): Add ref_lst.
119         * ipa-ref.c: New file.
120         * ipa-ref.h: New file.
121         * ipa-ref-inline.h: New file.
122         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
123         (referenced_from_other_partition_p): New function.
124         (lto_output_varpool_node): Take set arugment; call
125         referenced_from_other_partition.
126         (lto_output_ref): New.
127         (add_references): New.
128         (output_refs): New.
129         (output_cgraph): Compute boundary based on references;
130         output refs.
131         (output_varpool): Accept cgraph_node_set argument.
132         (input_ref): New.
133         (input_refs): New.
134         (input_cgraph): Call input_refs.
135         * lto-section-in.c (lto_section_name): Add refs.
136         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
137         (ipa-ref.o): New file.
138         * varpool.c (varpool_node): Clear ipa ref list.
139         (varpool_remove_node): Remove references.
140         (dump_varpool_node): Dump references.
141         (varpool_assemble_decl): Only compile finalized ones.
142         (varpool_extra_name_alias): Initialize ref list.
143         * lto-streamer.c (lto-get_section_name): Add .refs section.
144         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
145         (referenced_from_other_partition_p): Declared.
146
147 2010-05-06  Ira Rosen  <irar@il.ibm.com>
148
149         PR tree-optimization/43901
150         * tree-vect-stmts.c (vectorizable_call): Assert that vector
151         type is not NULL if it's transformation phase, and return
152         FALSE if it's analysis.
153         (vectorizable_conversion, vectorizable_operation, 
154         vectorizable_type_demotion, vectorizable_type_promotion):
155         Likewise.
156
157 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
158
159         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
160         Delete.
161         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
162         New define.
163         * config/mips/mips-protos.h
164         (mips_small_register_classes_for_mode_p): Delete prototype.
165
166 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
167
168         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
169         * config/arm/arm.c (multiple_operation_profitable_p,
170         compute_offset_order): New static functions.
171         (load_multiple_sequence, store_multiple_sequence): Use them.
172         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
173         memory offsets, not register numbers.
174         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
175
176 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
177
178         * stor-layout.c (pending_sizes): Change the type to
179         VEC(tree,gc) *.
180         (get_pending_sizes, put_pending_size, put_pending_sizes):
181         Update the uses of pending_sizes.
182         * c-decl.c (store_parm_decls): Likewise.
183         * c-tree.h (struct c_arg_info): Likewise.
184         * tree.h: Update the prototype for get_pending_sizes and
185         put_pending_sizes.
186
187 2010-05-05  Jason Merrill  <jason@redhat.com>
188
189         PR debug/43370
190         * c-common.c (handle_aligned_attribute): Respect
191         ATTR_FLAG_TYPE_IN_PLACE.
192
193         PR testsuite/43758
194         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
195         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
196         (TARGET_INITIALIZER): Use it.
197         * c-common.c (attribute_takes_identifier_p): Call it.
198         * c-common.h: Update prototype.
199         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
200         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
201
202 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
203
204         PR debug/43950
205         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
206         DW_ID_down_case for Fortran compilation units.
207
208 2010-05-05  Jan Hubicka  <jh@suse.cz>
209
210         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
211         handle aliases.
212
213 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
214
215         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
216         a variable-sized RESULT_DECL.
217
218 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
219
220         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
221
222 2010-05-05  Jason Merrill  <jason@redhat.com>
223
224         PR c++/43787
225         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
226         returns GS_OK.
227         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
228
229 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
230             Jakub Jelinek  <jakub@redhat.com>
231
232         PR debug/43478
233         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
234         (dead_debug_init, dead_debug_finish): New functions.
235         (dead_debug_add, dead_debug_insert_before): Likewise.
236         (df_note_bb_compute): Initialize a dead_debug object, add dead
237         debug uses to it, insert debug bind insns before death insns,
238         reset debug insns that refer to pending uses at the end.
239         * rtl.h (make_debug_expr_from_rtl): New prototype.
240         * varasm.c (make_debug_expr_from_rtl): New function.
241
242 2010-05-05  Jan Hubicka  <jh@suse.cz>
243
244         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
245         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
246         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
247         lto_varpool_encoder_encode_initializer_p,
248         lto_set_varpool_encoder_encode_initializer): New functions.
249         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
250         call output_varpool.
251         (input_varpool_node): Do not always set analyzed.
252         (input_cgraph_1): Return vector of cgraph nodes.
253         (input_varpool_1): Return vector of varpools.
254         (input_cgraph): Free the vectors.
255         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
256         output only initializers needed.
257         (lto_output): Only call output_cgraph.
258         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
259         * lto-section-out.c (lto_new_out_decl_state): Initialize
260         state->varpool_node_encoder.
261         * lto-streamer.h (lto_varpool_encoder_d): New.
262         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
263         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
264         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
265         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
266         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
267         Declare.
268         (output_varpool, input_varpool): Remove declarations.
269
270 2010-05-05  Jan Hubicka  <jh@suse.cz>
271
272         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
273         with body can prevail.
274
275 2010-05-05  Jan Hubicka  <jh@suse.cz>
276
277         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
278         size.
279
280 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
281
282         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
283         dependencies.
284
285         * gengtype.h (erro_at_line): Constify pos argument.
286
287         * gengtype.c: Include hashtab.h.
288         (enum gc_used): Document GC_MAYBE_POINTED_TO.
289         (error_at_line): Constify pos argument.
290         (do_typedef): Initialize p->opt field.
291         (get_file_gtfilename): Fix comment typo.
292         (struct walk_type_data): Constify line field.
293         (get_output_file_for_structure): New function.
294         (write_local_func_for_structure): Constify orig_s argument.
295         Use get_output_file_for_structure.
296         (write_func_for_structure): Use get_output_file_for_structure.
297         (INDENT): New define.
298         (dump_pair, dump_type, dump_type_list, dump_typekind)
299         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
300         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
301         functions.
302         (seen_types): New variable.
303         (main): New variable do_dump.  Process "-d" command line option.
304         Call dump_everything if dump requested.
305
306 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
307
308         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
309         in a temporary instead of invoking the macro multiple times.
310         (track_expr_p): Likewise.
311
312 2010-05-04  Neil Vachharajani <nvachhar@google.com>
313
314         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
315         per new semantics.
316         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
317         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
318         conditions for printing notes.
319         * common.opt (-Wcoverage-mismatch): Allow negative, default to
320         true, update documentation.
321         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
322
323 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
324
325         PR c/43981
326         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
327         on dimen.
328
329 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
330
331         PR target/43799
332         * config/i386/i386.md (sse_prologue_save): Add clobber CC
333         register.
334         (*sse_prologue_save_insn1): Likewise.
335         (SSE prologue save splitter): Likewise.
336
337 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
338
339         * tree.c (free_lang_data_in_one_sizepos): New inline function.
340         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
341         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
342         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
343         all decls.  Call it on DECL_FIELD_OFFSET of fields.
344         (find_decls_types_r): Follow DECL_VALUE_EXPR.
345         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
346
347 2010-05-04  Martin Jambor  <mjambor@suse.cz>
348
349         * tree-sra.c (build_access_from_expr_1): The first parameter type
350         changed to simple tree.
351         (build_access_from_expr): Likewise, gsi parameter was eliminated.
352         (scan_assign_result): Renamed to assignment_mod_result, enum elements
353         renamed as well.
354         (build_accesses_from_assign): Removed all parameters except for a
355         simple gimple statement.  Now returns a simple bool.
356         (scan_function): All non-analysis parts moved to separate functions
357         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
358         parameters and updated both callers.
359         (sra_modify_expr): Removed parameter data.
360         (sra_modify_function_body): New function.
361         (perform_intra_sra): Call sra_modify_function_body to modify the
362         function body.
363         (replace_removed_params_ssa_names): Parameter data changed into
364         adjustments vector.
365         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
366         changed the parameter dont_convert to convert with the opposite
367         meaning.
368         (sra_ipa_modify_assign): Parameter data changed into adjustments
369         vector, return value changed to bool.
370         (ipa_sra_modify_function_body): New function.
371         (sra_ipa_reset_debug_stmts): Updated a comment.
372         (modify_function): Use ipa_sra_modify_function_body to modify function
373         body.
374
375 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
376
377         PR middle-end/43671
378         * alias.c (true_dependence): Handle the same VALUE in x and mem.
379         (canon_true_dependence): Likewise.
380         (write_dependence_p): Likewise.
381
382 2010-05-04  Jan Hubicka  <jh@suse.cz>
383
384         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
385         * cgraphbuild.c: Include ipa-utils.h
386         (record_reference_ctx): New struct.
387         (record_reference): Simplify to work on initializers; not statements.
388         (mark_address, mark_load, mark_store): New.
389         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
390         walk PHI nodes too.
391         (record_references_in_initializer): Update use of record_reference.
392         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
393         walk PHI nodes too.
394
395 2010-05-04  Jan Hubicka  <jh@suse.cz>
396
397         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
398         node will be removed anyway.
399         (lto_varpool_replace_node): Allow also unanalyzed nodes;
400         relink aliases of node into prevailing node.
401         * varpool.c (varpool_remove_node): Remove aliases properly;
402         when removing node, remove all its aliases too; remove DECL_INITIAL
403         of removed node; ggc_free the varpool node.
404
405 2010-05-04  Richard Guenther  <rguenther@suse.de>
406
407         PR tree-optimization/43879
408         * tree-ssa-structalias.c (alias_get_name): Use
409         DECL_ASSEMBLER_NAME if available.
410         (create_function_info_for): Return the varinfo node.
411         (ipa_pta_execute): Associate same-body aliases and extra names
412         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
413
414 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
415
416         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
417         static.
418
419 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
420
421         PR bootstrap/43964
422         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
423         only if HONOR_REG_ALLOC_ORDER is not defined.
424
425 2010-05-04  Richard Guenther  <rguenther@suse.de>
426
427         PR tree-optimization/43949
428         * tree-vrp.c (extract_range_from_binary_expr): Only handle
429         TRUNC_MOD_EXPR.
430
431 2010-04-26  Jason Merrill  <jason@redhat.com>
432
433         * c.opt (-fstrict-enums): New.
434         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
435
436 2010-05-03  David Ung <davidu@mips.com>
437             James E. Wilson  <wilson@codesourcery.com>
438
439         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
440         emit the trap instruction before the divide for TUNE_74K.
441
442 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
443
444         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
445         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
446         based on the above, for new target hook.
447
448         * hooks.c (hook_bool_mode_true): New generic hook.
449         * hooks.h (hook_bool_mode_true): Add prototype.
450
451         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
452         target hook.
453         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
454         target hook, set to hook_bool_mode_false.
455         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
456         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
457         with targetm.small_register_classes_for_mode_p.
458         (find_reusable_reload): Likewise.
459         (combine_reloads): Likewise.
460         * reload1.c (reload_as_needed): Likewise.
461         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
462         * ifcvt.c (noce_process_if_block, check_cond_move_block,
463         dead_or_predicable): Likewise.
464         * regmove.c (optimize_reg_copy_1): Likewise.
465         * calls.c (prepare_call_address): Likewise.
466         (precompute_register_parameters): Likewise.
467
468         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
469         hook definition.
470         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
471         implementation of the hook that considers all register classes
472         small except for SH64.
473         (sh_override_options): Use the new hook.
474         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
475         Add prototype.
476
477         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
478         hook definition.
479         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
480         implementation of the hook that considers all register classes
481         small for THUMB1.
482         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
483         Add prototype.
484
485         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
486         hook definition.
487         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
488         implementation of the hook that considers all register classes
489         small for MIPS16.
490         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
491         Add prototype.
492
493         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
494         hook definition.
495         * config/m32c/m32c.h: Likewise.
496         * config/pdp11/pdp11.h: Likewise.
497         * config/avr/avr.h: Likewise.
498         * config/xtensa/xtensa.h: Likewise.
499         * config/m68hc11/m68hc11.h: Likewise.
500         * config/mn10300/mn10300.h: Likewise.
501         * config/mcore/mcore.h: Likewise.
502         * config/h8300/h8300.h: Likewise.
503         * config/bfin/bfin.h: Likewise.
504
505         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
506         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
507
508 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
509
510         * double-int.h (tree_to_double_int): Remove macro.
511         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
512         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
513         (tree_to_double_int): New function.
514         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
515         Move ...
516         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
517
518 2010-05-03  Richard Guenther  <rguenther@suse.de>
519
520         PR tree-optimization/43971
521         * tree-ssa-structalias.c (get_constraint_for_1): Fix
522         constraints in the !flag_delete_null_pointer_checks case.
523
524 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
525
526         PR debug/43972
527         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
528         result mode matches original rtl mode.
529
530 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
531
532         PR target/43888
533         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
534
535 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
536
537         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
538         when processing flag options.
539
540 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
541
542         * gcov-iov.c (main): Change format string placeholder
543         from %#08x to 0x%08x.
544         * genchecksum.c (dosum): Change format string placeholder
545         from %#02x to 0x%02x.
546
547 2010-05-02  Richard Guenther  <rguenther@suse.de>
548
549         PR tree-optimization/43879
550         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
551
552 2010-05-02  Bruno Haible  <bruno@clisp.org>
553
554         * doc/extend.texi (Function Attributes): Fix a typo.
555
556 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
557
558         Revert:
559         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
560         placeholder from 0x%x to %#x.
561         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
562         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
563         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
564         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
565         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
566         * config/i386/i386.c (ix86_target_string): Ditto.
567         * config/i386/i386.c (output_pic_addr_const): Ditto.
568         (print_operand): Ditto.
569
570 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
571
572         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
573         placeholder from 0x%x to %#x.
574         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
575         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
576         (ASM_OUTPUT_DEBUG_DATA): Ditto.
577         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
578         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
579         * optc-gen.awk: Ditto.
580         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
581         (HOST_WIDE_INT_PRINT_HEX): Ditto.
582         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
583         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
584
585 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
586
587         * target.h (struct calls): Add function_value_regno_p field.
588         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
589         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
590         * targhooks.c (default_function_value_regno_p): New function.
591         * targhooks.h (default_function_value_regno_p): Declare function.
592         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
593         * builtins.c. (apply_result_size): (Ditto.).
594         * combine.c. (likely_spilled_retval_p): (Ditto.).
595         * mode-switching.c. Include 'target.h'.
596         (create_pre_exit): Use function_value_regno_p hook.
597         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
598         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
599         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
600
601         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
602         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
603         (ix86_function_value_regno_p): Declare as static, change argument
604         type to const unsigned int.
605         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
606
607 2010-05-01  Richard Guenther  <rguenther@suse.de>
608
609         PR tree-optimization/43949
610         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
611         types.
612         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
613
614 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
615
616         * rtl.h (CONST_DOUBLE_P): Define.
617         (rtx_to_double_int): Declare.
618         * emit-rtl.c (rtx_to_double_int): New function.
619         * dwarf2out.c (insert_double): New function.
620         (loc_descriptor, add_const_value_attribute): Clean up, use
621         rtx_to_double_int and insert_double functions.
622
623 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
624
625         * doc/extend.texi (Inline): Add missing return keyword to examples.
626         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
627         "command-line".
628
629 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
630
631         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
632         the variable part of the offset as well.  Use highest_pow2_factor for
633         all alignment checks.
634
635 2010-04-30  Richard Guenther  <rguenther@suse.de>
636
637         PR tree-optimization/43879
638         * tree-ssa-structalias.c (type_could_have_pointers): Functions
639         can have pointers.
640
641 2010-04-30  Jan Hubicka  <jh@suse.cz>
642
643         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
644         varpool.
645         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
646
647 2010-04-30  Jan Hubicka  <jh@suse.cz>
648
649         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
650         New.
651         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
652         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
653         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
654         cgraph_node_set_needs_ltrans_p): Remove.
655
656 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
657
658         * sdbout.c: Include vec.h, do not include varray.h.
659         (deferred_global_decls, sdbout_global_decl,
660         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
661         * toplev.c: Do not include varray.h.
662         (dump_memory_report): Do not dump VARRAY statistics.
663         * gengtype.c (open_base_file): Ignore varray.h.
664         * Makefile.in: Update for abovementioned changes.
665         Remove all traces of varray.c and varray.h.
666         * varray.c: Remove file.
667         * varray.h: Remove file.
668
669 2010-04-30  Jan Hubicka  <jh@suse.cz>
670
671         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
672         references.
673
674 2010-04-30  Jan Hubicka  <jh@suse.cz>
675
676         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
677         needed.
678
679 2010-04-30  Richard Guenther  <rguenther@suse.de>
680
681         * tree-ssa-structalias.c (get_constraint_for_1): Generate
682         constraints for CONSTRUCTOR.
683
684 2010-04-30  Richard Guenther  <rguenther@suse.de>
685
686         PR lto/43946
687         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
688         first after all lowering passes.
689
690 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
691
692         * toplev.c: Include varray.h for statistics dumping.
693         * tree.h: Do not declare varray_head_tag.
694         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
695         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
696         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
697         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
698         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
699         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
700         c-common.c, c-common.h, reg-stack.c, basic-block.h,
701         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
702         include varray.h.
703         * Makefile.in: Update for abovementioned changes.
704
705 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
706
707         PR debug/43942
708         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
709
710 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
711
712         * config/picochip/picochip.c (picochip_legitimize_address): Define.
713         Use this function to do machine-specific conversion.
714         (picochip_legitimize_reload_address): Likewise.
715         (picochip_legitimate_address_p): Check valid base register only if
716         strict.
717         (picochip_check_conditional_copy): Check for modw only if opnd is
718         register.
719         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
720         to call the function in c.
721         * config/picochip/picochip-protos.h
722         (picochip_legitimize_reload_address): Define.
723         * config/picochip/picochip.md (supported_compare1): Define.
724
725 2010-04-30  Jan Hubicka  <jh@suse.cz>
726
727         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
728         (cgraph_global_info): Remove inlined.
729         (LTO_cgraph_tag_names): Remove.
730         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
731         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
732         simplify cgraph tags and document.
733         (lto_output_node): Use only LTO_cgraph_unavail_node and
734         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
735         for_functions_valid, global info, process and output flags.
736         (input_overwrite_node): Initialize estimated stack size and
737         estimated growth.  Do not read flags we no longer store.
738         (input_node): Likewise do not read info no longer stored.
739         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
740         flag.
741
742 2010-04-30  Richard Guenther  <rguenther@suse.de>
743
744         PR tree-optimization/43879
745         * tree-ssa-structalias.c (get_constraint_for_1): Properly
746         handle non-zero initializers.
747
748 2010-04-30  Richard Guenther  <rguenther@suse.de>
749
750         * builtins.c (fold_builtin_1): Delete free (0).
751
752 2010-04-29  Jan Hubicka  <jh@suse.cz>
753
754         * gengtype.c (open_base_files): Add lto-streamer.h
755         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
756         (pass_ipa_cp): GGC collect.
757         * toplev. (compile_file): Do not output symbols.
758         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
759         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
760         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
761         * lto-section-in.c: Include ggc.h
762         (lto_new_in_decl_state): Alloc in GGC.
763         (lto_delete_in_decl_state): Likewise.
764         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
765         Collect.
766
767 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
768
769         PR target/42895
770         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
771         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
772         (HONOR_REG_ALLOC_ORDER): Describe new macro.
773         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
774         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
775         account only if HONOR_REG_ALLOC_ORDER is not defined.
776         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
777         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
778
779 2010-04-29  Jon Grant  <04@jguk.org>
780
781         * collect2.c (vflag): Change type from int to bool.
782         (debug): Likewise.
783         (helpflag): New global bool.
784         (main): Set vflag and debug with boolean, not integer truth values.
785         Accept new "--help" option and output usage text if found.
786         * collect2.h (vflag): Update prototype.
787         (debug): Likewise.
788
789 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
790
791         PR bootstrap/43936
792         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
793
794 2010-04-29  Richard Guenther  <rguenther@suse.de>
795
796         PR bootstrap/43935
797         * plugin.h (invoke_plugin_callbacks): Annotate arguments
798         with ATTRIBUTE_UNUSED.
799
800 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
801
802         PR target/43921
803         * config/i386/i386.c (get_some_local_dynamic_name): Replace
804         INSN_P with NONDEBUG_INSN_P.
805         (distance_non_agu_define): Likewise.
806         (distance_agu_use): Likewise.
807
808 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
809
810         From Dominique d'Humieres <dominiq@lps.ens.fr>
811         PR bootstrap/43858
812         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
813         test_set.
814
815 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
816
817         * plugin.h (invoke_plugin_callbacks): New inline function.
818         * plugin.c (flag_plugin_added): New global flag.
819         (add_new_plugin): Initialize above flag.
820         (invoke_plugin_callbacks): Rename to ...
821         (invoke_plugin_callbacks_full): ... this.
822
823 2010-04-28  Jan Hubicka  <jh@suse.cz>
824
825         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
826         (lto_varpool_replace_node): New.
827         (lto_symtab_resolve_symbols): Resolve varpool nodes.
828         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
829         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
830         * cgraph.h (varpool_node_ptr): New type.
831         (varpool_node_ptr): New vector.
832         (varpool_node_set_def): New structure.
833         (varpool_node_set): New type.
834         (varpool_node_set): New vector.
835         (varpool_node_set_element_def): New structure.
836         (varpool_node_set_element, const_varpool_node_set_element): New types.
837         (varpool_node_set_iterator): New type.
838         (varpool_node): Add prev pointers, add used_from_other_partition,
839         in_other_partition.
840         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
841         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
842         varpool_get_node, varpool_remove_node): Declare.
843         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
844         varpool_node_set_size): New inlines.
845         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
846         * tree-pass.h (varpool_node_set_def): Forward declare.
847         (ipa_opt_pass_d): Summary writting takes vnode sets too.
848         (ipa_write_optimization_summaries): Update prototype.
849         * ipa-cp.c (ipcp_write_summary): Update.
850         * ipa-reference.c (ipa_reference_write_summary): Update.
851         * lto-cgraph.c (lto_output_varpool_node): New static function.
852         (output_varpool): New function.
853         (input_varpool_node): New static function.
854         (input_varpool_1): New function.
855         (input_cgraph): Input varpool.
856         * ipa-pure-const.c (pure_const_write_summary): Update.
857         * lto-streamer-out.c (lto_output): Update, output varpool too.
858         (write_global_stream): Kill WPA hack.
859         (produce_asm_for_decls): Update.
860         (output_alias_pair_p): Handle variables.
861         (output_unreferenced_globals): Output only needed partition of varpool.
862         * ipa-inline.c (inline_write_summary): Update.
863         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
864         cgraph.
865         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
866         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
867         varpool_node_set_new, varpool_node_set_add,
868         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
869         debug_varpool_node_set): New functions.
870         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
871         (execute_one_pass): Process new decls too.
872         (ipa_write_summaries_2): Pass around vsets.
873         (ipa_write_summaries_1): Likewise.
874         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
875         to add.
876         (ipa_write_optimization_summaries_1): Pass around vsets.
877         (ipa_write_optimization_summaries): Likewise.
878         * varpool.c (varpool_get_node): New.
879         (varpool_node): Update doubly linked lists.
880         (varpool_remove_node): New.
881         (dump_varpool_node): More dumping.
882         (varpool_enqueue_needed_node): Update doubly linked lists.
883         (decide_is_variable_needed): Kill ltrans hack.
884         (varpool_finalize_decl): Kill lto hack.
885         (varpool_assemble_decl): Skip decls in other partitions.
886         (varpool_assemble_pending_decls): Update doubly linkes lists.
887         (varpool_empty_needed_queue): Likewise.
888         (varpool_extra_name_alias): Likewise.
889         * lto-streamer.c (lto_get_section_name): Add vars section.
890         * lto-streamer.h (lto_section_type): Update.
891         (output_varpool, input_varpool): Declare.
892
893 2010-04-28  Mike Stump  <mikestump@comcast.net>
894
895         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
896
897 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
898
899         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
900         record or union type with RECORD_OR_UNION_TYPE_P predicate.
901         (lto_input_ts_type_tree_pointers): Likewise.
902         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
903         (lto_output_ts_type_tree_pointers): Likewise.
904
905 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
906
907         Uniquization of constants at the Tree level
908         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
909         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
910         bit to the end.
911         (tree_output_constant_def): Declare.
912         * gimplify.c (gimplify_init_constructor): When using block copy, first
913         uniquize the constant constructor on the RHS.
914         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
915         DECL_IN_CONSTANT_POOL flag.
916         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
917         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
918         constant pool.
919         (assemble_variable): Deal with symbols belonging to the tree constant
920         pool.
921         (get_constant_section): Add ALIGN parameter and simplify.
922         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
923         (assemble_constant_contents): Use the expression of the VAR_DECL.
924         (output_constant_def_contents): Use the alignment of the VAR_DECL.
925         (tree_output_constant_def): New global function.
926         (mark_constant): Use the expression of the VAR_DECL.
927         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
928         its expression.
929         (output_object_block): Likewise and assemble the expression.
930
931 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
932
933         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
934         hash_tree, eq_tree): New tree hash table.
935         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
936         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
937         lto_orig_address_remove): Reimplement.
938
939 2010-04-28  Xinliang David Li  <davidxl@google.com>
940
941         PR c/42643
942         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
943         (compute_uninit_opnds_pos): New function.
944         (is_non_loop_exit_postdominating): New function.
945         (compute_control_dep_chain): New function.
946         (find_pdom): New function.
947         (convert_control_dep_chain_into_preds): New function.
948         (find_predicates): New function.
949         (find_control_equiv_block): New function.
950         (collect_phi_def_edges): New function.
951         (find_def_preds): New function.
952         (find_dom): New function.
953         (dump_predicates): New function.
954         (get_cmp_code): New function.
955         (is_value_included_in): New function.
956         (find_matching_predicate_in_rest_chains): New function.
957         (use_pred_not_overlap_with_undef_path_pred): New function.
958         (is_use_properly_guarded): New function.
959         (normalize_cond_1): New function.
960         (is_and_or_or): New function.
961         (normalize_cond): New function.
962         (is_gcond_subset_of): New function.
963         (is_subset_of_any): New function.
964         (is_or_set_subset_of): New function.
965         (is_and_set_subset_of): New function.
966         (is_norm_cond_subset_of): New function.
967         (is_pred_expr_subset_of): New function.
968         (is_pred_chain_subset_of): New function.
969         (is_included_in): New function.
970         (is_superset_of): New function.
971         (find_uninit_use): New function.
972         (warn_uninitialized_phi): New function.
973         (compute_possibly_undefined_names): New function.
974         (ssa_undefined_value_p): New function.
975         (execute_late_warn_uninitialized): New function.
976         * tree-ssa.c (ssa_undefined_value_p): Removed.
977         (warn_uninit): Changed to extern.
978         (warn_uninitialized_phi): Removed.
979         (warn_uninitialized_vars): Changed to extern.
980         (execute_late_warn_uninitialized): Removed
981         * tree-flow.h: Add new prototypes.
982         * timevar.def: Add new time variable.
983         * Makefile.in: Add new build file.
984
985 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
986
987         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
988         type if available.
989
990 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
991
992         PR target/22224
993         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
994
995 2010-04-28  Martin Jambor  <mjambor@suse.cz>
996
997         * cgraph.h (struct cgraph_node): New field indirect_calls.
998         (struct cgraph_indirect_call_info): New type.
999         (struct cgraph_edge): Removed field indirect_call. New fields
1000         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1001         (cgraph_create_indirect_edge): Declare.
1002         (cgraph_make_edge_direct): Likewise.
1003         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1004         * ipa-prop.h (struct ipa_param_call_note): Removed.
1005         (struct ipa_node_params): Removed field param_calls.
1006         (ipa_create_all_structures_for_iinln): Declare.
1007         * cgraph.c: Described indirect edges and uids in initial comment.
1008         (cgraph_add_edge_to_call_site_hash): New function.
1009         (cgraph_edge): Search also among the indirect edges, use
1010         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1011         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1012         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1013         site hash.
1014         (initialize_inline_failed): Assign a reason to indirect edges.
1015         (cgraph_create_edge_1): New function.
1016         (cgraph_create_edge): Moved some functionality to
1017         cgraph_create_edge_1.
1018         (cgraph_create_indirect_edge): New function.
1019         (cgraph_edge_remove_callee): Add an assert checking for
1020         non-indirectness.
1021         (cgraph_edge_remove_caller): Special-case indirect edges.
1022         (cgraph_remove_edge): Likewise.
1023         (cgraph_set_edge_callee): New function.
1024         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1025         (cgraph_make_edge_direct): New function.
1026         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1027         the declaration of the call statement matches.
1028         (cgraph_node_remove_callees): Special-case indirect edges.
1029         (cgraph_clone_edge): Likewise.
1030         (cgraph_clone_node): Clone also the indirect edges.
1031         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1032         indirect_call, dump count of indirect_calls edges.
1033         * ipa-prop.c (iinlining_processed_edges): New variable.
1034         (ipa_note_param_call): Create indirect edges instead of
1035         creating notes.  New parameter node.
1036         (ipa_analyze_call_uses): New parameter node, pass it on to
1037         ipa_note_param_call.
1038         (ipa_analyze_stmt_uses): Likewise.
1039         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1040         (print_edge_addition_message): Work on edges rather than on notes.
1041         (update_call_notes_after_inlining): Likewise, renamed to
1042         update_indirect_edges_after_inlining.
1043         (ipa_create_all_structures_for_iinln): New function.
1044         (ipa_free_node_params_substructures): Do not free notes.
1045         (ipa_edge_duplication_hook): Propagate bits within
1046         iinlining_processed_edges bitmap.
1047         (ipa_node_duplication_hook): Do not duplicate notes.
1048         (free_all_ipa_structures_after_ipa_cp): Renamed to
1049         ipa_free_all_structures_after_ipa_cp.
1050         (free_all_ipa_structures_after_iinln): Renamed to
1051         ipa_free_all_structures_after_iinln.g
1052         (ipa_write_param_call_note): Removed.
1053         (ipa_read_param_call_note): Removed.
1054         (ipa_write_indirect_edge_info): New function.
1055         (ipa_read_indirect_edge_info): Likewise.
1056         (ipa_write_node_info): Do not stream notes, do stream information
1057         in indirect edges.
1058         (ipa_read_node_info): Likewise.
1059         (lto_ipa_fixup_call_notes): Removed.
1060         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1061         * ipa-inline.c (pass_ipa_inline): Likewise.
1062         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1063         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1064         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1065         is_gimple_call.
1066         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1067         edges.
1068         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1069         (output_cgraph): Stream also indirect edges.
1070         (lto_output_edge): Added capability to stream indirect edges.
1071         (input_edge): Likewise.
1072         (input_cgraph_1): Likewise.
1073         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1074         of indirect edges.
1075
1076 2010-04-28  Richard Guenther  <rguenther@suse.de>
1077
1078         PR tree-optimization/43879
1079         PR tree-optimization/43909
1080         * tree-ssa-structalias.c (struct variable_info): Add
1081         only_restrict_pointers flag.
1082         (new_var_info): Initialize it.  Increment stats.total_vars here.
1083         (create_function_info_for): Do not increment stats.total_vars
1084         here.
1085         (get_function_part_constraint): Fix build with C++.
1086         (insert_into_field_list): Remove.
1087         (push_fields_onto_fieldstack): Properly merge fields.
1088         (create_variable_info_for): Split and simplify.
1089         (create_variable_info_for_1): New piece.
1090         (intra_create_variable_infos): Properly make restrict constraints
1091         from parameters.
1092
1093 2010-04-28  Richard Guenther  <rguenther@suse.de>
1094
1095         PR c++/43880
1096         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1097
1098 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1099             Jan Hubicka <hubicka@ucw.cz>
1100
1101         * doc/invoke.texi (-Wsuggest-attribute=const,
1102         -Wsuggest-attribute=pure): Document.
1103         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1104         (function_always_visible_to_compiler_p,
1105         suggest_attribute, warn_function_pure, warn_function_const):
1106         New functions.
1107         (check_call): Improve debug info.
1108         (analyze_function): Do not check availability.
1109         (add_new_function): Check availability.
1110         (propagate): Output warnings.
1111         (skip_function_for_local_pure_const): New function.
1112         (local_pure_const): Use it; output warnings.
1113         * common.opt (Wsuggest-attribute=const,
1114         Wsuggest-attribute=pure): New.
1115
1116 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1117
1118         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1119         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1120         or DW_CFA_def_cfa_offset{,_sf}.
1121
1122 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1123
1124         * tree.h: Fix truncated long macros.
1125
1126 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1127
1128         * collect2.c (TARGET_64BIT): Redefine to target's default.
1129         * tlink.c: Likewise.
1130         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1131         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1132         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1133         for underscoring __USER_LABEL_PREFIX__.
1134         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1135         (SUB_LINK_ENTRY32): New.
1136         (SUB_LINK_ENTRY64): New.
1137         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1138         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1139         (SUB_LINK_ENTRY64): New.
1140         (SUB_LINK_ENTRY): New.
1141         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1142         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1143         x64 target is choosen.
1144         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1145         * configure: Regenerated.
1146         * configure.ac (leading-mingw64-underscores): Option added.
1147
1148 2010-04-27  Jan Hubicka  <jh@suse.cz>
1149
1150         * doc/invoke.texi (-fipa-profile): Document.
1151         * opts.c (decode_options): Enable ipa-profile at -O1.
1152         * timevar.def (TV_IPA_PROFILE): Define.
1153         * common.opt (fipa-profile): Add.
1154         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1155         flag for clones.
1156         (cgraph_propagate_frequency): Handle only local ones.
1157         * tree-pass.h (pass_ipa_profile): Declare.
1158         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1159         (pass_ipa_profile): Use TV_IPA_PROFILE.
1160         * ipa.c (ipa_profile): New function.
1161         (gate_ipa_profile): Likewise.
1162         (pass_ipa_profile): New global variable.
1163         * passes.c (pass_ipa_profile): New.
1164
1165 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1166
1167         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1168
1169 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1170
1171         PR middle-end/43812
1172         * ipa.c (dissolve_same_comdat_group_list): New function.
1173         (function_and_variable_visibility): Call
1174         dissolve_same_comdat_group_list when comdat group contains external or
1175         newly local nodes.
1176         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1177         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1178
1179 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1180
1181         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1182         (const_hash_1) <VECTOR_CST>: New case.
1183         (compare_constant) <VECTOR_CST>: Likewise.
1184         <ADDR_EXPR>: Deal with LABEL_REFs.
1185         (copy_constant) <VECTOR_CST>: New case.
1186
1187 2010-04-27  Jan Hubicka  <jh@suse.cz>
1188
1189         * cgraph.c (cgraph_propagate_frequency): New function.
1190         * cgraph.h (cgraph_propagate_frequency): Declare.
1191         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1192         cgraph_propagate_frequency.
1193
1194 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1195
1196         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1197
1198 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1199
1200         PR target/40657
1201         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1202         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1203         here to determine which regs to push and how much stack to reserve.
1204
1205 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1206
1207         * doc/gimple.texi (gimple_statement_with_ops): Remove
1208         addresses_taken field.
1209         (gimple_statement_with_memory_ops): Likewise.
1210
1211 2010-04-27  Jan Hubicka  <jh@suse.cz>
1212
1213         * tree-inline.c (eni_inlining_weights): Remove.
1214         (estimate_num_insns): Special case more builtins.
1215
1216 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1217
1218         PR c/32207
1219         * c-typeck.c (build_binary_op): Move forward check for comparison
1220         pointer with null pointer constant and adjust the diagnostic message.
1221
1222 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1223
1224         PR lto/42776
1225         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1226         binutils supports extended .section directive needed by LTO, or
1227         warn if older binutils found.
1228         (LTO_BINARY_READER): New AC_SUBST'd variable.
1229         (LTO_USE_LIBELF): Likewise.
1230         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1231         variable.
1232         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1233         (LTO_USE_LIBELF): Likewise.
1234         * configure: Regenerate.
1235
1236         * collect2.c (is_elf): Rename from this ...
1237         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1238          object files in addition to ELF-formatted ones.
1239         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1240         symbol to be prefixed or not by an extra underscore.
1241
1242         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1243         * config/i386/winnt.c: Also #include lto-streamer.h
1244         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1245         LTO named sections.
1246         (i386_pe_asm_output_aligned_decl_common): Add comment.
1247         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1248
1249 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1250
1251         PR target/43889
1252         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1253         Add missing earlyclobber for second alternative.
1254
1255 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1256
1257         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1258         bits for artificial defs at the top of the block.
1259         * fwprop.c (single_def_use_enter_block): Don't call it.
1260
1261 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1262
1263         PR 43715
1264         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1265         instead of "$gcc_cv_objdump -T".
1266         Use "-undefined dynamic_lookup" on darwin.
1267         * gcc/configure: Regenerate.
1268
1269 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1270
1271         PR c/43893
1272         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1273
1274 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1275
1276         * c-parser.c (struct c_token): Move location field up.
1277         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1278         (struct c_declspecs): Convert typespec_word, storage_class, and
1279         default_int_p into bitfields.
1280         (struct c_declarator): Move loc field up.
1281
1282 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1283
1284         * cfgloop.h (struct loop): Move can_be_parallel field up.
1285         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1286         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1287         down.
1288         (struct iv_cand): Convert pos field into a bitfield.
1289         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1290         field up.
1291         (struct _stmt_vec_info): Shuffle fields for better packing.
1292
1293 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1294
1295         * varasm.c (IN_NAMED_SECTION): Remove guard.
1296         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1297         (IN_NAMED_SECTION_P): ...this.
1298         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1299         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1300
1301 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1302
1303         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1304         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1305         of shadowing it.  Fix comments.
1306
1307 2010-04-26  Jan Hubicka  <jh@suse.cz>
1308
1309         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1310         (cgraph_clone_node): Copy function frequency.
1311         * cgraph.h (node_frequency): New enum
1312         (struct cgraph_node): Add.
1313         * final.c (rest_of_clean_state): Update.
1314         * lto-cgraph.c (lto_output_node): Output node frequency.
1315         (input_overwrite_node): Input node frequency.
1316         * tre-ssa-loop-ivopts (computation_cost): Update.
1317         * lto-streamer-out.c (output_function): Do not output function
1318         frequency.
1319         * predict.c (maybe_hot_frequency_p): Update and handle functions
1320         executed once.
1321         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1322         attribute lookup.
1323         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1324         (compute_function_frequency): Set noreturn functions to be executed
1325         once.
1326         (choose_function_section): Update.
1327         * lto-streamer-in.c (input_function): Do not input function frequency.
1328         * function.c (allocate_struct_function): Do not initialize function
1329         frequency.
1330         * function.h (function_frequency): Remove.
1331         (struct function): Remove function frequency.
1332         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1333         (try_update): Update.
1334         * tree-inline.c (initialize_cfun): Do not update function frequency.
1335         * passes.c (pass_init_dump_file): Update.
1336         * i386.c (ix86_compute_frame_layout): Update.
1337         (ix86_pad_returns): Update.
1338
1339 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1340
1341         PR tree-optimization/43833
1342         * tree-vrp.c (range_int_cst_p): New.
1343         (range_int_cst_singleton_p): New.
1344         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1345         when both operands are constants.  Use range_int_cst_p in
1346         BIT_IOR_EXPR case.
1347
1348 2010-04-26  Jan Hubicka  <jh@suse.cz>
1349
1350         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1351
1352 2010-04-26  Richard Guenther  <rguenther@suse.de>
1353
1354         PR lto/43080
1355         * gimple.c (gimple_decl_printable_name): Deal gracefully
1356         with a NULL DECL_NAME.
1357
1358 2010-04-26  Richard Guenther  <rguenther@suse.de>
1359
1360         PR lto/42425
1361         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1362         if emitting debug information and it is either a function
1363         or a namespace decl.
1364
1365 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1366
1367         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1368         determine if the statement is vectorizable, and a macro to access it.
1369         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1370         Skip statements that can't be vectorized. If the analysis fails,
1371         mark the statement as unvectorizable if vectorizing basic block.
1372         (vect_compute_data_refs_alignment): Likewise.
1373         (vect_verify_datarefs_alignment): Skip statements marked as
1374         unvectorizable. Add print.
1375         (vect_analyze_group_access): Skip statements that can't be
1376         vectorized. If the analysis fails, mark the statement as
1377         unvectorizable if vectorizing basic block.
1378         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1379         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1380         generated stmts for SLP.
1381         (new_stmt_vec_info): Initialize the new field.
1382         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1383         statements marked as unvectorizable.
1384
1385 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1386
1387         * c-common.c (flag_isoc1x): New.
1388         (flag_isoc99): Update comment.
1389         * c-common.h (flag_isoc1x): New.
1390         (flag_isoc99): Update comment.
1391         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1392         __<type>_DECIMAL_DIG__.
1393         * c-opts.c (set_std_c1x): New.
1394         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1395         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1396         * c.opt (-std=c1x, -std=gnu1x): New options.
1397         * doc/cpp.texi: Mention -std=c1x.
1398         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1399         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1400         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1401         * doc/standards.texi: Mention C1X.
1402         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1403         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1404         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1405         Define for C1X.
1406
1407 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1408
1409         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1410         placeholder from 0x%x to %#x.
1411         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1412         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1413         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1414         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1415         * config/i386/i386.c (ix86_target_string): Ditto.
1416         (output_pic_addr_const): Ditto.
1417         (print_operand): Ditto.
1418
1419 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1420
1421         * combine.c (find_split_point): Add third argument.  Use it
1422         to find nested multiply-accumulate instructions.  Adjust calls.
1423         (try_combine): Adjust call to find_split_point.
1424
1425 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1426
1427         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1428
1429 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1430
1431         PR tree-optimization/41442
1432         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1433         (fold_binary_loc): Call it.
1434
1435 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1436
1437         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1438         * opts.c (common_handle_option): Allow disabling it.
1439         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1440
1441 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1442
1443         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1444         between modes if both types are integral.
1445
1446 2010-04-23  Richard Guenther  <rguenther@suse.de>
1447
1448         PR tree-optimization/43572
1449         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1450
1451 2010-04-23  Richard Guenther  <rguenther@suse.de>
1452
1453         PR lto/43455
1454         * tree-inline.c (tree_can_inline_p): Also check compatibility
1455         of return types.
1456
1457 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1458
1459         PR tree-optimization/43846
1460         * tree-sra.c (struct access): New flag grp_assignment_read.
1461         (build_accesses_from_assign): Set grp_assignment_read.
1462         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1463         (enum mark_read_status): New type.
1464         (analyze_access_subtree): Propagate grp_assignment_read, create
1465         accesses also if both direct_read and root->grp_assignment_read.
1466
1467 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1468
1469         PR middle-end/43835
1470         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1471         function does not have type attributes.
1472
1473 2010-04-23  Richard Guenther  <rguenther@suse.de>
1474
1475         PR lto/42653
1476         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1477         of FUNCTION_DECLs.
1478
1479 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1480
1481         * sese.h (create_if_region_on_edge): Remove.
1482
1483         * sese.c (create_if_region_on_edge): Make static.
1484
1485         * tree-inline.c: Do not include ggc.h.
1486
1487         * expr.c: Do not include ggc.h.
1488
1489         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1490         dependencies.
1491
1492 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1493
1494         PR target/43744
1495         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1496         in the middle of insns for casesi_worker_2.
1497
1498 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1499
1500         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1501
1502 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1503
1504         PR tree-optimization/43842
1505         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1506         loop unrolling in update of exit phis. Fix comment.
1507         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1508         least two reduction statements in the loop before starting SLP
1509         analysis.
1510
1511 2010-04-22  Nick Clifton  <nickc@redhat.com>
1512
1513         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1514
1515 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1516
1517         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1518         to simplify a + ~a.
1519
1520 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1521
1522         * tree-parloops.c (loop_parallel_p): New argument
1523         parloop_obstack.  Pass it down.
1524         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1525         pass it down, free it.
1526
1527         * tree-loop-linear.c (linear_transform_loops): Pass down
1528         lambda_obstack.
1529
1530         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1531         of type struct obstack *.
1532
1533         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1534         scratch_obstack.  Initialize it, pass down, free it.
1535
1536         * lambda.h (lambda_loop_new): Remove.
1537         (lambda_matrix_new, lambda_matrix_inverse)
1538         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1539         argument of type struct obstack *.
1540
1541         * lambda-trans.c (lambda_trans_matrix_new): New argument
1542         lambda_obstack.  Pass it down, use obstack allocation for ret.
1543         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1544         it down.
1545
1546         * lambda-mat.c (lambda_matrix_get_column)
1547         (lambda_matrix_project_to_null): Remove.
1548         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1549         allocation for mat.
1550         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1551         lambda_obstack.
1552
1553         * lambda-code.c (lambda_loop_new): New function.
1554         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1555         (lambda_compute_auxillary_space, lambda_compute_target_space)
1556         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1557         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1558         (build_access_matrix): New argument lambda_obstack.  Use obstack
1559         allocation for am.
1560         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1561         argument lambda_obstack.  Pass it down.
1562
1563 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1564
1565         * optabs.h (expand_widening_mult): Declare.
1566
1567 2010-04-22  Richard Guenther  <rguenther@suse.de>
1568
1569         PR tree-optimization/43845
1570         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1571         lookup the CALL_EXPR function and arguments.
1572
1573 2010-04-22  Nick Clifton  <nickc@redhat.com>
1574
1575         * config/stormy16/stormy16.c
1576         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1577         * config/stormy16/stormy16.h: Tidy up formatting.
1578         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1579         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1580         (ineqbranchsi): Delete pattern.
1581         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1582         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1583         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1584         stormy16-lib2-ucmpsi2.c.
1585
1586 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1587
1588         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1589         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1590         extra set merge_set_noclobber, and use it to relax the final test
1591         slightly.
1592         * df.h (df_simulate_find_noclobber_defs): Declare.
1593         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1594         conditional defs.
1595         (df_simulate_find_noclobber_defs): New function.
1596
1597 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1598
1599         * config/i386/i386.md: Use {} around multi-line preparation statements.
1600
1601 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1602
1603         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1604         (process_init_element): New argument of type struct obstack *.
1605
1606         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1607         (set_init_index, set_init_label, set_nonincremental_init)
1608         (set_nonincremental_init_from_string, find_init_member)
1609         (output_init_element, output_pending_init_elements)
1610         (process_init_element): New argument braced_init_obstack.  Pass it
1611         down.
1612         (push_range_stack, add_pending_init): New argument
1613         braced_init_obstack.  Use obstack allocation.
1614
1615         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1616         braced_init_obstack.  Pass it down.
1617         (c_parser_braced_init): New variables ret, braced_init_obstack.
1618         Initialize obstack, pass it down and finally free it.
1619
1620 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1621
1622         PR middle-end/29274
1623         * tree-pass.h (pass_optimize_widening_mul): Declare.
1624         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1625         gate_optimize_widening_mul): New static functions.
1626         (pass_optimize_widening_mul): New.
1627         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1628         <case MULT_EXPR>: Remove support for widening multiplies.
1629         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1630         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1631         simplify_gen_unary rather than directly building extensions.
1632         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1633         WIDEN_MULT_EXPR.
1634         * expmed.c (expand_widening_mult): New function.
1635         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1636
1637 2010-04-21  Jan Hubicka  <jh@suse.cz>
1638
1639         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1640         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1641         * lto-wpa-fixup.c: Remove.
1642         * Makefile.in (lto-wpa-fixup.o): Remove.
1643         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1644         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1645         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1646
1647 2010-04-21  Jan Hubicka  <jh@suse.cz>
1648
1649         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1650         add write_optimization_summary, read_optimization_summary.
1651         (ipa_write_summaries_of_cgraph_node_set): Remove.
1652         (ipa_write_optimization_summaries): Declare.
1653         (ipa_read_optimization_summaries): Declare.
1654         * ipa-cp.c (pass_ipa_cp): Update.
1655         * ipa-reference.c (pass_ipa_reference): Update.
1656         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1657         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1658         Update.
1659         * ipa-inline.c (pass_ipa_inline): Update.
1660         * ipa.c (pass_ipa_whole_program): Update.
1661         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1662         * passes.c (ipa_write_summaries_1): Do not test wpa.
1663         (ipa_write_optimization_summaries_1): New.
1664         (ipa_write_optimization_summaries): New.
1665         (ipa_read_summaries): Do not test ltrans.
1666         (ipa_read_optimization_summaries_1): New.
1667         (ipa_read_optimization_summaries): New.
1668
1669 2010-04-21  Jan Hubicka  <jh@suse.cz>
1670
1671         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1672         for boundary nodes.
1673         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1674
1675 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1676
1677         PR debug/40040
1678         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1679         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1680
1681 2010-04-21  Jan Hubicka  <jh@suse.cz>
1682
1683         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1684
1685 2010-04-21  Jan Hubicka  <jh@suse.cz>
1686
1687         * varpool.c (decide_is_variable_needed): Variable is always needed
1688         during ltrans.
1689
1690 2010-04-21  Jan Hubicka  <jh@suse.cz>
1691
1692         * opts.c (decode_options): Enable pure-const pass for whopr.
1693
1694 2010-04-21  Jan Hubicka  <jh@suse.cz>
1695
1696         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1697         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1698         at WPA dumping.
1699         (cgraph_decide_inlining): Do not expect callee to be removed in all
1700         cases.
1701
1702 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1703
1704         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1705
1706 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1707
1708         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1709         amdfam10_decode attributes.
1710
1711 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1712
1713         PR middle-end/43570
1714         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1715         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1716         (lower_copyprivate_clauses): Use private var in outer
1717         context instead of original var.  Make sure the types
1718         are correct for VLAs.
1719
1720 2010-04-21  Richard Guenther  <rguenther@suse.de>
1721
1722         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1723         to non-pointer objects.
1724
1725 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1726
1727         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1728         last chain entry if it starts with the still current label.
1729         (add_location_or_const_value_attribute): Check that
1730         loc_list->first->next is NULL instead of comparing ->first with ->last.
1731         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1732         to add_var_loc_to_decl.
1733
1734         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1735         >= 4 add also address size and segment size fields into CIE header.
1736
1737         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1738         long as address size is the same as sizeof (void *) and
1739         segment size is 0.
1740         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1741         address size or segment size is unexpected, return DW_EH_PE_omit.
1742         (classify_object_over_fdes): If get_cie_encoding returned
1743         DW_EH_PE_omit, return -1.
1744         (init_object): If classify_object_over_fdes returned -1,
1745         pretend there were no FDEs at all.
1746
1747 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1748
1749         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1750         bswap{si,di}2 using SWI48 mode iterator.
1751         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1752         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1753         set modrm attribute of bswap insn to 0 and remove length attribute.
1754         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1755         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1756         set mode attribute to <MODE> and remove length attribute.
1757
1758 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1759
1760         PR rtl-optimization/43520
1761         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1762         zero available registers.
1763
1764 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1765
1766         * builtins.c (fold_builtin_cproj): Fold more cases.
1767
1768 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1769
1770         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1771         (fold_builtin_1): Fold builtin cproj.
1772         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1773         Use ATTR_CONST_NOTHROW_LIST.
1774
1775 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1776
1777         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1778         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1779         ffsi2_no_cmove for !TARGET_CMOVE.
1780         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1781         (ffssi2): Remove expander.
1782         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1783         mode iterator.
1784         (ctz<mode>2): Ditto from ctz{si,di}2.
1785         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1786         mode iterator.
1787         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1788         mode iterator.
1789
1790 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1791
1792         * dwarf2out.c (AT_linkage_name): Define.
1793         (clone_as_declaration): Handle DW_AT_linkage_name.
1794         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1795         of DW_AT_MIPS_linkage_name.
1796         (move_linkage_attr): Likewise.
1797         (dwarf2out_finish): Likewise.
1798
1799 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1800
1801         PR middle-end/41952
1802         * fold-const.c (fold_comparison): New folding rule.
1803
1804 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1805
1806         * double-int.h (double_int_setbit): Declare.
1807         * double-int.c (double_int_setbit): New function.
1808         * rtl.h (immed_double_int_const): Declare.
1809         * emit-rtl.c (immed_double_int_const): New function.
1810         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1811         and immed_double_int_const functions.
1812         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1813         expand_copysign_bit):  (Ditto.).
1814         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1815         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1816         * dojump.c (prefer_and_bit_test): (Ditto.).
1817         * expr.c (convert_modes, reduce_to_bit_field_precision,
1818         const_vector_from_tree): (Ditto.).
1819         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1820
1821 2010-04-20  Jan Hubicka  <jh@suse.cz>
1822
1823         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1824         (dump_cgraph_node): Dump new flags.
1825         * cgraph.h (struct cgraph_node): Add flags
1826         reachable_from_other_partition and in_other_partition.
1827         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1828         other partition can not be removed.
1829         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1830         the other partition must be output; silence sanity checking on
1831         leaking functions bodies from other paritition.
1832         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1833         (lto_output_node): Output new flags; do not sanity check that inline
1834         clones are output; drop lto_forced_extern_inline_p code; do not mock
1835         visibility flags at partition boundaries.
1836         (add_node_to): New function.
1837         (output_cgraph): Use it to sort functions so masters appear before
1838         clones.
1839         (input_overwrite_node): Input new flags.
1840         * passes.c (ipa_write_summaries): Do not call
1841         lto_new_extern_inline_states.
1842         * lto-section-out.c (forced_extern_inline,
1843         lto_new_extern_inline_states lto_delete_extern_inline_states,
1844         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
1845         * lto-streamer.h (lto_new_extern_inline_states,
1846         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
1847         lto_forced_extern_inline_p): Kill.
1848
1849 2010-04-20  Richard Guenther  <rguenther@suse.de>
1850
1851         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
1852         from vars that can have pointers.
1853         (process_constraint): Dump useless constraints.
1854
1855 2010-04-20  Richard Guenther  <rguenther@suse.de>
1856
1857         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
1858         (dump_sa_points_to_info): Remove asserts.
1859         (init_base_vars): nothing_id isn't an escape point nor does it
1860         have pointers.
1861
1862 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1863
1864         * tree.h (TYPE_REF_IS_RVALUE): Define.
1865         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
1866         should_move_die_to_comdat, prune_unused_types_walk): Handle
1867         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
1868         (modified_type_die, gen_reference_type_die): Emit
1869         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
1870         if TYPE_REF_IS_RVALUE and -gdwarf-4.
1871
1872 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1873
1874         PR target/43635
1875         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
1876         calls for -fpic -m31 if they have been sibcall optimized.
1877
1878 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
1879
1880         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
1881         ar.lc fixed and call-used.
1882
1883         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
1884
1885 2010-04-19  Jan Hubicka  <jh@suse.cz>
1886
1887         * opts.c (decode_options): Disable whpr incompatible passes.
1888         * lto/lto.c (lto_1_to_1_map): Skip clones.
1889         (read_cgraph_and_symbols): Do not mark everything as needed.
1890         (do_whole_program_analysis): Do map only after optimizing;
1891         set proper cgraph_state; use passmanager.
1892
1893 2010-04-19  DJ Delorie  <dj@redhat.com>
1894
1895         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1896         POINTER_PLUS_EXPR and fix them.
1897
1898 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1899
1900         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1901         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1902         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1903         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1904         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1905         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1906         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1907         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1908         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1909         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1910         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1911
1912 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1913
1914         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1915         (check_cond_move_block): Likewise.
1916         (cond_move_process_if_block): Likewise.
1917         (noce_find_if_block): Improve formatting.
1918         (find_if_header): Pass 0 to memset and tweak conditions.
1919         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1920
1921 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1922
1923         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1924         for -gdwarf-4.
1925
1926         PR middle-end/43337
1927         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1928         with non-local decl doesn't need chain.
1929
1930 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1931
1932         * ira-color.c (allocno_reload_assign): Avoid accumulating
1933         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1934
1935 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1936
1937         * gimple.h (create_tmp_reg): Declare.
1938         * gimplify.c (create_tmp_reg): New function.
1939         (gimplify_return_expr): Use create_tmp_reg.
1940         (gimplify_omp_atomic): Likewise.
1941         (gimple_regimplify_operands): Likewise.
1942         * tree-dfa.c (make_rename_temp): Likewise.
1943         * tree-predcom.c (predcom_tmp_var): Likewise.
1944         (reassociate_to_the_same_stmt): Likewise.
1945         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1946         (get_replaced_param_substitute): Likewise.
1947         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1948         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1949         * tree-ssa-pre.c (get_representative_for): Likewise.
1950         (create_expression_by_pieces): Likewise.
1951         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1952         (create_tailcall_accumulator): Likewise.
1953
1954 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1955
1956         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1957         new_stmt.
1958         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1959
1960 2010-04-19  Richard Guenther  <rguenther@suse.de>
1961
1962         PR tree-optimization/43796
1963         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1964         from SCEV in the lattice.
1965         (vrp_visit_phi_node): Dump change.
1966
1967 2010-04-19  Richard Guenther  <rguenther@suse.de>
1968
1969         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1970         * configure: Re-generated.
1971
1972 2010-04-19  Richard Guenther  <rguenther@suse.de>
1973
1974         PR tree-optimization/43783
1975         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1976         constant ARRAY_REF operands two and three if possible.
1977
1978 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1979
1980         PR target/43766
1981         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1982
1983 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1984
1985         PR target/43662
1986         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1987
1988 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1989
1990         PR tree-optimization/37027
1991         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1992         and macro to access it.
1993         (vectorizable_reduction): Add argument.
1994         (vect_get_slp_defs): Likewise.
1995         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1996         statements for possible use in SLP.
1997         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1998         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1999         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2000         add new argument.
2001         (vectorizable_reduction): Likewise.
2002         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2003         vect_get_slp_defs.
2004         (vectorizable_type_demotion, vectorizable_type_promotion,
2005         vectorizable_store): Likewise.
2006         (vect_analyze_stmt): Update call to vectorizable_reduction.
2007         (vect_transform_stmt): Likewise.
2008         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2009         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2010         from different interleaving chains in same node.
2011         (vect_slp_rearrange_stmts): New function.
2012         (vect_supported_load_permutation_p): Allow load permutations for
2013         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2014         inside SLP nodes if necessary.
2015         (vect_analyze_slp_instance): Handle reductions.
2016         (vect_analyze_slp): Try to build SLP instances originating from groups
2017         of reductions.
2018         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2019         (vect_get_constant_vectors): Create initial vectors for reductions
2020         according to reduction code. Add new argument.
2021         (vect_get_slp_defs): Add new argument, pass it to
2022         vect_get_constant_vectors.
2023         (vect_schedule_slp_instance): Remove SLP tree root statements.
2024
2025 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2026
2027         * tree.h (ENUM_IS_SCOPED): Define.
2028         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2029         for ENUM_IS_SCOPED enums.
2030
2031 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2032
2033         * fold-const.c (fold_comparison): Use ssizetype.
2034         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2035         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2036         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2037         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2038
2039         * tree.h (initialize_sizetypes): Remove parameter.
2040         (build_common_tree_nodes): Remove second parameter.
2041         * stor-layout.c (initialize_sizetypes): Remove parameter.
2042         Always create an unsigned type.
2043         (set_sizetype): Assert that the passed type is unsigned and simplify.
2044         * tree.c (build_common_tree_nodes): Remove second parameter.
2045         Adjust call to initialize_sizetypes.
2046         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2047         build_common_tree_nodes.
2048
2049 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2050
2051         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2052
2053 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2054
2055         PR tree-optimization/43771
2056         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2057         load permutation doesn't have gaps.
2058
2059 2010-04-18  Jan Hubicka  <jh@suse.cz>
2060
2061         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2062         (sse_prologue_save_insn expander): Use new pattern.
2063         (sse_prologue_save_insn1): New pattern and splitter.
2064         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2065         blocks.
2066         * i386.c (setup_incoming_varargs_64): Do not compute jump
2067         destination here.
2068         (ix86_gimplify_va_arg): Update alignment needed.
2069         (ix86_local_alignment): Do not align all local arrays to 128bit.
2070
2071 2010-04-17  Jan Hubicka  <jh@suse.cz>
2072
2073         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2074
2075 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2076
2077         * arm.md (negdi2): Remove redundant code to force values into a
2078         register.
2079
2080 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2081
2082         * arm/bpabi.S: Add EABI alignment attributes to objects.
2083         * arm/bpabi-v6m.S: Likewise.
2084         * arm/crti.asm: Likewise.
2085         * arm/crtn.asm: Likewise.
2086         * arm/lib1funcs.asm: Likewise.
2087         * arm/libunwind.S: Likewise.
2088
2089 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2090
2091         * arm-protos.h (tune_params): New structure.
2092         * arm.c (current_tune): New variable.
2093         (arm_constant_limit): Delete.
2094         (struct processors): Add pointer to the tune parameters.
2095         (arm_slowmul_tune): New tuning option.
2096         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2097         (all_cores): Adjust to pick up the tuning model.
2098         (arm_constant_limit): New function.
2099         (arm_override_options): Select the appropriate tuning model.  Delete
2100         initialization of arm_const_limit.
2101         (arm_split_constant): Use the new constant-limit model.
2102         (arm_rtx_costs): Pick up the current tuning model.
2103         * arm.md (is_strongarm, is_xscale): Delete.
2104         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2105         for Xscale variant architectures.
2106         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2107
2108 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2109
2110         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2111         can_shift.
2112         (arm_rtx_costs_1): Remove unused variable extra_cost.
2113         (arm_unwind_emit_set): Use variable offset.
2114         (thumb1_output_casesi): Remove unused variable flags.
2115
2116 2010-04-16  Jeff Law  <law@redhat.com>
2117
2118         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2119         needing assignment rather than doing a two-phase assignment.  Remove
2120         unused variable 'm'.
2121
2122 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2123
2124         PR bootstrap/43767
2125         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2126
2127 2010-04-16  Doug Kwan  <dougkwan@google.com>
2128
2129         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2130         (next_operand_entry_id): New static variable.
2131         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2132         (add_to_ops_vec): Assigned unique ID to operand entry.
2133         (struct oecount_s): New field ID.
2134         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2135         (undistribute_ops_list): Assign unique IDs to oecounts.
2136         (init_reassoc): reset next_operand_entry_id.
2137
2138 2010-04-16  Doug Kwan  <dougkwan@google.com>
2139
2140         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2141         missing left parenthesis.
2142
2143 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2144
2145         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2146         *btdi_rex64 using SWI48 mode iterator.
2147         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2148         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2149         *jcc_btdi_mask_rex64.
2150
2151 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2152
2153         * double-int.h (tree_to_double_int): Convert to macro.
2154         * double-int.c (tree_to_double_int): Remove.
2155
2156 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2157
2158         PR debug/43762
2159         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2160         with want_address 2 and in case a single element list might be
2161         possible, call it again with want_address 0.
2162
2163 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2164
2165         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2166         case 'W' print operands for HI mode.
2167         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2168         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2169         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2170         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2171
2172         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2173
2174         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2175         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2176         #xx:3 and #xx:4 mode.
2177
2178         * config/h8300/h8300.md (inverted load with HImode dest): Add
2179         support for H8300SX.
2180
2181         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2182         satisfy 'U' constraint.
2183
2184 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2185
2186         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2187         * configure: Regenerate.
2188         * config.in: Regenerate.
2189         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2190         works.
2191
2192 2010-04-16  Richard Guenther  <rguenther@suse.de>
2193
2194         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2195         (struct tree_decl_common): ... here.
2196         (DECL_PT_UID): Adjust.
2197         (SET_DECL_PT_UID): Likewise.
2198         (DECL_PT_UID_SET_P): Likewise.
2199
2200 2010-04-16  Richard Guenther  <rguenther@suse.de>
2201
2202         PR tree-optimization/43572
2203         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2204         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2205         * tree-flow.h (is_call_clobbered): Remove.
2206         * tree-flow-inline.h (is_call_clobbered): Likewise.
2207         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2208         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2209         (execute_return_slot_opt): Adjust.
2210         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2211         check for call clobbered vars here.
2212         (find_tail_calls): Move tailcall verification to the
2213         proper place.
2214
2215 2010-04-16  Diego Novillo  <dnovillo@google.com>
2216
2217         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2218
2219 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2220
2221         PR target/40603
2222         * config/arm/arm.md (cbranchqi4): New pattern.
2223         * config/arm/predicates.md (const0_operand,
2224         cbranchqi4_comparison_operator): New predicates.
2225
2226 2010-04-16  Richard Guenther  <rguenther@suse.de>
2227
2228         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2229         (dump_gimple_stmt): Likewise.
2230
2231 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2232
2233         * recog.h (struct recog_data): New field is_operator.
2234         (struct insn_operand_data): New field is_operator.
2235         * recog.c (extract_insn): Set recog_data.is_operator.
2236         * genoutput.c (output_operand_data): Emit code to set the
2237         is_operator field.
2238         * reload.c (find_reloads): Use it rather than testing for an
2239         empty constraint string.
2240
2241         PR target/41514
2242         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2243         If the previous insn is a cbranchsi4_insn with the same arguments,
2244         omit the compare instruction.
2245
2246         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2247         register, inputs must be low registers and we need a low register
2248         scratch.  Handle alternative 2 like alternative 3.
2249
2250 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2251
2252         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2253         don't call get_addr on both.  If one expression is a VALUE and
2254         the other a REG, check VALUE's locs if the REG isn't among them.
2255
2256 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2257
2258         * config/sh/sh.h (sh_frame_pointer_required): New function.
2259         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2260         (flag_omit_frame_pointer) Set.
2261         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2262         (rounded_frame_size): Adjust size with outgoing_args_size.
2263         (sh_set_return_address): Must return from stack pointer.
2264         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2265         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2266         (ACCUMULATE_OUTGOING_ARGS): Define.
2267         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2268         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2269
2270 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2271
2272         PR target/43471
2273         * config/sh/sh.c (sh_legitimize_reload_address): Use
2274         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2275         Remove a unneeded check for offset_base.
2276
2277 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2278
2279         * configure: Regenerated.
2280
2281 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2282
2283         * config/s390/s390.c (s390_call_save_register_used): Switch back
2284         to HARD_REGNO_NREGS.
2285
2286 2010-04-15  Richard Guenther  <rguenther@suse.de>
2287
2288         * alias.c (alias_set_subset_of): Handle alias-set zero
2289         child properly.
2290
2291 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2292             Julian Brown  <julian@codesourcery.com>
2293
2294         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2295         alternatives according to use of high and low regs.
2296         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2297         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2298         optimizing for size on Thumb-2.
2299
2300 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2301
2302         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2303
2304 2010-04-15  Richard Guenther  <rguenther@suse.de>
2305
2306         * tree-ssa-structalias.c (struct variable_info): Add
2307         is_fn_info flag.
2308         (new_var_info): Initialize it.
2309         (dump_constraints): Support printing last added constraints.
2310         (debug_constraints): Adjust.
2311         (dump_constraint_graph): Likewise.
2312         (make_heapvar_for): Check for NULL cfun.
2313         (get_function_part_constraint): New function.
2314         (get_fi_for_callee): Likewise.
2315         (find_func_aliases): Properly implement IPA PTA constraints.
2316         (process_ipa_clobber): New function.
2317         (find_func_clobbers): Likewise.
2318         (insert_into_field_list_sorted): Remove.
2319         (create_function_info_for): Properly allocate vars for IPA mode.
2320         Do not use insert_into_field_list_sorted.
2321         (create_variable_info_for): Properly generate constraints for
2322         global vars in IPA mode.
2323         (dump_solution_for_var): Always dump the solution.
2324         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2325         (find_what_var_points_to): Adjust.
2326         (pt_solution_set): Change.
2327         (pt_solution_ior_into): New function.
2328         (pt_solution_empty_p): Export.
2329         (pt_solution_includes_global): Adjust.
2330         (pt_solution_includes_1): Likewise.
2331         (pt_solutions_intersect_1): Likewise.
2332         (dump_sa_points_to_info): Check some invariants.
2333         (solve_constraints): Move constraint dumping ...
2334         (compute_points_to_sets): ... here.
2335         (ipa_pta_execute): ... and here.
2336         (compute_may_aliases): Do not re-compute points-to info
2337         locally if IPA info is available.
2338         (ipa_escaped_pt): New global var.
2339         (ipa_pta_execute): Properly implement IPA PTA.
2340         * tree-into-ssa.c (dump_decl_set): Support dumping
2341         decls not in referenced-vars.
2342         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2343         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2344         (dump_points_to_solution): Likewise.
2345         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2346         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2347         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2348         (copy_decl_to_var): Copy DECL_PT_UID.
2349         (copy_result_decl_to_var): Likewise.
2350         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2351         (copy_node_stat): Copy it.
2352         * tree.h (DECL_PT_UID): New macro.
2353         (SET_DECL_PT_UID): Likewise.
2354         (DECL_PT_UID_SET_P): Likewise.
2355         (struct tree_decl_minimal): Add pt_uid member.
2356         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2357         (pt_solution_empty_p): Declare.
2358         (pt_solution_set): Adjust.
2359         (ipa_escaped_pt): Declare.
2360         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2361         * gimple-pretty-print.c (pp_points_to_solution): New function.
2362         (dump_gimple_call): Dump call clobber/use information.
2363         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2364         * tree-pass.h (TDF_ALIAS): New dump option.
2365         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2366         * doc/invoke.texi (-fipa-pta): Update documentation.
2367
2368 2010-04-15  Richard Guenther  <rguenther@suse.de>
2369
2370         * Makefile.in (OBJS-common): Add gimple-fold.o.
2371         (gimple-fold.o): New rule.
2372         * tree.h (maybe_fold_offset_to_reference,
2373         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2374         prototypes ...
2375         * gimple.h: ... here.
2376         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2377         may_propagate_address_into_dereference): Move prototypes ...
2378         * gimple.h: ... here.
2379         * tree-ssa-ccp.c (get_symbol_constant_value,
2380         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2381         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2382         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2383         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2384         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2385         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2386         gimplify_and_update_call_from_tree): Move ...
2387         * gimple-fold.c: ... here.  New file.
2388         (ccp_fold_builtin): Rename to ...
2389         (gimple_fold_builtin): ... this.
2390         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2391
2392 2010-04-15  Richard Guenther  <rguenther@suse.de>
2393
2394         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2395         fit_double_type, force_fit_type_double, add_double_with_sign,
2396         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2397         lrotate_double, rrotate_double, div_and_round_double): Move ...
2398         * double-int.c: ... here.
2399         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2400         add_double, neg_double, mul_double_with_sign, mul_double,
2401         lshift_double, rshift_double, lrotate_double, rrotate_double,
2402         div_and_round_double): Move prototypes ...
2403         * double-int.h: ... here.
2404
2405 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2406
2407         PR target/43742
2408         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2409         matching constraints to ensure inputs match the output.
2410
2411 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2412
2413         PR target/43742
2414         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2415         in an input-only operand.
2416
2417 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2418
2419         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2420         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2421         (double_int_negative_p): Convert to static inline function.
2422         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2423         (double_int_negative_p): Remove.
2424         * tree.h (lshift_double, rshift_double):
2425         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2426         * fold-const.c (fold_convert_const_int_from_real,
2427         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2428         (lshift_double): Change type of arith argument to bool.
2429         (rshift_double): Change type of arith argument to bool. Correct
2430         comment.
2431         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2432
2433 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2434
2435         PR target/21803
2436         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2437         at the start and end of the then/else blocks, and omit them from the
2438         conversion.
2439         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2440         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2441         (flow_find_head_matching_sequence): New function.
2442         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2443         * basic-block.h (flow_find_cross_jump,
2444         flow_find_head_matching_sequence): Declare functions.
2445
2446 2010-04-14  Jason Merrill  <jason@redhat.com>
2447
2448         PR c++/36625
2449         * c-common.c (attribute_takes_identifier_p): New fn.
2450         * c-common.h: Declare it.
2451
2452 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2455         splitter condition.
2456         (*udivmod<mode>4): Ditto.
2457
2458 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2459
2460         * config/i386/i386.md (maxmin_int): Rename code attribute from
2461         maxminiprefix and update all users.
2462         (maxmin_float): Ditto from maxminfprefix.
2463         (logic): Ditto from logicprefix.
2464         (absneg_mnemonic): Ditto from absnegprefix.
2465         * config/i386/mmx.md: Update all users of maxminiprefix,
2466         maxminfprefix and logicprefix for rename.
2467         * config/i386/sse.md: Ditto.
2468         * config/i386/sync.md (sync_<code><mode>): Update for
2469         logicprefix rename.
2470
2471 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2472
2473         PR 42966
2474         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2475         warnings converted to errors.
2476
2477 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2478
2479         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2480         used insn_type variable.
2481         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2482         to avoid set-but-not-used warning.
2483
2484 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2485
2486         * df-core.c (df_ref_debug): Change format string placeholder
2487         from 0x%x to %#x.
2488         * dwarf2asm.c (dw2_asm_output_data_raw,
2489         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2490         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2491         * dwarf2out.c (output_cfi, output_cfi_directive,
2492         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2493         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2494         Ditto.
2495         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2496         * print-rtl.c (print_rtx): Ditto.
2497
2498 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2499
2500         PR middle-end/42694
2501         * builtins.c (expand_builtin_pow_root): New function to expand pow
2502         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2503         series of sqrt and cbrt calls under -ffast-math.
2504         (expand_builtin_pow): Call it.
2505
2506 2010-04-14  Michael Matz  <matz@suse.de>
2507
2508         PR tree-optimization/42963
2509         * tree-cfg.c (touched_switch_bbs): New static variable.
2510         (group_case_labels_stmt): New function broken out from ...
2511         (group_case_labels): ... here, use the above.
2512         (start_recording_case_labels): Allocate touched_switch_bbs.
2513         (end_recording_case_labels): Deallocate it, call
2514         group_case_labels_stmt.
2515         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2516
2517 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2518
2519         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2520         from insn template.
2521
2522 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2523
2524         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2525
2526 2010-04-13  Jan Hubicka  <jh@suse.cz>
2527
2528         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2529         of optimized out static functions.
2530         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2531         cost computation.  Also sanity check for overflows.
2532         (update_caller_keys): Update cgraph_edge_badness call; properly
2533         update fibheap and sanity check that it is up to date.
2534         (add_new_edges_to_heap): Update cgraph_edge_badness.
2535         (cgraph_decide_inlining_of_small_function): Likewise;
2536         add sanity checking that badness in heap is up to date;
2537         improve dumping of reason; Update badness of calls to the
2538         offline copy of function currently inlined; dump badness
2539         of functions not inlined because of unit growth limits.
2540
2541 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2542
2543         PR middle-end/32628
2544         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2545         because of sign-extension change when converting to sizetype here...
2546         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2547
2548         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2549         the folding to constants.  Remove redundant final conversion.
2550         (fold_binary) <associate>: Do not associate if the re-association of
2551         constants alone overflows.
2552         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2553         to the end of the list.
2554         (multiple_of_p) <COND_EXPR>: New case.
2555
2556 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2557
2558         * opt-functions.awk (opt_sanitized_name): New.
2559         (opt_enum): New.
2560         * optc-gen.awk: Use it
2561         * opth-gen.awk: Use it.
2562
2563 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2564
2565         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2566         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2567         children.  Call replace_uses_with_default_def_ssa_name to handle
2568         SSA_NAES on lhs.
2569
2570 2010-04-13  Michael Matz  <matz@suse.de>
2571
2572         PR middle-end/43730
2573         * builtins.c (expand_builtin_interclass_mathfn): Also create
2574         a register if the predicate doesn't match.
2575
2576 2010-04-13  Diego Novillo  <dnovillo@google.com>
2577
2578         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2579         * c-pch.c: Include timevar.h.
2580         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2581         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2582         * ggc-common.c: Include timevar.h.
2583         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2584         * timevar.def (TV_PCH_SAVE): Define.
2585         (TV_PCH_CPP_SAVE): Define.
2586         (TV_PCH_PTR_REALLOC): Define.
2587         (TV_PCH_PTR_SORT): Define.
2588         (TV_PCH_RESTORE): Define.
2589         (TV_PCH_CPP_RESTORE): Define.
2590
2591 2010-04-13  Michael Matz  <matz@suse.de>
2592
2593         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2594         into MINUS_EXPRs.
2595         (can_reassociate_p): New function.
2596         (break_up_subtract_bb, reassociate_bb): Use it.
2597
2598 2010-04-13  Richard Guenther  <rguenther@suse.de>
2599
2600         PR bootstrap/43737
2601         * builtins.c (c_readstr): Fix assert.
2602
2603 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2604
2605         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2606         when generating cltd insn.
2607
2608         (*ashl<mode>3_1): Remove special handling for register operand 2.
2609         (*ashlsi3_1_zext): Ditto.
2610         (*ashlhi3_1): Ditto.
2611         (*ashlhi3_1_lea): Ditto.
2612         (*ashlqi3_1): Ditto.
2613         (*ashlqi3_1_lea): Ditto.
2614         (*<shiftrt_insn><mode>3_1): Ditto.
2615         (*<shiftrt_insn>si3_1_zext): Ditto.
2616         (*<shiftrt_insn>qi3_1_slp): Ditto.
2617         (*<rotate_insn><mode>3_1): Ditto.
2618         (*<rotate_insn>si3_1_zext): Ditto.
2619         (*<rotate_insn>qi3_1_slp): Ditto.
2620
2621 2010-04-13  Richard Guenther  <rguenther@suse.de>
2622
2623         * tree-ssa-structalias.c (callused_id): Remove.
2624         (call_stmt_vars): New.
2625         (get_call_vi): Likewise.
2626         (lookup_call_use_vi): Likewise.
2627         (lookup_call_clobber_vi): Likewise.
2628         (get_call_use_vi): Likewise.
2629         (get_call_clobber_vi): Likewise.
2630         (make_transitive_closure_constraints): Likewise.
2631         (handle_const_call): Adjust to do per-call call-used handling.
2632         (handle_pure_call): Likewise.
2633         (find_what_var_points_to): Remove general callused handling.
2634         (init_base_vars): Likewise.
2635         (init_alias_vars): Initialize call_stmt_vars.
2636         (compute_points_to_sets): Process call-used and call-clobbered
2637         vars for call statements.
2638         (delete_points_to_sets): Free call_stmt_vars.
2639
2640 2010-04-13  Richard Guenther  <rguenther@suse.de>
2641
2642         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2643         Only add RW dependence for dependence distance zero.
2644         Adjust maximal vectorization factor according to dependences.
2645         Move alignment handling ...
2646         (vect_find_same_alignment_drs): ... here.  New function.
2647         (vect_analyze_data_ref_dependences): Adjust.
2648         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2649         (vect_analyze_data_refs): Adjust minimal vectorization factor
2650         according to data references.
2651         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2652         dependences before determining the vectorization factor.
2653         Analyze alignment after determining the vectorization factor.
2654         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2655         dependences before alignment.
2656         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2657         Adjust prototype.
2658         (vect_analyze_data_refs): Likewise.
2659         (MAX_VECTORIZATION_FACTOR): New define.
2660
2661 2010-04-13  Duncan Sands  <baldrick@free.fr>
2662
2663         * except.h (lang_eh_type_covers): Remove.
2664         * except.c (lang_eh_type_covers): Likewise.
2665
2666 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2667             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2668
2669         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2670         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2671         UNITS_PER_LONG where it is ABI relevant.
2672         (s390_return_addr_rtx): Likewise.
2673         (s390_back_chain_rtx): Likewise.
2674         (s390_frame_area): Likewise.
2675         (s390_frame_info): Likewise.
2676         (s390_initial_elimination_offset): Likewise.
2677         (save_gprs): Likewise.
2678         (s390_emit_prologue): Likewise.
2679         (s390_emit_epilogue): Likewise.
2680         (s390_function_arg_advance): Likewise.
2681         (s390_function_arg): Likewise.
2682         (s390_va_start): Likewise.
2683         (s390_gimplify_va_arg): Likewise.
2684         (s390_function_profiler): Likewise.
2685         (s390_optimize_prologue): Likewise.
2686         (s390_rtx_costs): Likewise.
2687         (s390_secondary_reload): Likewise.
2688         (s390_promote_function_mode): Likewise.
2689         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2690         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2691         registers available.
2692         (s390_unwind_word_mode): New function.
2693         (s390_function_value): Split 64 bit values into register pair if
2694         used as return value.
2695         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2696         function call parameters.  Handle parallels.
2697         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2698         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2699         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2700         (s390_expand_setmem): Remove unused variable src_addr.
2701         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2702         deal with 64 bit registers.
2703         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2704         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2705         (UNITS_PER_LONG): New macro.
2706         * libjava/include/s390-signal.h: Define extended ucontext
2707         structure containing the upper halfs of the 64 bit registers.
2708
2709 2010-04-13  Simon Baldwin  <simonb@google.com>
2710
2711         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2712
2713 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2716         rvalue on the RHS if the LHS is of a non-renamable type.
2717         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2718
2719 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2720
2721         * gcc.c (cc1_options): Handle -iplugindir before processing
2722         the cc1 spec. Only add -iplugindir once.
2723         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2724         found.
2725         * common.opt (iplugindir): Remove `Separate' property, initialize.
2726         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2727         option.
2728         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2729         (distclean): Remove plugin dir.
2730         * doc/invoke.texi: Document -iplugindir.
2731
2732 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2733
2734         * doc/plugins.texi (Loading Plugins): Document short
2735         -fplugin=foo option.
2736         (Plugin API): Mention default_plugin_dir_name function.
2737
2738         * gcc.c (find_file_spec_function): Add new declaration.
2739         (static_spec_func): Use it for "find-file".
2740         (find_file_spec_function): Add new function.
2741         (cc1_options): Add -iplugindir option if -fplugin* options found.
2742
2743         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2744
2745         * plugin.c (add_new_plugin): Updated comment, and handle short
2746         plugin name.
2747         (default_plugin_dir_name): Added new function.
2748
2749         * common.opt (iplugindir): New option to set the plugin directory.
2750
2751 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2752
2753         * config/i386/i386.md (any_rotate): New code iterator.
2754         (rotate_insn): New code attribute.
2755         (rotate): Ditto.
2756         (SWIM124): New mode iterator.
2757         (<rotate_insn>ti3): New expander.
2758         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2759         any_rotate code iterator.
2760         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2761         using any_rotate code iterator and SWIM124 mode iterator.
2762         (ix86_rotlti3): New insn_and_split pattern.
2763         (ix86_rotrti3): Ditto.
2764         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2765         ix86_rotl{di,ti}3 patterns.
2766         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2767         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2768         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2769         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2770         code iterator and SWI mode iterator.
2771         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2772         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2773         code iterator.
2774         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2775         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2776         (bswap rotatert splitter): Add splitter.
2777         (bswap splitter): Macroize splitter using any_rotate code iterator.
2778         Add insn predicate to split only for TARGET_USE_XCHGB or when
2779         optimizing function for size.
2780
2781 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2782
2783         * config/pa/pa.c (emit_move_sequence): Remove use of
2784         deleted variable flag_argument_noalias.
2785
2786 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2787
2788         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2789         configurations.
2790         Add to unsupported targets list.
2791         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2792         sparc*-sun-solaris2.[567]* from target lists.
2793         * configure: Regenerate.
2794         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2795         removal.
2796         Remove Solaris 7 patch references.
2797         (Specific, sparc-sun-solaris2.7): Removed.
2798         (sparc-sun-solaris2*): Update Solaris 7 example.
2799         (sparc64-*-solaris2*): Likewise.
2800
2801 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2802
2803         * config.build (alpha*-dec-osf4*): Remove.
2804         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2805         of obsolete configurations.
2806         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2807         support.
2808         * config/alpha/t-osf4: Renamed to ...
2809         * config/alpha/t-osf5: ... this.
2810         * config/alpha/osf.h: Renamed to ...
2811         * config/alpha/osf5.h: ... this.
2812         Merged old osf5.h contents.
2813         Update comments.
2814         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2815         (EXTRA_SPECS): Removed.
2816         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2817         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2818         Document that.
2819
2820 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2821
2822         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2823
2824 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2825
2826         PR/43702
2827         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2828         __thiscall convention.
2829
2830 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2831
2832         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2833         orig_base.
2834         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2835
2836 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2837
2838         * function.c (assign_parms_initialize_all): Add unused attribute
2839         to fntype.
2840
2841 2010-04-12  Richard Guenther  <rguenther@suse.de>
2842
2843         * gsstruct.def (GSS_CALL): New.
2844         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
2845         * gimple.h: Include tree-ssa-alias.h.
2846         (struct gimple_statement_call): New.
2847         (union gimple_statement_struct_d): Add gimple_call member.
2848         (gimple_call_reset_alias_info): Declare.
2849         (gimple_call_use_set): New function.
2850         (gimple_call_clobber_set): Likewise.
2851         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
2852         * gimple.c (gimple_call_reset_alias_info): New function.
2853         (gimple_build_call_1): Call it.
2854         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2855         * tree-inline.c (remap_gimple_stmt): Likewise.
2856         (expand_call_inline): Remove callused handling.
2857         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
2858         * tree-dfa.c (dump_variable): Likewise.
2859         * tree-parloops.c (parallelize_loops): Likewise.
2860         * tree-ssa.c (init_tree_ssa): Likewise.
2861         (delete_tree_ssa): Likewise.
2862         * tree-flow-inline.h (is_call_used): Remove.
2863         * tree-flow.h (struct gimple_df): Remove callused member.
2864         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
2865         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
2866         (ref_maybe_used_by_call_p_1): Simplify.
2867         (call_may_clobber_ref_p_1): Likewise.
2868         * tree-ssa-structalias.c (compute_points_to_sets): Set
2869         the call stmt used and clobbered sets.
2870         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
2871         (find_tail_calls): Verify the tail call.
2872
2873 2010-04-12  Richard Guenther  <rguenther@suse.de>
2874
2875         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
2876         single-iteration always-inline inlining.
2877         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
2878         (cgraph_decide_inlining): Do not handle always-inline specially.
2879         (try_inline): Remove always-inline cycle detection special case.
2880         Do not recurse on always-inlines.
2881         (cgraph_early_inlining): Do not iterate if not optimizing.
2882         (cgraph_gate_early_inlining): remove.
2883         (pass_early_inline): Run unconditionally.
2884         (gate_cgraph_decide_inlining): New function.
2885         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
2886         not inlining or optimizing.
2887         (cgraph_decide_inlining_of_small_functions): Also consider
2888         always-inline functions.
2889         (cgraph_default_inline_p): Return true for nodes which should
2890         disregard inline limits.
2891         (estimate_function_body_sizes): Assume zero size and time for
2892         nodes which are marked as disregarding inline limits.
2893         (cgraph_decide_recursive_inlining): Do not perform recursive
2894         inlining on always-inline nodes.
2895
2896 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2897
2898         PR bootstrap/43699
2899         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2900         for exprs satisfying handled_component_p.
2901
2902 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2903
2904         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2905         non-constant aggregate elements.
2906
2907         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2908         is a real initialization.
2909
2910 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2911
2912         PR c/36774
2913         * c-decl.c (start_function): Move forward check for nested function.
2914
2915 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2916
2917         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2918         * config/sh/sh.c: Include reload.h.
2919         (sh_legitimize_reload_address): New.
2920         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2921         sh_legitimize_reload_address.
2922
2923 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2924
2925         * config/sh/sh.md (*movqi_pop): New insn pattern.
2926         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2927
2928 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2929
2930         * config/i386/i386.md (any_shiftrt): New code iterator.
2931         (shiftrt_insn): New code attribute.
2932         (shiftrt): Ditto.
2933         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2934         using any_shiftrt code iterator.
2935         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2936         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2937         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2938         pattern from corresponding peephole2 patterns.
2939         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2940         using any_shiftrt code iterator.
2941         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2942         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2943         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2944         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2945         *{ashr,lshr}<mode>3_cmp_zext.
2946         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2947
2948 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2949
2950         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2951         scratch register.
2952         (*lshr<mode>3_cconly): Ditto.
2953
2954 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2955
2956         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2957         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2958         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2959         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2960         DWI mode iterator.
2961         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2962         from corresponding peephole2 patterns.
2963         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2964         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2965         and *lshrdi3_1_rex64 using SWI mode iterator.
2966         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2967         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2968         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2969         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2970         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2971         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2972         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2973         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2974         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2975         SWI mode iterator.
2976
2977 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2978
2979         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2980         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2981         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2982         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2983         DWI mode iterator.
2984         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2985         from corresponding peephole2 patterns.
2986         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2987         (ashrsi3_cvt): Rename from ashrsi3_31.
2988         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2989         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2990         and x86_64_shift_adj_3 using SWI48 mode iterator.
2991         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2992         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2993         and *ashrdi3_1_rex64 using SWI mode iterator.
2994         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2995         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2996         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2997         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2998         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2999         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3000         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3001         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3002         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3003         SWI mode iterator.
3004         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3005         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3006         x86_shift<mode>_adj_3 expanders.
3007
3008 2010-04-10  Wei Guozhi  <carrot@google.com>
3009
3010         PR target/42601
3011         * config/arm/arm.c (arm_pic_static_addr): New function.
3012         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3013         a static symbol.
3014         (arm_output_addr_const_extra): Output expression for new pattern.
3015         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3016
3017 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3018
3019         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3020         not enabled.
3021
3022         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3023         * web.c: Include "insn-config.h" and "recog.h".
3024         (union_match_dups): New function.
3025         (web_main): Call it.
3026         (union_defs): Don't try to recognize match_dups.
3027
3028         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3029         if doing so would replace the entire pattern.
3030
3031 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3032
3033         PR target/43707
3034         PR target/43709
3035         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3036         and splitter pattern.  Change splitter operand 1 predicate to
3037         nonmemory_operand.
3038
3039 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3040
3041         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3042         lattices are addresses of CONST_DECLs with the same initial value.
3043         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3044         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3045
3046 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3047             Bernd Schmidt  <bernds@codesourcery.com>
3048
3049         * loop-invariant.c (replace_uses): New static function.
3050         (move_invariant_reg): Use it to ensure we can replace the uses.
3051
3052 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3053
3054         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3055         function template.
3056         (picochip_override_options): Enable section anchors only above -O1.
3057         (picochip_reorg): Fixed a couple of build warnings.
3058
3059 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3060
3061         * configure.ac (plugin -rdynamic test): Log result.
3062         * configure: Regenerate.
3063         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3064         (RDYNAMIC_SPEC): Define.
3065         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3066
3067 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3068
3069         * configure.ac: Determine Sun ld version numbers.
3070         (comdat_group): Restrict GNU ld version checks to gld.
3071         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3072         (enable_comdat): Support --enable-comdat.
3073         * configure: Regenerate.
3074         * doc/install.texi (Configuration): Document --enable-comdat.
3075
3076 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3077
3078         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3079         * config/sol2-gld.h: ... here.
3080         * config.gcc (sparc*-*-solaris2*): Reflect this.
3081         (i[34567]86-*-solaris2*): Use it.
3082
3083 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3084
3085         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3086         setup_clocks_p.
3087         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3088
3089 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3090
3091         PR 42965
3092         * diagnostic.c (diagnostic_initialize): Initialize
3093         some_warnings_are_errors.
3094         (diagnostic_finish): New.
3095         (diagnostic_action_after_output): Call it before exiting.
3096         (diagnostic_report_diagnostic): Do not print message here. Set
3097         some_warnings_are_errors.
3098         * diagnostic.h (diagnostic_context): Delete
3099         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3100         (diagnostic_finish): Declare.
3101         * toplev.c (toplev_main): Call it before exit.
3102
3103 2010-04-09  Jason Merrill  <jason@redhat.com>
3104
3105         PR c++/42623
3106         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3107         for incomplete type.
3108
3109         PR c++/41788
3110         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3111         based on a warning flag.
3112
3113 2010-04-09  Richard Guenther  <rguenther@suse.de>
3114
3115         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3116
3117 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3118
3119         PR bootstrap/43684
3120         * varasm.c (default_assemble_visibility): Wrap vars that are
3121         set, but unused, by targets without GAS.
3122         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3123         Remove set, but unused, vars.
3124         (rs6000_legitimize_tls_address): Likewise.
3125         (altivec_expand_dst_builtin): Likewise.
3126         * config/darwin.c (machopic_classify_symbol): Likewise.
3127         (machopic_indirection_name): Likewise.
3128
3129 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3130
3131         * config/i386/i386.md (DWI): New mode iterator.
3132         (S): New mode attribute.
3133         (shift_operand): Ditto.
3134         (shift_immediate_operand): Ditto.
3135         (ashl_input_operand): Ditto.
3136         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3137         using SDWIM mode iterator.
3138         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3139         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3140         DWI mode iterator.
3141         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3142         from corresponding peephole2 patterns.
3143         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3144         and x86_64_shift_adj_1 using SWI48 mode iterator.
3145         (x86_shift<mode>_adj_2): Ditto.
3146         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3147         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3148         using SWI48 mode iterator.
3149         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3150         *ashldi3_cmp_rex64 using SWI mode iterator.
3151         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3152         *ashldi3_cconly_rex64 using SWI mode iterator.
3153         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3154         x86_shift<mode>_adj_{1,2}.
3155         (ix86_split_ashr): Ditto.
3156         (ix86_split_lshr): Ditto.
3157
3158 2010-04-09  Richard Guenther  <rguenther@suse.de>
3159
3160         * target.h (builtin_conversion): Pass in input and output types.
3161         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3162         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3163         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3164         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3165
3166         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3167         Handle AVX modes.
3168         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3169
3170 2010-04-09  Richard Guenther  <rguenther@suse.de>
3171
3172         PR target/43152
3173         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3174
3175 2010-04-09  Richard Guenther  <rguenther@suse.de>
3176
3177         * tree-vectorizer.h (struct _stmt_vec_info): Document
3178         that vectype is the type of the LHS.
3179         (supportable_widening_operation, supportable_narrowing_operation):
3180         Get both input and output vector types as arguments.
3181         (vect_is_simple_use_1): Declare.
3182         (get_same_sized_vectype): Likewise.
3183         * tree-vect-loop.c (vect_determine_vectorization_factor):
3184         Set STMT_VINFO_VECTYPE to the vector type of the def.
3185         (vectorizable_reduction): Adjust.
3186         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3187         Adjust.  Specify the output vector type.
3188         (vect_pattern_recog_1): Adjust.
3189         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3190         (vectorizable_call): Adjust.
3191         (vectorizable_conversion): Likewise.
3192         (vectorizable_operation): Likewise.
3193         (vectorizable_type_demotion): Likewise.
3194         (vectorizable_type_promotion): Likewise.
3195         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3196         the def.
3197         (vect_is_simple_use_1): New function.
3198         (supportable_widening_operation): Get both input and output
3199         vector types.
3200         (supportable_narrowing_operation): Likewise.
3201         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3202
3203 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3204
3205         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3206         __thiscall and _thiscall as predefined macros.
3207         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3208         thiscall attribute handling.
3209         (ix86_comp_type_attributes): Likewise.
3210         (ix86_function_regparm): Likewise.
3211         (ix86_return_pops_args): Likewise.
3212         (init_cumulative_args): Likewise.
3213         (find_drap_reg): Likewise.
3214         (ix86_static_chain): Likewise.
3215         (x86_this_parameter): Likewise.
3216         (x86_output_mi_thunk): Likewise.
3217         (ix86_attribute_table): Add description for thiscall attribute.
3218         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3219         * doc/extend.texi: Add documentation for thiscall.
3220
3221 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3222
3223         PR c++/28584
3224         * c.opt (Wint-to-pointer-cast): Available in C++.
3225         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3226
3227 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3228
3229         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3230         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3231         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3232         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3233         function type instead.  Reorder and simplify checks.
3234
3235         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3236
3237 2010-04-08  Jing Yu  <jingyu@google.com>
3238             Zdenek Dvorak  <ook@ucw.cz>
3239
3240         PR tree-optimization/42720
3241         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3242         loop unswitch conditions here from ...
3243         (tree_unswitch_single_loop): ... here.
3244
3245 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3246
3247         * tree-if-conv.c: Fix comments and simplify logic.
3248
3249 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3250
3251         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3252         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3253         (main_tree_if_conversion): Update call to tree_if_conversion.
3254
3255 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3256
3257         PR 42485
3258         * doc/invoke.texi (-b,-V): Delete.
3259         * doc/tm.texi: Do not mention -b.
3260         * gcc.c (display_help): Delete -b and -V.
3261         (process_command): Delete -b and -V.
3262         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3263
3264 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3265             Wolfgang Gellerich  <gellerich@de.ibm.com>
3266
3267         Implement target hook for loop unrolling
3268         * target.h (loop_unroll_adjust): Add a new target hook function.
3269         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3270         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3271         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3272         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3273         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3274         target hook.
3275         (decide_unroll_stupid): Likewise.
3276
3277 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3278
3279         PR target/43643
3280         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3281
3282 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3283
3284         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3285         (Specific, *-*-solaris2*): Likewise.
3286         Don't prefer Sun as over GNU as.
3287
3288 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3289
3290         * config/s390/s390.c (override_options): Adjust the z10
3291           defaults for max-unroll-times, max-completely-peeled-insns
3292           and max-completely-peel-times.
3293
3294 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3295
3296         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3297         instructions for z10.
3298         (s390_expand_setmem): Likewise.
3299         (s390_expand_cmpmem): Likewise.
3300
3301 2010-04-08  Richard Guenther  <rguenther@suse.de>
3302
3303         PR tree-optimization/43679
3304         * tree-ssa-pre.c (eliminate): Only propagate copies.
3305
3306 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3307
3308         PR bootstrap/43681
3309         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3310         set but not used variable warning.
3311
3312 2010-04-08  Wei Guozhi  <carrot@google.com>
3313
3314         PR target/41653
3315         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3316         (arm_size_rtx_costs): Call the new function when optimized for size.
3317
3318 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3319
3320         PR debug/43670
3321         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3322         op0 is not a MEM, just return NULL instead of assertion
3323         failure.
3324         (discover_nonconstant_array_refs): Don't walk debug stmts.
3325
3326 2010-04-08  Doug Kwan  <dougkwan@google.com>
3327
3328         * configure.ac: Recognize gold and do not use its version number
3329         to test ld features.
3330         * configure: Regenerate.
3331
3332 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3333
3334         PR middle-end/40815
3335         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3336         (negate_value): Move code to push elements to broken_up_substracts ...
3337         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3338         negative pair to plus_negates.
3339         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3340
3341 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3342
3343         * doc/install.texi (Configuration): Move description of
3344         --enable-lto, --with-libelf*, --enable-gold from Java section to
3345         general section.
3346
3347         * doc/generic.texi (Working with declarations)
3348         (Function Properties, C and C++ Trees): Fix typos.
3349         * doc/sourcebuild.texi (Top Level): Likewise.
3350
3351 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3352
3353         PR c/18624
3354         * tree.h (DECL_READ_P): Define.
3355         (struct tree_decl_common): Add decl_read_flag.
3356         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3357         a set but not used warning.
3358         (merge_decls): Merge DECL_READ_P flag.
3359         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3360         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3361         * c-common.c (handle_used_attribute, handle_unused_attribute):
3362         Likewise.
3363         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3364         New prototypes.
3365         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3366         New functions.
3367         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3368         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3369         c_parser_binary_expression, c_parser_cast_expression,
3370         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3371         Call default_function_array_read_conversion instead of
3372         default_function_array_conversion where needed.
3373         (c_parser_unary_expression, c_parser_conditional_expression,
3374         c_parser_postfix_expression_after_primary, c_parser_initelt):
3375         Likewise.  Call mark_exp_read where needed.
3376         (c_parser_statement_after_labels, c_parser_asm_operands,
3377         c_parser_typeof_specifier, c_parser_sizeof_expression,
3378         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3379         where needed.
3380         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3381         New.
3382         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3383         (warn_unused_but_set_parameter): Default to warn_unused
3384         && extra_warnings.
3385         * doc/invoke.texi: Document -Wunused-but-set-variable and
3386         -Wunused-but-set-parameter.
3387
3388         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3389         used count variable.
3390         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3391         when operandN variables aren't used in the body of the expander
3392         or splitter.
3393         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3394         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3395         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3396         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3397         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3398         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3399         * tree.c (PROCESS_ARG): Likewise.
3400
3401 2010-04-07  Simon Baldwin  <simonb@google.com>
3402
3403         * diagnostic.h (diagnostic_override_option_index): New macro to
3404         set a diagnostic's option_index.
3405         * c-tree.h (c_cpp_error): Add warning reason argument.
3406         * opts.c (_warning_as_error_callback): New.
3407         (register_warning_as_error_callback): Store callback for
3408         warnings enabled via enable_warning_as_error.
3409         (enable_warning_as_error): Call callback, minor code tidy.
3410         * opts.h (register_warning_as_error_callback): Declare.
3411         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3412         response to -Werror=.
3413         (c_common_init_options): Register warning_as_error_callback in opts.c.
3414         * common.opt: Add -Wno-cpp option.
3415         * c-common.c (struct reason_option_codes_t): Map cpp warning
3416         reason codes to gcc option indexes.
3417         * (c_option_controlling_cpp_error): New function, lookup the gcc
3418         option index for a cpp warning reason code.
3419         * (c_cpp_error): Add warning reason argument, call
3420         c_option_controlling_cpp_error for diagnostic_override_option_index.
3421         * doc/invoke.texi: Document -Wno-cpp.
3422
3423 2010-04-07  Richard Guenther  <rguenther@suse.de>
3424
3425         * ipa-reference.c (mark_load): Use get_base_address.
3426         (mark_store): Likewise.
3427
3428         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3429         inserting GIMPLE_NOPs into the IL.
3430         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3431         Explicitly strip handled components and indirect references.
3432
3433         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3434         folding address expressions.
3435         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3436         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3437         operand_equal_p to compare decls.
3438         (ptr_deref_may_alias_decl_p): Likewise.
3439         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3440         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3441         Handle reversed comparison ops.
3442         * tree-sra.c (asm_visit_addr): Use get_base_address.
3443         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3444         * ipa-reference.c (mark_address): Use get_base_address.
3445
3446 2010-04-07  Richard Guenther  <rguenther@suse.de>
3447
3448         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3449         Propagate constants everywhere.
3450
3451 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3452
3453         PR debug/43516
3454         * tree.c (MAX_INT_CACHED_PREC): Define.
3455         (nonstandard_integer_type_cache): New array.
3456         (build_nonstandard_integer_type): Cache results for precision
3457         <= MAX_INT_CACHED_PREC.
3458
3459 2010-04-07  Richard Guenther  <rguenther@suse.de>
3460
3461         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3462         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3463         * common.opt: Likewise.
3464         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3465         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3466         (nonoverlapping_memrefs_p): Likewise.
3467         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3468         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3469         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3470         OPT_fargument_noalias_global for backward compatibility.
3471
3472 2010-04-07  Richard Guenther  <rguenther@suse.de>
3473
3474         PR tree-optimization/43270
3475         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3476         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3477         * tree-ssa-pre.c (phi_translate_1): Adjust.
3478         (fully_constant_expression): Split out vn_reference handling to ...
3479         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3480         Fold reads from constant strings.
3481         (vn_reference_lookup): Handle fully constant references.
3482         (vn_reference_lookup_pieces): Likewise.
3483         * Makefile.in (expmed.o-warn): Add -Wno-error.
3484
3485 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3486
3487         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3488
3489 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3490
3491         PR driver/41594
3492         * gcc.c: Add -static-libstdc++ to list of recognized options.
3493
3494 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3495
3496         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3497
3498 2010-04-07  Richard Guenther  <rguenther@suse.de>
3499
3500         PR middle-end/42617
3501         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3502         bases build simple mem attributes to retain points-to information.
3503
3504 2010-04-07  Richard Guenther  <rguenther@suse.de>
3505
3506         PR middle-end/42617
3507         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3508         preserve points-to related information.
3509
3510 2010-04-07  Richard Guenther  <rguenther@suse.de>
3511
3512         PR middle-end/42617
3513         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3514         discard plain indirect references.
3515         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3516         * tree.c (tree_nop_conversion): Likewise.
3517
3518 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3519
3520         PR debug/43628
3521         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3522
3523 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3524
3525         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3526         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3527
3528 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3529
3530         * tree-if-conv.c: Fix indentation and comments.
3531
3532 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3533
3534         * tree-if-conv.c: Sort static functions in topological order.
3535
3536 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3537
3538         * tree-if-conv.c: Fix indentation and comments.
3539
3540 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3541
3542         PR middle-end/43519
3543         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3544         lang_hooks.types.type_for_size instead of
3545         build_nonstandard_integer_type.
3546         When converting an unsigned type to signed, double its precision.
3547         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3548         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3549         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3550         use lb <= ub.
3551
3552 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3553
3554         PR middle-end/43519
3555         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3556         POINTER_PLUS_EXPR for pointer types.
3557
3558 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3559
3560         PR middle-end/43519
3561         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3562         * graphite-clast-to-gimple.c: Include langhooks.h.
3563         (max_signed_precision_type): New.
3564         (max_precision_type): Takes two types as arguments.
3565         (precision_for_value): New.
3566         (precision_for_interval): New.
3567         (gcc_type_for_interval): New.
3568         (gcc_type_for_value): New.
3569         (gcc_type_for_clast_term): New.
3570         (gcc_type_for_clast_red): New.
3571         (gcc_type_for_clast_bin): New.
3572         (gcc_type_for_clast_expr): Split up into several functions.
3573         (gcc_type_for_clast_eq): Rewritten.
3574         (compute_bounds_for_level): New.
3575         (compute_type_for_level_1): New.
3576         (compute_type_for_level): New.
3577         (gcc_type_for_cloog_iv): Removed.
3578         (gcc_type_for_iv_of_clast_loop): Rewritten.
3579         (graphite_create_new_loop): Compute the lower and upper bound types
3580         with gcc_type_for_clast_expr.
3581         (graphite_create_new_loop_guard): Same.
3582         (find_cloog_iv_in_expr): Removed.
3583         (compute_cloog_iv_types_1): Removed.
3584         (compute_cloog_iv_types): Removed.
3585         (gloog): Do not call compute_cloog_iv_types.
3586         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3587         GBB_CLOOG_IV_TYPES.
3588         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3589         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3590         (GBB_CLOOG_IV_TYPES): Removed.
3591
3592 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3593
3594         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3595         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3596         (detect_commutative_reduction): Same.
3597
3598 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3599
3600         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3601         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3602         argument.
3603         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3604         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3605         (rewrite_commutative_reductions_out_of_ssa): Same.
3606         * passes.c (execute_function_todo): Call verify_ssa for every pass
3607         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3608         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3609         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3610         with an extra argument.
3611         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3612         verify_ssa only when the extra argument is true.
3613         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3614         with an extra argument.
3615         (tree_transform_and_unroll_loop): Same.
3616
3617 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3618
3619         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3620         for all the passes of the LNO having LOOP_CLOSED_SSA.
3621         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3622         * tree-loop-distribution.c (pass_loop_distribution): Same.
3623         * tree-pass.h (TODO_verify_loops): Removed.
3624         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3625         (pass_lim): Same.
3626         (pass_tree_unswitch): Same.
3627         (pass_predcom): Same.
3628         (pass_vectorize): Same.
3629         (pass_linear_transform): Same.
3630         (pass_graphite_transforms): Same.
3631         (pass_iv_canon): Same.
3632         (pass_complete_unroll): Same.
3633         (pass_complete_unrolli): Same.
3634         (pass_parallelize_loops): Same.
3635         (pass_loop_prefetch): Same.
3636         (pass_iv_optimize): Same.
3637
3638 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3639
3640         PR middle-end/32824
3641         * passes.c (init_optimization_passes): Move pass_lim before
3642         pass_copy_prop and pass_dce_loop.
3643
3644 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3645
3646         PR target/43667
3647         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3648         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3649         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3650         MULTI_* defines for 4 argument vpermil2p* builtins.
3651
3652 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3653
3654         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3655         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3656         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3657         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3658         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3659         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3660         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3661         Use x86_maybe_negate_const_int to output insn mnemonic.
3662         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3663         check from instruction predicate.  Update comments.
3664         * config/i386/sync.md (sync_add<mode>): Use
3665         x86_maybe_negate_const_int to output insn mnemonic.
3666
3667 2010-04-06  Jan Hubicka  <jh@suse.cz>
3668
3669         PR tree-optimization/42906
3670         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3671         IGNORE_SELF argument.  Set visited_control_parents for fully
3672         processed BBs.
3673         (find_obviously_necessary_stmts): Update call of
3674         mark_control_dependent_edges_necessary.
3675         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3676
3677 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3678
3679         * config/i386/i386.md: Remove comment about 'e' and 'E'
3680         operand modifier.
3681
3682 2010-04-06  Richard Guenther  <rguenther@suse.de>
3683
3684         PR tree-optimization/43627
3685         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3686         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3687         not varying.
3688
3689 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3690
3691         * BASE-VER: Change to 4.6.0.
3692
3693         PR target/43638
3694         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3695         handling.
3696
3697 2010-04-06  Richard Guenther  <rguenther@suse.de>
3698
3699         PR middle-end/43661
3700         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3701
3702 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3703
3704         * doc/invoke.texi (Optimize Options): Document that LTO
3705         won't remove object access purely due to incompatible
3706         declarations.
3707
3708 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3709
3710         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3711         Initialize variable.
3712
3713 2010-04-03  Richard Guenther  <rguenther@suse.de>
3714
3715         PR middle-end/42509
3716         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3717         require a non-NULL MEM_OFFSET.
3718
3719 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3720
3721         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3722         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3723         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3724         config/alpha/predicates.md, config/arm/arm.md,
3725         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3726         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3727         config/darwin9.h, config/darwin.c, config/darwin.h,
3728         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3729         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3730         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3731         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3732         config/mips/mips.md, config/mn10300/mn10300.c,
3733         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3734         config/rs6000/aix.h, config/rs6000/dfp.md,
3735         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3736         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3737         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3738         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3739         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3740         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3741         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3742         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3743         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3744         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3745         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3746         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3747         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3748         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3749         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3750         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3751         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3752         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3753         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3754         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3755         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3756         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3757         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3758         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3759         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3760         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3761         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3762         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3763         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3764         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3765         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3766         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3767         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3768         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3769         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3770         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3771
3772 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3773
3774         PR other/43620
3775         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3776         * aclocal.m4: Regenerate.
3777
3778 2010-04-02  Richard Guenther  <rguenther@suse.de>
3779
3780         PR tree-optimization/43629
3781         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3782         if we have seen a constant value.
3783
3784 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3785
3786         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3787
3788 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3789
3790         PR target/43469
3791         * arm.c (legitimize_tls_address): Adjust call to
3792         gen_tls_load_dot_plus_four.
3793         (arm_note_pic_base): New function.
3794         (arm_cannot_copy_insn_p): Use it.
3795         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3796         constraint.
3797
3798 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3799
3800         PR bootstrap/43531
3801
3802         Revert:
3803         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3804
3805         * Makefile.in ($(out_object_file)): Depend on
3806         gt-$(basename $(notdir $(out_file))).h.
3807
3808 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3809
3810         * config.gcc (lm32-*-rtems*): Add t-lm32.
3811
3812 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3813
3814         * config.gcc: Add lm32-*-rtems*.
3815         * config/lm32/rtems.h: New file.
3816
3817 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3818
3819         PR target/42609
3820         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3821
3822 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3823
3824         * dwarf2out.c (output_compilation_unit_header): For
3825         -gdwarf-4 use version 4 instead of version 3.
3826         (output_line_info): For version 4 and above emit additional
3827         maximum ops per insn header field.
3828         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3829
3830         * dwarf2out.c (is_c_family, is_java): Remove.
3831         (lower_bound_default): New function.
3832         (add_bound_info, gen_descr_array_type_die): Use it.
3833
3834 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3835
3836         PR debug/43325
3837         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3838         re-declaration when it happens in a function.
3839
3840 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
3841
3842         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
3843         (cgraph_remove_function_insertion_hook): Same.
3844         (cgraph_call_function_insertion_hooks): Same.
3845
3846 2010-04-01  Richard Guenther  <rguenther@suse.de>
3847
3848         PR middle-end/43614
3849         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
3850         and TREE_THIS_VOLATILE.
3851         (copy_ref_info): Likewise.
3852         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
3853         * tree.c (build6_stat): Ignore side-effects of all but arg5
3854         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
3855         TARGET_MEM_REF.
3856
3857 2010-04-01  Richard Guenther  <rguenther@suse.de>
3858
3859         PR tree-optimization/43607
3860         * ipa-type-escape.c (check_call): Do not access non-existing
3861         arguments.
3862
3863 2010-04-01  Richard Guenther  <rguenther@suse.de>
3864
3865         PR middle-end/43602
3866         Revert
3867         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3868                     Jack Howarth <howarth@bromo.med.uc.edu>
3869
3870         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3871         variables TLS.
3872
3873 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3874
3875         * doc/install.texi (Prerequisites): Document libelf usability on
3876         IRIX 5/6 and Solaris 2.
3877         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
3878         Update GNU as, GNU ld requirements.
3879         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
3880         Document Sun Studio compiler download.
3881         Update and simplify as, ld recommendations.
3882         (Specific, *-*-solaris2.7): Note obsoletion, removal.
3883
3884 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3885
3886         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
3887         with_tune_32 to pentium4.
3888
3889 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
3890
3891         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
3892
3893 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3894
3895         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
3896         obsoletion, removal.
3897         Update IDO URL.
3898         Document GNU as requirement.
3899         Update configure requirements.
3900         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3901         Recomment IRIX 6.5.18+.
3902         Document IDF/IDL requirement.
3903         Document GNU as requirement.
3904         Document GNU ld bootstrap failure.
3905         Remove freeware.sgi.com reference.
3906
3907 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3908
3909         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3910         UNIX V4.0, V5.0 obsoletion, removal.
3911         Remove --with-gc=simple reference.
3912         Update VM requirements during bootstrap.
3913         Remove -oldas bootstrap description.
3914         Update binutils reference.
3915         Remove comparison failure note.
3916
3917 2010-03-31  Richard Guenther  <rguenther@suse.de>
3918             Zdenek Dvorak  <ook@ucw.cz>
3919             Sebastian Pop  <sebastian.pop@amd.com>
3920
3921         PR middle-end/43464
3922         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3923         with multiple arguments.
3924         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3925
3926 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3927
3928         * graphite-dependences.c (print_pddr): Call print_pdr with an
3929         extra argument.
3930         * graphite-poly.c (debug_pdr): Add an extra argument for the
3931         verbosity level.
3932         (print_pdr): Same.
3933         (print_pbb_domain): Same.
3934         (print_pbb): Same.
3935         (print_scop_context): Same.
3936         (print_scop): Same.
3937         (print_cloog): Same.
3938         (debug_pbb_domain): Same.
3939         (debug_pbb): Same.
3940         (print_pdrs): Same.
3941         (debug_pdrs): Same.
3942         (debug_scop_context): Same.
3943         (debug_scop): Same.
3944         (debug_cloog): Same.
3945         (print_scop_params): Same.
3946         (debug_scop_params): Same.
3947         (print_iteration_domain): Same.
3948         (print_iteration_domains): Same.
3949         (debug_iteration_domain): Same.
3950         (debug_iteration_domains): Same.
3951         (print_scattering_function): Same.
3952         (print_scattering_functions): Same.
3953         (debug_scattering_function): Same.
3954         (debug_scattering_functions): Same.
3955         * graphite-poly.h (debug_pdr): Update declaration.
3956         (print_pdr): Same.
3957         (print_pbb_domain): Same.
3958         (print_pbb): Same.
3959         (print_scop_context): Same.
3960         (print_scop): Same.
3961         (print_cloog): Same.
3962         (debug_pbb_domain): Same.
3963         (debug_pbb): Same.
3964         (print_pdrs): Same.
3965         (debug_pdrs): Same.
3966         (debug_scop_context): Same.
3967         (debug_scop): Same.
3968         (debug_cloog): Same.
3969         (print_scop_params): Same.
3970         (debug_scop_params): Same.
3971         (print_iteration_domain): Same.
3972         (print_iteration_domains): Same.
3973         (debug_iteration_domain): Same.
3974         (debug_iteration_domains): Same.
3975         (print_scattering_function): Same.
3976         (print_scattering_functions): Same.
3977         (debug_scattering_function): Same.
3978         (debug_scattering_functions): Same.
3979
3980 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3981
3982         * graphite-poly.c (print_scattering_function_1): New.
3983         (print_scattering_function): Call it.
3984         (print_scop_params): Remove spaces at the end of lines.
3985         (print_cloog): New.
3986         (debug_cloog): New.
3987         * graphite-poly.h (print_cloog): Declared.
3988         (debug_cloog): Declared.
3989
3990 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3991
3992         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
3993         in loop->header.
3994         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
3995         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
3996         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
3997         to switch between adding the IV bump in loop->latch or in loop->header.
3998
3999 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
4000
4001         * graphite-poly.c (print_scattering_function): Pretty print following
4002         the scoplib format.
4003         (print_pdr): Same.
4004         (print_pbb_domain): Same.
4005         (dump_gbb_cases): Same.
4006         (dump_gbb_conditions): Same.
4007         (print_pdrs): Same.
4008         (print_pbb): Same.
4009         (print_scop_params): Same.
4010         (print_scop_context): Same.
4011         (print_scop): Same.
4012         (print_pbb_body): New.
4013         (lst_indent_to): New.
4014         (print_lst): Start new lines with a #.
4015         * graphite-poly.h (pbb_bb): New.
4016         (pbb_index): Use pbb_bb.
4017         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
4018         disjuncts.
4019         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
4020
4021 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4022
4023         * dwarf2out.c (size_of_die): For -gdwarf-4 use
4024         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
4025         and 0 instead of 1 for dw_val_class_flag.
4026         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
4027         dw_val_class_range_list, dw_val_class_loc_list,
4028         dw_val_class_lineptr and dw_val_class_macptr, use
4029         DW_FORM_flag_present for dw_val_class_flag and
4030         DW_FORM_exprloc for dw_val_class_loc.
4031         (output_die): For -gdwarf-4 print dw_val_class_loc
4032         size as uleb128 instead of 1 or 2 bytes and don't print
4033         anything for dw_val_class_flag.
4034
4035         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
4036         instead of cselib_lookup following by tweaking locs->setting_insn.
4037
4038         PR bootstrap/43596
4039         * cselib.c (cselib_process_insn): Clear cselib_current_insn
4040         even before returning from label, setjmp call or volatile asm
4041         handling.
4042
4043 2010-03-31  Richard Guenther  <rguenther@suse.de>
4044
4045         PR middle-end/43600
4046         * cgraphunit.c (cgraph_output_in_order): Do not allocate
4047         temporary data on stack.
4048
4049 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4050
4051         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
4052         (PUSHSECTION_ASM_OP): Remove.
4053         (POPSECTION_ASM_OP): Remove.
4054         (PUSHSECTION_FORMAT): Remove.
4055         * config/sol2.h (PUSHSECTION_FORMAT): Define.
4056         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
4057         * config/sol2.c (solaris_output_init_fini): Use it.
4058
4059 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4060
4061         PR 43574
4062         * opt-functions.awk (var_type_struct): Use signed char type
4063         for simple variables.
4064
4065 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4066
4067         * config/sol2.c: Include output.h.
4068         (solaris_assemble_visibility): New function.
4069         * config/t-sol2 (sol2.o): Add output.h dependency.
4070         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
4071         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
4072         Redefine.
4073
4074 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
4075
4076         PR target/43580
4077         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
4078         V2SImode or XFmode on PRE_DEC.
4079
4080         PR debug/43557
4081         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
4082         BLKmode.
4083
4084 2010-03-31  Jie Zhang  <jie@codesourcery.com>
4085
4086         PR 43562
4087         * reload.h (caller_save_initialized_p): Declare.
4088         * toplev.c (backend_init_target): Don't call
4089         init_caller_save but set caller_save_initialized_p to false.
4090         * caller-save.c (caller_save_initialized_p): Define.
4091         (init_caller_save): Check caller_save_initialized_p.
4092         * ira.c (ira): Call init_caller_save if flag_caller_saves.
4093
4094 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4095
4096         PR target/39048
4097         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
4098         and soft-fp/t-softfp to tmake_file.
4099         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
4100         (LIBGCC2_TF_CEXT): Define.
4101         (TF_SIZE): Define.
4102
4103 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
4104
4105         PR debug/42977
4106         * cselib.c (n_useless_values): Document handling of debug locs.
4107         (n_useless_debug_values, n_debug_values): New variables.
4108         (new_elt_loc_list): Don't add to debug values, keep count.
4109         (promote_debug_loc): New.
4110         (cselib_reset_table): Zero new variables.
4111         (entry_and_rtx_equal_p): Promote debug locs.
4112         (discard_useless_locs): Increment n_useless_debug_values for
4113         debug values.
4114         (remove_useless_values): Adjust n_useless_values and n_debug_values
4115         with n_useless_debug_values.
4116         (add_mem_for_addr): Promote debug locs.
4117         (cselib_lookup_mem): Likewise.
4118         (cselib_lookup_addr): Renamed to...
4119         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
4120         (cselib_log_lookup): ... this.  Turn into...
4121         (cselib_lookup_addr): ... new wrapper.
4122         (cselib_lookup_from_insn): New.
4123         (cselib_invalidate_regno): Increment n_useless_debug_values for
4124         debug values.
4125         (cselib_invalidate_mem): Likewise.
4126         (cselib_process_insn): Take n_deleted and n_debug_values into
4127         account to guard remove_useless_value call.
4128         (cselib_finish): Zero n_useless_debug_values.
4129         * cselib.h (cselib_lookup_from_insn): Declare.
4130         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
4131         (sched_analyze_2): Likewise.
4132
4133 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
4134
4135         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
4136         functions.
4137         (adjust_mems): Replace narrowing SUBREG of expression containing
4138         just PLUS, MINUS, MULT and ASHIFT of registers and constants
4139         with operations in the narrower mode.
4140
4141         PR debug/43593
4142         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
4143         regs_invalidated_by_call instead all call_used_reg_set registers.
4144
4145 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4146
4147         PR middle-end/43430
4148         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
4149         pointer comparisons with types_compatible_p.
4150         * tree-vect-stmts.c (vectorizable_call): Same.
4151         (vectorizable_condition): Same.
4152
4153 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4154
4155         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
4156         stack check if the mask would be zero.
4157
4158 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
4159             Jack Howarth <howarth@bromo.med.uc.edu>
4160
4161         * tree-profile.c (tree_init_ic_make_global_vars): Make static
4162         variables TLS.
4163
4164 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
4165
4166         PR other/25232
4167         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
4168         and __unordtf2.
4169         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
4170         Include ___unordxf2 and ___unordtf2.
4171         * config/i386/libgcc-glibc.ver: Do not define inheritance from
4172         GCC_4.4.0 here.
4173
4174 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
4175
4176         * config/lm32/t-lm32: New file.
4177         * config.gcc: Use the above file when targetting lm32.
4178
4179 2010-03-28  Duncan Sands  <baldrick@free.fr>
4180
4181         * Makefile.in (PLUGIN_HEADERS): Add except.h.
4182
4183 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4184
4185         PR middle-end/43431
4186         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
4187         Improve vectorization cost model diagnostic.
4188
4189 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
4190
4191         PR middle-end/43436
4192         * tree-vect-data-refs.c (vect_analyze_data_refs): When
4193         compute_data_dependences_for_loop returns false, early exit
4194         and output an extra diagnostic for the failed data reference
4195         analysis.
4196
4197 2010-03-29  Richard Guenther  <rguenther@suse.de>
4198
4199         PR tree-optimization/43560
4200         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
4201         (can_sm_ref_p): Treat stores to readonly locations as trapping.
4202
4203 2010-03-29  Jie Zhang  <jie@codesourcery.com>
4204
4205         PR 43564
4206         * toplev.c (process_options): Set optimization_default_node
4207         and optimization_current_node.
4208         * opts.c (decode_options): Don't set optimization_default_node
4209         and optimization_current_node.
4210
4211 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
4212
4213         * config/rtems.h: Abandon -qrtems_debug.
4214
4215 2010-03-28  Jan Hubicka  <jh@suse.cz>
4216
4217         PR tree-optimization/43505
4218         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
4219         map should not be copied.
4220
4221 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4222
4223         PR middle-end/41674
4224         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
4225         cdtors, set DECL_PRESERVE_P.
4226         * ipa.c (cgraph_externally_visible_p): Return true if declaration
4227         should be preseved.
4228
4229 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
4230
4231         PR tree-optimization/43528
4232         * stor-layout.c (place_field): Check that constant fits into
4233         unsigned HWI when skipping calculation of MS bitfield layout.
4234
4235 2010-03-27  Jan Hubicka  <jh@suse.cz>
4236
4237         PR middle-end/43391
4238         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
4239         notice_global_symbol work.
4240
4241 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
4242
4243         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
4244         instead of dwarf2out_decl.
4245         (struct var_loc_node): Remove section_label field.
4246         (dwarf2out_function_decl): New function.
4247         (dwarf2out_var_location): Don't set section_label field.
4248         (dwarf2out_begin_function): Don't empty decl_loc_table here.
4249
4250 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
4251
4252         PR tree-optimization/43544
4253         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
4254         First argument for builtin vectorized function hook is now a
4255         tree to be able to distinguish between machine specific and
4256         standard builtins.
4257         * targhooks.c (default_builtin_vectorized_function): Ditto.
4258         * targhooks.h (default_builtin_vectorized_function): Ditto.
4259         * target.h (struct gcc_target): Ditto.
4260         * tree-vect-stmts.c (vectorizable_function): Ditto.
4261         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
4262         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
4263         Ditto.
4264
4265 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
4266
4267         PR c/43381
4268         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
4269         nested binding iff it is a FUNCTION_DECL.
4270         (store_parm_decls_newstyle): Pass nested=true to bind for
4271         FUNCTION_DECLs amongst parameters.
4272
4273 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4274
4275         * var-tracking.c (vt_expand_loc_callback): Don't run
4276         cselib_expand_value_rtx_cb in dummy mode if
4277         cselib_dummy_expand_value_rtx_cb returned false.
4278
4279         * var-tracking.c (emit_note_insn_var_location): For one part
4280         notes with offset 0, don't add EXPR_LIST around the location.
4281         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
4282         add_location_or_const_value_attribute): Adjust for that change.
4283
4284         PR debug/43540
4285         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
4286         into first operand and location into second.
4287         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
4288         dw_cfi_oprnd_loc for DW_CFA_expression.
4289         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
4290         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
4291         assume first argument is regnum and second argument is location.
4292
4293 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4294
4295         PR target/42113
4296         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
4297         of scratch register to DImode.  Split to DImode comparison operator.
4298         Use SImode subreg of scratch register in the multiplication.
4299         (*cmp_sadd_sidi): Ditto.
4300         (*cmp_ssub_si): Ditto.
4301         (*cmp_ssub_sidi): Ditto.
4302
4303 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
4304
4305         PR target/43524
4306         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
4307         Remove invalid assert and wrong comment.
4308
4309 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
4310
4311         PR debug/43516
4312         * flags.h (final_insns_dump_p): New extern.
4313         * final.c (final_insns_dump_p): New variable.
4314         (rest_of_clean_state): Set it before -fdump-final-insns=
4315         dumping, clear afterwards.
4316         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
4317         MEM_ALIAS_SET on MEMs.
4318
4319 2010-03-26  David S. Miller  <davem@davemloft.net>
4320
4321         * configure.ac: Fix sparc GOTDATA_OP bug check.
4322         * configure: Rebuild.
4323
4324 2010-03-26  Alan Modra  <amodra@gmail.com>
4325
4326         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
4327
4328 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4329
4330         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
4331         TLS_SECTION_ASM_FLAG.
4332
4333 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
4334
4335         PR bootstrap/43511
4336         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
4337         Clear first_function_block_is_cold.
4338
4339         PR c/43385
4340         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
4341         argument if the argument is truth_value_p.
4342
4343 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
4344
4345         * config/rs6000/constraints.md: Update copyright year for my changes.
4346
4347         PR target/43484
4348         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
4349         used in reg+reg addressing, swap registers.
4350
4351 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4352
4353         PR debug/43293
4354         * target.h (struct gcc_target): Add code_end hook.
4355         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
4356         if not yet defined.
4357         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
4358         * toplev.c (compile_file): Call targetm.asm_out.code_end
4359         hook before unwind info/debug info output.
4360         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
4361         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
4362         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4363         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
4364         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
4365         * config/i386/i386.c (ix86_file_end): Renamed to...
4366         (ix86_code_end): ... this.  Make static.  Don't call
4367         file_end_indicate_exec_stack.  Emit unwind info using
4368         final_start_function/final_end_function.
4369         (darwin_x86_file_end): Remove.
4370         (TARGET_ASM_CODE_END): Define.
4371         * config/i386/i386.h (TARGET_ASM_FILE_END,
4372         NEED_INDICATE_EXEC_STACK): Don't define.
4373         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
4374         (TARGET_ASM_FILE_END): Define to darwin_file_end.
4375         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
4376         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
4377
4378         PR target/43498
4379         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
4380         at the beginning and final_end_function at the end.
4381         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4382
4383 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4384
4385         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
4386         and Sun as TLS syntax.
4387         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
4388         * configure: Regenerate.
4389         * config.in: Regenerate.
4390         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
4391         (default_elf_asm_named_section): Use it.
4392         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
4393         (i386_output_dwarf_dtprel): Likewise.
4394         (output_addr_const_extra): Likewise.
4395         (output_pic_addr_const): Lowercase @GOTTPOFF.
4396         (output_addr_const_extra): Likewise.
4397         (output_pic_addr_const): Lowercase @GOTNTPOFF.
4398         (output_addr_const_extra): Likewise.
4399         (output_pic_addr_const): Lowercase @INDNTPOFF.
4400         (output_addr_const_extra): Likewise.
4401         (output_pic_addr_const): Lowercase @NTPOFF.
4402         (output_addr_const_extra): Likewise.
4403         (output_pic_addr_const): Lowercase @TPOFF.
4404         (output_addr_const_extra): Likewise.
4405         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
4406         (*tls_global_dynamic_64): Likewise.
4407         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
4408         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
4409
4410         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
4411         (ASM_OUTPUT_TLS_COMMON): Use it.
4412         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
4413
4414         PR target/38118
4415         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
4416         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
4417         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
4418         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
4419         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4420         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
4421
4422 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4423
4424         * config/i386/i386.c (override_options): Don't accept
4425         -mtls-dialect=sun any longer.
4426         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
4427         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
4428         (*tls_local_dynamic_base_32_sun): Likewise.
4429         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
4430
4431 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
4432
4433         PR debug/43508
4434         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
4435         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
4436
4437         PR debug/43479
4438         * ira.c (adjust_cleared_regs): New function.
4439         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
4440
4441         PR debug/19192
4442         PR debug/43479
4443         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
4444         from gimple_block.
4445         * expr.c (expand_expr_real): Restore previous
4446         curr_insn_source_location and curr_insn_block after
4447         expand_expr_real_1 call.
4448         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
4449         instead of expand_expr_real_1.
4450
4451 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
4452
4453         PR rtl-optimization/43413
4454         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
4455         hard regs too.
4456
4457 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
4458
4459         PR target/43348
4460         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
4461         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
4462
4463 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
4464
4465         * config/i386/i386.c (ix86_target_string): Add -mfma.
4466         Fix a typo in comment.
4467
4468 2010-03-22  Mike Stump  <mikestump@comcast.net>
4469
4470         PR target/23071
4471         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
4472         Don't overly align based upon packed packed fields.
4473
4474 2010-03-22  Jason Merrill  <jason@redhat.com>
4475
4476         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
4477         Use () rather than [], and move before the element type.
4478
4479 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4480
4481         * doc/configfiles.texi (Configuration Files): Removed
4482         fixinc/Makefile*, intl/Makefile.*.
4483         * doc/makefile.texi: Fixed markup. Abstract from version
4484         control system used.
4485         (Makefile): Removed obsolete gcc/java/parse.y example.
4486         * doc/sourcebuild.texi: Likewise.
4487         (Top Level): Added config, gnattools, libdecnumber, libgcc,
4488         libgomp, libssp.  Removed fastjar.
4489         (Miscellaneous Docs): Clarify location.
4490         Added COPYING3, COPYING3.LIB.
4491         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
4492
4493 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4494
4495         PR target/38085
4496         * config/i386/i386.c (x86_function_profiler)
4497         [!NO_PROFILE_COUNTERS]: Fix typo.
4498         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
4499         instead of callq.
4500
4501 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
4502             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4503
4504         * doc/sourcebuild.texi (Test Directives): Split into six
4505         subsections, with most of the current text in new subsections
4506         Directives, Selectors, and Final Actions.
4507         (Directives): Split list of test directives into multiple
4508         subsubsections.
4509         (Selectors): Describe use and syntax of selectors.
4510         (Effective-Target Keywords): Describe all existing keywords.
4511         (Add Options): Describe features for dg-add-options.
4512         (Require Support): Describe variants of dg-require-support.
4513         (Final Actions): Describe commands to use in dg-final.
4514
4515 2010-03-22  Michael Matz  <matz@suse.de>
4516
4517         PR middle-end/43475
4518         * recog.c (validate_replace_rtx_group): Replace also in
4519         REG_EQUAL and REG_EQUIV notes.
4520
4521 2010-03-22  Richard Guenther  <rguenther@suse.de>
4522
4523         PR tree-optimization/43390
4524         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
4525         sure vector extracts are type correct.
4526
4527 2010-03-22  Richard Guenther  <rguenther@suse.de>
4528
4529         PR middle-end/40106
4530         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
4531         x * sqrt (x) even when optimizing for size if the target
4532         has native support for sqrt.
4533
4534 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
4535
4536         * varasm.c (make_decl_rtl_for_debug): Also clear
4537         flag_mudflap for the duration of make_decl_rtl call.
4538
4539         PR debug/43443
4540         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
4541         locs from preserved VALUEs.
4542
4543 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4544
4545         PR middle-end/42718
4546         * pa.md (movmemsi): Set align to one if zero.
4547         (movmemdi): Likewise.
4548
4549 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
4550
4551         PR target/42321
4552         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
4553         with their corresponding prologue pushes.
4554
4555 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
4556
4557         PR target/43156
4558         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
4559         at the begining or end.
4560         (spu_expand_epilogue): Likewise.
4561
4562 2010-03-20  Richard Guenther  <rguenther@suse.de>
4563
4564         PR rtl-optimization/43438
4565         * combine.c (make_extraction): Properly zero-/sign-extend an
4566         extraction of the low part of a CONST_INT.  Also handle
4567         CONST_DOUBLE.
4568
4569 2010-03-19  Mike Stump  <mikestump@comcast.net>
4570
4571         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
4572         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
4573         (override_options): Use SUBTARGET32_DEFAULT_CPU.
4574
4575 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4576
4577         PR c/43211
4578         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
4579         an error.
4580
4581 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
4582
4583         PR rtl-optimization/42258
4584         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
4585         use that may match DEF.
4586
4587         PR target/40697
4588         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
4589         the cost of loading the constant rather than assuming
4590         COSTS_N_INSNS (1).
4591         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
4592         outer code is AND, do the same tests as the andsi3 expander and
4593         return COSTS_N_INSNS (1) if and is cheap.
4594
4595         * optabs.c (avoid_expensive_constant): Fix formatting.
4596
4597 2010-03-19  Michael Matz  <matz@suse.de>
4598
4599         PR c++/43116
4600         * attribs.c (decl_attributes): When rebuilding a function pointer
4601         type use the same qualifiers as the original pointer type.
4602
4603 2010-03-19  Martin Jambor  <mjambor@suse.cz>
4604
4605         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
4606         and is_gimple_ip_invariant_address.
4607
4608 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4609
4610         Revert
4611         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4612
4613         * config/arm/arm.c (arm_override_options): Turn off
4614         flag_dwarf2_cfi_asm for AAPCS variants.
4615
4616 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4617
4618         PR target/43399
4619         * config/arm/arm.c (emit_multi_reg_push): Update comments.
4620         Use PRE_MODIFY instead of PRE_DEC.
4621         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
4622         (vfp_emit_fstmd): Likewise.
4623
4624 2010-03-19  Michael Matz  <matz@suse.de>
4625
4626         PR target/43305
4627         * builtins.c (expand_builtin_interclass_mathfn,
4628         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
4629         if that fails.
4630
4631 2010-03-19  Richard Guenther  <rguenther@suse.de>
4632
4633         PR tree-optimization/43415
4634         * tree-ssa-pre.c (phi_translate): Split out worker to ...
4635         (phi_translate_1): ... this.
4636         (phi_translate): Move all caching here.  Cache all NARY
4637         and REFERENCE translations.
4638
4639 2010-03-19  David S. Miller  <davem@davemloft.net>
4640
4641         With help from Eric Botcazou.
4642         * config/sparc/sparc.c: Include dwarf2out.h.
4643         (emit_pic_helper): Delete.
4644         (pic_helper_symbol_name): Delete.
4645         (pic_helper_emitted_p): Delete.
4646         (pic_helper_needed): New.
4647         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
4648         (get_pc_thunk_name): New.
4649         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
4650         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
4651         Set pic_helper_needed to true.  Don't call emit_pic_helper.
4652         (sparc_expand_prologue): Update load_pic_register call.
4653         (sparc_output_mi_thunk): Likewise.
4654         (sparc_file_end): Emit a hidden comdat symbol for the PIC
4655         thunk if possible.  Output CFI information as needed.
4656
4657 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
4658             Jack Howarth <howarth@bromo.med.uc.edu>
4659
4660         PR target/36399
4661         * config/i386/i386.h: Fix ABI on darwin x86-32.
4662
4663 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
4664
4665         * tree.h: Declare make_decl_rtl_for_debug.
4666         * varasm.c (make_decl_rtl_for_debug): New.
4667         * dwarf2out.c (rtl_for_decl_location): Call it.
4668         * cfgexpand.c (expand_debug_expr): Call it.
4669
4670 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4671
4672         PR bootstrap/43399
4673         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
4674         mem_mode.
4675
4676         PR bootstrap/43403
4677         * var-tracking.c (vt_init_cfa_base): Do nothing if
4678         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
4679
4680 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
4681
4682         PR debug/42873
4683         * var-tracking.c (canonicalize_vars_star): New.
4684         (dataflow_post_merge_adjust): Use it.
4685
4686 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
4687
4688         PR debug/43058
4689         * var-tracking.c (non_suitable_const): New function.
4690         (add_uses): For DEBUG_INSNs with constants, don't record any
4691         value, instead just the constant value itself.
4692         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
4693         is not VAR_LOC_UNKNOWN_P, set var to the constant.
4694         (emit_notes_in_bb): Likewise.
4695         (emit_note_insn_var_location): For onepart variables if
4696         cur_loc is a VOIDmode constant, use DECL_MODE.
4697
4698 2010-03-18  Martin Jambor  <mjambor@suse.cz>
4699
4700         PR middle-end/42450
4701         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
4702         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
4703         all non-clones.  Moved call redirection...
4704         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
4705         (cgraph_materialize_all_clones): Dispose of all
4706         combined_args_to_skip bitmaps.
4707         (verify_cgraph_node): Do not check for edges pointing to wrong
4708         nodes in inline clones.
4709         * tree-inline.c (copy_bb): Call
4710         cgraph_redirect_edge_call_stmt_to_callee.
4711         * ipa.c (cgraph_remove_unreachable_nodes): Call
4712         cgraph_node_remove_callees even when there are used clones.
4713
4714 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4715
4716         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
4717
4718 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
4719
4720         PR target/43383
4721         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
4722         for 32bit.
4723
4724 2010-03-18  Michael Matz  <matz@suse.de>
4725
4726         PR middle-end/43419
4727         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
4728         into sqrt(x) if we need to preserve signed zeros.
4729
4730 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
4731             Eric Botcazou  <ebotcazou@adacore.com>
4732
4733         PR rtl-optimization/43360
4734         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
4735         note if we don't know its invariant status.
4736
4737 2010-03-18  Michael Matz  <matz@suse.de>
4738
4739         PR tree-optimization/43402
4740         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
4741         PHI chains of ssa names registered for update.
4742
4743 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
4744
4745         PR target/42427
4746         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
4747         non-offsettable and pre_modify update addressing.
4748         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
4749         and "2" alternatives "#".
4750         (*movdd_softfloat32): Make all alternatives "#";
4751         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
4752         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
4753         (*movdf_softfloat32): Make all alternatives "#";
4754         (movdi): Use the new DIFD mode iterator to create a common splitter
4755         for movdi, movdf and movdd patterns.
4756
4757 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4758
4759         * common.opt (dumpdir): Remove redundant tab.
4760
4761 2010-03-17  Martin Jambor  <mjambor@suse.cz>
4762
4763         PR tree-optimization/43347
4764         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
4765         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
4766
4767 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4768
4769         PR rtl-optimization/42216
4770         * regrename.c (create_new_chain): New function, broken out from...
4771         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
4772         appending a use to an empty chain.
4773         (build_def_use): Remove previous changes that convert OP_INOUT to
4774         OP_OUT operands; instead detect the case where an OP_INOUT operand
4775         uses a previously untracked register and create an empty chain for it.
4776
4777 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4778
4779         * doc/extend.texi (Function Attributes): Rewrite unfinished
4780         sentence in ms_abi documentation.
4781
4782 2010-03-17  Alan Modra  <amodra@gmail.com>
4783
4784         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
4785         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
4786         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
4787         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
4788
4789 2010-03-16  Richard Henderson  <rth@redhat.com>
4790
4791         PR middle-end/43365
4792         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
4793         (lower_try_finally): Save and restore eh_seq around the expansion
4794         of the try-finally.
4795
4796 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4797
4798         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
4799         statements before splitting block.
4800
4801 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4802
4803         * doc/sourcebuild.texi (Testsuites): Fix markup.
4804         Use pathnames relative to gcc/testsuite.
4805         (Test Directives): Move description of how timeout is determined.
4806         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
4807         (C Tests): Correct gcc.misc-tests directory.
4808         Framework tests now live in gcc.test-framework.
4809
4810 2010-03-16  Richard Guenther  <rguenther@suse.de>
4811
4812         PR middle-end/43379
4813         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
4814         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
4815
4816 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4817             Alexandre Oliva  <aoliva@redhat.com>
4818
4819         PR tree-optimization/42917
4820         * lambda-code.c (remove_iv): Skip debug statements.
4821         (lambda_loopnest_to_gcc_loopnest): Likewise.
4822         (not_interesting_stmt): Debug statements are not interesting.
4823
4824 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
4825
4826         PR debug/43051
4827         PR debug/43092
4828         * cselib.c (cselib_preserve_constants,
4829         cfa_base_preserved_val): New static variables.
4830         (preserve_only_constants): New function.
4831         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
4832         clear its REG_VALUES.  If cselib_preserve_constants, don't
4833         empty the whole hash table, but preserve there VALUEs with constants,
4834         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
4835         (cselib_preserve_cfa_base_value): New function.
4836         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
4837         (cselib_init): Change argument to int bitfield.  Set
4838         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
4839         is in it.
4840         (cselib_finish): Clear cselib_preserve_constants and
4841         cfa_base_preserved_val.
4842         * cselib.h (enum cselib_record_what): New enum.
4843         (cselib_init): Change argument to int.
4844         (cselib_preserve_cfa_base_value): New prototype.
4845         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
4846         * dse.c (dse_step1): Likewise.
4847         * cfgcleanup.c (thread_jump): Likewise.
4848         * sched-deps.c (sched_analyze): Likewise.
4849         * gcse.c (local_cprop_pass): Likewise.
4850         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
4851         If FN is non-NULL, call the callback always and whenever it returns
4852         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
4853         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
4854         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
4855         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
4856         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
4857         * var-tracking.c: Include recog.h.
4858         (bb_stack_adjust_offset): Remove.
4859         (vt_stack_adjustments): Don't call it, instead just gather the
4860         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
4861         (adjust_stack_reference): Remove.
4862         (compute_cfa_pointer): New function.
4863         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
4864         (struct adjust_mem_data): New type.
4865         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
4866         functions.
4867         (get_address_mode): New function.
4868         (replace_expr_with_values): Use it.
4869         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
4870         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
4871         (adjust_sets): Remove.
4872         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
4873         Use get_address_mode.
4874         (get_adjusted_src): Remove.
4875         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
4876         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
4877         (add_with_sets): Don't call adjust_sets.
4878         (fp_setter, vt_init_cfa_base): New functions.
4879         (vt_initialize): Change return type to bool.  Move most of pool etc.
4880         initialization to the beginning of the function from end.  Pass
4881         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
4882         If !frame_pointer_needed, call vt_stack_adjustment before mos
4883         vector is filled, call vt_init_cfa_base if argp/framep has been
4884         eliminated to sp.  If frame_pointer_needed and argp/framep has
4885         been eliminated to hard frame pointer, set
4886         hard_frame_pointer_adjustment and call vt_init_cfa_base after
4887         encountering fp setter in the prologue.  For MO_ADJUST, call
4888         log_op_type before pusing the op into mos vector, not afterwards.
4889         Call adjust_insn before cselib_process_insn/add_with_sets,
4890         call cancel_changes (0) afterwards.
4891         (variable_tracking_main_1): Adjust for vt_initialize calling
4892         vt_stack_adjustments and returning whether it succeeded or not.
4893
4894 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
4895
4896         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
4897         debug statements.
4898
4899 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
4900
4901         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
4902         has been set.
4903         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
4904         drap_reg has not been set.
4905
4906 2010-03-15  Michael Matz  <matz@suse.de>
4907
4908         PR middle-end/43300
4909         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
4910         use it to expand block copies.
4911         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4912         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
4913         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
4914
4915 2010-03-15  Richard Guenther  <rguenther@suse.de>
4916
4917         PR tree-optimization/43367
4918         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
4919         elimination check.
4920
4921 2010-03-15  Richard Guenther  <rguenther@suse.de>
4922
4923         PR tree-optimization/43317
4924         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
4925
4926 2010-03-15  Martin Jambor  <mjambor@suse.cz>
4927
4928         PR tree-optimization/43141
4929         * tree-sra.c (create_abstract_origin): New function.
4930         (modify_function): Call create_abstract_origin.
4931
4932 2010-03-15  Chris Demetriou  <cgd@google.com>
4933
4934         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
4935         wasn't copied.
4936
4937 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4938
4939         PR middle-end/43354
4940         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
4941         call insert_out_of_ssa_copy for default definitions.
4942
4943 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4944
4945         * graphite-clast-to-gimple.c (my_long_long): Defined.
4946         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
4947         * graphite-sese-to-poly.c (my_long_long): Defined.
4948         (scop_ivs_can_be_represented): Use it.
4949
4950 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4951
4952         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
4953         graphite-max-bbs-per-function, and loop-block-tile-size.
4954         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
4955         with "maximum".
4956         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
4957
4958 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4959
4960         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
4961         forward declaration.
4962         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
4963         (add_upper_bounds_from_estimated_nit): New.
4964         (build_loop_iteration_domains): Use it.
4965
4966 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4967
4968         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
4969
4970 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4971
4972         PR middle-end/43306
4973         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
4974         should be an INTEGER_CST.  Also handle CASE_CONVERT.
4975
4976 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4977
4978         * graphite.c (graphite_initialize): To bound the number of bbs per
4979         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4980         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
4981         * doc/invoke.texi: Document it.
4982
4983 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4984
4985         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
4986         * graphite-sese-to-poly.h (build_poly_scop): Same.
4987
4988 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4989
4990         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
4991         the number of parameters in the scop.  Use as an upper bound
4992         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
4993         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
4994         * doc/invoke.texi: Document it.
4995
4996 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
4997
4998         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
4999         * doc/c-tree.texi: Remove.
5000         * doc/generic.texi: Merge c-tree.texi here.
5001         * doc/gccint.texi (Trees): Remove menu entry.
5002         (c-tree.texi): Remove @include.
5003         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
5004         * doc/languages.texi (Reading RTL): Ditto.
5005
5006 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
5007
5008         PR target/42869
5009         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
5010
5011 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5012
5013         PR middle-end/42431
5014         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
5015         code added to work around reload clobbering CONST insns.
5016
5017 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
5018
5019         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
5020         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
5021         (cselib_preserve_only_values): Remove retain argument, don't
5022         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
5023         * cselib.h (cselib_preserve_only_values): Remove retain argument.
5024         * var-tracking.c (micro_operation): Move insn field before union.
5025         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
5026         (struct variable_tracking_info_def): Remove n_mos field, change
5027         mos into a vector of micro_operations.
5028         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
5029         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
5030         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
5031         changing into a vector.
5032         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
5033         come before all other uops generated by add_stores.
5034         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
5035         argument removal.
5036         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
5037         a vector.  Run just one pass over the bbs instead of separate counting
5038         and computation phase.
5039         (vt_finalize): Free VTI (bb)->mos vector instead of array.
5040
5041         PR debug/43329
5042         * tree-inline.c (remap_decls): Put old_var rather than origin_var
5043         into *nonlocalized_list vector.
5044         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
5045         even if origin is non-NULL.
5046         (gen_variable_die): Likewise.
5047         (process_scope_var): Don't change origin.
5048         (gen_decl_die): Likewise.
5049         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
5050         before adding new edges instead of after it, fix moving over
5051         debug stmts.
5052
5053 2010-03-11  David S. Miller  <davem@davemloft.net>
5054
5055         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
5056         of four.
5057         * configure: Rebuild.
5058
5059 2010-03-11  Martin Jambor  <mjambor@suse.cz>
5060
5061         PR tree-optimization/43257
5062         * tree.c (assign_assembler_name_if_neeeded): New function.
5063         (free_lang_data_in_cgraph): Assembler name assignment moved to the
5064         above new function.
5065         * tree.h (assign_assembler_name_if_neeeded): Declare.
5066         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
5067         the function if needed.
5068
5069 2010-03-11  Chris Demetriou  <cgd@google.com>
5070
5071         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
5072         include/stdint-gcc.h, and include/stdint.h world-readable.
5073
5074 2010-03-11  Richard Guenther  <rguenther@suse.de>
5075
5076         PR tree-optimization/43255
5077         * tree-vrp.c (process_assert_insertions_for): Do not insert
5078         asserts for trivial conditions.
5079
5080 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5081
5082         PR tree-optimization/43280
5083         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
5084         generation.  Move calculation of size out of the if branch.
5085         (find_bswap): Modify compare number generation.
5086
5087 2010-03-11  Richard Guenther  <rguenther@suse.de>
5088
5089         PR lto/43200
5090         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
5091         (input_gimple_stmt): Fixup handled component types during
5092         operand read.  Also fix up decls in ADDR_EXPRs.
5093
5094 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
5095
5096         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
5097         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
5098
5099 2010-03-10  Jan Hubicka  <jh@suse.cz>
5100
5101         PR c/43288
5102         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
5103         * varasm.c (get_variable_section): Don't do that here...
5104         (make_decl_rtl): ... and here.
5105         (do_assemble_alias): Produce decl RTL.
5106         (assemble_alias): Likewise.
5107
5108 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5109
5110         PR debug/43290
5111         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
5112         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
5113         of fde->vdrap_reg.
5114         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
5115         (based_loc_descr): Only express drap or vdrap regno based expressions
5116         using DW_OP_fbreg when not optimizing.
5117         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
5118         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
5119         REG_CFA_SET_VDRAP note.
5120
5121 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
5122
5123         PR tree-optimization/43236
5124         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
5125         error in calculation of base address in reverse iteration case.
5126         (generate_builtin): Take number of latch executions if the statement
5127         is in the latch.
5128
5129 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
5130
5131         PR middle-end/42859
5132         * tree-eh.c: Include pointer-set.h.
5133         (lower_eh_dispatch): Filter out duplicate case labels and
5134         remove the unneeded edge when the label is unused.  Return
5135         true when some edges are removed.
5136         (execute_lower_eh_dispatch): When any lowering resulted in
5137         removing an edge, also delete unreachable blocks.
5138
5139 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
5140
5141         PR bootstrap/43287
5142         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
5143         UNSPEC_MACHOPIC_OFFSET.
5144
5145 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
5146
5147         PR target/43294
5148         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
5149         (m68k_delegitimize_address): New function.
5150
5151 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
5152
5153         PR debug/43299
5154         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
5155
5156         PR debug/43299
5157         * var-tracking.c (adjust_sets): New function.
5158         (count_with_sets, add_with_sets): Use it.
5159         (get_adjusted_src): New inline function.
5160         (add_stores): Use it.
5161
5162         PR debug/43304
5163         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
5164         call cselib_dummy_expand_value_rtx_cb instead of
5165         cselib_expand_value_rtx_cb.
5166
5167         PR debug/43293
5168         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
5169         * config/i386/i386.c: Include debug.h and dwarf2out.h.
5170         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
5171         and .cfi_endproc around the pic thunks.
5172         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
5173         all queued unwind info register saves are saved before the call.
5174         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
5175         considered as sp-=4 for unwind info and the pop as sp+=4 which
5176         also clobbers dest, but doesn't actually restore it.
5177
5178         PR debug/43290
5179         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
5180         RTX_FRAME_RELATED_P.
5181
5182 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5183
5184         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
5185         whitespaces in output template.
5186
5187 2010-03-09  Jie Zhang  <jie@codesourcery.com>
5188
5189         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
5190         out array boundary.
5191
5192 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5193
5194         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
5195         builtins.exp in a separate job.
5196
5197 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5198
5199         * graphite-sese-to-poly.c (add_param_constraints): Use
5200         lower_bound_in_type and upper_bound_in_type.
5201
5202 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5203
5204         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
5205         instead of unsigned_type_node.
5206
5207 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5208             Reza Yazdani  <reza.yazdani@amd.com>
5209
5210         PR middle-end/43065
5211         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
5212         on pointer type parameters.
5213
5214 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5215
5216         PR middle-end/42644
5217         PR middle-end/42130
5218         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
5219         handle conversions from pointer to integers.
5220         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
5221         induction variable, to be able to work with code generated by CLooG.
5222         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
5223         (build_poly_scop): Bail out if we cannot codegen a loop.
5224
5225 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
5226
5227         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
5228         code generation with gloog_error.
5229
5230 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5231
5232         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
5233         Call fold_convert on all the returned values.
5234         (expand_scalar_variables_expr): Pass to
5235         expand_scalar_variables_ssa_name the type of the resulting expression.
5236
5237 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5238
5239         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
5240         ppl_min_for_le_pointset.
5241         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
5242         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
5243
5244 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5245
5246         * graphite-dependences.c (map_into_dep_poly): Removed.
5247         (dependence_polyhedron_1): Use combine_context_id_scat.
5248
5249 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5250
5251         * graphite-poly.h (struct poly_scattering): Add layout documentation.
5252         (struct poly_bb): Same.
5253         (combine_context_id_scat): New.
5254
5255 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5256
5257         PR middle-end/42326
5258         * sese.c (name_defined_in_loop_p): Return false for default
5259         definitions.
5260
5261 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5262
5263         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
5264         and clean up the logic.
5265
5266 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
5267
5268         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
5269         early return.
5270
5271 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
5272
5273         * var-tracking.c (remove_cselib_value_chains): Define only for
5274         ENABLE_CHECKING.
5275         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
5276         delete_slot_part, emit_notes_for_differences_1): Don't call
5277         remove_cselib_value_chains here.
5278         (set_slot_part, emit_notes_for_differences_2): Don't call
5279         add_cselib_value_chains here.
5280         (preserved_values): New vector.
5281         (preserve_value): New function.
5282         (add_uses, add_stores, vt_add_function_parameters): Use it
5283         instead of cselib_preserve_value.
5284         (changed_values_stack): New vector.
5285         (check_changed_vars_0): New function.
5286         (check_changed_vars_1, check_changed_vars_2): Use it.
5287         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
5288         changed_values_stack VALUEs.
5289         (vt_emit_notes): For all preserved_values call
5290         add_cselib_value_chains.  If ENABLE_CHECKING call
5291         remove_cselib_value_chains before verifying value_chains is empty.
5292         Initialize and free changed_values_stack.
5293         (vt_initialize): Initialize preserved_values.
5294         (vt_finalize): Free preserved_values.
5295
5296 2010-03-08  Richard Guenther  <rguenther@suse.de>
5297
5298         PR tree-optimization/43269
5299         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
5300         region detection.
5301
5302 2010-03-08  Martin Jambor  <mjambor@suse.cz>
5303
5304         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
5305         (ipa_is_param_called): Removed.
5306         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
5307         (ipa_print_node_params): Do not print the called flag.
5308         (ipa_write_node_info): Do not stream the called flag.
5309         (ipa_read_node_info): Likewise.
5310
5311 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
5312
5313         PR debug/43176
5314         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
5315         * cselib.c (struct expand_value_data): Add dummy field.
5316         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
5317         dummy to false.
5318         (cselib_dummy_expand_value_rtx_cb): New function.
5319         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
5320         any rtl.
5321         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
5322         * var-tracking.c: Include pointer-set.h.
5323         (variable): Change n_var_parts to char from int.  Add
5324         cur_loc_changed and in_changed_variables fields.
5325         (variable_canonicalize): Remove.
5326         (shared_var_p): New inline function.
5327         (unshare_variable): Maintain cur_loc_changed and
5328         in_changed_variables fields.  If var was in changed_variables,
5329         replace it there with new_var.  Just copy cur_loc instead of
5330         resetting it to something else.
5331         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
5332         (dataflow_set_union): Don't call variable_canonicalize.
5333         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
5334         of their DEBUG_EXPR_TREE_DECLs.
5335         (canonicalize_loc_order_check): Verify that cur_loc is NULL
5336         and in_changed_variables and cur_loc_changed is false.
5337         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
5338         and cur_loc_changed.  Don't update cur_loc here.
5339         (variable_merge_over_src): Don't call variable_canonicalize.
5340         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
5341         removing loc that is equal to cur_loc, clear cur_loc,
5342         set cur_loc_changed and ensure variable_was_changed is called.
5343         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
5344         compare pointers in cur_loc check, if it is equal to loc,
5345         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
5346         (variable_different_p): Remove compare_current_location argument,
5347         don't compare cur_loc.
5348         (dataflow_set_different_1): Adjust variable_different_p caller.
5349         (variable_was_changed): If dv had some var in changed_variables
5350         already, reset in_changed_variables flag for it and propagate
5351         cur_loc_changed over to the new variable.  On empty var
5352         always set cur_loc_changed.  Set in_changed_variables on whatever
5353         var is added to changed_variables.
5354         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
5355         Use shared_var_p.  When removing loc that is equal to cur_loc,
5356         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
5357         end, don't set it to something else, just call variable_was_changed.
5358         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
5359         loc being removed, clear cur_loc and set cur_loc_changed.
5360         Set cur_loc_changed if all locations have been removed.
5361         (struct expand_loc_callback_data): New type.
5362         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
5363         allocated.  Always create SUBREGs if simplify_subreg failed.
5364         Prefer to use cur_loc, when that fails and still in
5365         changed_variables (and seen first time) recompute it.  Set
5366         cur_loc_changed of variables which had to change cur_loc and
5367         compute elcd->cur_loc_changed if any of the subexpressions used
5368         had to change cur_loc.
5369         (vt_expand_loc): Adjust to pass arguments in
5370         expand_loc_callback_data structure.
5371         (vt_expand_loc_dummy): New function.
5372         (emitted_notes): New variable.
5373         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
5374         that weren't used for any other decl in current
5375         emit_notes_for_changes call call vt_expand_loc_dummy to update
5376         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
5377         first loc_chain location if NULL before.  Always use just
5378         cur_loc instead of first loc_chain location.  When cur_loc_changed
5379         is false, when not --enable-checking=rtl just don't emit any note.
5380         When rtl checking, compute the note and assert it is the same
5381         as previous note.  Clear cur_loc_changed and in_changed_variables
5382         at the end before removing from changed_variables.
5383         (check_changed_vars_3): New function.
5384         (emit_notes_for_changes): Traverse changed_vars to call
5385         check_changed_vars_3 on each changed var.
5386         (emit_notes_for_differences_1): Clear cur_loc_changed and
5387         in_changed_variables.  Recompute cur_loc of new_var.
5388         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
5389         (vt_emit_notes): Initialize and destroy emitted_notes.
5390
5391 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
5392
5393         PR rtl-optimization/42220
5394         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
5395         Use verify_reg_tracked to determine if we should use OP_OUT rather
5396         than OP_INOUT.
5397         (build_def_use): If we see an in-out operand for a register that we
5398         know nothing about, treat is an output if possible, fail the block if
5399         not.
5400
5401 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5402
5403         PR debug/42897
5404         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
5405         permanently.
5406
5407 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
5408
5409         PR debug/42897
5410         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
5411         uses of relevant DEFs that are dead outside the loop too.
5412
5413 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
5414
5415         * var-tracking.c (dataflow_set_merge): Swap src and src2.
5416         Reverted:
5417         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
5418         PR debug/41371
5419         * var-tracking.c (values_to_unmark): New variable.
5420         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
5421         values_to_unmark vector.  Moved body to...
5422         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
5423         instead queue it into values_to_unmark vector.
5424         (vt_find_locations): Free values_to_unmark vector.
5425
5426 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
5427
5428         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
5429         (site.exp): Export them when plugins are enabled.
5430
5431 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
5432
5433         PR middle-end/42326
5434         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
5435         that contain scevs.
5436         (chrec_fold_multiply): Same.
5437
5438 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
5439
5440         PR c/43248
5441         * c-decl.c (build_compound_literal): Return early if init is
5442         an error_mark_node.
5443
5444 2010-03-04  Martin Jambor  <mjambor@suse.cz>
5445
5446         PR tree-optimization/43164
5447         PR tree-optimization/43191
5448         * tree-sra.c (type_consists_of_records_p): Reject records with
5449         zero-size bit-fields at the end.
5450
5451 2010-03-04  Mike Stump  <mikestump@comcast.net>
5452
5453         * Makefile.in (TAGS): Remove *.y.
5454
5455 2010-03-04  Richard Guenther  <rguenther@suse.de>
5456
5457         PR tree-optimization/40761
5458         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
5459         in reverse order.
5460         (my_rev_post_order_compute): New function.
5461         (init_pre): Call it.
5462
5463 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
5464
5465         PR middle-end/43209
5466         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
5467         decrease the cost of an IV candidate when the cost is infinite.
5468
5469 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5470
5471         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
5472         Use '3DNow!' for the extension of that name, ensure normal space
5473         after the string.
5474         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
5475
5476 2010-03-03  Jeff Law  <law@redhat.com>
5477
5478         * PR middle-end/32693
5479         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
5480         than gen_rtx_SUBREG.
5481         (extract_bit_field_1): Likewise.
5482
5483 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
5484
5485         * doc/sourcebuild.texi (Test directives): Document that arguments
5486         include-opts and exclude-opts are now optional for dg-skip-if,
5487         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
5488
5489 2010-03-03  Jason Merrill  <jason@redhat.com>
5490
5491         PR c++/12909
5492         * cgraph.h (varpool_node): Add extra_name field.
5493         * varpool.c (varpool_extra_name_alias): New.
5494         (varpool_assemble_decl): Emit extra name aliases.
5495         (varpool_mark_needed_node): Look past an extra name alias.
5496         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
5497         * lto-streamer-in.c (lto_input_tree): Read it.
5498         * lto-streamer-out.c (output_unreferenced_globals): Write it.
5499
5500 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
5501
5502         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
5503         (sparc*-*-solaris2*): ...this.
5504
5505 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
5506
5507         PR debug/43229
5508         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
5509         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
5510         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
5511         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
5512
5513         PR debug/43237
5514         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
5515         fallthrough to default handling, just with want_address 0 instead of 2.
5516         For single element lists, add_AT_loc directly, otherwise create an
5517         artificial variable DIE and stick location list to it.
5518
5519         PR debug/43177
5520         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
5521         (VAL_EXPR_HAS_REVERSE): Define.
5522         (reverse_op): New function.
5523         (add_stores): For reversible operations add an extra MO_VAL_USE.
5524
5525 2010-03-02  Jason Merrill  <jason@redhat.com>
5526
5527         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
5528
5529 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
5530
5531         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
5532         (sparc64-*-linux*): Likewise.
5533         (sparc64-*-solaris2*): Include assembler files before linker ones.
5534         (sparc-*-solaris2*): Simplify and reorder to match previous case.
5535         * config/sparc/gas.h: Delete.
5536         * config/sparc/sol2-64.h: Add copyright notice.
5537         * config/sparc/sol2-gas-bi.h: Likewise.
5538         * config/sparc/sol2-gld.h: Likewise.
5539         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
5540         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
5541         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
5542         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
5543         (sparc_elf_asm_named_section): Rename into...
5544         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
5545
5546 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
5547
5548         * config/alpha/alpha.c (override_options): Fix -mtune error message.
5549
5550 2010-03-02  Jeff Law  <law@redhat.com>
5551
5552         PR middle-end/42431
5553         * reload1.c (rtx_p, substitute_stack): Declare.
5554         (substitute): Record addresses of changed rtxs.
5555         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
5556         Restore the original rtx when complete.
5557         (reload): Free subsitute_stack when complete.
5558
5559 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
5560
5561         * doc/gccint.texi (menu): Add Testsuites as a chapter.
5562         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
5563         new chapter.
5564         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
5565         LTO Testing, gcov Testing, profopt Testing, compat Testing,
5566         Torture Tests): Change from subsection to section.
5567
5568 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
5569             Steven Bosscher  <steven@gcc.gnu.org>
5570
5571         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
5572         instead of bb.
5573
5574 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
5575
5576         PR middle-end/42640
5577         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
5578         the assignment from the new induction variable to the assignment
5579         of the value from the original loop PHI function.
5580
5581 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
5582             Daniel Jacobowitz  <dan@codesourcery.com>
5583
5584         * doc/sourcebuild.texi (Test directives): Clarify options to
5585         dg-skip-if.
5586
5587 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5588
5589         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
5590         Disable cfi directives unless GCC and gas agree on using read-only
5591         .eh_frame sections for 64-bit.
5592         * configure: Regenerate.
5593
5594 2010-03-01  Richard Guenther  <rguenther@suse.de>
5595
5596         PR tree-optimization/43220
5597         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
5598         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
5599
5600 2010-03-01  Richard Guenther  <rguenther@suse.de>
5601             Martin Jambor  <mjambor@suse.cz>
5602
5603         PR middle-end/41250
5604         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
5605         gimplified parameters.
5606
5607 2010-03-01  Christian Bruel  <christian.bruel@st.com>
5608
5609         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
5610
5611 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
5612
5613         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
5614
5615 2010-03-01  Richard Guenther  <rguenther@suse.de>
5616
5617         PR middle-end/43213
5618         * expr.c (expand_assignment): Use the alias-oracle to tell
5619         if the rhs aliases the result decl.
5620
5621 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5622
5623         PR pch/14940
5624         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
5625         to sol_gt_pch_get_address.
5626         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
5627         64-bit, SPARC and x86.
5628         (sol_gt_pch_get_address): New function.
5629
5630 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
5631
5632         * toplev.h (inform_n, error_n): Declare.
5633         * diagnostic.c (inform_n, error_n): New function.
5634
5635 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
5636
5637         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
5638         has no rtl yet when processing local_decls, queue it and recheck
5639         if deferred stack allocation hasn't assigned it rtl.
5640
5641 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
5642
5643         * config/sh/sh.c (unspec_bbr_uid): New.
5644         (gen_block_redirect): Use it instead of INSN_UID.
5645         (gen_far_branch): Likewise.
5646
5647 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5648
5649         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
5650         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
5651
5652 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5653
5654         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
5655         (Warning Options): -Wno-conversion-null is valid for
5656         Objective-C++ as well.
5657         * doc/tm.texi (Named Address Spaces): Likewise.
5658         * doc/plugins.texi (Plugins): Replace TABs with spaces.
5659         * doc/tree-ssa.texi (Tree SSA): Likewise.
5660
5661 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5662
5663         PR bootstrap/43202
5664         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
5665         by default.  Don't set the default arch for
5666         i[34567]86-*-darwin*|x86_64-*-darwin*.
5667
5668 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5669
5670         PR bootstrap/43202
5671         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
5672         default.  Set the default 32bit/64bit archs with $with_arch
5673         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
5674
5675 2010-02-27  Richard Guenther  <rguenther@suse.de>
5676
5677         PR tree-optimization/43186
5678         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
5679         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
5680         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
5681         unroller iterations.
5682
5683 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
5684
5685         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
5686         required and i[34567]86-*-* targets don't support 64bit ISA.
5687
5688 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
5689
5690         PR ada/43096
5691         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
5692         the same alias set.
5693
5694 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5695
5696         * config.gcc: Set the default arch at least to Prescott for
5697         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
5698         if SSE math is enabled.
5699
5700 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5701
5702         * diagnostic.c (diagnostic_initialize): Update.
5703         (diagnostic_report_diagnostic): Test inhibit_notes_p for
5704         informative notes.
5705         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
5706         (diagnostic_inhibit_notes): New.
5707         * toplev.c (process_options): inhibit notes with -fcompare-debug.
5708
5709 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5710
5711         PR c/20631
5712         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
5713         * doc/standards.texi: Likewise.
5714         * doc/extend.texi: Likewise.
5715         * doc/trouble.texi: Likewise.
5716         * doc/cppopts.texi: Likewise.
5717         * doc/install.texi: Likewise.
5718         * c.opt (std=c90,std=gnu90): New options.
5719         * c-opts.c (c_common_handle_option): Handle them.
5720
5721 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5722
5723         PR c/24577
5724         * c-decl.c (undeclared_variable): Use an informative note.
5725
5726 2010-02-26  Richard Guenther  <rguenther@suse.de>
5727
5728         PR tree-optimization/43186
5729         * gimple.h (gimple_fold): Remove.
5730         * gimple.c (gimple_fold): Remove.  Inline into single user ...
5731         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
5732         Try harder for conditions.
5733
5734 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5735
5736         PR debug/43190
5737         * function.c (used_types_insert): Don't skip through named pointer
5738         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
5739         and it is different from the main variant's type.
5740
5741 2010-02-26  Nick Clifton  <nickc@redhat.com>
5742
5743         * config/rx/rx.md (sminsi3): Remove bogus alternative.
5744
5745 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
5746
5747         * config.gcc: Support --with-fpmath=sse for x86.
5748
5749         * config/i386/ssemath.h: New.
5750
5751         * doc/install.texi (--with-fpmath=sse): Documented.
5752
5753 2010-02-26  Richard Guenther  <rguenther@suse.de>
5754
5755         PR tree-optimization/43188
5756         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
5757         vector types of over-aligned element type.
5758
5759 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
5760
5761         PR target/43175
5762         * config/i386/i386.c (expand_vec_perm_blend): Use correct
5763         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
5764
5765 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
5766
5767         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
5768
5769 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
5770
5771         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
5772         * var-tracking.c: Include diagnostic.h.
5773         (debug_dv): New function.
5774         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
5775
5776         PR debug/43160
5777         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
5778         (add_value_chain, add_value_chains, remove_value_chain,
5779         remove_value_chains): Handle DEBUG_EXPRs.
5780         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
5781
5782         PR debug/43161
5783         * regcprop.c (struct queued_debug_insn_change): New type.
5784         (struct value_data_entry): Add debug_insn_changes field.
5785         (struct value_data): Add n_debug_insn_changes field.
5786         (debug_insn_changes_pool): New variable.
5787         (free_debug_insn_changes, apply_debug_insn_changes,
5788         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
5789         (kill_value_one_regno): Call free_debug_insn_changes if needed.
5790         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
5791         fields.
5792         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
5793         changes for them.
5794         (copyprop_hardreg_forward_1): Don't call apply_change_group for
5795         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
5796         changes, call cprop_find_used_regs via note_stores.
5797         (copyprop_hardreg_forward): When copying vd from predecessor
5798         which has any queued DEBUG_INSN changes, make sure the pointers are
5799         cleared.  At the end call df_analyze and then if there are any
5800         DEBUG_INSN changes queued at the end of some basic block for still
5801         live registers, apply them.
5802         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
5803
5804 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
5805
5806         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
5807         (arm*-*-*): Ditto.
5808
5809 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
5810
5811         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
5812         targets.  Set the default with_cpu/with_arch from arch/cpu.
5813         Allow x86-64 and native for with_cpu/with_arch.
5814
5815 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
5816
5817         * ebitmap.c: Change calls to verify_popcount with calls to
5818         sbitmap_verify_popcount.
5819         (ebitmap_clear_bit): Fixed map->cacheindex test and
5820         map>cache update when bit clearing results in an empty
5821         element.
5822
5823 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
5824
5825         PR target/43154
5826         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
5827         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
5828         and support both V2DF and V2DI modes.
5829         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
5830         support both V2DF and V2DI modes.
5831         (general): Delete trailing whitespace from a few patterns.
5832
5833         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5834         V2DF/V2DI interleave high/low builtins.
5835
5836         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
5837         new VSX builtins.
5838
5839         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
5840         interleave high/low functions.
5841
5842 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
5843
5844         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
5845         #pragma extern_prefix.
5846
5847 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
5848
5849         PR debug/43166
5850         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
5851         BLKmode, assert op0 is a MEM and just adjust its mode.
5852
5853         PR debug/43165
5854         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
5855         if bitpos isn't multiple of mode's bitsize.
5856
5857 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5858
5859         * c.opt (-ftemplate-depth=): New.
5860         (-ftemplate-depth-): Deprecate.
5861         * optc-gen.awk: Handle -ftemplate-depth=.
5862         * opth-gen.awk: Likewise.
5863         * c-opts.c (c_common_handle_option): Likewise.
5864         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
5865
5866 2010-02-24  Jason Merrill  <jason@redhat.com>
5867
5868         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
5869
5870 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5871
5872         * cfg.c (alloc_aux_for_block): Remove inline.
5873         (alloc_aux_for_edge): Likewise.
5874
5875 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5876
5877         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
5878
5879 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5880
5881         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
5882         * config/i386/sol2-gas.h: New file.
5883         * config.gcc (i[34567]86-*-solaris2*): Use it.
5884
5885 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5886
5887         PR c/43128
5888         * c-typeck.c (ep_convert_and_check): New.
5889         (build_conditional_expr): Use it.
5890         (build_binary_op): Likewise.
5891
5892 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
5893
5894         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
5895
5896         PR debug/43150
5897         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
5898         bounds even for -O+.
5899         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
5900         expr needs to have DECL_NAME set.
5901
5902 2010-02-24  Nick Clifton  <nickc@redhat.com>
5903
5904         * config/mep/mep.c: Include gimple.h.
5905         (mep_function_uses_sp): Delete unused function.
5906         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
5907         parameters.  Use unsigned integers to count args.  Return a
5908         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
5909
5910 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5911
5912         PR target/43107
5913         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
5914         greater or equal to nelt instead of 2 * nelt.
5915         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
5916         with nelt - 1.
5917
5918 2010-02-23  Jason Merrill  <jason@redhat.com>
5919
5920         PR debug/42800
5921         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
5922         in cfun->local_decls even if they have register types.
5923
5924         PR c++/42837
5925         * stor-layout.c (place_field): Don't warn about unnecessary
5926         DECL_PACKED if the type is packed.
5927
5928 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5929
5930         PR target/43139
5931         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
5932         GOTOFF relocs, even when the base reg isn't pic pointer.
5933
5934 2010-02-23  Michael Matz  <matz@suse.de>
5935
5936         PR debug/43077
5937         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
5938         (expand_gimple_basic_block): Generate and use debug temps if there
5939         are debug uses left after the last real use of TERed ssa names.
5940         Unlink debug immediate uses when they are expanded.
5941
5942 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5943
5944         PR 43123
5945         * config/i386/i386.c (override_options): Reorganise to provide
5946         better error messages.
5947
5948 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5949
5950         PR middle-end/43083
5951         * graphite-scop-detection.c (create_single_exit_edge): Move
5952         the call to find_single_exit_edge to....
5953         (create_sese_edges): ...here.  Don't handle multiple edges
5954         exiting the function.
5955         (build_graphite_scops): Don't handle multiple edges
5956         exiting the function.
5957
5958 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5959
5960         PR middle-end/43097
5961         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
5962         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
5963
5964 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5965
5966         PR middle-end/43026
5967         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
5968
5969 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5970
5971         PR c++/43126
5972         * c-typeck.c (convert_arguments): Print declaration location.
5973         * c-common.c (validate_nargs): Rename as
5974         builtin_function_validate_nargs.
5975         (check_builtin_function_arguments): Update.
5976
5977 2010-02-22  Richard Guenther  <rguenther@suse.de>
5978
5979         PR lto/43045
5980         * tree-inline.c (declare_return_variable): Use the type of
5981         the call stmt lhs if available.
5982
5983 2010-02-22  Duncan Sands  <baldrick@free.fr>
5984
5985         * passes.c (register_pass): Always consider all pass lists when
5986         ref_pass_instance_number is zero.
5987
5988 2010-02-22  Richard Guenther  <rguenther@suse.de>
5989
5990         PR tree-optimization/42749
5991         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
5992         parameter.  Do arithmetic in the original type.
5993         (update_accumulator_with_ops): Likewise.
5994         (adjust_accumulator_values): Adjust.
5995
5996 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5997
5998         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
5999         (QI to BLKmode splitter): New splitter.
6000
6001 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
6002
6003         * config/i386/i386.c (initial_ix86_tune_features): Turn on
6004         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
6005
6006 2010-02-22  Richard Guenther  <rguenther@suse.de>
6007
6008         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
6009
6010 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
6011
6012         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
6013         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
6014         ($(T)crti.o, $(T)crtn.o): Remove rules.
6015
6016 2010-02-21  Tobias Burnus  <burnus@net-b.de>
6017
6018         PR fortran/35259
6019         * doc/invoke.texi (-fassociative-math): Document that this
6020         option is automatically enabled for Fortran.
6021
6022 2010-02-20  David S. Miller  <davem@davemloft.net>
6023
6024         * configure.ac: Test if linker and assembler properly support
6025         GOTDATA_OP relocations.
6026         * configure: Rebuild.
6027         * config.in: Likewise.
6028         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
6029         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
6030         (movsi_high_pic): Likewise.
6031         (movdi_lo_sum_pic): Likewise.
6032         (movdi_high_pic): Likewise.
6033         (movsi_pic_gotdata_op): New pattern.
6034         (movdi_pic_gotdata_op): Likewise.
6035         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
6036         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
6037
6038 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
6039
6040         PR target/43067
6041         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
6042         attribute to ssemul.
6043         (xop_mulv2div2di3_high): Ditto.
6044
6045 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6046
6047         PR c++/35669
6048         * c.opt (Wconversion-null): New option.
6049         * doc/invoke.texi (Wconversion-null): Document.
6050
6051 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6052
6053         * common.opt (Wlarger-than-): Add Undocumented.
6054
6055 2010-02-19  Mike Stump  <mikestump@comcast.net>
6056
6057         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
6058
6059 2010-02-19  Jason Merrill  <jason@redhat.com>
6060
6061         PR target/40332
6062         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
6063         * configure: Likewise.
6064
6065 2010-02-20  Alan Modra  <amodra@gmail.com>
6066
6067         PR middle-end/42344
6068         * cgraph.h (cgraph_make_decl_local): Declare.
6069         * cgraph.c (cgraph_make_decl_local): New function.
6070         (cgraph_make_node_local): Use it.
6071         * cgraphunit.c (cgraph_function_versioning): Likewise.
6072         * ipa.c (function_and_variable_visibility): Likewise.
6073
6074 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6075
6076         PR bootstrap/43121
6077         * except.c (sjlj_emit_function_enter): Don't call
6078         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
6079         directly.
6080         * rtl.h (add_reg_br_prob_note): Remove prototype.
6081
6082 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6083
6084         PR 41779
6085         * c-common.c (conversion_warning): Remove widening conversions
6086         before checking the conversion of integers to reals.
6087
6088 2010-02-19  Mike Stump  <mikestump@comcast.net>
6089
6090         PR middle-end/43125
6091         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
6092
6093         PR objc/43061
6094         * cgraphunit.c (process_function_and_variable_attributes): Check
6095         DECL_PRESERVE_P instead of looking up attribute "used".
6096         * ipa-pure-const.c (check_decl): Likewise.
6097         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
6098         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
6099         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
6100         instead of attribute "used".
6101         * config/sol2-c.c (solaris_pragma_init): Likewise.
6102         (solaris_pragma_fini): Likewise.
6103
6104 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6105
6106         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
6107         Use XCNEW instead of xcalloc.
6108         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
6109         XNEW instead of xmalloc.
6110         (get_fields): Use XNEWVEC instead of xmalloc.
6111
6112         PR debug/43084
6113         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
6114         populate vars array.
6115         (create_new_general_access): For debug stmts just reset value.
6116         (get_stmt_accesses): For accesses within debug stmts just record them
6117         using add_access_to_acc_sites instead of preventing the peeling or
6118         counting them as accesses.
6119
6120         PR middle-end/42233
6121         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
6122
6123 2010-02-19  Richard Guenther  <rguenther@suse.de>
6124
6125         PR tree-optimization/42916
6126         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
6127         instructions.
6128
6129 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
6130
6131         * configure.ac: Replace all uses of changequote in macro arguments
6132         with proper quoting.
6133
6134 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6135
6136         PR middle-end/42233
6137         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
6138
6139 2010-02-19  Richard Guenther  <rguenther@suse.de>
6140
6141         PR tree-optimization/42944
6142         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
6143         test for aliasing with errno.
6144
6145 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
6146
6147         PR middle-end/42233
6148         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
6149         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
6150         * dojump.c: Include output.h.
6151         (inv): New inline function.
6152         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
6153         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
6154         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
6155         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
6156         argument, pass it down to other calls.
6157         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
6158         add REG_BR_PROB note to the conditional jump.
6159         * cfgexpand.c (add_reg_br_prob_note): Removed.
6160         (expand_gimple_cond): Don't call it, add the probability
6161         as last argument to jumpif_1/jumpifnot_1.
6162         * Makefile.in (dojump.o): Depend on output.h.
6163         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
6164         callers.
6165         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
6166         * stmt.c (do_jump_if_equal): Likewise.
6167         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
6168         * loop-unswitch.c (compare_and_jump_seq): Likewise.
6169         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
6170         Likewise.
6171         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
6172         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
6173         jumpifnot_1 callers.
6174         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
6175         callers.
6176         (store_expr): Adjust jumpifnot caller.
6177         (store_constructor): Adjust jumpif caller.
6178
6179         PR middle-end/42233
6180         * gimplify.c (gimple_boolify): For __builtin_expect call
6181         gimple_boolify also on its first argument.
6182
6183 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
6184
6185         * configure.ac (gnu-unique-object): Wrap regexps using [] in
6186         changequote block.
6187         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
6188         * configure: Regenerated.
6189
6190 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6191
6192         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
6193         lang_hooks.types_compatible_p instead of comptypes.
6194
6195 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
6196
6197         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
6198         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
6199         if __prefer_thumb__ is defined.
6200
6201 2010-02-18  Martin Jambor  <mjambor@suse.cz>
6202
6203         PR tree-optimization/43066
6204         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
6205         array with zero-sized element type.
6206
6207 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
6208
6209         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
6210         rtx, allocate struct var_loc_node here and return it to the
6211         caller, and only if it is actually needed.
6212         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
6213         move it earlier and return immediately if it returns NULL.
6214
6215 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
6216
6217         * config/sparc/gas.h: New file.  Restore
6218         TARGET_ASM_NAMED_SECTION to its ELF default.
6219         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
6220         check !HAVE_GNU_AS.
6221         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6222         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
6223         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
6224         after sparc/sysv4.h.
6225
6226 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6227
6228         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
6229
6230 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
6231
6232         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
6233         patterns from predicated pattern.
6234
6235 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
6236
6237         PR target/43103
6238         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
6239         for insn mnemonic suffix.
6240
6241 2010-02-17  Richard Guenther  <rguenther@suse.de>
6242
6243         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
6244         to loop PHI nodes.
6245
6246 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR debug/42918
6249         * caller-save.c (save_call_clobbered_regs): If BB ends with
6250         a DEBUG_INSN, move any notes in between last real insn and the last
6251         DEBUG_INSN after the last DEBUG_INSN.
6252
6253 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
6254
6255         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
6256         Fix return type.  Fix argument type.  Explain meaning of return value.
6257
6258 2010-02-16  Richard Guenther  <rguenther@suse.de>
6259
6260         PR tree-optimization/41043
6261         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
6262         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
6263         statements ...
6264         (vrp_visit_phi_node): ... but only for loop PHI nodes.
6265
6266 2010-02-16  Ira Rosen  <irar@il.ibm.com>
6267
6268         PR tree-optimization/43074
6269         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
6270         * tree-vect-loop.c (vect_analyze_loop_operations): Add
6271         vectorizable cycles in hybrid SLP check.
6272         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
6273
6274 2010-02-16  Richard Guenther  <rguenther@suse.de>
6275
6276         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
6277         (true_dependence): If memrefs_conflict_p computes must-alias
6278         trust it.  Move TBAA check after offset-based disambiguation.
6279         (canon_true_dependence): Likewise.
6280
6281 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
6282
6283         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
6284         * doc/invoke.texi: Document it.
6285         * var-tracking.c: Include toplev.h and params.h.
6286         (vt_find_locations): Return bool indicating success.  Compute
6287         hash sizes unconditionally.  Check new parameter, report.
6288         (variable_tracking_main_1): Check vt_find_locations results and
6289         retry.  Renamed from...
6290         (variable_tracking_main): ... this.  New wrapper to preserve
6291         flag_var_tracking_assignments.
6292         * Makefile.in (var-tracking.o): Adjust dependencies.
6293
6294 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
6295             Jakub Jelinek <jakub@redhat.com>
6296
6297         PR target/42854
6298         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
6299         if weak_import attribute is present.
6300         * config/darwin.c (machopic_select_section): Likewise.
6301
6302 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
6303
6304         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
6305         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
6306         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
6307         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
6308
6309         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
6310         types.
6311
6312         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
6313         Fix argument types.
6314
6315         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
6316         Rewrite text to refer to the names.
6317
6318 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
6319
6320         * config/i386/i386-builtin-types.def
6321         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
6322         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
6323         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
6324         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
6325         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
6326         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
6327         IX86_BUILTIN_VPERMIL2PS256.
6328         (MULTI_ARG_4_DF2_DI_I): Defined.
6329         (MULTI_ARG_4_DF2_DI_I1): Defined.
6330         (MULTI_ARG_4_SF2_SI_I): Defined.
6331         (MULTI_ARG_4_SF2_SI_I1): Defined.
6332         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
6333         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
6334         __builtin_ia32_vpermil2ps256.
6335         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6336         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6337         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
6338         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
6339         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
6340         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
6341         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
6342         CODE_FOR_xop_vpermil2v8sf3.
6343         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
6344         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
6345         * config/i386/xopintrin.h (_mm_permute2_pd): New.
6346         (_mm256_permute2_pd): New.
6347         (_mm_permute2_ps): New.
6348         (_mm256_permute2_ps): New.
6349
6350 2010-02-15  Nick Clifton  <nickc@redhat.com>
6351
6352         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
6353         boolean parameters.  Use emit_jump_insn when emitting a pop
6354         instruction containing a return insn.
6355         (push): Use 'true' rather than '1' as second parameter to F.
6356         (h8300_expand_prologue): Likewise.
6357         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
6358         (h8300_expand_epilogue): Likewise.
6359
6360 2010-02-15  Richard Guenther  <rguenther@suse.de>
6361
6362         PR middle-end/43068
6363         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
6364         if that is zero.
6365
6366 2010-02-15  Nick Clifton  <nickc@redhat.com>
6367
6368         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
6369         delta.
6370
6371 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
6372
6373         * intl.c (fake_ngettext): New function.
6374         * intl.h (fake_ngettext): Declare.
6375         (ngettext): Define macro.
6376         * collect2.c (notice_translated): New function.
6377         (main): Use notice_translated and ngettext.
6378         * collect2.h (notice_translated): Declare.
6379
6380 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
6381
6382         * reorg.c (delete_computation): Comment fixes.
6383         * caller-save.c (setup_save_areas): Idem.
6384         * sel-sched-dump.c (dump_lv_set): Idem.
6385         * rtl.def: Idem.
6386
6387 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6388
6389         * config/s390/s390.c (s390_sched_init): New function.
6390         (TARGET_SCHED_INIT): Target hook defined.
6391
6392 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
6393             Jack Howarth  <howarth@bromo.med.uc.edu>
6394             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
6395
6396         PR target/42982
6397         Partial revert of unintended change in fix for PR41605.
6398         * config/darwin.h: Fix typo.
6399         * config/darwin9.h: Same.
6400
6401 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6402
6403         * c-pch.c (pch_init): Clear v.
6404
6405 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6406
6407         PR middle-end/42930
6408         * graphite-scop-detection.c (graphite_can_represent_scev): Call
6409         graphite_can_represent_init for MULT_EXPR.
6410
6411 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6412
6413         PR middle-end/42914
6414         PR middle-end/42530
6415         * graphite-sese-to-poly.c (remove_phi): New.
6416         (translate_scalar_reduction_to_array): Call remove_phi.
6417
6418 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6419
6420         PR middle-end/42771
6421         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
6422         * graphite-clast-to-gimple.h (gloog): Update declaration.
6423         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
6424         * graphite-poly.h (struct poly_bb): Add missing comments.
6425         (struct scop): Add poly_scop_p field.
6426         (POLY_SCOP_P): New.
6427         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
6428         * graphite.c (graphite_transform_loops): Build the polyhedral
6429         representation for each scop before code generation.
6430         * sese.c (rename_variables_in_operand): Removed.
6431         (rename_variables_in_expr): Return the renamed expression.
6432         (rename_sese_parameters): New.
6433         * sese.h (rename_sese_parameters): Declared.
6434
6435 2010-02-11  Richard Guenther  <rguenther@suse.de>
6436
6437         PR tree-optimization/42998
6438         * tree-ssa-pre.c (create_expression_by_pieces): Treat
6439         POINTER_PLUS_EXPR properly.
6440
6441 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
6442             Changpeng Fang  <changpeng.fang@amd.com>
6443
6444         PR middle-end/40886
6445         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
6446         the cost of an IV candidate when the IV is used in a test against zero.
6447
6448         * gcc.dg/tree-ssa/ivopts-3.c: New.
6449
6450 2010-02-11  Richard Guenther  <rguenther@suse.de>
6451
6452         PR lto/41664
6453         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
6454         pointer-vs-decl case by swapping refs.  Handle some cases
6455         of pointer-vs-decl disambiguations more conservatively.
6456         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
6457         to false after expanding.
6458
6459 2010-02-11  Richard Guenther  <rguenther@suse.de>
6460
6461         PR driver/43021
6462         * gcc.c (process_command): Handle LTO file@offset case more
6463         appropriately.
6464
6465 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
6466
6467         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
6468         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
6469         of DEBUG_INSNs.
6470         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
6471
6472         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
6473         if MEM's mode size isn't DWARF2_ADDR_SIZE.
6474         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
6475         Optimize eq/ne comparisons when both arguments are known to be
6476         zero-extended.
6477         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
6478         Don't mask operands unnecessarily if they are known to be already
6479         zero-extended.
6480
6481 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
6482
6483         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
6484         instead of loop.
6485
6486 2010-02-10  Richard Guenther  <rguenther@suse.de>
6487
6488         PR tree-optimization/43017
6489         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
6490         for wrapping signed arithmetic.
6491
6492 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6493
6494         PR debug/43010
6495         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
6496         if no debug info should be emitted for it.
6497
6498 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
6499
6500         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
6501         note when flag_exceptions is set.
6502
6503 2010-02-10  Duncan Sands  <baldrick@free.fr>
6504
6505         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
6506
6507 2010-02-10  Richard Guenther  <rguenther@suse.de>
6508
6509         PR c/43007
6510         * tree.c (get_unwidened): Handle constants.
6511         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
6512
6513 2010-02-10  Martin Jambor  <mjambor@suse.cz>
6514
6515         PR lto/42985
6516         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
6517         check for variable argument counts independently.
6518
6519 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6520
6521         PR target/42841
6522         * config/sh/sh.c (find_barrier): Increase length for non delayed
6523         conditional branches.
6524
6525 2010-02-10  Christian Bruel  <christian.bruel@st.com>
6526
6527         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
6528
6529 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
6530
6531         * builtins.c (set_builtin_user_assembler_name): Also handle
6532         ffs if int is smaller than word.
6533
6534 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
6535
6536         PR middle-end/42973
6537         * ira-conflicts.c (get_dup): Remove.
6538         (process_reg_shuffles): Add new parameter.  Use it as an
6539         additional guard for copy generation.
6540         (add_insn_allocno_copies): Rewrite.
6541
6542 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
6543
6544         * common.opt (fsched2-use-traces): Preserved for backward
6545         compatibility.
6546         * doc/invoke.texi: Remove the documentation about option
6547         -fsched2-use-traces.
6548         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
6549         flag_sched2_use_traces.
6550         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
6551         the backward compatibility flag section.
6552
6553 2010-02-09  Richard Guenther  <rguenther@suse.de>
6554
6555         PR tree-optimization/43008
6556         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
6557         make HEAP variables initialized from global memory if they
6558         are not known builtin functions.
6559         (find_func_aliases): Adjust.
6560
6561 2010-02-09  Richard Guenther  <rguenther@suse.de>
6562
6563         PR tree-optimization/43000
6564         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
6565         arithmetic manually.
6566
6567 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
6568
6569         PR tree-optimization/42931
6570         * tree-loop-linear.c (try_interchange_loops): Don't call
6571         double_int_mul if estimated_loop_iterations failed.
6572
6573 2010-02-08  Martin Jambor  <mjambor@suse.cz>
6574
6575         PR middle-end/42898
6576         * tree-sra.c (build_accesses_from_assign): Do not mark in
6577         should_scalarize_away_bitmap if stmt has volatile ops.
6578         (sra_modify_assign): Do not process assigns piecemeal if if stmt
6579         has volatile ops.
6580
6581 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
6582
6583         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
6584
6585 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
6586
6587         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
6588         before the pattern.
6589
6590 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
6591
6592         PR middle-end/42946
6593         * df-core.c (df_finish_pass): Change type of saved_flags to int.
6594
6595 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6596
6597         PR middle-end/42988
6598         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
6599         to unknown_dependence.
6600         (graphite_legal_transform_dr): Handle the unknown_dependence.
6601         (graphite_carried_dependence_level_k): Same.
6602
6603 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
6604
6605         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
6606
6607 2010-02-07  Richard Guenther  <rguenther@suse.de>
6608
6609         PR middle-end/42991
6610         * expr.c (get_inner_reference): Always initialize *pbitsize.
6611
6612 2010-02-07  Richard Guenther  <rguenther@suse.de>
6613
6614         PR middle-end/42956
6615         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
6616         new ARRAY_REFs on variable size element or minimal index arrays.
6617         Complete.
6618         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
6619         gimple_fold_indirect_ref.
6620
6621 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
6622
6623         PR target/42957
6624         * arm.c (arm_override_options): Just return if the user has specified
6625         an invalid fpu name.
6626
6627 2010-02-03  Jason Merrill  <jason@redhat.com>
6628
6629         PR c++/42870
6630         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
6631         i386_pe_maybe_record_exported_symbol.
6632
6633 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
6634
6635         PR target/42924
6636         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6637         (pa_delegitimize_address): New function.
6638
6639 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
6640
6641         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
6642         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
6643
6644 2010-02-05  Richard Guenther  <rguenther@suse.de>
6645
6646         PR lto/42762
6647         * lto-streamer-in.c (get_resolution): Deal with references
6648         to undefined functions.
6649
6650 2010-02-05  Richard Guenther  <rguenther@suse.de>
6651
6652         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
6653         (fold_const_aggregate_ref): Likewise.
6654         (ccp_fold_stmt): Substitute loads.
6655         (maybe_fold_reference): Verify types before substituting.
6656         Unshare properly.
6657         (fold_gimple_assign): Unshare properly.
6658         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
6659
6660 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
6661
6662         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
6663         for rs6000_gen_cell_microcode.
6664
6665 2010-02-04  Richard Guenther  <rguenther@suse.de>
6666
6667         PR rtl-optimization/42952
6668         * dse.c (const_or_frame_p): Remove MEM handling.
6669
6670 2010-02-04  Nick Clifton  <nickc@redhat.com>
6671
6672         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
6673         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
6674         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
6675         (mn10300_asm_output_mi_thunk): New function.
6676         (mn10300_can_output_mu_thunk): New function.
6677         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
6678         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
6679         (FUNCTION_ARG): Delete incorrect comment.
6680
6681 2010-02-03  Jason Merrill  <jason@redhat.com>
6682
6683         PR c++/40138
6684         * fold-const.c (operand_equal_p): Handle erroneous types.
6685
6686 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6687
6688         * config/h8300/h8300.md (can_delay): Fix attibute condition.
6689
6690 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
6691
6692         PR rtl-optimization/42941
6693         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
6694         of xmalloc.
6695
6696 2010-02-03  Jason Merrill  <jason@redhat.com>
6697
6698         PR c++/35652
6699         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
6700
6701 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
6702
6703         PR debug/42896
6704         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
6705         (cselib_reset_table): Renamed from...
6706         (cselib_reset_table_with_next_value): ... this.
6707         (cselib_get_next_uid): Renamed from...
6708         (cselib_get_next_unknown_value): ... this.
6709         * cselib.c (next_uid): Renamed from...
6710         (next_unknown_value): ... this.
6711         (cselib_clear_table): Adjust.
6712         (cselib_reset_table): Adjust.  Renamed from...
6713         (cselib_reset_table_with_next_value): ... this.
6714         (cselib_get_next_uid): Adjust.  Renamed from...
6715         (cselib_get_next_unknown_value): ... this.
6716         (get_value_hash): Use hash.
6717         (cselib_hash_rtx): Likewise.
6718         (new_cselib_val): Adjust.  Set and dump uid.
6719         (cselib_lookup_mem): Pass next_uid as hash.
6720         (cselib_subst_to_values): Likewise.
6721         (cselib_log_lookup): Dump uid.
6722         (cselib_lookup): Pass next_uid as hash.  Adjust.
6723         (cselib_process_insn): Adjust.
6724         (cselib_init): Initialize next_uid.
6725         (cselib_finish): Adjust.
6726         (dump_cselib_table): Likewise.
6727         * dse.c (canon_address): Dump value uid.
6728         * print-rtl.c (print_rtx): Print value uid.
6729         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
6730         (dvuid): New type.
6731         (dv_uid): New function, sort of renamed from...
6732         (dv_htab_hash): ... this, reimplemented in terms of it and...
6733         (dv_uid2hash): ... this.  New.
6734         (variable_htab_eq): Drop excess assertions.
6735         (tie_break_pointers): Removed.
6736         (canon_value_cmp): Compare uids.
6737         (variable_post_merge_New_vals): Print uids.
6738         (vt_add_function_parameters): Adjust.
6739         (vt_initialize): Reset table.  Adjust.
6740
6741 2010-02-03  Richard Guenther  <rguenther@suse.de>
6742
6743         PR tree-optimization/42944
6744         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
6745         (call_may_clobber_ref_p_1): Likewise.  Properly handle
6746         malloc and calloc clobbering errno.
6747
6748 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
6749
6750         * doc/invoke.texi: Fix name of sched1 dump.
6751
6752         * opts.c (decode_options): Set flag_tree_switch_conversion
6753         only conditionally on optimize >= 2.
6754
6755         * gcse.c: Assorted comment fixes in pass description.
6756
6757 2010-02-03  Anthony Green  <green@moxielogic.com>
6758
6759         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
6760         nop padding in order to maintain alignment of storage location of
6761         target function address.
6762         (moxie_trampoline_init): Store target function address at newly
6763         aligned location.
6764         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
6765         to 32.
6766         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
6767
6768 2010-02-03  Richard Guenther  <rguenther@suse.de>
6769
6770         PR middle-end/42927
6771         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
6772
6773 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6774
6775         * config.gcc: Reenable check for obsolete targets.
6776         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
6777         mips-sgi-irix6.[0-4]*.
6778
6779 2010-02-02  Nick Clifton  <nickc@redhat.com>
6780
6781         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
6782         constant size of 4 as being the same as 0.
6783         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
6784         can take values in the range 0..4.
6785
6786 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
6787
6788         PR java/41991
6789         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
6790         as _darwin10_Unwind_FindEnclosingFunction().
6791         * libgcc-libsystem.ver: New.
6792
6793 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
6794
6795         PR target/41399
6796         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
6797         implicitly set registers.
6798
6799 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
6800
6801         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
6802         (arm_override_options): Allow automatic selection of the thread
6803         pointer register if thumb2.
6804         (legitimize_pic_address): Improve code sequences for Thumb2.
6805         (arm_call_tls_get_addr): Likewise.
6806         (legitimize_tls_address): Likewise.
6807         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
6808         (pic_load_addr_32bit): ... this.  New named pattern.
6809         * thumb2.md (pic_load_addr_thumb2): Delete.
6810         (pic_load_dot_plus_four): Delete.
6811         (tls_load_dot_plus_four): New named pattern.
6812
6813 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6814
6815         PR libgomp/29986
6816         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
6817         Document fix for TLS bug.
6818
6819 2010-01-31  Richard Guenther  <rguenther@suse.de>
6820
6821         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
6822         conservatively correct.
6823
6824 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6825
6826         PR target/42850
6827         Revert:
6828         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6829
6830         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
6831
6832 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6833
6834         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
6835
6836 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
6837
6838         * config.gcc: Adjust order of makefile fragments for mingw targets.
6839
6840 2010-01-31  Richard Guenther  <rguenther@suse.de>
6841
6842         PR middle-end/42898
6843         * gimplify.c (gimplify_init_constructor): For volatile LHS
6844         initialize a temporary.
6845
6846 2010-01-31  Matthias Klose  <doko@ubuntu.com>
6847
6848         * configure.ac: Fix __stack_chk_fail check for cross builds configured
6849         --with-headers
6850         * configure: Regenerate.
6851
6852 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
6853
6854         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
6855         the same alias set and their sizes different constantness.
6856         (aliasing_component_refs_p): Revert 2009-10-24 change.
6857
6858 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6859
6860         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
6861         unused.
6862
6863 2010-01-29  Richard Guenther  <rguenther@suse.de>
6864
6865         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
6866         Assert we successfully updated the call.
6867
6868 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
6869
6870         PR rtl-optimization/42889
6871         * df.h (df_set_bb_dirty_nonlr): New prototype.
6872         * df-core.c (df_set_bb_dirty_nonlr): New function.
6873         * df-scan.c (df_insn_rescan): Call it instead of
6874         df_set_bb_dirty for DEBUG_INSNs.
6875
6876 2010-01-29  Richard Guenther  <rguenther@suse.de>
6877
6878         PR middle-end/37448
6879         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
6880         quadratic behavior in most cases.
6881
6882 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
6883
6884         PR target/42891
6885         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
6886         in the call to gen_x86_movsicc_0_m1.
6887
6888 2010-01-28  Richard Guenther  <rguenther@suse.de>
6889
6890         PR tree-optimization/42871
6891         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
6892
6893 2010-01-28  Richard Guenther  <rguenther@suse.de>
6894
6895         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
6896         into call arguments.
6897
6898 2010-01-28  Richard Guenther  <rguenther@suse.de>
6899
6900         PR middle-end/42883
6901         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
6902         the forwarder if the destination is an EH landing pad.
6903
6904 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
6905
6906         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
6907         block list passed to gimple_duplicate_sese_tail.
6908         (parallelize_loops): Avoid parallelization when the function
6909         has_nonlocal_label.
6910         Avoid parallelization when the preheader is IRREDUCIBLE.
6911         Try to optimize when estimated_loop_iterations_int is unresolved.
6912         Add the loop's location to the dump file.
6913         * tree-cfg.c (add_phi_args_after_redirect): Remove.
6914         (gimple_duplicate_sese_tail): Remove the check for the latch.
6915         Redirect nexits to the exit block.
6916         Remove handling of the incoming edges to the latch.
6917         Redirect the backedge from the copied latch to the exit bb.
6918
6919 2010-01-28  Michael Matz  <matz@suse.de>
6920
6921         PR target/42881
6922         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
6923         Wrap force_reg into a sequence, emit it before user.
6924
6925 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
6926
6927         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
6928         (arm_rev): New.
6929         (arm_legacy_rev): Likewise.
6930         (thumb_legacy_rev): Likewise.
6931
6932 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6933
6934         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
6935         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
6936         on MEM's address failed, try avoid_constant_pool_reference and
6937         recurse if it returned something different.
6938         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
6939         address, try avoid_constant_pool_reference and recurse if it
6940         returned something different.
6941         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
6942         address and avoid_constant_pool_reference returned something
6943         different, don't set have_address.
6944
6945 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
6946
6947         PR debug/42861
6948         * var-tracking.c (val_store): Add modified argument, obey it.
6949         Adjust callers.
6950         (count_uses): Move down logging of main.
6951         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
6952         don't need resolution.
6953         (emit_notes_in_bb): Likewise.
6954
6955 2010-01-27  Richard Guenther  <rguenther@suse.de>
6956
6957         PR middle-end/42878
6958         * tree-inline.c (remap_decl): Delay remapping of SSA name
6959         default definitions until we need them.
6960
6961 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6962
6963         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6964         (rs6000_delegitimize_address): New function.
6965
6966         * config/s390/s390.c (s390_delegitimize_address): Call
6967         delegitimize_mem_from_attrs.
6968
6969         PR middle-end/42874
6970         * tree-inline.c (cannot_copy_type_1): Removed.
6971         (copy_forbidden): Don't forbid copying of functions containing
6972         records/unions with variable length fields.
6973
6974 2010-01-27  Christian Bruel  <christian.bruel@st.com>
6975
6976         Revert:
6977         PR target/42841
6978         * config/sh/sh.c (find_barrier): Increase length for non delayed
6979         conditional branches.
6980
6981 2010-01-27  Matthias Klose  <doko@ubuntu.com>
6982
6983         * configure.ac (gnu-unique-object): Fix ldd version check.
6984         * configure: Regenerate.
6985
6986 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6987
6988         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
6989         HAVE_GNU_AS value.
6990         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
6991         Test for HAVE_GNU_AS value.
6992
6993 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6994
6995         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
6996         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
6997         INT64_TYPE): Define.
6998         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
6999         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7000         INT_LEAST64_TYPE): Define.
7001         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
7002         UINT_LEAST64_TYPE): Define.
7003         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
7004         INT_FAST64_TYPE): Define.
7005         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7006         UINT_FAST64_TYPE): Define.
7007         (INTMAX_TYPE, UINTMAX_TYPE): Define.
7008         (INTPTR_TYPE, UINTPTR_TYPE): Define.
7009         (SIG_ATOMIC_TYPE): Define.
7010
7011 2010-01-26  Richard Guenther  <rguenther@suse.de>
7012
7013         * df-scan.c (df_scan_set_bb_info): Remove assert.
7014         (df_insn_rescan_debug_internal): Merge asserts.
7015         (df_install_ref): Likewise.
7016         (df_mark_reg): Use bitmap_set_range.
7017         (df_hard_reg_used_p): Remove assert.
7018         (df_hard_reg_used_count): Likewise.
7019
7020 2010-01-26  Richard Guenther  <rguenther@suse.de>
7021
7022         PR rtl-optimization/42685
7023         * web.c (web_main): Ignore DEBUG_INSNs.
7024
7025 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
7026
7027         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
7028
7029         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
7030         Fix types of fndecl and arglist parameters.
7031
7032 2010-01-26  Richard Guenther  <rguenther@suse.de>
7033
7034         PR middle-end/42806
7035         * tree-eh.c (unsplit_eh): Skip debug insns.
7036
7037 2010-01-26  Richard Guenther  <rguenther@suse.de>
7038
7039         PR tree-optimization/42250
7040         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
7041
7042 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
7043
7044         PR fortran/42866
7045         * omp-low.c (expand_omp_sections): Only use single_pred if
7046         l2_bb is single_pred_p.
7047
7048 2010-01-25  Christian Bruel  <christian.bruel@st.com>
7049
7050         PR target/42841
7051         * config/sh/sh.c (find_barrier): Increase length for non delayed
7052         conditional branches.
7053         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
7054
7055 2010-01-24  David S. Miller  <davem@davemloft.net>
7056
7057         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
7058         define if not using GAS.
7059         * config/sparc/sparc.c (sparc_elf_asm_named_section):
7060         Likewise.  Delete SECTION_MERGE code, which is only applicable
7061         when using GAS.
7062
7063 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
7064
7065         PR c++/42748
7066         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
7067         mangling of va_list in system headers.
7068
7069 2010-01-23  Toon Moene  <toon@moene.org>
7070
7071         * tree-predcom.c (combine_chains): Return NULL, not false.
7072
7073 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
7074
7075         * tree-loop-distribution.c (distribute_loop): Fix declaration and
7076         initialization of variable res to agree with return type.
7077
7078 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
7079
7080         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
7081         * tree-sra.c: Add include of expr.h.
7082
7083 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
7084
7085         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
7086         insert the debug stmt on the single non-EH edge from the stmt.
7087
7088 2010-01-22  Richard Henderson  <rth@redhat.com>
7089
7090         PR tree-opt/42833
7091         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
7092         the RHS until after generate_subtree_copies has insertted its
7093         code before the current statement.
7094
7095 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
7096
7097         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
7098
7099         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
7100
7101 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7102
7103         PR tree-optimization/42585
7104         * tree-sra.c (struct access): New field grp_total_scalarization.
7105         (dump_access): Dump the new field.
7106         (should_scalarize_away_bitmap): New variable.
7107         (cannot_scalarize_away_bitmap): Likewise.
7108         (sra_initialize): Allocate new bitmaps.
7109         (sra_deinitialize): Free new bitmaps.
7110         (create_access_1): New function.
7111         (create_access): Parts moved to create_access_1.
7112         (type_consists_of_records_p): New function.
7113         (completely_scalarize_record): Likewise.
7114         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
7115         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
7116         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
7117         access.
7118         (analyze_all_variable_accesses): Completely scalarize small eligible
7119         records.
7120
7121 2010-01-21  Martin Jambor  <mjambor@suse.cz>
7122
7123         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
7124
7125 2010-01-21  Andrew Haley  <aph@redhat.com>
7126
7127         * gcc.c (process_command): Move lang_specific_driver before
7128         setting cc_libexec_prefix.
7129
7130 2010-01-21  Richard Guenther  <rguenther@suse.de>
7131
7132         PR middle-end/19988
7133         * fold-const.c (negate_expr_p): Pretend only negative
7134         real constants are easily negatable.
7135
7136 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
7137             Jason Merrill  <jason@redhat.com>
7138
7139         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
7140         (TYPE_TRANSPARENT_AGGR): this, for union and record.
7141         * calls.c (initialize argument_information): Handle it.
7142         * c-common.c (handle_transparent_union_attribute): Use new name.
7143         * c-decl.c (finish_struct): Ditto.
7144         * c-typeck.c (type_lists_compatible_p): Ditto.
7145         (convert_for_assignment): Use new name and also handle record.
7146         * function.c (aggregate_value_p): Handle it.
7147         (pass_by_reference): Ditto.
7148         (assign_parm_data_types): Ditto.
7149         * print-tree.c (print_node): Ditto.
7150         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
7151         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
7152         * tree.c (first_field): New fn.
7153
7154 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7155
7156         PR target/42818
7157         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
7158         even when linking statically, for now.
7159
7160 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7161
7162         PR debug/42715
7163         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
7164         without a cselib val.
7165         (count_uses): Accept MO_VAL_SET with no val on stores.
7166         (add_stores): Likewise.
7167
7168 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7169
7170         * var-tracking.c (check_value_val): Add a compile time assertion.
7171         (dv_is_decl_p): Simplify.
7172         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
7173         gcc_assert if ENABLE_CHECKING.
7174
7175 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
7176
7177         PR debug/42782
7178         * var-tracking.c: Include tree-flow.h.
7179         (mem_dies_at_call): New.
7180         (dataflow_set_preserve_mem_locs): Use it.
7181         (dataflow_set_remove_mem_locs): Likewise.
7182         (dump_var): Renamed from dump_variable.  Adjust all callers.
7183         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
7184         * Makefile.in (var-tracking.o): Adjust deps.
7185
7186 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
7187
7188         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
7189
7190 2010-01-20  Richard Guenther  <rguenther@suse.de>
7191
7192         PR tree-optimization/42717
7193         * tree-ssa-dce.c (get_live_post_dom): Remove.
7194         (forward_edge_to_pdom): Take an arbitrary edge to copy
7195         degenerate PHI args from.
7196         (remove_dead_stmt): Use the first post-dominator even if it
7197         does not contain live statements as redirection destination.
7198
7199 2010-01-20  Richard Guenther  <rguenther@suse.de>
7200
7201         * tree-inline.c (estimate_num_insns): Handle EH builtins.
7202
7203 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7204
7205         * sel-sched.c (create_speculation_check): Remove set but not used
7206         variable twin.
7207         (try_transformation_cache): Remove set but not used variable ds.
7208         (calculate_privileged_insns): Remove set but not used variables
7209         cur_insn and min_spec_insn.
7210         (find_best_expr): Remove set but not used variable avail_n.
7211         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
7212         variable e.
7213         * cgraphunit.c (assemble_thunk): Remove set but not used variable
7214         false_label.
7215         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
7216         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
7217         new_scop_exit_edge.
7218
7219 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
7220
7221         PR bootstrap/42786
7222         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
7223         cpu types.  Add support for *-sse3 cpu types.
7224         (x86_64-*-*): Ditto.
7225
7226 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7227
7228         PR middle-end/42803
7229         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
7230         argument, call initializer_constant_valid_p_1 instead of
7231         initializer_constant_valid_p, pass CACHE to it, return NULL
7232         immediately if first call returns NULL.
7233         (initializer_constant_valid_p_1): New function.
7234         (initializer_constant_valid_p): Use it.
7235
7236 2010-01-20  Thomas Quinot  <quinot@adacore.com>
7237
7238         * tree.def (PLACEHOLDER_EXPR): Fix comment.
7239
7240 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
7241
7242         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
7243         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
7244         (loc_list_from_tree): Don't handle unsigned division.  Handle
7245         signed modulo using DW_OP_{over,over,div,mul,minus}.
7246         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
7247         modulo instead of signed.
7248
7249 2010-01-20  DJ Delorie  <dj@redhat.com>
7250
7251         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
7252         (Fpa): Pass it
7253         (h8300_emit_stack_adjustment): Propogate it.
7254         (push): Pass it.
7255         (h8300_expand_prologue): Likewise.
7256         (h8300_expand_epilogue): Likewise.
7257
7258 2010-01-19  Michael Matz  <matz@suse.de>
7259
7260         PR tree-optimization/41783
7261         * tree-data-ref.c (toplevel): Include flags.h.
7262         (dump_data_dependence_relation):  Also dump the inputs if the
7263         result will be unknown.
7264         (split_constant_offset_1): Look through some conversions.
7265         * tree-predcom.c (determine_roots_comp): Restart a new chain if
7266         the offset from last element is too large.
7267         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
7268         (reassociate_to_the_same_stmt): Handle vector registers.
7269         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
7270         (e.g. conversions).
7271         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
7272         wide_prolog_niters argument, emit widening instructions.
7273         (vect_do_peeling_for_alignment): Adjust caller, use widened
7274         variant of the iteration cound.
7275         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
7276
7277 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7278
7279         PR target/38697
7280         * config/arm/neon-testgen.m (emit_automatics): New parameter
7281         features. Adjust for Fixed_return_reg feature.
7282         (test_intrinsic): Call emit_automatics with new feature.
7283         * config/arm/neon.ml: Update copyright years.
7284         (features): New Fixed_return_reg feature.
7285         (ops): Update feature for Vget_low.
7286
7287 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
7288
7289         PR tree-optimization/42719
7290         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
7291         stmt uses.
7292
7293         PR debug/42728
7294         * fwprop.c (all_uses_available_at): Return false if def_set dest
7295         is a REG that is used in def_insn.
7296
7297 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
7298
7299         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
7300
7301         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
7302         Add argument names.
7303
7304         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
7305
7306         * target.h (struct gcc_target) <secondary_reload>: Change type
7307         of last argument to secondary_reload_info *.
7308
7309 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
7310
7311         PR target/42774
7312         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
7313         memory references with unaligned offsets.  Remove CQImode handling.
7314         (unaligned_memory_operand): Return 1 for memory references with
7315         unaligned offsets.  Remove CQImode handling.
7316
7317 2010-01-18  Richard Guenther  <rguenther@suse.de>
7318
7319         PR middle-end/39954
7320         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
7321         builtin calls.
7322
7323 2010-01-18  Richard Guenther  <rguenther@suse.de>
7324
7325         PR tree-optimization/42781
7326         * tree-ssa-structalias.c (find_what_var_points_to): Skip
7327         restrict processing only if the original variable was artificial.
7328
7329 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
7330
7331         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
7332         find number of popped argument bytes.
7333
7334         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
7335         Fix the text that describes the return value for invalid insns.
7336
7337         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
7338
7339         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
7340         Clarify what 'cost of the -dependence' is.  Fix quoting.
7341
7342         * toplev.c (default_get_pch_validity): Rename argument to "sz".
7343         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
7344
7345 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
7346
7347         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7348         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
7349
7350 2010-01-17  Richard Guenther  <rguenther@suse.de>
7351
7352         PR middle-end/42248
7353         * function.c (split_complex_args): Take a VEC to modify.
7354         (assign_parms_augmented_arg_list): Build a VEC instead of
7355         a chain of PARM_DECLs.
7356         (assign_parms_unsplit_complex): Take a VEC of arguments.
7357         Do not fixup unmodified parms.
7358         (assign_parms): Deal with the VEC.
7359         (gimplify_parameters): Likewise.
7360
7361 2010-01-17  Richard Guenther  <rguenther@suse.de>
7362
7363         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
7364         node existence check.
7365         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
7366         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
7367         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
7368         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
7369         (gimple_execute_on_growing_pred): Likewise.
7370
7371 2010-01-17  Richard Guenther  <rguenther@suse.de>
7372
7373         PR tree-optimization/42773
7374         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
7375         (compute_antic_aux): Likewise.
7376         (compute_partial_antic_aux): Likewise.
7377
7378 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
7379
7380         PR debug/42767
7381         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
7382         and US_TRUNCATE.
7383
7384 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
7385
7386         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
7387         appearance.
7388
7389         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
7390         Fix markup for strict argument.
7391
7392         (TARGET_SCHED_REORDER2): Fix argument types.
7393
7394         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
7395         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
7396
7397         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
7398         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
7399
7400         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
7401         Add argument name.
7402
7403         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
7404         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
7405         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
7406         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
7407         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
7408
7409         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
7410
7411         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
7412
7413         (TARGET_ASM_RELOC_RW_MASK): Add return type.
7414         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
7415
7416         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
7417
7418         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
7419         Use prototype.
7420
7421         (TARGET_ASM_NAMED_SECTION): Fix argument list.
7422
7423         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
7424         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
7425
7426         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
7427
7428         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
7429
7430         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
7431         referring to it.  Fix language.
7432
7433         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
7434
7435         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
7436
7437         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
7438
7439         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
7440
7441         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
7442         '@var{stream}.  Remove stray 'and'.
7443
7444         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
7445
7446         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
7447
7448         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
7449
7450         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
7451         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
7452
7453         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
7454         Fix description of return value.
7455         Rename argument "sz" to "len."
7456
7457         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
7458         Clarify meaning of 'true' return value.
7459
7460         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
7461
7462         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
7463         rep_mode versus mode_rep.
7464
7465         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
7466
7467         (TARGET_BUILTIN_DECL): Fix name.
7468
7469         (TARGET_COMMUTATIVE_P): Fix type of first argument.
7470
7471         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
7472
7473         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
7474
7475         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
7476
7477         (TARGET_RELAXED_ORDERING): Use @deftypevr.
7478
7479         (TARGET_GET_DRAP_RTX): Note that this is a hook.
7480         Clarify language.
7481
7482         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
7483         Rename argument tm_fn to md_fn.
7484
7485         (TARGET_OPTION_PRINT): Fix argument list.
7486
7487 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
7488
7489         PR target/42664
7490         * config/i386/i386.c (ix86_fixup_binary_operands):
7491         Revert FMA4 fixup of operands.
7492
7493 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7494
7495         PR gcc/42525
7496         * Makefile.in (write_entries_to_file, install-plugin):
7497         Use \012 instead of \n with tr.
7498
7499 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
7500
7501         * configure.ac (HAVE_AS_REF): New C macro.
7502         * configure: Regenerate.
7503         * config.in: Likewise.
7504         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
7505         if HAVE_AS_REF.
7506         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
7507         if HAVE_AS_REF.
7508
7509 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
7510
7511         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
7512
7513         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
7514
7515         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
7516
7517         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
7518
7519         (TARGET_IN_SMALL_DATA_P): Fix argument type.
7520
7521         (TARGET_BINDS_LOCAL_P): Fix argument type.
7522
7523         (TARGET_ASM_FILE_END): Use prototype.
7524
7525         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
7526
7527         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
7528
7529         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
7530
7531         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
7532
7533         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
7534         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
7535
7536         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
7537         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
7538
7539         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
7540         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
7541         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
7542         (TARGET_ADDR_SPACE_CONVERT): Likewise.
7543
7544         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
7545
7546         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
7547
7548         (TARGET_INIT_BUILTINS): Use prototype.
7549
7550         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
7551         Put 'const char *' in braces.  Fix parameter types.
7552         (TARGET_INVALID_CONVERSION): Fix parameter types.
7553         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
7554         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
7555
7556         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
7557         Fix argument type.
7558
7559         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
7560
7561         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
7562
7563 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
7564
7565         * doc/tm.texi (TARGET_HELP): Fix return type.
7566
7567         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
7568         in braces.  Fix argument types.
7569
7570         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
7571
7572         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
7573
7574         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
7575
7576         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
7577         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
7578
7579         (TARGET_MANGLE_TYPE): Fix argument types.
7580
7581         (TARGET_IRA_COVER_CLASSES): Use prototype.
7582
7583         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
7584
7585         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
7586
7587         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
7588
7589         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
7590
7591         (TARGET_CALLEE_COPIES): Fix argument types.
7592
7593         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
7594
7595         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
7596
7597         (TARGET_FUNCTION_VALUE): Fix argument types.
7598
7599         (TARGET_RETURN_IN_MSB): Fix argument type.
7600
7601         (TARGET_RETURN_IN_MEMORY): Fix argument types.
7602
7603         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
7604
7605         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
7606
7607         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
7608         agree with return type.
7609
7610         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
7611
7612 2010-01-15  Jing Yu  <jingyu@google.com>
7613
7614         PR rtl-optimization/42691
7615         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
7616         a pseudo to a constant and are merged, and adjust comments.
7617
7618 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7619
7620         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
7621
7622 2010-01-15  Richard Guenther  <rguenther@suse.de>
7623
7624         PR middle-end/42739
7625         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
7626         labels of computed or non-local gotos to the destination.
7627         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
7628         landing pad label is the first label.
7629
7630 2010-01-15  Richard Guenther  <rguenther@suse.de>
7631
7632         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
7633
7634 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7635
7636         PR target/42747
7637         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
7638         to allow generation of the xssqrtdp instruction on power7.
7639         (sqrtdf2_fpr): Ditto.
7640
7641 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7642
7643         PR middle-end/42674
7644         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
7645         functions with noreturn attribute.
7646
7647         PR c++/42608
7648         * varasm.c (declare_weak): Add weak attribute to decl if it
7649         doesn't have one already.
7650         (assemble_external): Only add decls to weak_decls if they also
7651         have weak attribute.
7652
7653 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
7654
7655         * var-tracking.c (var_reg_delete): Don't delete the association
7656         between REGs and values or one-part variables if the register
7657         isn't clobbered.
7658
7659 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7660
7661         PR debug/42657
7662         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
7663         because its first operand is a non-localized variable.
7664
7665 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7666
7667         PR tree-optimization/42706
7668         * tree-sra.c (encountered_recursive_call): New variable.
7669         (encountered_unchangable_recursive_call): Likewise.
7670         (sra_initialize): Initialize both new variables.
7671         (callsite_has_enough_arguments_p): New function.
7672         (scan_function): Call decl and flags check only for IPA-SRA, check
7673         whether there is a recursive call and whether it has enough arguments.
7674         (all_callers_have_enough_arguments_p): New function.
7675         (convert_callers): Look for recursive calls only when
7676         encountered_recursive_call is set.
7677         (ipa_early_sra): Bail out either if
7678         !all_callers_have_enough_arguments_p or
7679         encountered_unchangable_recursive_call.
7680
7681 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7682
7683         * sel-sched.c: Add 2010 to copyright years.
7684         * sel-sched-ir.c: Likewise.
7685         * sel-sched-ir.h: Likewise.
7686
7687 2010-01-14  Martin Jambor  <mjambor@suse.cz>
7688
7689         PR tree-optimization/42714
7690         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
7691         constructors specially.
7692
7693 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7694
7695         * config/i386/drivers-i386.c (detect_caches_intel):
7696         Add l2sizekb parameter and fill in.
7697         (host_detect_local_cpu): Add l2sizekb, fill in.
7698         Add Atom small cache heuristic.
7699
7700 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7701
7702         * config/i386/drivers-i386.c (detect_caches_cpuid4):
7703         Add level3 parameter and fill in.
7704         (detect_caches_intel): Handle level3 cache.
7705
7706 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7707
7708         * config/i386/drivers-i386.c (host_detect_local_cpu):
7709         Fix core duo detection.
7710
7711 2010-01-14  Andi Kleen  <ak@linux.intel.com>
7712
7713         * config/i386/drivers-i386.c (host_detect_local_cpu):
7714         Fix Atom detection.
7715
7716 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7717
7718         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
7719         (rs6000_variable_issue_1): this.  Use...
7720         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
7721
7722 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7723
7724         * sel-sched-ir.c (sel_restore_other_notes): Rename to
7725         sel_restore_notes.  Update all callers.  Call reemit_notes
7726         for all insns.
7727
7728 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7729
7730         PR rtl-optimization/42246
7731         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
7732         loops.
7733
7734 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7735
7736         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
7737         all successors is the same as number of successors in current region.
7738
7739 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7740
7741         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
7742         to rename is not separable.  Otherwise check that its LHS is not NULL.
7743
7744 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7745
7746         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
7747
7748 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7749
7750         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
7751         available registers when failed to discover LHS register class.
7752         Fix indentation.  Update comment.
7753
7754 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7755             Alexander Monakov  <amonakov@ispras.ru>
7756
7757         PR rtl-optimization/42389
7758         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
7759         to can_issue_more.
7760         (advance_state_on_fence): Likewise.
7761         (sel_target_adjust_priority): Print debug output only when
7762         sched_verbose >= 4, not 2.
7763         (get_expr_cost): Do not issue all unique insns on the next cycle.
7764         (fill_insns): Initialize can_issue_more from the value saved
7765         with the fence.
7766         * sel-sched-ir.c (flist_add): New parameter issue_more.
7767         Init FENCE_ISSUE_MORE with it.
7768         (merge_fences): Likewise.
7769         (init_fences): Update call to flist_add.
7770         (add_to_fences, add_clean_fence_to_fences)
7771         (add_dirty_fence_to_fences): Likewise.
7772         (move_fence_to_fences): Update call to merge_fences.
7773         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
7774         sched groups.
7775         * sel-sched-ir.h (struct _fence): New field issue_more.
7776         (FENCE_ISSUE_MORE): New accessor macro.
7777
7778 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7779
7780         PR rtl-optimization/42388
7781         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
7782         that have no predecessors nor successors.  Do not call move_bb_info
7783         for empty blocks outside of current region.
7784
7785 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7786
7787         PR rtl-optimization/42294
7788         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
7789         * sel-sched.c (move_exprs_to_boundary): Transitively add all
7790         originators' originators.
7791
7792 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
7793
7794         PR rtl-optimization/39453
7795         PR rtl-optimization/42246
7796         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
7797         for pipelining_p.
7798         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
7799
7800 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
7801             Alexander Monakov  <amonakov@ispras.ru>
7802
7803         PR middle-end/42245
7804         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
7805         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
7806         argument.  Update all callers.
7807         (tidy_control_flow): ... and here.  Recompute topological order
7808         of basic blocks in region if necessary.
7809         (sel_redirect_edge_and_branch): Change return type.  Return true
7810         if topological order might have been invalidated.
7811         (purge_empty_blocks): Export and move from...
7812         * sel-sched.c (purge_empty_blocks): ... here.
7813         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
7814         (maybe_tidy_empty_bb): Delete prototype.
7815         (purge_empty_blocks): Declare.
7816
7817 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
7818
7819         PR rtl-optimization/42249
7820         * sel-sched.c (try_replace_dest_reg): When chosen register
7821         and original register is the same, do not bail out early, but
7822         still check all original insns for validity of replacing destination
7823         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
7824         in this case.
7825
7826 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7827
7828         PR c/42721
7829         Port from no-undefined-overflow branch:
7830         2009-03-09  Richard Guenther  <rguenther@suse.de>
7831
7832         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
7833
7834 2010-01-14  Richard Guenther  <rguenther@suse.de>
7835
7836         PR lto/42665
7837         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
7838
7839 2010-01-14  Ira Rosen  <irar@il.ibm.com>
7840
7841         PR tree-optimization/42709
7842         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
7843         as scalar type in creation of constant vector operand.
7844
7845 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7846
7847         PR testsuite/42414
7848         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
7849         (check-parallel-%): Match `testsuite' directory component only
7850         at the end.
7851
7852 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
7853
7854         PR translation/39521
7855         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
7856         strings with _().
7857
7858 2010-01-13  Richard Guenther  <rguenther@suse.de>
7859
7860         PR tree-optimization/42730
7861         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
7862         offset zero.
7863
7864 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
7865
7866         PR target/pr42542
7867         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
7868         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
7869         them signed.
7870
7871 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
7872
7873         * config/bfin/libgcc-bfin.ver: Regenerate based on current
7874         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
7875         ___umulsi3_highpart.
7876
7877         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
7878         rather than schedule_insns if the pass is enabled.
7879
7880 2010-01-13  Martin Jambor  <mjambor@suse.cz>
7881
7882         PR tree-optimization/42704
7883         * tree-sra.c (sra_modify_assign): Do not delete assignments to
7884         SSA_NAMEs.
7885
7886 2010-01-13  Martin Jambor  <mjambor@suse.cz>
7887
7888         PR tree-optimization/42703
7889         * tree-sra.c (analyze_access_subtree): Check that we can build a
7890         reference to the original data within the aggregate.
7891
7892 2010-01-13  Richard Guenther  <rguenther@suse.de>
7893
7894         PR tree-optimization/42705
7895         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
7896
7897 2010-01-13  Richard Guenther  <rguenther@suse.de>
7898
7899         PR middle-end/42716
7900         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
7901
7902 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7903
7904         PR debug/41371
7905         * var-tracking.c (values_to_unmark): New variable.
7906         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7907         values_to_unmark vector.  Moved body to...
7908         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7909         instead queue it into values_to_unmark vector.
7910         (vt_find_locations): Free values_to_unmark vector.
7911
7912 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
7913
7914         * config/s390/s390.c (override_options): Set
7915         default of max-pending-list-length to 256
7916
7917 2010-01-13  Richard Guenther  <rguenther@suse.de>
7918
7919         PR lto/42678
7920         * tree-pass.h (PROP_gimple_lcx): New.
7921         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
7922         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
7923         before the final cleanup_eh.
7924         (dump_properties): Dump PROP_gimple_lcx.
7925         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
7926         (tree_lower_complex_O0): Remove.
7927         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
7928         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
7929         tree_lower_complex, schedule TODO_update_ssa.
7930         * lto-streamer-out.c (output_function): Stream the functions
7931         properties.
7932         * lto-streamer-in.c (input_function): Likewise.
7933         (lto_read_body): Do not override them here.
7934
7935 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
7936
7937         PR c/42708
7938         * c-typeck.c (build_c_cast): Fold value cast to union type before
7939         wrapping it in a CONSTRUCTOR.
7940
7941 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7942
7943         PR rtl-optimization/42699
7944         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
7945         involved.
7946
7947 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7948
7949         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7950         SUBTARGET_WARN_UNUSED_SPEC): Move ...
7951         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7952         SUBTARGET_WARN_UNUSED_SPEC): ... here
7953         * config/mips/iris5.h (LIBGCC_SPEC): Define.
7954
7955 2010-01-12  Julian Brown  <julian@codesourcery.com>
7956
7957         * config/arm/neon-schedgen.ml (Utils): Don't try to
7958         open missing module.
7959         (find_with_result): New.
7960
7961 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7962
7963         PR debug/42662
7964         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
7965         sharing when canonicalizing ({lt,ge}u (plus a b) b).
7966
7967         PR tree-optimization/42645
7968         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
7969         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
7970         decl_map, set processing_debug_stmt to -1 and return name without
7971         any remapping.
7972
7973 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7974
7975         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
7976         binutils version, and reword target configuration description.
7977
7978 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
7979
7980         * config/avr/avr.h (LINKER_NAME): Remove.
7981
7982 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
7983
7984         PR target/42416
7985         * config/rs6000/rs6000.c (rs6000_override_options): On targets
7986         that support VSX, warn for -mno-altivec if vsx is not disabled,
7987         and disable vsx.
7988
7989 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
7990             Shujing Zhao  <pearly.zhao@oracle.com>
7991
7992         PR translation/42469
7993         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
7994         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
7995         character between option name and help text.
7996         * c.opt (imultilib): Likewise.
7997
7998 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
7999
8000         * lto-streamer-out.c (output_unreferenced_globals): Output static
8001         variables.
8002
8003 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
8004
8005         PR rtl-optimization/42621
8006         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
8007         optimizing for size.
8008         (duplicate_computed_gotos): Remove now-redundant check.
8009
8010 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
8011
8012         PR target/37454
8013         * configure.ac: Save and restore LDFLAGS and LIBS
8014         * configure: Regenerate.
8015
8016 2010-01-10  Richard Guenther  <rguenther@suse.de>
8017
8018         PR middle-end/42667
8019         * builtins.c (fold_builtin_strlen): Add type argument and
8020         convert the resulting length to it.
8021         (fold_builtin_1): Adjust.
8022
8023 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8024
8025         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
8026         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
8027         1 insn.
8028         (num_insns_constant_wide): Adjust for that change.
8029
8030 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8031
8032         PR debug/42631
8033         * web.c (union_defs): Add used argument, to combine uses of
8034         uninitialized regs.
8035         (entry_register): Adjust type and tests of used argument.
8036         (web_main): Widen used for new use.  Pass it to union_defs.
8037         * df.h (union_defs): Adjust prototype.
8038
8039 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8040
8041         PR debug/42630
8042         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
8043         uses in new incoming argument.  Free body.
8044         (reset_debug_uses_in_loop): New.
8045         (analyze_insn_to_expand_var): Call the latter if the former found
8046         anything.  Fix whitespace.  Reject invalid dest overlaps before
8047         going through all insns in the loop.
8048
8049 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8050
8051         PR debug/42629
8052         * haifa-sched.c (dying_use_p): Debug insns don't count.
8053
8054 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8055
8056         PR middle-end/42363
8057         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
8058         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
8059         (verify_gimple_call): Reject LHS in noreturn calls.
8060
8061 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8062
8063         PR debug/42604
8064         PR debug/42395
8065         * tree-vect-loop-manip.c (adjust_info): New type.
8066         (adjust_vec): New pointer to vector.
8067         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
8068         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
8069         (slpeel_update_phis_for_duplicate_loop): Use them.
8070         (slpeel_update_phi_nodes_for_guard1): Likewise.
8071         (slpeel_update_phi_nodes_for_guard2): Likewise.
8072         (slpeel_tree_peel_loop_to_edge): Likewise.
8073         (vect_update_ivs_after_vectorizer): Likewise.
8074
8075 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8076
8077         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
8078         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
8079
8080 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
8081
8082         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
8083         bogus uninitialized warning.
8084
8085 2010-01-09  Richard Guenther  <rguenther@suse.de>
8086
8087         PR middle-end/42512
8088         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
8089         the evolution is compatible with the initial condition.
8090
8091 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
8092
8093         * gcc.c (process_command): Update copyright notice dates.
8094         * gcov.c (print_version): Likewise.
8095         * gcov-dump.c (print_version): Likewise.
8096         * mips-tfile.c (main): Likewise.
8097         * mips-tdump.c (main): Likewise.
8098
8099 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
8100
8101         PR target/41885
8102         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
8103         (rotlhi3): Delete.
8104         (rotlhi3_8): Delete.
8105         (rotlsi3): Delete.
8106         (rotlsi3_8): Delete.
8107         (rotlsi3_16): Delete.
8108         (rotlsi3_24): Delete.
8109         (rotl<mode>3): New.
8110         (*rotw<mode>3): New.
8111         (*rotb<mode>3): New.
8112         * config/avr/avr.c (avr_rotate_bytes): New function.
8113         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
8114
8115 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
8116
8117         PR target/37454
8118         * configure.ac: Modify -rdynamic check.
8119         * configure: Regenerate.
8120
8121 2010-01-08  DJ Delorie  <dj@redhat.com>
8122
8123         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
8124         register popping order.
8125
8126 2010-01-08  Richard Guenther  <rguenther@suse.de>
8127
8128         PR lto/42528
8129         * c.opt (fsigned-char): Also let LTO handle this option.
8130         (funsigned-char): Likewise.
8131
8132 2010-01-07  Richard Guenther  <rguenther@suse.de>
8133
8134         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
8135         (gimple_op): Likewise.
8136         (gimple_op_ptr): Likewise.
8137         (gimple_assign_set_lhs): Remove gcc_assert.
8138         (gimple_assign_set_rhs1): Likewise.
8139         (gimple_assign_set_rhs2): Likewise.
8140         (gimple_call_set_lhs): Likewise.
8141         (gimple_call_set_fn): Likewise.
8142         (gimple_call_set_fndecl): Likewise.
8143         (gimple_call_fndecl): Likewise.
8144         (gimple_call_return_type): Likewise.
8145         (gimple_call_set_chain): Likewise.
8146         (gimple_call_num_args): Likewise.
8147         (gimple_call_set_arg): Likewise.
8148         (gimple_cond_set_code): Likewise.
8149         (gimple_cond_set_lhs): Likewise.
8150         (gimple_cond_set_rhs): Likewise.
8151         (gimple_cond_set_true_label): Likewise.
8152         (gimple_cond_set_false_label): Likewise.
8153         (gimple_label_set_label): Likewise.
8154         (gimple_goto_set_dest): Likewise.
8155         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
8156         (gimple_debug_bind_get_value): Likewise.
8157         (gimple_debug_bind_get_value_ptr): Likewise.
8158         (gimple_debug_bind_set_var): Likewise.
8159         (gimple_debug_bind_set_value): Likewise.
8160         (gimple_debug_bind_reset_value): Likewise.
8161         (gimple_debug_bind_has_value_p): Likewise.
8162         (gimple_return_retval_ptr): Remove gcc_assert.
8163         (gimple_return_retval): Likewise.
8164         (gimple_return_set_retval): Likewise.
8165         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
8166         (safe_referenced_var_iterator): Remove.
8167         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
8168         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
8169         (fill_referenced_var_vec): Remove.
8170         (first_readonly_imm_use): Remove redundant gcc_assert.
8171         (phi_arg_index_from_use): Combine gcc_asserts.
8172         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
8173         (first_imm_use_stmt): Remove redundant gcc_assert.
8174         * tree-cfg.c (verify_gimple_call): Verify function and chain
8175         operands.  Verify arguments.
8176         (verify_types_in_gimple_stmt): Verify condition code and labels.
8177
8178 2010-01-07  Richard Guenther  <rguenther@suse.de>
8179
8180         PR tree-optimization/42641
8181         * sese.c (rename_map_elt_info): Use the SSA name version, do
8182         not hash pointers.
8183
8184 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
8185
8186         PR tree-optimization/42625
8187         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
8188         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
8189
8190 2010-01-07  Duncan Sands  <baldrick@free.fr>
8191
8192         * Makefile.in (PLUGIN_HEADERS): Add version.h.
8193
8194 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
8195
8196         PR target/42511
8197         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
8198         note itself is not function_invariant_p.
8199
8200 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
8201
8202         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
8203         Do not add the DF_NOTE problem.
8204         * store-motion.c (execute_rtl_store_motion): Likewise.
8205
8206 2010-01-07  Martin Jambor  <mjambor@suse.cz>
8207
8208         PR tree-optimization/42157
8209         * tree-sra.c (compare_access_positions): Stabilize sort if both
8210         accesses have integer types, return zero immediately if they are the
8211         same.
8212
8213 2010-01-06  Richard Henderson  <rth@redhat.com>
8214
8215         PR middle-end/41883
8216         * haifa-sched.c (add_to_note_list): Merge into ...
8217         (concat_note_lists): ... here, and ...
8218         (unlink_other_notes, rm_other_notes): Merge into...
8219         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
8220         NOTE_INSN_EPILOGUE_BEG.
8221
8222 2010-01-06  Richard Guenther  <rguenther@suse.de>
8223
8224         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
8225         not inline regular functions into always-inline functions.
8226
8227 2010-01-06  Nick Clifton  <nickc@redhat.com>
8228
8229         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
8230         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
8231         used together.
8232         (OVERRIDE_OPTIONS): Delete.
8233         (OPTIMIZATION_OPTIONS): Define.
8234         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
8235         * config/rx/rx.c (rx_handle_option): Issue an error message if
8236         -mcpu=rx200 and -fpu are used together.
8237         (rx_set_optimization_options): New function.  Issue an error
8238         message if an optimization attribute attempts to reset the FPU/
8239         math optimization pairing.
8240         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
8241         * config/rx/rx.opt: Set the default to 32-bit doubles.
8242         * config/rx/t-rx: Add multilibs for -nofpu option.
8243         * doc/invoke.texi: Update documentation of RX options.
8244
8245 2010-01-06  Richard Guenther  <rguenther@suse.de>
8246
8247         * tree-ssa-pre.c (name_to_id): New global.
8248         (alloc_expression_id): Simplify SSA name handling.
8249         (lookup_expression_id): Likewise.
8250         (init_pre): Zero name_to_id.
8251         (fini_pre): Free it.
8252
8253 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
8254
8255         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
8256
8257 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
8258
8259         PR target/42542
8260         * config/i386/sse.md (smaxv2di3): New.
8261         (umaxv2di3): Likewise.
8262         (sminv2di3): Likewise.
8263         (uminv2di3): Likewise.
8264
8265 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
8266
8267         PR target/42564
8268         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
8269         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
8270         (legitimize_tls_address): Likewise.
8271         (sparc_tls_referenced_p): Likewise.
8272         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
8273         and adjust calls to legitimize_pic_address.
8274         (legitimate_constant_p) Use sparc_tls_referenced_p.
8275         (legitimate_pic_operand_p): Likewise.
8276         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
8277         (sparc_tls_symbol_ref_1): Delete.
8278         (sparc_tls_referenced_p): Make static, recognize specific patterns.
8279         (legitimize_tls_address): Make static, handle CONST patterns.
8280         (legitimize_pic_address): Make static, remove unused parameter and
8281         adjust recursive calls.
8282         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
8283         and adjust call to legitimize_pic_address.
8284         (sparc_output_mi_thunk): Likewise.
8285
8286 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
8287             H.J. Lu  <hongjiu.lu@intel.com>
8288
8289         PR target/42542
8290         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
8291         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
8292         operands to make them signed.
8293
8294         Revert:
8295         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8296
8297         PR target/42542
8298         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8299         GTU to GT for V4SI and V2DI.
8300
8301         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8302         (umin<mode>3): Removed.
8303         (uminv8hi3): New.
8304         (uminv4si3): Likewise.
8305
8306 2010-01-05  Martin Jambor  <mjambor@suse.cz>
8307
8308         PR tree-optimization/42462
8309         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
8310         current_function_decl to helper functions and macros.
8311
8312 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8313
8314         PR bootstrap/41771
8315         * flags.h: Don't include real.h.
8316         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
8317         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
8318         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
8319         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
8320         * dominance.c: Update copyright.
8321         * gimple.c (walk_gimple_op): Remove inline.
8322         * tree-ssa-reassoc.c: Include real.h.
8323         * Makefile.in (FLAGS_H): Remove $(REAL_H).
8324         (tree-ssa-reassoc.o): Depend on $(REAL_H).
8325
8326 2010-01-05  Nick Clifton  <nickc@redhat.com>
8327
8328         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
8329         register to push into the stack frame when the accumulator has to
8330         be saved during interrupts.
8331
8332 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
8333
8334         * doc/invoke.texi: Remove the documentation about option
8335         -Wunreachable-code.
8336         * common.opt (Wunreachable-code):  Preserved for backward
8337         compatibility.
8338         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
8339         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
8340         the backward compatibility flag section.
8341
8342 2010-01-05  Richard Guenther  <rguenther@suse.de>
8343
8344         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
8345
8346 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
8347
8348         PR other/42611
8349         * cfgexpand.c (expand_one_var): Diagnose too large variables.
8350
8351         PR tree-optimization/42508
8352         * tree-sra.c (convert_callers): Check for recursive call
8353         by comparing cgraph nodes instead of decls.
8354         (modify_function): Call ipa_modify_formal_parameters also
8355         on all same_body aliases.
8356
8357         * cgraphunit.c (cgraph_materialize_all_clones): Compare
8358         cgraph nodes when checking for same_body aliases.
8359
8360 2010-01-05  Richard Guenther  <rguenther@suse.de>
8361
8362         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
8363         allocation and lookup.
8364         (get_or_alloc_expr_for_constant): Likewise.
8365         (phi_translate): Sink allocation.
8366
8367 2010-01-04  Richard Guenther  <rguenther@suse.de>
8368
8369         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
8370         a new entry only if needed.
8371         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
8372         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
8373         hashtable lookup.
8374         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
8375         the result array.
8376         (phi_translate): Handle CONSTANTs early.
8377
8378 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8379
8380         PR tree-optimization/42398
8381         * tree-sra.c (struct access): Removed flag grp_different_types.
8382         (dump_access): Do not dump the removed flag.
8383         (sort_and_splice_var_accesses): Do not set the removed flag.
8384         (sra_modify_expr): Check for type compatibility directly.
8385
8386 2010-01-04  Martin Jambor  <mjambor@suse.cz>
8387
8388         PR tree-optimization/42366
8389         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
8390         edges with variable number of parameters.
8391         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
8392         flag instead of asserting it.
8393         (ipa_read_node_info): Read uses_analysis_done flag.
8394
8395 2010-01-04  Richard Guenther  <rguenther@suse.de>
8396
8397         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
8398         iterative_hash_* as intended.
8399         (vn_reference_compute_hash): Likewise.  Simplify hashing
8400         SSA names.
8401         (vn_reference_lookup_2): Likewise.
8402         (vn_nary_op_compute_hash): Likewise.
8403         (vn_phi_compute_hash): Likewise.
8404         (expressions_equal_p): Remove strange code.
8405         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
8406         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
8407         (bitmap_insert_into_set_1): Take value-id as parameter.
8408         (add_to_value): Pass it.
8409         (bitmap_insert_into_set): Likewise.
8410         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
8411
8412 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
8413
8414         PR driver/42442
8415         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
8416         (do_self_spec): For switches with SWITCH_IGNORE set set also
8417         SWITCH_IGNORE_PERMANENTLY.
8418         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
8419         of SWITCH_IGNORE.
8420
8421 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
8422
8423         * lto-streamer-out.c (output_unreferenced_globals): Output the full
8424         tree of an unreferenced global var.
8425
8426 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8427
8428         PR target/42542
8429         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
8430         GTU to GT for V4SI and V2DI.
8431
8432         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
8433         (umin<mode>3): Removed.
8434         (uminv8hi3): New.
8435         (uminv4si3): Likewise.
8436
8437 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
8438
8439         PR lto/42581
8440         * collect2.c (main): Turn on trace in collect2 if -v is passed
8441         to gcc with LTO.
8442
8443 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
8444
8445         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
8446         description of expression operand.
8447
8448 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
8449
8450         * configure.ac: Add install-html to target_list for Make-hooks.
8451         * configure: Regenerate.
8452         * fortran/Make-lang.in (F95_HTMLFILES): New.
8453         (fortran.html): Use it.
8454         (fortran.install-html): New.
8455         * Makefile.in (install-html): Add lang.install-html.
8456         * java/Make-lang.in (JAVA_HTMLFILES): New.
8457         (java.html): Use it.
8458         (java.install-html): New.
8459         * objc/Make-lang.in (objc.install-html): New.
8460         * objcp/Make-lang.in (obj-c++.install-html): New.
8461         * cp/Make-lang.in (c++.install-html): New.
8462         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
8463         * lto/Make-lang.in (lto.install-html): New.
8464
8465 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8466
8467         PR lto/42520
8468         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
8469
8470 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8471
8472         PR rtl-optimization/41862
8473         * store-motion.c (store_killed_in_insn, compute_store_table,
8474         remove_reachable_equiv_notes, replace_store_insn,
8475         build_store_vectors): Ignore all DEBUG_INSNs.
8476
8477 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8478
8479         PR lto/41564
8480         * common.opt: Add dumpdir.
8481
8482         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
8483         isn't specified.
8484         (option_map): Add --dumpdir.
8485
8486         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
8487
8488         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
8489
8490         * opts.c (decode_options): Try dump_dir_name first if
8491         dump_base_name isn't an absolute path.
8492         (common_handle_option): Handle OPT_dumpdir.
8493
8494         * toplev.c (dump_dir_name): New.
8495         (print_switch_values): Also ignore -dumpdir.
8496
8497         * toplev.h (dump_dir_name): New.
8498
8499 2010-01-03  Richard Guenther  <rguenther@suse.de>
8500
8501         PR tree-optimization/42589
8502         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
8503         double-word expansion of bswap32.
8504
8505 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
8506
8507         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
8508         with BLOCK_FOR_INSN.
8509         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
8510         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
8511         noce_process_if_block): Likewise.
8512         * gcse.c (compute_local_properties, insert_expr_in_table,
8513         insert_set_in_table, canon_list_insert, find_avail_set,
8514         pre_insert_copy_insn): Likewise.
8515
8516         * basic-block.h (BLOCK_NUM): Move from here...
8517         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
8518
8519 2010-01-03  Richard Guenther  <rguenther@suse.de>
8520
8521         PR tree-optimization/42438
8522         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
8523         contains_may_not_return_call flag.
8524         (BB_MAY_NOTRETURN): New.
8525         (valid_in_sets): Trapping nary operations are not valid
8526         in blocks that may not return.
8527         (insert_into_preds_of_block): Remove check for trapping expressions.
8528         (compute_avail): Compute also BB_MAY_NOTRETURN.
8529
8530 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
8531
8532         * doc/invoke.texi: Add 2010 to copyright years.
8533
8534 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
8535
8536         * config/sparc/sparc.c: Fix formatting nits.
8537
8538 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
8539             Alexander Monakov  <amonakov@ispras.ru>
8540
8541         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
8542
8543 2010-01-02  Richard Guenther  <rguenther@suse.de>
8544
8545         PR middle-end/42577
8546         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
8547         (simplify_switch_using_ranges): Mark to be removed edges
8548         as non-executable.
8549
8550 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8551
8552         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
8553
8554         * collect2.c (scan_libraries): Add missing argument in call to
8555         scan_prog_file.
8556
8557 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
8558
8559         PR target/42448
8560         * config/alpha/predicates.md (aligned_memory_operand): Return false
8561         for CQImode.
8562         (unaligned_memory_operand): Return true for CQImode.
8563         * config/alpha/alpha.c (get_aligned_mem): Assert that location
8564         doesn not cross aligned SImode word boundary.
8565
8566 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
8567
8568         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
8569         Remove.
8570         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
8571         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
8572
8573 2010-01-02  Richard Guenther  <rguenther@suse.de>
8574
8575         PR lto/41597
8576         * toplev.c (compile_file): Emit LTO marker properly.  Change
8577         it to __gnu_lto_v1.
8578         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
8579
8580 2010-01-01  Richard Guenther  <rguenther@suse.de>
8581
8582         PR debug/42455
8583         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
8584
8585 2010-01-01  Richard Guenther  <rguenther@suse.de>
8586
8587         PR c/42570
8588         * c-decl.c (grokdeclarator): For zero-size arrays force
8589         structural equality checks as layout_type does.
8590
8591 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8592
8593         * builtins.c: Update copyright to 2010.
8594
8595 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
8596
8597         PR lto/42531
8598         * lto-streamer-out.c (produce_asm): Revert the last change.
8599         (copy_function): Likewise.
8600
8601         * lto-streamer.c (lto_get_section_name): Skip any leading
8602         asterisk in name.
8603
8604 2010-01-01  Richard Guenther  <rguenther@suse.de>
8605
8606         PR middle-end/42559
8607         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
8608         for LABEL_DECLs.
8609
8610 \f
8611 Copyright (C) 2010 Free Software Foundation, Inc.
8612
8613 Copying and distribution of this file, with or without modification,
8614 are permitted in any medium without royalty provided the copyright
8615 notice and this notice are preserved.