OSDN Git Service

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