OSDN Git Service

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