OSDN Git Service

2009-06-21 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-21  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/38729
4         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
5         to loops with a single exit if -fno-expensive-optimizations.
6
7 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
8
9         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
10         (dataflow_set): Change vars type from htab_t to shared_hash.
11         (shared_hash_pool, empty_shared_hash): New variables.
12         (vars_clear): Removed.
13         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
14         shared_hash_find_slot_unshare, shared_hash_find_slot,
15         shared_hash_find_slot_noinsert, shared_hash_find): New
16         static inlines.
17         (shared_hash_unshare, shared_hash_destroy): New functions.
18         (unshare_variable): Unshare set->vars if shared, use
19         shared_hash_htab.
20         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
21         (get_init_value, find_src_set_src, dump_dataflow_set,
22         clobber_variable_part, emit_notes_for_differences): Use
23         shared_hash_htab.
24         (dataflow_set_init): Remove second argument, set vars to
25         empty_shared_hash instead of creating a new htab.
26         (dataflow_set_clear): Call shared_hash_destroy and set vars
27         to empty_shared_hash instead of calling vars_clear.
28         (dataflow_set_copy): Don't call vars_copy, instead just share
29         the src htab with dst.
30         (variable_union): Use shared_hash_*, use initially NO_INSERT
31         lookup if set->vars is shared.  Don't keep slot cleared before
32         calling unshare_variable.  Unshare set->vars if needed.
33         Even ->refcount == 1 vars must be unshared if set->vars is shared
34         and var needs to be modified.
35         (variable_canonicalize): New function.
36         (dataflow_set_union): If dst->vars is empty, just share src->vars
37         with dst->vars and traverse with variable_canonicalize to canonicalize
38         and unshare what is needed.
39         (dataflow_set_different): If old_set and new_set use the same shared
40         htab, they aren't different.  If number of htab elements is different,
41         htabs are different.  Use shared_hash_*.
42         (dataflow_set_destroy): Call shared_hash_destroy instead of
43         htab_delete.
44         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
45         second argument to dataflow_set_init.
46         (vt_initialize): Likewise.  Initialize shared_hash_pool and
47         empty_shared_hash, move bb in/out initialization afterwards.
48         Use variable_htab_free instead of NULL as changed_variables del hook.
49         (variable_was_changed): Change type of second argument to pointer to
50         dataflow_set.  When inserting var into changed_variables, bump
51         refcount.  Unshare set->vars if set is shared htab and slot needs to
52         be cleared.
53         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
54         lookup if set->vars is shared.  Unshare set->vars if needed.
55         Even ->refcount == 1 vars must be unshared if set->vars is shared
56         and var needs to be modified.  Adjust variable_was_changed caller.
57         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
58         vars must be unshared if set->vars is shared and var needs to be
59         modified.  Adjust variable_was_changed caller.
60         (emit_note_insn_var_location): Don't pool_free var.
61         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
62         instead of 1.
63         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
64         free_alloc_pool on shared_hash_pool.
65
66 2009-06-20  Anthony Green  <green@moxielogic.com>
67
68         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
69         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
70
71 2009-06-20  Richard Guenther  <rguenther@suse.de>
72
73         * tree-ssa-structalias.c (find_func_aliases): For memset use
74         a constraint from NULL if we memset to zero.
75         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
76         we explicitly handle that do not read from memory.
77         (call_may_clobber_ref_p_1): Properly handle builtins that may
78         set errno.
79
80 2009-06-20  Richard Guenther  <rguenther@suse.de>
81
82         PR tree-optimization/40495
83         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
84         (new_scalar_tmp_constraint_exp): New function.
85         (process_constraint): Do not create temporary decls.
86         (process_all_all_constraints): Likewise.
87         (handle_const_call): Likewise.
88         (create_function_info_for): Do not set decl.
89
90 2009-06-19  Ian Lance Taylor  <iant@google.com>
91
92         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
93         (rs6000_attribute_table): Make static; move before use.
94
95 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
96
97         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
98         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
99         Propagate the TREE_READONLY flag without overwriting it.
100         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
101         Propagate the TREE_READONLY flag onto the result.
102         (process_call_operands): Move around.  Use correct constant value.
103
104 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
105
106         PR target/40482
107         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
108         32 bits.
109         * config/arm/arm.md: Likewise.
110
111 2009-06-19  Ian Lance Taylor  <ian@airs.com>
112
113         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
114         to GIMPLE_ERROR_MARK.
115
116         * c-typeck.c (build_conditional_expr): Add op1_original_type and
117         op2_original_type parameters.  Warn about using different enum
118         types.
119         * c-parser.c (c_parser_conditional_expression): Pass original
120         types to build_conditional_expr.
121         * c-tree.h (build_conditional_expr): Update declaration.
122
123 2009-06-19  Ian Lance Taylor  <iant@google.com>
124
125         * config/i386/i386.c (ix86_function_specific_save): Test that
126         fields match values, rather than testing the values are in a
127         certain range.
128
129 2009-06-19  Richard Guenther  <rguenther@suse.de>
130
131         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
132         ADDR_EXPR pointers.
133         (ptr_derefs_may_alias_p): Likewise.
134         (ptr_deref_may_alias_ref_p_1): New function.
135         (ptr_deref_may_alias_ref_p): Likewise.
136         (ref_maybe_used_by_call_p_1): Handle builtins that are not
137         covered by looking at the ESCAPED solution.
138         (call_may_clobber_ref_p_1): Likewise.
139         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
140         Handle NULL_TREE offset.  Do not produce redundant constraints.
141         (process_all_all_constraints): New helper function.
142         (do_structure_copy): Use it.
143         (handle_lhs_call): Likewise.
144         (find_func_aliases): Handle some builtins with pointer arguments
145         and/or return values explicitly.
146
147 2009-06-19  Ian Lance Taylor  <iant@google.com>
148
149         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
150
151 2009-06-19  Ian Lance Taylor  <iant@google.com>
152
153         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
154
155 2009-06-19  Ian Lance Taylor  <iant@google.com>
156
157         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
158         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
159         version.
160
161         * c-decl.c (finish_decl): If -Wc++-compat, warn about
162         uninitialized const.
163
164 2009-06-19  Ian Lance Taylor  <iant@google.com>
165
166         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
167         all uses.
168
169         * c-decl.c (in_struct, struct_types): Remove.
170         (struct c_binding): Add in_struct field.
171         (c_binding_ptr): Define type, along with VEC.
172         (struct c_struct_parse_info): Define.
173         (struct_parse_info): New static variable.
174         (bind): Initialize in_struct field.
175         (start_struct): Remove enclosing_in_struct and
176         enclosing_struct_types parameters.  Add
177         enclosing_struct_parse_info parameter.  Change all callers.  Set
178         struct_parse_info rather than in_struct and struct_types.
179         (grokfield): If -Wc++-compat and there is a symbol binding for the
180         field name, set the in_struct flag and push it on the
181         struct_parse_info->fields vector.
182         (warn_cxx_compat_finish_struct): New static function.
183         (finish_struct): Remove enclosing_in_struct and
184         enclosing_struct_types parameters.  Add
185         enclosing_struct_parse_info parameter.  Change all callers.  Don't
186         set C_TYPE_DEFINED_IN_STRUCT here.  Call
187         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
188         parameter.  Only push on struct_types if warn_cxx_compat.
189         (finish_enum): Only push on struct_types if warn_cxx_compat.
190         (declspecs_add_type): Add loc parameter.  Change all callers.
191         Change all error calls to error_at.  Pass loc, not input_location,
192         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
193         defined in a struct.  If -Wc++-compat and parsing a struct, record
194         that a typedef name was used.
195         * c-parser.c (c_parser_declspecs): Get location to pass to
196         declspecs_add_type.
197         (c_parser_struct_or_union_specifier): Update calls to start_struct
198         and finish_struct.
199         * c-tree.h (struct c_struct_parse_info): Declare.
200         (finish_struct, start_struct): Update declarations.
201         (declspecs_add_type): Update declaration.
202
203 2009-06-19  Ian Lance Taylor  <iant@google.com>
204
205         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
206         variable with an anonymous type.
207
208 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
209
210         * see.c: Remove for real.
211
212 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
213
214         * optabs.h (enum optab_index): Add new OTI_significand.
215         (significand_optab): Define corresponding macro.
216         * optabs.c (init_optabs): Initialize significand_optab.
217         * genopinit.c (optabs): Implement significand_optab using
218         significand?f2 patterns.
219         * builtins.c (expand_builtin_mathfn): Handle
220         BUILT_IN_SIGNIFICAND{,F,L}.
221         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
222         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
223
224         * config/i386/i386.md (significandxf2, significand<mode>2): New
225         expanders to implement significandf, significand and significandl
226         built-ins as inline x87 intrinsics.
227
228 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
229
230         * config/avr/avr.c (avr_override_options): Remove setting value of
231         PARAM_INLINE_CALL_COST.
232
233 2009-06-18  Richard Henderson  <rth@redhat.com>
234
235         PR 40488
236         * tree-pass.h (TDF_ASMNAME): New.
237         * tree-dump.c (dump_options): Add asmname.
238         * doc/invoke.texi: Document it.
239
240         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
241         (dump_decl_name): ...here.
242         (dump_function_name): New flags arg; mind TDF_ASMNAME.
243         (dump_generic_node): Update dump_function_name calls.
244         (print_call_name): New flags arg; update all dump calls.
245         * diagnostic.h (print_call_name): Update.
246         * gimple-pretty-print.c (dump_gimple_call): Update.
247
248 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
249
250         PR target/40470
251         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
252
253 2009-06-18  Diego Novillo  <dnovillo@google.com>
254
255         * doc/plugins.texi: Document plugin_is_GPL_compatible.
256         * plugin.c (str_license): Declare.
257         (try_init_one_plugin): Assert that the symbol
258         'plugin_is_GPL_compatible' exists.
259
260 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
261
262         * see.c: Remove.
263         * Makefile.in (OBJS-common): Remove see.o.
264         (see.o): Remove.
265         * common.opt (fsee): Mark as preserved for backward compatibility.
266         * opts.c (common_handle_option): Add OPT_fsee to the backward 
267         compatibility section.
268         * passes.c (init_optimization_passes, pass_see): Remove pass.
269         * timevar.def (TV_SEE): Remove.
270         * tree-pass.h (pass_see): Remove declaration.
271         * doc/invoke.texi (-fsee): Remove documentation.
272         
273 2009-06-18  Martin Jambor  <mjambor@suse.cz>
274
275         * tree-sra.c: Include statistics.h
276         (sra_stats): New variable.
277         (sra_initialize): Clear sra_stats.
278         (create_access_replacement): Increment sra_stats.replacements.
279         (get_access_replacement): Do not return twice.
280         (analyze_all_variable_accesses): Increment statistics counter by the
281         number of scalarized aggregates.
282         (generate_subtree_copies): Increment sra_stats.subtree_copies.
283         (sra_modify_expr): Increment sra_stats.exprs.
284         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
285         (sra_modify_assign): Increment sra_stats.exprs,
286         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
287         (perform_intra_sra): Update statistics counters.
288         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
289
290 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
291
292         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
293         (arm_scalar_mode_supported_p): New function.
294
295 2009-06-18  Paul Brook  <paul@codesourcery.com>
296             Sandra Loosemore  <sandra@codesourcery.com>
297
298         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
299         (__extendhfsf2, __truncsfhf2): Define.
300         * config/arm/fp16.c: New file.
301         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
302         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
303
304 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
305
306         * doc/extend.texi (Half-Precision): New section.
307         * doc/invoke.texi (Option Summary): List -mfp16-format.
308         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
309         * config/arm/arm.opt (mfp16-format=): New.
310         * config/arm/arm.c: Include intl.h.
311         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
312         (TARGET_INVALID_RETURN_TYPE): Redefine.
313         (TARGET_PROMOTED_TYPE): Redefine.
314         (TARGET_CONVERT_TO_TYPE): Redefine.
315         (arm_fp16_format): Define.
316         (all_fpus): Add entry for neon-fp16.
317         (fp_model_for_fpu): Likewise.
318         (struct fp16_format): Declare.
319         (all_fp16_formats): Define.
320         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
321         functions.
322         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
323         and no ldrh.
324         (arm_legitimate_index_p): Treat HFmode like HImode.
325         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
326         (coproc_secondary_reload_class): Special-case HFmode.
327         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
328         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
329         (arm_init_fp16_builtins): New.
330         (arm_init_builtins): Call it.
331         (arm_invalid_parameter_type): New.
332         (arm_invalid_return_type): New.
333         (arm_promoted_type): New.
334         (arm_convert_to_type).
335         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
336         format.
337         (arm_emit_fp16_const): New function.
338         (arm_mangle_type): Mangle __fp16 as "Dh".
339         * config/arm/arm.h (TARGET_VFPD32): Make it know about
340         FPUTYPE_NEON_FP16.
341         (TARGET_NEON_FP16): New.
342         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
343         (enum fputype): Add FPUTYPE_NEON_FP16.
344         (enum arm_fp16_format_type): Declare.
345         (arm_fp16_format): Declare.
346         (LARGEST_EXPONENT_IS_NORMAL): Define.
347         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
348         * config/arm/arm-modes.def (HFmode): Define.
349         * config/arm/vfp.md: (*movhf_vfp): New.
350         (extendhfsf2): New.
351         (truncsfhf2): New.
352         * config/arm/arm.md: (fpu): Add neon_fp16.
353         (floatsihf2, floatdihf2): New.
354         (fix_trunchfsi2, fix_trunchfdi2): New.
355         (truncdfhf2): New.
356         (extendhfdf2): New.
357         (movhf): New.
358         (*arm32_movhf): New.
359         (*thumb1_movhf): New.
360         (consttable_2): Add check for HFmode constants.
361         (consttable_4): Handle HFmode constants.
362
363 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
364
365         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
366
367 2009-06-17  Olivier Hainque  <hainque@adacore.com>
368
369         * collect2.c (main): Use CONST_CAST2 to perform char ** to
370         const char ** conversion in AIX specific section.
371         
372 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
373
374         * config/i386/i386.c (ix86_special_builtin_type): Remove
375         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
376         (bdesc_special_args): Updated.
377         (ix86_init_mmx_sse_builtins): Likewise.
378         (ix86_expand_special_args_builtin): Likewise.
379
380 2009-06-17  Richard Henderson  <rth@redhat.com>
381
382         * tree-pretty-print.c (maybe_dump_asm_name): New.
383         (dump_decl_name): Use it.
384         (PRINT_FUNCTION_NAME): Merge into...
385         (dump_function_name): ... here.  Use maybe_dump_asm_name.
386
387 2009-06-17  Cary Coutant  <ccoutant@google.com>
388
389         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
390         Change caller.
391         * debug.c (struct gcc_debug_hooks): Change placeholder for
392         source_line hook.
393         (debug_nothing_int_charstar_int): Replaced by...
394         (debug_nothing_int_charstar_int_bool): ...this.
395         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
396         source_line prototype.
397         (debug_nothing_int_charstar_int): Replaced by...
398         (debug_nothing_int_charstar_int_bool): ...this.
399         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
400         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
401         Output is_stmt operand when necessary.
402         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
403         (notice_source_line): Add is_stmt parameter.
404         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
405         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
406         Change callers.
407         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
408         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
409
410 2009-06-17  Ian Lance Taylor  <iant@google.com>
411
412         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
413         Change all uses.
414         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
415         call uses.
416
417 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
418
419         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
420         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
421         tree_strip_sign_nop_conversions and
422         tree_ssa_strip_useless_type_conversions rather than stripping
423         the operations here.
424         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
425         Declare them.
426         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
427         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
428         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
429         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
430         functions.
431
432 2009-06-17  Michael Eager  <eager@eagercon.com>
433
434         * config/rs6000/constraints.md (register_constraint "d"): New.
435         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
436         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
437         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
438         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
439         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
440         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
441         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
442         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
443         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
444         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
445         __fctiwz): Same.
446         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
447         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
448         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
449         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
450         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
451         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
452         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
453         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
454         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
455         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
456         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
457         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
458         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
459         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
460
461 2009-06-16  Ian Lance Taylor  <iant@google.com>
462
463         * profile.c (total_num_never_executed): Don't define.
464         (compute_branch_probabilities): Don't count or print
465         num_never_executed.
466         (init_branch_prob): Don't set total_num_never_executed.
467         (end_branch_prob): Don't print total_num_never_executed.
468
469 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
470
471         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
472
473 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
474
475         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
476         (nabstd2_fpr): Same.
477
478 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
479
480         * expr.c (expand_assignment): Change complex type check.
481
482 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
483
484         * doc/plugins.texi (Building GCC plugins): Added new section. 
485
486 2009-06-17  Ian Lance Taylor  <iant@google.com>
487
488         * c-pch.c (get_ident): Don't set size of templ array.
489         (pch_init): Don't set size of partial_pch array.
490
491         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
492         string constant to intialize an array whose size is the length of
493         the string.
494
495 2009-06-17  Richard Guenther  <rguenther@suse.de>
496
497         PR tree-optimization/40389
498         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
499         to addressable types.
500         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
501
502 2009-06-17  Richard Guenther  <rguenther@suse.de>
503
504         PR middle-end/40460
505         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
506         if there is no evolution of left in the loop bail out.
507         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
508         chrec_fold_multiply.
509
510 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
511             Janis Johnson  <janis187@us.ibm.com>
512
513         PR target/39254
514         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
515         for the symbol ref of a constant that is the source of a move
516         - nor for any other not-obvious-label-ref constants.
517
518 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
519
520         * plugin.c (position_pass): Skip newly inserted pass during list
521         traversal to avoid repeated insertion.
522
523 2009-06-16  Ian Lance Taylor  <iant@google.com>
524
525         * vec.h (VEC_stack_alloc): Define different version if
526         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
527         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
528         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
529         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
530
531 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
532
533         * config.gcc (extra_headers): Add ia32intrin.h for x86.
534
535         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
536         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
537         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
538         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
539         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
540         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
541         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
542         (bdesc_special_args): Add __builtin_ia32_rdtsc and
543         __builtin_ia32_rdtscp.
544         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
545         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
546         and __builtin_ia32_rorhi.
547         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
548         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
549         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
550         (ix86_expand_args_builtin): Likewise.
551         (ix86_expand_special_args_builtin): Likewise.
552
553         * config/i386/i386.md (UNSPECV_RDTSCP): New.
554         (UNSPECV_RDTSC): Likewise.
555         (UNSPECV_RDPMC): Likewise.
556         (*bsr): Renamed to ...
557         (bsr): This
558         (*bsr_rex64): Renamed to ...
559         (bsr_rex64): This.
560         (rdpmc): New.
561         (*rdpmc): Likewise.
562         (*rdpmc_rex64): Likewise.
563         (rdtsc): Likewise.
564         (*rdtsc): Likewise.
565         (*rdtsc_rex64): Likewise.
566         (rdtscp): Likewise.
567         (*rdtscp): Likewise.
568         (*rdtscp_rex64): Likewise.
569
570         * config/i386/ia32intrin.h: New.
571
572         * config/i386/x86intrin.h: Include <ia32intrin.h>.
573
574 2009-06-16  Ian Lance Taylor  <iant@google.com>
575
576         * ira-build.c (copy_info_to_removed_store_destinations):
577         Initialize parent_a.
578
579 2009-06-16  Ian Lance Taylor  <iant@google.com>
580
581         * c-decl.c (grokdeclarator): Change size_varies to bool.
582
583 2009-06-16  Ian Lance Taylor  <iant@google.com>
584
585         * sel-sched.c: Make forward declarations of move_op_hooks and
586         fur_hooks explicitly extern.
587
588 2009-06-16  Ian Lance Taylor  <iant@google.com>
589
590         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
591         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
592
593 2009-06-16  Ian Lance Taylor  <iant@google.com>
594
595         * resource.c (mark_referenced_resources): Change
596         include_delayed_effects parameter to bool.  Change all callers.
597         (mark_end_of_function_resources): Likewise.
598         * reorg.c (insn_references_resource_p): Likewise.
599         (insn_sets_resource_p): Likewise.
600         * resource.h (mark_referenced_resources): Update declaration.
601         (mark_end_of_function_resources): Update declaration.
602
603 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
604
605         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
606
607 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
608
609         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
610         GCC can bootstrap on AIX with GNU Binutils 2.20.
611
612 2009-06-16  Ian Lance Taylor  <iant@google.com>
613
614         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
615
616 2009-06-16  Ian Lance Taylor  <iant@google.com>
617
618         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
619         inline, not extern inline.
620         (exact_log2): Likewise.
621         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
622         test CLZ_HWI.
623         (exact_log2): Likewise, but don't test CTZ_HWI.
624
625 2009-06-16  Ian Lance Taylor  <iant@google.com>
626
627         * bitmap.c (bitmap_clear): Don't declare as inline.
628         * gimple.c (gimplify_assign): Likewise.
629         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
630         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
631         (sched_scan_info): Remove duplicate definition.
632
633 2009-06-16  Ian Lance Taylor  <iant@google.com>
634
635         * c-common.c (skip_evaluation): Don't define.
636         (c_inhibit_evaluation_warnings): Define global variable.
637         (overflow_warning): Check c_inhibit_evaluation_warnings rather
638         than skip_evaluation.
639         (convert_and_check, warn_for_div_by_zero): Likewise.
640         * c-common.h (skip_evaluation): Don't declare.
641         (c_inhibit_evaluation_warnings): Declare.
642         * c-parser.c (c_parser_typeof_specifier): Set
643         c_inhibit_evaluation_warnings rather than skip_evaluation.
644         (c_parser_conditional_expression): Likewise.
645         (c_parser_binary_expression): Likewise.
646         (c_parser_sizeof_expression): Likewise.
647         (c_parser_alignof_expression): Likewise.
648         * c-typeck.c (build_indirect_ref): Check
649         c_inhibit_evaluation_warnings rather than skip_evaluation.
650         (build_conditional_expr, build_binary_op): Likewise.
651
652 2009-06-16  Richard Guenther  <rguenther@suse.de>
653
654         * tree-ssa-alias.c (is_escape_site): Remove.
655         * tree-ssa-alias.h (enum escape_type): Remove.
656         (is_escape_site): Likewise.
657         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
658         via casts and asms without deferring to is_escape_site.
659
660 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
661
662         PR middle-end/40446
663         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
664         use gen_lowpart if op0 has complex mode.
665
666 2009-06-16  Richard Guenther  <rguenther@suse.de>
667
668         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
669         variables add them to ESCAPED.
670         (find_func_aliases): Do not make all indirectly stored values escaped.
671
672 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
673
674         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
675         make_decl_one_only.
676
677 2009-06-16  Martin Jambor  <mjambor@suse.cz>
678
679         PR tree-optimization/40432
680         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
681         check whether we need to force gimple register operand.
682
683 2009-06-16  Martin Jambor  <mjambor@suse.cz>
684
685         PR tree-optimization/40413
686         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
687         build_ref_for_offset.
688         (propagate_subacesses_accross_link): Fix a typo in a comment.
689
690 2009-06-16  Ira Rosen  <irar@il.ibm.com>
691
692         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
693         with additional parameter.
694         * tree-vectorizer.h (enum vect_def_type): Add new value
695         vect_nested_cycle.
696         (enum vect_relevant): Add comments.
697         (vect_is_simple_reduction): Add new argument.
698         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
699         Detect nested cycles.
700         (vect_is_simple_reduction): Update documentation, add an argument to
701         distinguish inner-loop reduction from nested cycle, detect nested
702         cycles, fix printings and indentation, don't swap operands in case
703         of nested cycle.
704         (get_initial_def_for_reduction): Handle subtraction.
705         (vect_create_epilog_for_reduction): Add new argument to specify
706         reduction variable.
707         (vect_finalize_reduction): Handle subtraction, fix comments.
708         (vectorizable_reduction): Handle nested cycles. In case of nested
709         cycle keep track of the reduction variable position. Call 
710         vect_is_simple_reduction with additional parameter. Use original 
711         statement code in reduction epilogue for nested cycle. Call
712         vect_create_epilog_for_reduction with additional parameter.
713         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
714         inner-loop vectorization.
715         (vect_recog_widen_sum_pattern): Likewise.
716         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
717         and reductions.
718         (vect_mark_stmts_to_be_vectorized): Likewise.
719         (vect_get_vec_def_for_operand): Handle nested cycles.
720
721 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
722
723         * doc/invoke.texi (Debugging Options): Fix option index entries
724         for -fdump-statistics, -frandom-seed add entries for
725         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
726         (FRV Options): Fix entries for -mTLS, -mtls.
727         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
728         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
729         (M68hc1x Options): Fix @itemx for -mnominmax.
730         (MCore Options): Fix entry for -mno-lsim.
731         (MMIX Options): Fix entry for -mabi=mmixware.
732         (PDP-11 Options): Fix entry for -mbcopy-builtin.
733
734 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
735
736         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
737         Mention the plugin mode of gengtype.
738         * doc/gty.texi (Source Files Containing Type Information): Likewise.
739         * gengtype.c: Updated copyright.
740         (plugin_files, nb_plugin_files) Added new static variables.
741         (measure_input_list) Care about plugin_files.
742         (write_rtx_next): Added early return in plugin mode.
743         (create_file): Updated copyright year in generated file. Added
744         asserts.
745         (oprintf): Added early return if NULL outf.
746         (get_output_file_with_visibility): Care of plugin_files.
747         (get_output_file_name): May return null.
748         (write_local): Added early return.
749         (put_mangled_filename): Ditto.
750         (finish_root_table): Added check for base_files.
751         (write_roots): Care about null when plugins.
752         (main): Added plugin mode.
753
754 2009-06-15  Ian Lance Taylor  <iant@google.com>
755
756         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
757         * gcov.c (read_count_file): Add braces around variables declared
758         before label.
759
760         * c.opt (Wjump-misses-init): New warning.
761         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
762         -Wall and -Wc++-compat if not already set.
763         (c_common_post_options): Clear warn_jump_misses_init if it was not
764         set.
765         * c-decl.c (struct c_binding): Change type field to a union with
766         new label field.  Make it the first field in the struct.  Update
767         references to type to use u.type instead.
768         (struct c_spot_bindings): Define.
769         (struct c_goto_bindings): Define.
770         (c_goto_bindings_p): Define, along with VECs.
771         (struct c_label_vars): Define.
772         (struct c_scope): Add has_label_bindings field.
773         (bind_label, set_spot_bindings): New static functions.
774         (decl_jump_unsafe, update_spot_bindings): New static functions.
775         (update_label_decls): New static function.
776         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
777         Update binding u.label field to shadowed field.
778         (c_binding_start_stmt_expr): New function.
779         (c_binding_end_stmt_expr): New function.
780         (pushdecl): Don't call c_begin_vm_scope.
781         (make_label): Add defining and p_label_vars parameters.  Change
782         all callers.
783         (lookup_label): Correct test for whether a label has not yet been
784         defined.  Call bind_label rather than bind.
785         (warn_about_goto): New static function.
786         (lookup_label_for_goto): New function.
787         (declare_label): Call bind_label rather than bind.
788         (check_earlier_gotos): New static function.
789         (define_label): Don't give errors about jumping into statement
790         expressions or scopes of variably modified types.  Call
791         set_spot_bindings and check_earlier_gotos.  Call bind_label
792         instead of bind.  Don't set label_context_stack_se or
793         label_context_stack_vm.
794         (c_get_switch_bindings): New function.
795         (c_release_switch_bindings): New function.
796         (c_check_switch_jump_warnings): New function.
797         (start_function): Don't set label_context_stack_se or
798         label_context_stack_vm.
799         (finish_function): Likewise.
800         * c-typeck.c (label_context_stack_se): Don't define.
801         (label_context_stack_vm): Don't define.
802         (c_finish_goto_label): Call lookup_label_for_goto rather than
803         lookup_label.  Don't give errors about jumping into a statement
804         expression or the scope of a variably modified type.  Don't set
805         label_context_stack_se or label_context_stack_vm.
806         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
807         fields.  Add bindings field.
808         (c_start_case): Don't set deleted fields.  Set bindings field.
809         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
810         or blocked_vm.  Call c_check_switch_jump_warnings.
811         (c_finish_case): Don't test blocked_stmt_expr field.  Call
812         c_release_switch_bindings.
813         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
814         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
815         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
816         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
817         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
818         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
819         (c_begin_vm_scope, c_end_vm_scope): Don't define.
820         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
821         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
822         (C_DECL_UNJUMPABLE_VM): Don't define.
823         (C_DECL_UNDEFINABLE_VM): Don't define.
824         (struct c_label_list): Don't define.
825         (struct c_label_context_se): Don't define.
826         (struct c_label_context_vm): Don't define.
827         (struct c_spot_bindings): Declare.
828         (c_bindings_start_stmt_expr): Declare.
829         (c_bindings_end_stmt_expr): Declare.
830         (lookup_label_for_goto): Declare.
831         (c_get_switch_bindings, c_release_switch_bindings): Declare.
832         (c_check_switch_jump_warnings): Declare.
833         (label_context_stack_se, label_context_stack_vm): Don't declare.
834         (c_finish_goto_label): Update declaration.
835         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
836         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
837         (Warning Options): Document -Wjump-misses-init.
838
839 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
840
841         * tree-object-size.c (addr_object_size): Fix a pasto in the last
842         change.
843
844 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
845
846         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
847
848 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
849
850         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
851
852 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
853
854         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
855
856 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
857
858         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
859         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
860         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
861         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
862         * dwarf2asm.c (dw2_force_const_mem): Update call to
863         make_decl_one_only.
864         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
865         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
866         * langhooks.c (lhd_comdat_group): Remove.
867         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
868         * tree.h (DECL_COMDAT_GROUP): New.
869         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
870         (tree_decl_with_vis): Add comdat_group. Remove one_only.
871         (make_decl_one_only): Change signature.
872         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
873         make_decl_one_only.
874         (make_decl_one_only): Change signature.
875         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
876
877 2009-06-15  Richard Guenther  <rguenther@suse.de>
878
879         PR middle-end/40439
880         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
881
882 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
883
884         * tree-ssa-math-opts.c: Remove extra divide.
885
886 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
887
888         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
889
890 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
891
892         * passes.c: Add bswap pass.
893         * tree-pass.h: Add pass_optimize_bswap declaration.
894         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
895         Include rtl.h, expr.h and optabs.h for optab_handler check.
896         (struct symbolic_number, pass_optimize_bswap): New definition.
897         (do_shift_rotate, verify_symbolic_number_p): New functions.
898         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
899         (gate_optimize_bswap): New function.
900         * tree.c (widest_int_cst_value): New function.
901         * tree.h (widest_int_cst_value): Prototype added.
902
903 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
904
905         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
906         REG_EQUAL/REG_EQUIV notes.
907
908 2009-06-14  Richard Guenther  <rguenther@suse.de>
909
910         PR middle-end/40389
911         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
912         has its address taken if NRV was applied and it is addressable.
913         * tree-ssa-structalias.c (get_constraint_for_address_of): New
914         function split out from ...
915         (get_constraint_for_1): ... here.
916         (handle_rhs_call): Use it to mark the return slot escaped if
917         it is addressable and NRV was applied.
918
919 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
920
921         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
922         Change first argument type to location_t.
923         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
924         Do not set input_location.
925         Use loc instead of input_location throughout.
926
927 2009-06-13  Richard Guenther  <rguenther@suse.de>
928
929         PR tree-optimization/40421
930         * tree-predcom.c (should_unroll_loop_p): Remove.
931         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
932
933 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
934
935         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
936         Add location argument.
937
938 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
939
940         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
941         build_decl.
942         * config/s390/s390.c (s390_build_builtin_va_list): Same.
943         (s390_gimplify_va_arg): Pass location to create_artificial_label.
944         * config/spu/spu-protos.h: Add location to
945         spu_resolve_overloaded_builtin.
946         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
947         spu_build_builtin_va_list.
948         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
949         argument.  Pass location to build_function_call_vec.
950         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
951         build_decl.
952         (emit_fpu_switch): Same.
953         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
954         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
955         to build_decl and create_artificial_label.
956         (xtensa_gimplify_va_arg_expr): Same.
957         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
958         (xstormy16_gimplify_va_arg_expr): Same.
959         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
960         * config/arm/arm.c (arm_build_builtin_va_list): Same.
961         * config/mips/mips.c (mips_build_builtin_va_list): Same.
962         (mips16_build_function_stub): Same.
963         (mips16_build_call_stub): Same.
964
965 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
966
967         PR target/40327
968         * arm/constraints.md (Pa, Pb): New constraints.
969         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
970         split pattern to deal with them.
971
972 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
973
974         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
975         fix index entry for -Xpreprocessor.
976
977 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
978
979         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
980         Add location argument to build_decl call.
981         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
982         (rs6000_init_builtins): Same.
983         (spe_init_builtins): Same.
984         (rs6000_gimplify_va_arg): Add location argument to
985         create_artificial_label call.
986
987 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
988
989         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
990         * combine-stack-adj.c (pass_stack_adjustments): Use it.
991         * Makefile.in: Fix GGC dependency for gcse.o.
992
993 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
994
995         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
996         * gimple-pretty-print.c (dump_gimple_stmt): Same.
997         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
998         created.
999         * c-parser.c (c_parser_binary_expression): Use current column while
1000         building binary operations.
1001         * common.opt (fshow-column): Enable by default.
1002         * tree-vrp.c (check_array_ref): Use warning_at.
1003         (check_array_bounds): Use location from call back if expr has no
1004         location.
1005         * tree.h: Add location argument to maybe_fold_*.
1006         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1007         (maybe_fold_offset_to_array_ref): Add location argument and use it.
1008         (maybe_fold_offset_to_component_ref): Same.
1009         (maybe_fold_offset_to_reference): Same.
1010         (maybe_fold_offset_to_address): Same.
1011         (maybe_fold_stmt_indirect): Same.
1012         (maybe_fold_stmt_addition): Same.
1013         (fold_stmt_r): Pass location to maybe_fold_*.
1014         (fold_gimple_assign): Same.
1015         * c-tree.h: Add location argument to finish_decl,
1016         default_function_array_conversion, store_init_value.
1017         * c-decl.c (define_label): Use error_at.
1018         (c_make_fname_decl): Pass location to finish_decl.
1019         (finish_decl): New location argument.
1020         (build_compound_literal): Pass location to store_init_value.
1021         (grokdeclarator): Pass location to finish_decl.
1022         (grokfield): Same.
1023         * c-typeck.c (array_to_pointer_conversion): New location argument.
1024         (function_to_pointer_conversion): Same.
1025         (default_function_array_conversion): Same.
1026         (parser_build_unary_op): Pass location to overflow_warning.
1027         (parser_build_binary_op): Same.  Use warning_at.
1028         (build_unary_op): Pass location to array_to_pointer_conversion.
1029         (build_c_cast): Pass location to digest_init.
1030         (build_modify_expr): New location argument.
1031         (convert_for_assignment): Same.
1032         (store_init_value): Same.
1033         (digest_init): Same.
1034         (output_init_element): Pass location to digest_init and
1035         array_to_pointer_conversion.
1036         (c_finish_return): Pass location to convert_for_assignment.
1037         * gimplify.c (gimplify_conversion): Pass location to
1038         maybe_fold_offset_to_address.
1039         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1040         to maybe_fold_stmt_addition.
1041         * c-omp.c (c_finish_omp_atomic): Pass new location to
1042         build_modify_expr.
1043         (c_finish_omp_for): Same.
1044         * c-common.c (overflow_warning): New argument.
1045         * c-common.h: New argument to build_modify_expr, overflow_warning.
1046         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1047         finish_decl.
1048         (c_parser_initializer): Pass location to
1049         default_function_array_conversion.
1050         (c_parser_initelt): Same.
1051         (c_parser_initval): Same.
1052         (c_parser_asm_operands): Same.
1053         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
1054         (c_parser_conditional_expression): Same.
1055         (c_parser_binary_expression): Add location info to stack.  Use it.
1056         (c_parser_unary_expression): Pass location to
1057         default_function_array_conversion, parser_build_unary_op,
1058         build_indirect_ref, c_parser_postfix_expression_after_primary.
1059         (c_parser_postfix_expression_after_primary): New location argument.
1060         Use it.
1061         (c_parser_expression_conv): Pass location to
1062         default_function_array_conversion.
1063         (c_parser_expr_list): Same.
1064         (c_parser_omp_atomic): Same.
1065         (c_parser_omp_for_loop): Same.
1066         * c-tree.h: (struct c_declarator): Add comment to id_loc.
1067         (build_array_declarator): New argument.
1068         * c-decl.c (build_array_declarator): Add location argument.
1069         (grokdeclarator): Set id_loc for cdk_array.
1070         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1071         build_array_declarator.
1072         * tree.c (build_omp_clause): Add location argument.
1073         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1074         (OMP_CLAUSE_LOCATION): New macro.
1075         (struct tree_omp_clause): Add location field.
1076         (build_omp_clause): Add argument.
1077         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1078         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1079         build_omp_clause.
1080         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1081         (cp_parser_omp_clause_collapse): Same.
1082         (cp_parser_omp_clause_default): Same.
1083         (cp_parser_omp_clause_if): Same.
1084         (cp_parser_omp_clause_nowait): Same.
1085         (cp_parser_omp_clause_num_threads): Same.
1086         (cp_parser_omp_clause_ordered): Same.
1087         (cp_parser_omp_clause_schedule): Same.
1088         (cp_parser_omp_clause_untied): Same.
1089         (cp_parser_omp_for_loop): Same.
1090         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1091         * c-tree.h (c_start_case): Add location argument.
1092         (c_process_expr_stmt): Same.
1093         (c_finish_goto_*): Same.
1094         * tree-parloops.c (initialize_reductions): Pass location to
1095         build_omp_clause.
1096         (create_parallel_loop): Same.
1097         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1098         (gfc_trans_omp_reduction_list): Same.
1099         (gfc_trans_omp_clauses): Same.
1100         (gfc_trans_omp_do): Same.
1101         * c-typeck.c (c_finish_goto_label): Same.
1102         (c_finish_goto_ptr): New location argument.
1103         (c_start_case): Same.
1104         (emit_side_effect_warnings): Same.
1105         (c_process_expr_stmt): Same.
1106         (c_finish_stmt_expr): Same.
1107         (c_finish_omp_clauses): Use error_at instead of error.
1108         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1109         build_omp_clause.
1110         * c-omp.c (c_split_parallel_clauses): New location argument.
1111         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1112         to build_omp_clause.
1113         (convert_local_reference_stmt): Same.
1114         (convert_gimple_call): Same.
1115         * c-common.h (c_split_parallel_clauses): New argument.
1116         * c-parser.c (c_parser_statement_after_labels): Pass location to
1117         c_finish_goto_label.
1118         (c_parser_switch_statement): Pass location to c_start_case.
1119         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1120         and c_process_expr_stmt.
1121         (c_parser_omp_variable_list): Add location argument.
1122         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
1123         (c_parser_omp_clause_default): Same.
1124         (c_parser_omp_clause_if): Same.
1125         (c_parser_omp_clause_num_threads): Same.
1126         (-c_parser_omp_clause_ordered): Same.
1127         (c_parser_omp_clause_reduction): Pass location to
1128         c_parser_omp_variable_list.
1129         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1130         (c_parser_omp_clause_untied): Same.
1131         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
1132         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1133
1134         * c-tree.h (check_for_loop_decls, undeclared_variable,
1135         build_component_ref, build_array_ref, build_external_ref,
1136         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1137         build_conditional_expr, build_compound_expr, c_cast_expr,
1138         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1139         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1140         argument.
1141         * c-semantics.c (build_stmt): Same.
1142         (build_case_label): Same.
1143         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1144         (undeclared_variable): New argument.
1145         (make_label): Same.
1146         (lookup_label): Pass location on down.
1147         (define_label): Same.
1148         (finish_decl): Same.
1149         (build_compound_literal): Same.
1150         (finish_struct): Same.
1151         (finish_function): Do not set location here.
1152         (check_for_loop_decls): New argument.
1153         * tree.c (save_expr): Set location.
1154         (build_empty_stmt): New argument.
1155         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1156         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1157         * builtins.c (gimplify_va_arg_expr): Use locations.
1158         (expand_builtin_sync_operation): Same.
1159         * c-typeck.c (build_component_ref): New argument.
1160         (build_array_ref): Same.
1161         (build_external_ref): Same.
1162         (c_expr_sizeof_expr): Same.
1163         (c_expr_sizeof_type): Same.
1164         (parser_build_unary_op): Same.
1165         (build_conditional_expr): Same.
1166         (build_compound_expr): Pass location on down.
1167         (build_compound_expr): New argument.
1168         (build_c_cast): Same.
1169         (c_cast_expr): Same.
1170         (build_asm_expr): Same.
1171         (c_finish_return): Same.
1172         (c_process_expr_stmt): Pass location on down.
1173         (c_finish_stmt_expr): New argument.
1174         (push_clenaup): Same.
1175         (c_finish_omp_parallel): Same.
1176         (c_finish_omp_task): Same.
1177         * gimplify.c (gimplify_call_expr): Pass location on down.
1178         * c-omp.c (c_finish_omp_master): New argument.
1179         (c_finish_omp_critical): Same.
1180         (c_finish_omp_ordered): Same.
1181         (c_finish_omp_barrier): Same.
1182         (-c_finish_omp_taskwait): Same.
1183         (c_finish_omp_atomic): Same.
1184         (c_finish_omp_flush): Same.
1185         * tree-inline.c (copy_tree_body_r): Pass location on down.
1186         (inline_forbidden_p): Remove use of input_location.
1187         * c-gimplify.c (c_build_bind_expr): New argument.
1188         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1189         (c_sizeof_or_alignof_type): New argument.
1190         (c_alignof_expr): Same.
1191         (build_va_arg): Same.
1192         (c_add_case_label): Same.
1193         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1194         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1195         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1196         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1197         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1198         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1199         New argument.
1200         * stub-objc.c (objc_build_selector_expr): Same.
1201         (objc_build_throw_stmt): Same.
1202         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1203         (c_parser_initelt): Same.
1204         (c_parser_compound_statement): Same.
1205         (c_parser_compound_statement_nostart): Same.
1206         (c_parser_label): Same.
1207         (c_parser_statement_after_labels): Same.
1208         (c_parser_if_body): Same.
1209         (c_parser_else_body): Same.
1210         (c_parser_if_statement): Same.
1211         (c_parser_switch_statement): Same.
1212         (c_parser_while_statement): Same.
1213         (c_parser_do_statement): Same.
1214         (c_parser_for_statement): Same.
1215         (c_parser_asm_statement): Same.
1216         (c_parser_conditional_expression): Same.
1217         (c_parser_binary_expression): Same.
1218         (c_parser_cast_expression): Same.
1219         (c_parser_unary_expression): Same.
1220         (c_parser_sizeof_expression): Same.
1221         (c_parser_alignof_expression): Same.
1222         (c_parser_postfix_expression): Same.
1223         (c_parser_expression): Same.
1224         (c_parser_objc_receiver): Same.
1225         (c_parser_omp_variable_list): Same.
1226         (c_parser_omp_structured_block): Same.
1227         (c_parser_omp_atomic): New argument.
1228         (c_parser_omp_barrier): Same.
1229         (c_parser_omp_critical): Same.
1230         (c_parser_omp_flush): Pass location on down.
1231         (c_parser_omp_for_loop): New argument.
1232         (c_parser_omp_for): Same.
1233         (c_parser_omp_master): Same.
1234         (c_parser_omp_ordered): Same.
1235         (c_parser_omp_sections_scope): Same.
1236         (c_parser_omp_sections): Same.
1237         (c_parser_omp_parallel): Same.
1238         (c_parser_omp_single): Same.
1239         (c_parser_omp_task): Same.
1240         (c_parser_omp_taskwait): Pass location on down.
1241         (c_parser_omp_construct): Same.
1242         (c_parser_omp_threadprivate): Same.
1243         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1244         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1245         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1246         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1247         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1248         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1249         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1250         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1251         config/i386/i386.c, stmt.c:
1252         Add location argument to the following function definitions and/or
1253         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1254         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1255         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1256         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1257         do_case, c_finish_bc_stmt, build_compound_literal,
1258         build_function_call.
1259         * c-decl.c (build_compound_literal): Add location argument.
1260         Make all diagnostic calls use location.
1261         (start_struct): Same.
1262         (finish_struct): Same.
1263         (start_enum): Same.
1264         (build_enumerator): Same.
1265         (start_function): Same.
1266         (grokdeclarator): Make all diagnostic calls use location.
1267         (store_parm_decls_oldstyle): Same.
1268         * c-typeck.c (build_function_call): Add location argument.
1269         Make all diagnostic calls use location.
1270         (do_case): Same.
1271         (c_finish_bc_stmt): Same.
1272         * tree-nested.c (get_trampoline_type): Add argument.
1273         Pass location to build_decl.
1274         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1275         * rtl.h (RTL_LOCATION): New.
1276         * c-common.c (c_add_case_label): Add location argument.
1277         Make all diagnostic calls use location.
1278         * c-common.h: Add location argument to make_fname_decl, do_case,
1279         c_add_case_label, build_function_call, resolve_overloaded_builtin.
1280         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1281         Set it appropriately for every case.  Pass enum_loc to start_enum
1282         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
1283         parser_xref_tag.
1284         (c_parser_struct_or_union_specifier): Save location.  Use it for
1285         start_struct, finish_struct, and parser_xref_tag.
1286
1287 2009-06-12  Ian Lance Taylor  <iant@google.com>
1288
1289         * fold-const.c (fold_unary): Rename local variable and to and_expr.
1290
1291         * c-opts.c (c_common_handle_option): For -Wc++-compat set
1292         cpp_opts->warn_cxx_operator_names.
1293
1294 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1295
1296         PR tree-opt/38865
1297         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1298         is returns NULL and OP is a VCE, look through the VCE.
1299
1300 2009-06-12  Ian Lance Taylor  <iant@google.com>
1301
1302         PR bootstrap/40430
1303         * collect2.c (main): Use CONST_CAST2 in code inside #if
1304         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1305
1306 2009-06-12  Joey Ye  <joey.ye@intel.com>
1307
1308         PR middle-end/39146
1309         * cfgexpand.c (get_decl_align_unit): Update
1310         max_used_stack_slot_alignment with align instead of
1311         stack_alignment_needed.
1312
1313         * function.c (assign_stack_local_1): Update
1314         max_used_stack_slot_alignment with alignment_in_bits instead
1315         of stack_alignment_needed.
1316         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1317         here.
1318
1319 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
1320
1321         * dwarf2out.c (last_var_location_insn): New variable.
1322         (dwarf2out_end_epilogue): Clear last_var_location_insn.
1323         (dwarf2out_var_location): Don't record anything after last real
1324         insn.  Only change labels if there were any real instructions
1325         in between last note and this one, or if changed sections.
1326
1327 2009-06-11  Richard Henderson  <rth@redhat.com>
1328
1329         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
1330         note when storing the frame pointer in a register.
1331         (FRP): Don't redefine to nothing for epilogue.
1332         (alpha_expand_epilogue): Mark register and sp restores.
1333         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1334
1335         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1336         when gen_lowpart is needed.
1337
1338 2009-06-11  Richard Henderson  <rth@redhat.com>
1339
1340         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1341
1342         * dwarf2out.c (need_data_align_sf_opcode): New.
1343         (div_data_align): Move earlier.
1344         (def_cfa_1, reg_save): Use it.
1345
1346 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
1347
1348         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1349         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1350         (ix86_handle_option): Handle OPT_mcrc32.
1351         (ix86_target_string): Add -mcrc32.
1352         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1353
1354         * config/i386/i386.h (TARGET_CRC32): New.
1355
1356         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
1357         (sse4_2_crc32di): Likewise.
1358
1359         * config/i386/i386.opt (mcrc32): New.
1360
1361         * doc/invoke.texi: Document -mcrc32.
1362
1363 2009-06-11  Richard Henderson  <rth@redhat.com>
1364
1365         * common.opt (gdwarf-): Accept a version number.
1366         * doc/invoke.texi (gdwarf-): Update docs.
1367         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1368         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1369         version level, and record it.
1370
1371         * dwarf2.h (DW_CIE_VERSION): Remove.
1372         * dwarf2out.c (DWARF_VERSION): Remove.
1373         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1374         (output_call_frame_info): Use CIE version 3 for dwarf3,
1375         or if the return register column is out of range for version 1.
1376         (dwarf_stack_op_name): Add all dwarf3 values.
1377         (DEBUG_PUBTYPES_SECTION): New.
1378         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1379         encoding change for dwarf3.
1380         (output_die) [dw_val_class_die_ref]: Likewise.
1381         (output_compilation_unit_header): Emit correct version for dwarf3.
1382         (output_line_info): Likewise.
1383         (output_pubnames): Update for DWARF_VERSION removal.
1384         (output_aranges): Likewise.
1385         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1386         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1387         (dwarf2out_finish): Likewise.
1388
1389 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1390
1391         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1392         in r148403.
1393
1394 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1395
1396         PR c/39252
1397         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1398         * builtins.c (expand_builtin_unreachable): New function.
1399         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1400         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1401         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1402         successors.
1403         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1404         searching for missing barriers.
1405
1406 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1407
1408         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1409         when -fprofile-generate* was passed.
1410         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1411
1412 2009-06-11  Anthony Green  <green@moxielogic.com>
1413
1414         * config/moxie/moxie.md: Define length attribute for all instructions.
1415         (rCC): Define.
1416         (*b<cond:code>): Support limited branch ranges for new PC-relative
1417         branch instructions.
1418         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1419
1420 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
1421
1422         * config/i386/i386.c (min_insn_size): Use get_attr_length
1423         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1424         For __asm return 0.
1425
1426         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1427         instead of emit_insn_before.
1428
1429 2009-06-10  Ian Lance Taylor  <iant@google.com>
1430
1431         PR bootstrap/40408
1432         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1433         GIMPLE_SWITCH.
1434
1435 2009-06-10  Revital Eres  <eres@il.ibm.com>
1436
1437         * passes.c (init_optimization_passes): Reschedule
1438         predictive-commoning pass before complete unroll pass.
1439
1440 2009-06-10  Martin Jambor  <mjambor@suse.cz>
1441
1442         * cgraph.c (cgraph_node_can_be_local_p): New function.
1443         (cgraph_make_node_local): New function.
1444         * cgraph.h (cgraph_node_can_be_local_p): Declare.
1445         (cgraph_make_node_local): Declare.
1446
1447 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
1448
1449         * tree.h (tree_base): Add packed_flag and user_align fields.
1450         Decrease size of spare field.
1451         (TYPE_USER_ALIGN): Use user_align from tree_base.
1452         (DECL_USER_ALIGN): Likewise.
1453         (TYPE_PACKED): Use packed_flag from tree_base.
1454         (DECL_PACKED): Likewise.
1455         (tree_type): Delete packed_flag and user_align fields.  Widen
1456         precision field.  Widen mode field and shuffle fields to align
1457         mode on an 8-bit boundary.
1458         (tree_decl_common): Delete decl_flag_1 and user_align fields.
1459         Renumber decl_flag_* fields.  Fix comments.  Widen
1460         decl_common_unused field.
1461         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
1462         (DECL_EXTERNAL): Likewise.
1463         (DECL_BIT_FIELD): Likewise.
1464         (DECL_NONADDRESSABLE_P): Likewise.
1465         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1466         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1467
1468 2009-06-10  Ian Lance Taylor  <iant@google.com>
1469
1470         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1471         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1472         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1473         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1474         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1475         DEF_VEC_ALLOC_FUNC_P.
1476         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1477         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1478         DEF_VEC_ALLOC_FUNC_O.
1479         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1480         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1481         DEF_VEC_ALLOC_FUNC_I.
1482         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1483         (vec_stack_p_reserve_exact_1): Declare.
1484         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1485         (vec_stack_free): Declare.
1486         (VEC_stack_alloc): Define.
1487         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1488         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1489         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1490         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
1491         for void_p.
1492         (stack_vecs): New static variable.
1493         (vec_stack_p_reserve_exact_1): New function.
1494         (vec_stack_o_reserve_1): New static function.
1495         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1496         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1497         (vec_stack_free): New function.
1498         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1499         (VEC_df_ref_stack_alloc): Define.
1500         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
1501         DEF_VEC_ALLOC_P_STACK.
1502         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1503         (struct df_collection_rec): Change _vec fields to VEC.  Remove
1504         _use fields.
1505         (df_free_collection_rec): Adjust for new fields.
1506         (df_insn_rescan): Use new df_collection_rec fields.
1507         (df_notes_rescan, df_canonize_collection_rec): Likewise.
1508         (df_ref_create_structure, df_ref_record): Likewise.
1509         (df_get_conditional_uses, df_get_call_refs): Likewise.
1510         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1511         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1512         (df_record_exit_block_uses, df_bb_verify): Likewise.
1513         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
1514         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1515         Remove count parameter.  Change return type to void.  Change all
1516         callers.
1517         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1518         Remove count parameter.  Change return type to void.  Change all
1519         callers.
1520         (df_install_refs): Change old_vec parameter to VEC.  Remove count
1521         parameter.  Change all callers.
1522         (df_install_mws): Change old_vec parameter to VEC.  Remove count
1523         parameter.  Change all callers.
1524         (df_refs_verify): Change new_rec parameter to VEC.  Change call
1525         callers.
1526         (df_mws_verify): Likewise.
1527
1528 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
1529
1530         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1531
1532 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
1533
1534         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1535
1536 2009-06-10  Anthony Green  <green@moxielogic.com>
1537
1538         * config/moxie/crti.asm: New file.
1539         * config/moxie/crtn.asm: New file.
1540         * config/moxie/moxie.c: New file.
1541         * config/moxie/moxie.h: New file.
1542         * config/moxie/sfp-machine.h: New file.
1543         * config/moxie/moxie-protos.h: New file.
1544         * config/moxie/t-moxie: Created.
1545         * config/moxie/t-moxie-softfp: Created.
1546         * config/moxie/moxie.md: Created.
1547         * config/moxie/constraints.md: Created.
1548         * config.gcc: Add moxie support.
1549         * doc/md.texi (Machine Constraints): Add moxie constraints.
1550         * doc/contrib.texi (Contributors): Mention moxie port.
1551         * doc/install.texi (Specific): Mention the moxie port.
1552
1553 2009-06-09  Ian Lance Taylor  <iant@google.com>
1554
1555         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1556         compiling with C++.
1557         * optabs.c (optab_table): Only use designated initializers if
1558         HAVE_DESIGNATED_INITIALIZERS is defined.
1559         (convert_optab_table): Likewise.
1560         (init_optabs): Always call init_insn_codes if
1561         HAVE_DESIGNATED_INITIALIZERS is not defined.
1562
1563 2009-06-09  Ian Lance Taylor  <iant@google.com>
1564
1565         * targhooks.c (default_builtin_vectorized_function): Change fn
1566         parameter to unsigned int.
1567         (default_builtin_vectorized_conversion): Change code parameter to
1568         unsigned int.
1569         (default_builtin_reciprocal): Change fn parameter to unsigned int.
1570         * targhooks.h: Update declarations.
1571         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1572         parameter to unsigned int.
1573
1574         * c-typeck.c (comptypes_check_enum_int): New static function.
1575         (comptypes_internal): Add enum_and_int_p parameter.  Change all
1576         callers.
1577         (comp_target_types): Add location parameter.  Change all callers.
1578         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1579         Change all callers.
1580         (function_types_compatible_p, type_lists_compatible_p): Likewise.
1581         (build_conditional_expr): Add colon_loc parameter.  Change all
1582         callers.
1583         (convert_for_assignment): Add location parameter.  Change all callers.
1584         * c-parser.c (c_parser_conditional_expression): Pass location of
1585         colon to build_conditional_expr.
1586         * c-tree.h (build_conditional_expr): Update declaration.
1587
1588 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1589
1590         * graphite.c: Revert previous patch.
1591
1592 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1593
1594         PR bootstrap/40103
1595         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1596
1597 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1598
1599         * tree-ssa-loop-prefetch.c
1600         (loop_prefetch_arrays): Fixed a portability problem in printf format
1601         string.
1602
1603 2009-06-09  Martin Jambor  <mjambor@suse.cz>
1604
1605         PR tree-optimization/40351
1606         * tree-sra.c (propagate_subacesses_accross_link): Check that a
1607         refrence to a potential artifical subaccess can be constructed.
1608
1609 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1610
1611         * config/sh/sh-protos.h (sh_optimization_options): Declare.
1612         (sh_override_options): Likewise.
1613         * config/sh/sh.c: Include params.h.
1614         (sh_optimization_options): New.
1615         (sh_override_options): Likewise.
1616         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1617         (OVERRIDE_OPTIONS): Use sh_override_options.
1618
1619 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1620
1621         * dwarf2out.c (emit_cfa_remember): New variable.
1622         (add_fde_cfi): If emit_cfa_remember, recurse to add
1623         DW_CFA_remember_state first.
1624         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1625         instead just set emit_cfa_remember.
1626
1627 2009-06-08  Jan Hubicka  <jh@suse.cz>
1628
1629         PR debug/40126
1630         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1631
1632 2009-06-08  Jan Hubicka  <jh@suse.cz>
1633
1634         PR middle-end/39834
1635         * cgraphunit.c (save_inline_function_body): Do not copy transform
1636         hooks for saved inline bodies.
1637         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1638         for given function.
1639
1640 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
1641
1642         * jump.c (returnjump_p): Handle delayed branches.  Add missing
1643         function comment.
1644
1645 2009-06-08  Jan Hubicka  <jh@suse.cz>
1646
1647         PR middle-end/40102
1648         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1649         original node might've been modified.
1650         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1651
1652 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1653
1654         * tree-object-size.c (addr_object_size): Add OSI argument.
1655         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1656         (compute_builtin_object_size, expr_object_size): Adjust callers.
1657         (plus_stmt_object_size): Call addr_object_size instead of
1658         compute_builtin_object_size.
1659
1660 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1661             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1662         
1663         * tree-ssa-loop-prefetch.c 
1664         (gather_memory_references): Introduced a counter for the number of 
1665         memory references.
1666         (anything_to_prefetch_p): Introduced a counter for the number of 
1667         prefetches.
1668         (is_loop_prefetching_profitable): New function with a cost model 
1669         for prefetching.
1670         (loop_prefetch_arrays): Use the new cost model to determine if 
1671         prefetching is profitable.
1672         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
1673         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1674         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
1675         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1676         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
1677         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1678         
1679 2009-06-08  Michael Matz  <matz@suse.de>
1680
1681         PR debug/40012
1682         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1683         partitions use the same.
1684         (expand_one_var): Deal with DECL_RTL sometimes begin set also
1685         for basevars of SSA_NAMEs.
1686         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1687         to not expand them twice.
1688         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1689         multiple places.
1690
1691 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1692
1693         * common.opt (fcompare-debug=, fcompare-debug-second): New.
1694         (fdump-final-insns=, gtoggle): New.
1695         * doc/invoke.texi: Document them.
1696         * final.c (rest_of_clean_state): Dump final insn stream.
1697         * gcc.c (invoke_as): Hook in -fcompare-debug.
1698         (static_spec_functions): Add compare-debug-dump-opt,
1699         compare-debug-self-opt and compare-debug-auxbase-opt.
1700         (compare_debug, compare_debug_second, compare_debug_opt): New.
1701         (switches_debug_check, n_switches_debug_check): New.
1702         (debug_auxbase_opt, debug_check_temp_file): New.
1703         (process_command): Handle -fno-compare-debug, -fcompare-debug and
1704         -fcompare-debug=*.
1705         (do_self_spec): Handle arguments after switches.
1706         (do_spec_1): Add .gk extension to temp file basenames for compare.
1707         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1708         (cc1_options): Use it instead of normal auxbase computation for
1709         the second compare-debug compilation.
1710         (compare_files): New.
1711         (main): Set up and implement compare debug mode.
1712         (compare_debug_dump_opt_spec_function): New.
1713         (compare_debug_self_opt_spec_function): New.
1714         (compare_debug_auxbase_opt_spec_function): New.
1715         * toplev.c (process_options): Handle flag_gtoggle,
1716         flag_dump_final_insns.
1717         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1718         during -fcompare-debug-second compilation.
1719
1720 2009-06-07  Ian Lance Taylor  <iant@google.com>
1721
1722         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
1723         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1724
1725         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1726         with no default node.  Change warning with %H to warning_at.
1727         Don't clear warn_switch around case checking.
1728         * doc/invoke.texi (Warning Options): Clarify distinction between
1729         -Wswitch and -Wswitch-enum.
1730
1731 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1732
1733         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1734
1735 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1736
1737         * gbl-ctors.h: Add header guard.
1738
1739 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1740
1741         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1742         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1743         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1744         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1745         prototypes for removed functions.
1746         (expressions_equal_p): Move to ...
1747         * tree-ssa-sccvn.h: ... here and ...
1748         * matrix-reorg.c: ... adjust includes.
1749
1750 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1751
1752         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1753
1754 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1755
1756         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1757         (finish_function): Remove erroneous whitespace.
1758
1759 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1760
1761         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1762         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
1763
1764 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1765
1766         * errors.c (internal_error): Commentary typo fix.
1767         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1768         * tree-ssa-pre.c: Ditto.
1769
1770 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1771
1772         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1773         them is supposed to hold actual statements.
1774
1775 2009-06-06  Ian Lance Taylor  <iant@google.com>
1776
1777         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1778         empty statements can now have attributes.
1779
1780 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
1781
1782         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1783         * config/mips/mips.md: Ditto.
1784
1785 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1786
1787         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1788         _RELOCATABLE.
1789         (__eabi_uconvert): Likewise.
1790
1791 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1792
1793         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1794         CFI_* definitions with IN_GCC.
1795
1796 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
1797
1798         * xcoffout.h (xcoffout_source_line): Update prototype.
1799
1800 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1801
1802         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1803         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1804
1805 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1806
1807         PR middle-end/40340
1808         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1809         inlined_function_outer_scope_p blocks for artificial inlines
1810         even at -g0/-g1.
1811         * tree.c (tree_nonartificial_location): Rewrite using
1812         block_nonartificial_location.
1813
1814 2009-06-05  Revital Eres  <eres@il.ibm.com>
1815             Leehod Baruch  <leehod@il.ibm.com>
1816
1817         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1818         (expand_expr_real_1): Remove comment.
1819         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1820         Vectorize misaligned access when the target supports it.
1821         (vect_supportable_dr_alignment): Check for unaligned access support.
1822         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1823         and remove asset.
1824
1825 2009-06-05  Julian Brown  <julian@codesourcery.com>
1826
1827         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1828         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1829
1830 2009-06-05  Richard Guenther  <rguenther@suse.de>
1831
1832         PR bootstrap/40350
1833         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1834         as possibly unused.
1835
1836 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1837
1838         * config/s390/s390.c (global_not_special_regno_p): New static inline.
1839         (save_gprs): Don't tell unwinder when a global register is saved.
1840         (s390_emit_epilogue): Emit needed epilogue unwind info.
1841
1842 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1843
1844         * dwarf2out.c (deferred_asm_name): New.
1845         (add_name_and_src_coords_attributes): Defer creation of
1846         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1847         computed yet.
1848         (move_linkage_attr): New.
1849         (dwarf2out_finish): Revisit deferrals and emit attributes at the
1850         right place.
1851
1852 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1853
1854         * tree-nested.c (finalize_nesting_tree_1): Declare the
1855         frame_decl in the binding tree.
1856
1857 2009-06-04  Cary Coutant  <ccoutant@google.com>
1858
1859         * basic-block.h (struct basic_block_def): Add discriminator field.
1860         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
1861         callers.
1862         * debug.c (do_nothing_debug_hooks): Add additional entry.
1863         (debug_nothing_int_charstar_int): New function.
1864         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
1865         (debug_nothing_int_charstar_int): New declaration.
1866         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
1867         discriminator value in .loc directive.
1868         * final.c (last_discriminator): New variable.
1869         (discriminator): New variable.
1870         (final_start_function): Initialize above variables, pass current
1871         discriminator to debug hook.
1872         (notice_source_line): Check for discriminator change.
1873         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1874         * sdbout.c (sdbout_source_line): New parameter.
1875         * tree-cfg.c (struct locus_discrim_map): New structure type.
1876         (discriminator_per_locus): New hash table.
1877         (build_gimple_cfg): Allocate and free discriminator hash table.
1878         (make_edges): Call assign_discriminator.
1879         (locus_map_hash): New function.
1880         (locus_map_eq): New function.
1881         (next_discriminator_for_locus): New function.
1882         (same_line_p): New function.
1883         (assign_discriminator): New function.
1884         (make_cond_expr_edges): Call assign_discriminator.
1885         (make_gimple_switch_edges): Likewise.
1886         (first_non_label_stmt): New function.
1887         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
1888         all callers.
1889         * xcoffout.c (xcoffout_source_line): Add new parameter.
1890
1891         * configure.ac (gcc_cv_as_discriminator): New configury check for
1892         gas support for discriminator.
1893         * configure: Regenerate.
1894         * config.in: Regenerate.
1895
1896 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1897
1898         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1899         val after checking for integers.
1900
1901 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
1902
1903         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1904         X64_REGPARM_MAX.
1905         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1906         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1907         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1908         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1909         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
1910         X64_SSE_REGPARM_MAX.
1911         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1912         X64_SSE_REGPARM_MAX.
1913
1914 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1915
1916         * gcc.c (report_times_to_file): New.
1917         (execute): Implement it.
1918         (process_command): Support -time=.
1919         * doc/invoke.texi: Document it.
1920
1921 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1922
1923         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1924         that have value exprs.
1925
1926 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1927
1928         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1929         declarations for constants until...
1930         (dw2_output_indirect_constant_1): ... this point.
1931
1932 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
1933
1934         PR target/10242
1935         * arm.md (arm_addsi3): Don't try to split an add with an
1936         eliminable register until after reload has completed.
1937
1938 2009-06-03  Ian Lance Taylor  <iant@google.com>
1939
1940         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1941         * genattrtab.c (write_length_unit_log): Likewise.
1942         * genchecksum.c (dosum): Likewise.
1943         * gengtype.c (write_rtx_next): Likewise.
1944         (finish_root_table, write_roots): Likewise.
1945         * gimple.c (gimple_ops_offset_): Likewise.
1946         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1947         * config/arc/arc.c (arc_attribute_table): Likewise.
1948         * config/arm/arm.c (arm_attribute_table): Likewise.
1949         * config/avr/avr.c (avr_attribute_table): Likewise.
1950         * config/crx/crx.c (crx_attribute_table): Likewise.
1951         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1952         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1953         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1954         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1955         * config/sh/sh.c (sh_attribute_table): Likewise.
1956         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1957         * config/spu/spu.c (spu_attribute_table): Likewise.
1958         * config/v850/v850.c (v850_attribute_table): Likewise.
1959
1960         * config/alpha/alpha.c (vms_attribute_table): Make static.
1961         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1962         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1963         * config/mips/mips.c (mips_attribute_table): Likewise.
1964
1965         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1966         $(SYSTEM_H).
1967         (cc1-checksum.o): Likewise.
1968
1969 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
1970
1971         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1972
1973 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
1974
1975         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1976         insn if it is changing sp.  Use gen_add3_insn instead of
1977         conditionally gen_addsi3 and gen_adddi3.
1978         (offset_below_red_zone_p): New static inline function.
1979         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1980         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1981         * config/rs6000/ppc-asm.h: Include auto-host.h.
1982         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1983         CFI_RESTORE): Define.
1984         * config/rs6000/crtresxgpr.asm: Add unwind info.
1985         * config/rs6000/crtresxfpr.asm: Likewise.
1986         * config/rs6000/crtresgpr.asm: Likewise.
1987         * config/rs6000/crtresfpr.asm: Likewise.
1988         * config/rs6000/crtsavgpr.asm: Likewise.
1989         * config/rs6000/crtsavfpr.asm: Likewise.
1990
1991         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
1992         argument of DWARF2_FRAME_REG_OUT macros.
1993
1994 2009-06-03  Julian Brown  <julian@codesourcery.com>
1995
1996         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1997         words or less (including TImode) in core registers.
1998
1999 2009-06-03  Richard Guenther  <rguenther@suse.de>
2000
2001         PR middle-end/40328
2002         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2003
2004 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
2005
2006         * statistics.c (statistics_counter_event): Do not record event 
2007         in pass dump if its number == -1.
2008         (curr_statistics_hash): Add assert that we never get passes 
2009         with static number == -1.
2010
2011 2009-06-03  Richard Guenther  <rguenther@suse.de>
2012             Andrey Belevantsev  <abel@ispras.ru>
2013
2014         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
2015         non-BLKmode arrays addressable.
2016
2017 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
2018
2019         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2020         * config/m68k/m68k.h: ... here.
2021         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2022         m68k and fido.
2023
2024 2009-06-03  Martin Jambor  <mjambor@suse.cz>
2025
2026         PR tree-optimization/40323
2027         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2028         assignment.
2029
2030 2009-06-03  Richard Guenther  <rguenther@suse.de>
2031
2032         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2033         consistently.
2034
2035 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
2036
2037         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2038         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2039         JUMP_TABLE_DATA_P where applicable.
2040         * config/sh/sh.c: Ditto.
2041         * config/sh/sh.h: Ditto.
2042         * config/sh/sh.md: Ditto.
2043         * config/sh/symbian.c: Ditto.
2044
2045 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
2046
2047         * config/i386/driver-i386.c (describe_cache): Optimize
2048         concatenation of strings.  Use snprintf instead of sprintf.
2049         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
2050         target when not compiling with GCC.
2051
2052 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2053
2054         * config/sh/sh.c: Revert last change.
2055         (sh_expand_epilogue): Emit a blockage insn before the frame
2056         pointer adjustment unconditionally.
2057
2058 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2059
2060         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2061         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2062         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2063         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2064         to COLLECT_GCC_OPTIONS.
2065
2066 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2067
2068         * collect2.c (target_system_root): New variable.
2069         (main): Handle --sysroot=.
2070         (ignore_library): Strip the sysroot from the library path.
2071
2072 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2073
2074         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2075         (collect2.o): Depend on collect2-aix.h.
2076         (collect2-aix.o): New rule.
2077         * collect2-aix.h: New file.
2078         * collect2-aix.c: Likewise.
2079         * collect2.c: Include collect2-aix.h.  Don't undefine
2080         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2081         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2082         Use TARGET_AIX_VERSION instead of _AIX51.
2083         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2084         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2085         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2086         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2087         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2088
2089 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2090
2091         * collect2.c (ignore_library): Avoid premature post-increment
2092         and null deference.
2093
2094 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2095
2096         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2097         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2098         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2099         CROSS_DIRECTORY_STRUCTURE too.
2100         (LINK_LIBG_SPEC): Likewise.
2101         (LIB_SPEC): Add %R to sysroot paths.
2102         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2103         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2104         * config/rs6000/aix51.h: As for aix43.h.
2105         * config/rs6000/aix52.h: Likewise.
2106         * config/rs6000/aix53.h: Likewise.
2107         * config/rs6000/aix61.h: Likewise.
2108         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2109         to the beginning of sysroot paths.
2110
2111 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2112
2113         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2114         INSN_LISTs that are out of the REG_NOTE range.
2115
2116 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2117
2118         * loop-unroll.c (struct iv_to_split): Add pointer to next.
2119         (struct var_to_expand): Likewise.
2120         (struct opt_info): Add head and tail for linked lists of the above.
2121         (analyze_insn_to_expand_var): Initialize next.
2122         (analyze_iv_to_split_insn): Likewise.
2123         (analyze_insns_in_loop): Create linked lists.
2124         (allocate_basic_variable): Simplify for use without hash table.
2125         (insert_var_expansion_initialization): Likewise, make it type-safer.
2126         (combine_var_copies_in_loop_exit): Likewise.
2127         (apply_opt_in_copies): Walk lists rather than hash tables.
2128         (release_var_copies): Simplified and inlined by hand into...
2129         (free_opt_info): ... this function.
2130
2131 2009-06-02  Richard Guenther  <rguenther@suse.de>
2132
2133         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2134         for field decls.
2135
2136 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2137
2138         * cfgexpand.c (gimple_expand_cfg): Discard the source location
2139         only for builtins that are not overridden.
2140
2141 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2142
2143         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2144         label string.
2145
2146 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2147
2148         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2149
2150 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2151
2152         * combine.c (move_deaths): Compare LUIDs within the same BB only.
2153
2154 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2155
2156         * common.opt (fdump-unnumbered-links): New.
2157         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2158         * print-rtl.c (flag_dump_unnumbered_links): New.
2159         (print_rtx): Test it.
2160
2161 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
2162
2163         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2164         push/pop multiple to 8-byte alignment.
2165
2166 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
2167
2168         * config/i386/i386.c (queued_cfa_restores): New static variable.
2169         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2170         functions.
2171         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2172         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2173         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2174         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2175         note unconditionally.
2176         (ix86_emit_restore_regs_using_mov): Likewise.
2177         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2178         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2179         it through to ix86_emit_restore_reg_using_pop.
2180         (ix86_emit_leave): Add RED_OFFSET argument.  Call
2181         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
2182         instead of adding REG_CFA_OFFSET note unconditionally.
2183         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2184         the above functions.  Call ix86_add_queued_cfa_restore_notes when
2185         needed.
2186
2187         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2188         force output of the label even for dwarf2out_do_cfi_asm.
2189         (add_fde_cfi): If -g2 and above and cfi might change CFA,
2190         force creation of CFI label and chain DW_CFA_set_loc jumping to it
2191         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
2192         caller.
2193         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2194         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2195         dwarf2out_cfi_label callers.
2196         * tree.h (dwarf2out_cfi_label): Adjust prototype.
2197         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2198         Adjust dwarf2out_cfi_label callers.
2199         * config/vax/vax.c (vax_output_function_prologue): Likewise.
2200
2201         * config/i386/i386.h (struct machine_cfa_state,
2202         struct machine_function): Guard with ifndef USED_FOR_TARGET
2203         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2204
2205         PR other/40024
2206         * emutls.c (__emutls_get_address): Change arr->size to mean number
2207         of allocated arr->data entries instead of # of slots + 1.
2208
2209         PR middle-end/40316
2210         * recog.c (peep2_reinit_state): New function.
2211         (peephole2_init_state): Use it at the end of a basic block and also
2212         when seeing a RTX_FRAME_RELATED_P insn.
2213
2214 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
2215
2216         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2217         fixuns_truncrfdi2): New.
2218         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2219         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2220         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2221         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2222         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2223         *recip_approx): Remove.
2224         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2225         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2226         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2227         move to div.md.
2228         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2229         setf_exp_rf): New.
2230
2231 2009-06-01  Ian Lance Taylor  <iant@google.com>
2232
2233         * attribs.c (register_attribute): Use CONST_CAST.
2234         * collect2.c (main): Use CONST_CAST2.
2235         (scan_prog_file): Likewise.
2236         * gcc.c (process_command, main): Likewise.
2237         * toplev.c (toplev_main): Likewise.
2238
2239         * c-typeck.c (handle_warn_cast_qual): New static function,
2240         partially broken out of build_c_cast.
2241         (build_c_cast): Call handle_warn_cast_qual.
2242         * doc/invoke.texi (Warning Options): Document new effect of
2243         -Wcast-qual.
2244
2245 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
2246
2247         * diagnostic.c (diagnostic_build_prefix): Always print columns.
2248         (diagnostic_report_current_module): Print columns.
2249         * common.opt (flag_show_column): Enable by default.
2250
2251 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
2252
2253         * alias.c (find_base_term): Check for NULL term before returning.
2254
2255 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2256
2257         Revert due to PR40320:
2258         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2259         * calls.c (emit_library_call_value_1): Don't force_operand for move
2260         and push insns.
2261
2262 2009-06-01  Olivier Hainque  <hainque@adacore.com>
2263             Eric Botcazou  <ebotcazou@adacore.com>
2264
2265         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2266         to be processed as a bitfield for constructor output purposes.
2267         * output.h (initializer_constant_valid_for_bitfield_p): Declare
2268         new function.
2269         * varasm.c (oc_local_state): New type, output_constructor
2270         local state to support communication with helpers.
2271         (oc_outer_state): New type, output_constructor outer state of
2272         relevance in recursive calls.
2273         (output_constructor_array_range): New output_constructor helper,
2274         extracted code for an array range element.
2275         (output_constructor_regular_field): New output_constructor helper,
2276         extracted code for an element that is not a bitfield.
2277         (output_constructor_bitfield): New output_constructor helper,
2278         extracted code for a bitfield element.  Accept an OUTER state
2279         argument for recursive processing.  Recurse on record or array
2280         CONSTRUCTOR values, possibly past noop conversions.
2281         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
2282         VALUE is a valid constant-valued expression for use in a static
2283         bit-field initializer.
2284         (output_constructor): Rework to use helpers.  Accept and honor an
2285         OUTER state argument for recursive calls.  Return total size.  Be
2286         prepared for nested constructors initializing bitfields.
2287         (output_constant): Feed OUTER in calls to output_constructor.
2288
2289 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2290
2291         * calls.c (emit_library_call_value_1): Don't force_operand for move
2292         and push insns.
2293
2294 2009-06-01  Nick Clifton  <nickc@redhat.com>
2295
2296         * doc/invoke.texi (IA-64 Options): Fix typo.
2297
2298 2009-06-01  Ira Rosen  <irar@il.ibm.com>
2299
2300         PR tree-optimization/39129
2301         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
2302         printed message.
2303         (vect_do_peeling_for_loop_bound): Use 
2304         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2305         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2306         (vect_loop_versioning): Likewise.
2307         (vect_create_cond_for_alias_checks): Fix indentation.
2308         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
2309         macros.
2310         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2311         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2312         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
2313         "control flow in loop".
2314         (vect_estimate_min_profitable_iters): Use 
2315         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2316         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2317         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2318         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2319         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
2320         statement belongs to a group of strided accesses with the exact code 
2321         check.
2322         (vectorizable_load): Likewise.
2323         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2324         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2325
2326 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
2327
2328         * config/freebsd-stdint.h: New file.
2329         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2330         Add freebsd-stdint.h to tm_file.
2331
2332 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
2333
2334         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2335         (thumb2_extendhidi2): Likewise.
2336
2337 2009-05-31  Ian Lance Taylor  <iant@google.com>
2338
2339         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
2340
2341 2009-05-31  Ian Lance Taylor  <iant@google.com>
2342
2343         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
2344         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2345         (ipa-reference.o): Depend upon gt-ipa-reference.h.
2346
2347 2009-05-31  Jason Merrill  <jason@redhat.com>
2348
2349         * tree-pretty-print.c (print_call_name): Take the callee, not the
2350         call itself.  Make non-static.  Use dump_function_name for functions.
2351         (dump_generic_node): Adjust.
2352         * diagnostic.h: Declare print_call_name.
2353         * gimple-pretty-print.c (dump_gimple_call): Use it.
2354
2355 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2356
2357         * config/sh/sh.md (ashldi3_std): New define_expand.
2358         (ashldi3): Use it.
2359
2360 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2361
2362         PR target/40313
2363         * config/sh/sh.c: Include debug.h.
2364         (sh_expand_epilogue): Emit a blockage insn before the frame
2365         pointer adjustment also when dwarf2out_do_frame returns true.
2366
2367 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
2368
2369         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2370         (thumb2_extendqidi2): New pattern.
2371
2372 2009-05-31  Ira Rosen  <irar@il.ibm.com>
2373
2374         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2375         mark phis for renaming.
2376         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2377         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2378         Call mark_sym_for_renaming.
2379         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
2380         * tree-vect-loop.c (vect_transform_loop): Remove
2381         vect_memsyms_to_rename initialization and a call to
2382         mark_set_for_renaming.
2383
2384 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
2385
2386         PR middle-end/40304
2387         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2388         frame related even if !set_cfa && style < 0.
2389
2390 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
2391
2392         * config/i386/mingw-tls.c: New file.
2393         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2394         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2395         defining _WIN32 but not __CYGWIN__.
2396
2397 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2398
2399         * configure.ac: Add MPC support.
2400         
2401         * config.in, configure: Regenerate.     
2402
2403 2009-05-29  Richard Henderson  <rth@redhat.com>
2404
2405         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2406         NOTE_INSN_BASIC_BLOCK.
2407         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2408         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2409         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2410         to be deleted.
2411         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2412         add in_use field.
2413         (add_cfi): Disable check redefining cfa away from drap.
2414         (lookup_cfa_1): Add remember argument; handle remember/restore.
2415         (lookup_cfa): Pass remember argument.
2416         (cfa_remember): New.
2417         (compute_barrier_args_size_1): Remove sibcall check.
2418         (dwarf2out_frame_debug_def_cfa): New.
2419         (dwarf2out_frame_debug_adjust_cfa): New.
2420         (dwarf2out_frame_debug_cfa_offset): New.
2421         (dwarf2out_frame_debug_cfa_register): New.
2422         (dwarf2out_frame_debug_cfa_restore): New.
2423         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2424         (dwarf2out_begin_epilogue): New.
2425         (dwarf2out_frame_debug_restore_state): New.
2426         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2427         DW_CFA_restore_state.
2428         (output_cfi_directive): Likewise.
2429         (convert_cfa_to_fb_loc_list): Likewise.
2430         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2431         * dwarf2out.h: Update.
2432         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2433         (copy_insn_1): Early out for null.
2434         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2435         and dwarf2out_frame_debug_restore_state.
2436         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2437         (prologue_insn_hash, epilogue_insn_hash): New.
2438         (free_after_compilation): Adjust freeing accordingly.
2439         (record_insns): Create hash table if needed; push insns into
2440         hash instead of array.
2441         (maybe_copy_epilogue_insn): New.
2442         (contains): Search hash table instead of array.
2443         (sibcall_epilogue_contains): Remove.
2444         (thread_prologue_and_epilogue_insns): Split eh_return insns
2445         and mark them as epilogues.
2446         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2447         scanning in terms of basic blocks.
2448         * insn-notes.def (CFA_RESTORE_STATE): New.
2449         * jump.c (returnjump_p_1): Accept EH_RETURN.
2450         (eh_returnjump_p_1, eh_returnjump_p): New.
2451         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2452         CFA_REGISTER, CFA_RESTORE): New.
2453         * rtl.def (EH_RETURN): New.
2454         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2455
2456         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2457         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2458
2459         * config/i386/i386.c (gen_push): Update cfa state.
2460         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
2461         add a CFA_ADJUST_CFA note.
2462         (ix86_dwarf_handle_frame_unspec): Remove.
2463         (ix86_expand_prologue): Update cfa state.
2464         (ix86_emit_restore_reg_using_pop): New.
2465         (ix86_emit_restore_regs_using_pop): New.
2466         (ix86_emit_leave): New.
2467         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2468         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2469         * config/i386/i386.h (struct machine_cfa_state): New.
2470         (ix86_cfa_state): New.
2471         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2472         (eh_return_internal): Merge from eh_return_<mode>,
2473         use eh_return rtx, split w/ epilogue.
2474
2475 2009-05-29  Ian Lance Taylor  <iant@google.com>
2476
2477         * builtins.c (validate_gimple_arglist): Don't use va_arg with
2478         enum type.
2479         * calls.c (emit_library_call_value_1): Likewise.
2480
2481         * c-typeck.c (c_build_va_arg): New function.
2482         * c-tree.h (c_build_va_arg): Declare.
2483         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2484         instead of build_va_arg.
2485
2486 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2487
2488         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2489         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2490         (ptr_difference_cost): Use affine combinations to compute it.
2491         (difference_cost): Likewise.
2492         (get_computation_cost_at): Compute more accurate cost for addresses
2493         if the ratio is a multiplier allowed in addresses.
2494         For non-addresses, consider that an additional offset or symbol is
2495         added only once.
2496
2497 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2498
2499         * config/i386/i386.c (ix86_decompose_address): Avoid useless
2500         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
2501
2502         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2503         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2504         (prefix_rex): For UNIT_MMX don't imply the prefix by default
2505         if MODE_DI.
2506         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2507         to 1 for TYPE_SSE{IADD1,CVT1}.
2508         (prefix_vex_imm8): Removed.
2509         (length_vex): Only pass 1 as second argument to
2510         ix86_attr_length_vex_default if prefix_extra is 0.
2511         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2512         (length): For prefix vex computation use length_immediate
2513         attribute instead of prefix_vex_imm8.
2514         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2515         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2516         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2517         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2518         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2519         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2520         a space in between the operands.
2521         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
2522         if one operand is 0xff and the other one si, di, bp or sp.
2523         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2524         other one si, di, bp or sp.
2525         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2526         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2527         type and mode attributes.
2528         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2529         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2530         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2531         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2532         prefix_data16 attribute iff MODE_DF.
2533         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2534         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2535         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2536         constm128_operand in length_immediate computation.
2537         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
2538         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2539         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2540         length_immediate attribute to 1.
2541         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2542         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2543         for certain alternatives.
2544         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2545         prefix_data16 attribute if MODE_V1DF.
2546         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2547         length_immediate to 1.
2548         (set_got_rex64, set_rip_rex64): Remove length attribute, set
2549         length_address to 4, set mode attribute to MODE_DI.
2550         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
2551         (fxam<mode>2_i387): Set length attribute to 4.
2552         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2553         *prefetch_3dnow_rex): Override length_address attribute.
2554         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2555         attributes.
2556         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2557         (constm128_operand): Removed.
2558         * config/i386/i386.c (memory_address_length): For
2559         disp && !index && !base in 64-bit mode account for SIB byte if
2560         print_operand_address can't optimize disp32 into disp32(%rip)
2561         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
2562         for fs: or gs: segment.
2563         (ix86_attr_length_immediate_default): When checking if shortform
2564         is possible, truncate immediate to the length of the non-shortened
2565         immediate.
2566         (ix86_attr_length_address_default): Ignore MEM_P operands
2567         with X constraint.
2568         (ix86_attr_length_vex_default): Only check for DImode on
2569         GENERAL_REG_P operands.
2570         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2571         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2572         (sse_cvttps2pi): Clear prefix_rep attribute.
2573         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2574         attribute.
2575         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2576         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2577         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2578         iff operand 2 is const_int_operand.
2579         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2580         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2581         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
2582         instead of vex.
2583         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2584         prefix_data16.
2585         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2586         prefix_data16 attribute for movlpd and movhpd instructions.
2587         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
2588         length_immediate for shufpd instruction.
2589         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2590         (avx_cmpp<avxmodesuffixf2c><mode>3,
2591         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2592         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2593         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
2594         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
2595         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2596         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2597         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2598         prefix_data16 attribute for the first alternative to 1.
2599         (*avx_loadlps): Override length_immediate for the first alternative.
2600         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2601         attributes for second alternative.
2602         (*vec_concatv2sf_sse4_1): Override length_immediate and
2603         prefix_data16 attributes for second alternative.
2604         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2605         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2606         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2607         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2608         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2609         prefix_data16 and length_immediate to 1.
2610         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2611         to 1.
2612         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
2613         prefix_extra attribute for variants that don't have 0f prefix alone.
2614         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
2615         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2616         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2617         *sse4_1_pextrd): Set length_immediate to 1.
2618         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
2619         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2620         to 1.
2621         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2622         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2623         length_immediate to 1 for second alternative.
2624         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2625         prefix_extra and length_immediate attributes for the first
2626         alternative.
2627         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2628         first alternative.
2629         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
2630         to 1 for the first and third alternative.
2631         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2632         alternative.
2633         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2634         attribute.
2635         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2636         attribute to 0.
2637         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2638         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2639         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2640         *avx_psign<mode>3): Set prefix_extra attribute to 1.
2641         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2642         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2643         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2644         ssse3_psign<mode>3): Override prefix_rex attribute.
2645         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
2646         (ssse3_palignrti): Override length_immediate to 1.
2647         (ssse3_palignrdi): Override length_immediate to 1, override
2648         prefix_rex attribute.
2649         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
2650         (sse4a_extrqi): Override length_immediate to 2.
2651         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
2652         (sse4a_insertq): Override prefix_data16 to 0.
2653         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2654         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2655         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2656         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2657         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2658         and length_immediate to 1.
2659         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2660         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2661         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2662         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2663         and length_immediate to 1.
2664         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2665         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2666         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2667         avx_ptest256): Override prefix_extra to 1.
2668         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2669         Override prefix_data16 and length_immediate to 1.
2670         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2671         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2672         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2673         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2674         prefix_data16 to 0 and prefix_extra to 2.
2675         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2676         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2677         attribute.
2678         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2679         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2680         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2681         and prefix_extra to 2.
2682         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2683         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2684         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2685         avx_vpermilvar<mode>3,
2686         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2687         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2688         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2689         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2690         Override prefix_extra to 1.
2691         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2692         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2693         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2694         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2695         prefix_extra and length_immediate to 1.
2696         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2697         modrm to 0.
2698         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2699         to 1 for the first alternative.
2700         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2701         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2702         cases.
2703         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2704         *movv2sf_internal_avx, *movv2sf_internal): Override
2705         prefix_rep attribute for certain alternatives.
2706         (*mov<mode>_internal): Override prefix_rep or prefix_data16
2707         attributes for certain alternatives.
2708         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2709         attributes for certain alternatives.
2710         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2711         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2712         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2713         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2714         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2715         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2716         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2717         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2718         length_immediate to 1 if operand 2 is const_int_operand.
2719         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
2720         *vec_extractv2si_1): Set length_immediate attribute to 1.
2721         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2722         using old 3DNOW insn rather than SSE/3DNOW_A.
2723         (mmx_emms, mmx_femms): Clear modrm attribute.
2724
2725 2009-05-29  Martin Jambor  <mjambor@suse.cz>
2726
2727         * tree-sra.c:  New implementation of SRA.
2728
2729         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2730         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2731         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2732         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2733         (SRA_MAX_STRUCTURE_COUNT): Removed.
2734         (SRA_FIELD_STRUCTURE_RATIO): Removed.
2735         * doc/invoke.texi (sra-max-structure-size): Removed.
2736         (sra-field-structure-ratio): Removed.
2737
2738 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2739
2740         PR middle-end/40291
2741         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2742         before expansion.
2743
2744 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
2745
2746         PR rtl-optimization/40101
2747         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2748         seqno.  Adjust comment.
2749         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
2750         inserting bookkeeping before a jump, the jump is not scheduled.
2751         When no positive seqno found, provide a value.  Add comment.
2752
2753 2009-05-29  Richard Guenther  <rguenther@suse.de>
2754
2755         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2756         short-cutting on the first component.
2757
2758 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2759
2760         PR middle-end/39958
2761         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2762         for trees other than decls/types.
2763
2764 2009-05-29  Richard Guenther  <rguenther@suse.de>
2765
2766         * tree-ssa-operands.c (get_expr_operands): Do not handle
2767         INDIRECT_REFs in the handled-component case.  Remove
2768         unused get_ref_base_and_extent case.
2769         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2770         tree_low_cst and host_integerp where possible.
2771         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2772         codes for equivalence.
2773         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2774
2775 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
2776
2777         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2778         to tmake_file for i[34567]86-*-cygwin*. 
2779
2780 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2781
2782         PR target/40017
2783         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2784         (altivec_categorize_keyword, init_vector_keywords,
2785         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2786         similar to bool.
2787
2788 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
2789
2790         * tree.c (handle_dll_attribute): Check if node is
2791         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2792
2793 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
2794
2795         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2796         component.
2797         (thumb2_zero_extendqidi2): Likewise.
2798
2799 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2800
2801         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2802         instead of gen_movrt.
2803         * config/sh/sh.md (movrt): Remove.
2804
2805 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
2806
2807         * doc/invoke.texi (IA-64 Options):
2808         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
2809         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2810         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2811         -msched-prefer-non-control-spec-insns,
2812         -msched-stop-bits-after-every-cycle,
2813         -msched-count-spec-in-critical-path,
2814         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
2815         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
2816         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2817         and -msched-spec-verbose.
2818
2819 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
2820
2821         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
2822         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2823         error if used.
2824         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2825
2826 2009-05-28  Richard Guenther  <rguenther@suse.de>
2827
2828         * tree-ssa-alias.c (ao_ref_init): New function.
2829         (ao_ref_base): Likewise.
2830         (ao_ref_base_alias_set): Likewise.
2831         (ao_ref_alias_set): Likewise.
2832         (refs_may_alias_p_1): Change signature.
2833         (refs_may_alias_p): Adjust.
2834         (refs_anti_dependent_p): Likewise.
2835         (refs_output_dependent_p): Likewise.
2836         (call_may_clobber_ref_p_1): Change signature.
2837         (call_may_clobber_ref_p): Adjust.
2838         (stmt_may_clobber_ref_p_1): New function split out from ...
2839         (stmt_may_clobber_ref_p): ... here.
2840         (maybe_skip_until): Adjust signature.
2841         (get_continuation_for_phi): Likewise.
2842         (walk_non_aliased_vuses): Likewise.
2843         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2844         (ao_ref_init): Declare.
2845         (ao_ref_base): Likewise.
2846         (ao_ref_alias_set): Likewise.
2847         (stmt_may_clobber_ref_p_1): Likewise.
2848         (walk_non_aliased_vuses): Adjust.
2849         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2850         (get_ref_from_reference_ops): remove.
2851         (vn_reference_lookup_2): Adjust signature.
2852         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
2853         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2854         (vn_reference_lookup): Adjust.
2855         (vn_reference_insert): Likewise.
2856         (vn_reference_insert_pieces): Adjust signature.
2857         (visit_reference_op_call): Adjust.
2858         * tree-ssa-pre.c (get_expr_type): Simplify.
2859         (phi_translate_1): Adjust.
2860         (compute_avail): Likewise.
2861         (translate_vuse_through_block): Do not re-build trees.
2862         (value_dies_in_block_x): Likewise.
2863         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2864         fields.
2865         (vn_reference_lookup_pieces): Adjust declaration.
2866         (vn_reference_insert_pieces): Likewise.
2867
2868 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
2869
2870         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2871         with checking disabled.
2872
2873 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
2874
2875         PR target/37216
2876
2877         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
2878         macro definition for support of three-operand format aligned
2879         .comm directive in assembler on cygwin/pe/mingw target OS.
2880         * configure:  Regenerate.
2881         * config.h:  Regenerate.
2882
2883         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
2884         aligned form of .comm directive if -mpe-aligned-commons is in effect.
2885         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
2886
2887         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
2888         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
2889
2890 2009-05-28  Ira Rosen  <irar@il.ibm.com>
2891
2892         PR tree-optimization/40254
2893         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2894         in analysis of basic blocks.
2895
2896 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
2897
2898         PR middle-end/33699
2899         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
2900         * target-def.h (TARGET_CONST_ANCHOR): New macro.
2901         (TARGET_INITIALIZER): Use it.
2902         * cse.c (CHEAPER): Move it up to the other macros.
2903         (insert): Rename this ...
2904         (insert_with_costs): ... to this.  Add cost parameters.  Update
2905         function comment.
2906         (insert): New function.  Call insert_with_costs.
2907         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2908         find_reg_offset_for_const, try_const_anchors): New functions.
2909         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
2910         when using a const-anchor.  Call insert_const_anchors.
2911         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2912         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2913
2914 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2915
2916         * tree-inline.c (remap_decls): Enable nonlocalized variables
2917         when not optimizing.
2918
2919 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2920
2921         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2922         Simplify other tests involving optimize.
2923
2924 2009-05-27  Tom Tromey  <tromey@redhat.com>
2925
2926         * unwind-dw2.c (_Unwind_DebugHook): New function.
2927         (uw_install_context): Call _Unwind_DebugHook.
2928
2929 2009-05-27  Tom Tromey  <tromey@redhat.com>
2930
2931         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2932
2933 2009-05-27  Ian Lance Taylor  <iant@google.com>
2934
2935         * Makefile.in (LINKER, LINKER_FLAGS): Define.
2936         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2937         (ALL_LINKERFLAGS): Define.
2938         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2939         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2940         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2941         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2942         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2943         $(LINKER_FOR_BUILD).
2944         (build/gcov-iov$(build_exeext)): Likewise.
2945
2946 2009-05-27  Julian Brown  <julian@codesourcery.com>
2947
2948         * gcse.c (target.h): Include.
2949         (can_assign_to_reg_without_clobbers_p): Check that the target allows
2950         copy of argument to a pseudo register.
2951
2952 2009-05-27  Diego Novillo  <dnovillo@google.com>
2953
2954         * tree-ssa-live.c (dump_scope_block): Document arguments.
2955         (dump_scope_blocks): Document.
2956         (debug_scope_blocks): New.
2957         * tree-flow.h (debug_scope_blocks): Declare.
2958
2959 2009-05-21  Denis Chertykov  <denisc@overta.ru>
2960
2961         * doc/contrib.texi (Contributors): Add myself to the list.
2962
2963 2009-05-27  Olivier Hainque  <hainque@adacore.com>
2964
2965         * expr.c (target_align): New function.  Alignment the TARGET of an
2966         assignment may be assume to have.
2967         (highest_pow2_factor_for_target): Use it instead of relying on
2968         immediate tree attributes of TARGET, not necessarily honored when
2969         intermediate bitfields are involved.
2970         
2971 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2972
2973         PR target/40266
2974         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2975         AVX, SSE4, AES, PCLMUL and POPCNT.
2976
2977 2009-05-27  Diego Novillo  <dnovillo@google.com>
2978
2979         * tree-pretty-print.c (dump_location): New.
2980         (dump_generic_node): Call it.
2981         Factor code to handle BLOCK nodes ...
2982         (dump_block_node): ... here.
2983
2984 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2985
2986         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2987         with it.
2988         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2989         included.
2990         * gcc-plugin.h: Include config.h and system.h.
2991         (IN_GCC): Define if not defined.
2992
2993 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
2994
2995         PR middle-end/40249
2996         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2997         with -fno-inline.
2998
2999 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
3000
3001         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3002         applicable.
3003         * config/m32r/m32r.h: Ditto.
3004         * config/m32r/m32r.md: Ditto.
3005         * config/m32r/predicates.md: Ditto.
3006
3007 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
3008
3009         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3010
3011 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
3012
3013         * doc/plugins.texi
3014         (Loading plugins): typo.
3015         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3016         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3017         (Interacting with the GCC Garbage Collector): Added new section.
3018         (Giving information about a plugin): Added new section for
3019         PLUGIN_INFO.
3020         * ggc.h (ggc_register_root_tab): Added declaration.
3021         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3022         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3023         (register_callback): Improved comment in declaration.
3024         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3025         (extra_root_vec) Added static variable for dynamic roots registration.
3026         (ggc_register_root_tab) Added new routine.
3027         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3028         PLUGIN_GGC_MARKING event.
3029         * ggc-zone.c: Include plugin.h.
3030         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3031         * ggc-page.c: Include plugin.h.
3032         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3033         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3034         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3035         (register_callback): check lack of callbacks for
3036         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3037         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3038         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3039         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3040         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3041         dependency on plugin.h.
3042         (plugin.o): Added dependency on ggc.h...
3043
3044 2009-05-26  Richard Guenther  <rguenther@suse.de>
3045
3046         PR middle-end/40248
3047         Revert
3048         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3049         with mismatched comparison modes.
3050
3051         * expr.c (expand_expr_real_1): Expand the operand of a
3052         VIEW_CONVERT_EXPR in its natural mode.
3053
3054 2009-05-26  Ian Lance Taylor  <iant@google.com>
3055
3056         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3057         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3058         (ALL_COMPILERFLAGS): Define.
3059         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3060         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3061         (collect2$(exeext), collect2.o): Likewise.
3062         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3063         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3064         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3065         (libbackend.o, intl.o, cppdefault.o): Likewise.
3066         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3067         (build/%.o): Use $(COMPILER_FOR_BUILD).
3068         (build/gen%$(build_exeext)): Likewise.
3069         (build/gcov-iov$(build_exeext)): LIkewise.
3070         * config/t-darwin (darwin.o): Use $(COMPILER).
3071         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3072         * config/t-sol2 (sol2-c.o): Likewise.
3073         (sol2.o): Likewise.
3074         * config/t-vxworks (vxworks.o): Likewise.
3075         * config/x-darwin (host-darwin.o): Likewise.
3076         * config/x-hpux (host-hpux.o): Likewise.
3077         * config/x-linux (host-linux.o): Likewise.
3078         * config/x-solaris (host-solaris.o): Likewise.
3079         * config/alpha/x-alpha (driver-alpha.o): Likewise.
3080         * config/arm/t-arm (arm-c.o): Likewise.
3081         * config/arm/t-pe (pe.o): Likewise.
3082         * config/arm/t-wince-pe (pe.o): Likewise.
3083         * config/i386/t-cygming (winnt.o): Likewise.
3084         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3085         * config/i386/t-cygwin (cygwin1.o): Likewise.
3086         (cygwin2.o): Likewise.
3087         * config/i386/t-i386 (i386-c.o): Likewise.
3088         * config/i386/t-interix (winnt.o): Likewise.
3089         * config/i386/t-netware (netware.o): Likewise.
3090         * config/i386/t-nwld (nwld.o): Likewise.
3091         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3092         * config/i386/x-i386 (driver-i386.o): Likewise.
3093         * config/i386/x-cygwin (host-cygwin.o): Likewise.
3094         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3095         * config/ia64/t-ia64 (ia64-c.o): Likewise.
3096         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3097         * config/mips/x-native (driver-native.o): Likewise.
3098         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3099         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3100         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3101         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3102         * config/score/t-score-elf (score7.o): Likewise.
3103         (score3.o): Likewise.
3104         * config/sh/t-sh (sh-c.o): Likewise.
3105         * config/sh/t-symbian (sh-c.o): Likewise.
3106         (symbian.o): Likewise.
3107         * config/spu/t-spu-elf (spu-c.o): Likewise.
3108         * config/v850/t-v850 (v850-c.o): Likewise.
3109         * config/v850/t-v850e (v850-c.o): Likewise.
3110
3111 2009-05-26  Richard Guenther  <rguenther@suse.de>
3112
3113         PR tree-optimization/40122
3114         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3115         VECTOR_CSTs if possible.
3116         (fold_gimple_assign): Likewise.
3117
3118 2009-05-26  Richard Guenther  <rguenther@suse.de>
3119
3120         PR middle-end/40252
3121         * fold-const.c (fold_binary): Use the correct types for building
3122         rotates.
3123
3124 2009-05-26  Richard Guenther  <rguenther@suse.de>
3125
3126         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3127         redundant calls to merge_alias_info.
3128         (bump_vector_ptr): Likewise.
3129         * tree-ssa-copy.c (merge_alias_info): Remove.
3130         (replace_exp_1): Remove call to merge_alias_info.
3131         (propagate_tree_value): Likewise.
3132         (fini_copy_prop): Propagate points-to info.
3133         * tree-flow.h (merge_alias_info): Remove.
3134
3135 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
3136
3137         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3138
3139 2009-05-25  Jan Hubicka  <jh@suse.cz>
3140
3141         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3142         * cgraph.h (struct inline_summary): New filed self_wize,
3143         size_inlining_benefit, self_time and time_inlining_benefit.
3144         (struct cgraph_global_info): Replace insns by time ans size fields.
3145         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3146         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3147         (ipcp_update_callgraph): Do not touch function bodies.
3148         * ipa-inline.c: Include except.h
3149         (MAX_TIME): New constant.
3150         (overall_insns): Remove.
3151         (leaf_node_p): New.
3152         (overall_size, max_benefit): New static variables.
3153         (cgraph_estimate_time_after_inlining): New function.
3154         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3155         (cgraph_clone_inlined_nodes): Update size.
3156         (cgraph_mark_inline_edge): Update size.
3157         (cgraph_estimate_growth): Use size info.
3158         (cgraph_check_inline_limits): Check size.
3159         (cgraph_default_inline_p): Likewise.
3160         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3161         (cgraph_decide_recursive_inlining): Check size.
3162         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3163         and times.
3164         (cgraph_decide_inlining): Likewise.
3165         (cgraph_decide_inlining_incrementally): Likewise; honor
3166         PARAM_EARLY_INLINING_INSNS.
3167         (likely_eliminated_by_inlining_p): New predicate.
3168         (estimate_function_body_sizes): New function.
3169         (compute_inline_parameters): Use it.
3170         * except.c (must_not_throw_labels): New function.
3171         * except.h (must_not_throw_labels): Declare.
3172         * tree-inline.c (init_inline_once): Kill inlining_weigths
3173         * tree-ssa-structalias.c: Avoid uninitialized warning.
3174         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3175         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3176         (PARAM_INLINE_CALL_COST): Remove.
3177         (PARAM_EARLY_INLINING_INSNS): New.
3178
3179 2009-05-25  Richard Guenther  <rguenther@suse.de>
3180
3181         PR tree-optimization/36327
3182         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
3183         callback for reference translation or lookup at the point of may-defs.
3184         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3185         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3186         for union COMPONENT_REFs.
3187         (vn_reference_lookup_3): New callback.  Lookup from memset
3188         and CONSTRUCTOR assignment, translate through struct copies.
3189         (vn_reference_lookup_pieces): Make sure to not free the
3190         passed operands array.  Adjust walk_non_aliased_vuses call.
3191         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3192         make sure we do not leak memory.
3193
3194 2009-05-25  Richard Guenther  <rguenther@suse.de>
3195
3196         * tree-ssa-alias.h (dump_points_to_solution): Declare.
3197         * tree-inline.c (expand_call_inline): Reset the escaped and
3198         callused solutions.
3199         * tree-ssa-structalias.c (pass_build_ealias): New.
3200         * tree-pass.h (pass_build_ealias): Declare.
3201         * passes.c (init_optimization_passes): Add PTA during 
3202         early optimizations.
3203         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3204         and CALLUSED solutions.
3205         (dump_points_to_solution): New function, split out from ...
3206         (dump_points_to_info_for): ... here.
3207         * tree-parloops.c (parallelize_loops): Reset the escaped and
3208         callused solutions.
3209
3210 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3211
3212         PR bootstrap/40027
3213         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3214         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3215
3216 2009-05-25  Ira Rosen  <irar@il.ibm.com>
3217
3218         PR tree-optimization/40238
3219         * tree-vect-stmts.c (vect_init_vector): Insert initialization
3220         statements after basic block's labels.
3221         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
3222         to free the allocated memory.
3223
3224 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3225
3226         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3227         return address with a USE.
3228
3229 2009-05-24  Richard Guenther  <rguenther@suse.de>
3230
3231         PR middle-end/40233
3232         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3233         array type from the main variant of the inner type.
3234
3235 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3236
3237         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3238         definition to bool (from int) to un-break build.
3239         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3240
3241 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
3242
3243         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3244         discard_stmt_changes): Delete.
3245         * tree-ssa-operands.c (scb_stack): Delete.
3246         (init_ssa_operands): Do not initialize it.
3247         (fini_ssa_operands): Do not free it.
3248         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3249
3250         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
3251         update_stmt, remove the others.  Fix comments.
3252         * tree-dfa.c (optimize_stack_restore): Likewise.
3253         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3254         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3255         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3256         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3257         Likewise.
3258         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3259         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3260         (dom_opt_finalize_block): Likewise, adjusting access to
3261         stmts_to_rescan.
3262         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3263         (stmts_to_rescan): Change item type to gimple.
3264         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3265
3266 2009-05-24  Ira Rosen  <irar@il.ibm.com>
3267
3268         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3269         * tree-pass.h (pass_slp_vectorize): New pass.
3270         * params.h (SLP_MAX_INSNS_IN_BB): Define.
3271         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3272         * tree-vectorizer.c (timevar.h): Include.
3273         (user_vect_verbosity_level): Declare.
3274         (vect_location): Fix comment.
3275         (vect_set_verbosity_level): Update user_vect_verbosity_level
3276         instead of vect_verbosity_level.
3277         (vect_set_dump_settings): Add an argument. Ignore user defined
3278         verbosity if dump flags require higher level of verbosity. Print to
3279         stderr only for loop vectorization.
3280         (vectorize_loops): Update call to vect_set_dump_settings.
3281         (execute_vect_slp): New function.
3282         (gate_vect_slp): Likewise.
3283         (struct gimple_opt_pass pass_slp_vectorize): New.
3284         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3285         access its members.
3286         (vec_info_for_bb): New function.
3287         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3288         (VECTORIZATION_ENABLED): New macro.
3289         (SLP_ENABLED, SLP_DISABLED): Likewise.
3290         (vect_is_simple_use): Add bb_vec_info argument.
3291         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3292         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3293         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3294         vect_schedule_slp, vect_analyze_slp): Likewise.
3295         (vect_analyze_stmt): Add slp_tree argument.
3296         (find_bb_location): Declare.
3297         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3298         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3299         (vect_analyze_loop_operations, vect_analyze_loop,
3300         get_initial_def_for_induction, vect_create_epilog_for_reduction,
3301         vect_finalize_reduction, vectorizable_reduction,
3302         vectorizable_live_operation, vect_transform_loop): Likewise.
3303         * tree-data-ref.c (dr_analyze_innermost): Update comment,
3304         skip evolution analysis if analyzing a basic block.
3305         (dr_analyze_indices): Likewise.
3306         (initialize_data_dependence_relation): Skip the test whether the
3307         object is invariant for basic blocks.
3308         (compute_all_dependences): Skip dependence analysis for data
3309         references in basic blocks.
3310         (find_data_references_in_stmt): Don't fail in case of invariant
3311         access in basic block.
3312         (find_data_references_in_bb): New function.
3313         (find_data_references_in_loop): Move code to
3314         find_data_references_in_bb and add a call to it.
3315         (compute_data_dependences_for_bb): New function.
3316         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3317         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3318         that STEP is 0.
3319         (vect_analyze_data_ref_dependence): Check for interleaving in case of
3320         unknown dependence in basic block and fail in case of dependence in
3321         basic block.
3322         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3323         dependence instances from either loop or basic block vectorization
3324         info.
3325         (vect_compute_data_ref_alignment): Check if it is loop vectorization
3326         before calling nested_in_vect_loop_p.
3327         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3328         dependence instances from either loop or basic block vectorization
3329         info.
3330         (vect_verify_datarefs_alignment): Likewise.
3331         (vect_enhance_data_refs_alignment): Adjust function calls.
3332         (vect_analyze_data_refs_alignment): Likewise.
3333         (vect_analyze_group_access): Fix printing. Skip different checks if
3334         DR_STEP is 0. Keep strided stores either in loop or basic block
3335         vectorization data structure. Fix indentation.
3336         (vect_analyze_data_ref_access): Fix comments, allow zero step in
3337         basic blocks.
3338         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3339         dependence instances from either loop or basic block vectorization
3340         info.
3341         (vect_analyze_data_refs): Update comment. Call
3342         compute_data_dependences_for_bb to analyze basic blocks.
3343         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3344         case of loop vectorization. In case of basic block vectorization use
3345         data-ref itself as a base.
3346         (vect_create_data_ref_ptr): In case of basic block vectorization:
3347         don't advance the pointer, add new statements before the current
3348         statement.  Adjust function calls.
3349         (vect_supportable_dr_alignment): Support only aligned accesses in
3350         basic block vectorization.
3351         * common.opt (ftree-slp-vectorize): New flag.
3352         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3353         (vect_pattern_recog_1): Likewise.
3354         * tree-vect-stmts.c (process_use): Likewise.
3355         (vect_init_vector): Add new statements in the beginning of the basic
3356         block in case of basic block SLP.
3357         (vect_get_vec_def_for_operand): Adjust function calls.
3358         (vect_finish_stmt_generation): Likewise.
3359         (vectorizable_call): Add assert that it is loop vectorization, adjust
3360         function calls.
3361         (vectorizable_conversion, vectorizable_assignment): Likewise.
3362         (vectorizable_operation): In case of basic block SLP, take
3363         vectorization factor from statement's type and skip the relevance
3364         check. Adjust function calls.
3365         (vectorizable_type_demotion): Add assert that it is loop
3366         vectorization, adjust function calls.
3367         (vectorizable_type_promotion): Likewise.
3368         (vectorizable_store): Check for outer loop only in case of loop
3369         vectorization. Adjust function calls. For basic blocks, skip the
3370         relevance check and don't advance pointers.
3371         (vectorizable_load): Likewise.
3372         (vectorizable_condition): Add assert that it is loop vectorization,
3373         adjust function calls.
3374         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3375         that it is not reduction, get vector type, call only supported
3376         functions, skip loop specific parts.
3377         (vect_transform_stmt): Check for outer loop only in case of loop
3378         vectorization.
3379         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3380         (vect_is_simple_use): Fix comment, add new argument, fix conditions
3381         for external definition.
3382         * passes.c (pass_slp_vectorize): New pass.
3383         * tree-vect-slp.c (find_bb_location): New function.
3384         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3385         check for patterns only in loops.
3386         (vect_build_slp_tree): Add argument, adjust function calls, fail in
3387         case of multiple types in basic block SLP.
3388         (vect_mark_slp_stmts_relevant): New function.
3389         (vect_supported_load_permutation_p): Fix comment.
3390         (vect_analyze_slp_instance): Add argument. In case of basic block
3391         SLP, take vectorization factor from statement's type, check that
3392         unrolling factor is 1. Adjust function call. Save SLP instance in
3393         either loop or basic block vectorization structure. Return FALSE,
3394         if SLP failed.
3395         (vect_analyze_slp): Add argument. Get strided stores groups from
3396         either loop or basic block vectorization structure. Return FALSE
3397         if basic block SLP failed.
3398         (new_bb_vec_info): New function.
3399         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3400         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3401         (vect_schedule_slp): Add argument. Get SLP instances from either
3402         loop or basic block vectorization structure. Set vectorization factor
3403         to be 1 for basic block SLP.
3404         (vect_slp_transform_bb): New function.
3405         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3406
3407 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
3408
3409         * final.c (shorten_branches): Do not align labels for jump tables.
3410         (final_scan_insn): Use JUMP_TABLE_DATA_P.
3411
3412 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3413
3414         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3415         Remove outdated reference to flow.c and fix nits.
3416         * doc/gccint.texi: Tweak RTL description.
3417         * doc/rtl.texi: Likewise.
3418
3419 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
3420
3421         * config/avr/avr.c: Change my email address.
3422         * config/avr/avr.h: Likewise.
3423         * config/avr/avr.md: Likewise.
3424         * config/avr/avr-protos.h: Likewise.
3425         * config/avr/libgcc.S: Likewise.
3426
3427 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3428
3429         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3430         (spu_split_load, spu_split_store): Change return type to int.
3431         (spu_split_convert): Declare.
3432         * config/spu/predicates.md (spu_mem_operand): Remove.
3433         (spu_mov_operand): Update.
3434         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3435         * config/spu/spu.c (regno_aligned_for_load): Remove.
3436         (reg_aligned_for_addr, spu_expand_load): Define.
3437         (spu_expand_extv): Reimplement and handle MEM.
3438         (spu_expand_insv): Handle MEM.
3439         (spu_sched_reorder): Handle insn's with length 0.
3440         (spu_legitimate_address_p): Reimplement.
3441         (store_with_one_insn_p): Return TRUE for any mode with size
3442         larger than 16 bytes.
3443         (address_needs_split): Define.
3444         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3445         operands.
3446         (spu_convert_move): Define.
3447         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
3448         (spu_split_store): Change all MEM's to TImode.
3449         (spu_init_expanders): Preallocate registers that correspond to
3450         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3451         mark_reg_pointer.
3452         (spu_split_convert): Define.
3453         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3454         (_move<mode>, _movdi, _movti): Update predicate and condition.
3455         (load, store): Change to define_split.
3456         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3457         extend<mode>ti2.
3458         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3459         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3460         define_insn_and_split of lshr<mode>3.
3461         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3462         (<v>ashr<mode>3_imm): Define.
3463         (extv, extzv, insv): Allow MEM operands.
3464         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3465         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3466         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3467         (_spu_convert2): Change to define_insn_and_split and remove the
3468         corresponding define_peephole2.
3469         (stack_protect_set, stack_protect_test, stack_protect_test_si):
3470         Change predicates to memory_operand.
3471
3472 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3473
3474         * config/arm/thumb2.md: Add 16-bit multiply instructions.
3475
3476 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3477
3478         PR tree-optimization/40219
3479         * tree.c (iterative_hash_expr): Make sure the builtin function is
3480         a normal builtin function and not a front end or back end builtin
3481         before indexing into the built_in_decls array.
3482
3483 2009-05-22  Richard Guenther  <rguenther@suse.de>
3484
3485         PR middle-end/38964
3486         * alias.c (write_dependence_p): Do not use TBAA for answering
3487         anti-dependence or output-dependence.
3488         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
3489         (emit_pointer_definition): Remove.
3490         (emit_alias_warning): Likewise.
3491         (find_what_var_points_to): Remove TBAA pruning code.
3492         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
3493         violations.
3494         (compute_points_to_sets): Remove code computing the set of
3495         dereferenced pointers.
3496         * tree-data-ref.c (dr_may_alias_p): Properly use the split
3497         oracle for querying anti and output dependencies.
3498         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3499         if TBAA may be applied.
3500         (refs_anti_dependent_p): New function.
3501         (refs_output_dependent_p): Likewise.
3502         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3503         (refs_output_dependent_p): Likewise.
3504         * doc/tree-ssa.texi (Memory model): New section.
3505         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3506         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3507         * cfgexpand.c (expand_gimple_basic_block): Do not handle
3508         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3509         * expr.c (expand_expr_real_1): Likewise.
3510         * gimple-low.c (lower_stmt): Likewise.
3511         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3512         (dump_gimple_cdt): Remove.
3513         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3514         (gimple_size): Likewise.
3515         (walk_gimple_op): Likewise.
3516         (is_gimple_stmt): Likewise.
3517         (walk_stmt_load_store_addr_ops): Likewise.
3518         (gimple_build_cdt): Remove.
3519         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3520         * gimple.h (gimple_cdt_new_type): Remove.
3521         (gimple_cdt_new_type_ptr): Likewise.
3522         (gimple_cdt_set_new_type): Likewise.
3523         (gimple_cdt_location): Likewise.
3524         (gimple_cdt_location_ptr): Likewise.
3525         (gimple_cdt_set_location): Likewise.
3526         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3527         * tree-cfg.c (remove_useless_stmts_1): Do not handle
3528         GIMPLE_CHANGE_DYNAMIC_TYPE.
3529         (verify_types_in_gimple_stmt): Likewise.
3530         * tree-inline.c (estimate_num_insns): Likewise.
3531         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3532         (copy_decl_to_var): Likewise.
3533         (copy_result_decl_to_var): Likewise.
3534         * tree-pretty-print.c (dump_generic_node): Do not handle
3535         CHANGE_DYNAMIC_TYPE_EXPR.
3536         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3537         * tree-ssa-operands.c (get_expr_operands): Likewise.
3538         * tree-ssa-structalias.c (struct variable_info): Remove
3539         no_tbaa_pruning member.
3540         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3541         (unify_nodes): Do not copy it.
3542         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3543         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3544         (set_uids_in_ptset): Do not check it.
3545         (find_what_var_points_to): Likewise.
3546         (compute_tbaa_pruning): Remove.
3547         (compute_points_to_sets): Do not call it.
3548         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3549         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3550         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3551         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3552         (DECL_NO_TBAA_P): Likewise.
3553         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3554         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3555         (expand_omp_atomic_pipeline): Do not set it.
3556         * print-tree.c (print_node): Do not dump it.
3557         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3558         redundant check.
3559
3560 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3561
3562         PR target/39856
3563         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3564         for clobber.
3565
3566 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3567
3568         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3569         non-external.
3570
3571 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3572
3573         * Makefile.in (bversion.h, s-bversion): New targets.
3574         (TOPLEV_H): Add bversion.h.
3575         * toplev.h: Include "bversion.h".
3576         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3577         the __format__ attribute only if compiling with the same version
3578         of GCC as the sources (the "build version").
3579
3580 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3581
3582         * c-format.c (handle_format_attribute): Fix comment typo.
3583
3584 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
3585
3586         PR target/37846
3587         * config/ia64/ia64.opt (mfused-madd): New.
3588         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3589         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3590         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3591         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3592         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3593         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3594         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3595         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
3596         instruction if !TARGET_FUSED_MADD.
3597         (fpma, fpms): Remove colon from name.
3598
3599 2009-05-22  Richard Guenther  <rguenther@suse.de>
3600
3601         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3602         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
3603         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3604         TARGET_MEM_REF.
3605         (create_expression_by_pieces): Only convert if necessary.
3606         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3607         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3608
3609 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
3610
3611         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3612         regular pattern from a template and rename it ...
3613         (*extzv_truncsi_exts): ... to this.
3614
3615 2009-05-21  Richard Guenther  <rguenther@suse.de>
3616
3617         * cgraph.h (struct cgraph_node): Remove inline_decl member.
3618         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3619         (cgraph_default_inline_p): Likewise.
3620         (cgraph_decide_inlining_incrementally): Likewise.
3621
3622 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3623             Uros Bizjak  <ubizjak@gmail.com>
3624
3625         * config/i386/cpuid.h (bit_MOVBE): New.
3626
3627         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3628
3629         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3630         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3631         (ix86_handle_option): Handle OPT_mmovbe.
3632         (ix86_target_string): Add -mmovbe.
3633         (pta_flags): Add PTA_MOVBE.
3634         (processor_alias_table): Add PTA_MOVBE to "atom".
3635         (override_options): Handle PTA_MOVBE.
3636
3637         * config/i386/i386.h (TARGET_MOVBE): New.
3638
3639         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3640         (*bswapsi_movbe): New.
3641         (*bswapdi_movbe): Likewise.
3642         (bswapdi2): Renamed to ...
3643         (*bswapdi_1): This.
3644         (bswapdi2): New expander.
3645
3646         * config/i386/i386.opt (mmovbe): New.
3647
3648         * doc/invoke.texi: Document -mmovbe.
3649
3650 2009-05-21  Taras Glek  <tglek@mozilla.com>
3651
3652         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3653         * gcc-plugin.h (plugin_init): Updated signature.
3654         * gcc-plugin.h (plugin_name_args): Moved to this header.
3655         * doc/plugins.texi (plugin_init): Updated documention to reflect
3656         API change.
3657         * doc/plugins.texi (plugin_name_args): Added to documention.
3658
3659 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
3660
3661         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3662         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3663
3664 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
3665
3666         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3667         JUMP_TABLE_DATA_P predicates where applicable.
3668         * config/i386/predicates.md: Ditto.
3669         * config/i386/sse.md: Ditto.
3670
3671 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
3672
3673         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3674         operand2 -128 override length_immediate attribute to 1.
3675         * config/i386/predicates.md (constm128_operand): New predicate.
3676
3677         * config/i386/i386.c (memory_address_length): Handle %r12
3678         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
3679         also check REGNO.
3680         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3681         mode look through optional ZERO_EXTEND and SUBREG.
3682         * config/i386/i386.md (R12_REG): New define_constant.
3683         (prefix_data16): For sse unit set also for MODE_TI insns.
3684         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
3685         insns set if operand 1 is ext_QIreg_operand.
3686         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
3687         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3688         immediate.
3689         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3690         mode from MODE_DI to MODE_SI.
3691         (movdi_1_rex64): Override modrm and length_immediate attributes
3692         only for movabs (TYPE_IMOV, alternative 2).
3693         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3694         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3695         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3696         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3697         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3698         prefix_rex attribute if DImode.
3699         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3700         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3701         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3702         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3703         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3704         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3705         Likewise.  For TYPE_IMOV clear length_immediate attribute.
3706         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3707         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3708         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3709         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3710         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3711         or one operand TYPE_ISHIFT.
3712         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3713         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3714         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3715         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3716         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3717         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3718         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3719         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3720         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3721         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3722         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3723         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3724         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3725         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3726         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3727         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3728         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3729         set mode attribute, don't override length attribute.
3730         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3731         to 1.
3732         (return_internal_long): Set length attribute to 2 instead of 1.
3733         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3734         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3735         prefix_rex attribute.
3736         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3737         New predicates.
3738         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
3739
3740 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3741
3742         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3743
3744 2009-05-20  Ian Lance Taylor  <iant@google.com>
3745
3746         * tree.c (build_tree_list_vec_stat): New function.
3747         (ctor_to_vec): New function.
3748         (build_nt_call_vec): New function.
3749         (build_call_array): Change args to be a const pointer.
3750         (build_call_vec): New function.
3751         * tree.h (build_nt_call_vec): Declare.
3752         (build_tree_list_vec_stat): Declare.
3753         (build_tree_list_vec): Define.
3754         (build_call_array): Update declaration.
3755         (build_call_vec): Declare.
3756         (ctor_to_vec): Declare.
3757         * c-common.c (tree_vector_cache): New static variable.
3758         (make_tree_vector): New function.
3759         (release_tree_vector): New function.
3760         (make_tree_vector_single): New function.
3761         (make_tree_vector_copy): New function.
3762         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3763         (make_tree_vector_single, make_tree_vector_copy): Declare.
3764         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3765         (c_parser_expr_list): Don't manage cache here, instead call
3766         make_tree_vector.
3767         (c_parser_release_expr_list): Remove static function.
3768         (c_parser_vec_to_tree_list): Remove static function.
3769         (c_parser_attributes): Call build_tree_list_vec instead of
3770         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
3771         c_parser_release_expr_list.
3772         (c_parser_postfix_expression_after_primary): Likewise.
3773         (c_parser_objc_keywordexpr): Likewise.
3774
3775 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3776
3777         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3778         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3779         TARGET_CONVERT_TO_TYPE.
3780         * hooks.c (hook_tree_const_tree_null): Define.
3781         * hooks.h (hook_tree_const_tree_null): Declare.
3782         * target.h (struct gcc_target):  Add invalid_parameter_type,
3783         invalid_return_type, promoted_type, and convert_to_type fields.
3784         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3785         (TARGET_INVALID_RETURN_TYPE): Define.
3786         (TARGET_PROMOTED_TYPE): Define.
3787         (TARGET_CONVERT_TO_TYPE): Define.
3788         (TARGET_INITIALIZER): Update for new fields.
3789         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3790         (grokparms): Check targetm.invalid_parameter_type.
3791         * c-typeck.c (default_conversion): Check targetm.promoted_type.
3792         * c-convert.c (convert): Check targetm.convert_to_type.
3793
3794 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
3795
3796         * config/mips/mips.md (*extenddi_truncate<mode>,
3797         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
3798         defintions.
3799         (*extendhi_truncateqi): New define_insn_and_sptit.
3800
3801 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
3802
3803         PR middle-end/40204
3804         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
3805         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
3806
3807 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3808
3809         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3810         the operand of VIEW_CONVERT_EXPR.
3811
3812 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3813
3814         * config/i386/driver-i386.c (host_detect_local_cpu): Check
3815         extended family and model for Intel processors.  Support Intel Atom.
3816
3817 2009-05-20  Olivier Hainque  <hainque@adacore.com>
3818
3819         * gstab.h (stab_code_type): Define, to be used instead of the
3820         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
3821         notice.
3822         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3823         occurrences by stab_code_type.
3824         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3825
3826 2009-05-20  Martin Jambor  <mjambor@suse.cz>
3827
3828         * tree-flow.h (insert_edge_copies_seq): Undeclare.
3829         (sra_insert_before): Likewise.
3830         (sra_insert_after): Likewise.
3831         (sra_init_cache): Likewise.
3832         (sra_type_can_be_decomposed_p): Likewise.
3833         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3834         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3835         (sra_insert_before): Likewise.
3836         (sra_insert_after): Likewise.
3837         (sra_init_cache): Likewise.
3838         (insert_edge_copies_seq): Made static and moved upwards.
3839
3840         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3841         case.
3842
3843         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3844
3845         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3846         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3847         simple copies.
3848
3849 2009-05-20  Richard Guenther  <rguenther@suse.de>
3850
3851         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3852         with mismatched comparison modes.
3853
3854 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3855
3856         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
3857         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3858         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3859         with shifts for Thumb2.
3860         (orsi_notsi): New for orn.
3861         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3862         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3863         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3864         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3865         Don't invert remainder for IOR.
3866         
3867 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
3868
3869         PR tree-optimization/40087
3870         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3871         number_of_iterations_ne): Rename never_infinite argument.
3872         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3873         number_of_iterations_le): Handle pointer-type ivs when
3874         exit_must_be_taken is false.
3875         (number_of_iterations_cond):  Do not always assume that
3876         exit_must_be_taken if the control variable is a pointer.
3877
3878 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3879
3880         * c-typeck.c (build_binary_op): Allow % on integal vectors.
3881         * doc/extend.texi (Vector Extension): Document that % is allowed too.
3882
3883 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3884
3885         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3886         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3887
3888 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3889
3890         PR c/40172
3891         * c.opt (Wlogical-op): Disabled by default.
3892         * c-opt (c_common_post_options): Do not enable Wlogical-op with
3893         Wextra.
3894         * doc/invoke.texi (Wlogical-op): Likewise.
3895         
3896 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3897
3898         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3899         into CASE_CONVERT.
3900         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3901         Propagate the type of the first operand.
3902         <ASSERT_EXPR>: Simplify.
3903         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3904         Rewrite using the RHS code as discriminant.
3905         <NOP_EXPR>: Turn into CASE_CONVERT.
3906         <PLUS_EXPR>: Propagate the type of the first operand.
3907
3908 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
3909
3910         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3911         (ia64_dconst_0_375): New.
3912         * config/ia64/ia64.c (ia64_override_options): Remove
3913         -minline-sqrt-min-latency warning.
3914         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3915         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3916         * config/ia64/ia64.md (*sqrt_approx): Remove.
3917         (sqrtsf2): Remove #if 0.
3918         (sqrtsf2_internal_thr): Rewrite and move to div.md.
3919         (sqrtdf): Remove assert.
3920         (sqrtdf2_internal_thr): Rewrite and move to div.md.
3921         (sqrtxf2): Remove #if 0.
3922         (sqrtxf2_internal_thr): Rewrite and move to div.md.
3923         * div.md (sqrt_approx_rf): New.
3924         (sqrtsf2_internal_thr): New implementation.
3925         (sqrtsf2_internal_lat): New.
3926         (sqrtdf2_internal_thr: New implementation.
3927         (sqrtxf2_internal): New implementation.
3928
3929 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
3930             Hans-Peter Nilsson  <hp@axis.com>
3931
3932         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3933         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3934         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3935         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3936         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3937         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3938         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3939         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3940         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3941         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3942         * c-common.c: ...from here.
3943
3944 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3945
3946         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
3947
3948 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3949
3950         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3951
3952 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3953
3954         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3955         assignments with memcpy calls.
3956         (add_fdes): Likewise.
3957         (binary_search_unencoded_fdes): Likewise.
3958         (linear_search_fdes): Eliminate type puns.
3959         
3960 2009-05-19  Richard Guenther  <rguenther@suse.de>
3961
3962         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3963         not falsely claim to have propagated into all uses.
3964
3965 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3966
3967         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3968         version to v3.0.
3969
3970 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3971
3972         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3973         * config/sh/sh.c (sh_legitimate_address_p): Make static.
3974         (TARGET_LEGITIMATE_ADDRESS_P): New.
3975         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3976         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3977         
3978 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
3979
3980         PR debug/40109
3981         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3982         child of the containing namespace's DIE.
3983
3984 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
3985
3986         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3987         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
3988         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3989         extend patterns.
3990
3991 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
3992
3993         PR target/39942
3994         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3995         gen_align with gen_pad.
3996         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3997         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3998
3999         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4000         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4001
4002         * config/i386/i386.md (align): Renamed to ...
4003         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4004         ASM_OUTPUT_MAX_SKIP_PAD.
4005
4006 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
4007
4008         * config.gcc: Fix variable syntax.
4009
4010         PR target/39531
4011         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4012         before calling exact_log2.
4013         (output_iorsi3): Likewise.
4014         (output_xorsi3): Likewise.
4015
4016 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4017
4018         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4019         for the none zero constant operand except for EQ and NE
4020         comprisons even when the first operand is R0.
4021
4022 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
4023
4024         * config/s390/2064.md: Remove trailing whitespaces.
4025         * config/s390/2084.md: Likewise.
4026         * config/s390/constraints.md: Likewise.
4027         * config/s390/fixdfdi.h: Likewise.
4028         * config/s390/libgcc-glibc.ver: Likewise.
4029         * config/s390/s390-modes.def: Likewise.
4030         * config/s390/s390-protos.h: Likewise.
4031         * config/s390/s390.c: Likewise.
4032         * config/s390/s390.h: Likewise.
4033         * config/s390/s390.md: Likewise.
4034         * config/s390/tpf-unwind.h: Likewise.
4035
4036 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4037
4038         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4039
4040 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4041
4042         M68K TLS support.
4043         * configure.ac (m68k-*-*): Check if binutils support TLS.
4044         * configure: Regenerate.
4045         * config/m68k/predicates.md (symbolic_operand): Extend comment.
4046         * config/m68k/constraints.md (Cu): New constraint.
4047         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4048         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4049         (movsi): Handle TLS symbols.
4050         (addsi3_5200): Handle XTLS symbols, indent.
4051         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4052         (m68k_tls_reference_p): Declare.
4053         (m68k_legitimize_address): Declare.
4054         (m68k_unwrap_symbol): Declare.
4055         * config/m68k/m68k.opt (mxtls): New option.
4056         * config/m68k/m68k.c (ggc.h): Include.
4057         (m68k_output_dwarf_dtprel): Implement hook.
4058         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4059         (m68k_expand_prologue): Load GOT pointer when function needs it.
4060         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4061         (m68k_legitimate_constant_address_p): Same.
4062         (m68k_decompose_address): Handle TLS references.
4063         (m68k_get_gp): New static function.
4064         (enum m68k_reloc): New contants.
4065         (TLS_RELOC_P): New macro.
4066         (m68k_wrap_symbol): New static function.
4067         (m68k_unwrap_symbol): New function.
4068         (m68k_final_prescan_insn_1): New static function.
4069         (m68k_final_prescan_insn): New function.
4070         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4071         functions.
4072         (legitimize_pic_address): Handle TLS references..
4073         (m68k_tls_get_addr, m68k_get_tls_get_addr)
4074         (m68k_libcall_value_in_a0_p)
4075         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4076         (m68k_call_m68k_read_tp): Helper variables and functions for ...
4077         (m68k_legitimize_tls_address): Handle TLS references.
4078         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4079         New functions.
4080         (m68k_legitimize_address): Handle TLS symbols.
4081         (m68k_get_reloc_decoration): New static function.
4082         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4083         UNSPEC_RELOC32.
4084         (m68k_output_dwarf_dtprel): Implement hook.
4085         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4086         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4087         m68k_call_* routines.
4088         (sched_attr_op_type): Handle TLS symbols.
4089         (gt-m68k.h): Include.
4090         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4091         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4092
4093 2009-05-18  Martin Jambor  <mjambor@suse.cz>
4094
4095         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4096         (visit_store_addr_for_mod_analysis): New function.
4097         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4098         (determine_cst_member_ptr): Use gimple_assign_single_p.
4099         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4100         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4101         operands.  Don't check number of operands of a NOP_EXPR.
4102
4103 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
4104
4105         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4106
4107 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4108
4109         PR c/40172
4110         * c-common.c (warn_logical_operator): Don't warn if one of
4111         expression isn't always true or false.
4112
4113 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
4114
4115         * config/i386/biarch32.h: New file.
4116         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
4117
4118 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
4119
4120         * config/mips/mips.md (*zero_extend<mode>_trunchi,
4121         *zero_extend<mode>_truncqi): Merge these into ...
4122         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4123         Name the pattern following this as *zero_extendhi_truncqi.
4124
4125 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
4126
4127         PR middle-end/39301
4128         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4129         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4130         (output_info): Make field HOST_WIDEST_INT.
4131         (print_statistics): Use HOST_WIDEST_INT_PRINT.
4132         (dump_bitmat_statistics): Same.
4133
4134 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
4135
4136         * config.gcc (use_gcc_stdint):  Set to wrap.
4137         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4138         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4139         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4140         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4141         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4142         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4143         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4144         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4145
4146 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
4147
4148         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4149         tune_64.
4150         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4151         Move definitions earlier.
4152         (OPT_ARCH64, OPT_ARCH32): Define.
4153         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4154         and tune_64.
4155
4156 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
4157
4158         PR target/40153
4159         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4160         implies.
4161
4162 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
4163
4164         * arm.md (movdi2): Copy non-reg values to DImode registers.
4165
4166 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
4167
4168         PR target/39942
4169         * final.c (label_to_max_skip): New function.
4170         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4171         CODE_LABEL_NUMBER <= max_labelno.
4172         * output.h (label_to_max_skip): New prototype.
4173         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4174         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
4175         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
4176         Handle CODE_LABELs with >= 16 byte alignment or with
4177         max_skip == (1 << align) - 1.
4178         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4179         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4180
4181         PR target/39942
4182         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4183         .p2align 3 if MAX_SKIP is smaller than 7.
4184         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4185
4186 2009-05-15  Ian Lance Taylor  <iant@google.com>
4187
4188         * alias.c (struct alias_set_entry_d): Rename from struct
4189         alias_set_entry.  Change all uses.
4190         * except.c (struct call_site_record_d): Rename from struct
4191         call_site_record.  Change all uses.
4192         * except.h (struct eh_region_d): Rename from struct eh_region.
4193         Change all uses.
4194         * gcse.c (struct hash_table_d): Rename from struct hash_table.
4195         Change all uses.
4196         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4197         ivtype_map_elt.  Change all uses.
4198         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4199         Change all uses.
4200         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
4201         * graphite.h (struct name_tree_d): Rename from struct name_tree.
4202         Change all uses.
4203         (struct sese_d): Rename from struct sese.  Change all uses.
4204         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
4205         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
4206         * optabs.h (struct optab_d): Rename from struct optab.  Change all
4207         uses.
4208         (struct convert_optab_d): Rename from struct convert_optab.
4209         Change all uses.
4210         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4211         ipa_opt_pass.  Change all uses.
4212         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
4213         all uses.
4214
4215         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4216         defined as a typedef.
4217         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4218         defined as a tag.
4219
4220 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4221
4222         PR 16302
4223         * fold-const.c (make_range,build_range_check,merge_ranges): Move
4224         declaration to...
4225         (merge_ranges): Returns bool. 
4226         * tree.h (make_range): .. to here.
4227         (build_range_check): Likewise.
4228         (merge_ranges): Likewise. Renamed from merge_ranges.
4229         * c-typeck.c (parser_build_binary_op): Update calls to
4230         warn_logical_operator.
4231         * c-common.c (warn_logical_operator): Add new warning.
4232         * c-common.h (warn_logical_operator): Update declaration.
4233         
4234 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4235
4236         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
4237         
4238 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4239
4240         * doc/install.texi: Document MPC requirements, flags etc.
4241
4242         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4243         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4244         Evaluate constant arguments.
4245         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4246         (fold_builtin_1): Likewise, also evaluate constant arguments.
4247         Remove superfluous break.
4248         (do_mpc_ckconv): New.
4249         * real.h: Include mpc.h.
4250         * toplev.c (print_version): Output MPC version info if available.
4251
4252 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4253
4254         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
4255
4256 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4257
4258         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4259         only once.
4260
4261 2009-05-15  Jan Hubicka  <jh@suse.cz>
4262
4263         * doc/invoke.texi (max-early-inliner-iterations): New flag.
4264         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4265         (try_inline): Fix return value.
4266         (cgraph_decide_inlining_incrementally): Honor new value.
4267         (cgraph_early_inlining): Handle indirect inlining.
4268         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4269
4270 2009-05-15  Jan Hubicka  <jh@suse.cz>
4271
4272         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4273         * cgraphunit.c (cgraph_finalize_function): Set it.
4274         (cgraph_expand_function): Use it.
4275
4276 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4277
4278         * real.c (encode_ieee_half): Define.
4279         (decode_ieee_half): Define.
4280         (ieee_half_format): Define.
4281         (arm_half_format): Define.
4282         * real.h (ieee_half_format): Declare.
4283         (arm_half_format): Declare.
4284
4285 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4286
4287         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
4288         swapped, and reversed optabs exist before trying to use them.
4289
4290 2009-05-15  Paul Brook  <paul@codesourcery.com>
4291             Sandra Loosemore  <sandra@codesourcery.com>
4292
4293         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4294         loads.  Allow PRE_DEC.
4295         (output_move_neon): Handle PRE_DEC.
4296         (arm_print_operand): Add 'A' for neon structure loads.
4297         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4298         * config/arm/neon.md (neon_mov): Update comment.
4299         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4300         calls.
4301         (Um): New constraint.
4302
4303 2009-05-15  Jan Hubicka  <jh@suse.cz>
4304
4305         Revert the following patch until testsuite fallout is fixed:
4306         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4307         * cgraph.h (struct inline_summary): New filed self_wize,
4308         size_inlining_benefit, self_time and time_inlining_benefit.
4309         (struct cgraph_global_info): Replace insns by time ans size fields.
4310         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4311         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4312         (ipcp_update_callgraph): Do not touch function bodies.
4313         * ipa-inline.c: Include except.h
4314         (MAX_TIME): New constant.
4315         (overall_insns): Remove
4316         (overall_size, max_benefit): New static variables.
4317         (cgraph_estimate_time_after_inlining): New function.
4318         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4319         (cgraph_clone_inlined_nodes): Update size.
4320         (cgraph_mark_inline_edge): Update size.
4321         (cgraph_estimate_growth): Use size info.
4322         (cgraph_check_inline_limits): Check size.
4323         (cgraph_default_inline_p): Likewise.
4324         (cgraph_edge_badness): Compute badness based on benefit and size cost.
4325         (cgraph_decide_recursive_inlining): Check size.
4326         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4327         and times.
4328         (cgraph_decide_inlining): Likewise.
4329         (cgraph_decide_inlining_incrementally): Likewise; honor
4330         PARAM_EARLY_INLINING_INSNS.
4331         (likely_eliminated_by_inlining_p): New predicate.
4332         (estimate_function_body_sizes): New function.
4333         (compute_inline_parameters): Use it.
4334         * except.c (must_not_throw_labels): New function.
4335         * except.h (must_not_throw_labels): Declare.
4336         * tree-inline.c (init_inline_once): Kill inlining_weigths
4337         * tree-ssa-structalias.c: Avoid uninitialized warning.
4338         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4339         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4340         (PARAM_INLINE_CALL_COST): Remove.
4341         (PARAM_EARLY_INLINING_INSNS): New.
4342
4343 2009-05-15  Richard Guenther  <rguenther@suse.de>
4344
4345         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
4346         not TODO_update_ssa.
4347
4348 2009-05-15  Richard Guenther  <rguenther@suse.de>
4349
4350         PR tree-optimization/39999
4351         * gimple.h (gimple_expr_type): Use the expression type looking
4352         through useless conversions.
4353         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
4354         (vn_nary_op_insert_stmt): Likewise.
4355         (simplify_binary_expression): Likewise.
4356
4357 2009-05-15  Richard Guenther  <rguenther@suse.de>
4358
4359         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4360         New options, enabled by default.
4361         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
4362         Document.
4363         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
4364         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
4365         * tree-ssa-structalias.c (gate_tree_pta): New function.
4366         (pass_build_alias): Use it.
4367
4368 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
4369
4370         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4371         recurse on an invariant address if a conversion from a pointer
4372         type to a wider integer type is involved.
4373
4374 2009-05-15  Jan Hubicka  <jh@suse.cz>
4375
4376         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4377         * cgraph.h (struct inline_summary): New filed self_wize,
4378         size_inlining_benefit, self_time and time_inlining_benefit.
4379         (struct cgraph_global_info): Replace insns by time ans size fields.
4380         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4381         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4382         (ipcp_update_callgraph): Do not touch function bodies.
4383         * ipa-inline.c: Include except.h
4384         (MAX_TIME): New constant.
4385         (overall_insns): Remove
4386         (overall_size, max_benefit): New static variables.
4387         (cgraph_estimate_time_after_inlining): New function.
4388         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4389         (cgraph_clone_inlined_nodes): Update size.
4390         (cgraph_mark_inline_edge): Update size.
4391         (cgraph_estimate_growth): Use size info.
4392         (cgraph_check_inline_limits): Check size.
4393         (cgraph_default_inline_p): Likewise.
4394         (cgraph_edge_badness): Compute badness based on benefit and size cost.
4395         (cgraph_decide_recursive_inlining): Check size.
4396         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4397         and times.
4398         (cgraph_decide_inlining): Likewise.
4399         (cgraph_decide_inlining_incrementally): Likewise; honor
4400         PARAM_EARLY_INLINING_INSNS.
4401         (likely_eliminated_by_inlining_p): New predicate.
4402         (estimate_function_body_sizes): New function.
4403         (compute_inline_parameters): Use it.
4404         * except.c (must_not_throw_labels): New function.
4405         * except.h (must_not_throw_labels): Declare.
4406         * tree-inline.c (init_inline_once): Kill inlining_weigths
4407         * tree-ssa-structalias.c: Avoid uninitialized warning.
4408         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4409         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4410         (PARAM_INLINE_CALL_COST): Remove.
4411         (PARAM_EARLY_INLINING_INSNS): New.
4412         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
4413         (inline-call-cost): Remove.
4414         (early-inlining-insns): New.
4415
4416 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4417
4418         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
4419         for bounds.
4420         (print_int_cst_bounds_in_octal_p): Likewise.
4421         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
4422         with subtypes.
4423         * dwarf2out.c (base_type_die): Likewise.
4424         (is_subrange_type): Delete.
4425         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
4426         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
4427         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
4428         if the destination type is boolean.
4429         (build_range_check): Do not special-case subtypes.
4430         (fold_sign_changed_comparison): Likewise.
4431         (fold_unary): Likewise.
4432         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
4433         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
4434         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
4435         * tree.c (subrange_type_for_debug_p): New predicate based on the
4436         former is_subrange_type.
4437         * tree.h (subrange_type_for_debug_p): Declare.
4438         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
4439         (convert_affine_scev): Remove call to above function.
4440         (chrec_convert_aggressive): Likewise.
4441         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
4442         false for conversions involving subtypes.
4443         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
4444         (vrp_val_min): Likewise.
4445         (needs_overflow_infinity): Likewise.
4446         (extract_range_from_unary_expr): Likewise.
4447
4448 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
4449
4450         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4451         * config/frv/frv.c: Likewise.
4452         * config/s390/s390.c: Likewise.
4453         * config/sparc/sparc.h: Likewise.
4454         * config/i386/i386.h: Likewise.
4455         * config/i386/i386.c: Likewise.
4456         * config/crx/crx.c: Likewise.
4457         * config/m68hc11/m68hc11.h: Likewise.
4458         * config/iq2000/iq2000.c: Likewise.
4459         * config/mn10300/mn10300.h: Likewise.
4460         * config/mn10300/mn10300.c: Likewise.
4461         * config/m68k/m68k.c: Likewise.
4462         * config/rs6000/rs6000.c: Likewise.
4463         * config/rs6000/xcoff.h: Likewise.
4464         * config/rs6000/linux64.h: Likewise.
4465         * config/rs6000/sysv4.h: Likewise.
4466         * config/score/score3.c: Likewise.
4467         * config/score/score7.c: Likewise.
4468         * config/score/score.c: Likewise.
4469         * config/arm/arm.md: Likewise.
4470         * config/mips/mips.c: Likewise.
4471         * config/mips/mips.md: Likewise.
4472         * config/bfin/bfin.h: Likewise.
4473         * config/pa/pa.c: Likewise.
4474         * config/pa/constraints.md: Likewise.
4475
4476         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
4477         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
4478         * config/pdp11/pdp11.h: Use memory_address_p instead.
4479
4480 2009-05-14  Ian Lance Taylor  <iant@google.com>
4481
4482         * passes.c (finish_optimization_passes): Change i to int.
4483         * plugin.c (plugins_active_p): Change event to int.
4484         (dump_active_plugins): Likewise.
4485         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
4486         Add cast.
4487         * tree.c (tree_range_check_failed): Change c to unsigned int.
4488         (omp_clause_range_check_failed): Likewise.
4489         (build_common_builtin_nodes): Change mode to int.  Add cast.
4490         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
4491         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
4492
4493         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
4494         ++ or -- with a variable of enum type.
4495
4496 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
4497
4498         PR driver/40144
4499         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
4500
4501 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
4502
4503         * store-motion.c: Do not include params.h
4504         * Makefile.in: Fix dependencies for various files.
4505
4506 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
4507
4508         * auto-inc-dec.c: Fix pass description, remove apparent
4509         accidental duplication.
4510
4511 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
4512
4513         PR middle-end/40147
4514         * ipa-utils.h (memory_identifier_string): Moved to ...
4515         * tree.h (memory_identifier_string): Here.  Add GTY(()).
4516
4517 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
4518
4519         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4520         in the former documentation of...
4521         (GO_IF_LEGITIMATE_ADDRESS): ... this.
4522         * ira-conflicts.c (get_dup_num): Use address_operand.
4523         * targhooks.c (default_legitimate_address_p): New.
4524         * targhooks.h (default_legitimate_address_p): New.
4525         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
4526         Call hook.
4527         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
4528         * target.h (struct target): Add legitimate_address_p.
4529         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
4530         (TARGET_INITIALIZER): Include it.
4531
4532         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4533         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
4534         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
4535         (TARGET_LEGITIMATE_ADDRESS_P): New.
4536
4537         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4538         (REG_OK_STRICT_P): Delete.
4539         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
4540         (frv_legitimate_address_p_1): ... this.
4541         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
4542         (frv_legitimate_address_p_1): ... the renamed old
4543         frv_legitimate_address_p.
4544         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
4545         (TARGET_LEGITIMATE_ADDRESS_P): New.
4546
4547         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4548         * config/s390/s390-protos.h (legitimate_address_p): Remove.
4549         * config/s390/s390.c (legitimate_address_p): Rename to...
4550         (s390_legitimate_address_p): ... this, make static.
4551         (legitimize_address): Adjust call.
4552         (TARGET_LEGITIMATE_ADDRESS_P): New.
4553         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
4554
4555         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4556         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
4557         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
4558         (TARGET_LEGITIMATE_ADDRESS_P): New.
4559
4560         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4561         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
4562         * config/spu/spu.c (spu_legitimate_address): Rename to...
4563         (spu_legitimate_address_p): ... this, make static.
4564         (TARGET_LEGITIMATE_ADDRESS_P): New.
4565
4566         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4567         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
4568         * config/sparc/sparc.c (legitimate_address_p): Rename to...
4569         (sparc_legitimate_address_p): ... this, make static and return bool.
4570         (legitimize_address): Adjust call.
4571         (TARGET_LEGITIMATE_ADDRESS_P): New.
4572
4573         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4574         * config/i386/i386-protos.h (legitimate_address_p): Remove.
4575         * config/i386/i386.c (legitimate_address_p): Rename to...
4576         (ix86_legitimate_address_p): ... this, make static.
4577         (constant_address_p): Move after it, adjust call.
4578         (TARGET_LEGITIMATE_ADDRESS_P): New.
4579
4580         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4581         * config/avr/avr-protos.h (legitimate_address_p): Remove.
4582         * config/avr/avr.c (legitimate_address_p): Rename to...
4583         (avr_legitimate_address_p): ... this, make static.
4584         (legitimize_address): Adjust call.
4585         (TARGET_LEGITIMATE_ADDRESS_P): New.
4586
4587         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4588         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4589         * config/crx/crx.c (crx_legitimate_address_p): Make static.
4590         (TARGET_LEGITIMATE_ADDRESS_P): New.
4591
4592         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4593         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4594         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4595         (TARGET_LEGITIMATE_ADDRESS_P): New.
4596
4597         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4598         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4599         Remove.
4600         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4601         Make static.
4602         (TARGET_LEGITIMATE_ADDRESS_P): New.
4603
4604         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4605         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4606         Remove.
4607         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4608         Rename to...
4609         (m68hc11_legitimate_address_p): ... this, make static.
4610         (go_if_legitimate_address_internal): Rename to...
4611         (m68hc11_legitimate_address_p_1): ... this.
4612         (legitimize_address): Adjust call.
4613         (TARGET_LEGITIMATE_ADDRESS_P): New.
4614
4615         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4616         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4617         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
4618         (TARGET_LEGITIMATE_ADDRESS_P): New.
4619
4620         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4621         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4622         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4623         (mn10300_legitimate_address_p): ... this, make static.
4624         (TARGET_LEGITIMATE_ADDRESS_P): New.
4625
4626         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4627         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4628         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4629         (TARGET_LEGITIMATE_ADDRESS_P): New.
4630
4631         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4632         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4633         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4634         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4635         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4636         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4637         (rs6000_legitimate_address_p): ... this, make static.
4638         (TARGET_LEGITIMATE_ADDRESS_P): New.
4639         (REG_MODE_OK_FOR_BASE_P): Delete.
4640         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4641
4642         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4643         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4644         Delete.
4645         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4646         static, adjust types.
4647         (TARGET_LEGITIMATE_ADDRESS_P): New.
4648
4649         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4650         * config/score/score.c (score_address_p): Rename to...
4651         (score_legitimate_address_p): ... this.
4652         (TARGET_LEGITIMATE_ADDRESS_P): New.
4653         * config/score/score3.c (score3_address_p): Rename to...
4654         (score3_legitimate_address_p): ... this.
4655         * config/score/score7.c (score7_address_p): Rename to...
4656         (score7_legitimate_address_p): ... this.
4657
4658         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4659         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4660         GO_IF_LEGITIMATE_ADDRESS): Delete.
4661         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4662         thumb2_legitimate_address_p): Delete.
4663         (arm_legitimate_address_p): Rename to...
4664         (arm_legitimate_address_outer_p): ... this.
4665         * config/arm/constraints.md ("Uq"): Adjust call.
4666         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
4667         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4668         to...
4669         (arm_legitimate_address_outer_p): ... this.
4670         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4671         static.
4672         (TARGET_LEGITIMATE_ADDRESS_P): New.
4673
4674         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4675         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4676         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4677         (TARGET_LEGITIMATE_ADDRESS_P): New.
4678
4679         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4680         * config/vax/vax-protos.h (legitimate_address_p): Remove.
4681         * config/vax/vax.c (legitimate_address_p): Rename to...
4682         (vax_legitimate_address_p): ... this, make static.
4683         (TARGET_LEGITIMATE_ADDRESS_P): New.
4684
4685         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4686         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4687         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4688         (TARGET_LEGITIMATE_ADDRESS_P): New.
4689
4690         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4691         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4692         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4693         (mmix_legitimate_address_p): ... this, make static.
4694         (TARGET_LEGITIMATE_ADDRESS_P): New.
4695
4696         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4697         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4698         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4699         (TARGET_LEGITIMATE_ADDRESS_P): New.
4700
4701 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
4702
4703         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4704         of MODE_COMPLEX_INT.
4705
4706 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4707
4708         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4709         LCT_NORMAL in function call.
4710         * mips-tdump.c (print_file_desc): Add cast to enum type.
4711         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4712         (mark_stabs): Add casts to enum types.
4713         (parse_stabs_common): Add casts to enum types.
4714
4715 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
4716
4717         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4718         Check for invalid values of LETTER.
4719
4720 2009-05-13  Taras Glek  <tglek@mozilla.com>
4721
4722         * attribs.c (register_attribute): moved out attribute registration
4723         into register_attribute.
4724         * doc/plugins.texi: Documented register_attribute and
4725         PLUGIN_ATTRIBUTES.
4726         * gcc-plugin.h: Added forward decl for register_attribute.
4727         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4728         * plugin.c (register_callback, invoke_plugin_callbacks): Added
4729         PLUGIN_ATTRIBUTES boilerplate.
4730
4731 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
4732
4733         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
4734         values even in sentinel and empty entries.
4735         (ms_printf_flag_specs):  Likewise.
4736         (ms_scanf_flag_specs):  Likewise.
4737         (ms_strftime_flag_specs):  Likewise.
4738         (ms_print_char_table):  Likewise.
4739         (ms_scan_char_table):  Likewise.
4740         (ms_time_char_table):  Likewise.
4741
4742 2009-05-13  Doug Kwan  <dougkwan@google.com>
4743
4744         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4745
4746 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
4747
4748         * config/mips/mips.md (store): Add attributes for QI and HI.
4749         Update comment.
4750         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4751         (truncdi<mode>2): ... this new pattern.
4752
4753 2009-05-13  Brad Hards  <bradh@kde.org>
4754
4755         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4756
4757 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
4758             Ben Elliston <bje@au.ibm.com>
4759
4760         PR middle-end/40035
4761         * dse.c (check_mem_read_rtx): Guard against width == -1.
4762
4763 2009-05-13  Michael Matz  <matz@suse.de>
4764
4765         PR middle-end/39976
4766         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4767         (trivially_conflicts_p): New function.
4768         (insert_backedge_copies): Use it.
4769
4770 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
4771
4772         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4773         (handle_stdc_pragma): Use new enum constant names.
4774         (handle_pragma_float_const_decimal64): Ditto.
4775
4776 2009-05-13  Ian Lance Taylor  <iant@google.com>
4777
4778         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4779         tree.def.
4780
4781 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
4782
4783         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4784         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4785         multilibs.
4786         * config/m68k/m68k.h (FL_UCLINUX): Define.
4787
4788 2009-05-13  Jan Hubicka  <jh@suse.cz>
4789
4790         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4791
4792 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4793
4794         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4795         unless -fschedule-insns is specified.
4796
4797 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4798
4799         PR target/39561
4800         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4801         TARGET_EXPAND_CBRANCHDI4.
4802         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4803         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4804         (cmpeqdi): Fix comment.
4805
4806 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4807
4808         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4809         (sh_legitimate_address_p): Likewise.
4810         * config/sh/sh.c (sh_legitimate_index_p): New.
4811         (sh_legitimate_address_p): Likewise.
4812         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4813         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4814         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4815         (MAYBE_BASE_REGISTER_RTX_P): New macro.
4816         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4817         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4818         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4819         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4820         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4821
4822 2009-05-12  Jan Hubicka  <jh@suse.cz>
4823
4824         * tree-inline.c (estimate_operator_cost): Add operands;
4825         when division happens by constant, it is cheap.
4826         (estimate_num_insns): Loads and stores are not having cost of 0;
4827         EH magic stuff is cheap; when computing runtime cost of switch,
4828         use log2 base of amount of its cases; builtin_expect has cost of 0;
4829         compute cost for moving return value of call.
4830         (init_inline_once): Initialize time_based flags.
4831         * tree-inline.h (eni_weights_d): Add time_based flag.
4832
4833 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4834
4835         * df-core.c: Update head documentation.
4836
4837 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4838
4839         PR bootstrap/40118
4840         * rs6000.c (rs6000_generate_compare): Use op1b instead of
4841         shadowing exisiting variable op1.
4842
4843 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
4844
4845         PR target/37179
4846         * config/i386/driver-i386.c (processor_signatures): New enum.
4847         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4848         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4849         processor signature to detect geode processor.
4850
4851 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4852
4853         Revert:
4854
4855         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4856
4857         * optabs.c (prepare_cmp_insn): Temporarily disable test that
4858         causes spurious differences between trunk and cond-optab branch.
4859
4860 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4861
4862         * dojump.c (compare_from_rtx): Delete.
4863         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
4864         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
4865         if the comparison does not satisfy the predicate; test predicates for
4866         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
4867         further if one existing pattern fails.
4868         * expr.h (compare_from_rtx): Delete.
4869         (prepare_operand): Declare it.
4870         * optabs.c: Change "lib call" to "libcall" throughout.
4871         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
4872         HAVE_conditional_trap, emit_cmp_insn): Delete.
4873         (can_compare_p): Delete cmp_optab case.
4874         (prepare_float_lib_cmp): Return an rtx and a machine mode.
4875         Accept other parameters by value.
4876         (prepare_operand): Make non-static.
4877         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
4878         other parameters by value.  Try to widen operands here based on
4879         an optab_methods argument and looking at cbranch_optab.
4880         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4881         loop.  Use cbranch_optab directly.
4882         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
4883         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4884         assertion.
4885         (emit_conditional_move, emit_conditional_add): Inline what's needed
4886         of compare_from_rtx, using new prepare_cmp_insn for the rest.
4887         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4888         with COMPARE.  Move cmov_optab and cstore_optab above
4889         with cbranch_optab, move cmp_optab down with ucmp_optab,
4890         remove tst_otpab.  Do not initialize trap_rtx.
4891         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
4892         for trap code.  Do not check HAVE_conditional_trap.  Use
4893         prepare_cmp_insn.  Accept no predicate for operand 3.
4894         * optabs.h (OTI_cmp): Mark as used only for libcalls.
4895         (OTI_ctrap, ctrap_optab): New.
4896         (tst_optab): Delete.
4897         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4898         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4899         with lookup of ctrap_optab.
4900         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4901         Delete.
4902         (ctrap_optab): New.
4903
4904         * combine.c (combine_simplify_rtx, simplify_set): Do not
4905         special case comparing against zero for cc0 machines.
4906         * simplify-rtx.c (simplify_binary_operation_1): Never remove
4907         COMPARE on cc0 machines.
4908         (simplify_relational_operation): Return a new expression when
4909         a COMPARE could be removed.
4910         * final.c (final_scan_insn): Compare cc_status values
4911         against LHS of a (compare FOO (const_int 0)) cc0 source.
4912         Also check if cc_status.value is the full compare.
4913
4914         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4915         (cstoreMM4): Document.
4916         (conditional_trap): Document ctrapMM4 instead.
4917         (sync_compare_and_swapMM): Refer to cbranchcc4.
4918         (Dependent Patterns): Eliminate obsolete information referring to
4919         the old jump optimization phase.
4920         (Canonicalization): Include cbranchcc4 case, omit canonicalization
4921         of compares with 0 on cc0 machines.
4922         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4923         avoiding references to cc0.  Remove text about storing operands
4924         in cmpMM.
4925         * doc/tm.texi (Condition Codes): Include blurb on different
4926         condition code representations, separate into subsections for
4927         CC0, MODE_CC and conditional execution.
4928
4929         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4930         alpha_emit_setcc): Accept operands and a machine mode.
4931         * config/alpha/alpha.c (alpha_emit_conditional_branch):
4932         Get code/op0/op1 from operands, use machine mode argument
4933         instead of alpha_compare.fp_p.  Emit the branch here.
4934         (alpha_emit_setcc): Likewise, and return boolean.
4935         (alpha_emit_conditional_move): Likewise.  Assert that
4936         cmp_op_mode == cmp_mode, and simplify accordingly.
4937         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4938         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4939         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4940         Delete.
4941         (stack probe test): Use cbranchdi4.
4942         * config/alpha/predicates.md (alpha_cbranch_operator): New.
4943
4944         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
4945         * config/arc/arc.h (movsicc, movsfcc): Use it.
4946         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4947         (cbranchsi4, cstoresi4): New.
4948         (cmpsi, bCC and sCC expanders): Remove. 
4949
4950         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4951         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4952         * config/arm/predicates.md (arm_comparison_operator): Only include
4953         floating-point operators if there is a hardware floating-point unit.
4954         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4955         deferring to cbranch_cc and cstore_cc respectively.
4956         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4957         cbranch_cc, cstore_cc): New.
4958         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
4959         arm_compare_op1.
4960         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4961
4962         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4963         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4964         as an argument.
4965         (adjust_insn_length): Adjust calls.
4966         (avr_reorg): Handle (compare (foo) (const_int 0)).
4967         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4968         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4969         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4970         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4971         (bCC): Remove.
4972         (cbranchqi4, cbranchhi4, cbranchsi4): New.
4973         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4974
4975         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4976         (cbranchsi4, cstorebi4, cstoresi4): New.
4977         (movbisi): This insn is duplicate, split it to zero_extend.
4978         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4979         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
4980         (bfin_optimize_loop): Use cbranch expander.
4981         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4982         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4983         (bfin_bimode_comparison_operator): ... this.
4984         (bfin_direct_comparison_operator): New.
4985  
4986         * config/cris/cris.c (cris_normal_notice_update_cc): Look
4987         inside (compare FOO (const_int 0)).
4988         (cris_rtx_costs): Handle ZERO_EXTRACT.
4989         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4990         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4991         (*tstdi_v32): Delete.
4992         (*cmpdi_non_v32): Add M alternative for operand 1.
4993         (cmpsi, cmp<mode>): Make private.
4994         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4995         with COMPARE.
4996         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4997
4998         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4999         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5000         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
5001         (cc_reg_operand): New.
5002         (any_cond): Delete.
5003         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5004         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5005         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5006         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5007         crx_expand_scond): Delete.
5008
5009         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5010         (cbranchsi4): New.
5011         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5012         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5013
5014         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5015         cstoresi4, cstoresf4, cstoredf4): New.
5016         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5017         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5018         Receive the entire operands array.
5019         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5020         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5021         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5022         Get test/op0/op1 from the operands array.
5023         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5024
5025         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5026         (h8300_expand_store): New.
5027         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5028         (const_int 0)).
5029         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
5030         (h8300_expand_store): New.
5031         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5032         or do not try to produce (set (cc0) REG).
5033         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
5034         change a compare into a move to a scratch register.  Disable some
5035         peepholes when comparing with zero.
5036         (tstsi, tsthi, tstsi, cmpqi): Make private.
5037         (cmphi): Delete.
5038         (bCC, sCC): Delete.
5039         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5040         cstoresi4): New.
5041
5042         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5043         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5044         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5045         (ix86_emit_i387_log1p): Use cbranchxf2.
5046         (ix86_expand_setcc): Return void.
5047         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5048         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5049         cmp<MODEF>, cmpcc): Remove.
5050         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5051         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5052         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
5053         (sCC and bCC expanders): Remove.
5054         (stack_protect_test): Use cbranchcc4.
5055
5056         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5057         Delete.
5058         (ia64_expand_compare): Accept three rtx by reference and return void.
5059         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5060         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
5061         from *expr.  Update *expr with the BImode comparison to do.
5062         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5063         cmptf, bCC, sCC, conditional_trap): Delete.
5064         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
5065         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5066         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5067         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5068         * config/ia64/predicates.md (ia64_cbranch_operator): New.
5069
5070         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5071         type of last argument.
5072         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5073         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5074         use machine mode argument instead of branch_type.  Remove dead
5075         code for floating-point comparisons.
5076         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5077         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5078         Remove.
5079         (cbranchsi4, cstoresi4): New.
5080         * config/iq2000/predicates.md (reg_or_const_operand): New.
5081
5082         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5083         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5084         (b<code>_op): Rewrite to...
5085         (bcc_op): ... this, using match_operator.
5086         (s<code>_op): Rewrite to...
5087         (scc_op): ... this, using match_operator.
5088         (s<code>_24_op): Rewrite to...
5089         (scc_op_24): ... this, using match_operator.
5090         (s<code>_<mode>): Rewrite to...
5091         (cstore<mode>4): ... this, using match_operator.
5092         (s<code>_<mode>_24): Rewrite to...
5093         (cstore<mode>4_24): ... this, using match_operator.
5094         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5095         m32c_unpend_compare, m32c_expand_scc): Delete.
5096         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5097         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5098         (m32c_expand_movcc): Change NE to EQ if necessary.
5099         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5100
5101         * config/m32r/m32r-protos.h (gen_cond_store): New.
5102         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5103         (gen_cond_store): New, from sCC patterns.
5104         (m32r_expand_block_move): Use cbranchsi4.
5105         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5106         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5107         (cbranchsi4, cstoresi4): New.
5108         
5109         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5110         Delete.
5111         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
5112         (m68hc11_notice_update_cc): Look into a compare with 0.
5113         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5114         Delete.
5115         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5116         cmphi, cmpqi, bCC): Delete.
5117         (cbranchsi4, cbranchhi4, cbranchqi4): New.
5118         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5119         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5120         sets with COMPARE.
5121
5122         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5123         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5124         * config/m68k/constraints.md (H): New.
5125         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5126         the define_insn below.
5127         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5128         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5129         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5130         patterns): Wrap RHS with COMPARE.
5131         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5132         (*cmpdi_internal): Name this pattern.
5133         (cmpdi): Change to define_insn.
5134         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5135         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5136         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5137         predicate.
5138         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5139         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5140         (conditional_trap): Change to...
5141         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5142         (*conditional_trap): Use the ordered_comparison_operator and
5143         const1_operand predicates.
5144         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5145         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5146         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5147         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5148
5149         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5150         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5151         (mcore_gen_compare): New. 
5152         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5153         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5154         (mcore_gen_compare): ... this.
5155         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5156         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5157         (stack probe pattern): Use cbranchsi4.
5158
5159         * config/mips/predicates.md (mips_cstore_operator): New.
5160         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5161         * config/mips/mips.md (any_cond): Delete.
5162         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
5163         always succeed.
5164         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5165         fixuns_truncsfdi2): Use cbranch patterns.
5166         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
5167         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5168         Adjust call to mips_expand_conditional_branch.
5169         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5170         cstore<GPR:mode>4.
5171         * config/mips/mips-protos.h (mips_expand_conditional_branch,
5172         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5173         * config/mips/mips.c (cmp_operands): Delete.
5174         (mips_emit_compare): Get comparison operands from *op0/*op1.
5175         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
5176         that it succeeds.  Use op0/op1 instead of cmp_operands.
5177         (mips_expand_conditional_branch, mips_expand_conditional_move,
5178         mips_expand_conditional_trap): Likewise.
5179         (mips_block_move_loop): Use cbranch patterns. 
5180         * config/mips/mips.h (cmp_operands): Delete.
5181
5182         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5183         (mmix_gen_compare_reg): Just return a register in the right CC mode.
5184         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5185         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5186         (*cmpcc_folded): Rename to...
5187         (*cmpdi_folded): this.
5188         (*cmpcc): Rename to...
5189         (*cmps): ... this.
5190         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5191         (bCC): Remove.
5192         (cbranchdi4): New.
5193         (cbranchdf4): New.  Handle invalid comparisons here.
5194         * config/mmix/predicates.md (float_comparison_operator): New.
5195
5196         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5197         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5198         * config/mn10300/mn10300.md (tst): Delete.
5199         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5200         Name these patterns and wrap RHS in a compare.
5201         (*cmpsi): Make this pattern private.  Include tst.
5202         (*cmpsf): Make this pattern private.
5203         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5204         (compare with zero peepholes): Likewise.
5205         (bCC): Remove.
5206         (cbranchsi4, cbranchsf4): New.
5207         (casesi): Use cbranchsi4.
5208
5209         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5210         hppa_branch_type): Delete.
5211         (return_addr_rtx): Use cbranchsi4.
5212         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
5213         Emit CCFPmode comparison here.
5214         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5215         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5216         hppa_branch_type): Delete.
5217         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5218         (movsicc, movdicc): Remove references to hppa_compare_op0,
5219         hppa_compare_op1 and compare_from_rtx.
5220         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5221         (casesi): Use cbranchsi4.
5222
5223         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5224         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5225         * config/pdp11/pdp11.md (register_or_const0_operand): New.
5226         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
5227         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5228         (bCC): Delete.
5229         (cbranchdf4, cbranchhi4, cbranchqi4): New.
5230         (*branch, *branch_inverted): New.
5231
5232         * config/picochip/picochip.md (cbranchhi4): Use
5233         ordered_comparison_operator.
5234         (cmphi, bCC): Remove.
5235
5236         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5237         (trap_comparison_operator): Delete.
5238         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5239         rs6000_emit_cbranch): Accept mode and operands.
5240         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5241         rs6000_compare_fp_p): Delete.   
5242         (rs6000_generate_compare): Accept mode and comparison.  Extract code
5243         and op0/op1 from there.  Replace references to rs6000_compare_op0
5244         and rs6000_compare_op1.
5245         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5246         extract result from passed operands.
5247         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5248         extract loc from passed operands.
5249         (rs6000_emit_cmove): Likewise.
5250         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5251         rs6000_compare_fp_p): Delete.
5252         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5253         (cbranch<GPR>4, cbranch<FP>4): New.
5254         (cstore<mode>4): New.  Consolidate here all choices about when to use
5255         portable or specialized sCC sequences.
5256         (stack_protect_test): Use cbranchsi4.
5257         (conditional_trap): Replace with ctrap<GPR>4.
5258         (conditional trap insn): Replace trap_comparison_operator with
5259         ordered_comparison_operator. 
5260
5261         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5262         (s390_emit_prologue): Use ctrap.
5263         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5264         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5265         New predicates replacing...
5266         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5267         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5268         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5269         (add<mode>cc): Do not use s390_compare_op0/op1.
5270         (s<code>): Change to...
5271         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5272         (seq): Change to...
5273         (cstorecc4): ... this.  Handle EQ or NE equally.
5274         (*sne): Un-privatize for use in cstorecc4.
5275         (b<code>): Change to...
5276         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5277         (conditional_trap): Replace with...
5278         (ctrap<GPR>4, ctrap<FP>4): ... these.
5279         (stack_protect): Use cbranchcc4.
5280
5281         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5282         * config/score/score-protos.h (score_gen_cmp): Delete.
5283         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5284         (score_block_move-loop): Use cbranchsi4.
5285         * config/score/score.md (cbranchsi4): New.
5286         (cmpsi, bCC): Delete.
5287         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5288         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5289         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5290         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5291         * config/score/score3.h (score3_gen_cmp): Delete.
5292         * config/score/score7.h (score7_gen_cmp): Delete.
5293
5294         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5295         (sh_emit_scc_to_t): ... this.  Return void.
5296         (from_compare): Rename to...
5297         (sh_emit_compare_and_branch): ... this.
5298         (sh_emit_compare_and_set): New.
5299         (sh_expand_t_scc): Accept operands.
5300         * config/sh/predicates.md (sh_float_comparison_operator): New.
5301         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5302         (prepare_scc_operands): Rename to...
5303         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
5304         arguments.
5305         (sh_emit_cheap_store_flag): New.
5306         (sh_emit_set_t_insn): New.
5307         (from_compare): Rename to...
5308         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
5309         handling of TARGET_SH2E floating point to avoid recursive call.
5310         Generate branch here.
5311         (sh_emit_compare_and_set): New.
5312         (sh_expand_t_scc): Get op0/op1 from arguments.
5313         (sh_emit_cheap_store_flag): New.
5314         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5315         cases.
5316         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
5317         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5318         (movsicc, movdicc): Do nothing when it recreated operands from
5319         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
5320         prepare_scc_operands (now sh_emit_scc_to_t).
5321         (udivdi3): Use cstoresi4.
5322         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5323         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5324         (cbranchint4_media, cbranchfp4_media): New.
5325         (casesi): Use cbranchdi4.
5326         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5327         Delete.
5328         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5329         (movnegt): Remove second operand.
5330         (cbranchsf4, cbranchdf4): New.
5331         (stack_protect): Use cbranchdi4/cbranchsi4.
5332
5333         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5334         (gen_compare_reg): Accept comparison, extract part of it to...
5335         (gen_compare_reg_1): ... this. 
5336         (gen_compare_operator): Delete.
5337         (gen_v9_scc): Accept separate destination, comparison code and arms.
5338         Do not use sparc_compare_op0/sparc_compare_op1.
5339         (emit_scc_insn, emit_conditional_branch_insn): New.
5340         (emit_v9_brxx): Make static.  Remove useless assertion.
5341         (sparc_emit_float_lib_cmp): Return RTL instead of calling
5342         emit_cmp_insn.
5343         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5344         * config/sparc/sparc-protos.h (gen_compare_reg,
5345         sparc_emit_float_lib_cmp): Adjust prototype.
5346         (emit_scc_insn, emit_conditional_branch_insn): New.
5347         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
5348         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
5349         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
5350         iterators to the top.
5351         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
5352         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
5353         snedi_special_trunc): Delete.
5354         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
5355         and snedi_special_trunc.
5356         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
5357         cbranchdi4, cbranch<F:mode>4): New.
5358         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
5359         here.  Use gen_compare_reg instead of gen_compare_operator.
5360         (conditional_trap): Replace with...
5361         (ctrapsi4, ctrapdi4): ... this.
5362         (stack_protect_test): Use cbranchcc4.
5363
5364         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
5365         argument to rtx.
5366         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
5367         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
5368         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
5369         from operands[0] or operands[3] depending on is_set.
5370         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
5371         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
5372         cmpdf, bCC), sCC: Remove.
5373         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
5374         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
5375         cstoredf4): New.
5376         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
5377         spu_emit_branch_or_set.
5378
5379         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
5380         Add two arguments.
5381         * config/stormy16/stormy16.h (xstormy16_compare_op0,
5382         xstormy16_compare_op1): Delete.
5383         * config/stormy16/stormy16.c (xstormy16_compare_op0,
5384         xstormy16_compare_op1): Delete. 
5385         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
5386         Adjust calls.
5387         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
5388         (cmphi, cmpsi, bCC): Remove.
5389
5390         * config/v850/v850.md (tstsi, cmpsi): Fold into...
5391         (*cmpsi): ... this one.
5392         (cbranchsi4, cstoresi4): New.
5393         (bCC expanders): Delete.
5394         (sCC insns): Fold into...
5395         (*setcc): ... this one.
5396         (casesi): Do not use gen_cmpsi and gen_bgtu. 
5397         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
5398         (movsicc): Simplify.
5399         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
5400
5401         * config/vax/vax-protos.h (cond_name): New.
5402         (vax_output_conditional_branch): Remove.
5403         * config/vax/vax.c (cond_name): New.
5404         (vax_output_conditional_branch): Remove.
5405         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
5406         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
5407         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
5408         (bit<VAXint>): Wrap source with (compare).
5409         (b<code> and following unnamed pattern): Rename to *branch and
5410         *branch_reversed.  Change macroization to match_operator.
5411         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
5412
5413         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
5414         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
5415         Change last argument to machine_mode.
5416         (xtensa_expand_scc): Add machine_mode argument.
5417         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
5418         (gen_conditional_move, xtensa_expand_conditional_branch,
5419         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
5420         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
5421         Adjust operand numbers.
5422         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
5423         Delete.
5424         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
5425         (cmpsi, cmpsf, b<code>, s<code>): Delete.
5426         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
5427
5428 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5429
5430         * optabs.c (prepare_cmp_insn): Temporarily disable test that
5431         causes spurious differences between trunk and cond-optab branch.
5432
5433 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
5434
5435         PR target/37137
5436         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
5437
5438 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
5439
5440         * tree.c (iterative_hash_pointer): Delete.
5441         (iterative_hash_expr): Short-circuit handling of NULL pointer.
5442         Hash UIDs and versions of SSA names.  Don't special-case built-in
5443         function declarations.
5444
5445 2009-05-11  Ian Lance Taylor  <iant@google.com>
5446
5447         PR bootstrap/40103
5448         * graphite.c: Force -Wc++-compat to only be a warning before
5449         #including "cloog/cloog.h".
5450
5451 2009-05-11  Martin Jambor  <mjambor@suse.cz>
5452
5453         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
5454         
5455 2009-05-11  Jan Hubicka  <jh@suse.cz>
5456
5457         * tree-ssa-loop-ivcanon.c: Include target.h
5458         (struct loop_size): new structure.
5459         (constant_after_peeling): New predicate.
5460         (tree_estimate_loop_size): New function.
5461         (estimated_unrolled_size): Rewrite for new estimates.
5462         (try_unroll_loop_completely): Use new estimates.
5463         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
5464
5465 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5466
5467         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
5468         libcpp interface change.
5469         (spu_macro_to_expand): Likewise.
5470
5471 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
5472
5473         PR tree-optimization/40026
5474         * gimplify.c (gimplify_init_constructor): Change initial conditional
5475         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
5476         optimize_compound_literals_in_ctor.
5477
5478 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
5479
5480         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
5481         New devices.
5482         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
5483
5484 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
5485
5486         * tree-vect-data-refs.c (vect_analyze_group_access): Use
5487         HOST_WIDE_INT for gap.
5488
5489 2009-05-11  Ira Rosen  <irar@il.ibm.com>
5490
5491         PR tree-optimization/40074
5492         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
5493         account in group size and step comparison.
5494
5495 2009-05-11  Richard Guenther  <rguenther@suse.de>
5496
5497         * passes.c (init_optimization_passes): Strip now incorrect comment.
5498         (execute_function_todo): Do not set PROP_alias.
5499         * tree-pass.h (PROP_alias): Remove.
5500         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
5501         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
5502         * tree-nrv.c (pass_return_slot): Likewise.
5503         * tree-object-size.c (pass_object_sizes): Likewise.
5504         * tree-ssa-dom.c (pass_dominator): Likewise.
5505         (pass_phi_only_cprop): Likewise.
5506         * tree-ssa-dse.c (pass_dse): Likewise.
5507         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5508         (pass_cselim): Likewise.
5509         * tree-ssa-pre.c (pass_pre): Likewise.
5510         (pass_fre): Likewise.
5511         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
5512         * tree-ssa-sink.c (pass_sink_code): Likewise.
5513         * tree-stdarg.c (pass_stdarg): Likewise.
5514         * tree-tailcall.c (pass_tail_calls): Likewise.
5515         * tree-vrp.c (pass_vrp): Likewise.
5516
5517 2009-05-10  Ian Lance Taylor  <iant@google.com>
5518
5519         * basic-block.h (enum profile_status): Break out of struct
5520         control_flow_graph.
5521         * cgraph.h (struct inline_summary): Break out of struct
5522         cgraph_local_info.
5523         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
5524         of struct cgraph_order_sort.
5525         * combine.c (enum undo_kind): New enum, broken out of struct undo.
5526         * cse.c (struct branch_path): Break out of struct
5527         cse_basic_block_data.
5528         * except.h (enum eh_region_type): Break out of struct eh_region.
5529         * gcc.c (enum add_del): Break out of struct modify_target.
5530         * genrecog.c (enum decision_type): Break out of struct decision_test.
5531         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
5532         ggc_pch_data.
5533         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
5534         * regmove.c (enum match_use): New enum, broken out of struct match.
5535         * sched-int.h (enum post_call_group): New enum, broken out of
5536         struct deps.
5537         (struct deps_reg): Break out of struct deps.
5538         * target.h (struct asm_int_op): Break out of struct gcc_target.
5539         * tree-eh.c (struct goto_queue_node): Break out of struct
5540         leh_tf_state.
5541         * tree-inline.h (enum copy_body_cge_which): Break out of
5542         copy_body_data.
5543         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
5544
5545         * c-decl.c (in_struct, struct_types): New static variables.
5546         (pushtag): Add loc parameter.  Change all callers.
5547         (lookup_tag): Add ploc parameter.  Change all callers.
5548         (check_compound_literal_type): New function.
5549         (parser_xref_tag): Add loc parameter.  Change all callers.  If
5550         -Wc++-compat, warn about struct/union/enum types defined within a
5551         struct or union.
5552         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
5553         and loc parameters.  Change all callers.  Change error calls to
5554         error_at, using loc.  For a redefinition, if the location of the
5555         original definition is known, report it.  Set in_struct and
5556         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
5557         (finish_struct): Add new parameters enclosing_in_struct and
5558         enclosing_struct_types.  Change all callers.  Set
5559         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
5560         in the struct.  If in a struct, add this struct to struct_types.
5561         (start_enum): Add loc parameter.  Change all callers.  Use
5562         error_at for errors, using loc.  For a redefinition, if the
5563         location of the original definition is known, report it.  If in a
5564         struct, add this enum type to struct_types.  If -Wc++-compat warn
5565         if in sizeof, typeof, or alignof.
5566         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
5567         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
5568         (c_parser_enum_specifier): Get enum location for start_enum.
5569         (c_parser_struct_or_union_specifier): Get struct location for
5570         start_struct.  Save in_struct and struct_types status between
5571         start_struct and finish_struct.
5572         (c_parser_cast_expression): Get location of cast.
5573         (c_parser_alignof_expression): Get location of type.
5574         (c_parser_postfix_expression): Likewise.
5575         (c_parser_postfix_expression_after_paren_type): Add type_loc
5576         parameter.  Change all callers.  Call check_compound_literal_type.
5577         Use type_loc for error about variable size type.
5578         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5579         of an enum constant from an enum type defined in a struct or union.
5580         (c_cast_expr): Add loc parameter.  Change all callers.  If
5581         -Wc++-compat, warn about defining a type in a cast.
5582         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5583         (start_enum, start_struct, finish_struct): Update declarations.
5584         (parser_xref_tag, c_cast_expr): Update declarations.
5585         (check_compound_literal_type): Declare.
5586
5587 2009-05-11  Ben Elliston  <bje@au.ibm.com>
5588
5589         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5590         for recent libcpp interface change.
5591         (rs6000_macro_to_expand): Likewise.
5592
5593 2009-05-10  Michael Matz  <matz@suse.de>
5594
5595         PR target/40031
5596         * config/arm/arm.c (require_pic_register): Emit on entry edge,
5597         not at entry of function.
5598
5599 2009-05-10  Richard Guenther  <rguenther@suse.de>
5600
5601         PR tree-optimization/40081
5602         Revert
5603         * tree-sra.c (instantiate_element): Instantiate scalar replacements
5604         using the main variant of the element type.  Do not fiddle with
5605         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5606
5607         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5608         structs with volatile fields.
5609
5610 2009-05-10  Jan Hubicka  <jh@suse.cz>
5611
5612         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
5613         (estimate_move_cost): Assert that it does not get called for
5614         VOID_TYPE_P.
5615         (estimate_num_insns): Skip VOID types in argument handling.
5616         (optimize_inline_calls): Delete unreachable blocks and verify that
5617         callgraph is valid.
5618
5619 2009-05-10  Jan Hubicka  <jh@suse.cz>
5620
5621         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5622         * cgraph.c (cgraph_mark_address_taken_node): New function.
5623         (dump_cgraph_node): Dump new flag.
5624         * cgraph.h (struct cgraph_node): Add address_taken.
5625         (cgraph_mark_address_taken_node): New function.
5626         * ipa.c (cgraph_postorder): Prioritize functions with address taken
5627         since new direct calls can be born.
5628
5629 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5630
5631         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5632         tok->val.node.node.
5633
5634 2009-05-10  Jan Hubicka  <jh@suse.cz>
5635
5636         PR middle-end/40084
5637         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5638         argument; rewrite.
5639         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5640         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5641         * tree-inline.c (copy_bb): Set frequency correctly.
5642         (fold_marked_statements): Update call to
5643         cgraph_update_edges_for_call_stmt.
5644
5645 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5646
5647         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5648         identifiers in diagnostics.
5649         * config/arm/arm.c (arm_handle_fndecl_attribute,
5650         arm_handle_isr_attribute): Likewise.
5651         * config/avr/avr.c (avr_handle_progmem_attribute,
5652         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
5653         * config/bfin/bfin.c (handle_int_attribute,
5654         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5655         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5656         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5657         Likewise.
5658         * config/darwin.c (darwin_handle_kext_attribute,
5659         darwin_handle_weak_import_attribute): Likewise.
5660         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5661         h8300_handle_eightbit_data_attribute,
5662         h8300_handle_tiny_data_attribute): Likewise.
5663         * config/i386/i386.c (ix86_handle_cconv_attribute,
5664         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
5665         * config/i386/winnt.c (ix86_handle_shared_attribute,
5666         ix86_handle_selectany_attribute): Likewise.
5667         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5668         * config/m32c/m32c.c (function_vector_handler): Likewise.
5669         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5670         m68hc11_handle_fntype_attribute): Likewise.
5671         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5672         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5673         * config/mips/mips.c (mips_insert_attributes,
5674         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5675         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5676         rs6000_handle_struct_attribute): Likewise.
5677         * config/sh/sh.c (sh_insert_attributes,
5678         sh_handle_resbank_handler_attribute,
5679         sh_handle_interrupt_handler_attribute,
5680         sh2a_handle_function_vector_handler_attribute,
5681         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5682         Likewise.
5683         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5684         * config/spu/spu.c (spu_handle_fndecl_attribute,
5685         spu_handle_vector_attribute): Likewise.
5686         * config/stormy16/stormy16.c
5687         (xstormy16_handle_interrupt_attribute): Likewise.
5688         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5689         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5690
5691 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5692
5693         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
5694         (pp_translate_identifiers): New.
5695         (pp_identifier): Only conditionally translate identifier to locale
5696         character set.
5697         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5698         (pp_base_tree_identifier): Only conditionally translate identifier
5699         to locale character set.
5700         * c-pretty-print.c (M_): Define.
5701         (pp_c_type_specifier, pp_c_primary_expression): Mark English
5702         fragments for conditional translation with M_.
5703         * tree-pretty-print.c (maybe_init_pretty_print): Disable
5704         identifier translation.
5705
5706 2009-05-10  Richard Guenther  <rguenther@suse.de>
5707
5708         PR tree-optimization/40081
5709         * tree-sra.c (instantiate_element): Instantiate scalar replacements
5710         using the main variant of the element type.  Do not fiddle with
5711         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5712
5713 2009-05-09  Jan Hubicka  <jh@suse.cz>
5714
5715         PR middle-end/40080
5716         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5717         indirect calls; verify cgraph afterwards.
5718
5719 2009-05-09  Jan Hubicka  <jh@suse.cz>
5720
5721         PR bootstrap/40082
5722         * ipa.c (update_inlined_to_pointer): New function.
5723         (cgraph_remove_unreachable_nodes): Use it.
5724
5725 2009-05-09  Jan Hubicka  <jh@suse.cz>
5726
5727         * tree-eh.c (struct leh_state): Remove prev_try.
5728         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5729         not track prev_try.
5730         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
5731         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5732         remove_eh_handler_and_replace, foreach_reachable_handler,
5733         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5734         * except.h (struct eh_region): Remove eh_region_u_cleanup.
5735         (gen_eh_region_cleanup): Update prototype.
5736
5737 2009-05-09  Jan Hubicka  <jh@suse.cz>
5738
5739         PR middle-end/40043
5740         * except.c (copy_eh_region): Always set prev_try.
5741         (redirect_eh_edge_to_label): Find outer try.
5742         (foreach_reachable_handler): When looking for prev try
5743         handle case where previous try is not going to be taken.
5744
5745 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5746
5747         PR tree-optimization/40049
5748         * tree-vect-stmts.c (vectorizable_operation): If the machine has
5749         only vector/vector shifts, convert the type of the constant to the
5750         appropriate type to avoid building incorrect trees, which
5751         eventually have problems with garbage collection.
5752
5753 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
5754
5755         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5756         -1 for complex floating-point types if honoring signed zeros.
5757
5758 2009-05-08  Jan Hubicka  <jh@suse.cz>
5759
5760         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5761         argument; handle correctly when profile is absent.
5762         (build_cgraph_edges): Update.
5763         (rebuild_cgraph_edges): Update.
5764         * cgraph.c: Do not include varray.h.
5765         (cgraph_set_call_stmt_including_clones): New function.
5766         (cgraph_create_edge_including_clones): Likewise
5767         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
5768         (cgraph_update_edges_for_call_stmt): Handle clones.
5769         (cgraph_remove_node): Handle clone tree.
5770         (cgraph_remove_node_and_inline_clones): New function.
5771         (dump_cgraph_node): Dump clone tree.
5772         (cgraph_clone_node): Handle clone tree.
5773         (clone_function_name): Bring here from tree-inline.c.
5774         (cgraph_create_virtual_clone): New function.
5775         * cgraph.h (ipa_replace_map): Move here from ipa.h.
5776         (cgraph_clone_info): New function.
5777         (strut cgraph_node): Add clone_info and new clone tree pointers.
5778         (cgraph_remove_node_and_inline_clones,
5779         cgraph_set_call_stmt_including_clones,
5780         cgraph_create_edge_including_clones,
5781         cgraph_create_virtual_clone): Declare.
5782         (cgraph_function_versioning): Use VEC argument.
5783         (compute_call_stmt_bb_frequency): Update prototype.
5784         (cgraph_materialize_all_clones): New function.
5785         * ipa-cp.c (ipcp_update_cloned_node): Remove.
5786         (ipcp_create_replace_map): Update to VECtors.
5787         (ipcp_update_callgraph): Use virtual clones.
5788         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5789         (ipcp_update_profiling): Do not update local profiling.
5790         (ipcp_insert_stage): Use VECtors and virtual clones.
5791         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5792         (clone_of_p): New function.
5793         (cgraph_preserve_function_body_p): Use clone tree.
5794         (cgraph_optimize): Materialize clones.
5795         (cgraph_function_versioning): Update for VECtors.
5796         (save_inline_function_body): Use clone tree.
5797         (cgraph_materialize_clone): New function.
5798         (cgraph_materialize_all_clones): Likewise.
5799         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5800         * ipa.c: Include gimple.h.
5801         (cgraph_remove_unreachable_nodes): Use clone tree.
5802         * ipa-prop.c (ipa_note_param_call): Update call to
5803         compute_call_stmt_bb_frequencycall.
5804         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
5805         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
5806         (copy_bb): Handle updating of clone tree; add new edge when new call
5807         appears.
5808         (expand_call_inline): Be strict about every call having edge.
5809         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5810         (delete_unreachable_blocks_update_callgraph): New function.
5811         (tree_function_versioning): Use VECtors; always remove unreachable
5812         blocks and fold conditionals.
5813         * tree-inline.h: Do not include varray.h.
5814         (tree_function_versioning): Remove.
5815         * Makefile.in (GTFILES): Remove tree-inline.c
5816         * passes.c (do_per_function): Do only functions having body.
5817         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5818         tree.
5819
5820 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
5821             Andrew Morrow  <acm@google.com>
5822
5823         PR c/36892
5824         * c-common.c (c_common_attribute_table): Permit deprecated
5825         attribute to take an optional argument.
5826         (handle_deprecated_attribute): If the optional argument to
5827         __attribute__((deprecated)) is not a string ignore the attribute
5828         and emit a warning.
5829
5830         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5831         * c-typeck.c (build_component_ref): Likewise.
5832         (build_external_ref): Likewise.
5833
5834         * toplev.c (warn_deprecated_use): Add an attribute argument.
5835         Emit the message associated with __attribute__((deprecated)).
5836
5837         * toplev.h (warn_deprecated_use): Updated.
5838
5839         * doc/extend.texi: Document new optional parameter to
5840         __attribute__((deprecated))
5841
5842 2009-05-08  Michael Eager <eager@eagercon.com>
5843
5844         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5845         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5846
5847 2009-05-08  Richard Guenther  <rguenther@suse.de>
5848
5849         PR tree-optimization/40062
5850         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5851         Avoid exponential behavior.
5852
5853 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5854
5855         PR rtl-optimization/33928
5856         PR 26854
5857         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5858         process_uses, build_single_def_use_links): New.
5859         (update_df): Update use_def_ref.
5860         (forward_propagate_into): Use get_def_for_use instead of use-def
5861         chains.
5862         (fwprop_init): Call build_single_def_use_links and let it initialize
5863         dataflow.
5864         (fwprop_done): Free use_def_ref.
5865         (fwprop_addr): Eliminate duplicate call to df_set_flags.
5866         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
5867         df_rd_simulate_one_insn): New.
5868         (df_rd_bb_local_compute_process_def): Update head comment.
5869         (df_chain_create_bb): Use the new RD simulation functions.
5870         * df.h (df_rd_simulate_artificial_defs_at_top, 
5871         df_rd_simulate_one_insn): New.
5872         * opts.c (decode_options): Enable fwprop at -O1.
5873         * doc/invoke.texi (-fforward-propagate): Document this.
5874
5875 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
5876
5877         PR c/24581
5878         * c-typeck.c (build_binary_op): Handle arithmetic between one real
5879         and one complex operand specially.
5880         * tree-complex.c (some_nonzerop): Do not identify a real value as
5881         zero if flag_signed_zeros.
5882
5883 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5884
5885         PR rtl-optimization/33928
5886         * loop-invariant.c (record_use): Fix && vs. || mishap.
5887
5888 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5889
5890         PR rtl-optimization/33928
5891         * loop-invariant.c (struct use): Add addr_use_p.
5892         (struct def): Add n_addr_uses.
5893         (struct invariant): Add cheap_address.
5894         (create_new_invariant): Set cheap_address.
5895         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
5896         (record_uses): Pass df_ref to record_use.
5897         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5898         used only as such.
5899
5900 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5901
5902         * config/sh/sh.c: Do not include c-pragma.h.
5903
5904 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5905
5906         * config/spu/spu.c: Remove include of c-common.h.
5907
5908 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
5909
5910         PR c/39037
5911         * c-common.h (mark_valid_location_for_stdc_pragma,
5912         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5913         clear_float_const_decimal64, float_const_decimal64_p): New.
5914         * c.opt (Wunsuffixed-float-constants): New.
5915         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5916         unsuffixed float constant, handle new warning.
5917         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5918         * c-decl.c (c_scope): New flag float_const_decimal64.
5919         (set_float_const_decimal64, clear_float_const_decimal64,
5920         float_const_decimal64_p): New.
5921         (push_scope): Set new flag.
5922         * c-parser.c (c_parser_translation_unit): Mark when it's valid
5923         to use STDC pragmas.
5924         (c_parser_external_declaration): Ditto.
5925         (c_parser_compound_statement_nostart): Ditto.
5926         * c-pragma.c (valid_location_for_stdc_pragma,
5927         mark_valid_location_for_stdc_pragma,
5928         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5929         handle_pragma_float_const_decimal64): New.
5930         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5931         * cp/semantics.c (valid_location_for_stdc_pragma_p,
5932         set_float_const_decimal64, clear_float_const_decimal64,
5933         float_const_decimal64_p): New dummy functions.
5934         * doc/extend.texi (Decimal Float): Remove statement that the
5935         pragma, and suffix for double constants, are not supported.
5936         * doc/invoke.texi (Warning Options): List new option.
5937         (-Wunsuffixed-float-constants): New.
5938
5939 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
5940
5941         * config/i386/i386.c: Do not include c-common.h.
5942
5943 2009-05-07  Mark Heffernan  <meheff@google.com>
5944
5945         * doc/invoke.texi (Debugging Options): Document change of debugging
5946         dump location.
5947         * opts.c (decode_options): Make dump_base_name relative to
5948         aux_base_name directory.
5949
5950 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5951
5952         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5953         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5954
5955 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
5956
5957         * Makefile.in (install-plugin): Simplify a bit.
5958
5959 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
5960
5961         * Makefile.in (OBJS-common): Add regcprop.o.
5962         (regcprop.o): New.
5963         * timevar.def (TV_CPROP_REGISTERS): New.
5964         * regrename.c (regrename_optimize): Return 0.
5965         (rest_of_handle_regrename): Delete.
5966         (pass_rename_registers): Point to regrename_optimize.
5967         (struct value_data_entry, struct value_data, 
5968         kill_value_one_regno, kill_value_regno, kill_value,
5969         set_value_regno, init_value_data, kill_clobbered_value,
5970         kill_set_value, kill_autoinc_value, copy_value,
5971         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5972         replace_oldest_value_reg, replace_oldest_value_addr,
5973         replace_oldest_value_mem, copyprop_hardreg_forward_1,
5974         debug_value_data, validate_value_data): Move...
5975         * regcprop.c: ... here.
5976         (rest_of_handle_cprop): Delete.
5977         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5978
5979 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
5980
5981         PR middle-end/40057
5982         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5983         GEN_INT for 1 << bitnum.
5984         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5985         build_int_cst_type.
5986
5987 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
5988
5989         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
5990         Remove wrong description of "nand" operation.
5991
5992 2009-05-06  Richard Guenther  <rguenther@suse.de>
5993             Adam Nemet  <anemet@caviumnetworks.com>
5994
5995         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5996         comment.  Add that if LHS is not a gimple register, then RHS1 has
5997         to be a single object (GIMPLE_SINGLE_RHS).
5998
5999 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
6000
6001         * expr.c (get_def_for_expr): Move it up in the file.
6002         (store_field): When expanding a bit-field store, look at the
6003         defining gimple stmt for the masking conversion.
6004
6005 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
6006
6007         PR middle-end/39986
6008         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6009         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6010         32-bit memcpy into long.
6011
6012 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
6013
6014         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6015         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6016         new_reg_loc_descr.
6017         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6018         instead of appending DW_OP_deref*.
6019
6020 2009-05-06  Michael Matz  <matz@suse.de>
6021
6022         PR middle-end/40021
6023         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6024         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6025
6026 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
6027
6028         * Makefile.in (install-plugin): Fix srcdir handling.
6029
6030 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
6031
6032         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6033         when processing for not_regs_needed bitmap.
6034         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6035         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
6036         handling it for rhs. 
6037
6038 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6039
6040         * config/i386/i386.md (unnamed inc/dec peephole): Use
6041         optimize_insn_for_size_p instead of optimize_size.
6042         * config/i386/predicates.md (incdec_operand): Likewise.
6043         (aligned_operand): Likewise.
6044         * config/i386/sse.md (divv8sf3): Likewise.
6045         (sqrtv8sf2): Likewise.
6046
6047 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6048
6049         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6050
6051         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6052
6053 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6054
6055         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6056         ssemodesuffixf2c with avxmodesuffixf2c.
6057
6058 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
6059
6060         PR c/40032
6061         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
6062
6063 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
6064
6065         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6066         (struct tree_base): Adjust spacing for 8 bit boundaries.
6067         (struct tree_decl_common): Add decl_by_reference_flag bit.
6068         (DECL_BY_REFERENCE): Adjust.
6069         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6070         print DECL_BY_REFERENCE bit.
6071         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6072         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6073         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6074         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
6075         unconditionally.
6076
6077         PR middle-end/39666
6078         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6079         range of the type, but default label is missing, add it with one
6080         of the existing labels instead of adding a new label for it.
6081
6082 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
6083
6084         * dwarf.h: Remove.
6085
6086 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
6087
6088         * Makefile.in (enable_plugin, plugin_includedir): New.
6089         (install): Depend on install-plugin.
6090         (PLUGIN_HEADERS): New.
6091         (install-plugin): New.
6092         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6093
6094 2009-05-05  Richard Guenther  <rguenther@suse.de>
6095
6096         PR tree-optimization/40022
6097         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6098         the only vuse.
6099         (phivn_valid_p): Fix tuplification error, simplify.
6100         (phiprop_insert_phi): Add dumps.
6101         (propagate_with_phi): Simplify.
6102
6103 2009-05-05  Richard Guenther  <rguenther@suse.de>
6104
6105         PR middle-end/40023
6106         * builtins.c (gimplify_va_arg_expr): Properly build the address.
6107
6108 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
6109
6110         * tree.h (strip_float_extensions): Remove duplicate declaration.
6111         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6112         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6113         block_ultimate_origin): Rearrange the declarations line to match the
6114         comment that indicates the .c file which the functions are defined.
6115         (dwarf2out_*, set_decl_rtl): Add comment.
6116         (get_base_address): Adjust comment.
6117         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6118         declarations line and add comment.
6119         (is_builtin_name): Add blank after function name, for clarity.
6120
6121 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6122
6123         * attribs.c (decl_attributes): Use %qE for identifiers in
6124         diagnostics.
6125         * cgraphunit.c (verify_cgraph_node): Translate function names to
6126         locale character set in diagnostics.
6127         * coverage.c (get_coverage_counts): Use %qE for identifiers in
6128         diagnostics.
6129         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6130         Document that functions are named in UTF-8.
6131         * expr.c (expand_expr_real_1): Translate function names to locale
6132         character set in diagnostics.
6133         * gimplify.c (omp_notice_variable, omp_is_private,
6134         gimplify_scan_omp_clauses): Use %qE for identifiers in
6135         diagnostics.
6136         * langhooks.c (lhd_print_error_function): Translate function names
6137         to locale character set.
6138         * langhooks.h (decl_printable_name): Document that return value is
6139         in internal character set.
6140         * stmt.c: Include pretty-print.h
6141         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6142         diagnostics.
6143         (resolve_operand_name_1): Translate named operand name to locale
6144         character set.
6145         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6146         diagnostics.
6147         * toplev.c (announce_function): Translate function names to locale
6148         character set.
6149         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6150         (default_tree_printer): Use pp_identifier or translate identifiers
6151         to locale character set.  Mark "<anonymous>" for translation.
6152         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6153         for identifiers in diagnostics.
6154         * tree.c (handle_dll_attribute): Use %qE for identifiers in
6155         diagnostics.
6156         * varasm.c (output_constructor): Use %qE for identifiers in
6157         diagnostics.
6158
6159 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
6160
6161         * configure.ac: use ` ` instead of $()
6162         * configure: Regenerate.
6163
6164 2009-05-05  Ben Elliston  <bje@au.ibm.com>
6165
6166         * config/pa/linux-atomic.c: Eliminate conditional include of
6167         errno.h on non-LP64 systems to simplify build requirements.
6168
6169 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6170
6171         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6172         diagnostics.
6173         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6174         and pass value to identifier_to_locale.
6175         (warn_variable_length_array): Make name a tree.
6176         (grokdeclarator): Separate diagnostic texts for named and unnamed
6177         declarators.  Use %qE for named declarators.
6178         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6179         diagnostics.
6180         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6181         identifiers in diagnostics.
6182         * c-typeck.c (push_member_name, start_init): Pass identifiers to
6183         identifier_to_locale.  Mark "anonymous" strings for translation.
6184
6185 2009-05-04  Michael Eager <eager@eagercon.com>
6186
6187         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
6188         address for DImode/DFmode only if double-precision FP regs.
6189
6190 2009-05-04  Michael Eager <eager@eagercon.com>
6191
6192         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6193         TARGET_SINGLE_FLOAT check.
6194
6195 2009-05-04  Michael Eager <eager@eagercon.com>
6196
6197         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6198
6199 2009-05-04  Michael Eager <eager@eagercon.com>
6200
6201         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6202         * config/rs6000/t-xilinx: New
6203
6204 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
6205
6206         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
6207         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6208         * gcc/explow.c (memory_address): Use target hook.
6209         * gcc/targhooks.c (default_legitimize_address): New.
6210         * gcc/targhooks.h (default_legitimize_address): New.
6211         * gcc/target.h (legitimize_address): New.
6212         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6213         (TARGET_INITIALIZER): Include it.
6214         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6215
6216         * config/bfin/bfin-protos.h (legitimize_address): Remove.
6217         * config/bfin/bfin.c (legitimize_address): Remove.
6218         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
6219         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6220         Remove.
6221         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6222         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6223
6224         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6225         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6226         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6227         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6228         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6229         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6230         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6231         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6232         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6233         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6234         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6235         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6236         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6237         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6238         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6239         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6240         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6241         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6242         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6243         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6244         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6245         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6246         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6247
6248         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6249         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6250         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6251         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6252         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6253         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6254         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6255         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6256         (thumb_legitimize_address): Delete.
6257         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6258         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6259         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6260         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6261         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
6262         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6263         Delete.
6264         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6265         Delete.
6266
6267         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6268         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6269         * config/m32r/m32r.c (m32r_legitimize_address): New.
6270         * config/m68k/m68k.c (m68k_legitimize_address): New.
6271         * config/score/score.c (score_legitimize_address): Standardize.
6272         * config/score/score3.c (score3_legitimize_address): Standardize.
6273         * config/score/score3.h (score3_legitimize_address): Adjust.
6274         * config/score/score7.c (score7_legitimize_address): Standardize.
6275         * config/score/score7.h (score7_legitimize_address): Adjust.
6276         * config/sh/sh.c (sh_legitimize_address): New.
6277         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6278
6279         * gcc/config/s390/s390.c (legitimize_address): Rename to...
6280         (s390_legitimize_address): ... this.
6281         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6282         (sparc_legitimize_address): ... this.
6283         * gcc/config/i386/i386.c (legitimize_address): Rename to...
6284         (ix86_legitimize_address): ... this.
6285         * gcc/config/avr/avr.c (legitimize_address): Rename to...
6286         (avr_legitimize_address): ... this.
6287         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6288         (mn10300_legitimize_address): ... this.
6289         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6290         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6291         (alpha_expand_mov): Adjust call.
6292
6293         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6294         * config/spu/spu.c (spu_legitimize_address): Likewise.
6295         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6296         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6297
6298 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6299
6300         * intl.c (locale_encoding, locale_utf8): New.
6301         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6302         * intl.h (locale_encoding, locale_utf8): Declare.
6303         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
6304         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6305         New.
6306         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6307         argument.
6308         (pp_tree_identifier): Define to call pp_base_tree_identifier.
6309         (pp_base_tree_identifier): Declare as function.
6310         (identifier_to_locale): Declare.
6311         * Makefile.in (pretty-print.o): Update dependencies.
6312         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
6313
6314 2009-05-04  Richard Guenther  <rguenther@suse.de>
6315
6316         PR middle-end/40015
6317         * builtins.c (fold_builtin_memory_op): Do not decay to element
6318         type if the size matches the whole array.
6319
6320 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
6321
6322         * expmed.c (synth_mult): When trying out a shift, pass the result
6323         of a signed shift.
6324
6325 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
6326
6327         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6328         (shiftsub1_cost): New.
6329         (init_expmed): Compute shiftsub1_cost.
6330         (synth_mult): Optimize multiplications by constants of the form
6331         -(2^^m-1) for some constant positive integer m.
6332
6333 2009-05-03  Richard Guenther  <rguenther@suse.de>
6334
6335         PR c/39983
6336         * c-typeck.c (array_to_pointer_conversion): Do not built
6337         ADDR_EXPRs of arrays of pointer-to-element type.
6338         * c-gimplify.c (c_gimplify_expr): Revert change fixing
6339         up wrong ADDR_EXPRs after-the-fact.
6340         * c-common.c (strict_aliasing_warning): Strip pointer
6341         conversions for obtaining the original type.
6342         * builtins.c (fold_builtin_memset): Handle array types.
6343         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6344         and array types
6345
6346 2009-05-03  Richard Guenther  <rguenther@suse.de>
6347
6348         PR middle-end/23329
6349         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
6350         Do not lose casts from array types with unknown extent to array
6351         types with known extent.
6352         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
6353         alias set compatibility.
6354
6355 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6356
6357         * flags.h (extra_warnings): Delete.
6358         * toplev.c (process_options): Handle Wuninitialized here.
6359         * opts.c (extra_warnings): Delete.
6360         (set_Wextra): Delete.
6361         (common_handle_option): -Wextra can be handled automatically.
6362         * c-opts.c (c_common_handle_option): Delete obsolete code.
6363         (c_common_post_options): Simplify comment.
6364         * common.opt (W): Add Var.
6365         (Wextra): Add Var.
6366         (Wuninitialized): Initialize to -1.
6367
6368 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
6369             Richard Guenther  <rguenther@suse.de>
6370
6371         * expr.c (get_def_for_expr): New function.
6372         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
6373         SSA rather than trees.
6374         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
6375         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
6376         
6377 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
6378
6379         * c-common.c (reswords): Add _Imaginary.
6380         * c-common.c (enum rid): Add RID_IMAGINARY.
6381
6382 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
6383
6384         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
6385         Patch by Richard Guenther.
6386
6387 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
6388
6389         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
6390         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
6391         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
6392         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
6393         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
6394         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
6395         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
6396         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
6397         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
6398         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
6399         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
6400         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
6401         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
6402         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
6403         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
6404         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
6405         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
6406         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
6407
6408 2009-05-02  Richard Guenther  <rguenther@suse.de>
6409
6410         PR tree-optimization/39940
6411         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
6412         doing so.
6413
6414 2009-05-02  Richard Guenther  <rguenther@suse.de>
6415
6416         PR middle-end/40001
6417         * tree-ssa.c (execute_update_addresses_taken): Properly check
6418         if we can mark a variable DECL_GIMPLE_REG_P.
6419         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
6420         back to the end of the function.
6421         (is_gimple_reg_type): Remove complex type special casing.
6422         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
6423         if not optimizing.
6424
6425 2009-05-02  Ben Elliston  <bje@au.ibm.com>
6426
6427         * doc/collect2.texi (Collect2): Document search path behaviour
6428         when configured with --with-ld.
6429
6430 2009-05-02  Jan Hubicka  <jh@suse.cz>
6431
6432         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
6433         parameter; update callers.
6434         (coalesce_cost_edge): EH edges are costier because they needs
6435         splitting even if not critical and even more costier when there are
6436         multiple EH predecestors.
6437
6438 2009-05-02  Jan Hubicka  <jh@suse.cz>
6439
6440         * except.c (remove_eh_handler_and_replace): Handle updating after
6441         removing TRY blocks.
6442
6443 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6444
6445         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
6446
6447 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
6448
6449         * varasm.c: Do not include c-pragma.h.
6450         * attribs.c: Do not incude c-common.h.
6451
6452 2009-05-01  Michael Matz  <matz@suse.de>
6453
6454         * calls.c (initialize_argument_information): Handle SSA names like
6455         decls with a non MEM_P DECL_RTL.
6456
6457 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
6458
6459         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
6460         * ipa-utils.c: Likewise.
6461         * ipa-type-escape.c: Likewise.
6462         * cgraphunit.c Do not include c-common.h.
6463         * ipa-pure-const.c: Likewise.
6464         * tree-if-conv.c: Likewise.
6465         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
6466         * ipa-struct-reorg.c: Likewise.
6467         * tree-nomudflap.c: Likewise.
6468         * tree-ssa-structalias.c: Likewise.
6469
6470 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
6471
6472         * store-motion.c: Many cleanups to make this pass a first-class
6473         citizen instead of an appendix to gcse load motion.  Add TODO list
6474         to make this pass faster/cleaner/better.
6475
6476         (struct ls_expr): Post gcse.c-split cleanups.
6477         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
6478         "stores" field to "avail_stores".
6479         (pre_ldst_mems): Rename to store_motion_mems.
6480         (pre_ldst_table): Rename to store_motion_mems_table.
6481         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
6482         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
6483         (ldst_entry): Rename to st_expr_entry, update users.
6484         (free_ldst_entry): Rename to free_st_expr_entry, update users.
6485         (free_ldst_mems): Rename to free_store_motion_mems, update users.
6486         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
6487         update caller.
6488         (first_ls_expr): Rename to first_st_expr, update users.
6489         (next_ls_expr): Rename to next_st_expr, update users.
6490         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
6491         fields properly for store motion instead of names inherited from load
6492         motion in gcse.c.
6493         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
6494         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
6495         are done with it.
6496
6497         (ae_kill): Rename to st_kill, update users.
6498         (ae_gen): Rename to st_avloc, update users.
6499         (transp): Rename to st_transp, update users.
6500         (pre_insert_map): Rename to st_insert_map, update users.
6501         (pre_delete_map): Rename to st_delete_map, update users.
6502         (insert_store, build_store_vectors, free_store_memory,
6503         one_store_motion_pass): Update for abovementioned changes.
6504
6505         (gcse_subst_count, gcse_create_count): Remove.
6506         (one_store_motion_pass): New statistics counters "n_stores_deleted"
6507         and "n_stores_created", local variables.
6508
6509         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
6510         use for_each_rtx.
6511
6512         (regvec, compute_store_table_current_insn): Remove.
6513         (reg_set_info, reg_clear_last_set): Remove.
6514         (compute_store_table): Use DF caches instead of local dataflow
6515         solvers.
6516
6517 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
6518
6519         * c-objc-common.c (c_tree_printer): Print identifiers with
6520         pp_identifier, not pp_string.  Mark "({anonymous})" for
6521         translation.
6522         * c-pretty-print.c (pp_c_ws_string): New.
6523         (pp_c_cv_qualifier, pp_c_type_specifier,
6524         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
6525         pp_c_storage_class_specifier, pp_c_function_specifier,
6526         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
6527         pp_c_primary_expression, pp_c_postfix_expression,
6528         pp_c_unary_expression, pp_c_shift_expression,
6529         pp_c_relational_expression, pp_c_equality_expression,
6530         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
6531         use pp_string and pp_c_ws_string in place of pp_identifier and
6532         pp_c_identifier for non-identifiers.  Mark English strings for
6533         translation.
6534         * c-pretty-print.h (pp_c_ws_string): Declare.
6535
6536 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
6537             Roland McGrath <roland@redhat.com>
6538
6539         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
6540         (ENABLE_LD_BUILDID): New configuration option.
6541         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
6542         (LINK_BUILDID_SPEC): New macro.
6543         (init_spec): If defined, prepend it between LINK_EH_SPEC and
6544         link_spec.
6545         * doc/install.texi: Document --enable-linker-build-id option.
6546         * configure: Rebuild.
6547         * config.in: Rebuild.
6548
6549 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
6550
6551         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
6552         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
6553         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
6554         MIPS_GP_SAVE_AREA_SIZE.
6555         * config/mips/mips.c (struct mips_frame_info): Update comment
6556         before arg_pointer_offset and hard_frame_pointer_offset.
6557         (mips_compute_frame_info): Update diagram before function: to
6558         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
6559         indicate the position of frame_pointer_rtx with -fstack-protector and
6560         to show args_size.  Don't allocate cprestore area for leaf functions
6561         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
6562         cprestore_size.
6563         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
6564
6565 2009-04-30  Michael Matz  <matz@suse.de>
6566
6567         PR tree-optimization/39955
6568         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
6569
6570 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
6571
6572         * ira.c (setup_cover_and_important_classes):  Use safe macro
6573         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6574         directly.
6575         * genpreds.c (write_tm_preds_h):  Output suitable definition of
6576         REG_CLASS_FOR_CONSTRAINT.
6577
6578 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
6579
6580         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6581         instead of an int.
6582         * bitmap.c (bitmap_descriptor): Likewise.
6583         * ggc-common.c (loc_descriptor): Likewise.
6584         * varray.c (varray_descriptor): Likewise.
6585         * vec.c (vec_descriptor): Likewise.
6586
6587 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
6588
6589         * Makefile.in (dce.o): Add $(EXCEPT_H).
6590         * dce.c: Include except.h and delete redundant vector definitions.
6591         (deletable_insn_p): Return false for non-call insns that can throw
6592         if DF is running.
6593
6594 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6595
6596         * gcse.c (ae_gen): Remove.
6597         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6598         and make non-static function to make it available in store-motion.c.
6599         Update call sites with search-and-replace.
6600         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6601         extract_mentioned_regs, extract_mentioned_regs_helper,
6602         find_moveable_store, compute_store_table, load_kills_store, find_loads,
6603         store_killed_in_insn, store_killed_after, store_killed_before,
6604         build_store_vectors, insert_insn_start_basic_block, insert-store,
6605         remove_reachable_equiv_notes, replace_store_insn, delete_store,
6606         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6607         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6608         * store-motion.c: ...new file.  Also copy data structures from gcse.c
6609         and clean up to remove parts not used by store motion.
6610         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6611         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6612
6613 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6614
6615         PR target/38571
6616         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6617         when optimizing for size.
6618
6619 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
6620
6621         * gcse.c (gcse_constant_p): Fix typo in last change.
6622
6623 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
6624
6625         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6626
6627 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6628
6629         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6630
6631 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
6632
6633         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6634         CONST_HIGH_PART result.
6635
6636 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
6637
6638         * config/avr/avr.c (initial_elimination_offset): Rename to
6639         avr_initial_elimination_offset.
6640         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6641         change return type to bool.
6642         (avr_can_eliminate): New function.
6643         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6644         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6645         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
6646         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
6647         avr_initial_elimination_offset.
6648         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6649         (avr_initial_elimination_offset): Define.
6650
6651 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
6652             Steven Bosscher  <steven@gcc.gnu.org>
6653
6654         PR rtl-optimization/39938
6655         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6656         * cfgrtl.c: Include insn-attr.h.
6657         (rest_of_pass_free_cfg): New function.
6658         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6659         * resource.c (init_resource_info): Remove call to df_analyze.
6660
6661 2009-04-29  Richard Guenther  <rguenther@suse.de>
6662
6663         PR target/39943
6664         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6665         allow conversion to signed integers.
6666
6667 2009-04-29  Richard Guenther  <rguenther@suse.de>
6668
6669         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6670         shifts of floating point vectors if the shift amount is
6671         a constant multiple of the element size.
6672
6673 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6674             Michael Matz  <matz@suse.de>
6675
6676         PR middle-end/39927
6677         PR bootstrap/39929
6678         * tree-outof-ssa.c (emit_partition_copy): New function.
6679         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6680         insert_part_to_rtx_on_edge): Perform the partition base var
6681         copy using emit_partition_copy.
6682         (insert_value_copy_on_edge): Convert constants to the right mode.
6683         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6684         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6685
6686 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6687
6688         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6689         scan backwards to try to find a constant to initialize it.
6690
6691         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6692         insn before the loop_end instruction, don't look past labels.
6693
6694 2009-04-29  Richard Guenther  <rguenther@suse.de>
6695
6696         PR middle-end/39937
6697         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6698         loose type conversions.
6699         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
6700         stmts only if there are no uses of its definition.
6701
6702 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6703
6704         * config/bfin/bfin.h (splitting_loops): Declare.
6705         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6706         Reorder bit definitions to be ascending.
6707         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6708         * config/bfin/bfin.c (splitting_loops): New variable.
6709         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6710         (struct loop_info): Remove members INIT and LOOP_INIT.
6711         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
6712         the LSETUP sequence.  Allow LC to be loaded from any register, but
6713         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
6714         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6715         set to 1.
6716         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6717         of reload_completed.
6718
6719         From Jie Zhang:
6720         * config/bfin/bfin.md (movsi_insn): Refine constraints.
6721
6722 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
6723
6724         * Makefile.in (PLUGIN_VERSION_H): New.
6725         (OBJS-common): Remove plugin-version.o.
6726         (plugin.o): Depend on (PLUGIN_VERSION_H).
6727         (plugin-version.o): Remove.
6728         * configure: Regenerate
6729         * configure.ac: Create plugin-version.h.
6730         * gcc-plugin.h (plugin_gcc_version): Remove.
6731         (plugin_default_version_check): Change signature.
6732         * plugin-version.c: Remove.
6733         * plugin.c: Include plugin-version.h.
6734         (str_plugin_gcc_version_name): Remove.
6735         (try_init_one_plugin): Pass gcc version to plugin_init.
6736         (plugin_default_version_check): Both gcc and plugin versions are now
6737         arguments.
6738
6739 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6740         
6741         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6742         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
6743         Remove special case testing for last insn of inner loops. Don't fail
6744         if the loop ends with a jump, emit an extra nop instead.
6745
6746         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6747         DREGS rather than comparing directly.  Remove code that tries to
6748         account for latencies.
6749
6750 2009-04-29  Richard Guenther  <rguenther@suse.de>
6751
6752         PR tree-optimization/39941
6753         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6754         eliminating an indirect call.
6755
6756 2009-04-29  Richard Guenther  <rguenther@suse.de>
6757
6758         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6759         parameter.  Allow invariants as base if !require_lvalue.
6760         (verify_gimple_assign_single): Adjust.
6761
6762 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6763
6764         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6765         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
6766         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6767         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
6768         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6769         a VEC_SELECT.
6770         * config/bfin/bfin.c (bfin_expand_builtin,
6771         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
6772
6773 2009-04-28  Richard Guenther  <rguenther@suse.de>
6774
6775         * tree-vect-loop.c (get_initial_def_for_induction): Use
6776         correct types for pointer increment.
6777
6778 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6779
6780         * toplev.c (print_version): Update GMP version string calculation.
6781
6782 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6783
6784         PR rtl-optimization/39938
6785         * resource.c (init_resource_info): Add call to df_analyze.
6786
6787 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6788
6789         * config/alpha/alpha.md (usegp): Cast the result of
6790         alpha_find_lo_sum_using_gp to enum attr_usegp.
6791         * config/alpha/alpha.c (override_options): Remove end-of-structure
6792         marker element from cpu_table.  Use array size of cpu_table to handle
6793         -mcpu and -mtune options.
6794         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6795
6796 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
6797
6798         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6799         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
6800         tune_32 and tune_64.
6801         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6802         support on PowerPC.
6803         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6804         * config/rs6000/option-defaults.h: ... here.  New file.
6805         (OPT_64, OPT_32): Define.
6806         (MASK_64BIT): Define to 0 if not already defined.
6807         (OPT_ARCH64, OPT_ARCH32): Define.
6808         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6809         and tune_64.
6810
6811 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6812
6813         * config/arm/arm.c (arm_override_options): Emit error on using
6814         fpa with AAPCS.
6815
6816 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6817
6818         PR rtl-optimization/39914
6819         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6820         registers for allocnos created from user-defined variables only
6821         when not optimizing.
6822
6823 2009-04-28  Richard Guenther  <rguenther@suse.de>
6824
6825         PR middle-end/39937
6826         * fold-const.c (fold_binary): Use distribute_real_division only
6827         on float types.
6828
6829 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
6830
6831         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6832         add hpux-stdint.h to tm_file.
6833         (hppa[12]*-*-hpux11*): Ditto.
6834         (ia64*-*-hpux*): Ditto.
6835         * config/hpux-stdint.h: New.
6836         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
6837         __STDC_EXT__ for all compiles.
6838         * config/pa/pa-hpux.h: Ditto.
6839         * config/pa/pa-hpux10.h: Ditto.
6840         * config/pa/pa-hpux11.h: Ditto.
6841
6842 2009-04-28  Catherine Moore  <clm@codesourcery.com>
6843
6844         * debug.h (set_name): Add comment.
6845
6846 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
6847
6848         PR target/39929
6849         * config/darwin.c (machopic_gen_offset): Check
6850         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6851         * config/arm/arm.c (require_pic_register): Likewise.
6852
6853 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
6854
6855         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6856         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6857         m32c_promote_prototypes): Delete.
6858
6859 2009-04-28  Michael Matz  <matz@suse.de>
6860
6861         PR middle-end/39922
6862         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6863         constants.
6864
6865 2009-04-28  Richard Guenther  <rguenther@suse.de>
6866
6867         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
6868
6869 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6870
6871         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6872         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6873         * config/arm/arm-tune.md: Regenerate.
6874
6875 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
6876
6877         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6878         block if there are complex incoming edges.
6879         (sel_merge_blocks): Remove useless assert.
6880         (sel_redirect_edge_and_branch): Check that edge was redirected.
6881         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6882         (sel_find_rgns): Delete declaration.
6883         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6884         the region when it is not a preheader.
6885
6886 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6887
6888         PR c/39323
6889         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6890
6891 2009-04-28  Richard Guenther  <rguenther@suse.de>
6892
6893         * tree.h (SSA_NAME_VALUE): Remove.
6894         (struct tree_ssa_name): Remove value_handle member.
6895         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6896         array for jump threading.
6897         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6898         SSA_NAME_VALUEs.
6899         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6900         * tree-flow.h (threadedge_initialize_values): Declare.
6901         (threadedge_finalize_values): Likewise.
6902         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6903         (SSA_NAME_VALUE): Define.
6904         (threadedge_initialize_values): New function.
6905         (threadedge_finalize_values): Likewise.
6906         * tree-ssa-dom.c (ssa_name_values): New global variable.
6907         (SSA_NAME_VALUE): Define.
6908         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
6909
6910 2009-04-28  Ira Rosen  <irar@il.ibm.com>
6911
6912         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6913         Use REPORT_VECTORIZED_LOCATIONS instead 
6914         REPORT_VECTORIZED_LOOPS.
6915         * tree-vectorizer.c (vect_verbosity_level): Make static.
6916         (vect_loop_location): Rename to vect_location.
6917         (vect_set_verbosity_level): Update comment.
6918         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6919         and vect_location.
6920         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6921         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6922         instead REPORT_UNVECTORIZED_LOOPS.
6923         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6924         and vect_loop_def to vect_external_def and vect_internal_def.
6925         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
6926         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
6927         REPORT_UNVECTORIZED_LOCATIONS.
6928         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6929         and vect_used_in_loop and to vect_unused_in_scope and 
6930         vect_used_in_scope.
6931         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6932         (vect_verbosity_level): Remove declaration.
6933         (vect_analyze_operations): Likewise.
6934         (vect_analyze_stmt): Declare.
6935         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6936         REPORT_UNVECTORIZED_LOCATIONS.
6937         (vect_get_loop_niters): Fix indentation.
6938         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6939         (vect_analyze_loop_operations): New function.
6940         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6941         vect_analyze_operations.
6942         (vect_is_simple_reduction): Use new names.
6943         (vectorizable_live_operation, vect_transform_loop): Likewise.
6944         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6945         to specify whether the data references can be a part of interleaving
6946         chain.
6947         (vect_analyze_data_ref_dependence): Use new names.
6948         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6949         (vect_create_addr_base_for_vector_ref): Remove redundant code.
6950         * tree-vect-patterns.c (widened_name_p): Use new names.
6951         (vect_recog_dot_prod_pattern): Likewise.
6952         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6953         (process_use, vect_mark_stmts_to_be_vectorized, 
6954         vect_model_simple_cost, vect_model_store_cost,
6955         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6956         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6957         vectorizable_operation, vectorizable_type_demotion,
6958         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6959         vectorizable_condition): Likewise.
6960         (vect_analyze_operations): Split into vect_analyze_loop_operations
6961         and ...
6962         (vect_analyze_stmt): ... new function.
6963         (new_stmt_vec_info): Use new names.
6964         (vect_is_simple_use): Use new names and fix comment.
6965         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6966         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6967
6968 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6969
6970         PR target/39911
6971         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6972         and integer modes for x87 operands.  Do not ICE for unsupported size,
6973         generate error instead.  Generate error for unsupported operand types.
6974         ['z']: Do not handle HImode memory operands specially.  Warning
6975         for floating-point operands.  Fallthru to 'Z' for unsupported operand
6976         types.  Do not ICE for unsupported size, generate error instead.
6977         (output_387_binary_op): Use %Z to output operands.
6978         (output_fp_compare): Ditto.
6979         (output_387_reg_move): Ditto.
6980
6981 2009-04-28  Ben Elliston  <bje@au.ibm.com>
6982
6983         PR c++/35652
6984         Revert:
6985
6986         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6987
6988         * builtins.c (c_strlen): Do not warn here.
6989         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6990         * c-common.c (pointer_int_sum): Take an explicit location.
6991         Warn about offsets out of bounds.
6992         * c-common.h (pointer_int_sum): Adjust declaration.
6993
6994 2009-04-27  Ian Lance Taylor  <iant@google.com>
6995
6996         * collect2.c (is_ctor_dtor): Change type of ret field in struct
6997         names to symkind.
6998         * dce.c (run_fast_df_dce): Change type of old_flags to int.
6999         * df-core.c (df_set_flags): Change return type to int.  Change
7000         type of old_flags to int.
7001         (df_clear_flags): Likewise.
7002         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7003         (df_get_conditional_uses): Likewise.
7004         * df.h (df_set_flags, df_clear_flags): Update declarations.
7005         * dwarf2out.c (struct indirect_string_node): Change type of form
7006         field to enum dwarf_form.
7007         (AT_string_form): Change return type to enum dwarf_form.
7008         * fixed-value.c (fixed_compare): Add cast to enum type.
7009         * fwprop.c (update_df): Change 0 to VOIDmode.
7010         * gensupport.c: Change 0 to UNKNOWN.
7011         * gimple.h (gimple_cond_code): Add cast to enum type.
7012         * haifa-sched.c (reemit_notes): Add cast to enum type.
7013         * hooks.c (hook_int_void_no_regs): Remove function.
7014         * hooks.h (hook_int_void_no_regs): Remove declaration.
7015         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7016         * predict.c (combine_predictions_for_insn): Add casts to enum type.
7017         * real.c (real_arithmetic): Add cast to enum type.
7018         (real_compare): Likewise.
7019         * target.h (struct gcc_target): Change return type of
7020         branch_target_register_class to enum reg_class.
7021         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7022         default_branch_target_register_class.
7023         * targhooks.c (default_branch_target_register_class): New function.
7024         * targhooks.h (default_branch_target_register_class): Declare.
7025         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
7026         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7027         cast to int.
7028         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7029         ERROR_MARK.
7030         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7031         vect_uninitialized_def.  Change 0 to ERROR_MARK.
7032         * tree-vect-stmts.c (supportable_widening_operation): Don't
7033         initialize icode1 and icode2.
7034         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
7035         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7036         and to STD_C89.
7037         (cmn_err_flag_specs): Change 0 to STD_C89.
7038         (cmn_err_char_table): Likewise.
7039         * config/arm/arm.c (get_arm_condition_code): Change type of code
7040         to enum arm_cond_code.
7041         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7042         (IWMMXT_BUILTIN2): Likewise.
7043         (neon_builtin_type_bits): Don't define typedef.
7044         (neon_builtin_datum): Change type of bits field to int.
7045         (arm_expand_neon_args): Add cast to enum type.
7046         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7047         TLS_MODEL_NONE.
7048         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
7049         casts to enum type.
7050         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7051         MIPS_FP_COND_f.
7052         * config/mips/mips.md (jal_macro): Return enum constant.
7053         (single_insn): Likewise.
7054         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7055         CODE_FOR_nothing.
7056         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7057         casts to enum type.
7058         * config/s390/s390.c (s390_tune_flags): Change type to int.
7059         (s390_arch_flags): Likewise.
7060         (s390_handle_arch_option): Change flags field of struct pta to int.
7061         * config/s390/s390.h (s390_tune_flags): Update declaration.
7062         (s390_arch_flags): Likewise.
7063         * config/sh/sh.c (prepare_move_operands): Compare
7064         tls_symbolic_operand result with enum constant.
7065         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7066         (sh_expand_prologue): Add cast to enum type.
7067         (sh_expand_epilogue): Likewise.
7068         (tls_symbolic_operand): Change return type to enum tls_model.
7069         (fpscr_set_from_mem): Add cast to enum type.
7070         (legitimize_pic_address): Compare tls_symbolic_operand result with
7071         enum constant.
7072         (sh_target_reg_class): Change return type to enum reg_class.
7073         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7074         PROCESSOR_xxx.
7075         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7076         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
7077         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7078         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7079         (delayed_branch, tls_call_delay): Likewise.
7080         (eligible_for_sibcall_delay): Likewise.
7081         (eligible_for_return_delay): Likewise. 
7082         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7083         (spu_expand_builtin_1): Likewise.
7084
7085         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7086         for all types of conversions.
7087         (output_init_element): Issue -Wc++-compat warning if needed when
7088         initializing a bitfield with enum type.
7089         * c-parser.c (c_parser_expression): Set original_type to
7090         original_type of right hand operand of comman operator.
7091
7092 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7093
7094         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7095         grammar nits.
7096         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
7097         * doc/cpp.texi (Standard Predefined Macros)
7098         (Implementation-defined behavior): Likewise.
7099         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
7100         * doc/gimple.texi (GIMPLE Exception Handling)
7101         (@code{GIMPLE_ASSIGN}): Likewise.
7102         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
7103         * doc/invoke.texi (Warning Options, Optimize Options)
7104         (AVR Options, Darwin Options): Likewise.
7105         (Optimize Options): Reformulate -fwhole-program description.
7106         * doc/loop.texi (Lambda): Likewise.
7107         * doc/md.texi (Output Template, Define Constraints)
7108         (Standard Names, Insn Splitting): Likewise.
7109         * doc/options.texi (Option properties): Likewise.
7110         * doc/passes.texi (Tree-SSA passes): Likewise.
7111         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7112         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7113         (File Names and DBX): Likewise.
7114         * doc/trouble.texi (Incompatibilities): Likewise.
7115
7116 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7117
7118         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7119         instruction is correct.
7120
7121 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7122
7123         Allow non-constant arguments to conversion intrinsics.
7124         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7125         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7126         * spu.c (print_operand): Handle 'v' and 'w'.
7127         (exp2_immediate_p, spu_gen_exp2): Define.
7128         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7129         spu_convtf_1): Update parameter descriptions.
7130         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
7131         * constraints.md ('v', 'w'): New.
7132         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7133         Remove.
7134         (i2f, I2F): New define_mode_attr.
7135         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7136         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7137         fixuns_truncv4sfv4si2):  Update to use mode attribute.
7138         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7139         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7140         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7141         patterns for combine.
7142
7143 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
7144
7145         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7146         (cprop, hoist, pre, store_motion): New debug counters.
7147         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7148         is not an RTL pass anymore.
7149         (pass_profiling): Remove extern decl for pass removed in 2005.
7150         (pass_gcse, pass_jump_bypass): Remove.
7151         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7152         to 0 for clean state.
7153         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7154         * cse.c (gate_handle_cse_after_global_opts,
7155         rest_of_handle_cse_after_global_opts): New functions.
7156         (pass_cse_after_global_opts): New pass, does local CSE.
7157         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7158         (TV_CPROP): New timevar.
7159         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7160         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7161         (gcse_main, recompute_all_luids): Remove.
7162         (compute_hash_table_work): Call max_reg_num instead of reading
7163         max_gcse_regno.
7164         (cprop_jump): Don't set run_jump_opt_after_gcse.
7165         (constprop_register): Always allow to alter jumps.
7166         (cprop_insn): Likewise.
7167         (do_local_cprop): Likewise.
7168         (local_cprop_pass): Likewise.  Return non-zero if something changed.
7169         (cprop): Remove function, fold interesting bits into one_cprop_pass.
7170         (find_implicit_sets): Add note about missed optimization opportunity.
7171         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7172         pass_rtl_cprop execute function.
7173         Don't bother tracking the pass number, each pass gets its own dumpfile
7174         now anyway.
7175         Always allow to alter jumpsand bypass jumps.
7176         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7177         will just find no suitable set.
7178         (pre_edge_insert): Fix dumping, this function is for PRE only.
7179         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7180         pass_rtl_pre execute function.
7181         (hoist_code): Return non-zero if something changed.  Keep track of
7182         substitutions and insertions for statistics gathering similar to PRE.
7183         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7184         called from the pass_rtl_hoist execute function.  Show pass statistics.
7185         (compute_store_table): Use max_reg_num directly instead of using the
7186         formerly global max_gcse_regno.
7187         (build_store_vectors): Likewise.
7188         (replace_store_insn): Fix dumping.
7189         (store_motion): Rename to ...
7190         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
7191         pass, called from the pass_rtl_store_motion execute function.  Keep
7192         track of substitutions and insertions for statistics gathering similar
7193         to PRE.
7194         (bypass_jumps): Remove, fold interesting bits into ...
7195         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
7196         from the pass_rtl_cprop execute function.
7197         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7198         pass_jump_bypass): Remove.
7199         (gate_handle_gcse, rest_of_handle_gcse): Remove.
7200         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7201         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7202         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7203         (gate_rtl_store_motion, execute_rtl_store_motion,
7204         pass_rtl_store_motion): New.
7205         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7206         make it clear that -fcse-skip-blocks is a no-op for backward compat.
7207         * passes.c (init_optimization_passes): Remove pass_gcse and
7208         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
7209         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
7210         instead of pass_jump_bypass.
7211
7212 2009-04-27  Richard Guenther  <rguenther@suse.de>
7213
7214         PR middle-end/39928
7215         * gimplify.c (gimplify_expr): If we are required to create
7216         a temporary make sure it ends up as register.
7217
7218 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7219
7220         PR target/39903
7221         * config/i386/i386.c (construct_container): Don't call
7222         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7223         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7224
7225 2009-04-27  Michael Matz  <matz@suse.de>
7226
7227         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7228         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7229         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7230         (dump_replaceable_exprs): Take a bitmap.
7231         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7232         array.
7233         (expand_gimple_basic_block): Likewise.
7234         * tree-ssa-ter.c (struct temp_expr_table_d): Make
7235         replaceable_expressions member a bitmap.
7236         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7237         (mark_replaceable): Likewise.
7238         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7239         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7240
7241 2009-04-27  Richard Guenther  <rguenther@suse.de>
7242
7243         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7244         (verify_stmts): Dispatch to gimple/type verification code.
7245         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7246         issue with call argument types.
7247
7248 2009-04-27  Michael Matz  <matz@suse.de>
7249
7250         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7251         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7252         to above.
7253
7254 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
7255             Eric Botcazou  <ebotcazou@adacore.com>
7256
7257         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7258         a label's basic block.
7259         (mark_target_live_regs): Tidy and rework obsolete comments.
7260         Change back DF problem to LIVE.  If a label starts a basic block,
7261         assume that all registers that used to be live then still are.
7262         (init_resource_info): If a label starts a basic block, set its
7263         BLOCK_FOR_INSN accordingly.
7264         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7265
7266 2009-04-27  Richard Guenther  <rguenther@suse.de>
7267
7268         * tree-flow-inline.h (function_ann): Remove.
7269         (get_function_ann): Likewise.
7270         * tree-dfa.c (create_function_ann): Remove.
7271         * tree-flow.h (struct static_var_ann_d): Remove.
7272         (struct function_ann_d): Likewise.
7273         (union tree_ann_d): Remove fdecl member.
7274         (function_ann_t): Remove.
7275         (function_ann, get_function_ann, create_function_ann): Remove
7276         declarations.
7277
7278 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
7279
7280         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7281
7282 2009-04-27  Jan Hubicka  <jh@suse.cz>
7283
7284         * ipa-pure-const.c (struct funct_state_d): New fields
7285         state_previously_known, looping_previously_known; remove
7286         state_set_in_source.
7287         (analyze_function): Use new fields.
7288         (propagate): Avoid assumption that state_set_in_source imply
7289         nonlooping.
7290
7291         * tree-ssa-loop-niter.c (finite_loop_p): New function.
7292         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7293         * cfgloop.h (finite_loop_p): Declare.
7294
7295 2009-04-26  Michael Matz  <matz@suse.de>
7296
7297         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
7298
7299 2009-04-26  Michael Matz  <matz@suse.de>
7300
7301         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7302         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7303         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7304         pass_mark_used_blocks): Remove.
7305         * tree-optimize.c (pass_free_datastructures,
7306         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7307         * passes.c (init_optimization_passes): Don't call
7308         pass_mark_used_blocks, remove dead code.
7309
7310 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
7311
7312         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7313         * tree-ssa-live.h (register_ssa_partition): Likewise.
7314
7315 2009-04-26  Michael Matz  <matz@suse.de>
7316
7317         Expand from SSA.
7318         * builtins.c (fold_builtin_next_arg): Handle SSA names.
7319         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7320         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7321         SSA names. 
7322         (compare_pairs): Swap cost comparison.
7323         (coalesce_ssa_name): Don't use change_partition_var.
7324         * tree-nrv.c (struct nrv_data): Add modified member.
7325         (finalize_nrv_r): Set it.
7326         (tree_nrv): Use it to update statements.
7327         (pass_nrv): Require PROP_ssa.
7328         * tree-mudflap.c (mf_decl_cache_locals,
7329         mf_build_check_statement_for): Use make_rename_temp.
7330         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7331         * alias.c (find_base_decl): Handle SSA names.
7332         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7333         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7334         * rtl.h (set_reg_attrs_for_parm): Declare.
7335         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7336         to "optimized", remove unused locals at finish.
7337         (execute_free_datastructures): Make global, call
7338         delete_tree_cfg_annotations.
7339         (execute_free_cfg_annotations): Don't call
7340         delete_tree_cfg_annotations.
7341
7342         * ssaexpand.h: New file.
7343         * expr.c (toplevel): Include ssaexpand.h.
7344         (expand_assignment): Handle SSA names the same as register variables.
7345         (expand_expr_real_1): Expand SSA names.
7346         * cfgexpand.c (toplevel): Include ssaexpand.h.
7347         (SA): New global variable.
7348         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
7349         (SSAVAR): New macro.
7350         (set_rtl): New helper function.
7351         (add_stack_var): Deal with SSA names, use set_rtl.
7352         (expand_one_stack_var_at): Likewise.
7353         (expand_one_stack_var): Deal with SSA names.
7354         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
7355         before unique numbers.
7356         (expand_stack_vars): Use set_rtl.
7357         (expand_one_var): Accept SSA names, add asserts for them, feed them
7358         to above subroutines.
7359         (expand_used_vars): Expand all partitions (without default defs),
7360         then only the local decls (ignoring those expanded already).
7361         (expand_gimple_cond): Remove edges when jumpif() expands an
7362         unconditional jump.
7363         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
7364         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
7365         SSA name.
7366         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
7367         members of SA; deal with PARM_DECL partitions here; expand
7368         all PHI nodes, free tree datastructures and SA.  Commit instructions
7369         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
7370         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
7371         info and statements at start, collect garbage at finish.
7372         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
7373         (VAR_ANN_PARTITION) Remove.
7374         (change_partition_var): Don't declare.
7375         (partition_to_var): Always return SSA names.
7376         (var_to_partition): Only accept SSA names.
7377         (register_ssa_partition): Only check argument.
7378         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
7379         member.
7380         (delete_var_map): Don't free it.
7381         (var_union): Only accept SSA names, simplify.
7382         (partition_view_init): Mark only useful SSA names as used.
7383         (partition_view_fini): Only deal with SSA names.
7384         (change_partition_var): Remove.
7385         (dump_var_map): Use ssa_name instead of partition_to_var member.
7386         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
7387         basic blocks.
7388         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
7389         (struct _elim_graph): New member const_dests; nodes member vector of
7390         ints.
7391         (set_location_for_edge): New static helper.
7392         (create_temp): Remove.
7393         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
7394         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
7395         (new_elim_graph): Allocate const_dests member.
7396         (clean_elim_graph): Truncate const_dests member.
7397         (delete_elim_graph): Free const_dests member.
7398         (elim_graph_size): Adapt to new type of nodes member.
7399         (elim_graph_add_node): Likewise.
7400         (eliminate_name): Likewise.
7401         (eliminate_build): Don't take basic block argument, deal only with
7402         partition numbers, not variables.
7403         (get_temp_reg): New static helper.
7404         (elim_create): Use it, deal with RTL temporaries instead of trees.
7405         (eliminate_phi): Adjust all calls to new signature.
7406         (assign_vars, replace_use_variable, replace_def_variable): Remove.
7407         (rewrite_trees): Only do checking.
7408         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
7409         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
7410         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
7411         contains_tree_r, MAX_STMTS_IN_LATCH,
7412         process_single_block_loop_latch, analyze_edges_for_bb,
7413         perform_edge_inserts): Remove.
7414         (expand_phi_nodes): New global function.
7415         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
7416         functions, initialize new parameter, remember partitions having a
7417         default def.
7418         (finish_out_of_ssa): New global function.
7419         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
7420         don't reset in_ssa_p here, don't disable TER when mudflap.
7421         (pass_del_ssa): Remove.
7422         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
7423         partition members.
7424         (execute_free_datastructures): Declare.
7425         * Makefile.in (SSAEXPAND_H): New variable.
7426         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
7427         * basic-block.h (commit_one_edge_insertion): Declare.
7428         * passes.c (init_optimization_passes): Move pass_nrv and
7429         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
7430         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
7431         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
7432         (redirect_branch_edge): Deal with super block when expanding, split
7433         out jump patching itself into ...
7434         (patch_jump_insn): ... here, new static helper.
7435
7436 2009-04-26  Michael Matz  <matz@suse.de>
7437
7438         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
7439         beyond num_ssa_names.
7440         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
7441         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
7442
7443 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
7444
7445         PR inline-asm/39543
7446         * fwprop.c (forward_propagate_asm): New function.
7447         (forward_propagate_and_simplify): Propagate also into __asm, if it
7448         doesn't increase the number of referenced registers.
7449
7450         PR c/39889
7451         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
7452
7453 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
7454
7455         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
7456         note_nonlocal_vla_type for nonlocal VLAs.
7457         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
7458         contains_remapped_vars, remap_vla_decls): New functions.
7459         (convert_nonlocal_reference_stmt): If not optimizing, call
7460         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
7461         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
7462         if it wasn't found in var_map.
7463         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
7464         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
7465         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
7466         declare_vars.
7467         * gimplify.c (nonlocal_vlas): New variable.
7468         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
7469         referenced VLAs.
7470         (gimplify_body): Create and destroy nonlocal_vlas.
7471
7472         * dwarf2out.c (loc_descr_plus_const): New function.
7473         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
7474         mem_loc_descriptor, loc_descriptor_from_tree_1,
7475         descr_info_loc, gen_variable_die): Use it.
7476
7477         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
7478         !TREE_STATIC VAR_DECLs.
7479         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
7480         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
7481         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
7482         DECL_BY_REFERENCE is valid.
7483         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
7484         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
7485         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
7486         Copy DECL_BY_REFERENCE.
7487         (struct nesting_copy_body_data): New type.
7488         (nesting_copy_decl): New function.
7489         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
7490         if they have variable length.
7491
7492 2009-04-26  Michael Matz  <matz@suse.de>
7493
7494         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
7495         mark new temporaries for renaming.
7496
7497 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
7498
7499         PR c/39581
7500         * c-decl.c (global_bindings_p): Return negative value.
7501         (c_variable_size): New.  Based on variable_size from
7502         stor-layout.c.
7503         (grokdeclarator): Call c_variable_size not variable_size.
7504
7505 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
7506
7507         * config/i386/i386.c (print_operand) ['z']: Fix typo.
7508
7509 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
7510
7511         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
7512         Redefine it to just use mingw/include.
7513         (ASM_SPEC): Rules for -m32 and -m64.
7514         (LINK_SPEC): Use Likewise.
7515         (SPEC_32): New define.
7516         (SPEC_64): Likewise.
7517         (SUB_LINK_SPEC): Likewise.
7518         (MULTILIB_DEFAULTS): New define.
7519         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
7520         Add multilib options.
7521         (MULTILIB_DIRNAMES): Likewise.
7522         (MULTILIB_OSDIRNAMES): Likewise.
7523         (LIBGCC): Likewise.
7524         (INSTALL_LIBGCC): Likewise.
7525
7526 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
7527
7528         PR c/39556
7529         * c-tree.h (enum c_inline_static_type): New.
7530         (record_inline_static): Declare.
7531         * c-decl.c (struct c_inline_static, c_inline_statics,
7532         record_inline_static, check_inline_statics): New.
7533         (pop_file_scope): Call check_inline_statics.
7534         (start_decl): Call record_inline_static instead of pedwarning
7535         directly for static in inline function.
7536         * c-typeck.c (build_external_ref): Call record_inline_static
7537         instead of pedwarning directly for static referenced in inline
7538         function.
7539
7540 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
7541
7542         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
7543         not new but only being rescanned.
7544         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
7545         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
7546         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
7547         record_set_info, compute_set, grealloc): Remove.
7548         (recompute_all_luids): New function.
7549         (gcse_main): Don't compute sets, and don't do related memory
7550         allocations/free-ing.  If something changed before the end of the
7551         pass, update LUIDs using recompute_all_luids.
7552         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
7553         (free_gcse_mem): Don't free it either.
7554         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
7555         Use the df insn LUIDs.
7556         (load_killed_in_block): Likewise.
7557         (compute_hash_table_work): Don't compute reg_set_in_block.
7558         (compute_transp): Use DF_REG_DEF_CHAINs.
7559         (local_cprop_pass): Don't use compute_sets and related functions.
7560         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
7561         Use get_max_uid() instead of max_cuid.
7562         (insert_insn_end_basic_block, pre_insert_copy_insn,
7563         update_ld_motion_stores): Don't try to
7564         keep reg_set tables up to date.
7565         (pre_insert_copies): Use df insn LUIDs.
7566         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
7567         (reg_set_info): Don't use extra bitmap argument.
7568         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
7569         information to compute regs_set_in_block.
7570         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
7571         (bypass_jumps): Don't use compute_sets and friends.
7572
7573 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7574
7575         PR testsuite/39710
7576         * opts.c (undocumented_msg): Do not leave blank even with
7577         ENABLE_CHECKING.
7578
7579 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7580
7581         * c-decl.c (build_enumerator): Allow values folding to integer
7582         constants but not integer constant expressions with a pedwarn if
7583         pedantic.
7584
7585 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7586
7587         PR c/39582
7588         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7589         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7590         type is an integer constant.
7591
7592 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
7593
7594         PR target/39897
7595         * config/i386/i386.c (print_operand) ['z']: Revert handling of
7596         HImode operands.
7597
7598 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7599
7600         PR c/39564
7601         * c-decl.c (grokdeclarator): Diagnose declarations of functions
7602         with variably modified return type and no storage class
7603         specifiers, except for the case of nested functions.  Distinguish
7604         extern declarations of functions with variably modified return
7605         types from those of objects with variably modified types.
7606
7607 2009-04-25  Jan Hubicka  <jh@suse.cz>
7608
7609         * tree.c (list_equal_p): New function.
7610         * tree.h (list_equal_p): Declare.
7611         * coretypes.h (edge_def, edge, const_edge, basic_block_def
7612         basic_block_def, basic_block, const_basic_block): New.
7613         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7614         (redirect_eh_edge): New function.
7615         (make_eh_edge_update_phi): EH edges are not abnormal.
7616         * except.c: Include tree-flow.h.
7617         (list_match): New function.
7618         (eh_region_replaceable_by_p): New function.
7619         (replace_region): New function.
7620         (hash_type_list): New function.
7621         (hash_eh_region): New function.
7622         (eh_regions_equal_p): New function.
7623         (merge_peers): New function.
7624         (remove_unreachable_regions): Verify EH tree when checking;
7625         merge peers.
7626         (copy_eh_region_1): New function.
7627         (copy_eh_region): New function.
7628         (push_reachable_handler): New function.
7629         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7630         regions without label but with live RESX.
7631         * except.h (redirect_eh_edge_to_label): New.
7632         * tree-flow.h (redirect_eh_edge): New.
7633         * coretypes.h (edge_def, edge, const_edge, basic_block_def
7634         basic_block_def, basic_block, const_basic_block): Remove.
7635         * Makefile.in (except.o): Add dependency on tree-flow.h
7636         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7637         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7638         Remove.
7639
7640 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
7641
7642         PR bootstrap/39645
7643         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7644         on the destination of memcpy.
7645
7646 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
7647
7648         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7649         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7650         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7651
7652 2009-04-25  Jan Hubicka  <jh@suse.cz>
7653
7654         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7655         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7656         to be reached by different label than left.
7657         (update_eh_edges): Update comment; remove edge_to_remove if possible
7658         and return true if suceeded.
7659         (cleanup_empty_eh): Accept sharing map; handle shared regions.
7660         (cleanup_eh): Compute sharing map.
7661         * except.c (remove_eh_handler_and_replace): Add argument if we should
7662         update regions.
7663         (remove_unreachable_regions): Update for label sharing.
7664         (label_to_region_map): Likewise.
7665         (get_next_region_sharing_label): New function.
7666         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7667         prev_try pointers.
7668         (remove_eh_handler): Update.
7669         (remove_eh_region_and_replace_by_outer_of): New function.
7670         * except.h (struct eh_region): Add next_region_sharing_label.
7671         (remove_eh_region_and_replace_by_outer_of,
7672         get_next_region_sharing_label): Declare.
7673         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7674
7675 2009-04-25  Jan Hubicka  <jh@suse.cz>
7676
7677         * tree-cfg.c (split_critical_edges): Split also edges where we can't
7678         insert code even if they are not critical.
7679
7680 2009-04-25  Jan Hubicka  <jh@suse.cz>
7681
7682         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7683         (gimple_can_remove_branch_p): EH edges won't remove branch by
7684         redirection.
7685         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7686         updating of non-abnormal EH edges.
7687         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7688         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7689         (split_critical_edges): Split also edges where emitting code on them
7690         will lead to splitting later.
7691
7692 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
7693             H.J. Lu  <hongjiu.lu@intel.com>
7694
7695         PR target/39590
7696         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7697         the configured assembler supports fildq and fistpq mnemonics.
7698         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7699         * configure: Regenerated.
7700         * config.in: Ditto.
7701
7702         * config/i386/i386.c (print_operand): Handle 'Z'.
7703         ['z']: Remove handling of special fild/fist suffixes.
7704         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7705         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7706         suffix of fild insn.
7707         (*floatsi<mode>2_vector_mixed): Ditto.
7708         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7709         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7710         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7711         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7712         * config/i386/gas.h (GAS_MNEMONICS): Remove.
7713
7714 2009-04-25  Ben Elliston  <bje@au.ibm.com>
7715  
7716         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7717         the source of a set operation.
7718
7719 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
7720
7721         * target.h (struct gcc_target): Add case_values_threshold field.
7722         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7723         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7724         * targhooks.c (default_case_values_threshold): New function.
7725         * targhooks.h (default_case_values_threshold): Declare function.
7726         * stmt.c (expand_case): Use case_values_threshold target hook.
7727         * expr.h (case_values_threshold): Remove declartation.
7728         * expr.c (case_values_threshold): Remove function.
7729         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7730
7731         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7732         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7733         (avr_case_values_threshold): Declare as static.
7734         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7735
7736         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7737         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7738         (mn10300_case_values_threshold): New function.
7739
7740 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
7741
7742         * ira.c (setup_cover_and_important_classes): Add enum cast.
7743
7744 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
7745
7746         * genpreds.c (write_enum_constraint_num): Output definition of
7747         CONSTRAINT_NUM_DEFINED_P macro.
7748         * ira.c (setup_cover_and_important_classes): Use
7749         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7750         
7751 2009-04-24  DJ Delorie  <dj@redhat.com>
7752
7753         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7754         __SH2A_SINGLE_ONLY__ also.
7755
7756 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
7757
7758         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7759         (movdf_internal): Ditto.
7760         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7761         SFmode and DFmode constants.
7762         (ia64_print_operand): Add 'G' format for printing
7763         floating point constants.
7764
7765 2009-04-24  Richard Guenther  <rguenther@suse.de>
7766
7767         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7768         from unsigned additions.
7769
7770 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
7771
7772         * c-typeck.c (set_init_index): Allow array designators that are
7773         not integer constant expressions with a pedwarn if pedantic.
7774
7775 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7776
7777         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7778         zero if no overlap in nonzero bits between the operands.
7779
7780 2009-04-24  Ian Lance Taylor  <iant@google.com>
7781
7782         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7783         (record_dead_and_set_regs): Likewise.
7784         * df.h (struct df_mw_hardreg): Change flags field to int.
7785         (struct df_base_ref): Likewise.
7786         (struct df): Change changeable_flags field to int.
7787         * df-scan.c (df_defs_record): Change clobber_flags to int.
7788         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7789         constants rather than #define macros.
7790         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7791         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7792         (enum dwarf_calling_convention): Likewise.
7793         (enum dwarf_line_number_x_ops): Likewise.
7794         (enum dwarf_call_frame_info): Likewise.
7795         (enum dwarf_source_language): Likewise.
7796         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7797         (add_calling_convention_attribute): Likewise.
7798         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7799         (combine_comparisons): Change compcode to int.  Add cast to enum type.
7800         * genrecog.c (maybe_both_true_2): Change c to int.
7801         (write_switch): Likewise.  Add cast to enum type.
7802         * gimplify.c (gimplify_omp_for): Handle return values from
7803         gimplify_expr using MIN rather than bitwise or.
7804         (gimplify_expr): Add cast to enum type.
7805         * ipa-prop.c (update_jump_functions_after_inlining): Change
7806         IPA_BOTTOM to IPA_JF_UNKNOWN.
7807         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7808         Add casts to enum type.
7809         (setup_cover_and_important_classes): Change cl to int.  Add casts
7810         to enum type.
7811         (setup_class_translate): Change cl and mode to int.
7812         (ira_init_once): Change mode to int.
7813         (free_register_move_costs): Likewise.
7814         (setup_prohibited_mode_move_regs): Add casts to enum type.
7815         * langhooks.c (add_builtin_function_common): Rework assertion that
7816         value fits bitfield.
7817         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7818         * omega.c (omega_do_elimination): Avoid math on enum types.
7819         * optabs.c (expand_vec_shift_expr): Remove casts to int.
7820         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
7821         int local to handle integral_argment value.
7822         * regmove.c (try_auto_increment): Change PUT_MODE to
7823         PUT_REG_NOTE_KIND.
7824         * reload.c (push_secondary_reload): Add casts to enum type.
7825         (secondary_reload_class, find_valid_class): Likewise.
7826         * reload1.c (emit_input_reload_insns): Likewise.
7827         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7828         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7829         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7830         constant.
7831         * tree.c (build_common_builtin_nodes): Add casts to enum type.
7832         * tree-complex.c (complex_lattice_t): Typedef to int rather than
7833         enum type.
7834         (expand_complex_libcall): Add casts to enum type.
7835         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7836         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7837         with ERROR_MARK, not NUM_TREE_CODES.
7838         (vect_create_epilog_for_reduction): Likewise.
7839         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
7840         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
7841         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7842         enum machine_mode.
7843         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7844         vect_unused_in_loop.  Change 0 to loop_vect.
7845         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
7846         * var-tracking.c (get_init_value): Change return type to enum
7847         var_init_status.
7848         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7849         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7850         arm_fp_model.
7851         (arm_override_options): Add casts to enum type.
7852         (arm_emit_tls_decoration): Likewise.
7853         * config/i386/i386.c (ix86_function_specific_restore): Add casts
7854         to enum type.
7855         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7856         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7857         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7858         enum type.
7859         * config/s390/s390.c (code_for_builtin_64): Change to array of
7860         enum insn_code.
7861         (code_for_builtin_31): Likewise.
7862         (s390_expand_builtin): Change code_for_builtin to enum insn_code
7863         const *.
7864         * config/sparc/sparc.c (sparc_override_options): Change value
7865         field in struct code_model to enum cmodel.  In initializer change
7866         0 to NULL and add cast to enum type.
7867
7868         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7869         Change all callers.  Issue a -Wc++-compat warning using
7870         lhs_origtype if necessary.
7871         (convert_for_assignment): Issue -Wc++-compat warnings about
7872         invalid conversions to enum type on assignment.
7873         * c-common.h (build_modify_expr): Update declaration.
7874
7875 2009-04-24  Nick Clifton  <nickc@redhat.com>
7876
7877         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7878         (function_arg_advance): Likewise.
7879         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7880         5th alternative.
7881
7882 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7883
7884         * config/s390/constraints.md ('I', 'J'): Fix condition.
7885
7886 2009-04-24  Diego Novillo  <dnovillo@google.com>
7887
7888         * gengtype-parse.c (parse_error): Add newline after message.
7889
7890 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
7891
7892         * config/i386/sse.md (avxmodesuffixs): Removed.
7893         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7894         (*avx_pinsr<ssevecsize>): This.
7895
7896 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7897
7898         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7899         follow chains of regs with a single definition, and allow expressions
7900         that are function_invariant_p.
7901         (simple_rhs_p): Allow expressions that are function_invariant_p.
7902
7903 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
7904
7905         PR middle-end/39867
7906         * fold-const.c (fold_cond_expr_with_comparison): When folding
7907         > and >= to MAX, make sure the MAX uses the same type as the
7908         comparison's operands.
7909
7910 2009-04-24  Nick Clifton  <nickc@redhat.com>
7911
7912         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7913         addressing for DImode accesses.
7914         (frv_print_operand_address): Handle PLUS case.
7915         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
7916
7917 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
7918
7919         PR rtl-optimization/39794
7920         * alias.c (canon_true_dependence): Add x_addr argument.
7921         * rtl.h (canon_true_dependence): Adjust prototype.
7922         * cse.c (check_dependence): Adjust canon_true_dependence callers.
7923         * cselib.c (cselib_invalidate_mem): Likewise.
7924         * gcse.c (compute_transp): Likewise.
7925         * dse.c (scan_reads_nospill): Likewise.
7926         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
7927         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7928         canon_base_addr of the group, plus optional offset.
7929         (struct group_info): Rename canon_base_mem to
7930         canon_base_addr.
7931         (get_group_info): Set canon_base_addr to canon_rtx of base, not
7932         canon_rtx of base_mem.
7933
7934 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
7935
7936         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7937         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7938
7939 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7940
7941         * config/spu/spu-builtins.h: Delete file.
7942
7943         * config/spu/spu.h (enum spu_builtin_type): Move here from
7944         spu-builtins.h.
7945         (struct spu_builtin_description): Likewise.  Add GTY marker.
7946         Do not use enum spu_function_code or enum insn_code.
7947         (spu_builtins): Add extern declaration.
7948
7949         * config/spu/spu.c: Do not include "spu-builtins.h".
7950         (enum spu_function_code, enum spu_builtin_type_index,
7951         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7952         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7953         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7954         unsigned_V2DI_type_node): Move here from spu-builtins.h.
7955         (spu_builtin_types): Make static.  Add GTY marker.
7956         (spu_builtins): Add extern declaration with GTY marker.
7957         Include "gt-spu.h".
7958
7959         * config/spu/spu-c.c: Do not include "spu-builtins.h".
7960         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7961         Check programmatically whether all parameters are scalar.
7962
7963         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7964
7965 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7966
7967         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7968         assignment from the constructor either if the target is volatile.
7969
7970 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
7971
7972         * config/arm/arm.md (insv): Do not share operands[0].
7973
7974 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
7975
7976         * config/vxlib-tls.c (active_tls_threads): Delete.
7977         (delete_hook_installed): New.
7978         (tls_delete_hook): Don't delete the delete hook.
7979         (tls_destructor): Delete it here.
7980         (__gthread_set_specific): Adjust installing the delete hook.
7981         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7982         __gthread_leave_tsd_dtor_context.
7983
7984 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
7985
7986         * c-format.c (gcc_tdiag_char_table): Add support for %E.
7987
7988 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
7989
7990         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7991         enum type.
7992         (alpha_rtx_costs): Ditto.
7993         (emit_unlikely_jump): Use add_reg_note.
7994         (emit_frame_store_1): Ditto.
7995         (alpha_expand_prologue): Ditto.
7996         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7997         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7998
7999 2009-04-23  Nick Clifton  <nickc@redhat.com>
8000
8001         * config/v850/v850.md (epilogue): Remove suppressed code.
8002         (return): Rename to return_simple and remove test of frame size.
8003         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8004         to gen_return_simple.
8005
8006 2009-04-22  Jing Yu  <jingyu@google.com>
8007
8008         PR testsuite/39781
8009         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8010
8011 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8012
8013         PR C/31499
8014         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8015         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
8016         value is a VECTOR_CST, the element type is the element type of the
8017         vector.
8018
8019 2009-04-22  DJ Delorie  <dj@redhat.com>
8020
8021         * config/m32c/m32c.h: Update GTY annotations to new syntax.
8022
8023 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
8024
8025         * alias.c (find_base_term): Move around LO_SUM case, so that
8026         CONST falls through into PLUS/MINUS handling.
8027
8028         PR c/39855
8029         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8030         into 0, use omit_one_operand.
8031
8032 2009-04-23  Ben Elliston  <bje@au.ibm.com>
8033
8034         * config/rs6000/linux-unwind.h (get_regs): Remove type
8035         puns. Change the type of `pc' to an array of unsigned ints and
8036         update all users.  Constify frame24.
8037
8038 2009-04-22  DJ Delorie  <dj@redhat.com>
8039
8040         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8041         declarations before code.
8042         (current_function_special_page_vector): Likewise.
8043         (m32c_expand_insv): Silence a warning.
8044
8045 2009-04-21  Taras Glek  <tglek@mozilla.com>
8046
8047         * alias.c: Update GTY annotations to new syntax.
8048         * basic-block.h: Likewise.
8049         * bitmap.h: Likewise.
8050         * c-common.h: Likewise.
8051         * c-decl.c: Likewise.
8052         * c-parser.c: Likewise.
8053         * c-pragma.c: Likewise.
8054         * c-tree.h: Likewise.
8055         * cfgloop.h: Likewise.
8056         * cgraph.h: Likewise.
8057         * config/alpha/alpha.c: Likewise.
8058         * config/arm/arm.h: Likewise.
8059         * config/avr/avr.h: Likewise.
8060         * config/bfin/bfin.c: Likewise.
8061         * config/cris/cris.c: Likewise.
8062         * config/darwin.c: Likewise.
8063         * config/frv/frv.c: Likewise.
8064         * config/i386/i386.c: Likewise.
8065         * config/i386/i386.h: Likewise.
8066         * config/i386/winnt.c: Likewise.
8067         * config/ia64/ia64.h: Likewise.
8068         * config/iq2000/iq2000.c: Likewise.
8069         * config/mips/mips.c: Likewise.
8070         * config/mmix/mmix.h: Likewise.
8071         * config/pa/pa.c: Likewise.
8072         * config/pa/pa.h: Likewise.
8073         * config/rs6000/rs6000.c: Likewise.
8074         * config/s390/s390.c: Likewise.
8075         * config/sparc/sparc.c: Likewise.
8076         * config/xtensa/xtensa.c: Likewise.
8077         * cselib.h: Likewise.
8078         * dbxout.c: Likewise.
8079         * dwarf2out.c: Likewise.
8080         * except.c: Likewise.
8081         * except.h: Likewise.
8082         * fixed-value.h: Likewise.
8083         * function.c: Likewise.
8084         * function.h: Likewise.
8085         * gimple.h: Likewise.
8086         * integrate.c: Likewise.
8087         * optabs.c: Likewise.
8088         * output.h: Likewise.
8089         * real.h: Likewise.
8090         * rtl.h: Likewise.
8091         * stringpool.c: Likewise.
8092         * tree-data-ref.c: Likewise.
8093         * tree-flow.h: Likewise.
8094         * tree-scalar-evolution.c: Likewise.
8095         * tree-ssa-address.c: Likewise.
8096         * tree-ssa-alias.h: Likewise.
8097         * tree-ssa-operands.h: Likewise.
8098         * tree.c: Likewise.
8099         * tree.h: Likewise.
8100         * varasm.c: Likewise.
8101         * varray.h: Likewise.
8102         * vec.h: Likewise.
8103         * coretypes.h: Do not define GTY macro if it is already defined.
8104         * doc/gty.texi: Update GTY documentation to new syntax.
8105         * gengtype-lex.l: Enforce attribute-like syntax for GTY
8106         annotations on structs.
8107         * gengtype-parse.c: Likewise.
8108
8109 2009-04-22  Mark Heffernan  <meheff@google.com>
8110
8111         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
8112
8113 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
8114
8115         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8116         where appropriate.
8117
8118 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
8119
8120         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8121         the same as a PLUS without a shift.  Increase the cost of a
8122         CONST_INT in MULT.
8123
8124 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8125
8126         * Makefile.in: Update dependencies.
8127         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
8128         * errors.h: Remove bogus comment about compatibility.
8129         (warning): Update declaration.
8130         * genautomata.c: Update all calls to warning.
8131         * gimple.c: Do not include errors.h. Include toplev.h.
8132         * tree-ssa-structalias.c: Do not include errors.h.
8133         * omega.c: Likewise.
8134         * tree-ssa-reassoc.c: Likewise.
8135         * config/spu/spu-c.c: Likewise.
8136         * config/spu/t-spu-elf: Update dependencies.
8137
8138 2009-04-22  Richard Guenther  <rguenther@suse.de>
8139
8140         PR tree-optimization/39824
8141         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8142         make sure the types are compatible.
8143
8144 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8145
8146         PR c++/14875
8147         * c-common.c (c_parse_error): Take a token_flags parameter.
8148         Use token_type for the token type instead.
8149         Pass token_flags to cpp_type2name.
8150         * c-common.h (c_parse_error): Update declaration.
8151         * c-parser.c (c_parser_error): Pass 0 as token flags.
8152
8153 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
8154
8155         PR rtl-optimization/39580
8156         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
8157         
8158 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8159
8160         * function.c (expand_function_end): Do not emit a jump to the "naked"
8161         return label for fall-through returns.
8162         * except.c (sjlj_emit_function_exit): Always place the call to the
8163         unregister function at the location installed by expand_function_end.
8164
8165 2009-04-22  Richard Guenther  <rguenther@suse.de>
8166
8167         PR tree-optimization/39845
8168         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8169         (gen_inbound_check): Likewise.
8170
8171 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
8172
8173         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8174         padding for PPC.
8175         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8176         * config/vxlib.c (__gthread_once): Add race guard for PPC.
8177
8178 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8179
8180         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8181         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8182         shift counts to avoid out-of-bounds array accesses.
8183
8184 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8185
8186         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8187         (Pmode): Move above.
8188
8189 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
8190
8191         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8192         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8193         GET_CODE macro.  Use IN_RANGE macro where appropriate.
8194         * config/alpha/alpha.h: Ditto.
8195         * config/alpha/alpha.md: Ditto.
8196         * config/alpha/constraints.md: Ditto.
8197         * config/alpha/predicates.md: Ditto.
8198         
8199 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8200
8201         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8202         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8203         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8204         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8205         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8206         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8207         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8208         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8209         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8210         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8211         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8212         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8213         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8214         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8215         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8216         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8217         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8218         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8219         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8220         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8221         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8222         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8223         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8224         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8225         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8226         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8227         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8228
8229 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8230
8231         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8232         references from comments.
8233         * cfgbuild.c: (count_basic_blocks): Delete.
8234         (find_basic_blocks_1): Delete.
8235         (find_basic_blocks): Delete.
8236         * except.c (finish_eh_generation): Make static.  Move comment from
8237         except.h here.  Remove find_basic_blocks references from comments.
8238         * except.h (finish_eh_generation): Delete.
8239         * basic-block.h (find_basic_blocks): Delete.
8240         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8241
8242 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
8243
8244         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
8245         (sdbout_parms):  Likewise.
8246
8247 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
8248
8249         * config/sh/sh.c (prepare_cbranch_operands): Use
8250         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8251         (expand_cbranchdi4): Likewise.
8252         (from_compare): Add cast to enum type.
8253         (expand_cbranchsi4): Use add_reg_note.
8254         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8255         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8256         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8257         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8258         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8259         instead of CODE_FOR_nothing.
8260         (cbranchdi4): Likewise.  Fix the order of arguments for
8261         gen_rtx_fmt_ee.
8262         (push_fpscr): Use add_reg_note.
8263         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8264         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8265         
8266 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
8267
8268         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8269         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8270         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8271         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8272         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8273         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8274         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8275         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8276         config/alpha/x-vms, config/arc/t-arc,
8277         config/arm/README-interworking, config/arm/arm-c.c,
8278         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8279         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8280         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8281         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8282         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8283         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8284         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8285         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8286         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8287         config/cris/t-elfmulti, config/crx/t-crx,
8288         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8289         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8290         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8291         config/h8300/t-h8300, config/i386/athlon.md,
8292         config/i386/darwin-libgcc.10.4.ver,
8293         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8294         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8295         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8296         config/i386/t-linux64, config/i386/t-nwld,
8297         config/i386/t-rtems-i386, config/i386/t-sol2-10,
8298         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8299         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8300         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8301         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8302         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8303         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8304         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8305         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8306         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8307         config/m68k/t-uclinux, config/mcore/t-mcore,
8308         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8309         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8310         config/mips/crtn.asm, config/mips/irix-crti.asm,
8311         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8312         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8313         config/mips/mips-fixed.md, config/mips/sb1.md,
8314         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8315         config/mips/t-iris6, config/mips/t-isa3264,
8316         config/mips/t-libgcc-mips16, config/mips/t-linux64,
8317         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8318         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8319         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8320         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8321         config/mn10300/t-linux, config/mn10300/t-mn10300,
8322         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8323         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8324         config/picochip/libgccExtras/clzsi2.asm,
8325         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8326         config/rs6000/darwin-libgcc.10.4.ver,
8327         config/rs6000/darwin-libgcc.10.5.ver,
8328         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8329         config/rs6000/t-aix43, config/rs6000/t-aix52,
8330         config/rs6000/t-darwin, config/rs6000/t-fprules,
8331         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8332         config/rs6000/t-lynx, config/rs6000/t-netbsd,
8333         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8334         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8335         config/rs6000/t-rtems, config/rs6000/t-spe,
8336         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8337         config/score/t-score-elf, config/sh/divcost-analysis,
8338         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8339         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8340         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8341         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8342         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8343         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8344         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8345         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
8346         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
8347         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
8348         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
8349         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
8350         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
8351         limitx.h, version.c, xcoff.h: Add copyright and license notices.
8352         * config/h8300/genmova.sh: Include copyright and license notices
8353         in generated output.
8354         * config/h8300/mova.md: Regenerate.
8355         * doc/install.texi2html: Include word "Copyright" in copyright
8356         notice and use name "Free Software Foundation, Inc.".
8357         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8358         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8359         ChangeLog-2007, ChangeLog-2008: Correct dates.
8360
8361 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
8362
8363         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
8364         NE_EXPR operations as well.
8365         * c-parser.c (c_parser_condition): Do not set location information on
8366         the condition.
8367         (c_parser_conditional_expression): Likewise.
8368         (c_parser_binary_expression): Set location information on operators.
8369         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
8370         TRUTH_NOT_EXPR has been folded.
8371         * fold-const.c (fold_truth_not_expr): Copy location information from
8372         the incoming expression to the outgoing one.
8373         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
8374         recursive calls on the LHS of the operator but pass that of the
8375         operator to recursive calls on the RHS of the operator.  Set it
8376         on the COND_EXPR.
8377         (shortcut_cond_expr): Set the locus of the operator on the second
8378         COND_EXPR and that of the expression on the first in degenerate cases.
8379         Pass the locus of the expression to calls to shortcut_cond_r.
8380         Set the locus of the 'then' block on the associated jump, if any.
8381         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
8382         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
8383         expression to call to gimplify_boolean_expr.
8384
8385 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
8386
8387         * config.gcc: Add additional configuration for
8388         i686-w64-mingw* and x86_64-w64-mingw* triplet.
8389         * config/i386/mingw-w64.h: New mingw-w64 specific header.
8390         (CPP_SPEC): Redefine for allowing -municode option.
8391         (STARTFILE_SPEC): Likewise.
8392         * config/i386/t-mingw-w64: New.
8393         * config/i386/mingw-w64.opt: New.
8394         (municode): Add new target option.
8395         * doc/invoke.texi (municode): Add documentation for new option.
8396
8397 2009-04-21  Ian Lance Taylor  <iant@google.com>
8398
8399         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8400         Correct test for number of arguments.
8401         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
8402
8403 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
8404
8405         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
8406         argument of emit_library_call.
8407
8408 2009-04-21  Richard Guenther  <rguenther@suse.de>
8409
8410         PR middle-end/39829
8411         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
8412         inside VIEW_CONVERT_EXPRs.
8413
8414 2009-04-21  Martin Jambor  <mjambor@suse.cz>
8415
8416         * tree-switch-conversion.c (build_constructors): Split a long line.
8417         (constructor_contains_same_values_p): New function.
8418         (build_one_array): Create assigns of constants if possible, do not
8419         call mark_sym_for_renaming, call update_stmt.
8420         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
8421         make_rename_temp.  Do not call mark_symbols_for_renaming, call
8422         update_stmt.
8423         (gen_def_assigns): Do not call mark_symbols_for_renaming or
8424         find_new_referenced_vars, call update_stmt.
8425         (gen_inbound_check): Use create_tmp_var and create ssa names manually
8426         instead of calling make_rename_temp.  Do not call
8427         find_new_referenced_vars or mark_symbols_for_renaming, call
8428         update_stmt.
8429
8430 2009-04-21  Richard Guenther  <rguenther@suse.de>
8431
8432         PR tree-optimization/39827
8433         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
8434         (tree_ssa_phiprop): Pass the correct array size.
8435
8436 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
8437
8438         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
8439
8440 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8441
8442         PR 16202
8443         * c-typeck.c (lvalue_p): Move declaration ...
8444         * c-common.h (lvalue_p): ... to here.
8445         * c-common.c (candidate_equal_p): New.
8446         (add_tlist): Use it.
8447         (merge_tlist): Use it.
8448         (warn_for_collisions_1): Likewise.
8449         (warning_candidate_p): Accept more candidates.
8450         (verify_tree): A warning candidate can be an expression. Use
8451         candidate_equal_p.
8452
8453 2009-04-21  Ben Elliston  <bje@au.ibm.com>
8454
8455         PR target/5267
8456         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
8457         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
8458         options.  Remove -mcall-solaris documentation.
8459
8460 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8461
8462         PR c++/13358
8463         * doc/invoke.texi (-Wlong-long): Update description.
8464         * c-lex (interpret_integer): Only warn if there was no previous
8465         overflow and -Wlong-long is enabled.
8466         * c-decl.c (declspecs_add_type): Drop redundant flags.
8467         * c.opt (Wlong-long): Init to -1.
8468         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
8469         and front-end warn_long_long. Wlong-long only depends on other
8470         flags if it is uninitialized.
8471         * c-parser.c (disable_extension_diagnostics): warn_long_long is
8472         the same for CPP and FE.
8473         (restore_extension_diagnostics): Likewise.
8474
8475 2009-04-20  Ian Lance Taylor  <iant@google.com>
8476
8477         Fix enum conversions which are invalid in C++:
8478         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
8479         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
8480         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
8481         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
8482         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
8483         (dbxout_parms): Likewise.
8484         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
8485         (df_clear_flags): Likewise.
8486         * df-problems.c (df_rd_bb_local_compute_process_def): Change
8487         top_flag parameter to int.
8488         (df_chain_create_bb_process_use): Likewise.
8489         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
8490         Remove cast.
8491         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
8492         (df_ref_create_structure, df_def_record_1): Likewise.
8493         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
8494         (df_notes_rescan): Change 0 to VOIDmode in function call.
8495         (df_get_call_refs, df_insn_refs_collect): Likewise.
8496         (df_bb_regs_collect): Likewise.
8497         (df_entry_block_defs_collect): Likewise.
8498         (df_exit_block_uses_collect): Likewise.
8499         * df.h: Update declarations.
8500         * double-int.c (double_int_divmod): Add cast to enum type.
8501         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
8502         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
8503         (based_loc_descr): Likewise.
8504         (loc_descriptor_from_tree_1): Change first_op and second_op to
8505         enum dwarf_location_atom.  Add cast to enum type.
8506         * expmed.c (init_expmed): Change 0 to SET in function call.
8507         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
8508         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
8509         (do_store_flag): Likewise.
8510         * fixed-value.h (struct fixed_value): Change mode to enum
8511         machine_mode.
8512         * function.c (assign_parms): Change 0 to VOIDmode in function call.
8513         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
8514         function call.
8515         (insert_insn_decl, insert_decl, insert_state): Likewise.
8516         (automata_list_finish): Likewise.
8517         * genrecog.c (process_define_predicate): Add cast to enum type.
8518         * gensupport.c (init_predicate_table): Add cast to enum type.
8519         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
8520         function call.
8521         (gimple_build_call_1, gimple_build_label): Likewise.
8522         (gimple_build_goto, gimple_build_asm_1): Likewise.
8523         (gimple_build_switch_1, gimple_build_cdt): Likewise.
8524         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
8525         (enum fallback): Rename from enum fallback_t.
8526         (fallback_t): Typedef as int.
8527         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
8528         GSI_SAME_STMT in function call.
8529         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
8530         enum type.
8531         (setup_reg_class_relations): Likewise.
8532         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
8533         (setup_prohibited_class_mode_regs): Add cast to enum type.
8534         (setup_prohibited_mode_move_regs): Likewise.
8535         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
8536         (record_address_regs): Change i to enum reg_class.
8537         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
8538         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
8539         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
8540         (GET_MODE_2XWIDER_MODE): Likewise.
8541         (GET_CLASS_NARROWEST_MODE): Likewise.
8542         * omp-low.c (expand_omp_for): Add cast to enum type.
8543         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
8544         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
8545         * postreload.c (reload_cse_simplify_operands): Change rclass local
8546         to enum reg_class.
8547         * predict.c (combine_predictions_for_insn): Change best_predictor
8548         and predictor to enum br_predictor.
8549         (combine_predictions_for_bb): Likewise.
8550         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
8551         use SET_PREDICT_EXPR_OUTCOME.
8552         * real.c (real_arithmetic): Change icode to code in function call.
8553         * reginfo.c (init_move_cost): Add casts to enum type.
8554         (init_reg_sets_1, init_fake_stack_mems): Likewise.
8555         * regmove.c (regclass_compatible_p): Change class0 and class1 to
8556         enum reg_class.
8557         * reload.c (find_valid_class): Add casts to enum type.
8558         (push_reload): Change 0 to NO_REGS in function call.
8559         (find_reloads): Change this_alternative to array of enum
8560         reg_class.  Remove some now-unnecessary casts.
8561         (make_memloc): Change 0 to VOIDmode in function call.
8562         * reload1.c (reload): Change 0 to VOIDmode in function call.
8563         (eliminate_regs_1, elimination_effects): Likewise.
8564         (eliminate_regs_in_insn): Likewise.
8565         (emit_input_reload_insns): Add cast to enum type.
8566         (delete_output_reload): Change 0 to VOIDmode in function call.
8567         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
8568         to enum type in function call.
8569         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
8570         (SET_PREDICT_EXPR_OUTCOME): Define.
8571         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
8572         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8573         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8574         (dump_function): Likewise.
8575         * tree-dump.h: Update declarations.
8576         * tree-pass.h: Update declarations.
8577         * varasm.c (assemble_integer): Change mclass to enum mode_class.
8578         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8579         enum type.
8580         (arm_rtx_costs_1): Correct parenthesization.
8581         (arm_rtx_costs): Add casts to enum type.
8582         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8583         (vfp_emit_fstmd): Use add_rg_note.
8584         (emit_multi_reg_push, emit_sfm): Likewise.
8585         (thumb_set_frame_pointer): Likewise.
8586         (arm_expand_prologue): Likewise.
8587         (arm_regno_class): Change return type to enum reg_class.
8588         (thumb1_expand_prologue): Use add_reg_note.
8589         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8590         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8591         in function call.
8592         * config/arm/gentune.sh: Add cast to enum type.
8593         * config/arm/arm-tune.md: Rebuild.
8594         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8595         (ix86_split_fp_branch, predict_jump): Likewise.
8596         (ix86_expand_multi_arg_builtin): Change sub_code from enum
8597         insn_code to enum rtx_code.
8598         (ix86_builtin_vectorized_function): Add cast to enum type.
8599         * config/i386/i386.md (truncdfsf2): Change slot to enum
8600         ix86_stack_slot.
8601         (truncxf<mode>2, isinf<mode>2): Likewise.
8602         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8603         enum type.
8604         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8605         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8606         (insert_bundle_state): Change 1 to INSERT in function call.
8607         (ia64_add_bundle_selector_before): Likewise.
8608         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8609         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8610         (restore_stack_nonlocal): Likewise.
8611         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8612         function call.
8613         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8614         function call.
8615         (mips_rtx_costs): Likewise.
8616         (mips_override_options): Add casts to enum type.
8617         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8618         in function call.
8619         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8620         (store_reg, set_reg_plus_d): Likewise.
8621         (hppa_expand_prologue, hppa_profile_hook): Likewise.
8622         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8623         cast to enum type.
8624         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8625         function call.
8626         (emit_unlikely_jump): Use add_reg_note.
8627         (rs6000_emit_allocate_stack): Likewise.
8628         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8629         (output_toc): Change 1 to INSERT in function call.
8630         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8631         (rs6000_initialize_trampoline): Likewise.
8632         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8633         function call.
8634         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8635         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8636         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8637         (save_gprs): Use add_reg_note.
8638         (s390_emit_prologue): Likewise.
8639         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8640         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8641         (sparc_fold_builtin): Add cast to enum type.
8642         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8643         enum insn_code.
8644         (spu_expand_prologue): Use add_reg_note.
8645         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
8646
8647 2009-04-20  Ian Lance Taylor  <iant@google.com>
8648
8649         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8650         (c_parser_postfix_expression_after_primary): Get VEC for list of
8651         arguments.  Get original types of arguments.  Call
8652         build_function_call_vec.
8653         (cached_expr_list_1, cached_expr_list_2): New static variables.
8654         (c_parser_expr_list): Change return type to VEC *.  Add
8655         p_orig_types parameter.  Change all callers.
8656         (c_parser_release_expr): New static function.
8657         (c_parser_vec_to_tree_list): New static function.
8658         * c-typeck.c (build_function_call): Rewrite to build a VEC and
8659         call build_function_call_vec.
8660         (build_function_call_vec): New function, based on old
8661         build_function_call.
8662         (convert_arguments): Remove nargs and argarray parameters.  Change
8663         values to a VEC.  Add origtypes parameter.
8664         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
8665         (convert_for_assignment): Add origtype parameter.  Change all
8666         callers.  If warn_cxx_compat, check for conversion to an enum
8667         type when calling a function.
8668         (store_init_value): Add origtype parameter.  Change all callers.
8669         (digest_init): Likewise.
8670         (struct init_node): Add origtype field.
8671         (add_pending_init): Add origtype parameter.  Change all callers.
8672         (output_init_element): Likewise.
8673         (output_pending_init_elements): Pass origtype from init_node to
8674         output_init_element.
8675         (process_init_element): Pass origtype from c_expr to
8676         output_init_element.
8677         (c_finish_return): Add origtype parameter.  Change all callers.
8678         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
8679         caller.
8680         (sync_resolve_params): Likewise.
8681         (sync_resolve_return): Change params to first_param.  Change caller.
8682         (resolve_overloaded_builtins): Change params to VEC *.  Change
8683         callers.  Save first parameter around call to build_function_call_vec.
8684         * c-decl.c (finish_decl): Add origtype parameter.  Change all
8685         callers.  Call build_function_call_vec rather than
8686         build_function_call for cleanup.
8687         * c-tree.h: Update declarations.
8688         * c-common.h: Update declarations.
8689         * stub-objc.c (objc_rewrite_function_call): Change parameter from
8690         params to first_param.
8691         * target.h (struct gcc_target): Change resolve_overloaded_builtin
8692         params parameter from tree to void *.
8693         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8694         Change arglist parameter to have type void *, and to be a pointer
8695         to a VEC.
8696         * config/rs6000/rs6000-protos.h
8697         (altivec_resolve_overloaded_builtin): Update declaration.
8698         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8699         fnargs parameter to have type void *, and to be a pointer to a
8700         VEC.  Call build_function_call_vec instead of
8701         build_function_call.
8702         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
8703
8704 2009-04-20  Joey Ye  <joey.ye@intel.com>
8705             Xuepeng Guo  <xuepeng.guo@intel.com>
8706             H.J. Lu  <hongjiu.lu@intel.com>
8707
8708         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8709
8710         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8711         (IX86_LEA_PRIORITY): Likewise.
8712         (distance_non_agu_define): New function.
8713         (distance_agu_use): Likewise.
8714         (ix86_lea_for_add_ok): Likewise.
8715         (ix86_dep_by_shift_count): Likewise.
8716
8717         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8718         should split for LEA.
8719
8720         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8721         function.
8722         (ix86_dep_by_shift_count): Likewise.
8723
8724 2009-04-20  Richard Guenther  <rguenther@suse.de>
8725
8726         * expr.c (handled_component_p): Move ...
8727         * tree.h (handled_component_p): ... here.
8728         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8729         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8730         and REALPART_EXPR to be in one group.
8731
8732 2009-04-20  Richard Guenther  <rguenther@suse.de>
8733
8734         * basic-block.h (get_all_dominated_blocks): Declare.
8735         * dominance.c (get_all_dominated_blocks): New function.
8736         * tree-cfg.c (get_all_dominated_blocks): Remove.
8737         (remove_edge_and_dominated_blocks): Adjust.
8738         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8739         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
8740         instead of recursing.
8741
8742 2009-04-20  Doug Kwan  <dougkwan@google.com>
8743
8744         * cgraph.h (cgraph_node_ptr): New type for vector functions.
8745         (struct cgraph_node_set_def): New type.
8746         (cgraph_node_set) New type. Also declare vector functions.
8747         (struct cgraph_node_set_element_def): New type.
8748         (cgraph_node_set_element): Ditto.
8749         (cgraph_node_set_iterator): New iterator type.
8750         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8751         cgraph_node_set_remove, dump_cgraph_node_set,
8752         debug_cgraph_node_set): New prototypes.
8753         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8754         cgraph_node_set_size): New inlines.
8755         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8756         including cgraph.h.
8757         (struct ipa_opt_pass): Add struct cgraph_node_set_def
8758         argument to function 'write_summary'.
8759         * ipa.c: Include ggc.h.
8760         (hash_cgraph_node_set_element,
8761         eq_cgraph_node_set_element, cgraph_node_set_new,
8762         cgraph_node_set_add, cgraph_node_set_remove,
8763         cgraph_node_set_find, dump_cgraph_node_set,
8764         debug_cgraph_node_set): New functions.
8765         * Makefile.in (ipa.o): Add dependency on GGC_H.
8766
8767 2009-04-20  Ira Rosen  <irar@il.ibm.com>
8768
8769         PR tree-optimization/39675
8770         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8771         check of the return code of vect_schedule_slp. Check that
8772         stmt_vec_info still exists for the statement, before checking its
8773         vectorization type.
8774
8775 2009-04-20  Michael Matz  <matz@suse.de>
8776
8777         * Makefile.in (generated_files): Take out $(simple_generated_c).
8778
8779 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
8780
8781         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
8782         (UINTPTR_TYPE):  Likewise.
8783
8784 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8785
8786         PR c/37481
8787         * c-typeck.c (digest_init): Check for initializing an array with a
8788         string literal.
8789
8790 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8791
8792         PR c/19771
8793         * c-semantics.c (pop_stmt_list): Propagate
8794         STATEMENT_LIST_HAS_LABEL to parent statement list.
8795
8796 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
8797
8798         * config/mips/mips.h (mips_tune_attr): New macro.
8799         * config/mips/mips.md (cpu): Use it.
8800
8801 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8802
8803         PR c/38243
8804         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8805         declaring a tag.
8806
8807 2009-04-19  Diego Novillo  <dnovillo@google.com>
8808
8809         * toplev.c (compile_file): Move call to coverage_finish ...
8810         * cgraphunit.c (ipa_passes): ... here.
8811         Call cgraph_process_new_functions.
8812         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8813         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8814
8815 2009-04-19  Jan Hubicka  <jh@suse.cz>
8816
8817         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8818         cfun.
8819         (dump_cgraph_node): Dump can throw external flag.
8820         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8821
8822 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8823
8824         PR c/32061
8825         PR c++/36954
8826         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8827         * common.opt (Wlogical-op): Move from here...
8828         * c.opt (Wlogical-op): ... to here.
8829         * c-typeck.c (parser_build_binary_op): Update call to
8830         warn_logical_operator.
8831         * c-opts.c (c_common_post_options): Enable warn_logical_op with
8832         extra_warnings.
8833         * c-common.c (warn_logical_op): Update.
8834         * c-common.h (warn_logical_op): Update declaration.
8835
8836 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8837
8838         * tree.c (protected_set_expr_location): Fix formatting.
8839
8840 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8841
8842         PR c/27676
8843         * c-typeck.c (readonly_warning): new.
8844         (build_unary_op, build_modify_expr): Use readonly_warning for
8845         storing into something readonly but not const-qualified.
8846
8847 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8848
8849         PR c/22367
8850         * c-typeck.c (build_unary_op): Check for taking address of
8851         expression of type void.
8852
8853 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8854
8855         PR c/35210
8856         * c-typeck.c (build_function_call): Check for calling a function
8857         with qualified void return types.  Call require_complete_type when
8858         generating a trap.
8859
8860 2009-04-18  Jan Hubicka  <jh@suse.cz>
8861
8862         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8863         Set nothrow flag.
8864         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8865         can_throw_external flag.
8866         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8867         * ipa-pure-const.c (ignore_edge): New function.
8868         (propagate): Compute order for NOTHROW computation; set NOTHROWs
8869         only over can_throw_external edges.
8870         (local_pure_const): Add nothrow flag.
8871         * ipa-utils.c (searchc): Add ignore_edge callback.
8872         (ipa_utils_reduced_inorder): Add ignore_edge callback.
8873         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8874         (set_nothrow_function_flags): Update cgraph.
8875         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8876
8877 2009-04-18  Richard Guenther  <rguenther@suse.de>
8878
8879         PR middle-end/39804
8880         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8881         (fold_stmt): ... this and ...
8882         (fold_stmt_inplace): ... this.
8883         (fold_stmt_1): Fold references in calls and asms.
8884         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8885
8886 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8887
8888         * tree-vrp.c (ssa_name_nonzero_p): Remove.
8889         * tree.h: Remove the prototype for ssa_name_nonzero_p.
8890
8891 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8892
8893         * tree.c (function_args_count): Remove.
8894         * tree.h: Remove the prototype for function_args_count.
8895
8896 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8897
8898         * tree-iterator.c (expr_only): Remove.
8899         * tree.h: Remove the prototype for expr_only.
8900
8901 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8902
8903         * reginfo.c (cannot_change_mode_set_regs): Remove.
8904         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8905
8906 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
8907
8908         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8909         whether operands 0 and 1 overlaps.
8910
8911 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8912
8913         PR middle-end/36902
8914         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8915         pointer. Use warning_at instead of warning.
8916         (search_for_addr_array): Likewise.
8917         (check_array_bounds): Likewise.
8918         (check_all_array_refs): Check that the incoming edge is not in the
8919         list of edges to be removed.
8920         (check_all_array_refs): Avoid the temporal pointer.
8921         (vrp_visit_cond_stmt): Fix typo.
8922         (simplify_switch_using_ranges): Handle the case where the switch
8923         index is an integer constant.
8924
8925 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
8926
8927         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8928
8929 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8930
8931         * doc/extend.texi, doc/invoke.texi: Fix typos.
8932
8933 2009-04-17  Cary Coutant  <ccoutant@google.com>
8934
8935         * tree-flow-inline.h (get_lineno): Fix inverted test.
8936
8937 2009-04-17  Diego Novillo  <dnovillo@google.com>
8938
8939         * tree-ssa-pre.c (create_expression_by_pieces): Remove
8940         assertion for AVAIL_OUT.
8941
8942 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
8943
8944         PR target/38627
8945         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8946         * config/sh/linux-atomic.asm: Likewise.
8947
8948 2009-04-17  Diego Novillo  <dnovillo@google.com>
8949
8950         * except.c (debug_eh_tree): New.
8951         (struct eh_region, struct eh_status): Move ...
8952         * except.h: ... here.
8953         (add_type_for_runtime): Declare extern.
8954         (lookup_type_for_runtime): Likewise.
8955         (debug_eh_tree): Declare.
8956         * Makefile.in (GTFILES): List except.h before except.c
8957
8958 2009-04-17  Diego Novillo  <dnovillo@google.com>
8959
8960         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8961         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8962         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8963         (find_vars_r): ... here.
8964         * tree-flow.h (find_referenced_vars_in): Declare.
8965         * tree-ssa-pre.c (create_expression_by_pieces): Assert
8966         that AVAIL_OUT exists for BLOCK.
8967         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8968         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8969         (tree-parloops.o): Likewise.
8970
8971 2009-04-17  Simon Baldwin  <simonb@google.com>
8972
8973         * toplev.c (default_tree_printer): Add handling for %E format.
8974
8975 2009-04-17  Diego Novillo  <dnovillo@google.com>
8976
8977         * tree-pretty-print.c (dump_generic_node): Add break after
8978         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
8979         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
8980         FUNCTION_TYPE together.  Call print_struct_decl when printing
8981         structures and TDF_SLIM is not given.
8982         (print_struct_decl): Fix logic for detecting recursion.
8983
8984 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
8985
8986         PR 31567
8987         * gcc.c (create_at_file): New.
8988         (compile_input_file_p): New.
8989         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8990         * main.c (main): Update call to toplev_main.
8991         * toplev.c (toplev_main): Change signature. Call expandargv.
8992         * toplev.h (toplev_main): Change signature.
8993
8994 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8995
8996         * dwarf2out.c (field_byte_offset): Use the type size as the field size
8997         if the latter is not constant.
8998
8999 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
9000
9001         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9002
9003 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9004
9005         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9006         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9007
9008 2009-04-17  Richard Guenther  <rguenther@suse.de>
9009
9010         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9011         Handle component references view-converting an invariant address.
9012
9013 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
9014
9015         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9016         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9017         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9018         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9019         Use @deftypevr rather than @deftypevar.
9020
9021 2009-04-17  Richard Guenther  <rguenther@suse.de>
9022
9023         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
9024         (get_prop_source_stmt): Likewise.
9025         (can_propagate_from): Likewise.
9026
9027 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
9028
9029         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9030         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9031         (--with-multilib-list): Add default value.
9032         * configure: Regenerate.
9033         * Makefile.in (TM_ENDIAN_CONFIG): Define.
9034         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9035         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9036         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9037         Don't add default cpu to multilib list unnecessarily, but do enable
9038         the relevant compiler option..
9039         Add support for --with-multilib-list=<blank> and
9040         --with-multilib-list=!<somelib> to supress unwanted multilibs.
9041         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9042         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9043         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9044         TM_MULTILIB_CONFIG.
9045         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9046         (MULTILIB_OSDIRNAMES): New variable.
9047         * config/sh/t-1e: Delete file.
9048         * config/sh/t-mlib-sh1: Delete file.
9049         * config/sh/t-mlib-sh2: Delete file.
9050         * config/sh/t-mlib-sh2a: Delete file.
9051         * config/sh/t-mlib-sh2a-nofpu: Delete file.
9052         * config/sh/t-mlib-sh2a-single: Delete file.
9053         * config/sh/t-mlib-sh2a-single-only: Delete file.
9054         * config/sh/t-mlib-sh2e: Delete file.
9055         * config/sh/t-mlib-sh3e: Delete file.
9056         * config/sh/t-mlib-sh4: Delete file.
9057         * config/sh/t-mlib-sh4-nofpu: Delete file.
9058         * config/sh/t-mlib-sh4-single: Delete file.
9059         * config/sh/t-mlib-sh4-single-only: Delete file.
9060         * config/sh/t-mlib-sh4a: Delete file.
9061         * config/sh/t-mlib-sh4a-nofpu: Delete file.
9062         * config/sh/t-mlib-sh4a-single: Delete file.
9063         * config/sh/t-mlib-sh4a-single-only: Delete file.
9064         * config/sh/t-mlib-sh4al: Delete file.
9065         * config/sh/t-mlib-sh5-32media: Delete file.
9066         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9067         * config/sh/t-mlib-sh5-64media: Delete file.
9068         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9069         * config/sh/t-mlib-sh5-compact: Delete file.
9070         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9071         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9072         * doc/install.texi (Options specification): Add
9073         --with-multilib-list and --with-endian.
9074
9075 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
9076
9077         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9078         REVISION_c.
9079         (OBJS-common): Add plugin-version.o.
9080         (plugin-version.o): New.
9081         * gcc-plugin.h (plugin_gcc_version): New.
9082         (plugin_default_version_check): New.
9083         (plugin_init_func, plugin_init): Add version argument.
9084         * plugin-version.c: New.
9085         * plugin.c (str_plugin_gcc_version_name): New.
9086         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9087         pass it to the init function.
9088         (plugin_default_version_check): New.
9089
9090 2009-04-17  Richard Guenther  <rguenther@suse.de>
9091
9092         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9093         for decl-vs-decl disambiguation.
9094
9095 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
9096
9097         * config/s390/s390.h (s390_tune_attr): New macro definition.
9098         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9099
9100 2009-04-17  Richard Guenther  <rguenther@suse.de>
9101
9102         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9103         (fold_stmt_r): Likewise.
9104         (maybe_fold_reference): New function.
9105         (fold_gimple_assign): Handle cases fold_stmt_r did.
9106         (fold_stmt): Do not use fold_stmt_r.
9107         (fold_stmt_inplace): Likewise.
9108
9109 2009-04-17  Richard Guenther  <rguenther@suse.de>
9110
9111         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9112         (record_equivalences_from_stmt): Remove useless checks and
9113         simplifications.
9114         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9115         the type is already suitable.
9116
9117 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
9118
9119         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9120
9121 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
9122
9123         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9124         (CMPtype): Define as __gcc_CMPtype.
9125
9126 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
9127
9128         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9129         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9130
9131 2009-04-17  Richard Guenther  <rguenther@suse.de>
9132
9133         PR tree-optimization/39746
9134         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9135         special-casing for builtins and static variable use/def.
9136         (call_may_clobber_ref_p_1): Likewise.
9137
9138 2009-04-16  Ian Lance Taylor  <iant@google.com>
9139
9140         * df.h: Include "timevar.h".
9141         (struct df_problem): Change tv_id field to timevar_id_t.
9142         * tree-pass.h: Include "timevar.h".
9143         (struct opt_pass): Change tv_id field to timevar_id_t.
9144         * timevar.h (timevar_id_t): Define TV_NONE.
9145         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9146         TV_NONE rather than tv_id != 0.
9147         (execute_one_pass): Likewise.
9148         * Makefile.in (DF_H): Add $(TIMEVAR_H).
9149         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
9150         dependencies to $(TREE_PASS_H).
9151         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9152         to TV_NONE.
9153         (pass_branch_target_load_optimize2): Likewise.
9154         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9155         (pass_outof_cfg_layout_mode): Likewise.
9156         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9157         (pass_rebuild_cgraph_edges): Likewise.
9158         (pass_remove_cgraph_callee_edges): Likewise.
9159         * df-core.c (pass_df_initialize_opt): Likewise.
9160         (pass_df_initialize_no_opt): Likewise.
9161         (pass_df_finish): Likewise.
9162         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9163         * except.c (pass_set_nothrow_function_flags): Likewise.
9164         (pass_convert_to_eh_region_ranges): Likewise.
9165         * final.c (pass_compute_alignments): Likewise.
9166         * function.c (pass_instantiate_virtual_regs): Likewise.
9167         (pass_init_function): Likewise.
9168         (pass_leaf_regs): Likewise.
9169         (pass_match_asm_constraints): Likewise.
9170         * gimple-low.c (pass_lower_cf): Likewise.
9171         (pass_mark_used_blocks): Likewise.
9172         * init-regs.c (pass_initialize_regs): Likewise.
9173         * integrate.c (pass_initial_value_sets): Likewise.
9174         * ira.c (pass_ira): Likewise.
9175         * jump.c (pass_cleanup_barriers): Likewise.
9176         * omp-low.c (pass_expand_omp): Likewise.
9177         (pass_lower_omp): Likewise.
9178         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9179         * recog.c (pass_split_all_insns): Likewise.
9180         (pass_split_after_reload): Likewise.
9181         (pass_split_before_regstack): Likewise.
9182         (pass_split_before_sched2): Likewise.
9183         (pass_split_for_shorten_branches): Likewise.
9184         * reginfo.c (pass_reginfo_init): Likewise.
9185         (pass_subregs_of_mode_init): Likewise.
9186         (pass_subregs_of_mode_finish): Likewise.
9187         * passes.c (pass_postreload): Likewise.
9188         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9189         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9190         (pass_warn_function_return): Likewise.
9191         (pass_warn_function_noreturn): Likewise.
9192         * tree-complex.c (pass_lower_complex): Likewise.
9193         (pass_lower_complex_O0): Likewise.
9194         * tree-if-conv.c (pass_if_conversion): Likewise.
9195         * tree-into-ssa.c (pass_build_ssa): Likewise.
9196         * tree-mudflap.c (pass_mudflap_1): Likewise.
9197         (pass_mudflap_2): Likewise.
9198         * tree-nomudflap.c (pass_mudflap_1): Likewise.
9199         (pass_mudflap_2): Likewise.
9200         * tree-nrv.c (pass_return_slot): Likewise.
9201         * tree-object-size.c (pass_object_sizes): Likewise.
9202         * tree-optimize.c (pass_all_optimizations): Likewise.
9203         (pass_early_local_passes): Likewise.
9204         (pass_all_early_optimizations): Likewise.
9205         (pass_cleanup_cfg): Likewise.
9206         (pass_cleanup_cfg_post_optimizing): Likewise.
9207         (pass_free_datastructures): Likewise.
9208         (pass_free_cfg_annotations): Likewise.
9209         (pass_fixup_cfg): Likewise.
9210         (pass_init_datastructures): Likewise.
9211         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9212         (pass_late_warn_uninitialized): Likewise.
9213         (pass_update_address_taken): Likewise.
9214         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9215         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9216         (pass_cse_sincos): Likewise.
9217         (pass_convert_to_rsqrt): Likewise.
9218         * tree-ssa-structalias.c (pass_build_alias): Likewise.
9219         * tree-stdarg.c (pass_stdarg): Likewise.
9220         * tree-tailcall.c (pass_tail_recursion): Likewise.
9221         (pass_tail_calls): Likewise.
9222         * tree-vect-generic.c (pass_lower_vector): Likewise.
9223         (pass_lower_vector_ssa): Likewise.
9224         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9225
9226 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
9227
9228         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9229         XLR entry.
9230         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9231         Handle -march=xlr.
9232         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9233         logical and signext.
9234
9235 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
9236
9237         PR target/39767
9238         * config/sh/predicates.md (arith_operand): Check if the operand
9239         of TRUNCATE is a REG.
9240
9241 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9242
9243         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9244         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9245
9246 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9247
9248         * tree-iterator.c (tsi_split_statement_list_after,
9249         tsi_split_statement_list_before): Remove.
9250         * tree-iterator.h: Remove the prototypes for
9251         tsi_split_statement_list_after and tsi_split_statement_list_before.
9252
9253 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9254
9255         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9256         * tree-ssa-propagate.h: Remove the prototype for
9257         stmt_makes_single_load.
9258
9259 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9260
9261         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9262         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9263
9264 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9265
9266         * tree-iterator.c (EXPR_LAST_BODY): Remove.
9267
9268 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9269
9270         * except.c (eh_region_outer_p): Remove.
9271         * except.h: Remove the prototype for eh_region_outer_p.
9272
9273 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9274
9275         * function.c (current_function_assembler_name): Remove.
9276         * function.h: Remove the prototype for
9277         current_function_assembler_name.
9278
9279 2009-04-16  Ian Lance Taylor  <iant@google.com>
9280
9281         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
9282         (add_reg_note): Call alloc_reg_note.
9283         * rtl.h (alloc_reg_note): Declare.
9284         * combine.c (try_combine): Use alloc_reg_note.
9285         (recog_for_combine, move_deaths): Likewise.
9286         (distribute_notes): Use alloc_reg_note and add_reg_note.
9287         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9288         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9289         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9290
9291 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
9292
9293         PR rtl-optimization/39762
9294         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9295         ira_may_move_out_cost): Add comments about way of their usage.
9296         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
9297
9298         * ira-conflicts.c (process_regs_for_copy): Use function
9299         ira_get_register_move_cost instead of global
9300         ira_register_move_cost.
9301
9302         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9303         color_pass, move_spill_restore, update_curr_costs): Ditto.
9304
9305         * ira-lives.c (process_single_reg_class_operands): Ditto.
9306
9307         * ira-emit.c (emit_move_list): Ditto.
9308
9309         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9310         (record_reg_classes): Ditto.  Use functions
9311         ira_get_register_move_cost and ira_get_may_move_cost instead of
9312         global vars ira_register_move_cost, ira_may_move_out_cost and
9313         ira_may_move_in_cost.
9314         (record_address_regs): Don't call ira_init_register_move_cost.
9315         Use function ira_get_may_move_cost instead of global
9316         ira_may_move_in_cost.
9317         (process_bb_node_for_hard_reg_moves): Use function
9318         ira_get_register_move_cost instead of global ira_register_move_cost.
9319         (ira_costs): Don't call ira_init_register_move_cost.
9320
9321 2009-04-16  Richard Guenther  <rguenther@suse.de>
9322
9323         * tree-cfg.c (verify_gimple_assign_binary):
9324         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9325         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9326         (create_general_new_stmt): Note that this function is broken.
9327
9328 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
9329
9330         * common.opt (fhelp): Add Var(help_flag).
9331         * gcc-plugin.h (plugin_info): Add help.
9332         * plugin.c (plugin_name_args): Add help.
9333         (register_plugin_info): Set plugin->help.
9334         (print_help_one_plugin): New.
9335         (print_plugins_help): New.
9336         * plugin.h (print_plugins_help): New.
9337         * toplev.c (toplev_main): Call print_plugins_help if needed.
9338
9339 2009-04-16  Richard Guenther  <rguenther@suse.de>
9340
9341         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9342         (gimple_ior_addresses_taken_1): New function.
9343         (gimple_ior_addresses_taken): Likewise.
9344         * gimple.h (struct gimple_statement_with_ops_base): Remove
9345         addresses_taken member.
9346         (gimple_ior_addresses_taken): Declare.
9347         (gimple_addresses_taken, gimple_addresses_taken_ptr,
9348         gimple_set_addresses_taken): Remove.
9349         * ipa-reference.c (mark_address): New function.
9350         (scan_stmt_for_static_refs): Use it for marking addresses taken.
9351         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
9352         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
9353         (gimple_add_to_addresses_taken): Remove.
9354         (get_tmr_operands): Call mark_address_taken.
9355         (get_asm_expr_operands): Likewise.
9356         (get_expr_operands): Likewise.
9357         (build_ssa_operands): Do not clear the addresses_taken bitmap.
9358         (free_stmt_operands): Do not free it.
9359         * tree-ssa.c (delete_tree_ssa): Likewise.
9360         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
9361
9362 2009-04-16  Richard Guenther  <rguenther@suse.de>
9363
9364         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
9365         (walk_stmt_load_store_ops): Likewise.
9366         * gimple.c (get_base_loadstore): New function.
9367         (walk_stmt_load_store_addr_ops): Likewise.
9368         (walk_stmt_load_store_ops): Likewise.
9369         * ipa-pure-const.c (check_op): Simplify.
9370         (check_load, check_store): New functions.
9371         (check_stmt): Use walk_stmt_load_store_ops.
9372         * ipa-reference.c (mark_load): Adjust signature.
9373         (mark_store): Likewise.
9374         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
9375
9376 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
9377
9378         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
9379         (plugin_info): New.
9380         * opts.c (common_handle_option): Don't call print_version.
9381         * plugin.c (plugin_name_args): Add version.
9382         (register_plugin_info): New.
9383         (register_callback): Handle PLUGIN_INFO.
9384         (try_init_one_plugin): New.
9385         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
9386         if failed to init.
9387         (finalize_one_plugin): New.
9388         (finalize_plugins): New.
9389         (print_one_plugin): New.
9390         (print_plugins_versions): New.
9391         * plugin.h (print_plugins_versions): New.
9392         (finalize_plugins): New.
9393         * toplev.c (compile_file): Don't call initialize_plugins.
9394         (print_version): Call print_plugins_versions.
9395         (toplev_main): Call initialize_plugins. Print version if needed.
9396         Call finalize_plugins.
9397
9398 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
9399
9400         * common.opt (fversion): New.
9401         * gcc.c (print_version): New.
9402         (process_command): Don't print the version. Just set print_version.
9403         (main): Print version. Call subprocesses if print_version and
9404         verbose_flag are set.
9405         * opts.c (common_handle_option): Handle OPT_fversion.
9406
9407 2009-04-16  Richard Guenther  <rguenther@suse.de>
9408             Ira Rosen  <irar@il.ibm.com>
9409
9410         PR tree-optimization/39698
9411         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
9412         type of the reduction variable.  Only generate the def if
9413         it is needed.
9414
9415         * omp-low.c (expand_omp_for_generic): When converting to a pointer
9416         make sure to first convert to an integer of the same precision.
9417         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
9418         the type of the evolution correctly in computing the new
9419         induction variable base.
9420
9421 2009-04-16  Richard Guenther  <rguenther@suse.de>
9422
9423         PR middle-end/39625
9424         * tree-cfg.c (make_blocks): Split statements with to-be
9425         abnormal SSA names on the lhs.
9426
9427 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
9428
9429         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
9430         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
9431         * c-typeck.c (really_start_incremental_init): Likewise.
9432         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
9433         (TARGET_INITIALIZER): Remove it.
9434         * target.h (struct target): Remove vector_opaque_p.
9435         * tree.c (build_opaque_vector_type): New.
9436         * tree.h (TYPE_VECTOR_OPAQUE): New.
9437         (build_opaque_vector_type): Declare.
9438         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
9439         * config/rs6000/rs6000.c (build_opaque_vector_type,
9440         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
9441         (rs6000_init_builtins): Use build_opaque_vector_type for
9442         opaque_V4SI_type_node.
9443
9444 2009-04-15  Catherine Moore  <clm@codesourcery.com>
9445
9446         * debug.h (set_name):  Declare.
9447         * dwarf2out.c (dwarf2out_set_name): Declare.
9448         (dwarf2_debug_hooks): Add set_name.
9449         (find_AT_string): New.
9450         (add_AT_string): Call find_AT_string.
9451         (dwarf2out_set_name): New.
9452         * cp/decl.c (grokdeclarator): Call set_name.
9453         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
9454         * debug.c (do_nothing_debug_hooks):  Likewise.
9455         * dbxout.c (dbx_debug_hooks): Likewise.
9456         * sdbout.c (sdb_debug_hooks): Likewise.
9457
9458 2009-04-15  Michael Eager  <eager@eagercon.com>
9459
9460         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
9461         reg for single-precision FPU.
9462         * config/rs6000/rs6000.md (movsi_internal1): Only for
9463         !TARGET_SINGLE_FPU.
9464         (movsi_internal1_single): New. Add pattern to move SI values to/from
9465         single-precision FP regs.
9466
9467 2009-04-15  Richard Guenther  <rguenther@suse.de>
9468
9469         * omp-low.c (lower_rec_input_clauses): Build correct address
9470         expressions.
9471         (expand_omp_for_generic): Fix multiplication type.
9472         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
9473         (generate_memset_zero): Fix types.
9474         * tree-profile.c (prepare_instrumented_value): Correctly
9475         widen a pointer.
9476
9477 2009-04-15  Ian Lance Taylor  <iant@google.com>
9478
9479         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
9480         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
9481         for -Wall and for -Wc++-compat.
9482         (c_common_post_options): For C++, set warn_enum_compare if not
9483         already set.
9484         * c-tree.h (struct c_expr): Add field original_type.
9485         (build_external_ref): Update declaration.
9486         * c-parser.c (c_parser_braced_init): Set original_type.
9487         (c_parser_initelt): Likewise.
9488         (c_parser_expr_no_commas): Likewise.
9489         (c_parser_conditional_expression): Likewise.
9490         (c_parser_cast_expression): Likewise.
9491         (c_parser_unary_expression): Likewise.  Pull setting of
9492         original_code to top of function.
9493         (c_parser_sizeof_expression): Set original_type.
9494         (c_parser_alignof_expression): Likewise.
9495         (c_parser_postfix_expression): Likewise.  Pull setting of
9496         original_code to top of function.
9497         (c_parser_postfix_expression_after_paren_type): Set original_type.
9498         (c_parser_postfix_expression_after_primary): Likewise.
9499         (c_parser_expression): Likewise.
9500         * c-typeck.c (build_external_ref): Add type parameter.  Change all
9501         callers.
9502         (c_expr_sizeof_expr): Set original_type field.
9503         (parser_build_unary_op): Likewise.
9504         (parser_build_binary_op): Likewise.  Optionally warn about
9505         comparisons of enums of different types.
9506         (digest_init): Set original_type field.
9507         (really_start_incremental_init): Likewise.
9508         (push_init_level, pop_init_level): Likewise.
9509         * doc/invoke.texi (Warning Options): -Wenum-compare now
9510         supported in C.
9511
9512 2009-04-15  Richard Guenther  <rguenther@suse.de>
9513
9514         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
9515         out a necessary conversion.
9516         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
9517         names we didn't value number.
9518         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
9519
9520 2009-04-15  Richard Guenther  <rguenther@suse.de>
9521
9522         PR tree-optimization/39764
9523         * tree-ssa-ccp.c (get_value): Canonicalize value with
9524         canonicalize_float_value.
9525
9526 2009-04-15  Jan Hubicka  <jh@suse.cz>
9527
9528         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
9529         Wrong version of patch.
9530
9531 2009-04-15  Jan Hubicka  <jh@suse.cz>
9532
9533         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
9534
9535 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
9536
9537         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
9538         our distinct integral and vector types.
9539
9540 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
9541
9542         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
9543         * init.c (build_vtbl_address): Remove call to assemble_external.
9544
9545 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
9546
9547         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
9548         output for other floating point modes.
9549
9550 2009-04-14  Diego Novillo  <dnovillo@google.com>
9551
9552         * diagnostic.c (diagnostic_report_diagnostic): Do not
9553         warn about loaded plugins for DK_ERROR and DK_WARNING.
9554         * c-decl.c (declspecs_add_type): Move call to
9555         invoke_plugin_callbacks ...
9556         * c-parser.c (c_parser_declspecs): ... here.
9557         * plugin.c (dump_active_plugins): Tidy output.
9558
9559 2009-04-14  Diego Novillo  <dnovillo@google.com>
9560             Le-Chun Wu  <lcwu@google.com>
9561
9562         * configure.ac: Add --enable-plugin support.
9563         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
9564         * Makefile.in (PLUGIN_H): Define.
9565         Export ENABLE_PLUGIN and GMPINC to site.exp.
9566         Add PLUGINLIBS to link command.
9567         Add/modify dependencies for plugin.o and files including plugin.h.
9568         (plugin.o): New.
9569         * config.in: Regenerate.
9570
9571         * opts.c (common_handle_option): Handle OPT_fplugin_ and
9572         OPT_fplugin_arg_.
9573
9574 2009-04-14  Le-Chun Wu  <lcwu@google.com>
9575
9576         * tree-pass.h (register_one_dump_file): Add a prototype for
9577         register_one_dump_file.
9578         * toplev.c (compile_file): Call initialize_plugins.
9579         (do_compile): Call invoke_plugin_callbacks.
9580         (toplev_main): Call invoke_plugin_callbacks.
9581         * common.opt: Add -fplugin= and -fplugin-arg-.
9582         * gcc-plugin.h: New public header file for plugins to include.
9583         * plugin.c: New source file.
9584         * plugin.h: New internal header file.
9585         * passes.c (register_one_dump_file): Make it external.
9586
9587         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9588
9589 2009-04-14  Diego Novillo  <dnovillo@google.com>
9590
9591         * doc/plugins.texi: New.
9592         * doc/gccint.texi: Add reference to Plugins chapter.
9593         * doc/invoke.texi: Document -fplugin and -fplugin-arg
9594         * diagnostic.c (diagnostic_report_diagnostic): Warn about
9595         loaded plugins, if any.
9596         * timevar.def (TV_PLUGIN_INIT): Define.
9597         (TV_PLUGIN_RUN): Define.
9598         * plugin.c: Include timevar.h
9599         (plugins_active_p): New.
9600         (dump_active_plugins): New.
9601         (debug_active_plugins): New.
9602
9603 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
9604
9605         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9606         library paths.
9607         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9608
9609 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
9610
9611         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9612         the same as a minus without a shift.
9613
9614 2009-04-14  Nick Clifton  <nickc@redhat.com>
9615
9616         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9617         comparisons with small integers will always produce a short
9618         branch.
9619
9620 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
9621
9622         Merge:
9623         2008-12-19  Diego Novillo  <dnovillo@google.com>
9624
9625         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
9626
9627 2009-04-14  Richard Guenther  <rguenther@suse.de>
9628
9629         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9630         verification.
9631         (verify_gimple_assign_binary): Likewise.  Handle shifts and
9632         rotates correctly.
9633         (verify_gimple_phi): Print the mismatched argument position.
9634         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9635         Fix types.
9636         (vect_update_init_of_dr): Likewise.
9637         * matrix-reorg.c (transform_access_sites): Do what the
9638         comment suggests.
9639         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9640
9641 2009-04-13  Michael Eager  <eager@eagercon.com>
9642
9643         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9644         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9645         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
9646         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9647         remove duplicate config
9648
9649 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
9650
9651         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9652         file_name:line_number type locator of the call site.
9653
9654 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
9655
9656         * genautomata.c: Put blank after comma.
9657         (automaton_decls): New.
9658         (struct unit_usage): Add comments to member next.
9659         (store_alt_unit_usage): Keep the list ordered.
9660         (unit_present_on_list_p, equal_alternatives_p): New.
9661         (check_regexp_units_distribution): Check units distribution
9662         correctness correctly.
9663         (main): Don't write automata if error is found.  Return correct
9664         exit code.
9665
9666         * config/m68k/cf.md (cfv4_ds): Remove.
9667         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9668         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9669
9670         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9671         power4-load-ext, power4-store, power4-store-update,
9672         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9673         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9674         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9675         power4-sqrt, power4-isync): Modify reservation to make correct
9676         unit distribution to automata.
9677
9678         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9679         power5-store-update, power5-two, power5-three, power5-lmul,
9680         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
9681
9682 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
9683
9684         * except.c (pass_set_nothrow_function_flags): Set name and add
9685         TODO_dump_func.
9686         (set_nothrow_function_flags): Mention in the dump file when
9687         changing a function to nothrow.
9688
9689 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
9690
9691         PR/39066
9692         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9693         instead of unsigned long.
9694
9695 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9696
9697         * config/arm/arm.c (return_used_this_function): Remove.
9698         (arm_output_function_prologue): Remove use of
9699         return_used_this_function.
9700         (output_return_instruction): Replace use of
9701         return_used_this_function
9702         by cfun->machine->return_used_this_function.
9703         (arm_output_epilogue): Likewise.
9704         (arm_output_function_epilogue): Likewise.
9705         (thumb_unexpanded_epilogue): Likewise.
9706         * config/arm/arm.h (struct machine_function):
9707         New member return_used_this_function.
9708
9709 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
9710
9711         * doc/install.texi: Correct description of default directory for
9712         --with-gxx-include-dir.
9713
9714 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9715
9716         * fold-const.c (build_range_check): Properly deal with enumeral and
9717         boolean base types.
9718
9719 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
9720
9721         * doc/invoke.texi (max_gcse_passes): Remove documentation.
9722         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9723         * params.h (MAX_GCSE_PASSES): Remove.
9724         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9725         in sequence.  Remove ability to run multiple passes.
9726         (bypass_jumps): Report run as third CPROP pass.
9727
9728 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
9729
9730         PR middle-end/39651
9731         * except.c (can_throw_external): Look at each insn in a SEQUENCE
9732         when deciding whether the whole SEQUENCE can throw.
9733
9734 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
9735
9736         PR target/39740
9737         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9738         offseted label references.
9739
9740 2009-04-11  Jan Hubicka  <jh@suse.cz>
9741
9742         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9743
9744 2009-04-11  Richard Guenther  <rguenther@suse.de>
9745
9746         PR middle-end/39732
9747         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9748         return variables as TREE_ADDRESSABLE.
9749
9750 2009-04-11  Richard Guenther  <rguenther@suse.de>
9751
9752         PR tree-optimization/39713
9753         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9754         reference trees have SSA_NAME operands.
9755
9756 2009-04-11  Richard Guenther  <rguenther@suse.de>
9757
9758         PR c/39712
9759         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9760         address expressions.
9761
9762 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
9763
9764         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
9765         match changes in Cygwin 1.7
9766         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9767         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
9768
9769 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
9770
9771         PR tree-optimization/39701
9772         * doc/invoke.texi (Optimization Options): Document change in
9773         meaning and initialization of -fdelete-null-pointer-checks.
9774
9775 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
9776
9777         PR middle-end/39701
9778         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9779
9780         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9781         here.
9782
9783         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9784
9785 2009-04-10  Chao-ying Fu  <fu@mips.com>
9786
9787         * doc/tm.texi (Instruction Output): Document
9788         TARGET_ASM_FINAL_POSTSCAN_INSN.
9789         * target.h (final_postscan_insn): New field in asm_out.
9790         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9791         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9792         * final.c (final_scan_insn): Call
9793         targetm.asm_out.final_postscan_insn after outputting
9794         an asm macro and a normal instruction.
9795
9796         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9797         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9798         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9799         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9800         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9801
9802 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
9803
9804         PR middle-end/39701
9805         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9806         variables as non-NULL even with -fdelete-null-pointer-checks.
9807
9808 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
9809
9810         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9811
9812 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
9813
9814         PR target/39678
9815         * config/i386/i386.c (classify_argument): Handle SCmode with
9816         (bit_offset % 64) != 0.
9817
9818 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
9819
9820         * doc/invoke.texi (Optimize Options): Add cross-reference to
9821         -Q --help=optimizers examples.
9822
9823 2009-04-10  Ben Elliston  <bje@au.ibm.com>
9824
9825         PR target/36800
9826         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9827         regalign for the reg == fpr and TDmode case.
9828
9829 2009-04-09  David Ayers  <ayers@fsfe.org>
9830
9831         PR objc/29200
9832         * objc/objc-act.c (warn_with_method): Remove helper function.
9833         (check_duplicates): Call warning and inform directly.
9834         (really_start_method): Likewise.
9835
9836 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
9837
9838         * expmed.c (expand_divmod): Always use a comparison for a division
9839         by a large unsigned integer.
9840
9841         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9842         for things others than variables or functions as nonzero.
9843
9844 2009-04-09  Nick Clifton  <nickc@redhat.com>
9845
9846         * unwind-compat.c: Change copyright header to refer to version
9847         3 of the GNU General Public License with version 3.1 of the
9848         GCC Runtime Library Exception and to point readers at the
9849         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
9850         * config/alpha/crtfastmath.c: Likewise.
9851         * config/alpha/linux-unwind.h: Likewise.
9852         * config/alpha/qrnnd.asm: Likewise.
9853         * config/alpha/vms-crt0-64.c: Likewise.
9854         * config/alpha/vms-crt0.c: Likewise.
9855         * config/alpha/vms-dwarf2.asm: Likewise.
9856         * config/alpha/vms-dwarf2eh.asm: Likewise.
9857         * config/alpha/vms-psxcrt0-64.c: Likewise.
9858         * config/alpha/vms-psxcrt0.c: Likewise.
9859         * config/alpha/vms_tramp.asm: Likewise.
9860         * config/arc/initfini.c: Likewise.
9861         * config/arc/lib1funcs.asm: Likewise.
9862         * config/arm/bpabi-v6m.S: Likewise.
9863         * config/arm/bpabi.S: Likewise.
9864         * config/arm/bpabi.c: Likewise.
9865         * config/arm/crti.asm: Likewise.
9866         * config/arm/crtn.asm: Likewise.
9867         * config/arm/ieee754-df.S: Likewise.
9868         * config/arm/ieee754-sf.S: Likewise.
9869         * config/arm/lib1funcs.asm: Likewise.
9870         * config/arm/libunwind.S: Likewise.
9871         * config/arm/linux-atomic.c: Likewise.
9872         * config/arm/mmintrin.h: Likewise.
9873         * config/arm/pr-support.c: Likewise.
9874         * config/arm/unaligned-funcs.c: Likewise.
9875         * config/arm/unwind-arm.c: Likewise.
9876         * config/arm/unwind-arm.h: Likewise.
9877         * config/avr/libgcc.S: Likewise.
9878         * config/bfin/crti.s: Likewise.
9879         * config/bfin/crtlibid.s: Likewise.
9880         * config/bfin/crtn.s: Likewise.
9881         * config/bfin/lib1funcs.asm: Likewise.
9882         * config/bfin/linux-unwind.h: Likewise.
9883         * config/cris/arit.c: Likewise.
9884         * config/cris/cris_abi_symbol.c: Likewise.
9885         * config/darwin-64.c: Likewise.
9886         * config/darwin-crt2.c: Likewise.
9887         * config/darwin-crt3.c: Likewise.
9888         * config/darwin.h: Likewise.
9889         * config/dbxelf.h: Likewise.
9890         * config/dfp-bit.c: Likewise.
9891         * config/dfp-bit.h: Likewise.
9892         * config/elfos.h: Likewise.
9893         * config/fixed-bit.c: Likewise.
9894         * config/fixed-bit.h: Likewise.
9895         * config/fp-bit.c: Likewise.
9896         * config/fp-bit.h: Likewise.
9897         * config/fr30/crti.asm: Likewise.
9898         * config/fr30/crtn.asm: Likewise.
9899         * config/fr30/lib1funcs.asm: Likewise.
9900         * config/freebsd-spec.h: Likewise.
9901         * config/frv/cmovd.c: Likewise.
9902         * config/frv/cmovh.c: Likewise.
9903         * config/frv/cmovw.c: Likewise.
9904         * config/frv/frvbegin.c: Likewise.
9905         * config/frv/frvend.c: Likewise.
9906         * config/frv/lib1funcs.asm: Likewise.
9907         * config/glibc-stdint.h: Likewise.
9908         * config/h8300/clzhi2.c: Likewise.
9909         * config/h8300/crti.asm: Likewise.
9910         * config/h8300/crtn.asm: Likewise.
9911         * config/h8300/ctzhi2.c: Likewise.
9912         * config/h8300/fixunssfsi.c: Likewise.
9913         * config/h8300/lib1funcs.asm: Likewise.
9914         * config/h8300/parityhi2.c: Likewise.
9915         * config/h8300/popcounthi2.c: Likewise.
9916         * config/i386/ammintrin.h: Likewise.
9917         * config/i386/att.h: Likewise.
9918         * config/i386/avxintrin.h: Likewise.
9919         * config/i386/biarch64.h: Likewise.
9920         * config/i386/bmmintrin.h: Likewise.
9921         * config/i386/cpuid.h: Likewise.
9922         * config/i386/cross-stdarg.h: Likewise.
9923         * config/i386/crtfastmath.c: Likewise.
9924         * config/i386/crtprec.c: Likewise.
9925         * config/i386/cygming-crtbegin.c: Likewise.
9926         * config/i386/cygming-crtend.c: Likewise.
9927         * config/i386/cygwin.asm: Likewise.
9928         * config/i386/emmintrin.h: Likewise.
9929         * config/i386/gmm_malloc.h: Likewise.
9930         * config/i386/gthr-win32.c: Likewise.
9931         * config/i386/i386.h: Likewise.
9932         * config/i386/immintrin.h: Likewise.
9933         * config/i386/linux-unwind.h: Likewise.
9934         * config/i386/linux64.h: Likewise.
9935         * config/i386/mm3dnow.h: Likewise.
9936         * config/i386/mmintrin-common.h: Likewise.
9937         * config/i386/mmintrin.h: Likewise.
9938         * config/i386/nmmintrin.h: Likewise.
9939         * config/i386/pmm_malloc.h: Likewise.
9940         * config/i386/pmmintrin.h: Likewise.
9941         * config/i386/smmintrin.h: Likewise.
9942         * config/i386/sol2-c1.asm: Likewise.
9943         * config/i386/sol2-ci.asm: Likewise.
9944         * config/i386/sol2-cn.asm: Likewise.
9945         * config/i386/sol2-gc1.asm: Likewise.
9946         * config/i386/tmmintrin.h: Likewise.
9947         * config/i386/unix.h: Likewise.
9948         * config/i386/w32-unwind.h: Likewise.
9949         * config/i386/wmmintrin.h: Likewise.
9950         * config/i386/x86-64.h: Likewise.
9951         * config/i386/x86intrin.h: Likewise.
9952         * config/i386/xmmintrin.h: Likewise.
9953         * config/ia64/crtbegin.asm: Likewise.
9954         * config/ia64/crtend.asm: Likewise.
9955         * config/ia64/crtfastmath.c: Likewise.
9956         * config/ia64/crti.asm: Likewise.
9957         * config/ia64/crtn.asm: Likewise.
9958         * config/ia64/fde-glibc.c: Likewise.
9959         * config/ia64/lib1funcs.asm: Likewise.
9960         * config/ia64/linux-unwind.h: Likewise.
9961         * config/ia64/quadlib.c: Likewise.
9962         * config/ia64/unwind-ia64.c: Likewise.
9963         * config/linux.h: Likewise.
9964         * config/m32c/m32c-lib1.S: Likewise.
9965         * config/m32c/m32c-lib2-trapv.c: Likewise.
9966         * config/m32c/m32c-lib2.c: Likewise.
9967         * config/m32r/initfini.c: Likewise.
9968         * config/m68hc11/larith.asm: Likewise.
9969         * config/m68hc11/m68hc11-crt0.S: Likewise.
9970         * config/m68k/cf.md: Likewise.
9971         * config/m68k/crti.s: Likewise.
9972         * config/m68k/crtn.s: Likewise.
9973         * config/m68k/lb1sf68.asm: Likewise.
9974         * config/m68k/linux-unwind.h: Likewise.
9975         * config/mcore/crti.asm: Likewise.
9976         * config/mcore/crtn.asm: Likewise.
9977         * config/mcore/lib1.asm: Likewise.
9978         * config/mips/linux-unwind.h: Likewise.
9979         * config/mips/loongson.h: Likewise.
9980         * config/mips/mips16.S: Likewise.
9981         * config/mmix/crti.asm: Likewise.
9982         * config/mmix/crtn.asm: Likewise.
9983         * config/pa/fptr.c: Likewise.
9984         * config/pa/hpux-unwind.h: Likewise.
9985         * config/pa/lib2funcs.asm: Likewise.
9986         * config/pa/linux-atomic.c: Likewise.
9987         * config/pa/linux-unwind.h: Likewise.
9988         * config/pa/milli64.S: Likewise.
9989         * config/pa/quadlib.c: Likewise.
9990         * config/pa/stublib.c: Likewise.
9991         * config/picochip/libgccExtras/adddi3.asm: Likewise.
9992         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9993         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9994         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9995         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9996         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9997         * config/picochip/libgccExtras/divmod15.asm: Likewise.
9998         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9999         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10000         * config/picochip/libgccExtras/longjmp.asm: Likewise.
10001         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10002         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10003         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10004         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10005         * config/picochip/libgccExtras/setjmp.asm: Likewise.
10006         * config/picochip/libgccExtras/subdi3.asm: Likewise.
10007         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10008         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10009         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10010         * config/rs6000/750cl.h: Likewise.
10011         * config/rs6000/altivec.h: Likewise.
10012         * config/rs6000/biarch64.h: Likewise.
10013         * config/rs6000/crtresfpr.asm: Likewise.
10014         * config/rs6000/crtresgpr.asm: Likewise.
10015         * config/rs6000/crtresxfpr.asm: Likewise.
10016         * config/rs6000/crtresxgpr.asm: Likewise.
10017         * config/rs6000/crtsavfpr.asm: Likewise.
10018         * config/rs6000/crtsavgpr.asm: Likewise.
10019         * config/rs6000/darwin-asm.h: Likewise.
10020         * config/rs6000/darwin-fallback.c: Likewise.
10021         * config/rs6000/darwin-fpsave.asm: Likewise.
10022         * config/rs6000/darwin-ldouble.c: Likewise.
10023         * config/rs6000/darwin-tramp.asm: Likewise.
10024         * config/rs6000/darwin-unwind.h: Likewise.
10025         * config/rs6000/darwin-vecsave.asm: Likewise.
10026         * config/rs6000/darwin-world.asm: Likewise.
10027         * config/rs6000/e500crtres32gpr.asm: Likewise.
10028         * config/rs6000/e500crtres64gpr.asm: Likewise.
10029         * config/rs6000/e500crtres64gprctr.asm: Likewise.
10030         * config/rs6000/e500crtrest32gpr.asm: Likewise.
10031         * config/rs6000/e500crtrest64gpr.asm: Likewise.
10032         * config/rs6000/e500crtresx32gpr.asm: Likewise.
10033         * config/rs6000/e500crtresx64gpr.asm: Likewise.
10034         * config/rs6000/e500crtsav32gpr.asm: Likewise.
10035         * config/rs6000/e500crtsav64gpr.asm: Likewise.
10036         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10037         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10038         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10039         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10040         * config/rs6000/eabi-ci.asm: Likewise.
10041         * config/rs6000/eabi-cn.asm: Likewise.
10042         * config/rs6000/eabi.asm: Likewise.
10043         * config/rs6000/linux-unwind.h: Likewise.
10044         * config/rs6000/linux64.h: Likewise.
10045         * config/rs6000/paired.h: Likewise.
10046         * config/rs6000/paired.md: Likewise.
10047         * config/rs6000/ppc64-fp.c: Likewise.
10048         * config/rs6000/ppu_intrinsics.h: Likewise.
10049         * config/rs6000/rs6000.h: Likewise.
10050         * config/rs6000/si2vmx.h: Likewise.
10051         * config/rs6000/sol-ci.asm: Likewise.
10052         * config/rs6000/sol-cn.asm: Likewise.
10053         * config/rs6000/spe.h: Likewise.
10054         * config/rs6000/spu2vmx.h: Likewise.
10055         * config/rs6000/sysv4.h: Likewise.
10056         * config/rs6000/tramp.asm: Likewise.
10057         * config/rs6000/vec_types.h: Likewise.
10058         * config/s390/linux-unwind.h: Likewise.
10059         * config/s390/tpf-unwind.h: Likewise.
10060         * config/score/crti.asm: Likewise.
10061         * config/score/crtn.asm: Likewise.
10062         * config/sh/crt1.asm: Likewise.
10063         * config/sh/crti.asm: Likewise.
10064         * config/sh/crtn.asm: Likewise.
10065         * config/sh/divtab-sh4-300.c: Likewise.
10066         * config/sh/divtab-sh4.c: Likewise.
10067         * config/sh/divtab.c: Likewise.
10068         * config/sh/lib1funcs-4-300.asm: Likewise.
10069         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10070         * config/sh/lib1funcs.asm: Likewise.
10071         * config/sh/lib1funcs.h: Likewise.
10072         * config/sh/linux-atomic.asm: Likewise.
10073         * config/sh/linux-unwind.h: Likewise.
10074         * config/sh/shmedia.h: Likewise.
10075         * config/sh/sshmedia.h: Likewise.
10076         * config/sh/ushmedia.h: Likewise.
10077         * config/sparc/crtfastmath.c: Likewise.
10078         * config/sparc/linux-unwind.h: Likewise.
10079         * config/sparc/sol2-c1.asm: Likewise.
10080         * config/sparc/sol2-ci.asm: Likewise.
10081         * config/sparc/sol2-cn.asm: Likewise.
10082         * config/spu/divmodti4.c: Likewise.
10083         * config/spu/divv2df3.c: Likewise.
10084         * config/spu/float_disf.c: Likewise.
10085         * config/spu/float_unsdidf.c: Likewise.
10086         * config/spu/float_unsdisf.c: Likewise.
10087         * config/spu/float_unssidf.c: Likewise.
10088         * config/spu/mfc_multi_tag_release.c: Likewise.
10089         * config/spu/mfc_multi_tag_reserve.c: Likewise.
10090         * config/spu/mfc_tag_release.c: Likewise.
10091         * config/spu/mfc_tag_reserve.c: Likewise.
10092         * config/spu/mfc_tag_table.c: Likewise.
10093         * config/spu/multi3.c: Likewise.
10094         * config/spu/spu_internals.h: Likewise.
10095         * config/spu/spu_intrinsics.h: Likewise.
10096         * config/spu/spu_mfcio.h: Likewise.
10097         * config/spu/vec_types.h: Likewise.
10098         * config/spu/vmx2spu.h: Likewise.
10099         * config/stormy16/stormy16-lib2.c: Likewise.
10100         * config/svr4.h: Likewise.
10101         * config/sync.c: Likewise.
10102         * config/v850/lib1funcs.asm: Likewise.
10103         * config/vxlib-tls.c: Likewise.
10104         * config/vxlib.c: Likewise.
10105         * config/vxworks-dummy.h: Likewise.
10106         * config/xtensa/crti.asm: Likewise.
10107         * config/xtensa/crtn.asm: Likewise.
10108         * config/xtensa/ieee754-df.S: Likewise.
10109         * config/xtensa/ieee754-sf.S: Likewise.
10110         * config/xtensa/lib1funcs.asm: Likewise.
10111         * config/xtensa/lib2funcs.S: Likewise.
10112         * config/xtensa/linux-unwind.h: Likewise.
10113         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10114         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10115         * coretypes.h: Likewise.
10116         * crtstuff.c: Likewise.
10117         * defaults.h: Likewise.
10118         * dwarf2.h: Likewise.
10119         * emutls.c: Likewise.
10120         * gbl-ctors.h: Likewise.
10121         * gcov-io.h: Likewise.
10122         * ginclude/float.h: Likewise.
10123         * ginclude/iso646.h: Likewise.
10124         * ginclude/stdarg.h: Likewise.
10125         * ginclude/stdbool.h: Likewise.
10126         * ginclude/stddef.h: Likewise.
10127         * ginclude/stdfix.h: Likewise.
10128         * ginclude/stdint-gcc.h: Likewise.
10129         * ginclude/tgmath.h: Likewise.
10130         * gthr-aix.h: Likewise.
10131         * gthr-dce.h: Likewise.
10132         * gthr-gnat.c: Likewise.
10133         * gthr-gnat.h: Likewise.
10134         * gthr-lynx.h: Likewise.
10135         * gthr-mipssde.h: Likewise.
10136         * gthr-nks.h: Likewise.
10137         * gthr-posix.c: Likewise.
10138         * gthr-posix.h: Likewise.
10139         * gthr-posix95.h: Likewise.
10140         * gthr-rtems.h: Likewise.
10141         * gthr-single.h: Likewise.
10142         * gthr-solaris.h: Likewise.
10143         * gthr-tpf.h: Likewise.
10144         * gthr-vxworks.h: Likewise.
10145         * gthr-win32.h: Likewise.
10146         * gthr.h: Likewise.
10147         * libgcc2.c: Likewise.
10148         * libgcc2.h: Likewise.
10149         * libgcov.c: Likewise.
10150         * tsystem.h: Likewise.
10151         * typeclass.h: Likewise.
10152         * unwind-c.c: Likewise.
10153         * unwind-compat.h: Likewise.
10154         * unwind-dw2-fde-compat.c: Likewise.
10155         * unwind-dw2-fde-darwin.c: Likewise.
10156         * unwind-dw2-fde-glibc.c: Likewise.
10157         * unwind-dw2-fde.c: Likewise.
10158         * unwind-dw2-fde.h: Likewise.
10159         * unwind-dw2.c: Likewise.
10160         * unwind-dw2.h: Likewise.
10161         * unwind-generic.h: Likewise.
10162         * unwind-pe.h: Likewise.
10163         * unwind-sjlj.c: Likewise.
10164         * unwind.inc: Likewise.
10165         * config/arm/neon-gen.ml: Change generated copyright header to
10166         refer to version 3 of the GNU General Public License with
10167         version 3.1 of the GCC Runtime Library Exception and to point
10168         readers at the COPYING3 and COPYING3.RUNTIME files and the
10169         FSF's license web page.
10170         * config/arm/arm_neon.h: Regenerate.
10171
10172 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
10173
10174         * config/cris/cris.md: Change copyright header to refer to version
10175         3 of the GNU General Public License.
10176         * doc/install.texi2html: Change copyright header to refer to version
10177         3 of the GNU General Public License and to point readers at the
10178         COPYING3 file and the FSF's license web page.
10179         * config/vax/linux.h: Likewise.
10180
10181 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
10182
10183         * config/i386/i386.md (cmpcc): New.
10184         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10185         (sync_compare_and_swap_cc*): Delete.
10186
10187         * config/s390/s390.c (s390_compare_emitted): Remove.
10188         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10189         s390_compare_emitted used to be handled.  Assert that modes match.
10190         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10191         refer to sync_compare_and_swap_ccsi.
10192         * config/s390/s390.h (s390_compare_emitted): Remove.
10193         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10194         instead of s390_compare_emitted.
10195         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10196         instead of s390_compare_emitted.
10197         * config/s390/s390.md (cmpcc): New.
10198         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10199         CC_REGNUM, do not pretend it's set.
10200         (sync_compare_and_swap_cc*): Delete.
10201         * config/s390/predicates.md (cc_reg_operand): New.
10202
10203         * expr.c (sync_compare_and_swap_cc): Delete.
10204         * optabs.h (sync_compare_and_swap_cc): Delete.
10205         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10206         is being used with can_compare_p.
10207         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10208         (find_cc_set): New.
10209         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10210         look for a MODE_CC set instead.  Use emit_store_flag.
10211         (expand_compare_and_swap_loop): Likewise, with some additional
10212         complication to avoid a force_reg when useless.  Use
10213         emit_cmp_and_jump_insns.
10214         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10215         * doc/md.texi (sync_compare_and_swap_cc): Merge with
10216         sync_compare_and_swap documentation.
10217
10218 2009-04-09  Jan Hubicka  <jh@suse.cz>
10219
10220         * except.c (find_prev_try): Break out from ....
10221         (duplicate_eh_regions): ... here; properly update prev_try pointers
10222         when duplication part of tree.
10223         (dump_eh_tree): Improve dumping.
10224         (verify_eh_region): New.
10225         (verify_eh_tree): Use it.
10226
10227 2009-04-06  Richard Guenther  <rguenther@suse.de>
10228
10229         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10230         &ARRAY addresses by adjusting their types and prepending
10231         a conversion.
10232         * tree-cfg.c (verify_gimple_assign_single): Verify that
10233         addresses are correct.
10234
10235 2009-04-09  Richard Guenther  <rguenther@suse.de>
10236
10237         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10238         indices into an array reference if possible.
10239         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10240         Fold POINTER_PLUS_EXPR statements with invariant address.
10241
10242 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
10243
10244         PR target/39634
10245         * config.gcc (powerpc64-*-linux*): Always build biarch.
10246
10247 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
10248
10249         PR c/39613
10250         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10251         it and pedwarn if this results in an INTEGER_CST.
10252
10253 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10254
10255         * doc/install.texi: Update minimum GMP version.  Remove obsolete
10256         text in MPFR section.
10257
10258 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
10259
10260         * dwarf2out.c (class_scope_p): New static inline.
10261         (class_or_namespace_scope_p): Use it.
10262         (gen_variable_die): Use DW_TAG_member tag for static data member
10263         declarations instead of DW_TAG_variable.
10264
10265         PR middle-end/39573
10266         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10267         variables.
10268
10269 2009-04-08  Richard Guenther  <rguenther@suse.de>
10270
10271         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10272         valueize random data.
10273
10274 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
10275
10276         * config.gcc (aix tm_file):  Add aix-stdint.h.
10277         (aix tm clause use_gcc_stdint):  Set to wrap.
10278         * config/rs6000/aix-stdint.h:  New file.
10279
10280 2009-04-08  Richard Guenther  <rguenther@suse.de>
10281
10282         PR middle-end/36291
10283         * tree-dfa.c (add_referenced_var): Do not recurse into
10284         global initializers.
10285         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10286         exposed variables.
10287         (fold_const_aggregate_ref): Likewise.
10288
10289 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
10290
10291         * recog.c (ordered_comparison_operator): New.
10292         * gensupport.c (std_preds): Add it.
10293         * doc/md.texi (Machine-Independent Predicates): Document it.
10294
10295 2009-04-08  Jan Hubicka  <jh@suse.cz>
10296
10297         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10298         * function.h (rtl_eh): Remove exception_handler_label_map.
10299         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10300         remove_exception_handler_label, for_each_eh_label_1): Remove.
10301         (rtl_remove_unreachable_regions): Remove.
10302         (convert_from_eh_region_ranges): Do not remove unreachable regions.
10303         (find_exception_handler_labels): Don't build the hashtable.
10304         (maybe_remove_eh_handler): Remove.
10305         (for_each_eh_label): Rewrite to walk the tree.
10306         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10307         * except.h (maybe_remove_eh_handler): Remove.
10308         * passes.c (init_optimization_passes): Schedule second EH cleanup
10309         before out-of-ssa.
10310         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10311         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10312
10313 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
10314
10315         * genoutput.c (validate_optab_operands): New.
10316         (gen_insn, gen_expand): Call it.
10317
10318         * genflags.c (gen_insn): Detect misused iterators.
10319         (main): Pass line_no to gen_insn, exit with status 1 on error.
10320
10321         * genextract.c (line_no): Make global.
10322         (VEC_safe_set_locstr): Change assertion to error message.
10323         (main): Exit with status 1 on error.
10324
10325 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
10326
10327         PR c/39614
10328         PR c/39673
10329         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10330         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10331         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10332         * c-convert.c (convert): Do not call fold on results of conversion
10333         functions when the result is a C_MAYBE_CONST_EXPR.
10334         * c-parser.c (c_parser_postfix_expression): Do not fold condition
10335         of __builtin_choose_expr.
10336         * c-typeck.c (remove_c_maybe_const_expr): New.
10337         (build_unary_op, build_conditional_expr, build_compound_expr,
10338         build_binary_op, c_objc_common_truthvalue_conversion): Call
10339         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10340         integer operands.
10341
10342 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
10343
10344         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
10345         CODE to produce a new one. Add a prototype to use fold_convert_const
10346
10347 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
10348
10349         PR bootstrap/39660
10350         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
10351         mix declarations and code.
10352
10353 2009-04-08  Ben Elliston  <bje@au.ibm.com>
10354
10355         * gcc.c: Replace `CC' with `GCC' throughout.
10356
10357 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
10358
10359         * doc/invoke.texi: Document Atom support.
10360
10361 2009-04-07  Jason Merrill  <jason@redhat.com>
10362
10363         PR c++/25185
10364         * c-common.h, c-common.c: Add flag_pretty_templates.
10365         * c-opts.c (c_common_handle_option): Set it.
10366         * c.opt: Add -fno-pretty-templates.
10367         * doc/invoke.texi (C++ Dialect Options): Likewise.
10368
10369 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
10370
10371         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
10372         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
10373         (ia64_expand_builtin): Likewise.
10374
10375 2009-04-07  Martin Jambor  <mjambor@suse.cz>
10376
10377         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10378         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
10379         ADDR_EXPRS are include too.
10380
10381 2009-04-07  Richard Guenther  <rguenther@suse.de>
10382
10383         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
10384         decls are only used if passes as parameters or if they are
10385         local statics and the call is not to a builtin.
10386         (call_may_clobber_ref_p_1): Likewise.
10387
10388 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
10389
10390         * expr.c (do_store_flag): Remove last argument.  Simplify code
10391         to avoid duplication of tests already done by can_compare_p.
10392         (expand_expr_real_1): Adjust caller.
10393
10394 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
10395
10396         * optabs.c (can_compare_p): Test the predicate of a
10397         cbranch and cstore pattern.
10398
10399 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
10400
10401         * expr.c (convert_move): Use emit_store_flag instead of
10402         "emulating" it.
10403
10404 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
10405
10406         * config/i386/i386.c (ix86_compare_emitted): Remove.
10407         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
10408         ix86_compare_op0 like ix86_compare_emitted used to be handled.
10409         * config/i386/i386.h (ix86_compare_emitted): Remove.
10410         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
10411         instead of ix86_compare_emitted.
10412         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
10413
10414 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
10415
10416         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
10417         Add t-sysroot-suffix to tmake_file.
10418         * config/print-sysroot-suffix.sh: New file.
10419         * config/t-sysroot-suffix: New file.
10420
10421 2009-04-07  Ben Elliston  <bje@au.ibm.com>
10422
10423         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
10424         as the latter produces a warning when the target does not support
10425         infinity.
10426
10427 2009-04-07  Ben Elliston  <bje@au.ibm.com>
10428
10429         * dfp.c: Replace type punning assignments with memcpy throughout.
10430         * Makefile.in (dfp.o-warn): Remove.
10431
10432 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
10433
10434         PR target/39634
10435         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
10436         Include soft-fp/t-softfp after rs6000/t-linux64.
10437
10438 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
10439
10440         * stor-layout.c (set_sizetype): Use the full precision of their
10441         machine mode for bitsize types.
10442
10443 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
10444
10445         * config/i386/i386.md: Revert 2 accidental checkins.
10446
10447 2009-04-06  Joey Ye  <joey.ye@intel.com>
10448             Xuepeng Guo  <xuepeng.guo@intel.com>
10449             H.J. Lu  <hongjiu.lu@intel.com>
10450
10451         Atom pipeline model, tuning and insn selection.
10452         * config.gcc (atom): Add atom config options and target.
10453
10454         * config/i386/atom.md: New.
10455
10456         * config/i386/i386.c (atom_cost): New cost.
10457         (m_ATOM): New macro flag.
10458         (initial_ix86_tune_features): Set m_ATOM.
10459         (x86_accumulate_outgoing_args): Likewise.
10460         (x86_arch_always_fancy_math_387): Likewise.
10461         (processor_target): Add Atom cost.
10462         (cpu_names): Add Atom cpu name.
10463         (override_options): Set Atom ISA.
10464         (ix86_issue_rate): New case PROCESSOR_ATOM.
10465         (ix86_adjust_cost): Likewise.
10466
10467         * config/i386/i386.h (TARGET_ATOM): New target macro.
10468         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
10469         (TARGET_OPT_AGU): New target option.
10470         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
10471         (processor_type): Add PROCESSOR_ATOM.
10472
10473         * config/i386/i386.md (cpu): Add new value "atom".
10474         (use_carry, movu): New attr.
10475         (atom.md): Include atom.md.
10476         (adddi3_carry_rex64): Set attr "use_carry".
10477         (addqi3_carry): Likewise.
10478         (addhi3_carry): Likewise.
10479         (addsi3_carry): Likewise.
10480         (*addsi3_carry_zext): Likewise.
10481         (subdi3_carry_rex64): Likewise.
10482         (subqi3_carry): Likewise.
10483         (subhi3_carry): Likewise.
10484         (subsi3_carry): Likewise.
10485         (x86_movdicc_0_m1_rex64): Likewise.
10486         (*x86_movdicc_0_m1_se): Likewise.
10487         (x86_movsicc_0_m1): Likewise.
10488         (*x86_movsicc_0_m1_se): Likewise.
10489         (*adddi_1_rex64): Emit add insn as much as possible.
10490         (*addsi_1): Likewise.
10491         (return_internal): Set atom_unit.
10492         (return_internal_long): Likewise.
10493         (return_pop_internal): Likewise.
10494         (*rcpsf2_sse): Set atom_sse_attr attr.
10495         (*qrt<mode>2_sse): Likewise.
10496         (*prefetch_sse): Likewise.
10497
10498         * config/i386/i386-c.c (ix86_target_macros_internal): New case
10499         PROCESSOR_ATOM.
10500         (ix86_target_macros_internal): Likewise.
10501
10502         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
10503         (*prefetch_sse_rex): Likewise.
10504         (sse_rcpv4sf2): Likewise.
10505         (sse_vmrcpv4sf2): Likewise.
10506         (sse_sqrtv4sf2): Likewise.
10507         (<sse>_vmsqrt<mode>2): Likewise.
10508         (sse_ldmxcsr): Likewise.
10509         (sse_stmxcsr): Likewise.
10510         (*sse_sfence): Likewise.
10511         (sse2_clflush): Likewise.
10512         (*sse2_mfence): Likewise.
10513         (*sse2_lfence): Likewise.
10514         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
10515         (<sse>_movup<ssemodesuffixf2c>): Likewise.
10516         (avx_movdqu<avxmodesuffix>): Likewise.
10517         (avx_lddqu<avxmodesuffix>): Likewise.
10518         (sse2_movntv2di): Change attr "type" to "ssemov".
10519         (sse2_movntsi): Likewise.
10520         (rsqrtv8sf2): Change attr "type" to "sseadd".
10521         (sse3_addsubv2df3): Set attr "atom_unit".
10522         (sse3_h<plusminus_insn>v4sf3): Likewise.
10523         (*sse2_pmaddwd): Likewise.
10524         (*vec_extractv2di_1_rex64): Likewise.
10525         (*vec_extractv2di_1_avx): Likewise.
10526         (sse2_psadbw): Likewise.
10527         (ssse3_phaddwv8hi3): Likewise.
10528         (ssse3_phaddwv4hi3): Likewise.
10529         (ssse3_phadddv4si3): Likewise.
10530         (ssse3_phadddv2si3): Likewise.
10531         (ssse3_phaddswv8hi3): Likewise.
10532         (ssse3_phaddswv4hi3): Likewise.
10533         (ssse3_phsubwv8hi3): Likewise.
10534         (ssse3_phsubwv4hi3): Likewise.
10535         (ssse3_phsubdv4si3): Likewise.
10536         (ssse3_phsubdv2si3): Likewise.
10537         (ssse3_phsubswv8hi3): Likewise.
10538         (ssse3_phsubswv4hi3): Likewise.
10539         (ssse3_pmaddubsw128): Likewise.
10540         (sse3_pmaddubsw: Likewise.
10541         (ssse3_palignrti): Likewise.
10542         (ssse3_palignrdi): Likewise.
10543
10544 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
10545
10546         * doc/install.texi (Specific): Fix two cross-references to MinGW.
10547
10548 2009-04-06  Richard Guenther  <rguenther@suse.de>
10549
10550         PR tree-optimization/28868
10551         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
10552         of which PHI results we inserted.
10553         (insert_into_preds_of_block): Record inserted PHIs.
10554         (eliminate): Eliminate redundant PHI nodes.
10555         (init_pre): Init inserted_phi_names.
10556
10557 2009-04-06  Richard Guenther  <rguenther@suse.de>
10558
10559         PR tree-optimization/39643
10560         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
10561         IMAGPART_EXPRs of complex constants.
10562         (execute_fold_all_builtins): If we folded a call queue
10563         TODO_update_address_taken.
10564
10565 2009-04-06  Jan Hubicka  <jh@suse.cz>
10566
10567         PR middle-end/39659
10568         * except.c (remove_unreachable_regions): Propagate may_contain_throw
10569         flag.
10570
10571 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
10572
10573         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10574         delay slot.
10575         (ic_invalidate_array): Likewise.
10576
10577 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10578
10579         * calls.c (emit_library_call_value_1): Fix a problem with parameter
10580         alignment for library calls.
10581
10582 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
10583
10584         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
10585         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
10586         * config/i386/mingw-stdint.h:  New file.
10587
10588 2009-04-05  Richard Guenther  <rguenther@suse.de>
10589
10590         PR tree-optimization/39648
10591         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10592         our &A vs. &A[0] IL deficiencies.
10593
10594 2009-04-04  Jan Hubicka  <jh@suse.cz>
10595
10596         * except.c (sjlj_find_directly_reachable_regions): Be ready for
10597         removed toplevel regions.
10598         (sjlj_mark_call_sites): Likewise.
10599
10600 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
10601
10602         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
10603         (cygwin tm clause use_gcc_stdint):  Set to wrap.
10604         * config/i386/cygwin-stdint.h:  New file.
10605
10606 2009-04-04  Richard Guenther  <rguenther@suse.de>
10607
10608         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10609         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10610         single-argument PHIs if we are in loop-closed SSA form.
10611         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10612         for the pre-condition.
10613         (slpeel_tree_peel_loop_to_edge): Likewise.
10614         (vect_build_loop_niters): Take an optional sequence to append stmts.
10615         (vect_generate_tmps_on_preheader): Likewise.
10616         (vect_do_peeling_for_loop_bound): Take extra guards for the
10617         pre-condition.
10618         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
10619         the cost model check.
10620         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
10621         guards if we are going to peel.  Do not apply versioning in that case.
10622         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10623         (vect_do_peeling_for_loop_bound): Likewise.
10624         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10625         loop bound only record extra pre-conditions, do not apply loop
10626         versioning.
10627
10628 2009-04-04  Richard Guenther  <rguenther@suse.de>
10629
10630         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10631         renaming code.
10632
10633 2009-04-04  Jan Hubicka  <jh@suse.cz>
10634
10635         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10636         last_basic_block for size of bb->index indexed array.
10637         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10638         compute_out, link_btr_uses, build_btr_def_use_webs,
10639         build_btr_def_use_webs, migrate_btr_defs): Likewise.
10640
10641 2009-04-04  Jan Hubicka  <jh@suse.cz>
10642
10643         * except.c (remove_eh_handler_and_replace): Break out from ...
10644         (remove_eh_handler): ... here.
10645         (bring_to_root): New function.
10646         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10647         handled ones, bring others to root of tree.
10648
10649 2009-04-04  Jan Hubicka  <jh@suse.cz>
10650
10651         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10652         (all_phis_safe_to_merge): New function.
10653         (update_info): New structure.
10654         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10655         (cleanup_empty_eh): Update SSA if possible.
10656
10657 2009-04-04  Richard Guenther  <rguenther@suse.de>
10658
10659         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10660         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10661         (append_vuse): Likewise.
10662
10663 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
10664
10665         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10666         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10667         instead of REG_UNSAVED for DW_CFA_undefined.
10668         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10669         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10670         outermost frame.
10671
10672 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
10673
10674         PR target/39501
10675         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10676         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10677         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10678
10679 2009-04-04  Richard Guenther  <rguenther@suse.de>
10680
10681         PR tree-optimization/8781
10682         PR tree-optimization/37892
10683         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10684         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10685         (valueize_refs): Call it for *& valueizations.
10686         (shared_reference_ops_from_ref): Rename to ...
10687         (valueize_shared_reference_ops_from_ref): ... this and valueize.
10688         (shared_reference_ops_from_call): Rename to ...
10689         (valueize_shared_reference_ops_from_call): ... this and valueize.
10690         (vn_reference_lookup): Update.
10691         (visit_reference_op_call): Likewise.
10692         * tree-ssa-pre.c (phi_translate_1): Fold *&.
10693         (eliminate): Value-replace the call address in call statements.
10694
10695 2009-04-04  Richard Guenther  <rguenther@suse.de>
10696
10697         PR tree-optimization/39636
10698         * tree-ssa-forwprop.c
10699         (forward_propagate_addr_into_variable_array_index): Check for
10700         GIMPLE_ASSIGN before accessing the rhs code.
10701
10702 2009-04-03  Jason Merrill  <jason@redhat.com>
10703
10704         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10705
10706 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
10707
10708         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10709         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10710         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10711         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10712         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10713         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10714         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10715         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10716         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10717         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10718         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10719         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10720         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10721         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10722         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10723         Use fr_reg_or_fp01_operand instead of fr_register_operand
10724
10725         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10726         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10727         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10728
10729 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
10730
10731         PR rtl-optimization/39607
10732         PR rtl-optimization/39631
10733
10734         Revert:
10735
10736         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
10737         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10738         instead of DF_LR_OUT.
10739         * ira-lives.c (process_bb_node_lives): Ditto.
10740         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10741         instead of DF_LR_{OUT,IN}.
10742         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10743         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10744
10745 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
10746
10747         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10748         (execute_lower_omp): Always run but take the short way out if -fopenmp
10749         is not given.
10750         (gate_lower_omp): Remove, forcing the pass manager to always run the
10751         pass and always set PROP_gimple_lomp.
10752         (pass_lower_omp): Remove gate function.
10753         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10754         PROP_trees.  Instead, require it.
10755         * ipa-cp.c (pass_ipa_cp): Likewise.
10756         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10757         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10758         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10759         and PROP_gimple_leh.
10760
10761 2009-04-03  Richard Guenther  <rguenther@suse.de>
10762
10763         PR middle-end/13146
10764         PR tree-optimization/23940
10765         PR tree-optimization/33237
10766         PR middle-end/33974
10767         PR middle-end/34093
10768         PR tree-optimization/36201
10769         PR tree-optimization/36230
10770         PR tree-optimization/38049
10771         PR tree-optimization/38207
10772         PR tree-optimization/38230
10773         PR tree-optimization/38301
10774         PR tree-optimization/38585
10775         PR middle-end/38895
10776         PR tree-optimization/38985
10777         PR tree-optimization/39299
10778         * tree-ssa-structalias.h: Remove.
10779         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10780         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10781         (struct vuse_element_d): Remove.
10782         (struct vuse_vec_d): Likewise.
10783         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10784         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10785         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10786         VUSE_ELEMENT_VAR): Likewise.
10787         (struct voptype_d): Likewise.
10788         (NUM_VOP_FREE_BUCKETS): Likewise.
10789         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10790         (struct stmt_operands_d): Remove.
10791         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10792         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10793         VDEF_NUM, VDEF_VECT): Likewise.
10794         (copy_virtual_operands): Remove.
10795         (operand_build_cmp): Likewise.
10796         (create_ssa_artificial_load_stmt): Likewise.
10797         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10798         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10799         vuse_index and mayuse_index members.  Pack and move done and iter_type
10800         members to the front.
10801         (SSA_OP_VMAYUSE): Remove.
10802         (SSA_OP_VIRTUAL_USES): Adjust.
10803         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10804         (unlink_stmt_vdef): Declare.
10805         (add_to_addressable_set): Remove.
10806         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10807         (vrp_visit_stmt): Likewise.
10808         * doc/tree-ssa.texi (Alias analysis): Update.
10809         * doc/invoke.texi (max-aliased-vops): Remove docs.
10810         (avg-aliased-vops): Likewise.
10811         * tree-into-ssa.c (syms_to_rename): Remove.
10812         (need_to_update_vops_p): Likewise.
10813         (need_to_initialize_update_ssa_p): Rename to ...
10814         (update_ssa_initialized_fn): ... this.  Track function we are
10815         initialized for.
10816         (symbol_marked_for_renaming): Simplify.
10817         (add_new_name_mapping): Do not set need_to_update_vops_p.
10818         (dump_currdefs): Use SYMS_TO_RENAME.
10819         (rewrite_update_stmt): Always walk all uses/defs.
10820         (dump_update_ssa): Adjust.
10821         (init_update_ssa): Take function argument.  Track what we are
10822         initialized for.
10823         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10824         (create_new_def_for): Initialize for cfun, assert we are initialized
10825         for cfun.
10826         (mark_sym_for_renaming): Simplify.
10827         (mark_set_for_renaming): Do not initialize update-ssa.
10828         (need_ssa_update_p): Simplify.  Take function argument.
10829         (name_mappings_registered_p): Assert we ask for the correct function.
10830         (name_registered_for_update_p): Likewise.
10831         (ssa_names_to_replace): Likewise.
10832         (release_ssa_name_after_update_ssa): Likewise.
10833         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
10834         (dump_decl_set): Do not print a newline.
10835         (debug_decl_set): Do it here.
10836         (dump_update_ssa): And here.
10837         * tree-ssa-loop-im.c (move_computations): Adjust.
10838         (movement_possibility): Likewise.
10839         (determine_max_movement): Likewise.
10840         (gather_mem_refs_stmt): Likewise.
10841         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10842         or NAME_MEMORY_TAG.
10843         * tree-complex.c (update_all_vops): Remove.
10844         (expand_complex_move): Adjust.
10845         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10846         Simplify test for memory referencing statement.  Exclude
10847         non-invariant ADDR_EXPRs.
10848         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10849         * tree-loop-distribution.c (generate_memset_zero): Adjust.
10850         (rdg_flag_uses): Likewise.
10851         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10852         related code.
10853         (tree_optimize_tail_calls_1): Also split the
10854         edge from the entry block if we have degenerate PHI nodes in
10855         the first basic block.
10856         * tree.c (init_ttree): Remove memory-tag related code.
10857         (tree_code_size): Likewise.
10858         (tree_node_structure): Likewise.
10859         (build7_stat): Re-write to be build6_stat.
10860         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10861         (SSA_VAR_P): Adjust.
10862         (struct tree_memory_tag): Remove.
10863         (struct tree_memory_partition_tag): Likewise.
10864         (union tree_node): Adjust.
10865         (build7): Re-write to be build6.
10866         * tree-pass.h (pass_reset_cc_flags): Remove.
10867         (TODO_update_address_taken): New flag.
10868         (pass_simple_dse): Remove.
10869         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10870         * params.h (MAX_ALIASED_VOPS): Remove.
10871         (AVG_ALIASED_VOPS): Likewise.
10872         * omp-low.c (expand_omp_taskreg): Update SSA form.
10873         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10874         aliases the lhs in a copy stmt.
10875         * tree-ssa-dse.c (struct address_walk_data): Remove.
10876         (memory_ssa_name_same): Likewise.
10877         (memory_address_same): Likewise.
10878         (get_kill_of_stmt_lhs): Likewise.
10879         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
10880         unused stores.  Look through PHI nodes into post-dominated regions.
10881         (dse_optimize_stmt): Simplify.  Properly remove stores.
10882         (tree_ssa_dse): Compute dominators.
10883         (execute_simple_dse): Remove.
10884         (pass_simple_dse): Likewise.
10885         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10886         gimple_loaded_syms and gimple_stored_syms computation.
10887         * toplev.c (dump_memory_report): Dump alias and pta stats.
10888         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10889         (vn_reference_eq): Likewise.
10890         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10891         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10892         valueize_vuses): Remove.
10893         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
10894         (get_def_ref_stmt_vuse): ... this.
10895         (vn_reference_lookup_2): New function.
10896         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10897         walking equivalent vuses.  Simplify.
10898         (vn_reference_lookup): Likewise.
10899         (vn_reference_insert): Likewise.
10900         (vn_reference_insert_pieces): Likewise.
10901         (visit_reference_op_call): Simplify.
10902         (visit_reference_op_load): Likewise.
10903         (visit_reference_op_store): Likewise.
10904         (init_scc_vn): Remove shared_lookup_vuses initialization.
10905         (free_scc_vn): Remove shared_lookup_vuses freeing.
10906         (sort_vuses, sort_vuses_heap): Remove.
10907         (get_ref_from_reference_ops): Export.
10908         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10909         vector with single vuse pointer.
10910         (vn_reference_lookup_pieces, vn_reference_lookup,
10911         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10912         (shared_vuses_from_stmt): Remove.
10913         (get_ref_from_reference_ops): Declare.
10914         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10915         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10916         memory-tag related code.
10917         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10918         (likely_value): Add comment, skip static-chain of call statements.
10919         (surely_varying_stmt_p): Adjust.
10920         (gimplify_and_update_call_from_tree): Likewise.
10921         (execute_fold_all_builtins): Do not rebuild alias info.
10922         (gimplify_and_update_call_from_tree): Properly update VOPs.
10923         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10924         (copy_ref_info): Remove memory-tag related code.
10925         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10926         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10927         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10928         computation.
10929         * tree-ssa-dom.c (gimple_p): Remove typedef.
10930         (eliminate_redundant_computations): Adjust.
10931         (record_equivalences_from_stmt): Likewise.
10932         (avail_expr_hash): Likewise.
10933         (avail_expr_eq): Likewise.
10934         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
10935         (stmt_makes_single_load): Likewise.
10936         (stmt_makes_single_store): Likewise.
10937         * tree-ssa-alias.c: Rewrite completely.
10938         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10939         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10940         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10941         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10942         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10943         Remove public functions.
10944         (pass_reset_cc_flags): Remove.
10945         (pass_build_alias): Move ...
10946         * tree-ssa-structalias.c (pass_build_alias): ... here.
10947         * tree-ssa-alias.c (may_be_aliased): Move ...
10948         * tree-flow-inline.h (may_be_aliased): ... here.
10949         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10950         count_uses_and_derefs): Move ...
10951         * gimple.c: ... here.
10952         * gimple.h (count_uses_and_derefs): Declare.
10953         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10954         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10955         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10956         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10957         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10958         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10959         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10960         New functions.
10961         * tree-dfa.c (refs_may_alias_p): Move ...
10962         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
10963         * tree-ssa-alias.h: New file.
10964         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10965         (statement_sink_location): Likewise.
10966         * opts.c (decode_options): Do not adjust max-aliased-vops or
10967         avg-aliased-vops values.
10968         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10969         (TV_CALL_CLOBBER): Likewise.
10970         (TV_FLOW_SENSITIVE): Likewise.
10971         (TV_FLOW_INSENSITIVE): Likewise.
10972         (TV_MEMORY_PARTITIONING): Likewise.
10973         (TV_ALIAS_STMT_WALK): New timevar.
10974         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10975         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10976         (get_address_description): Remove memory-tag related code.
10977         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10978         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10979         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10980         and immediate uses in statements.  Document.
10981         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10982         (dump_symbols): Remove.
10983         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10984         * alias.c (get_deref_alias_set): New function split out from ...
10985         (get_alias_set): ... here.
10986         * alias.h (get_deref_alias_set): Declare.
10987         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10988         type parameter.  Remove restrict pointer handling.  Create a
10989         ref-all pointer in case type-based alias sets do not conflict.
10990         (vect_analyze_data_refs): Remove SMT related code.
10991         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10992         (vectorizable_load): Likewise.
10993         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10994         (DR_SYMBOL_TAG, DR_VOPS): Remove.
10995         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10996         Ignore vops and SMTs.
10997         (dr_analyze_alias): Likewise..
10998         (free_data_ref): Likewise.
10999         (create_data_ref): Likewise.
11000         (analyze_all_data_dependences): Likewise.
11001         (get_references_in_stmt): Adjust.
11002         * tree-flow-inline.h (gimple_aliases_computed_p,
11003         gimple_addressable_vars, gimple_call_clobbered_vars,
11004         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11005         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11006         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11007         gimple_mem_ref_stats): Remove.
11008         (gimple_vop): New function.
11009         (op_iter_next_use): Remove vuses and mayuses cases.
11010         (op_iter_next_def): Remove vdefs case.
11011         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11012         (clear_and_done_ssa_iter): Do not set removed fields.
11013         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
11014         Assert we are not iterating over vuses or vdefs if not also
11015         iterating over uses or defs.
11016         (op_iter_init_use): Likewise.
11017         (op_iter_init_def): Likewise.
11018         (op_iter_next_vdef): Remove.
11019         (op_iter_next_mustdef): Likewise.
11020         (op_iter_init_vdef): Likewise.
11021         (compare_ssa_operands_equal): Likewise.
11022         (link_use_stmts_after): Handle vuse operand.
11023         (is_call_used): Use is_call_clobbered.
11024         (is_call_clobbered): Global variables are always call clobbered,
11025         query the call-clobbers bitmap.
11026         (mark_call_clobbered): Ignore global variables.
11027         (clear_call_clobbered): Likewise.
11028         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11029         virtual operands sanity check.
11030         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11031         Remove.
11032         (TARGET_MEM_REF): Remove TMR_TAG operand.
11033         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11034         Remove call-clobber related code.
11035         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
11036         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11037         partitions or escape reason.
11038         (get_single_def_stmt, get_single_def_stmt_from_phi,
11039         get_single_def_stmt_with_phi): Remove.
11040         (dump_referenced_vars): Tidy.
11041         (get_ref_base_and_extent): Allow bare decls.
11042         (collect_dfa_stats): Adjust.
11043         * graphite.c (rename_variables_in_stmt): Adjust.
11044         (graphite_copy_stmts_from_block): Likewise.
11045         (translate_clast): Likewise.
11046         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11047         (EXPR_DIES): New.
11048         (translate_vuse_through_block): Use the oracle.
11049         (phi_translate_1): Adjust.
11050         (value_dies_in_block_x): Use the oracle.  Cache the outcome
11051         in EXPR_DIES.
11052         (valid_in_sets): Check if the VUSE for
11053         a REFERENCE is available.
11054         (eliminate): Do not remove stmts during elimination,
11055         instead queue and remove them afterwards.
11056         (do_pre): Do not rebuild alias info.
11057         (pass_pre): Run TODO_rebuild_alias before PRE.
11058         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11059         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11060         (mark_all_v_defs_stmt): Remove.
11061         (mark_all_v_defs_seq): Adjust.
11062         (sra_replace): Likewise.
11063         (scalarize_use): Likewise.
11064         (scalarize_copy): Likewise.
11065         (scalarize_init): Likewise.
11066         (scalarize_ldst): Likewise.
11067         (todoflags): Remove.
11068         (tree_sra): Do not rebuild alias info.
11069         (tree_sra_early): Adjust.
11070         (pass_sra): Run TODO_update_address_taken before SRA.
11071         * tree-predcom.c (set_alias_info): Remove.
11072         (prepare_initializers_chain): Do not call it.
11073         (mark_virtual_ops_for_renaming): Adjust.
11074         (mark_virtual_ops_for_renaming_list): Remove.
11075         (initialize_root_vars): Adjust.
11076         (initialize_root_vars_lm): Likewise.
11077         (prepare_initializers_chain): Likewise.
11078         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11079         (may_propagate_copy_into_stmt): Likewise.
11080         (merge_alias_info): Do nothing for now.
11081         (propagate_tree_value_into_stmt): Adjust.
11082         (stmt_may_generate_copy): Likewise.
11083         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11084         not mark symbols for renaming.
11085         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11086         with the same statement, make sure to update the new pointed-to one.
11087         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11088         call statements, do not mark symbols for renaming.
11089         (mark_operand_necessary): Dump something.
11090         (ref_may_be_aliased): New function.
11091         (mark_aliased_reaching_defs_necessary_1): New helper function.
11092         (mark_aliased_reaching_defs_necessary): Likewise.
11093         (mark_all_reaching_defs_necessary_1): Likewise.
11094         (mark_all_reaching_defs_necessary): Likewise.
11095         (propagate_necessity): Do not process virtual PHIs.  For
11096         non-aliased loads mark all reaching definitions as necessary.
11097         For aliased loads and stores mark the immediate dominating
11098         aliased clobbers as necessary.
11099         (visited): New global static.
11100         (perform_tree_ssa_dce): Free visited bitmap after propagating
11101         necessity.
11102         (remove_dead_phis): Perform simple dead virtual PHI removal.
11103         (remove_dead_stmt): Properly unlink virtual operands when
11104         removing stores.
11105         (eliminate_unnecessary_stmts): Schedule PHI removal after
11106         stmt removal.
11107         * tree-ssa-ter.c (is_replaceable_p): Adjust.
11108         (process_replaceable): Likewise.
11109         (find_replaceable_in_bb): Likewise.
11110         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11111         based on the single gimple vop.
11112         (verify_flow_insensitive_alias_info): Remove.
11113         (verify_flow_sensitive_alias_info): Likewise.
11114         (verify_call_clobbering): Likewise.
11115         (verify_memory_partitions): Likewise.
11116         (verify_alias_info): Likewise.
11117         (verify_ssa): Adjust..
11118         (execute_update_addresses_taken): Export.  Update SSA
11119         manually.  Optimize only when optimizing.  Use a local bitmap.
11120         (pass_update_address_taken): Remove TODO_update_ssa, add
11121         TODO_dump_func.
11122         (pass_update_address_taken): Just use TODO_update_address_taken.
11123         (init_tree_ssa): Do not initialize addressable_vars.
11124         (verify_ssa): Verify new VUSE / VDEF properties.
11125         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11126         Do not call verify_alias_info.
11127         (delete_tree_ssa): Clear the VUSE, VDEF operands.
11128         Do not free the loaded and stored syms bitmaps.  Reset the escaped
11129         and callused solutions.  Do not free addressable_vars.
11130         Remove memory-tag related code.
11131         (warn_uninitialized_var): Aliases are always available.
11132         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11133         * lambda-code.c (can_put_in_inner_loop): Adjust.
11134         (can_put_after_inner_loop): Likewise.
11135         (perfect_nestify): Likewise.
11136         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11137         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11138         (vectorizable_conversion): Do not mark symbols for renaming.
11139         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11140         (expand_call_inline): Unlink the calls virtual operands before
11141         replacing it.
11142         (tree_function_versioning): Do not call update_ssa if we are not
11143         updating clones.  Simplify.
11144         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11145         (propagate_with_phi): Likewise..
11146         * tree-outof-ssa.c (create_temp): Remove memory tag and call
11147         clobber code.  Assert we are not aliased or global.
11148         * tree-flow.h: Include tree-ssa-alias.h
11149         (enum escape_type): Remove.
11150         (struct mem_sym_stats_d): Likewise.
11151         (struct mem_ref_stats_d): Likewise.
11152         (struct gimple_df): Add vop member.  Remove global_var,
11153         call_clobbered_vars, call_used_vars, addressable_vars,
11154         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
11155         escaped and callused members.
11156         (struct ptr_info_def): Remove all members, add points-to solution
11157         member pt.
11158         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11159         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11160         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11161         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11162         (tree-ssa-alias.o): Likewise.
11163         (toplev.o): Add tree-ssa-alias.h
11164         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11165         * gimple.c (gimple_set_bb): Fix off-by-one error.
11166         (is_gimple_reg): Do not handle memory tags.
11167         (gimple_copy): Also copy virtual operands.
11168         Delay updating the statement.  Do not reset loaded and stored syms.
11169         (gimple_set_stored_syms): Remove.
11170         (gimple_set_loaded_syms): Likewise.
11171         (gimple_call_copy_skip_args): Copy the virtual operands
11172         and mark the new statement modified.
11173         * tree-ssa-structalias.c (may_alias_p): Remove.
11174         (set_uids_in_ptset): Take the alias set to prune with as
11175         parameter.  Fold in the alias test of may_alias_p.
11176         (compute_points_to_sets): Compute whether a ptr is dereferenced
11177         in a local sbitmap.
11178         (process_constraint): Deal with &ANYTHING on the lhs, reject all
11179         other ADDRESSOF constraints on the lhs.
11180         (get_constraint_for_component_ref): Assert that we don't get
11181         ADDRESSOF constraints from the base of the reference.
11182         Properly generate UNKNOWN_OFFSET for DEREF if needed.
11183         (struct variable_info): Remove collapsed_to member.
11184         (get_varinfo_fc): Remove.
11185         (new_var_info): Do not set collapsed_to.
11186         (dump_constraint): Do not follow cycles.
11187         (dump_constraint_graph): Likewise.
11188         (build_pred_graph): Likewise.
11189         (build_succ_graph): Likewise.
11190         (rewrite_constraints): Likewise.
11191         (do_simple_structure_copy): Remove.
11192         (do_rhs_deref_structure_copy): Remove.
11193         (do_lhs_deref_structure_copy): Remove.
11194         (collapse_rest_of_var): Remove.
11195         (do_structure_copy): Re-implement.
11196         (pta_stats): New global variable.
11197         (dump_pta_stats): New function.
11198         (struct constraint_expr): Make offset signed.
11199         (UNKNOWN_OFFSET): Define special value.
11200         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11201         (solution_set_expand): New helper function split out from ...
11202         (do_sd_constraint): ... here.
11203         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
11204         (do_ds_constraint): Likewise.
11205         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
11206         and CALLUSED = *CALLUSED.
11207         (set_union_with_increment): Make inc argument signed.
11208         (type_safe): Remove.
11209         (get_constraint_for_ptr_offset): Handle unknown and negative
11210         constant offsets.
11211         (first_vi_for_offset): Handle offsets before start.  Bail
11212         out early for offsets beyond the variable extent.
11213         (first_or_preceding_vi_for_offset): New function.
11214         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11215         Together with ESCAPED = *ESCAPED this properly computes reachability.
11216         (find_what_var_points_to): New function.
11217         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11218         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11219         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11220         pt_solutions_intersect): New functions.
11221         (compute_call_used_vars): Remove.
11222         (compute_may_aliases): New main entry into PTA computation.
11223         * gimple.h (gimple_p): New typedef.
11224         (struct gimple_statement_base): Remove references_memory_p.
11225         (struct gimple_statement_with_memory_ops_base): Remove
11226         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
11227         members.
11228         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11229         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11230         gimple_set_references_memory): Remove.
11231         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11232         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11233         New functions.
11234         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11235         (verify_expr): Allow RESULT_DECL.
11236         (gimple_duplicate_bb): Do not copy virtual operands.
11237         (gimple_duplicate_sese_region): Adjust.
11238         (gimple_duplicate_sese_tail): Likewise.
11239         (mark_virtual_ops_in_region): Remove.
11240         (move_sese_region_to_fn): Do not call it.
11241         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11242         and pass_simple_dse.
11243         (execute_function_todo): Handle TODO_update_address_taken,
11244         call execute_update_addresses_taken for TODO_rebuild_alias.
11245         (execute_todo): Adjust.
11246         (execute_one_pass): Init dump files early.
11247         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11248         call-clobbered.
11249         (create_general_new_stmt): Clear vops.
11250         * tree-ssa-reassoc.c (get_rank): Adjust.
11251         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11252         symbols for renaming.
11253         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11254         (PARAM_AVG_ALIASED_VOPS): Likewise.
11255         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11256         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
11257         * tree-ssa-operands.c: Simplify for new virtual operand representation.
11258         (operand_build_cmp, copy_virtual_operands,
11259         create_ssa_artificial_load_stmt, add_to_addressable_set,
11260         gimple_add_to_addresses_taken): Remove public functions.
11261         (unlink_stmt_vdef): New function.
11262
11263 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
11264
11265         * config.gcc (powerpc-*-linux*): Merge variants.
11266
11267 2009-04-02  Chao-ying Fu  <fu@mips.com>
11268             James Grosbach  <james.grosbach@microchip.com>
11269
11270         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11271         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11272         cop0_sp_offset.
11273         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11274         keep_interrupts_masked_p, use_debug_exception_return_p.
11275         (mips_attribute_table): Add interrupt, use_shadow_register_set,
11276         keep_interrupts_masked, use_debug_exception_return.
11277         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11278         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11279         New functions.
11280         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11281         (mips_print_operand): Process COP0 registers to print $0 .. $31
11282         correctly for GAS to process.
11283         (mips_interrupt_extra_call_saved_reg_p): New function.
11284         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11285         extra registers.
11286         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11287         (mips_compute_frame_info): Add supports for interrupt context that
11288         includes doubleword accumulators and COP0 registers.
11289         (mips_for_each_saved_acc): New function.
11290         (mips_for_each_saved_gpr_and_fpr): Change the function name from
11291         mips_for_each_saved_reg.
11292         (mips_save_reg): Save accumulators.
11293         (mips_kernel_reg_p): A new for_each_rtx callback.
11294         (mips_expand_prologue): Support interrupt handlers.
11295         (mips_restore_reg): Restore accumulators.
11296         (mips_expand_epilogue): Support interrupt handlers.
11297         (mips_can_use_return_insn): Return false for interrupt handlers.
11298         (mips_epilogue_uses): New function.
11299         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11300         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11301         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11302         cop0_move): New instructions.
11303         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11304         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11305         defines.
11306         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11307         New defines.
11308         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11309         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11310         interrupt handlers, we use K0 as the temporary register.
11311         (EPILOGUE_USES): Change to a function call.
11312         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11313         handlers, we use K0 as the temporary register.
11314
11315         * doc/extend.texi (Function Attributes): Document interrupt,
11316         use_shadow_register_set, keep_interrupts_masked,
11317         use_debug_exception_return for MIPS attributes.
11318
11319 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
11320
11321         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11322         Remove a number of t-files from tmake_file.
11323         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11324         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11325         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11326         target_prototype, not TARGET_PROTOTYPE.
11327         (LINK_OS_GNU_SPEC): Define.
11328         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11329         and darwin-ldoubdle.c.
11330
11331 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11332
11333         PR driver/39293
11334         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11335         (cpp_options): Ditto.
11336         (default_compilers): Ditto.
11337         (display_help): Ditto.
11338         (process_command): Ditto.
11339         (do_spec_1): Ditto.
11340         (set_input): Use lbasename instead of duplicate code.
11341         (save_temps_prefix): New static for -save-temps=obj.
11342         (save_temps_length): Ditto.
11343
11344         * doc/invoke.texi (-save-temps=obj): Document new variant to
11345         -save-temps switch.
11346
11347 2009-04-02  Jeff Law  <law@redhat.com>
11348
11349         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
11350         variable.
11351
11352 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
11353
11354         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
11355         * configure: Regenerated.
11356
11357 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
11358
11359         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
11360         share the argument list.
11361
11362 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
11363
11364         Merge
11365
11366         2009-02-12  Diego Novillo  <dnovillo@google.com>
11367
11368         * varpool.c (debug_varpool): New.
11369         * cgraph.h (debug_varpool): Declare.
11370
11371 2009-04-02  Jan Hubicka  <jh@suse.cz>
11372
11373         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
11374         pass.
11375
11376 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
11377
11378         * config/i386/i386.c (ix86_abi): Move initialization to ...
11379         (override_options): Here.
11380
11381 2009-04-02  Christian Bruel  <christian.bruel@st.com>
11382
11383         * config/sh/sh.c (sh_dwarf_register_span): New function.
11384         (TARGET_DWARF_REGISTER_SPAN): Define.
11385         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
11386
11387 2009-04-02  Ira Rosen  <irar@il.ibm.com>
11388
11389         PR tree-optimization/39595
11390         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
11391         interleaved loads group is not  greater than the SLP group size.
11392
11393 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
11394
11395         * builtins.c (is_builtin_name): New.
11396         (called_as_built_in): Use is_builtin_name.
11397         * tree.h (is_builtin_name): New.
11398         * varasm.c (incorporeal_function_p): Use is_builtin_name
11399
11400 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
11401
11402         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
11403
11404 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
11405
11406         PR c++/26693
11407         * c-decl.c (clone_underlying_type): Move this ...
11408         * c-common.c (set_underlying_type): ... here.
11409         Also, make sure the function properly sets TYPE_STUB_DECL() on
11410         the newly created typedef variant type.
11411         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
11412         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
11413         points.
11414
11415 2009-04-02  Richard Guenther  <rguenther@suse.de>
11416
11417         PR tree-optimization/37221
11418         * tree-flow.h (degenerate_phi_result): Declare.
11419         * tree-ssa-dom.c (degenerate_phi_result): Export.
11420         * tree-scalar-evolution.c (analyze_initial_condition): If
11421         the initial condition is defined by a degenerate PHI node
11422         use the degenerate value.
11423
11424 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
11425
11426         PR rtl-optimization/39588
11427         * combine.c (merge_outer_ops): Do not set the constant when this
11428         is not necessary.
11429         (simplify_shift_const_1): Do not modify it either in this case.
11430
11431 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
11432
11433         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
11434         tuning is deprecated if -mtune value is set to an Itanium1 variant.
11435
11436 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
11437
11438         PR c/29027
11439         * c-lex.c (interpret_float): Default (no suffix) is double.
11440
11441 2009-04-1  Xinliang David Li  <davidxl@google.com>
11442
11443         * config/i386/i386.c (legitimate_constant_p): Recognize
11444         all one vector constant.
11445
11446 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11447
11448         * config/vax/vax.c: Add #includes to silence warnings.
11449         Change #include order to silence two warnings.
11450
11451 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11452
11453         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
11454         (ASM_SPEC): Pass -k to the assembler for PIC code.
11455
11456 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11457
11458         * config.gcc: Add vax-*-linux* to the switch.
11459         * config/vax/linux.h: New file. (TARGET_VERSION,
11460         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
11461
11462 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11463
11464         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
11465         Use predicate macros instead of GET_CODE() == foo.
11466         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
11467         ashlsi3, rotrsi3, <unnamed>): Likewise.
11468
11469 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11470
11471         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
11472         jbbccihi, jbbccisi): Remova trailing whitespace.
11473         * config/vax/constraints.md: Likewise.
11474         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11475         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
11476         * config/vax/predicates.md: Likewise.
11477         * config/vax/vax.c (print_operand_address, vax_output_int_move,
11478         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
11479         * config/vax/vax.h: Likewise.
11480         * config/vax/vax.md (nonlocal_goto): Likewise.
11481
11482 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11483
11484         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
11485         (indirectable_address_p, adjacent_operands_p): Add spaces around
11486         braces.
11487         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
11488
11489 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11490
11491         * config/vax/vax.c (legitimate_constant_address_p,
11492         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
11493         index_term_p, reg_plus_index_p, legitimate_address_p,
11494         vax_mode_dependent_address_p): Update comments to match functions
11495         modified by the recent int->bool conversion.
11496
11497 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11498
11499         * config/vax/builtins.md: Update copyright message.
11500         * config/vax/constraints.md: Likewise.
11501         * config/vax/netbsd-elf.h: Likewise.
11502         * config/vax/predicates.md: Likewise.
11503         * config/vax/vax-protos.h: Likewise.
11504         * config/vax/vax.c: Likewise.
11505         * config/vax/vax.h: Likewise.
11506         * config/vax/vax.md: Likewise.
11507         * config/vax/vax.opt: Likewise.
11508
11509 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
11510
11511         * config/vax/builtins.md (ffssi2, ffssi2_internal,
11512         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
11513         * config/vax/constraints.md (B, R): Likewise.
11514         * config/vax/predicates.md (external_memory_operand,
11515         nonimmediate_addsub_di_operand): Likewise.
11516         * config/vax/vax.c (vax_output_int_add): Likewise.
11517         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
11518         untyped_call): Likewise.
11519
11520 2009-04-01  Matt Thomas  <matt@3am-software.com>
11521
11522         * config/vax/predicates.md: New file.
11523         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
11524         external_const_operand, nonsymbolic_operand, external_memory_operand,
11525         indirect_memory_operand, indexed_memory_operand,
11526         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
11527         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
11528         predicate.
11529         * config/vax/constraints.md: New file.
11530         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
11531         New constraint.
11532         * config/vax/builtins.md: New file.
11533         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
11534         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
11535         jbbccisi): Define.
11536         * config/vax/vax.opt (mqmath): Add option.
11537         * config/vax/vax.md (isfx): Extend with DI.
11538         (VAXintQH, VAXintQHSD): Define.
11539         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
11540         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
11541         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
11542         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
11543         (movdi): Update constraints and use vax_output_int_move().
11544         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
11545         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
11546         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
11547         nonlocal_goto): New.
11548         (mov<mode>): Extend accepted operand types.
11549         (subdi3_old): Rename from subdi3, change update constraints and use
11550         a new implementation.
11551         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
11552         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
11553         MOVE_RATIO, CLEAR_RATIO): Define.
11554         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
11555         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
11556         (PRINT_OPERAND): Redefine using a function instead of inlined code.
11557         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
11558         (split_quadword_operands): Make static and really allow variable
11559         splitting.
11560         (print_operand_address): Update for PIC generation.
11561         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
11562         indexable_address_p, fixup_mathdi_operand,
11563         vax_expand_addsub_di_operands, adjacent_operands_p): New.
11564         (vax_float_literal, legitimate_constant_p,
11565         indirectable_constant_address_p, index_term_p,
11566         reg_plus_index_p): Return bool instead of int.
11567         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
11568         where needed.
11569         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
11570         generation.
11571         (vax_output_conditional_branch): Indent.
11572         (legitimate_constant_address_p, indirectable_constant_address_p,
11573         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11574         vax_mode_dependent_address_p): Return bool instead of int, update for
11575         PIC generation.
11576         * config/vax/vax-protos.h (legitimate_constant_address_p,
11577         legitimate_constant_p, legitimate_address_p,
11578         vax_mode_dependent_address_p): Change declaration to bool.
11579         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11580         vax_expand_addsub_di_operands, vax_output_int_subtract,
11581         vax_output_movmemsi): Declare.
11582         (split_quadword_operands, vax_float_literal): Delete declaration.
11583         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11584         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11585         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11586         ASM_OUTPUT_DWARF_PCREL): Define.
11587         (ASM_SPEC): Change definition to allow PIC generation.
11588
11589 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
11590
11591         * doc/sourcebuild.texi: Update front-end requirements.
11592
11593 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11594
11595         PR target/39226
11596         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11597         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11598         (booldi3_internal3): Use boolean_or_operator instead of
11599         boolean_operator.
11600
11601 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
11602
11603         PR c/39605
11604         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11605         declarator whose size is not an integer constant expression but
11606         folds to an integer constant, then treat it as a constant
11607         subsequently.
11608
11609 2009-04-01  Richard Guenther  <rguenther@suse.de>
11610
11611         * fold-const.c (fold_plusminus_mult_expr): Do not fold
11612         i * 4 + 2 to (i * 2 + 1) * 2.
11613
11614 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11615
11616         PR c/37772
11617         * c-parser.c (c_parser_asm_statement): Skip until close paren and
11618         return if c_parser_asm_string_literal returned NULL.
11619
11620 2009-04-01  Nick Clifton  <nickc@redhat.com>
11621
11622         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11623         already defined.
11624         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11625         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
11626         other typedefs to avoid conflicts with libgcc2.c.  Define labels
11627         to gain 16-bit bit-manipulation functions from libgcc2.c and then
11628         include it.
11629         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
11630         to gain 16-bit trapping arithmetic functions from libgcc2.c and
11631         then include it.
11632
11633 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
11634
11635         * varasm.c (default_function_rodata_section): Declare DOT as
11636         const char*.
11637
11638 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
11639             Andrey Galkin  <agalkin@hypercom.com>
11640
11641         PR/39492
11642         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11643         Make object_name unique for each process.
11644
11645 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11646
11647         PR other/39591
11648         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11649         addressable variables in the parallel that could go out of scope while
11650         running queued tasks.
11651
11652 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
11653
11654         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11655         (CASE_VALUES_THRESHOLD): Redefine.
11656         * config/avr/avr.c (avr_override_options): Remove initialization of
11657         avr_case_values_threshold variable.
11658         (avr_case_values_threshold): Remove variable. Add new function.
11659         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11660         * config/avr/avr.opt (mno-tablejump): Remove option.
11661         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11662
11663 2009-04-01  DJ Delorie  <dj@redhat.com>
11664
11665         * varasm.c (default_function_rodata_section): Don't assume
11666         anything about where the first '.' in the section name is.
11667
11668 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
11669
11670         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11671         rs6000_emit_stack_tie.
11672
11673 2009-03-31  Ian Lance Taylor  <iant@google.com>
11674
11675         * tree-eh.c (tree_remove_unreachable_handlers): Compare
11676         gimple_code with GIMPLE_RESX, not RESX.
11677
11678 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11679
11680         * c-common.c (c_get_ident): New.
11681         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
11682
11683 2009-04-01  Ben Elliston  <bje@au.ibm.com>
11684
11685         * config/rs6000/sysv4.opt (msdata): Improve option description.
11686
11687 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
11688
11689         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11690         (divdf3_internal_lat): Remove.
11691         (divxf3_internal_lat): Remove.
11692         (divxf3_internal_thr): Remove.
11693         (divxf): Use divxf3_internal.
11694         * config/ia64/div.md (divsf3_internal_lat): New.
11695         (divdf3_internal_lat): New.
11696         (divxf3_internal): New.
11697
11698 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11699
11700         PR c/448
11701         * Makefile.in (USE_GCC_STDINT): Define.
11702         (stmp-int-hdrs): Install stdint.h if applicable.
11703         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11704         if known.
11705         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11706         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11707         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11708         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11709         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11710         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11711         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11712         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11713         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11714         (c_common_nodes_and_builtins): Initialize
11715         underlying_wchar_type_node.  Do not initialize
11716         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
11717         nodes for new types.
11718         (c_stddef_cpp_builtins): Define macros for new types.
11719         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11720         Remove.
11721         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11722         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11723         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11724         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11725         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11726         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11727         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11728         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11729         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11730         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11731         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11732         int16_type_node, int32_type_node, int64_type_node,
11733         uint8_type_node, uint16_type_node, c_uint32_type_node,
11734         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11735         int_least32_type_node, int_least64_type_node,
11736         uint_least8_type_node, uint_least16_type_node,
11737         uint_least32_type_node, uint_least64_type_node,
11738         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11739         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11740         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11741         uintptr_type_node): Define.
11742         * c-cppbuiltin.c (builtin_define_constants,
11743         builtin_define_type_minmax): New.
11744         (builtin_define_stdint_macros): Define more macros.
11745         (c_cpp_builtins): Define more limit macros.
11746         (type_suffix): New.
11747         (builtin_define_type_max): Define in terms of
11748         builtin_define_type_minmax.  Remove is_long parameter.  All
11749         callers changed.
11750         * config.gcc (use_gcc_stdint): Define.
11751         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11752         Add newlib-stdint.h for generic targets.
11753         * config/glibc-stdint.h, config/newlib-stdint.h,
11754         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11755         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11756         * config/score/score.h (UINTPTR_TYPE): Define.
11757         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11758         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11759         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11760         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11761         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11762         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11763         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11764         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11765         * config/spu/spu.h (STDINT_LONG32): Define.
11766         * configure.ac (use_gcc_stdint): Substitute.
11767         * configure: Regenerate.
11768         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11769         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11770         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11771         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11772         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11773         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11774         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11775         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11776         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11777         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11778         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11779         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11780         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11781         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11782         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11783         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11784         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11785         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11786         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11787         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11788         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11789         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11790         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11791         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11792         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11793         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11794         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11795         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11796         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11797
11798 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
11799
11800         * loop-iv.c (suitable_set_for_replacement): Renamed from
11801         simplify_using_assignment; changed to return bool and to accept new
11802         args DEST and SRC.  Return true iff we find a source/destination pair
11803         that can be used to make a replacement, and fill SRC and DEST if so.
11804         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
11805         changed.
11806         (simplify_using_initial_values): Deal with altered regs here and track
11807         more precisely the effect they have on the validity of our expression.
11808
11809         * loop-iv.c (simplify_using_condition): A condition of the form
11810         (EQ REG CONST) can be used to simply make a substitution.
11811         (simplify_using_initial_values): Keep track of conditions we have seen
11812         and keep using them to simplify new expressions, while applying the
11813         same substitutions to them as to the expression.
11814
11815         * simplify-rtx.c (simplify_relational_operation_1): Simplify
11816         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11817         GEU/LTU reversed.
11818
11819         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
11820         changed.  Use this when trying to improve the upper bound.
11821         Generate the comparison by using simplify_gen_relational.
11822
11823         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11824
11825         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11826         functions.
11827         (simplify_using_assignment, simplify_using_initial_values): Call
11828         replace_in_expr to make replacements.  Call replace_single_def_regs
11829         once on the initial version of the expression.
11830
11831 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11832
11833         PR target/27237
11834         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
11835
11836 2009-03-31  Richard Guenther  <rguenther@suse.de>
11837
11838         PR middle-end/31029
11839         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11840         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
11841
11842 2009-03-31  Richard Guenther  <rguenther@suse.de>
11843
11844         * tree.h (div_if_zero_remainder): Declare.
11845         * fold-const.c (div_if_zero_remainder): Export.
11846         * tree-ssa-forwprop.c
11847         (forward_propagate_addr_into_variable_array_index): Handle
11848         constant array index addition outside of the variable index.
11849
11850 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11851
11852         PR target/39592
11853         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11854         define_splits, floatunssi<mode>2): Require x87 conversions from
11855         DImode to be permitted.
11856
11857 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11858
11859         PR preprocessor/15638
11860         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11861
11862 2009-03-31  Richard Guenther  <rguenther@suse.de>
11863
11864         PR middle-end/23401
11865         PR middle-end/27810
11866         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11867         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11868         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11869         a separate statement.
11870         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11871         (lookup_tmp_var): Likewise.
11872         (is_gimple_formal_tmp_or_call_rhs): Remove.
11873         (is_gimple_reg_or_call_rhs): Rename to ...
11874         (is_gimple_reg_rhs_or_call): ... this.
11875         (is_gimple_mem_or_call_rhs): Rename to ...
11876         (is_gimple_mem_rhs_or_call): ... this.
11877         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
11878         DECL_GIMPLE_REG_P only if is_formal is true.
11879         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
11880         for non-proper post-modify expression gimplification.
11881         (gimplify_self_mod_expr): For post-modify expressions gimplify
11882         the lvalue to a minimal lvalue.
11883         (rhs_predicate_for): Remove formal temp case.
11884         (gimplify_modify_expr_rhs): Likewise.
11885         (gimplify_addr_expr): Use is_gimple_reg.
11886         (gimplify_expr): Remove formal temp cases.
11887         (gimple_regimplify_operands): Likewise.
11888         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11889         and FILTER_EXPR like constants.
11890         * gimple.c (walk_gimple_op): Fix val_only initialization, use
11891         is_gimple_reg.
11892         (is_gimple_formal_tmp_rhs): Remove.
11893         (is_gimple_reg_rhs): Remove special casing.
11894         (is_gimple_mem_rhs): Fix.
11895         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11896         (is_gimple_formal_tmp_var): Remove.
11897         (is_gimple_formal_tmp_reg): Likewise.
11898         (is_gimple_min_lval): Allow invariant component ref parts.
11899         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11900         is_gimple_formal_tmp_reg): Remove declarations.
11901         * tree-cfg.c (verify_expr): Verify that variables with address
11902         taken do not have DECL_GIMPLE_REG_P set.
11903         * tree-mudflap.c (mf_build_check_statement_for): Use
11904         force_gimple_operand instead of gimplify_expr.
11905
11906 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
11907
11908         * modulo-sched.c (sms_schedule_by_order): Pass the actual
11909         schedulable rows to compute_split_row.
11910
11911 2009-03-31  Ben Elliston  <bje@au.ibm.com>
11912
11913         PR target/31635
11914         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11915         OPT_mvrsave.
11916
11917 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11918
11919         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11920         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11921         * configure: Regenerate.
11922         * config.in: Regenerate.
11923         * config/rs6000/rs6000.opt (mtls-markers): Add.
11924         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11925         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11926         (tls_ld_aix, tls_ld_sysv): Likewise.
11927         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11928         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11929
11930 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11931
11932         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11933
11934 2009-03-30  Jan Hubicka  <jh@suse.cz>
11935
11936         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11937         out of RESX.
11938         (tree_remove_unreachable_handlers): Cleanup EH predecestor
11939         detection and label handling.
11940
11941 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11942
11943         * ira-int.h (ira_allocno): Rename left_conflicts_num to
11944         left_conflicts_size.
11945         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11946         ALLOCNO_LEFT_CONFLICTS_SIZE.
11947
11948         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11949         remove_allocno_from_bucket_and_push,
11950         allocno_spill_priority_compare, push_allocnos_to_stack,
11951         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11952         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11953         (setup_allocno_left_conflicts_num): Ditto.  Rename to
11954         setup_allocno_left_conflicts_size.
11955         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11956         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11957         setup_allocno_left_conflicts_size instead of
11958         setup_allocno_left_conflicts_num.
11959
11960         * ira-build.c (ira_create_allocno): Use
11961         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11962         ALLOCNO_LEFT_CONFLICTS_NUM.
11963
11964 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11965
11966         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11967         instead of DF_LR_OUT.
11968
11969         * ira-lives.c (process_bb_node_lives): Ditto.
11970
11971         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11972         instead of DF_LR_{OUT,IN}.
11973
11974         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11975
11976         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11977
11978 2009-03-30  Jan Hubicka  <jh@suse.cz>
11979
11980         * except.c (label_to_region_map): Fix thinko.
11981
11982 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
11983
11984         PR middle-end/38237
11985         * tree.h (tree_find_value): New declaration.
11986         * tree.c (tree_find_value): New function.
11987         * varasm.c (assemble_external): Avoid duplicate entries on lists.
11988
11989 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
11990
11991         PR debug/39563
11992         * c-decl.c (struct c_binding): Add locus field.
11993         (bind): Add locus argument, set locus field from it.
11994         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11995         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11996         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11997         implicitly_declare, undeclared_variable, lookup_label,
11998         declare_label, c_make_fname_decl, c_builtin_function,
11999         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12000         bind callers.
12001
12002 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
12003
12004         PR target/38781
12005         * config/i386/i386.c (classify_argument): Check total size of
12006         structure.
12007
12008 2009-03-30  Martin Jambor  <mjambor@suse.cz>
12009
12010         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12011         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12012         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12013         respectively.
12014
12015         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12016         seen_variable_array_ref while also traversing a union.
12017
12018         * tree-inline.c (optimize_inline_calls): Do not call
12019         cgraph_node_remove_callees.
12020         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12021         (pass_remove_cgraph_callee_edges): New variable.
12022         * passes.c (init_optimization_passes): Add
12023         pass_remove_cgraph_callee_edges after early inlining and before all
12024         late intraprocedural passes.
12025
12026         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12027
12028 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12029
12030         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12031         Fix typos in names.
12032
12033 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12034
12035         * combine.c (simplify_comparison): Use have_insn_for.
12036         * dojump.c (do_jump): Likewise.
12037
12038 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12039
12040         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12041         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12042         sparc_compare_op0 like sparc_compare_emitted used to be handled.
12043         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12044         instead of sparc_compare_emitted.
12045         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12046         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12047         instead of sparc_compare_emitted.
12048
12049 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12050
12051         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12052         enter/exit cfglayout mode.
12053         (pass_partition_block): Require it.
12054         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12055         (combine_instructions): Track basic blocks instead of labels.
12056         (update_cfg_for_uncondjump): New.
12057         (try_combine): Use it.  Update jumps after rescanning.
12058         (pass_combine): Require PROP_cfglayout.
12059         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12060
12061 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12062
12063         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12064         Provide/destroy PROP_cfglayout respectively.
12065         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12066         * tree-pass.h (PROP_cfglayout): New.
12067
12068 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12069
12070         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12071         fold_convert_const_fixed_from_fixed,
12072         fold_convert_const_fixed_from_int,
12073         fold_convert_const_fixed_from_real, fold_negate_const): Do not
12074         set TREE_CONSTANT_OVERFLOW.
12075         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12076         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12077
12078 2009-03-30  Ira Rosen  <irar@il.ibm.com>
12079
12080         * tree-vect-loop-manip.c: New file.
12081         * tree-vectorizer.c: Update documentation and included files.
12082         (vect_loop_location): Make extern.
12083         (rename_use_op): Move to tree-vect-loop-manip.c
12084         (rename_variables_in_bb, rename_variables_in_loop,
12085         slpeel_update_phis_for_duplicate_loop,
12086         slpeel_update_phi_nodes_for_guard1,
12087         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12088         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12089         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
12090         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
12091         find_loop_location): Likewise.
12092         (new_stmt_vec_info): Move to tree-vect-stmts.c.
12093         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12094         get_vectype_for_scalar_type, vect_is_simple_use,
12095         supportable_widening_operation, supportable_narrowing_operation):
12096         Likewise.
12097         (bb_in_loop_p): Move to tree-vect-loop.c.
12098         (new_loop_vec_info, destroy_loop_vec_info,
12099         reduction_code_for_scalar_code, report_vect_op,
12100         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12101         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12102         (vect_supportable_dr_alignment): Likewise.
12103         * tree-vectorizer.h (tree-data-ref.h): Include.
12104         (vect_loop_location): Declare.
12105         Reorganize function declarations according to the new file structure.
12106         * tree-vect-loop.c: New file.
12107         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
12108         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12109         * tree-vect-data-refs.c: New file.
12110         * tree-vect-patterns.c (timevar.h): Don't include.
12111         * tree-vect-stmts.c: New file.
12112         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
12113         tree-vect-slp.c, tree-vect-loop.c.
12114         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12115         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
12116         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12117         (tree-vect-analyze.o): Remove.
12118         (tree-vect-transform.o): Likewise.
12119         (tree-vect-data-refs.o): Add rule.
12120         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
12121         tree-vect-slp.o): Likewise.
12122         (tree-vect-patterns.o): Remove redundant dependencies.
12123         (tree-vectorizer.o): Likewise.
12124         * tree-vect-slp.c: New file.
12125
12126 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12127
12128         * optc-gen.awk: Warn if an option flag has multiple different
12129         help strings.
12130
12131 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
12132
12133         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12134         -floop-block): Document dependences on PPL, CLooG and Graphite.
12135
12136 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
12137
12138         PR rtl-optimization/323
12139         * c-common.c (c_fully_fold, convert_and_check,
12140         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12141         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12142         * c-common.def (EXCESS_PRECISION_EXPR): New.
12143         * c-cppbuiltin.c (builtin_define_float_constants): Define
12144         constants with enough digits for long double.
12145         * c-lex.c (interpret_float): Interpret constant with excess
12146         precision where appropriate.
12147         * c-opts.c (c_common_post_options): Set
12148         flag_excess_precision_cmdline.  Give an error for
12149         -fexcess-precision=standard for C++ for processors where the
12150         option is significant.
12151         * c-parser.c (c_parser_conditional_expression): Handle excess
12152         precision in condition.
12153         * c-typeck.c (convert_arguments): Handle arguments with excess
12154         precision.
12155         (build_unary_op): Move excess precision outside operation.
12156         (build_conditional_expr): Likewise.
12157         (build_compound_expr): Likewise.
12158         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12159         (build_modify_expr): Handle excess precision in RHS.
12160         (convert_for_assignment): Handle excess precision in converted
12161         value.
12162         (digest_init, output_init_element, process_init_element): Handle
12163         excess precision in initializer.
12164         (c_finish_return): Handle excess precision in return value.
12165         (build_binary_op): Handle excess precision in operands and add
12166         excess precision as needed for operation.
12167         * common.opt (-fexcess-precision=): New option.
12168         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12169         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12170         For standard excess precision, output explicit conversion to and
12171         truncation from XFmode.
12172         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12173         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12174         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12175         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12176         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12177         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12178         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12179         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12180         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12181         define_splits, sqrt<mode>2): Disable where appropriate for
12182         standard excess precision.
12183         * convert.c (convert_to_real): Do not shorten arithmetic to type
12184         for which excess precision would be used.
12185         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12186         * doc/invoke.texi (-fexcess-precision=): Document option.
12187         (-mfpmath=): Correct index entry.
12188         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12189         flag_excess_precision): New.
12190         * langhooks.c (lhd_post_options): Set
12191         flag_excess_precision_cmdline.
12192         * opts.c (common_handle_option): Handle -fexcess-precision=.
12193         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12194         init_excess_precision): New.
12195         (lang_dependent_init_target): Call init_excess_precision.
12196         * tree.c (excess_precision_type): New.
12197         * tree.h (excess_precision_type): Declare.
12198
12199 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
12200
12201         PR c/35235
12202         * c-typeck.c (build_component_ref): Do not copy qualifiers from
12203         non-lvalue to component.
12204
12205 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
12206
12207         PR preprocessor/34695
12208         * Makefile.in (c-opts.o): Depend on c-tree.h.
12209         * c-common.c: Move down include of diagnostic.h.
12210         (done_lexing, c_cpp_error): New.
12211         * c-common.h (done_lexing): Declare.
12212         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12213         (parse_in).
12214         * c-opts.c: Include c-tree.h.
12215         (c_common_init_options): Set preprocessor error callback.
12216         (c_common_handle_option): Do not set preprocessor
12217         inhibit_warnings, warnings_are_errors, warn_system_headers,
12218         pedantic_errors or inhibit_warnings flags.
12219         (c_common_post_options): Do not check cpp_errors (parse_in).
12220         (c_common_finish): Do not output dependencies if there were
12221         errors.  Do not check return value of cpp_finish.
12222         * c-ppoutput.c (pp_file_change): Set input_location.
12223         * c-tree.h (c_cpp_error): Declare.
12224         * diagnostic.c (diagnostic_set_info_translated): Also initialize
12225         override_column.
12226         (diagnostic_build_prefix): Check override_column.
12227         * diagnostic.h (diagnostic_info): Add override_column field.
12228         (diagnostic_override_column): Define.
12229
12230 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
12231
12232         * c-common.c (c_expand_expr, c_staticp): Remove.
12233         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12234         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12235         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12236         * c-gimplify.c (gimplify_compound_literal_expr,
12237         optimize_compound_literals_in_ctor): Remove.
12238         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12239         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12240         * c-semantics.c (emit_local_var): Remove.
12241
12242         * langhooks-def.h (lhd_expand_expr): Remove.
12243         * langhooks.c (lhd_expand_expr): Remove.
12244         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12245
12246         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12247         handling from c-semantics.c; don't call into langhook.
12248         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12249         * gimplify.c (gimplify_compound_literal_expr,
12250         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12251         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12252         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12253         as was done in c-gimplify.c.
12254         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12255         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12256         Move from c-common.h.
12257         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
12258
12259         * tree.c (staticp): Do not call langhook.
12260         * langhooks.c (lhd_staticp): Delete.
12261         * langhooks-def.h (lhd_staticp): Delete prototype.
12262         (LANG_HOOKS_STATICP): Delete.
12263         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12264
12265         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12266         instead of DECL_STMTs.
12267
12268 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
12269
12270         PR c/456
12271         PR c/5675
12272         PR c/19976
12273         PR c/29116
12274         PR c/31871
12275         PR c/35198
12276         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12277         void_type_node.
12278         (fold_call_expr): Return a NOP_EXPR from folding rather than the
12279         contained expression.
12280         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
12281         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
12282         conditional expressions for C.
12283         (decl_constant_value_for_optimization): Move from
12284         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
12285         whether optimizing and that the expression is a VAR_DECL not of
12286         array type instead of doing such checks in the caller.  Do not
12287         check pedantic.  Call gcc_unreachable for C++.
12288         * c-common.def (C_MAYBE_CONST_EXPR): New.
12289         * c-common.h (c_fully_fold, c_save_expr,
12290         decl_constant_value_for_optimization): New prototypes.
12291         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12292         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12293         EXPR_INT_CONST_OPERANDS): Define.
12294         * c-convert.c (convert): Strip nops from expression.
12295         * c-decl.c (groktypename): Take extra parameters expr and
12296         expr_const_operands.  Update call to grokdeclarator.
12297         (start_decl): Update call to grokdeclarator.  Add statement for
12298         expressions used in type of decl.
12299         (grokparm): Update call to grokdeclarator.
12300         (push_parm_decl): Update call to grokdeclarator.
12301         (build_compound_literal): Add parameter non_const and build a
12302         C_MAYBE_COSNT_EXPR if applicable.
12303         (grokdeclarator): Take extra parameters expr and
12304         expr_const_operands.  Track expressions used in declaration
12305         specifiers and declarators.  Fold array sizes and track whether
12306         they are constant expressions and whether they are integer
12307         constant expressions.
12308         (parser_xref_tag): Set expr and expr_const_operands fields in
12309         return value.
12310         (grokfield): Update call to grokdeclarator.
12311         (start_function): Update call to grokdeclarator.
12312         (build_null_declspecs): Set expr and expr_const_operands fields in
12313         return value.
12314         (declspecs_add_type): Handle expressions in typeof specifiers.
12315         * c-parser.c (c_parser_declspecs): Set expr and
12316         expr_const_operands fields for declaration specifiers.
12317         (c_parser_enum_specifier): Likewise.
12318         (c_parser_struct_or_union_specifier): Likewise.
12319         (c_parser_typeof_specifier): Likewise.  Update call to
12320         groktypename.  Fold expression as needed.  Return expressions with
12321         type instead of adding statements.
12322         (c_parser_attributes): Update calls to c_parser_expr_list.
12323         (c_parser_statement_after_labels): Fold expression before passing
12324         to objc_build_throw_stmt.
12325         (c_parser_condition): Fold expression.
12326         (c_parser_asm_operands): Fold expression.
12327         (c_parser_conditional_expression): Use c_save_expr.  Update call
12328         to build_conditional_expr.
12329         (c_parser_alignof_expression): Update call to groktypename.
12330         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12331         original_code.  Fold expression argument of va_arg.  Create
12332         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12333         argument to va_arg.  Update calls to groktypename.  Fold array
12334         index for offsetof.  Verify that first argument to
12335         __builtin_choose_expr has integer type.
12336         (c_parser_postfix_expression_after_paren_type): Update calls to
12337         groktypename and build_compound_literal.  Handle expressions with
12338         side effects in type name.
12339         (c_parser_postfix_expression_after_primary): Update call to
12340         c_parser_expr_list.  Set original_code for calls to
12341         __builtin_constant_p.
12342         (c_parser_expr_list): Take extra parameter fold_p.  Fold
12343         expressions if requested.
12344         (c_parser_objc_type_name): Update call to groktypename.
12345         (c_parser_objc_synchronized_statement): Fold expression.
12346         (c_parser_objc_receiver): Fold expression.
12347         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
12348         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
12349         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
12350         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
12351         (struct c_typespec): Add elements expr and expr_const_operands.
12352         (struct c_declspecs): Add elements expr and expr_const_operands.
12353         (groktypename, build_conditional_expr, build_compound_literal):
12354         Update prototypes.
12355         (in_late_binary_op): Declare.
12356         * c-typeck.c (note_integer_operands): New function.
12357         (in_late_binary_op): New variable.
12358         (decl_constant_value_for_broken_optimization): Move to c-common.c
12359         and rename to decl_constant_value_for_optimization.
12360         (default_function_array_conversion): Do not strip nops.
12361         (default_conversion): Do not call
12362         decl_constant_value_for_broken_optimization.
12363         (build_array_ref): Do not fold result.
12364         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
12365         result when operand is a VLA.
12366         (c_expr_sizeof_type): Update call to groktypename.  Handle
12367         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
12368         result when operand names a VLA type.
12369         (build_function_call): Update call to build_compound_literal.
12370         Only fold result for calls to __builtin_* functions.  Strip
12371         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
12372         the function designator.
12373         (convert_arguments): Fold arguments.  Update call to
12374         convert_for_assignment.
12375         (build_unary_op): Handle increment and decrement of
12376         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
12377         decrement earlier.  Fold operand of increment and decrement.
12378         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
12379         built for integer operand.  Wrap returns that are INTEGER_CSTs
12380         without being integer constant expressions or that have integer
12381         constant operands without being INTEGER_CSTs.
12382         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
12383         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
12384         result is an integer constant expression or can be used in
12385         unevaluated parts of one and avoid folding and wrap as
12386         appropriate.  Fold operands before possibly doing -Wsign-compare
12387         warnings.
12388         (build_compound_expr): Wrap result for C99 if operands can be used
12389         in integer constant expressions.
12390         (build_c_cast): Update call to digest_init.  Do not ignore
12391         overflow from casting floating-point constants to integers.  Wrap
12392         results that could be confused with integer constant expressions,
12393         null pointer constants or floating-point constants.
12394         (c_cast_expr): Update call to groktypename.  Handle expressions
12395         included in type name.
12396         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
12397         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
12398         Update calls to convert_for_assignment.
12399         (convert_for_assignment): Take new parameter
12400         null_pointer_constant.  Do not strip nops or call
12401         decl_constant_value_for_broken_optimization.  Set
12402         in_late_binary_op for conversions to boolean.
12403         (store_init_value): Update call to digest_init.
12404         (digest_init): Take new parameter null_pointer_constant.  Do not
12405         call decl_constant_value_for_broken_optimization.  pedwarn for
12406         initializers not constant expressions.  Update calls to
12407         convert_for_assignment.
12408         (constructor_nonconst): New.
12409         (struct constructor_stack): Add nonconst element.
12410         (really_start_incremental_init, push_init_level, pop_init_level):
12411         Handle constructor_nonconst and nonconst element.
12412         (set_init_index): Call constant_expression_warning for array
12413         designators.
12414         (output_init_element): Fold value.  Set constructor_nonconst as
12415         applicable.  pedwarn for initializers not constant expressions.
12416         Update call to digest_init.  Call constant_expression_warning
12417         where constant initializers are required.
12418         (process_init_element): Use c_save_expr.
12419         (c_finish_goto_ptr): Fold expression.
12420         (c_finish_return): Fold return value.  Update call to
12421         convert_for_assignment.
12422         (c_start_case): Fold switch expression.
12423         (c_process_expr_stmt): Fold expression.
12424         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
12425         ensure statement expression is not evaluated in constant expression.
12426         (build_binary_op): Track whether results are integer constant
12427         expressions or may occur in such, disable folding and wrap results
12428         as applicable.  Fold operands for -Wsign-compare warnings unless
12429         in_late_binary_op.
12430         (c_objc_common_truthvalue_conversion): Handle results folded to
12431         integer constants that are not integer constant expressions.
12432         * doc/extend.texi: Document when typeof operands are evaluated,
12433         that condition of __builtin_choose_expr is an integer constant
12434         expression, and more about use of __builtin_constant_p in
12435         initializers.
12436
12437 2009-03-29  Richard Guenther  <rguenther@suse.de>
12438
12439         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
12440         propagate addresses of array references.
12441
12442 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
12443
12444         * regmove.c (perhaps_ends_bb_p): Remove.
12445         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
12446         from INSN and check that the main loop stays within that basic block.
12447         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
12448         (regmove_forward_pass): Split out from regmove_optimize.  Use
12449         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
12450         (regmove_backward_pass): Split out from regmove_optimize.  Use
12451         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
12452         (regmove_optimize): Simplify.
12453
12454 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
12455
12456         PR target/39545
12457         * config/i386/i386.c (classify_argument): Ignore flexible array
12458         member in struct and warn ABI change.
12459
12460 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
12461
12462         * config/i386/i386-protos.h (ix86_agi_dependent): New.
12463
12464         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
12465         (ix86_adjust_cost): Updated.
12466
12467 2009-03-29  Jan Hubicka  <jh@suse.cz>
12468
12469         PR middle-end/28850
12470         * tree-pass.h (pass_cleanup_eh): New function.
12471         (remove_unreachable_regions): Break code handling RTL
12472         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
12473         that can not be reached by runtime.
12474         (can_be_reached_by_runtime): New function.
12475         (label_to_region_map): New function.
12476         (num_eh_regions): New function.
12477         (rtl_remove_unreachable_regions): New function.
12478         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
12479         (remove_eh_region): New function.
12480         * except.h: Include sbitmap and vecprim.
12481         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
12482         num_eh_regions): Declare.
12483         * passes.c (init_optimization_passes): Schedule cleanup_eh.
12484         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
12485         * tree-eh.c (tree_remove_unreachable_handlers): New function.
12486         (tree_empty_eh_handler_p): New function.
12487         (cleanup_empty_eh): New function.
12488         (cleanup_eh): New function.
12489         (pass_cleanup_eh): New function.
12490
12491 2009-03-29  Jan Hubicka  <jh@suse.cz>
12492
12493         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
12494         for removed regions.
12495
12496 2009-03-29  Jan Hubicka  <jh@suse.cz>
12497
12498         * except.c (dump_eh_tree): Dump all datastructures.
12499
12500 2009-03-29  Jan Hubicka  <jh@suse.cz>
12501
12502         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
12503         (duplicate_eh_regions_1): Likewise.
12504         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
12505         vector; call EH verification.
12506         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12507         Be ready for region being removed.
12508
12509 2009-03-29  Jan Hubicka  <jh@suse.cz>
12510
12511         * bitmap.c (bitmap_last_set_bit): New function.
12512         * bitmap.h (bitmap_last_set_bit): Declare.
12513
12514 2009-03-29  David Ayers  <ayers@fsfe.org>
12515
12516         PR objc/27377
12517         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
12518         by calling objc_compare_types and surpress warnings about
12519         incompatible C pointers that are compatible ObjC pointers.
12520
12521 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
12522
12523         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
12524         call initialize_inline_failed.
12525         (initialize_inline_failed): Move it from here ...
12526         * cgraph.c (initialize_inline_failed): ... to here.
12527         (cgraph_create_edge): Call initialize_inline_failed rather than
12528         setting inline_failed directly.
12529
12530 2009-03-29  Ben Elliston  <bje@au.ibm.com>
12531
12532         PR target/32542
12533         * sysv4.opt (msdata): Improve comment.
12534         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
12535         * sysv4.h (SVR4_ASM_SPEC): Likewise.
12536
12537 2009-03-29  Ben Elliston  <bje@au.ibm.com>
12538
12539         PR target/30451
12540         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
12541         load and store attributes.
12542
12543 2009-03-29  Ben Elliston  <bje@au.ibm.com>
12544
12545         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
12546         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
12547         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
12548         * doc/extend.texi (X86 Built-in Functions): Add index entries for
12549         __builtin_infq and __builtin_huge_valq.
12550
12551 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
12552
12553         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
12554         atmega8m1 devices.
12555         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12556         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
12557
12558 2009-03-28  Xinliang David Li  <davidxl@google.com>
12559
12560         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
12561         (do_dbg_cnt): New function.
12562
12563 2009-03-28  Jan Hubicka  <jh@suse.cz>
12564
12565         Merge from pretty-ipa:
12566
12567         2009-03-27  Jan Hubicka  <jh@suse.cz>
12568
12569         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12570         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
12571         * passes.c (function_called_by_processed_nodes_p): New.
12572         * ipa-pure-const.c (check_call): Fix handling of operands.
12573         (analyze_function): Dump debug output for skipped bodies.
12574         (local_pure_const): Use function_called_by_processed_nodes_p.
12575         * dwarf2out.c (reference_to_unused): Use output.
12576         * passes.c (do_per_function_toporder): Likewise.
12577
12578         2008-11-12  Jan Hubicka  <jh@suse.cz>
12579
12580         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12581         * ipa-pure-const.c (funct_state_d): Add can throw field; make
12582         state_set_in_source enum
12583         (check_decl): Ignore memory tags; do not set fake looping flags;
12584         dump diagnostics.
12585         (check_operand, check_tree, check_rhs_var, check_lhs_var,
12586         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12587         (check_call, analyze_function): Rewrite.
12588         (check_stmt): New.
12589         (add_new_function): Update call of analyze_function.
12590         (generate_summary): Add call of analyze_function.
12591         (propagate): Propagate can_throw; handle state_set_in_source correctly.
12592         (local_pure_const): New function.
12593         (pass_local_pure_const): New pass.
12594         * ipa-inline.c (inline_transform): Set after_inlining.
12595         * tree-eh.c (stmt_can_throw_external): New.
12596         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12597         work with aliasing built.
12598         * tree-flow.h (stmt_can_throw_external): New.
12599         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12600         and local pure/const pass in early and late optimization queue.
12601
12602 2009-03-28  Martin Jambor  <mjambor@suse.cz>
12603
12604         * fold-const.c (get_pointer_modulus_and_residue): New parameter
12605         allow_func_align.
12606         (fold_binary): Allow function decl aligment consideration is the
12607         second argument is integer constant one.
12608         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12609         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12610         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12611
12612 2009-03-28  Jan Hubicka  <jh@suse.cz>
12613
12614         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12615         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12616         * function.h (rtl_data): Add nothrow flag.
12617         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12618         set DECL_NOTHROW for AVAILABLE functions.
12619
12620 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
12621
12622         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12623         following vector keyword has expansion starting with pixel or bool
12624         keyword, expand vector to __vector and pixel or bool to __pixel or
12625         __bool.
12626
12627         PR c++/39554
12628         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12629         warn_if_disallowed_function_p): Removed.
12630         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12631         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12632         warning_if_disallowed_function_p.
12633         * flags.h (warn_if_disallowed_function_p,
12634         warn_disallowed_functions): Removed.
12635         * common.opt (Wdisallowed-function-list=): Removed.
12636         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12637
12638 2009-03-28  Richard Guenther  <rguenther@suse.de>
12639
12640         PR tree-optimization/38723
12641         * tree-ssa-pre.c (compute_avail): Add all default definitions to
12642         the entry block.
12643
12644 2009-03-28  Jan Hubicka  <jh@suse.cz>
12645
12646         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12647         test introduced by my previous patch.
12648
12649 2009-03-28  Richard Guenther  <rguenther@suse.de>
12650
12651         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12652         the PHIs value undefined.
12653
12654 2009-03-28  Jan Hubicka  <jh@suse.cz>
12655
12656         * tree-pass.h (pass_fixup_cfg): New pass.
12657         * ipa-inline.c (inline_transform): Set
12658         always_inline_functions_inlined/after_inlining.
12659         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12660         (pass_fixup_cfg): New pass.
12661         * passes.c (init_optimization_passes): Add fixup_cfg.
12662
12663 2009-03-28  Richard Guenther  <rguenther@suse.de>
12664
12665         PR tree-optimization/38458
12666         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12667         argument use the arguments copy-of value.
12668
12669 2009-03-28  Richard Guenther  <rguenther@suse.de>
12670
12671         PR tree-optimization/38180
12672         * tree-ssa-ccp.c (get_default_value): Simplify.
12673         (likely_value): Likewise.
12674         (surely_varying_stmt_p): Properly handle VOP case.
12675         (ccp_initialize): Likewise.
12676         (ccp_fold): Handle propagating through *&.
12677         (fold_const_aggregate_ref): Also handle decls.
12678
12679 2009-03-28  Jan Hubicka  <jh@suse.cz>
12680
12681         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12682         * cgraph.h (cgraph_node): Likewise.
12683         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12684         (cgraph_reset_node): Use process flag.
12685         (cgraph_mark_functions_to_output): Likewise.
12686         (cgraph_expand_function): Likewise.
12687         (cgraph_expand_all_functions): Likewise.
12688         (cgraph_output_in_order): Likewise.
12689         * dwarf2out.c (reference_to_unused): Likewise.
12690         * passes.c do_per_function_toporder): Likewise.
12691
12692 2009-03-28  Jan Hubicka  <jh@suse.cz>
12693
12694         Bring from lto-branch:
12695
12696         2008-09-03  Doug Kwan  <dougkwan@google.com>
12697
12698         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12699         enums instead of reason strings.
12700         * cgraph.c (cgraph_create_edge): Same.
12701         (cgraph_inline_failed_string): New function.
12702         * cgraph.h (cgraph_inline_failed_t): New enum type.
12703         (cgraph_inline_failed_string): New prototype.
12704         (struct cgraph_edge): Change type of INLINED_FAILED from constant
12705         char pointer to cgraph_inline_failed_t.
12706         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12707         (cgraph_default_inline_p): Ditto.
12708         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
12709         to cgraph_inline_failed_t pointer.
12710         * cif-code.def: New file.
12711         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12712         reason string.
12713         (cgraph_check_inline_limits): Change type of REASON to pointer to
12714         cgraph_inline_failed_t.  Replace reason strings with enums.
12715         (cgraph_default_inline_p): Ditto.
12716         (cgraph_recursive_inlining_p): Ditto.
12717         (update_caller_keys): Change type of FAILED_REASON to
12718         cgraph_inline_failed_t.
12719         (cgraph_set_inline_failed): Change type of REASON to pointer to
12720         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
12721         convert enums to strings for text output.
12722         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12723         to be of type cgraph_inline_failed_t.  Replace reason strings with
12724         enums.  Call cgraph_inline_failed_string to covert enums
12725         to strings for text output.
12726         (cgraph_decide_inlining): Replace reason strings with enums.
12727         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12728         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
12729         for text output.
12730         * tree-inline.c (expand_call_inline): Change type of REASON
12731         to cgraph_inline_failed_t.  Replace reason strings with enums.
12732         Call cgraph_inline_failed_string for text output.
12733         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12734         (cgraph.o): Ditto.
12735
12736 2009-03-28  Jan Hubicka  <jh@suse.cz>
12737
12738         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12739         cgraph_clone_node): Remove master clone handling.
12740         (cgraph_is_master_clone, cgraph_master_clone): Remove.
12741         * cgraph.h (master_clone): Remove.
12742         (cgraph_is_master_clone, cgraph_master_clone): Remove.
12743         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12744         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12745
12746 2009-03-28  Jan Hubicka  <jh@suse.cz>
12747
12748         * cgraph.c (cgraph_function_body_availability): Functions declared
12749         inline are always safe to assume that it is not going to be replaced.
12750
12751 2009-03-28  Richard Guenther  <rguenther@suse.de>
12752
12753         PR tree-optimization/38513
12754         * tree-ssa-pre.c (eliminate): Remove redundant stores.
12755         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12756         EXC_PTR_EXPR and FILTER_EXPR.
12757         (get_ref_from_reference_ops): Likewise.
12758
12759 2009-03-28  Richard Guenther  <rguenther@suse.de>
12760
12761         PR tree-optimization/38968
12762         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12763         Use FLOOR_MOD_EXPR to compute misalignment.
12764
12765 2009-03-28  Richard Guenther  <rguenther@suse.de>
12766
12767         PR tree-optimization/37795
12768         * tree.h (combine_comparisons): Declare.
12769         * fold-const.c (combine_comparisons): Export.
12770         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12771         comparisons.
12772         (ifcombine_iforif): Use combine_comparisons.
12773
12774 2009-03-28  Jan Hubicka  <jh@suse.cz>
12775
12776         * tree-eh.c (inlinable_call_p): New function.
12777         (make_eh_edges): Use it.
12778         (verify_eh_edges): Use it.
12779         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12780         * except.c (reachable_next_level): Add inlinable_function argument
12781         (sjlj_find_directly_reachable_regions): Update.
12782         (add_reachable_handler): Do not set saw_any_handlers.
12783         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12784         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12785         Add new inlinable call parameter.
12786         (can_throw_internal, can_throw_external): Update.
12787         * except.h (can_throw_internal_1, can_throw_external_1,
12788         foreach_reachable_handler): Update declaration.
12789
12790 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
12791
12792         * config/arm/t-arm-coff, config/h8300/coff.h,
12793         config/i386/i386-aout.h, config/i386/i386-coff.h,
12794         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12795         config/pdp11/2bsd.h, config/rs6000/aix41.h,
12796         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12797         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12798         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12799         sys-types.h: Remove.
12800         * Makefile.in: Remove protoize and fixproto support and references
12801         in comments.
12802         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12803         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12804         Remove.
12805         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12806         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12807         unprotoize$(exeext).
12808         (rest.encap): Don't depend on $(STMP_FIXPROTO)
12809         (.PHONY): Don't depend on proto.
12810         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12811         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12812         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12813         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12814         build/gen-protos.o, build/scan.o, xsys-protos.h,
12815         build/fix-header$(build_exeext), build/fix-header.o,
12816         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12817         stmp-install-fixproto): Remove.
12818         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12819         SYSCALLS.c or fixproto files.
12820         (install-common): Don't install protoize.
12821         (install-headers-tar, install-headers-cpio, install-headers-cp):
12822         Don't depend on $(STMP_FIXPROTO).
12823         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
12824         install fixproto files or write out fixproto settings.
12825         (uninstall): Don't uninstall protoize.
12826         * config.gcc (use_fixproto): Remove.
12827         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12828         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12829         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12830         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12831         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12832         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12833         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12834         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12835         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12836         * config/t-vxworks (STMP_FIXPROTO): Remove.
12837         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12838         STMP_FIXPROTO): Remove.
12839         * config.in, configure: Regenerate.
12840         * crtstuff.c (gid_t, uid_t): Don't undefine.
12841         * doc/install.texi: Change m68k-coff to m68k-elf in example.
12842         (arm-*-coff, arm-*-aout: Remove target entries.
12843         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12844         Remove mention of AIX 4.1.
12845         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12846         * doc/invoke.texi (Running Protoize): Remove.
12847         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12848         (Protoize Caveats): Remove.
12849         * tsystem.h: Update comments on headers assumed to exist.
12850
12851 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
12852
12853         * genautomata.c: Add a new year to the copyright.  Add a new
12854         reference.
12855         (struct insn_reserv_decl): Add comments for member bypass_list.
12856         (find_bypass): Remove.
12857         (insert_bypass): New.
12858         (process_decls): Use insert_bypass.
12859         (output_internal_insn_latency_func): Output all bypasses with the
12860         same input insn in one switch case.
12861
12862         * rtl.def (define_bypass): Describe bypass choice.
12863         * doc/md.texi (define_bypass): Ditto.
12864
12865 2009-03-27  Richard Guenther  <rguenther@suse.de>
12866
12867         * gimplify.c (mark_addressable): Export.
12868         * tree-flow.h (mark_addressable): Declare.
12869         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12870         * tree-ssa.c (verify_phi_args): Verify that address taken
12871         variables have TREE_ADDRESSABLE set.
12872
12873 2009-03-27  Richard Guenther  <rguenther@suse.de>
12874
12875         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12876         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
12877         Do not mark decls TREE_ADDRESSABLE.
12878         (build_fold_addr_expr): Adjust.
12879         (fold_addr_expr): Remove.
12880         (fold_unary): Use build_fold_addr_expr.
12881         (fold_comparison): Likewise.
12882         (split_address_to_core_and_offset): Likewise.
12883         * coverage.c (tree_coverage_counter_addr): Mark the array decl
12884         TREE_ADDRESSABLE.
12885         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12886         (gimplify_modify_expr_to_memcpy): Mark source and destination
12887         addressable.
12888         * omp-low.c (create_omp_child_function): Mark the object decl
12889         TREE_ADDRESSABLE.
12890         (lower_rec_input_clauses): Mark the var we take the address of
12891         TREE_ADDRESSABLE.
12892         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12893
12894 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12895
12896         PR middle-end/39315
12897         * cfgexpand.c (expand_one_stack_var_at): Change alignment
12898         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12899
12900 2009-03-27  Richard Guenther  <rguenther@suse.de>
12901
12902         PR tree-optimization/39120
12903         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12904         constraints.
12905         (handle_lhs_call): Process return constraints.  Add escape
12906         constraints if necessary.
12907         (handle_const_call): Fill out return constraints.  Make nested
12908         case more precise.  Avoid consttmp if possible.
12909         (handle_pure_call): Fill out return constraints.  Avoid
12910         callused if possible.
12911         (find_func_aliases): Simplify call handling.
12912
12913 2009-03-27  Richard Guenther  <rguenther@suse.de>
12914
12915         PR tree-optimization/39120
12916         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12917         as a representative.
12918         (solve_graph): Do propagate CALLUSED.
12919         (handle_pure_call): Use a scalar constraint from CALLUSED for
12920         the return value.
12921         (find_what_p_points_to): CALLUSED shall not appear in poins-to
12922         solutions.
12923
12924 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12925
12926         PR c/39323
12927         * c-common.c (handle_aligned_attribute): Properly check alignment
12928         overflow.  Use (1U << i) instead of (1 << i).
12929
12930         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
12931
12932         * expr.h (get_mem_align_offset): Updated.
12933
12934         * tree.h (tree_decl_common): Change align to "unsigned int" and
12935         move it before pointer_alias_set.
12936
12937 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12938             Jakub Jelinek  <jakub@redhat.com>
12939
12940         PR target/38034
12941         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12942         gr_register_operand with gr_reg_or_0_operand.
12943         (cmpxchg_rel_di): Likewise.
12944         (sync_lock_test_and_set<mode>): Likewise.
12945
12946 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12947
12948         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12949         (true_regnum): Likewise.
12950
12951         * rtlanal.c (subreg_info): Moved to ...
12952         * rtl.h (subreg_info): Here.  New.
12953         (subreg_get_info): New.
12954
12955         * rtlanal.c (subreg_get_info): Make it extern.
12956
12957 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12958
12959         PR target/39472
12960         * config/i386/i386.c (ix86_abi): New.
12961         (override_options): Handle -mabi=.
12962         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
12963         (ix86_call_abi_override): Likewise.
12964         (init_cumulative_args): Likewise.
12965         (function_arg_advance): Likewise.
12966         (function_arg_64): Likewise.
12967         (function_arg): Likewise.
12968         (ix86_pass_by_reference): Likewise.
12969         (ix86_function_value_regno_p): Likewise.
12970         (ix86_build_builtin_va_list_abi): Likewise.
12971         (setup_incoming_varargs_64): Likewise.
12972         (is_va_list_char_pointer): Likewise.
12973         (ix86_init_machine_status): Likewise.
12974         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
12975         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
12976         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
12977         (ix86_function_abi): Make it static and return enum calling_abi.
12978         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
12979         with ix86_abi.
12980         (ix86_fn_abi_va_list): Updated.
12981
12982         * config/i386/i386.h (ix86_abi): New.
12983         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12984         (CONDITIONAL_REGISTER_USAGE): Likewise.
12985         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12986         (machine_function): Likewise.
12987
12988         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12989         with ix86_abi.
12990         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12991         (STACK_BOUNDARY): Likewise.
12992         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12993
12994         * config/i386/i386.opt (mabi=): New.
12995
12996         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12997         return enum calling_abi.
12998         (ix86_function_type_abi): Likewise.
12999         (ix86_function_abi): Removed.
13000
13001         * doc/invoke.texi: Document -mabi= option for x86.
13002
13003 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13004
13005         * builtins.c (real_dconstp): Delete.
13006         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13007
13008 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
13009             Jakub Jelinek  <jakub@redhat.com>
13010
13011         PR debug/37959
13012         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13013         (gen_subprogram_die): When a function is explicit, generate the
13014         DW_AT_explicit attribute.
13015         * langhooks.h (struct lang_hooks_for_decls): Add
13016         function_decl_explicit_p langhook.
13017         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13018         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13019
13020 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
13021
13022         * builtins.c (fold_builtin_memory_op): Optimize memmove
13023         into memcpy if we can prove source and destination don't overlap.
13024
13025         * tree-inline.c: Include gt-tree-inline.h.
13026         (clone_fn_id_num): New variable.
13027         (clone_function_name): New function.
13028         (tree_function_versioning): Use it.
13029         * Makefile.in (GTFILES): Add tree-inline.c.
13030
13031 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
13032
13033         * BASE-VER: Change to 4.5.0.
13034
13035 2009-03-27  Xinliang David Li  <davidxl@google.com>
13036
13037         PR tree-optimization/39557
13038         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13039
13040 2009-03-27  Xinliang David Li  <davidxl@google.com>
13041
13042         PR tree-optimization/39548
13043         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
13044         candidate check.
13045
13046 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13047
13048         * c-common.c (pointer_int_sum): Use %wd on return from
13049         tree_low_cst.
13050
13051 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13052
13053         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13054         on return from tree_low_cst.
13055
13056 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13057
13058         PR c++/36799
13059         * ginclude/stdarg.h (va_copy): Define also for
13060         __GXX_EXPERIMENTAL_CXX0X__.
13061
13062 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13063
13064         PR c++/35652
13065         * builtins.h (c_strlen): Do not warn here.
13066         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13067         * c-common.c (pointer_int_sum): Take an explicit location.
13068         Warn about offsets out of bounds.
13069         * c-common.h (pointer_int_sum): Adjust declaration.
13070
13071 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13072
13073         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13074         markup glitch.
13075
13076 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
13077
13078         PR c++/39554
13079         * opts.c (warn_if_disallowed_function_p): Don't assume
13080         get_callee_fndecl must return non-NULL.
13081
13082 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
13083
13084         PR rtl-optimization/39522
13085         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13086         when reg_reloaded_valid is set.
13087
13088 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13089
13090         * config/spu/divv2df3.c: New file.
13091         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13092         (DPBIT_FUNCS): Filter out _div_df.
13093
13094 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
13095
13096         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13097         a jump insn, count that jump in the distance to the loop start.
13098
13099 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
13100
13101         PR target/39523
13102         * config/sh/sh.c (calc_live_regs): Fix condition for global
13103         registers except PIC_OFFSET_TABLE_REGNUM.
13104
13105 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
13106
13107         PR/39518
13108         * doc/invoke.texi (-mconsole): New.
13109         (-mcygwin): New.
13110         (-mno-cygwin): New.
13111         (-mdll): New.
13112         (-mnop-fun-dllimport): New.
13113         (-mthread): New.
13114         (-mwin32): New.
13115         (-mwindows): New.
13116         (sub section "i386 and x86-64 Windows Options"): New.
13117
13118 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
13119
13120         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13121         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13122
13123 2009-03-25  Richard Guenther  <rguenther@suse.de>
13124
13125         PR middle-end/39497
13126         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13127         of -Wno-error.
13128
13129 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
13130
13131         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13132         neither of haifa/selective schedulers are working.
13133
13134 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13135
13136         * doc/invoke.texi (Debugging Options): Fix description of
13137         -fno-merge-debug-strings.
13138
13139 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
13140
13141         * config/cris/libgcc.ver: New version-script.
13142         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13143
13144         * configure.ac <GAS features, nop mnemonic>: Add pattern
13145         crisv32-*-* for "nop".
13146         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
13147         * configure: Regenerate.
13148
13149 2009-03-24  Ira Rosen  <irar@il.ibm.com>
13150
13151         PR tree-optimization/39529
13152         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13153         mark_sym_for_renaming for the tag copied to the new vector
13154         pointer.
13155
13156 2009-03-24  Arthur Loiret  <aloiret@debian.org>
13157
13158         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
13159         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13160         EXTRA_SPEC_FUNCTIONS.
13161         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13162         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13163         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13164         -march and -mtune options.
13165
13166 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
13167
13168         * config/m68k/t-rtems: Add m5329 multilib.
13169
13170 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
13171             Jakub Jelinek  <jakub@redhat.com>
13172
13173         PR debug/39524
13174         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13175         nodes.
13176
13177 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
13178
13179         PR c/39495
13180         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13181         instead of c_parser_expression_conv, if original_code isn't one of the
13182         4 allowed comparison codes, fail.
13183
13184 2009-03-23  Richard Guenther  <rguenther@suse.de>
13185
13186         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13187         * tree.h (struct tree_type): Likewise.
13188         * reload.h (struct insn_chain): Likewise.
13189         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13190         * function.h (struct function): Likewise.
13191         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13192
13193 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
13194
13195         PR tree-optimization/39516
13196         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13197
13198 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
13199
13200         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
13201         should be set true if BITS_PER_WORD of target is bigger than 32
13202
13203 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
13204
13205         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13206         Translate -B-options to -rpath-link.  Correct existing
13207         rpath-link and conditionalize on !nostdlib.
13208
13209 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13210
13211         * doc/extend.texi (Function Attributes, Variable Attributes):
13212         Fix typos.
13213         * doc/invoke.texi (Debugging Options, Optimize Options)
13214         (i386 and x86-64 Options, MCore Options): Likewise.
13215
13216 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
13217
13218         PR debug/37890
13219         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13220         it for block local namespace aliases.
13221         (gen_decl_die): Pass context_die to gen_namespace_die.
13222
13223 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
13224
13225         PR c/39495
13226         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13227         minimum or maximum value.
13228
13229 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
13230
13231         * reginfo.c (globalize_reg): Recompute derived reg sets.
13232
13233 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
13234
13235         PR target/39063
13236         * libgcc2.c (mprotect): Do not use signed arguments for
13237         VirtualProtect, use DWORD arguments.  Also fix the 'may
13238         be used uninitialized' warning for the np variable.
13239
13240 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
13241
13242         PR target/39496
13243         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13244         functions using regparm calling conventions when not optimizing.
13245         (ix86_function_sseregparm): Similarly for sseregparm calling
13246         conventions.
13247
13248 2009-03-19  Li Feng  <nemokingdom@gmail.com>
13249
13250         PR middle-end/39500
13251         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13252         dependence if the first conflict is after niter iterations.
13253
13254 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
13255
13256         PR middle-end/38609
13257         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13258         functions with dynamic stack-pointer adjustments.
13259
13260 2009-03-19  Ben Elliston  <bje@au.ibm.com>
13261
13262         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13263         option; change to -msdata=data.
13264
13265 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13266
13267         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13268         and -fopenmp.
13269
13270 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
13271
13272         PR target/35180
13273         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13274
13275 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
13276
13277         * doc/invoke.texi (Code Gen Options): Expand discussion of
13278         -fno-common.
13279
13280 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
13281
13282         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13283         * matrix-reorg.c (struct matrix_info): Likewise.
13284         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13285         * rtl.h (struct mem_attrs): Likewise.
13286         * df.h (struct df): Likewise.
13287         * tree-data-ref.h (struct data_dependence_relation): Likewise.
13288         * ira-int.h (struct ira_allocno): Likewise.
13289         * df-scan.c (struct df_collection_rec): Likewise.
13290         * ira.c (struct equivalence): Likewise.
13291         * function.c (struct temp_slot): Likewise.
13292         * cfgloop.h (struct loop): Likewise.
13293
13294         PR debug/39485
13295         * function.c (use_register_for_decl): When not optimizing, disregard
13296         register keyword for variables with types containing methods.
13297
13298 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
13299
13300         PR middle-end/39447
13301         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13302         (is_simple_operand): Call contains_component_ref_p before calling data
13303         reference analysis that would fail on COMPONENT_REFs.
13304
13305         * tree-vrp.c (search_for_addr_array): Fix formatting.
13306
13307 2009-03-18  Richard Guenther  <rguenther@suse.de>
13308
13309         * tree-vect-transform.c (vect_loop_versioning): Fold the
13310         generated comparisons.
13311         * tree-vectorizer.c (set_prologue_iterations): Likewise.
13312         (slpeel_tree_peel_loop_to_edge): Likewise.
13313
13314 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13315
13316         PR middle-end/37805
13317         * opts.c (print_specific_help): In addition to `undocumented',
13318         accept `separate' and `joined' flags if passed alone.  Describe
13319         output by the first matched one of those.
13320         (common_handle_option): Skip over empty strings.
13321         * gcc.c (display_help): Fix help string for `--help='.
13322         * doc/invoke.texi (Option Summary, Overall Options): With
13323         `--help=', classes and qualifiers can both be repeated, but
13324         only the latter can be negated.  One should not pass only
13325         negated qualifiers.  Fix markup and examples.
13326
13327         Revert
13328         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
13329         PR middle-end/37805
13330         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13331         and -fhelp=separate.
13332
13333 2009-03-17  Jing Yu  <jingyu@google.com>
13334
13335         PR middle-end/39378
13336         * function.h (struct rtl_data): Move is_thunk from here...
13337         (struct function): ...to here.
13338         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
13339         * varasm.c (assemble_start_function): Change is_thunk from crtl to
13340         cfun.
13341         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13342         cfun.
13343         (alpha_does_function_need_gp, alpha_start_function): Likewise.
13344         (alpha_output_function_end_prologue): Likewise.
13345         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
13346         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
13347         (rs6000_output_function_epilogue): Likewise.
13348         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
13349
13350 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
13351
13352         PR target/39482
13353         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
13354         from different units in a single alternative.
13355         (*truncdfsf_i387): Ditto.
13356         (*truncxfsf2_mixed): Ditto.
13357         (*truncxfdf2_mixed): Ditto.
13358
13359 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
13360
13361         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
13362         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
13363
13364         PR debug/39474
13365         * tree-ssa-live.c (remove_unused_locals): Don't remove local
13366         unused non-artificial variables when not optimizing.
13367
13368         PR debug/39471
13369         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
13370         DW_TAG_imported_module even if decl is IMPORTED_DECL with
13371         NAMESPACE_DECL in its DECL_INITIAL.
13372
13373         PR middle-end/39443
13374         * optabs.c (set_user_assembler_libfunc): New function.
13375         * expr.h (set_user_assembler_libfunc): New prototype.
13376         * c-common.c: Include libfuncs.h.
13377         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
13378         for memcmp, memset, memcpy, memmove and abort.
13379         * Makefile.in (c-common.o): Depend on libfuncs.h.
13380
13381         PR debug/39412
13382         * dwarf2out.c (gen_inlined_enumeration_type_die,
13383         gen_inlined_structure_type_die, gen_inlined_union_type_die,
13384         gen_tagged_type_instantiation_die): Removed.
13385         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
13386         do nothing.
13387
13388 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
13389
13390         PR testsuite/38526
13391         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
13392         its use.
13393         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
13394         (check-parallel-%): Ditto.
13395         (check-consistency): Ditto.
13396
13397 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
13398
13399         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
13400         local variable rhs by NULL_TREE.
13401
13402 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
13403
13404         PR target/39477
13405         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
13406
13407 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
13408
13409         PR target/39476
13410         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
13411
13412 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
13413
13414         PR target/39473
13415         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
13416         for ms->sysv ABI calls only in 64bit mode.
13417
13418         * config/i386/i386.md (untyped_call): Support 32bit.
13419
13420 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
13421
13422         * doc/extend.texi: Replace x86_65 with x86_64.
13423
13424 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
13425
13426         PR tree-optimization/39455
13427         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
13428         mismatches for POINTER_TYPE_P (type).
13429         (number_of_iterations_le): Likewise.
13430
13431 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13432
13433         * config/picochip/picochip.c: Removed profiling support.
13434         * config/picochip/picochip.md: Removed profiling instruction.
13435         * config/picochip/picochip.h: Removed profiling builtin.
13436
13437 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
13438
13439         * doc/install.texi (--with-host-libstdcxx): Document.
13440
13441 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
13442
13443         PR target/34299
13444         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
13445         generate a warning if the function name does not begin with
13446         "__vector" and the function has either the 'signal' or 'interrupt'
13447         attribute, from here to ...
13448         (avr_declare_function_name): ...here. New function.
13449         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
13450         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
13451
13452 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
13453
13454         PR bootstrap/39454
13455         * cse.c (fold_rtx): Don't modify original const_arg1 when
13456         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
13457         separate variable instead.
13458         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
13459         from out of range shift counts.
13460         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
13461
13462 2009-03-13  Catherine Moore  <clm@codesourcery.com>
13463
13464         * config/i386/x-mingw32 (host-mingw32.o): Replace
13465         diagnostic.h with $(DIAGNOSTIC_H).
13466
13467 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
13468
13469         PR target/39431
13470         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
13471         predicate.
13472         * config/i386/sync.md (sync_compare_and_swap<mode>,
13473         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
13474         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
13475         into a register.
13476         (sync_double_compare_and_swapdi_pic,
13477         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
13478         cmpxchg8b_pic_memory_operand instead of just memory_operand.
13479
13480 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
13481
13482         PR target/39445
13483         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
13484
13485 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
13486
13487         PR target/39327
13488         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13489         (avx_addsubv4df3): Likewise.
13490         (*avx_addsubv4sf3): Likewise.
13491         (sse3_addsubv4sf3): Likewise.
13492
13493 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
13494
13495         PR target/38824
13496         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
13497
13498 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
13499
13500         PR debug/39432
13501         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
13502         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
13503         registers for allocnos created from user-defined variables.
13504
13505 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13506
13507         PR target/39181
13508         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
13509         of non-integer mode as well.
13510
13511 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
13512
13513         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
13514         for functions for which the parameter types are unknown.
13515
13516 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
13517
13518         PR target/39137
13519         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
13520         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
13521         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
13522         * config/i386/i386.c (ix86_local_alignment): For
13523         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
13524         long long variables on the stack to avoid dynamic realignment.
13525         Allow the first argument to be a decl rather than type.
13526         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
13527
13528 2009-03-11  Nick Clifton  <nickc@redhat.com>
13529
13530         PR target/5362
13531         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
13532         options.
13533         Add description to mno-lsim option.
13534         * config/mcore/mcore.h: Remove comment about deprecated m4align
13535         option.
13536         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
13537         * doc/invoke.texi: Add description of mno-lsim and
13538         mstack-increment options.
13539
13540         * config/fr30/fr30.opt: Document the -mno-lsim option.
13541         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
13542         and -mno-lsim options.
13543
13544 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13545
13546         * fold-const.c (fold_comparison): Only call fold_inf_compare
13547         if the mode supports infinities.
13548
13549 2009-03-11  Jason Merrill  <jason@redhat.com>
13550
13551         PR debug/39086
13552         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
13553         end already did.  Notice GIMPLE_CALL modifications of the result.
13554         Don't copy debug information from an ignored decl or a decl from
13555         another function.
13556
13557 2009-03-10  Richard Guenther  <rguenther@suse.de>
13558             Nathan Froyd  <froydnj@codesourcery.com>
13559
13560         PR middle-end/37850
13561         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
13562         (__divMODE3): Likewise.
13563
13564 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
13565
13566         PR tree-optimization/39394
13567         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
13568         DECL_SIZE_UNIT of variable length FIELD_DECLs.
13569
13570 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13571
13572         * recog.c (verfiy_changes): Disallow renaming of hard regs in
13573         inline asms for register asm ("") declarations.
13574
13575 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
13576
13577         * fold-const.c (fold_unary): Fix comment.
13578
13579 2009-03-07  Jan Hubicka  <jh@suse.cz>
13580
13581         PR target/39361
13582         * tree-inline.c (setup_one_parameter): Do replacement of const
13583         argument by constant in SSA form.
13584
13585 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13586
13587         PR middle-end/38028
13588         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13589         determine alignment passed to assign_stack_local.
13590         (assign_parms_unsplit_complex): Likewise.
13591         * except.c (sjlj_build_landing_pads): Likewise.
13592
13593 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
13594
13595         PR middle-end/39360
13596         * tree-flow.h (add_referenced_var): Return bool instead of void.
13597         * tree-dfa.c (add_referenced_var): Return result of
13598         referenced_var_check_and_insert call.
13599         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13600         of referenced_var_check_and_insert.
13601
13602         PR debug/39372
13603         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
13604         (gen_variable_die): Emit DW_AT_location on abstract static variable's
13605         DIE, don't emit it if abstract origin already has it.
13606         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13607         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13608
13609 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13610
13611         * genpreds.c (needs_variable): Fix parentheses at variable name
13612         detection.
13613         (write_tm_constrs_h): Indent generated code.
13614
13615 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13616
13617         * doc/extend.texi (Function Attributes): Add documentation
13618         for isr attributes.
13619
13620 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
13621
13622         PR debug/39387
13623         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13624         take locus from its DECL_SOURCE_LOCATION instead of input_location.
13625
13626 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
13627
13628         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13629         the loop as bad.
13630
13631 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
13632
13633         PR debug/39379
13634         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13635         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13636
13637 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
13638
13639         * config/i386/i386.md (R8_REG, R9_REG): New constants.
13640         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13641         constants instead of magic numbers.
13642         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13643         (QI_REG_P): Ditto.
13644         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13645         (x86_64_ms_abi_int_parameter_registers): Ditto.
13646         (x86_64_int_return_registers): Ditto.
13647         (ix86_maybe_switch_abi): Ditto.
13648         (ix86_expand_call): Ditto for clobbered_registers array.
13649         (ix86_hard_regno_mode_ok): Ditto.
13650         (x86_extended_QIreg_mentioned_p): Ditto.
13651
13652 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
13653
13654         PR tree-optimization/39349
13655         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13656
13657         * combine.c (gen_lowpart_for_combine): Use omode when generating
13658         clobber.
13659
13660 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
13661
13662         PR rtl-optimization/39235
13663         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13664
13665 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
13666
13667         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13668
13669 2009-03-04  Richard Guenther  <rguenther@suse.de>
13670
13671         PR tree-optimization/39362
13672         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13673         that occur in abnormal PHIs should be varying.
13674
13675 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
13676
13677         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13678         Extend comments.
13679         (simple_iv):  Take loop as an argument instead of statement.
13680         * tree-scalar-evolution.h (simple_iv): Declaration changed.
13681         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13682         to simple_iv.
13683         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13684         Ditto.
13685         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13686         * matrix-reorg.c (analyze_transpose): Ditto.
13687         * tree-data-ref.c (dr_analyze_innermost): Ditto.
13688         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13689         * tree-predcom.c (ref_at_iteration): Ditto.
13690         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13691
13692 2009-03-04  Richard Guenther  <rguenther@suse.de>
13693
13694         PR tree-optimization/39358
13695         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13696         escaped_id and callused_id.
13697         (solve_graph): Likewise.
13698
13699 2009-03-04  Richard Guenther  <rguenther@suse.de>
13700
13701         PR tree-optimization/39339
13702         * tree-sra.c (try_instantiate_multiple_fields): Make it
13703         no longer ICE on the above.
13704
13705 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
13706
13707         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13708         that fits within Pmode.
13709
13710 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
13711
13712         PR middle-end/10109
13713         * tm.texi (LIBCALL_VALUE): Update description.
13714
13715 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
13716
13717         PR middle-end/34443
13718         * doc/extend.texi (section): Update description.
13719
13720 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
13721
13722         PR middle-end/39345
13723         * tree-inline.c (remapped_type): New.
13724         (can_be_nonlocal): Call remapped_type instead of remap_type.
13725
13726 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
13727
13728         PR fortran/39354
13729         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13730         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13731
13732 2009-03-03  Richard Guenther  <rguenther@suse.de>
13733
13734         PR middle-end/39272
13735         * tree.c (tree_nonartificial_location): New function.
13736         * tree.h (tree_nonartificial_location): Declare.
13737         * builtins.c (expand_builtin_memory_chk): Provide location
13738         of the call location for artificial function pieces.
13739         (maybe_emit_chk_warning): Likewise.
13740         (maybe_emit_sprintf_chk_warning): Likewise.
13741         (maybe_emit_free_warning): Likewise.
13742         * expr.c (expand_expr_real_1): Likewise.
13743
13744 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
13745
13746         PR tree-optimization/39343
13747         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13748         COMPONENT_REF t has ARRAY_TYPE.
13749
13750 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
13751
13752         PR middle-end/39335
13753         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13754         when the type precision of the induction variable should be
13755         larger than the type precision of nit.
13756         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13757         * graphite.c (graphite_loop_normal_form): Same.
13758         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13759
13760 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
13761
13762         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13763         (*call_1_rex64_ms_sysv): Use named constants instead of magic
13764         numbers to describe clobbered registers.
13765         (*call_value_0_rex64_ms_sysv): Ditto.
13766         * config/i386/mmx.md (mmx_emms): Ditto.
13767         (mmx_femms): Ditto.
13768
13769 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
13770
13771         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13772         of ABI_64.
13773
13774 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13775
13776         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13777         (spu_section_type_flags): New function.
13778
13779 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
13780
13781         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13782         reg_class_contents of FLOAT_REGS into a temporary.
13783
13784 2009-03-02  Richard Guenther  <rguenther@suse.de>
13785             Ira Rosen  <irar@il.ibm.com>
13786
13787         PR tree-optimization/39318
13788         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13789         information to the vectorized statement.
13790
13791 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
13792
13793         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13794         variable.  Use defined names instead of magic constants for REX SSE
13795         registers.
13796
13797 2009-03-01  Richard Guenther  <rguenther@suse.de>
13798
13799         PR tree-optimization/39331
13800         * omp-low.c (lower_send_shared_vars): Do not receive new
13801         values for the reference of DECL_BY_REFERENCE parms or results.
13802
13803 2009-03-01  Jan Hubicka  <jh@suse.cz>
13804
13805         PR debug/39267
13806         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13807         BLOCK_NONLOCALIZED_VAR): New macros.
13808         (tree_block): Add nonlocalized_vars.
13809         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13810         gen_decl_die): Add origin argument.  Allow generation of die with
13811         origin at hand only.
13812         (gen_member_die, gen_type_die_with_usage, force_decl_die,
13813         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13814         of gen_*.
13815         (gen_block_die): Fix checking for unused blocks.
13816         (process_scope_var): Break out from .... ; work with origins only.
13817         (decls_for_scope) ... here; process nonlocalized list.
13818         (dwarf2out_ignore_block): Look for nonlocalized vars.
13819         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13820         vars.
13821         (dump_scope_block): Dump them.
13822         * tree-inline.c (remap_decls): Handle nonlocalized vars.
13823         (remap_block): Likewise.
13824         (can_be_nonlocal): New predicate.
13825         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13826
13827 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13828
13829         * configure: Regenerate.
13830
13831 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13832
13833         * optc-gen.awk: No need to duplicate option flags twice.
13834         Reuse help texts for duplicate options which do not have any.
13835
13836         * gcc.c (display_help): Document --version.
13837
13838         * gcc.c (main): If print_help_list and verbose_flag, ensure
13839         driver output comes before subprocess output.
13840
13841         * optc-gen.awk: Assign all remaining fields to help string,
13842         space-separated, for multi-line help in *.opt.
13843
13844         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13845         -Wno-pedantic-ms-format is for MinGW targets only.
13846
13847         * doc/options.texi (Option file format): Fix bad indentation,
13848         restoring dropped sentence.
13849
13850 2009-02-28  Jan Hubicka  <jh@suse.cz>
13851
13852         * tree-inline.c (tree_function_versioning): Output debug info.
13853
13854 2009-02-28  Jan Hubicka  <jh@suse.cz>
13855
13856         PR debug/39267
13857         * tree-inline.c (setup_one_parameter): Do not copy propagate
13858         arguments when not optimizing.
13859
13860 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13861
13862         PR target/39327
13863         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13864         (avx_addsubv4df3): Likewise.
13865         (*avx_addsubv4sf3): Likewise.
13866         (sse3_addsubv4sf3): Likewise.
13867         (*avx_addsubv2df3): Likewise.
13868         (sse3_addsubv2df3): Likewise.
13869         (avx_unpckhps256): Correct item selectors.
13870         (avx_unpcklps256): Likewise.
13871         (avx_unpckhpd256): Likewise.
13872         (avx_unpcklpd256): Likewise.
13873
13874 2009-02-28  Jan Hubicka  <jh@suse.cz>
13875
13876         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13877         static vars.
13878         (copy_arguments_for_versioning): If var is declared don't declare it.
13879         (tree_function_versioning): First setup substitutions and then copy
13880         args.
13881
13882 2009-02-27  Jan Hubicka  <jh@suse.cz>
13883
13884         PR debug/39267
13885         * cgraph.h (varpool_output_debug_info): Remove.
13886         * cgraphunit.c (varpool_output_debug_info): Remove.
13887         * dwarf2out.c (deferred_locations_struct): New struct
13888         (deferred_locations): New type.
13889         (deferred_locations_list): New static var.
13890         (deffer_location): New function.
13891         (gen_variable_die): Use it.
13892         (decls_for_scope): Output info on local static vars.
13893         (dwarf2out_finish): Process deferred locations.
13894         * varpool.c (varpool_output_debug_info): Remove.
13895
13896 2009-02-27  Jan Hubicka  <jh@suse.cz>
13897
13898         PR debug/39267
13899         * tree.h (TREE_PROTECTED): Fix comment.
13900         (BLOCK_HANDLER_BLOCK): Remove.
13901         (struct tree_block): Remove handler_block add body_block.
13902         (inlined_function_outer_scope_p): New.
13903         (is_body_block): Remove.
13904         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13905         * dwarf2out.c (is_inlined_entry_point): Remove.
13906         (add_high_low_attributes): Use inlined_function_outer_scope_p.
13907         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
13908         code.
13909         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13910         * gimplify.c (gimplify_expr): Gimplify body blocks.
13911         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13912         block with multiple subblocks.
13913         (dump_scope_block): Prettier output; dump more flags and info.
13914         (dump_scope_blocks): New.
13915         (remove_unused_locals): Use dump_scope_blocks.
13916         * tree-flow.h (dump_scope_blocks): Declare.
13917         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13918         * stmt.c (is_body_block): Remove.
13919         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13920         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13921
13922 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
13923
13924         PR middle-end/39308
13925         * graphite.c (graphite_loop_normal_form): Do not call
13926         number_of_iterations_exit from a gcc_assert.
13927
13928 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13929
13930         * config/s390/s390.c (s390_swap_cmp): Look for conditional
13931         jumps if COND is NULL.
13932         (find_cond_jump): New function.
13933         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
13934         * config/s390/s390.md: Remove z10_cobra attribute value.
13935
13936 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
13937
13938         * config/alpha/alpha.h (alpha_expand_mov): Return false if
13939         force_const_mem returns NULL_RTX.
13940
13941 2009-02-26  Jan Hubicka  <jh@suse.cz>
13942
13943         PR debug/39267
13944         * cgraph.h (varpool_output_debug_info): Remove.
13945         * cgraphunit.c (varpool_output_debug_info): Remove.
13946         * dwarf2out.c (deferred_locations_struct): New struct
13947         (deferred_locations): New type.
13948         (deferred_locations_list): New static var.
13949         (deffer_location): New function.
13950         (gen_variable_die): Use it.
13951         (decls_for_scope): Output info on local static vars.
13952         (dwarf2out_finish): Process deferred locations.
13953         * varpool.c (varpool_output_debug_info): Remove.
13954
13955 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13956
13957         PR rtl-optimization/39241
13958         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13959         to subreg_offset_representable_p.
13960
13961 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13962
13963         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13964         execute function prototype.  Get f and nregs from max_reg_num
13965         and get_insns.  Remove the first backward pass as it's dead,
13966         guard the forward pass by flag_expensive_optimizations.
13967         (rest_of_handle_regmove): Delete.
13968         (pass_regmove): Replace it with regmove_optimize.
13969
13970 2009-02-25  Martin Jambor  <mjambor@suse.cz>
13971
13972         PR tree-optimization/39259
13973         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
13974         calls_alloca function flags.
13975         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13976         calls are detected.
13977
13978 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13979
13980         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13981         flags_set_1_rtx, flags_set_1_set): Delete.
13982         (regmove_optimize): Do not call mark_flags_life_zones.
13983
13984 2009-02-24  Julian Brown  <julian@codesourcery.com>
13985
13986         PR target/35965
13987         * config/arm/arm.c (require_pic_register): Only set
13988         cfun->machine->pic_reg once per function.
13989
13990 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
13991
13992         * doc/invoke.texi (Link Options): Document an easier way to pass
13993         options that take arguments to the GNU linker using -Xlinker and -Wl.
13994
13995 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
13996
13997         PR target/33785
13998         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13999
14000 2009-02-24  Richard Guenther  <rguenther@suse.de>
14001
14002         PR debug/39285
14003         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14004
14005 2009-02-24  Richard Guenther  <rguenther@suse.de>
14006             Zdenek Dvorak  <ook@ucw.cz>
14007
14008         PR tree-optimization/39233
14009         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14010         from converting them to a generic type.
14011
14012 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
14013
14014         PR tree-optimization/39260
14015         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14016         contains a condition with a real type.
14017         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14018
14019 2009-02-23  Jason Merrill  <jason@redhat.com>
14020
14021         PR c++/38880
14022         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14023         narrowing_initializer_constant_valid_p.
14024         (narrowing_initializer_constant_valid_p): Don't return
14025         null_pointer_node for adding a pointer to itself.
14026
14027 2009-02-23  Jan Hubicka  <jh@suse.cz>
14028
14029         PR c/12245
14030         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14031         resizing.
14032
14033 2009-02-23  Jan Hubicka  <jh@suse.cz>
14034
14035         PR tree-optimization/37709
14036         * tree.c (block_ultimate_origin): Move here from dwarf2out.
14037         * tree.h (block_ultimate_origin): Declare.
14038         * dwarf2out.c (block_ultimate_origin): Move to tree.c
14039         * tree-ssa-live.c (remove_unused_scope_block_p):
14040         Eliminate blocks containig no instructions nor live variables nor
14041         nested blocks.
14042         (dump_scope_block): New function.
14043         (remove_unused_locals): Enable removal of dead blocks by default;
14044         enable dumping at TDF_DETAILS.
14045
14046 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14047
14048         * config/i386/i386.c (classify_argument): Don't allow COImode
14049         and OImode.
14050         (function_arg_advance_32): Don't allow OImode.
14051         (function_arg_32): Likewise.
14052         (function_value_32): Likewise.
14053         (return_in_memory_32): Likewise.
14054         (function_arg_64): Remove OImode comment.
14055
14056 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14057
14058         PR target/39261
14059         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14060         ix86_expand_vector_set for V4DImode in 64bit mode only.
14061         (ix86_expand_vector_init_one_var): Likewise.
14062
14063 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
14064
14065         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14066
14067 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
14068
14069         PR bootstrap/39257
14070         * loop-iv.c: Revert last change.
14071         * emit-rtl.c: Likewise.
14072
14073 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14074
14075         PR target/39256
14076         * config/i386/i386.c (type_natural_mode): Remove an extra
14077         space in the warning message.
14078         (function_value_32): Handle 32-byte vector modes.
14079         (return_in_memory_32): Likewise.
14080
14081 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
14082
14083         * loop-iv.c (truncate_value): New function.
14084         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14085         of lowpart_subreg.
14086         (lowpart_subreg): Move to...
14087         * emit-rtl.c: ...here.
14088
14089 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
14090
14091         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14092         accidental and undocumented change at revision 140860.
14093
14094 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
14095
14096         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14097         take gimple_seq * arguments.
14098         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14099         types_compatible_p langhook.
14100
14101 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
14102             Joseph Myers  <joseph@codesourcery.com>
14103
14104         * config/arm/arm.c (arm_builtin_va_list): New function.
14105         (arm_expand_builtin_va_start): Likewise.
14106         (arm_gimplify_va_arg_expr): Likewise.
14107         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14108         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14109         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14110         (va_list_type): New variable.
14111         (arm_mangle_type): Mangle va_list_type appropriately.
14112
14113 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
14114
14115         PR middle-end/39157
14116         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14117         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14118         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14119         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14120         parameter to 1000 for -O1 by default.
14121         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14122         parameter.
14123         * loop-invariant.c: Include params.h.
14124         (move_loop_invariants): Don't call move_single_loop_invariants on
14125         very large loops.
14126
14127 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
14128
14129         * calls.c (emit_library_call_value_1): Use slot_offset instead of
14130         offset when calculating bounds for indexing stack_usage_map.  Fixes
14131         a buffer overflow with certain target setups.
14132
14133 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
14134
14135         PR target/39240
14136         * calls.c (expand_call): Clear try_tail_call if caller and callee
14137         disagree in promotion of function return value.
14138
14139 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
14140
14141         PR target/39175
14142         * c-common.c (c_determine_visibility): If visibility changed and
14143         DECL_RTL has been already set, call make_decl_rtl to update symbol
14144         flags.
14145
14146 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14147
14148         PR c++/39188
14149         * varasm.c (assemble_variable): Don't check DECL_NAME when
14150         globalizing a variable.
14151
14152 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
14153
14154         PR c/38483
14155         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14156         expression before any __builtin_trap call.
14157         * c-typeck.c (build_function_call): Convert and check function
14158         arguments before generating a call to a trap.  Evaluate the
14159         function arguments before the trap.
14160
14161 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
14162
14163         PR target/39228
14164         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14165         (UNSPEC_FXAM_MEM): New unspec.
14166         (fxam<mode>2_i387_with_temp): New insn and split pattern.
14167         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
14168         memory using fxam<mode>2_i387_with_temp to remove excess precision.
14169
14170 2009-02-19  Richard Guenther  <rguenther@suse.de>
14171
14172         PR tree-optimization/39207
14173         PR tree-optimization/39074
14174         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14175         storedanything_tree): New.
14176         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
14177         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
14178         (build_succ_graph): Add edges from STOREDANYTHING to all
14179         non-direct nodes.
14180         (init_base_vars): Initialize STOREDANYTHING.
14181         (compute_points_to_sets): Free substitution info after
14182         building the succ graph.
14183         (ipa_pta_execute): Likewise.
14184
14185         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14186         field.
14187         (do_ds_constraint): Do not add to special var or non-pointer
14188         field solutions.
14189         (type_could_have_pointers): Split out from ...
14190         (could_have_pointers): ... here.  For arrays use the element type.
14191         (create_variable_info_for): Initialize may_have_pointers.
14192         (new_var_info): Likewise.
14193         (handle_lhs_call): Make the HEAP variable unknown-sized.
14194         (intra_create_variable_infos): Use a type with pointers for
14195         PARM_NOALIAS, make it unknown-sized.
14196
14197 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14198
14199         PR target/39224
14200         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
14201
14202 2009-02-18  Jason Merrill  <jason@redhat.com>
14203
14204         PR target/39179
14205         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14206         value if DECL_EXTERNAL.
14207         * tree-sra.c (sra_walk_gimple_assign): Likewise.
14208         * target.h (gcc_target::binds_local_p): Clarify "module".
14209         * tree.h (TREE_PUBLIC): Clarify "module".
14210
14211 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
14212
14213         PR target/38891
14214         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14215         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14216
14217 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
14218
14219         PR target/39082
14220         * c.opt (Wabi): Support C and ObjC.
14221         (Wpsabi): New.
14222
14223         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14224
14225         * config/i386/i386.c (classify_argument): Warn once about the ABI
14226         change when passing union with long double.
14227
14228         * doc/invoke.texi: Update -Wabi for warning psABI changes.
14229
14230 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
14231
14232         PR c/35447
14233         * c-parser.c (c_parser_compound_statement): Always enter and leave
14234         a scope.
14235
14236 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14237
14238         PR target/34587
14239         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14240
14241 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
14242
14243         PR tree-optimization/36922
14244         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14245         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14246         Likewise.
14247
14248 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14249
14250         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14251         to 0 for EABI64.
14252
14253 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14254
14255         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14256
14257 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14258
14259         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14260         tree sharing.
14261
14262 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
14263             Richard Sandiford  <rdsandiford@googlemail.com>
14264
14265         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14266         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14267         (loongson_biadd): ...this.
14268
14269 2009-02-17  Richard Guenther  <rguenther@suse.de>
14270
14271         PR tree-optimization/39202
14272         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14273         a var make sure to follow existing collapses.
14274
14275 2009-02-17  Richard Guenther  <rguenther@suse.de>
14276
14277         PR middle-end/39214
14278         * langhooks.c (lhd_print_error_function): Check for NULL block.
14279
14280 2009-02-17  Richard Guenther  <rguenther@suse.de>
14281
14282         PR tree-optimization/39204
14283         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14284         of the PHI arg.
14285
14286 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
14287
14288         * config/soft-fp/double.h: Update from glibc CVS.
14289
14290 2009-02-17  Richard Guenther  <rguenther@suse.de>
14291
14292         PR tree-optimization/39207
14293         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14294         strict-aliasing warnings for pointers pointing to NULL.
14295
14296 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
14297
14298         PR c/35446
14299         * c-parser.c (c_parser_braced_init): Call pop_init_level when
14300         skipping until next close brace.
14301
14302 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
14303
14304         PR target/37049
14305         * config/i386/i386.c (ix86_expand_push): Set memory alignment
14306         to function argument boundary.
14307
14308 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14309
14310         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14311         in the lea_add. Reload eventually constraints it properly.
14312         * config/picochip/constraints.md: Remove the target constraint
14313         "b", since it is not needed anymore.
14314
14315 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
14316
14317         * gthr-dce.h: Uglify function parameter and local variable names.
14318         * gthr-gnat.h: Likewise.
14319         * gthr-mipssde.h: Likewise.
14320         * gthr-nks.h: Likewise.
14321         * gthr-posix95.h: Likewise.
14322         * gthr-posix.h: Likewise.
14323         * gthr-rtems.h: Likewise.
14324         * gthr-single.h: Likewise.
14325         * gthr-solaris.h: Likewise.
14326         * gthr-tpf.h: Likewise.
14327         * gthr-vxworks.h: Likewise.
14328         * gthr-win32.h: Likewise.
14329
14330 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
14331
14332         PR target/39196
14333         * config/i386/i386.md: Restrict the new peephole2 to move
14334         between MMX/SSE registers.
14335
14336 2009-02-15  Richard Guenther  <rguenther@suse.de>
14337
14338         Revert
14339         2009-02-13  Richard Guenther  <rguenther@suse.de>
14340
14341         * configure.ac: Enable LFS.
14342         * configure: Re-generate.
14343         * config.in: Likewise.
14344
14345 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14346
14347         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
14348         spu_srqwbyte, spu_srqwbytebc): Define.
14349         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
14350         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
14351         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
14352         "shrqby_<mode>"): New insn-and-split patterns.
14353         * config/spu/spu.c (expand_builtin_args): Determine and return
14354         number of operands using spu_builtin_description data.
14355         (spu_expand_builtin_1): Use it.
14356
14357 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
14358
14359         PR target/38056
14360         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
14361         TARGET_CONST_GP.
14362
14363 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
14364
14365         PR target/39149
14366         * config/i386/i386.c (override_options): Correct warning
14367         messages for -malign-loops, -malign-jumps and -malign-functions.
14368
14369 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
14370
14371         PR target/39152
14372         * config/i386/i386.md: Restrict the new peephole2 to move
14373         between the general purpose registers.
14374
14375 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
14376
14377         PR target/39162
14378         * config/i386/i386.c (type_natural_mode): Add a new argument.
14379         Return the original mode and warn ABI change if vector size is 32byte.
14380         (function_arg_advance): Updated.
14381         (function_arg): Likewise.
14382         (ix86_function_value): Likewise.
14383         (ix86_return_in_memory): Likewise.
14384         (ix86_sol10_return_in_memory): Likewise.
14385         (ix86_gimplify_va_arg): Likewise.
14386         (function_arg_32): Don't warn ABX ABI change here.
14387         (function_arg_64): Likewise.
14388
14389 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
14390
14391         * loop-iv.c (implies_p): In the final case, test that operands 0
14392         of the two comparisons match.
14393
14394         * config/bfin/bfin.c (find_prev_insn_start): New function.
14395         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
14396         (find_next_insn_start): Move.
14397
14398 2009-02-13  Richard Guenther  <rguenther@suse.de>
14399
14400         * configure.ac: Enable LFS.
14401         * configure: Re-generate.
14402         * config.in: Likewise.
14403
14404 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
14405
14406         PR c/35444
14407         * c-parser.c (c_parser_parms_list_declarator): Discard pending
14408         sizes on syntax error after some arguments have been parsed.
14409
14410 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
14411
14412         * doc/invoke.texi (-fira): Remove.
14413
14414 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
14415
14416         * caller-save.c: Replace regclass.c with reginfo.c in comments.
14417         * recog.c: Likewise.
14418         * rtl.h: Likewise.
14419
14420 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
14421
14422         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
14423         (umul_ppmm): Likewise.
14424         (count_leading_zeros): Likewise.
14425         (count_trailing_zeros): Likewise.
14426         (UMUL_TIME): Likewise.
14427
14428 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
14429
14430         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
14431         soft-fp/t-softfp to tmake_file.
14432
14433         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
14434         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
14435         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
14436         IA64_BUILTIN_INFQ]: New.
14437         (ia64_init_builtins): Initialize __builtin_infq,
14438         __builtin_fabsq and __builtin_copysignq if not HPUX.
14439         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
14440         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
14441
14442         * config/ia64/lib1funcs.asm (__divtf3): Define only if
14443         SHARED is defined.
14444         (__fixtfti): Likewise.
14445         (__fixunstfti): Likewise.
14446         (__floattitf): Likewise.
14447
14448         * config/ia64/libgcc-glibc.ver: New.
14449         * config/ia64/t-fprules-softfp: Likewise.
14450         * config/ia64/sfp-machine.h: Likewise.
14451
14452         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
14453         (LIBGCC2_TF_CEXT): Likewise.
14454         (TF_SIZE): Likewise.
14455         (TARGET_INIT_LIBFUNCS): Likewise.
14456
14457         * config/ia64/t-glibc (SHLINB_MAPFILES):
14458         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
14459
14460 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
14461
14462         * config/i386/i386.c (construct_container): Rewrite processing
14463         BLKmode with X86_64_SSE_CLASS.
14464
14465 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
14466
14467         PR target/39152
14468         * config/i386/i386.md: Replace simplify_replace_rtx with
14469         replace_rtx in the new peephole2.
14470
14471 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
14472
14473         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
14474         loop unrolling do not happen at -O2.
14475
14476 2009-02-12  Michael Matz  <matz@suse.de>
14477
14478         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
14479
14480 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
14481
14482         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
14483         for -g3.
14484
14485 2009-02-12  Ben Elliston  <bje@au.ibm.com>
14486
14487         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
14488         patterns when updating the back chain.  Missed in the 2009-02-10
14489         change.
14490
14491 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
14492
14493         * doc/extend.texi (Decimal Floating Types): Update identifier of
14494         draft TR and list of missing support.
14495
14496 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
14497
14498         PR middle-end/39154
14499         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
14500         bit to variable length decl's flags, add it also to its
14501         pointer replacement variable.
14502
14503 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
14504             Jakub Jelinek  <jakub@redhat.com>
14505
14506         PR target/39118
14507         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
14508         (memory_blockage): New expander.
14509         (*memory_blockage): New insn pattern.
14510         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
14511         instead of general blockage at the end of function prologue when
14512         frame pointer is used to access red zone area.  Do not emit blockage
14513         when profiling, it is emitted in generic code.
14514         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
14515         function epilogue when frame pointer is used to access red zone area.
14516
14517 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
14518
14519         PR target/38824
14520         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
14521         by arithmetic with memory operands.
14522         * config/i386/predicates.md (commutative_operator): New.
14523
14524 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
14525
14526         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
14527         bulleted lists.
14528
14529 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
14530
14531         * alias.h (record_alias_subset): Declare.
14532         * alias.c (record_alias_subset): Make global.
14533
14534 2009-02-10  Nick Clifton  <nickc@redhat.com>
14535
14536         * tree-parloops.c: Change license to GPLv3.
14537         * ipa-struct-reorg.c: Change license to GPLv3.
14538         * ipa-struct-reorg.h: Change license to GPLv3.
14539
14540 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
14541
14542         PR c/39084
14543         * c-decl.c (start_struct): Return NULL on error.
14544
14545 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
14546
14547         PR middle-end/39124
14548         * cfgloopmanip.c (remove_path): Call remove_bbs after
14549         cancel_loop_tree, not before it.
14550
14551         PR target/39139
14552         * function.h (struct function): Add has_local_explicit_reg_vars bit.
14553         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
14554         VAR_DECLs were seen.
14555         * tree-ssa-live.c (remove_unused_locals): Recompute
14556         cfun->has_local_explicit_reg_vars.
14557         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
14558         copies or clearings if cfun->has_local_explicit_reg_vars.
14559
14560 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
14561
14562         PR target/39118
14563         * config/i386/i386.c (expand_prologue): Emit blockage at the end
14564         of function prologue when frame pointer is used to access
14565         red zone area.
14566
14567 2009-02-10  Richard Guenther  <rguenther@suse.de>
14568
14569         PR middle-end/39127
14570         * gimplify.c (gimple_regimplify_operands): Always look if
14571         we need to create a temporary.
14572
14573 2009-02-10  Richard Guenther  <rguenther@suse.de>
14574
14575         PR tree-optimization/39132
14576         * tree-loop-distribution.c (todo): New global var.
14577         (generate_memset_zero): Trigger TODO_rebuild_alias.
14578         (tree_loop_distribution): Return todo.
14579
14580 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
14581
14582         PR target/39119
14583         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14584         (x86_64_reg_class_name): Removed.
14585         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
14586         first one isn't X86_64_SSE_CLASS or any other ones aren't
14587         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
14588         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14589         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
14590         and 3 X86_64_SSEUP_CLASS.
14591         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
14592         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14593
14594 2009-02-10  Ben Elliston  <bje@au.ibm.com>
14595
14596         * config/rs6000/rs6000.md (allocate_stack): Always use an update
14597         form instruction to update the stack back chain word, even if the
14598         user has disabled the generation of update instructions.
14599         (movdi_<mode>_update_stack): New.
14600         (movsi_update_stack): Likewise.
14601         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14602         always use an update form instruction to update the stack back
14603         chain word.
14604
14605 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
14606
14607         PR middle-end/38953
14608         * graphite.c (if_region_set_false_region): After moving a region in
14609         the false branch of a condition, remove the empty dummy basic block.
14610         (gloog): Remove wrong fix for PR38953.
14611
14612 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14613
14614         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14615         generation due to implicit sign extension.
14616
14617 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14618
14619         PR middle-end/38981
14620         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14621         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14622
14623 2009-02-09  Richard Guenther  <rguenther@suse.de>
14624
14625         PR middle-end/35202
14626         * convert.c (convert_to_real): Disable (float)fn((double)x)
14627         to fnf(x) conversion if errno differences may occur and
14628         -fmath-errno is set.
14629
14630 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
14631
14632         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14633         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14634         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14635
14636 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
14637
14638         PR c/35434
14639         * c-common.c (handle_alias_attribute): Disallow attribute for
14640         anything not a FUNCTION_DECL or VAR_DECL.
14641
14642 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
14643
14644         PR c/39035
14645         * real.c (do_compare): Special-case compare of zero against
14646         decimal float value.
14647
14648 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
14649
14650         PR c/36432
14651         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14652         as indicating flexible array members unless the field itself is
14653         being declarared as the incomplete array.
14654
14655 2009-02-06  Jan Hubicka  <jh@suse.cz>
14656
14657         PR tree-optimization/38844
14658         * ipa-inline.c (try_inline): Stop inlining recursion when edge
14659         is already inlined.
14660
14661 2009-02-06  Richard Guenther  <rguenther@suse.de>
14662
14663         PR middle-end/38977
14664         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14665         fork because we may expand it as __gcov_fork.
14666
14667 2009-02-06  Nick Clifton  <nickc@redhat.com>
14668
14669         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
14670
14671 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
14672
14673         PR tree-optimization/35659
14674         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14675         vn_phi_eq): Shortcut if hashcode does not match.
14676         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14677         NULL operands.
14678         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14679         and avoid iterative_hash_expr.
14680         (FOR_EACH_VALUE_ID_IN_SET): New.
14681         (value_id_compare): Remove.
14682         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14683         sort expressions by value id.
14684
14685 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
14686
14687         PR target/38991
14688         * config/sh/predicates.md (general_movsrc_operand): Don't check
14689         the subreg of system registers here.
14690
14691 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
14692
14693         PR c++/39106
14694         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14695         on the copied decl.
14696
14697 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
14698
14699         PR rtl-optimization/39110
14700         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14701         addresses, not aligned ones.
14702
14703 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
14704             Richard Guenther  <rguenther@suse.de>
14705
14706         PR tree-optimization/39100
14707         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14708         comment says and add edges.
14709
14710 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
14711
14712         PR c/35435
14713         * c-common.c (handle_tls_model_attribute): Ignore attribute for
14714         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14715
14716 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
14717
14718         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14719         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14720         register_bb_in_sese, new_sese, free_sese): Moved.
14721         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14722         outermost_loop_in_scop, build_scop_iteration_domain,
14723         expand_scalar_variables_ssa_name, get_vdef_before_scop,
14724         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14725         Use loop_in_sese_p instead of loop_in_scop_p.
14726         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14727         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14728         (scopdet_basic_block_info): Fix bug in scop detection.
14729         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14730         eq_loop_to_cloog_loop): Remove.
14731         (nb_loops_around_loop_in_scop, nb_loop
14732         ref_nb_loops): Moved here...
14733         * graphite.h (ref_nb_loops): ... from here.
14734         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14735         (loop_domain_dim, loop_iteration_vector_dim): Remove.
14736         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14737         * testsuite/gcc.dg/graphite/scop-19.c: New
14738
14739 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
14740             Hans-Peter Nilsson  <hp@axis.com>
14741
14742         PR rtl-optimization/37889
14743         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14744         Move offset handling from PLUS to before the switch.  Use new
14745         arguments when considering SYMBOL_REFs too.
14746         (rtx_addr_can_trap_p): Pass dummy offset and size.
14747         (enum may_trap_p_flags): Remove.
14748         (may_trap_p_1): Pass size from MEM_SIZE.
14749
14750         PR rtl-optimization/38921
14751         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14752         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14753         * rtlanal.c (may_trap_after_code_motion_p): Delete.
14754         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14755
14756 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
14757
14758         AVX Programming Reference (January, 2009)
14759         * config/i386/sse.md (*vpclmulqdq): New.
14760
14761 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
14762
14763         PR tree-optimization/38977
14764         PR gcov-profile/38292
14765         * calls.c (special_function_p): Disregard __builtin_ prefix.
14766
14767 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
14768
14769         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14770         non-indexable addresses even before reload.
14771
14772 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
14773
14774         PR c/29129
14775         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14776         as having variable size.  Do not give an error for unnamed
14777         parameters with [*] declarators.  Give a warning for type names
14778         with [*] declarators and mark them as variable size.
14779         * c-parser.c (c_parser_sizeof_expression): Do not give an error
14780         for sizeof applied to [*] type names.
14781
14782 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14783
14784         PR C++/36607
14785         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14786
14787 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
14788
14789         * gcc.c (process_command): Update copyright notice dates.
14790         * gcov.c (print_version): Likewise.
14791         * gcov-dump.c (print_version): Likewise.
14792         * mips-tfile.c (main): Likewise.
14793         * mips-tdump.c (main): Likewise.
14794
14795 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
14796
14797         PR c/35433
14798         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14799         for composite type involving a zero-length array type.
14800
14801 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
14802
14803         PR target/35318
14804         * function.c (match_asm_constraints_1): Skip over
14805         initial optional % in the constraint.
14806
14807         PR inline-asm/39059
14808         * c-parser.c (c_parser_postfix_expression): If fixed point is not
14809         supported, don't accept FIXED_CSTs.
14810         * c-decl.c (finish_declspecs): Error if fixed point is not supported
14811         and _Sat is used without _Fract/_Accum.  Set specs->type to
14812         integer_type_node for cts_fract/cts_accum if fixed point is not
14813         supported.
14814
14815 2009-02-02  Catherine Moore  <clm@codesourcery.com>
14816
14817         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
14818
14819 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
14820
14821         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14822         (ABI_HAS_64BIT_SYMBOLS): Use it.
14823         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14824
14825 2009-02-02  Paul Brook  <paul@codesourcery.com>
14826
14827         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14828
14829 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
14830
14831         PR inline-asm/39058
14832         * recog.h (asm_operand_ok): Add constraints argument.
14833         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
14834         recurse on matching constraint.
14835         (check_asm_operands): Pass constraints as 3rd argument to
14836         asm_operand_ok.  Don't look up matching constraint here.
14837         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14838         to asm_operand_ok.
14839
14840 2009-02-02  Ben Elliston  <bje@au.ibm.com>
14841
14842         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14843         TARGET_NARROW_VOLATILE_BITFIELD macro names.
14844
14845 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14846
14847         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14848         information.  Remove some obsolete information.  Reorganize.
14849
14850         * config/pa/fptr.c: Revert license to GPL 2.
14851         * config/pa/milli64.S: Likewise.
14852
14853 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14854
14855         PR target/38904
14856         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
14857         LIBRARY name in, instead of hard-coding it.
14858         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
14859         extra target make frag to tmake_files according to EH model.
14860         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
14861         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
14862         frags that define makefile variable EH_MODEL appropriately.
14863         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
14864         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
14865         to "-sjlj" according to type of EH configured.
14866         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14867         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
14868         to "_sjlj" according to type of EH configured.
14869         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14870         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
14871         (SHLIB_LINK):  Add missing semicolon to if-else construct.
14872         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14873         string value of "pe_dll" command-line option.
14874         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
14875         (SHLIB_SONAME):  Use it when overriding t-cygming default.
14876         (SHLIB_IMPLIB):  Override t-cygming default.
14877         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14878         string value of "pe_dll" command-line option.
14879
14880 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14881
14882         PR target/38952
14883         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
14884         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
14885
14886 2009-01-31  Richard Guenther  <rguenther@suse.de>
14887
14888         PR tree-optimization/38937
14889         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14890         computing the transitive closure.
14891
14892 2009-01-30  Richard Guenther  <rguenther@suse.de>
14893
14894         PR tree-optimization/39041
14895         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14896         Propagate variable indices only if the types match for this stmt.
14897
14898 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
14899
14900         PR target/39013
14901         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14902         inline but never defined.
14903
14904 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
14905
14906         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14907         (*insv_h_di_reg_extimm): New insn.
14908         (*insv_l<mode>_reg_extimm): New insn.
14909
14910 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14911
14912         * config/picochip/picochip.c (flag_conserve_stack): set
14913         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14914         fconserve-stack. Reduce call-overhead used by inliner.
14915
14916 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14917
14918         PR/38157
14919         * common.opt (flag_conserve_stack): Initialised to zero.
14920
14921 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
14922
14923         PR/39002
14924         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14925         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14926         method.
14927
14928 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14929
14930         * ira-color.c (allocno_reload_assign): Update comments.
14931         * regmove.c (regmove_optimize): Likewise.
14932
14933         * ra.h: Removed.
14934
14935 2009-01-29  Robert Millan  <rmh@aybabtu.com>
14936
14937         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14938         * config/i386/kopensolaris-gnu.h: New file.  Undefine
14939         `MD_UNWIND_SUPPORT'.
14940         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
14941
14942 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
14943
14944         PR tree-optimization/39007
14945         * tree-loop-distribution.c (generate_builtin): Use
14946         recompute_dominator to compute the immediate dominator of the
14947         basic block just after the loop.
14948
14949 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14950
14951         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14952         (ASM_OUTPUT_DWARF_PCREL): Define.
14953
14954 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14955
14956         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14957         * doc/passes.texi: Remove entries about regclass, local-alloc, and
14958         global.  Modify entries about regmove and IRA.
14959
14960         * ra-conflict.c: Remove the file.
14961
14962         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14963
14964         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14965         (pass_regclass_init): Rename to pass_reginfo_init.
14966
14967         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14968
14969         * toplev.h (flag_ira): Remove.
14970
14971         * caller-save.c (setup_save_areas): Remove flag_ira.
14972
14973         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
14974
14975         * global.c: Remove the file.
14976
14977         * opts.c (decode_options): Remove flag_ira.
14978
14979         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14980
14981         * regmove.c: Modify file description.
14982         (find_use_as_address, try_auto_increment): Define them only if
14983         AUTO_INC_DEC is defined.
14984         (replacement_quality, replace_in_call_usage, fixup_match_1,
14985         stable_and_no_regs_but_for_p): Remove.
14986         (reg_set_in_bb): Make it static.
14987         (regmove_optimize): Remove flag_ira and code which worked for
14988         !flag_ira.
14989
14990         * local-alloc.c: Remove the file.
14991
14992         * common.opt (fira): Remove.
14993
14994         * ira.c: Include except.h.
14995         (eliminable_regset): Move from global.c.
14996         (mark_elimination): Ditto.  Remove flag_ira.
14997         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14998         equiv_mem_modified, validate_equiv_mem_from_store,
14999         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15000         contains_replace_regs, memref_referenced_p, memref_used_between_p,
15001         no_equiv, recorded_label_ref): Move from local-alloc.c.
15002         (update_equiv_regs): Ditto.  Make it static.
15003         (print_insn_chain, print_insn_chains): Move it from global.c.
15004         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
15005         (build_insn_chain): Ditto.  Make it static.
15006         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
15007         Rename to init_live_subregs.
15008         (gate_ira): Remove flag_ira.
15009
15010         * regclass.c: Rename reginfo.c.  Change file description.
15011         (FORBIDDEN_INC_DEC_CLASSES): Remove.
15012         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
15013         (init_reg_sets_1): Remove code for evaluation of
15014         reg_class_superclasses and losing_caller_save_reg_set.
15015         (init_regs): Remove init_reg_autoinc.
15016         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15017         ok_for_base_p_nonstrict): Remove.
15018         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
15019         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
15020         corresponding entries.
15021         (dump_regclass, record_operand_costs, scan_one_insn,
15022         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15023         record_address_regs, auto_inc_dec_reg_p): Remove.
15024         (gt-regclass.h): Rename to gt-reginfo.h.
15025
15026         * rtl.h (dump_global_regs, retry_global_alloc,
15027         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
15028
15029         * Makefile.in (RA_H): Remove.
15030         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15031         Rename regclass.o to reginfo.o.
15032         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
15033         gt-reginfo.h.
15034         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15035         (GTFILES): Rename regclass.c to reginfo.c.
15036
15037         * passes.c (init_optimization_passes): Remove pass_local_alloc and
15038         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
15039
15040         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15041         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15042         Remove flag_ira.
15043         (finish_spills): Ditto.  Remove code for !flag_ira.
15044
15045 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
15046
15047         PR middle-end/35854
15048         * doc/invoke.texi (rtl debug options): Complete rewrite.
15049         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15050         to auto_inc_dec".
15051         * mode-switching.c (pass_mode_switching): Rename pass from
15052         "mode-sw" to "mode_sw".
15053         * except.c (pass_convert_to_eh_ranges): Rename pass from
15054         "eh-ranges" to "eh_ranges".
15055         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15056         to "subreg1".
15057
15058
15059 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
15060             Alexander Monakov  <amonakov@ispras.ru>
15061
15062         PR middle-end/38857
15063         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15064         register.
15065         (move_exprs_to_boundary): Change return type and pass through
15066         should_move from move_op.  Relax assert.  Update usage ...
15067         (schedule_expr_on_boundary): ... here.  Use should_move instead of
15068         cant_move.
15069         (move_op_orig_expr_found): Indicate that insn was disconnected from
15070         stream.
15071         (code_motion_process_successors): Do not call after_merge_succs
15072         callback if original expression was not found when traversing any of
15073         the branches.
15074         (code_motion_path_driver): Change return type.  Update prototype.
15075         (move_op): Update comment.  Add a new parameter (should_move).  Update
15076         prototype.  Set *should_move based on indication provided by
15077         move_op_orig_expr_found.
15078
15079 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
15080
15081         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15082         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15083         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15084         * config/rs6000/rs6000.c (rs6000_override_options): Default
15085         avoid-indexed-addresses on for Power6, off for everything else.
15086         (avoiding_indexed_address_p): New function.
15087         (rs6000_legitimize_address): Use it.
15088         (rs6000_legitimate_address): Likewise.
15089         * config/rs6000/rs6000.md (movXX_updateX): Likewise
15090
15091 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
15092
15093         PR tree-optimization/38997
15094         * tree-loop-distribution.c (generate_memset_zero): Use
15095         POINTER_PLUS_EXPR for a pointer addition.
15096
15097 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15098
15099         * config/s390/s390.md (bswap<mode>2): New pattern added.
15100
15101 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15102
15103         * config/s390/s390.md (*tls_load_31): Added type attribute.
15104
15105 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15106
15107         * config/s390/s390.md: Fix a few comments.
15108
15109 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15110
15111         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15112         (*tm<mode>_full): Fixed z10prop attribute.
15113         (*tst<mode>_extimm): Fixed z10prop attribute.
15114         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15115         (*tstqiCCT_cconly): Fixed z10prop attribute.
15116         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15117         (*movsi_larl): Fixed z10prop attribute.
15118         (*movsi_zarch): Fixed z10prop attribute.
15119         (*movsi_eas): Fixed z10prop attribute.
15120         (*movhi): Fixed z10prop attribute.
15121         (*movqi): Fixed z10prop attribute.
15122         (*movstrictqi): Fixed z10prop attribute.
15123         (*mov<mode>): Fixed z10prop attribute.
15124         (*movcc): Fixed z10prop attribute.
15125         (*sethighpartdi_64): Fixed z10prop attribute.
15126         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15127         (*negdi2_sign_cc): Fixed z10prop attribute.
15128         (*negdi2_sign): Fixed z10prop attribute.
15129         (*absdi2_sign_cc): Fixed z10prop attribute.
15130         (*absdi2_sign): Fixed z10prop attribute.
15131         (*negabsdi2_sign_cc): Fixed z10prop attribute.
15132         (*negabsdi2_sign): Fixed z10prop attribute.
15133         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15134         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15135         (doloop_si64): Fixed z10prop attribute.
15136         (doloop_si31): Fixed z10prop attribute.
15137         (doloop_long): Fixed z10prop attribute.
15138         (indirect_jump): Fixed z10prop attribute.
15139         (nop): Fixed z10prop attribute.
15140         (main_base_64): Fixed z10prop attribute.
15141         (reload_base_64): Fixed z10prop attribute.
15142
15143 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
15144
15145         PR rtl-optimization/38740
15146         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15147         if !optimize.
15148         * config/mips/mips.c (mips_reorg): Likewise.
15149
15150 2009-01-28  Richard Guenther  <rguenther@suse.de>
15151
15152         PR tree-optimization/38926
15153         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15154         with the correct value id to a value.
15155         (do_regular_insertion): Use the value number of edoubleprime
15156         for the value number of the expr.
15157
15158         Revert
15159         2008-08-21  Richard Guenther  <rguenther@suse.de>
15160
15161         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15162         a PHI ask VN if it is already available.
15163         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15164         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
15165
15166 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
15167
15168         PR middle-end/38934
15169         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15170         set to varying whenever max has TREE_OVERFLOW set, similarly
15171         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15172
15173 2009-01-28  Richard Guenther  <rguenther@suse.de>
15174
15175         PR middle-end/38908
15176         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15177         uninitialized aggregate uses in call arguments.
15178
15179 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
15180
15181         PR tree-optimization/38984
15182         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15183         the nothing_id variable if -fno-delete-null-pointer-checks.
15184
15185 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
15186
15187         PR target/38988
15188         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15189         (set_got_offset_rex64): Ditto.
15190
15191 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15192
15193         PR target/38941
15194         * doc/extend.texi: Improve local variable with asm reg.
15195
15196 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
15197
15198         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15199         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15200         was not supplied then set warn_packed_bitfield_compat to the
15201         default value of 1.
15202         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15203         against 1.
15204
15205 2009-01-27  Richard Guenther  <rguenther@suse.de>
15206
15207         PR tree-optimization/38503
15208         * cfgexpand.c (expand_gimple_basic_block): Ignore
15209         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15210         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15211         variables that cannot have TBAA applied.
15212         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15213         statements.
15214
15215 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
15216
15217         PR middle-end/38969
15218         * calls.c (initialize_argument_information): Do not wrap complex
15219         arguments in SAVE_EXPR.
15220
15221 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
15222
15223         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
15224         (INSTALL_LIBGCC): Revert typo commit.
15225
15226 2009-01-26  Richard Guenther  <rguenther@suse.de>
15227
15228         PR tree-optimization/38745
15229         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15230         from special handling.
15231
15232 2009-01-26  Richard Guenther  <rguenther@suse.de>
15233
15234         PR tree-optimization/38745
15235         * tree-ssa.c (execute_update_addresses_taken): Do not include
15236         variables that cannot possibly be a register in not_reg_needs.
15237         Do not clear TREE_ADDRESSABLE on vars that may not become
15238         registers.
15239         * tree-ssa.c (update_alias_info_1): Include those in the set
15240         of addressable vars.
15241
15242 2009-01-26  Richard Guenther  <rguenther@suse.de>
15243
15244         PR middle-end/38851
15245         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15246         * tree-ssa-dse.c: Include langhooks.h
15247         (execute_simple_dse): Remove stores with zero size.
15248
15249 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR c/38957
15252         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15253         as PLUS_EXPR.
15254
15255 2009-01-24  Julian Brown  <julian@codesourcery.com>
15256
15257         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15258         config/arm/linux-atomic.c.
15259         * config/arm/linux-atomic.c: New.
15260
15261 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
15262
15263         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15264         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15265         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15266
15267 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15268
15269         PR c/38938
15270         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
15271         properly.
15272
15273 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
15274
15275         PR tree-optimization/38953
15276         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15277         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15278         (gloog): Split the exit of the scop when the scop exit is a loop exit.
15279         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15280         changed the CFG.
15281
15282 2009-01-24  Paul Brook  <paul@codesourcery.com>
15283
15284         * config/arm/neon.md (neon_type): Move to arm.md.
15285         (neon_mov<VSTRUCT>): Add neon_type attribute.
15286         * config/arm/arm.md (neon_type): Move to here.
15287         (conds): Add "unconditioal" and use as default for NEON insns.
15288
15289 2009-01-24  Ben Elliston  <bje@au.ibm.com>
15290
15291         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15292         void *' warning from -Wc++-compat.
15293         * Makefile.in (dominance.o-warn): Remove.
15294
15295 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
15296
15297         PR tree-optimization/38932
15298         * fold-const.c (fold_unary_ignore_overflow): New.
15299         * tree.h (fold_unary_ignore_overflow): Declare.
15300         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15301         * tree-ssa-sccvn.c (visit_reference_op_load,
15302         simplify_unary_expression): Likewise.
15303
15304 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
15305
15306         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15307         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
15308         regardless of their type.
15309         * c-common.c (handle_packed_attribute): Don't ignore packed on
15310         bitfields.
15311         * c.opt (Wpacked-bitfield-compat): New warning option.
15312         * stor-layout.c (place_field): Warn if offset of a field changed.
15313         * doc/extend.texi (packed): Mention the ABI change.
15314         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15315         (Warning Options): Add it to the list.
15316
15317 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15318
15319         * c-opts.c (c_common_post_options): Fix a typo in comments.
15320
15321 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
15322
15323         PR middle-end/38615
15324         * gimplify.c (gimplify_init_constructor): Fix promotion of const
15325         variables to static.
15326         * doc/invoke.texi (-fmerge-all-constants): Update description.
15327
15328 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
15329
15330         PR target/38931
15331         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15332         (*movdi_1_rex64): Use type "mmx" for alternative 5.
15333
15334 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
15335
15336         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15337         a word boundary.
15338         (LOCAL_ALIGNMENT): Similarly.
15339
15340 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
15341             Joseph Myers  <joseph@codesourcery.com>
15342
15343         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15344         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15345         * config/arm/arm-tune.md: Regenerate.
15346         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
15347         -march=iwmmxt2.
15348
15349 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
15350
15351         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
15352         version number to five.
15353
15354 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
15355
15356         PR c++/38930
15357         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
15358         * c-common.c (set_underlying_type): Likewise.
15359         (is_typedef_decl ): Likewise
15360         * tree.h: Likewise
15361         (set_underlying_type): Likewise.
15362         (is_typedef_type): Likewise.
15363
15364 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
15365
15366         PR middle-end/38587
15367         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
15368         crossing setjmps.
15369
15370 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
15371
15372         PR bootstrap/37660
15373         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
15374         (LIBGCC_SPEC):  Don't define.
15375         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
15376
15377 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
15378
15379         PR rtl-optimization/38879
15380         * alias.c (base_alias_check): Unaligned access via AND address can
15381         alias all surrounding object types except those with sizes equal
15382         or wider than the size of unaligned access.
15383
15384 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
15385
15386         PR c++/26693
15387         * c-decl.c (clone_underlying_type): Move this ...
15388         * c-common.c (set_underlying_type): ... here.
15389         Also, make sure the function properly sets TYPE_STUB_DECL() on
15390         the newly created typedef variant type.
15391         (is_typedef_decl ): New entry point.
15392         * tree.h: Added a new member member_types_needing_access_check to
15393         struct tree_decl_non_common.
15394         (set_underlying_type): New entry point.
15395         (is_typedef_type): Likewise.
15396
15397 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
15398
15399         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
15400         Check whether two instructions have memory references that
15401         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
15402         are helper functions for traversing.
15403         * alias.h (insn_alias_sets_confilict_p): New prototypes.
15404         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
15405         not to draw dependency edge for instructions with non-conflicting
15406         alias sets.
15407
15408 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
15409
15410         PR other/38758
15411         * longlong.h: Update copyright years.  Use soft-fp license notice.
15412         Sync __clz_tab declaration with glibc.
15413
15414 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
15415
15416         PR target/30687
15417         * doc/extend.texi (syscall_linkage): New.
15418         (version_id): Modify.
15419
15420 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15421             Richard Guenther  <rguenther@suse.de>
15422
15423         PR tree-optimization/38747
15424         PR tree-optimization/38748
15425         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
15426         conversion if the base address is an indirect reference and the
15427         aliasing sets could cause issues.
15428
15429 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
15430
15431         * common.opt (fgraphite, fgraphite-identity): Add comment for
15432         explaining why these options are not documented.
15433
15434 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
15435
15436         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
15437         gimple_call_lhs is NULL.
15438
15439 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
15440
15441         PR target/38868
15442         * emit-rtl.c (adjust_address_1): Make sure memref is never
15443         overwritten.
15444
15445 2009-01-20  Ben Elliston  <bje@au.ibm.com>
15446
15447         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15448         const qualifier from arg parameter. Remove unnecessary cast to char *.
15449         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
15450         const qualifier from arg 2.
15451
15452 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
15453
15454         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
15455
15456 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
15457
15458         PR c/38869
15459         * rtl.h (reinit_regs): New prototype.
15460         * regclass.c: Include ira.h.
15461         (reinit_regs): New.
15462         * Makefile.in (regclass.o): Add ira.h.
15463         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
15464
15465 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
15466
15467         PR target/38736
15468         * c-common.c (handle_aligned_attribute): Use
15469         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
15470         default alignment value.
15471
15472         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
15473
15474         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
15475         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
15476
15477         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
15478         __BIGGEST_ALIGNMENT__.
15479
15480         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
15481
15482 2009-01-18  Richard Guenther  <rguenther@suse.de>
15483
15484         PR tree-optimization/38819
15485         * tree-flow.h (operation_could_trap_helper_p): Declare.
15486         * tree-eh.c (operation_could_trap_helper_p): Export.
15487         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
15488         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
15489         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
15490         are about to insert a possibly trapping instruction and fail
15491         in this case.
15492
15493 2009-01-18  Andreas Schwab  <schwab@suse.de>
15494
15495         * doc/install.texi (Configuration): Remove obsolete paragraph
15496         about use of --with-gnu-ld with --with-gnu-as.
15497
15498 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
15499
15500         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
15501         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
15502         Follow spelling conventions.
15503
15504 2009-01-18  Ben Elliston  <bje@au.ibm.com>
15505
15506         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
15507         C++ warning about implicit conversion from void * to struct
15508         bitmap_head_def *.
15509         (bitmap_obstack_free): Likewise for bitmap_element *.
15510         * Makefile.in (bitmap.o-warn): Remove.
15511
15512 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
15513
15514         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
15515
15516 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
15517             Tobias Grosser  <tobi.grosser@amd.com>
15518
15519         * graphite.c (graphite_trans_scop_block): Do not block single
15520         nested loops.
15521
15522 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
15523
15524         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
15525         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
15526         test with assertion.
15527
15528 2009-01-16  Richard Guenther  <rguenther@suse.de>
15529
15530         PR tree-optimization/38835
15531         PR middle-end/36227
15532         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
15533         and INT + PTR -> (INT)(PTR p+ INT) folding.
15534         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
15535
15536 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
15537
15538         PR target/38554
15539         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
15540         the subreg from a lowpart subreg if it is also casting the value.
15541
15542 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15543             Tobias Grosser  <tobi.grosser@amd.com>
15544
15545         * graphite.c (compare_prefix_loops): New.
15546         (build_scop_canonical_schedules): Rewritten.
15547         (graphite_transform_loops): Move build_scop_canonical_schedules
15548         after build_scop_iteration_domain.
15549
15550 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15551             Tobias Grosser  <tobi.grosser@amd.com>
15552
15553         * graphite.c (add_conditions_to_domain): Add the loops to
15554         the dimension of the iteration domain.  Do copy the domain
15555         only when it exists.
15556         (build_scop_conditions_1): Do not call add_conditions_to_domain.
15557         (add_conditions_to_constraints): New.
15558         (can_generate_code_stmt, can_generate_code): Removed.
15559         (gloog): Do not call can_generate_code.
15560         (graphite_transform_loops): Call add_conditions_to_constraints
15561         after building the iteration domain.
15562
15563 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
15564
15565         PR tree-optimization/38789
15566         * tree-ssa-threadedge.c
15567         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
15568         __builtin_constant_p.
15569
15570 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
15571
15572         * dce.c (delete_unmarked_insns): Reversed the order that insns are
15573         examined before deleting them.
15574
15575 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
15576
15577         * function.c (aggregate_value_p): Correctly extract the function
15578         type from CALL_EXPR_FN lookup.
15579
15580 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15581
15582         * config/picochip/picochip.c (picochip_override_options): Revert
15583         CFI asm flag disable commited previously.
15584
15585 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15586             Tobias Grosser  <tobi.grosser@amd.com>
15587             Jan Sjodin  <jan.sjodin@amd.com>
15588
15589         * graphite.c (scan_tree_for_params): On substractions negate
15590         all the coefficients of the term.
15591         (clast_to_gcc_expression_red): New.  Handle reduction expressions
15592         of more than two operands.
15593         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15594         (get_vdef_before_scop): Handle also the case of default definitions.
15595
15596 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
15597
15598         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15599         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15600         Also use them when walking CALL_INSN_FUNCTION_USAGE.
15601
15602 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
15603             Joey Ye  <joey.ye@intel.com>
15604
15605         PR middle-end/37843
15606         * cfgexpand.c (expand_stack_alignment): Don't update stack
15607         boundary nor check incoming stack boundary here.
15608         (gimple_expand_cfg): Update stack boundary and check incoming
15609         stack boundary here.
15610
15611 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
15612
15613         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
15614
15615 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
15616
15617         PR rtl-optimization/38245
15618         * calls.c (expand_call): Add stack arguments to
15619         CALL_INSN_FUNCTION_USAGE even for pure calls (when
15620         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15621         in regs and partially in memory or BLKmode arguments.
15622         (emit_library_call_value_1): Add stack arguments to
15623         CALL_INSN_FUNCTION_USAGE even for pure calls (when
15624         ACCUMULATE_OUTGOING_ARGS).
15625         * dce.c: Include tm_p.h.
15626         (find_call_stack_args): New function.
15627         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
15628         argument.
15629         (mark_insn): Call find_call_stack_args for CALL_Ps.
15630         (prescan_insns_for_dce): Walk insns backwards in bb rather than
15631         forwards.  Allocate and free arg_stores bitmap if needed, pass it
15632         down to deletable_insn_p, don't mark stores set in arg_stores
15633         bitmap, clear the bitmap at the beginning of each bb.
15634         * Makefile.in (dce.o): Depend on $(TM_P_H).
15635
15636 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
15637
15638         PR target/22599
15639         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15640         to make sure the insn is a conditional test (bug 22599).  Reformat a
15641         few long lines.
15642
15643 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
15644
15645         PR middle-end/38431
15646         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15647         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15648         (gloog): Do not call cleanup_tree_cfg.
15649         (graphite_transform_loops): Call cleanup_tree_cfg after all
15650         scops have been code generated.
15651
15652 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
15653         * doc/gty.texi (Invoking the garbage collector): Added new node
15654         and section documenting ggc_collect.
15655
15656 2009-01-14  Richard Guenther  <rguenther@suse.de>
15657
15658         PR tree-optimization/38826
15659         PR middle-end/38477
15660         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15661         initialization notes only if we actually emitted a warning.
15662         (intra_create_variable_infos): Add constraints for a result decl
15663         that is passed by hidden reference.
15664         (build_pred_graph): Mark all related variables non-direct on
15665         address-taking.
15666
15667 2009-01-14  Nick Clifton  <nickc@redhat.com>
15668
15669         * ira-conflicts.c: Include addresses.h for the definition of
15670         base_reg_class.
15671         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15672         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
15673
15674 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15675
15676         PR target/38811
15677         * Makefile.in (ira-lives.o): Add except.h.
15678
15679         * ira-lives.c: Include except.h.
15680         (process_bb_node_lives): Process can_throw_internal.
15681
15682 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
15683
15684         PR rtl-optimization/38774
15685         * combine.c (simplify_set): When undoing cc_use change, don't do
15686         PUT_CODE on the newly created comparison, but instead put back the
15687         old comparison.
15688
15689 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
15690
15691         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15692         values.  Remove duplicate arm8 entry.
15693
15694 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
15695
15696         PR tree-optimization/38786
15697         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15698         the SSA_NAME case of expand_scalar_variables_expr.
15699         Set the type of an expression to the type of its assign statement.
15700         (expand_scalar_variables_expr): Also gather the scalar computation
15701         used to index the memory access.  Do not pass loop_p.
15702         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
15703         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
15704         the gimple_stmt_iterator where it inserts new code.
15705         Do not pass loop_p.
15706         (copy_bb_and_scalar_dependences): Do not pass loop_p.
15707         (translate_clast): Update call to copy_bb_and_scalar_dependences.
15708
15709 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
15710
15711         * graphite.h (debug_value): Removed.
15712         * graphite.c (debug_value): Removed.
15713
15714 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
15715
15716         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15717         ldrd/strd with two 32-bit instructions.
15718
15719 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
15720
15721         * config/arm/arm.c (struct processors): Pass for speed down into
15722         cost helper functions.
15723         (const_ok_for_op): Handle COMPARE and inequality nodes.
15724         (arm_rtx_costs_1): Rewrite.
15725         (arm_size_rtx_costs): Update prototype.
15726         (arm_rtx_costs): Pass speed down to helper functions.
15727         (arm_slowmul_rtx_costs): Rework cost calculations.
15728         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15729         (arm_9e_rtx_costs): Likewise.
15730
15731 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
15732
15733         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
15734         relocations of local symbols wider than UNITS_PER_WORD are not valid.
15735         (alpha_legitimize_address): Do not split local symbols wider than
15736         UNITS_PER_WORD into HIGH/LO_SUM parts.
15737
15738 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
15739
15740         PR bootstrap/38580
15741         * gcc.c (process_command): Replace call to execvp with calls
15742         to pex_one and exit.
15743
15744 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
15745
15746         PR target/29141
15747         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15748         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15749         variant for devices with 3-byte PC.
15750         (__tablejump_elpm__): New.
15751
15752 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
15753
15754         PR c/32041
15755         * c-parser.c (c_parser_postfix_expression): Allow `->' in
15756         offsetof member-designator, handle it as `[0].'.
15757
15758 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15759
15760         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15761         function when not using named sections on targets with named sections
15762         if branch distance is less than 262132.
15763
15764 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
15765
15766         * combine.c (combine_instructions):  Recompute
15767         optimize_this_for_speed_p  for each BB in the main combine loop.
15768
15769 2009-01-12  Tomas Bily  <tbily@suse.cz>
15770
15771         PR middlend/38385
15772         * tree-loop-distribution.c (prop_phis): New function.
15773         (generate_builtin): Call prop_phis.
15774         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
15775
15776 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
15777
15778         PR tree-optimization/38807
15779         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15780         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15781
15782 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
15783
15784         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15785         subreg of op0 to the original op0.
15786
15787 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
15788
15789         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
15790
15791 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
15792
15793         PR debug/7055
15794         * mips-tfile.c (parse_def): Fix parsing of def strings
15795         starting with digits.
15796
15797 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
15798
15799         PR target/38695
15800         * config/arm/arm.c (arm_is_long_call_p): Don't call
15801         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15802
15803 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
15804
15805         * regrename.c (regrename_optimize): Fix dumping.
15806         (find_oldest_value_reg): Preserve REG_POINTER.
15807         (copy_hardreg_forward_1): Likewise.
15808
15809 2009-01-09  Diego Novillo  <dnovillo@google.com>
15810
15811         * gimple.h (struct gimple_statement_base) <uid>: Document
15812         the restrictions on its use.
15813         (gimple_uid): Tidy.
15814         (gimple_set_uid): Tidy.
15815
15816 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15817
15818         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15819         zero guard even if align_bytes != 0 and count is smaller than
15820         size_needed.
15821
15822 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
15823
15824         PR rtl-optimization/38495
15825         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
15826         (add_range_and_copies_from_move_list): Print all added ranges.
15827         Add ranges to memory optimized destination.
15828
15829 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15830
15831         PR target/38686
15832         PR target/38708
15833         * config/i386/i386.c (override_options): Reject
15834         -mstringop-strategy=rep_8byte with -m32.
15835         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15836         to 1.  Do count comparison against epilogue_size_needed at compile
15837         time even when count_exp was constant forced into register.  For
15838         size_needed don't jump to epilogue, instead just avoid aligning
15839         and invoke the body algorithm.  If need_zero_guard, add zero guard
15840         even if count is non-zero, but smaller than size_needed + number of
15841         bytes that could be stored for alignment.
15842         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15843         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
15844         but smaller than size_needed + number of bytes that could be stored
15845         for alignment.  Compare size_needed with epilogue_size_needed instead
15846         of desired_align - align, don't adjust size_needed, pass
15847         epilogue_size_needed to the epilogue expanders.
15848
15849         PR c/35742
15850         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
15851
15852 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15853
15854         * pa.c (last_address): Change to unsigned.
15855         (update_total_code_bytes): Change argument to unsigned.  Don't
15856         check if insn addresses are set.
15857         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15858         addresses are not set.
15859         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15860
15861 2009-01-09  Nick Clifton  <nickc@redhat.com>
15862
15863         * config/sh/symbian.c: Replace uses of DECL_INLINE with
15864         DECL_DECLARED_INLINE_P.
15865
15866 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15867
15868         PR middle-end/38347
15869         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15870         GET_MODE (op0) in operand_subword_force calls.
15871
15872         PR middle-end/38771
15873         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15874         fold_convert arg0 operands to TREE_TYPE (op0) first.
15875
15876 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
15877
15878         * params.def (ira-max-conflict-table-size): Decrease default value
15879         to 1000.
15880
15881 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
15882
15883         PR tree-optimization/37031
15884         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15885         on parameter_set.
15886         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15887         allocate it using gc instead of heap, use VEC_quick_push instead of
15888         VEC_safe_push.
15889         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15890         instead of heap, use VEC_quick_push instead of VEC_safe_push.
15891         * tree-data-ref.h (struct access_matrix): Change matrix to gc
15892         allocated vector from heap allocated.
15893         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15894         * tree-loop-linear.c (linear_transform_loops): Allocate nest
15895         vector only after perfect_loop_nest_depth call.
15896
15897 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
15898             Jan Sjodin  <jan.sjodin@amd.com>
15899
15900         PR tree-optimization/38559
15901         * graphite.c (debug_value, copy_constraint,
15902         swap_constraint_variables, scale_constraint_variable, ): New.
15903         (get_lower_bound, get_upper_bound): Removed.
15904         (graphite_trans_bb_strip_mine): Clean up this code that works
15905         only for constant number of iterations.  Fully copy upper and
15906         lower bound constraints, not only the constant part of them.
15907         * graphite.h (debug_value): Declared.
15908
15909 2009-01-08  Ira Rosen  <irar@il.ibm.com>
15910
15911         PR tree-optimization/37194
15912         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
15913         Don't add the cost of cost model guard in prologue to scalar
15914         outside cost in case of known number of iterations.
15915
15916 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
15917             Alan Modra  <amodra@bigpond.net.au>
15918
15919         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15920         non-word-aligned REG+CONST addressing.
15921
15922 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15923
15924         PR target/38706
15925         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15926         free_after_compilation when outputting a thunk.
15927         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15928         Do not call free_after_compilation here.
15929
15930 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15931
15932         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
15933         (ix86_valid_target_attribute_inner_p): Ditto.
15934
15935 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
15936
15937         PR tree-optimization/38492
15938         PR tree-optimization/38498
15939         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15940         * tree-chrec.h (scev_is_linear_expression): Declared.
15941         * graphite.c (graphite_cannot_represent_loop_niter): New.
15942         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15943         (graphite_loop_normal_form): Use gcc_assert.
15944         (scan_tree_for_params): Use CASE_CONVERT.
15945         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15946         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15947         Use gcc_assert.  Discard scops that contain unhandled cases.
15948         (build_scop_conditions): Return a boolean status for unhandled cases.
15949         (strip_mine_profitable_p): Print the loop number, not its depth.
15950         (is_interchange_valid): Pass the depth of the loop nest, don't
15951         recompute it wrongly.
15952         (graphite_trans_bb_block): Same.
15953         (graphite_trans_bb_block): Print tentative of loop blocking.
15954         (graphite_trans_scop_block): Do not print that the loop has been
15955         blocked.
15956         (graphite_transform_loops): Do not handle scops that contain condition
15957         scalar phi nodes.
15958
15959 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15960
15961         AVX Programming Reference (December, 2008)
15962         * config/i386/avxintrin.h (_mm256_stream_si256): New.
15963         (_mm256_stream_pd): Likewise.
15964         (_mm256_stream_ps): Likewise.
15965
15966         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15967         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15968         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15969         (bdesc_special_args): Add __builtin_ia32_movntdq256,
15970         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15971         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15972         (ix86_expand_special_args_builtin): Likewise.
15973
15974         * config/i386/sse.md (AVXMODEDI): New.
15975         (avx_movnt<mode>): Likewise.
15976         (avx_movnt<mode>): Likewise.
15977         (<sse>_movnt<mode>): Remove AVX support.
15978         (sse2_movntv2di): Likewise.
15979
15980 2009-01-07  Richard Guenther  <rguenther@suse.de>
15981
15982         PR middle-end/38751
15983         * fold-const.c (extract_muldiv): Remove obsolete comment.
15984         (fold_plusminus_mult_expr): Undo MINUS_EXPR
15985         to PLUS_EXPR canonicalization for the canonicalization.
15986
15987 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
15988
15989         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15990         hosted cross-compilers generating less efficient code.
15991
15992 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
15993
15994         * function.h (rtl_data): Add a dbr_scheduled_p field.
15995         * reorg.c (dbr_schedule): Set it.
15996         (gate_handle_delay_slots): Check it.
15997         * config/mips/mips.c (mips_base_delayed_branch): Delete.
15998         (mips_reorg): Check flag_delayed_branch instead of
15999         mips_base_delayed_branch.
16000         (mips_override_options): Don't set mips_base_delayed_branch
16001         or flag_delayed_branch.
16002
16003 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
16004
16005         PR rtl-optimization/38426.
16006         * ira.c (ira): Set current_function_is_leaf earlier.
16007
16008 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
16009
16010         PR rtl-optimization/38722
16011         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16012         too early, only set a flag and modify after last possible
16013         undo_all point.
16014
16015 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
16016
16017         PR c/34252
16018         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16019         * real.c (decimal_single_format): Correct values of emin and emax.
16020         (decimal_double_format): Ditto.
16021         (decimal_quad_format): Ditto.
16022         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16023         computation of DECnn_MIN and DECnn_MAX for corrected values of
16024         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
16025         __DECnn_MIN__, and adjust its computation for the corrected value
16026         of emin.
16027
16028 2009-01-06  Jan Hubicka  <jh@suse.cz>
16029
16030         PR target/38744
16031         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
16032
16033 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16034
16035         * doc/contrib.texi (Contributors): Slightly adjust the end note.
16036         Add Robert Clark to the list of testers.
16037
16038 2009-01-06  Jan Hubicka  <jh@suse.cz>
16039             Kai Tietz  <kai.tietz@onevision.com>
16040
16041         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16042         * config/i386/i386.c (ix86_expand_call): Add clobbers.
16043
16044 2009-01-06  Jan Hubicka  <jh@suse.cz>
16045             Kai Tietz  <kai.tietz@onevision.com>
16046
16047         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16048         for w64 ABI.
16049         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
16050         (ix86_nsaved_regs): Count only general purpose regs.
16051         (ix86_nsaved_sseregs): New.
16052         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16053         to 16 for w64; compute padding and size of sse reg save area.
16054         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16055         general purpose regs.
16056         (ix86_emit_save_sse_regs_using_mov): New.
16057         (ix86_expand_prologue): Save SSE regs if needed.
16058         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16059         (ix86_emit_restore_sse_regs_using_mov): New.
16060         (ix86_expand_epilogue): Save SSE regs if needed.
16061
16062 2009-01-06  Jan Hubicka  <jh@suse.cz>
16063             Kai Tietz  <kai.tietz@onevision.com>
16064
16065         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16066         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16067         functions when accumulate outgoing args is off.
16068
16069 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
16070
16071         PR bootstrap/38742
16072         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16073         before using pseudos_have_intersected_live_ranges_p.
16074
16075         * ira-int.h (ira_assert): Always define.
16076
16077 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
16078
16079         AVX Programming Reference (December, 2008)
16080         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16081         (_mm256_permute2_pd): Likewise.
16082         (_mm_permute2_ps): Likewise.
16083         (_mm256_permute2_ps): Likewise.
16084         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16085         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16086
16087         * config/i386/i386.c (ix86_builtins): Remove
16088         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16089         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16090         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16091         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16092         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16093         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16094         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16095         __builtin_ia32_vpermil2ps256.
16096         (ix86_init_mmx_sse_builtins): Updated.
16097         (ix86_expand_args_builtin): Likewise.
16098
16099 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16100
16101         * pa.c (output_call): Relocate non-jump insns in the delay slot of
16102         long absolute calls when generating PA 2.0 code.
16103
16104 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
16105
16106         PR rtl-optimization/38583
16107         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16108
16109         * params.def (ira-max-conflict-table-size): New.
16110
16111         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
16112
16113         * ira.h (ira_conflicts_p): New external definition.
16114
16115         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16116         table.  Report this.  Return result of building.
16117         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
16118         building conflict table.
16119
16120         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
16121         (ira_color): Use ira_conflicts_p.
16122
16123         * global.c: Include ira.h.
16124         (pseudo_for_reload_consideration_p, build_insn_chain): Use
16125         ira_conflicts_p.
16126
16127         * Makefile.in (global.o): Add ira.h.
16128
16129         * ira-build.c (mark_all_loops_for_removal,
16130         propagate_some_info_from_allocno): New.
16131         (remove_unnecessary_allocnos): Call
16132         propagate_some_info_from_allocno.
16133         (remove_low_level_allocnos): New.
16134         (remove_unnecessary_regions): Add parameter.  Call
16135         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
16136         parameter to remove_unnecessary_regions.
16137         (ira_build): Remove all regions but root if the conflict table was
16138         not built.  Update conflict hard regs for allocnos crossing calls.
16139
16140         * ira.c (ira_conflicts_p): New global.
16141         (ira): Define and use ira_conflicts_p.
16142
16143         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16144         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
16145         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
16146
16147 2009-01-06  Ben Elliston  <bje@au.ibm.com>
16148
16149         * gengtype-lex.l (YY_NO_INPUT): Define.
16150
16151 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16152
16153         PR c/34911
16154         * c-common.c (handle_vector_size_attribute): Also reject
16155         BOOLEAN_TYPE types.
16156
16157 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
16158
16159         PR tree-optimization/38492
16160         * graphite.c (rename_map_elt, debug_rename_elt,
16161         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16162         rename_map_elt_info, eq_rename_map_elts,
16163         get_new_name_from_old_name, bb_in_sese_p): Moved around.
16164         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16165         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16166         (sese_build_livein_liveouts): New.
16167         (new_sese, free_sese): New.
16168         (new_scop): Call new_sese.
16169         (free_scop): Call free_sese.
16170         (rename_variables_from_edge, rename_phis_end_scop): Removed.
16171         (register_old_new_names): Renamed register_old_and_new_names.
16172         (register_scop_liveout_renames, add_loop_exit_phis,
16173         insert_loop_close_phis, struct igp,
16174         default_liveout_before_guard, add_guard_exit_phis,
16175         insert_guard_phis, copy_renames): New.
16176         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16177         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16178         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16179         (scop_adjust_phis_for_liveouts): New.
16180         (gloog): Call scop_adjust_phis_for_liveouts.
16181
16182         * graphite.h (struct sese): Documented.  Added fields liveout,
16183         num_ver and livein.
16184         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16185         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16186         (struct scop): Added field liveout_renames.
16187         (SCOP_LIVEOUT_RENAMES): New.
16188
16189 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16190
16191         PR tree-optimization/38510
16192         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16193         (translate_clast): Call recompute_all_dominators before
16194         graphite_verify.
16195         (gloog): Call recompute_all_dominators before graphite_verify.
16196
16197 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16198             Jan Sjodin  <jan.sjodin@amd.com>
16199
16200         PR tree-optimization/38500
16201         * graphite.c (create_sese_edges): Call fix_loop_structure after
16202         splitting blocks.
16203
16204 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
16205
16206         * config.gcc: Add m32r*-*-rtems*.
16207         * config/m32r/rtems.h: New file.
16208
16209 2009-01-05  Ben Elliston  <bje@au.ibm.com>
16210
16211         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16212         (.po.pox): Likewise.
16213         (po/gcc.pot): Likewise.
16214
16215 2009-01-04  David S. Miller  <davem@davemloft.net>
16216
16217         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16218         (STARTING_FRAME_OFFSET): Always set to zero.
16219
16220 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
16221
16222         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16223         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16224         fixed-point types, and vectors of the same.
16225
16226 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
16227
16228         * config/mips/sync.md (*mb_barrier): Rename to...
16229         (*memory_barrier): ...this.
16230
16231 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
16232
16233         * doc/extend.texi (Function Attributes): Move @cindex after @item
16234         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
16235         and put in alphabetical order. Fix 'target' name and put in order.
16236         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16237         typos.
16238
16239 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
16240
16241         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16242         (memory_barrier): Expand as unspec instead of unspec_volatile.
16243         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16244         (*memory_barrier): Define as unspec instead of unspec_volatile.
16245         Use (match_dup 0) as input operand.
16246
16247         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16248         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16249         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
16250         scratch register.  Remove operand 1.
16251         (*stbar): Define as unspec instead of unspec_volatile.
16252         Use (match_dup 0) as input operand, remove (const_int 8).
16253         (*membar): Define as unspec instead of unspec_volatile.
16254         Use (match_dup 0) as input operand, remove input operand 2.
16255
16256         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16257         (memory_barrier): Expand as unspec instead of unspec_volatile.
16258         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16259         (*memory_barrier): Define as unspec instead of unspec_volatile.
16260         Use (match_dup 0) as input operand.
16261
16262         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16263         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16264         Set volatile flag on operand 0.
16265         (*memory_barrier): New insn pattern.
16266
16267         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16268         insn operands.
16269         (*memory_barrier): Use (match_dup 0) as input operand.
16270
16271         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16272         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16273         Set volatile flag on operand 0.
16274         (*mb_internal): New insn pattern.
16275
16276         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16277
16278 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
16279
16280         PR middle-end/38586
16281         * function.c (struct temp_slot): Move to the section of the file
16282         that deals with temp slots.  Remove field 'address'.
16283         (temp_slot_address_table): New hash table of address -> temp slot.
16284         (struct temp_slot_address_entry): New struct, items for the table.
16285         (temp_slot_address_compute_hash, temp_slot_address_hash,
16286         temp_slot_address_eq, insert_temp_slot_address): Support functions
16287         for the new table.
16288         (find_temp_slot_from_address): Rewrite to use the new hash table.
16289         (remove_unused_temp_slot_addresses): Remove addresses of temp
16290         slots that have been made available.
16291         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16292         worker function for remove_unused_temp_slot_addresses.
16293         (assign_stack_temp_for_type): Don't clear the temp slot address list.
16294         Add the temp slot address to the address -> temp slot map.
16295         (update_temp_slot_address): Update via insert_temp_slot_address.
16296         (free_temp_slots): Call remove_unused_temp_slot_addresses.
16297         (pop_temp_slots): Likewise.
16298         (init_temp_slots): Allocate the address -> temp slot map, or empty
16299         the map if it is already allocated.
16300         (prepare_function_start): Initialize temp slot processing.
16301
16302 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
16303
16304         PR middle-end/38584
16305         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16306         Calculate the size of all stack vars assuming no packing of stack
16307         vars will happen, replacing a quadratic algorithm with a linear one.
16308
16309 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
16310
16311         PR target/38707
16312         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16313         can't be used.
16314
16315 2009-01-03  Diego Novillo  <dnovillo@google.com>
16316
16317         * doc/contrib.texi: Update contributions.
16318
16319 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
16320
16321         PR c++/38705
16322         * builtins.c (fold_builtin_memory_op): Give up if either operand
16323         is volatile.  Set srctype or desttype to non-qualified version
16324         of the other type.
16325
16326         PR c/38700
16327         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16328         and FUNCTION_DECLs.
16329
16330 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
16331
16332         PR rtl-optimization/35805
16333         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16334         problem if fast dce is able to remove any instructions.
16335         * dce.c (dce_process_block): Fix dump message.
16336
16337 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
16338
16339         PR 33649
16340         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16341
16342 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
16343
16344         PR middle-end/38690
16345         * tree-flow.h (op_code_prio, op_prio): New prototypes.
16346         * tree-pretty-print.c (op_code_prio): New function.
16347         (op_prio): No longer static.  Use op_code_prio.
16348         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
16349         Use op_prio and op_code_prio to determine if () should be
16350         printed around operand(s) or not.
16351
16352         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
16353         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
16354         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
16355         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
16356         pp_character instead of pp_string for single letter printing.
16357
16358 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
16359
16360         * doc/extend.texi: Fix '#pragma GCC option' typo.
16361
16362 2009-01-02  Richard Guenther  <rguenther@suse.de>
16363
16364         * doc/install.texi (--enable-checking): Mention different
16365         default for stage1.
16366         (--enable-stage1-checking): Document.
16367
16368 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
16369
16370         PR middle-end/30142
16371         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
16372         case to be an error.
16373
16374 2009-01-02  Ben Elliston  <bje@au.ibm.com>
16375
16376         * config/fp-bit.h (pack_d): Constify argument.
16377         * config/fp-bit.c (makenan): Constify return type. Remove casts.
16378         (isnan): Constify argument.
16379         (isinf): Likewise.
16380         (iszero): Likewise.
16381         (pack_d): Likewise.
16382         (_fpadd_parts): Constify return type.
16383         (_fpmul_parts): Likewise.
16384         (_fpdiv_parts): Likewise.
16385
16386 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
16387
16388         PR c/36489
16389         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
16390         warn about overwriting initializer with side-effects or
16391         -Woverride-init if !IMPLICIT.
16392         (output_init_element): Likewise.  Pass IMPLICIT down to
16393         add_pending_init.
16394         (process_init_element): Add IMPLICIT argument.  Pass it down
16395         to output_init_element.
16396         (push_init_element, pop_init_level, set_designator): Adjust
16397         process_init_element callers.
16398         (set_nonincremental_init, set_nonincremental_init_from_string):
16399         Adjust add_pending_init callers.
16400         (output_pending_init_elements): Adjust output_init_element callers.
16401         * c-tree.h (process_init_element): Adjust prototype.
16402         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
16403         process_init_element callers.
16404
16405 \f
16406 Copyright (C) 2009 Free Software Foundation, Inc.
16407
16408 Copying and distribution of this file, with or without modification,
16409 are permitted in any medium without royalty provided the copyright
16410 notice and this notice are preserved.