OSDN Git Service

7be3f1ab052cc731d18fd49971d3557f646fa950
[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.