OSDN Git Service

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