OSDN Git Service

* ChangeLog: Various fixes.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-17  Olivier Hainque  <hainque@adacore.com>
2
3         * collect2.c (main): Use CONST_CAST2 to perform char ** to
4         const char ** conversion in AIX specific section.
5         
6 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
7
8         * config/i386/i386.c (ix86_special_builtin_type): Remove
9         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
10         (bdesc_special_args): Updated.
11         (ix86_init_mmx_sse_builtins): Likewise.
12         (ix86_expand_special_args_builtin): Likewise.
13
14 2009-06-17  Richard Henderson  <rth@redhat.com>
15
16         * tree-pretty-print.c (maybe_dump_asm_name): New.
17         (dump_decl_name): Use it.
18         (PRINT_FUNCTION_NAME): Merge into...
19         (dump_function_name): ... here.  Use maybe_dump_asm_name.
20
21 2009-06-17  Cary Coutant  <ccoutant@google.com>
22
23         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
24         Change caller.
25         * debug.c (struct gcc_debug_hooks): Change placeholder for
26         source_line hook.
27         (debug_nothing_int_charstar_int): Replaced by...
28         (debug_nothing_int_charstar_int_bool): ...this.
29         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
30         source_line prototype.
31         (debug_nothing_int_charstar_int): Replaced by...
32         (debug_nothing_int_charstar_int_bool): ...this.
33         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
34         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
35         Output is_stmt operand when necessary.
36         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
37         (notice_source_line): Add is_stmt parameter.
38         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
39         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
40         Change callers.
41         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
42         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
43
44 2009-06-17  Ian Lance Taylor  <iant@google.com>
45
46         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
47         Change all uses.
48         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
49         call uses.
50
51 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
52
53         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
54         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
55         tree_strip_sign_nop_conversions and
56         tree_ssa_strip_useless_type_conversions rather than stripping
57         the operations here.
58         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
59         Declare them.
60         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
61         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
62         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
63         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
64         functions.
65
66 2009-06-17  Michael Eager  <eager@eagercon.com>
67
68         * config/rs6000/constraints.md (register_constraint "d"): New.
69         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
70         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
71         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
72         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
73         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
74         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
75         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
76         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
77         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
78         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
79         __fctiwz): Same.
80         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
81         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
82         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
83         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
84         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
85         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
86         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
87         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
88         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
89         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
90         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
91         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
92         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
93         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
94
95 2009-06-16  Ian Lance Taylor  <iant@google.com>
96
97         * profile.c (total_num_never_executed): Don't define.
98         (compute_branch_probabilities): Don't count or print
99         num_never_executed.
100         (init_branch_prob): Don't set total_num_never_executed.
101         (end_branch_prob): Don't print total_num_never_executed.
102
103 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
104
105         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
106
107 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
108
109         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
110         (nabstd2_fpr): Same.
111
112 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
113
114         * expr.c (expand_assignment): Change complex type check.
115
116 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
117
118         * doc/plugins.texi (Building GCC plugins): Added new section. 
119
120 2009-06-17  Ian Lance Taylor  <iant@google.com>
121
122         * c-pch.c (get_ident): Don't set size of templ array.
123         (pch_init): Don't set size of partial_pch array.
124
125         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
126         string constant to intialize an array whose size is the length of
127         the string.
128
129 2009-06-17  Richard Guenther  <rguenther@suse.de>
130
131         PR tree-optimization/40389
132         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
133         to addressable types.
134         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
135
136 2009-06-17  Richard Guenther  <rguenther@suse.de>
137
138         PR middle-end/40460
139         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
140         if there is no evolution of left in the loop bail out.
141         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
142         chrec_fold_multiply.
143
144 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
145             Janis Johnson  <janis187@us.ibm.com>
146
147         PR target/39254
148         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
149         for the symbol ref of a constant that is the source of a move
150         - nor for any other not-obvious-label-ref constants.
151
152 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
153
154         * plugin.c (position_pass): Skip newly inserted pass during list
155         traversal to avoid repeated insertion.
156
157 2009-06-16  Ian Lance Taylor  <iant@google.com>
158
159         * vec.h (VEC_stack_alloc): Define different version if
160         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
161         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
162         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
163         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
164
165 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
166
167         * config.gcc (extra_headers): Add ia32intrin.h for x86.
168
169         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
170         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
171         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
172         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
173         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
174         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
175         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
176         (bdesc_special_args): Add __builtin_ia32_rdtsc and
177         __builtin_ia32_rdtscp.
178         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
179         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
180         and __builtin_ia32_rorhi.
181         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
182         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
183         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
184         (ix86_expand_args_builtin): Likewise.
185         (ix86_expand_special_args_builtin): Likewise.
186
187         * config/i386/i386.md (UNSPECV_RDTSCP): New.
188         (UNSPECV_RDTSC): Likewise.
189         (UNSPECV_RDPMC): Likewise.
190         (*bsr): Renamed to ...
191         (bsr): This
192         (*bsr_rex64): Renamed to ...
193         (bsr_rex64): This.
194         (rdpmc): New.
195         (*rdpmc): Likewise.
196         (*rdpmc_rex64): Likewise.
197         (rdtsc): Likewise.
198         (*rdtsc): Likewise.
199         (*rdtsc_rex64): Likewise.
200         (rdtscp): Likewise.
201         (*rdtscp): Likewise.
202         (*rdtscp_rex64): Likewise.
203
204         * config/i386/ia32intrin.h: New.
205
206         * config/i386/x86intrin.h: Include <ia32intrin.h>.
207
208 2009-06-16  Ian Lance Taylor  <iant@google.com>
209
210         * ira-build.c (copy_info_to_removed_store_destinations):
211         Initialize parent_a.
212
213 2009-06-16  Ian Lance Taylor  <iant@google.com>
214
215         * c-decl.c (grokdeclarator): Change size_varies to bool.
216
217 2009-06-16  Ian Lance Taylor  <iant@google.com>
218
219         * sel-sched.c: Make forward declarations of move_op_hooks and
220         fur_hooks explicitly extern.
221
222 2009-06-16  Ian Lance Taylor  <iant@google.com>
223
224         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
225         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
226
227 2009-06-16  Ian Lance Taylor  <iant@google.com>
228
229         * resource.c (mark_referenced_resources): Change
230         include_delayed_effects parameter to bool.  Change all callers.
231         (mark_end_of_function_resources): Likewise.
232         * reorg.c (insn_references_resource_p): Likewise.
233         (insn_sets_resource_p): Likewise.
234         * resource.h (mark_referenced_resources): Update declaration.
235         (mark_end_of_function_resources): Update declaration.
236
237 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
238
239         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
240
241 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
242
243         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
244         GCC can bootstrap on AIX with GNU Binutils 2.20.
245
246 2009-06-16  Ian Lance Taylor  <iant@google.com>
247
248         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
249
250 2009-06-16  Ian Lance Taylor  <iant@google.com>
251
252         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
253         inline, not extern inline.
254         (exact_log2): Likewise.
255         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
256         test CLZ_HWI.
257         (exact_log2): Likewise, but don't test CTZ_HWI.
258
259 2009-06-16  Ian Lance Taylor  <iant@google.com>
260
261         * bitmap.c (bitmap_clear): Don't declare as inline.
262         * gimple.c (gimplify_assign): Likewise.
263         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
264         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
265         (sched_scan_info): Remove duplicate definition.
266
267 2009-06-16  Ian Lance Taylor  <iant@google.com>
268
269         * c-common.c (skip_evaluation): Don't define.
270         (c_inhibit_evaluation_warnings): Define global variable.
271         (overflow_warning): Check c_inhibit_evaluation_warnings rather
272         than skip_evaluation.
273         (convert_and_check, warn_for_div_by_zero): Likewise.
274         * c-common.h (skip_evaluation): Don't declare.
275         (c_inhibit_evaluation_warnings): Declare.
276         * c-parser.c (c_parser_typeof_specifier): Set
277         c_inhibit_evaluation_warnings rather than skip_evaluation.
278         (c_parser_conditional_expression): Likewise.
279         (c_parser_binary_expression): Likewise.
280         (c_parser_sizeof_expression): Likewise.
281         (c_parser_alignof_expression): Likewise.
282         * c-typeck.c (build_indirect_ref): Check
283         c_inhibit_evaluation_warnings rather than skip_evaluation.
284         (build_conditional_expr, build_binary_op): Likewise.
285
286 2009-06-16  Richard Guenther  <rguenther@suse.de>
287
288         * tree-ssa-alias.c (is_escape_site): Remove.
289         * tree-ssa-alias.h (enum escape_type): Remove.
290         (is_escape_site): Likewise.
291         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
292         via casts and asms without deferring to is_escape_site.
293
294 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
295
296         PR middle-end/40446
297         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
298         use gen_lowpart if op0 has complex mode.
299
300 2009-06-16  Richard Guenther  <rguenther@suse.de>
301
302         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
303         variables add them to ESCAPED.
304         (find_func_aliases): Do not make all indirectly stored values escaped.
305
306 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
307
308         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
309         make_decl_one_only.
310
311 2009-06-16  Martin Jambor  <mjambor@suse.cz>
312
313         PR tree-optimization/40432
314         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
315         check whether we need to force gimple register operand.
316
317 2009-06-16  Martin Jambor  <mjambor@suse.cz>
318
319         PR tree-optimization/40413
320         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
321         build_ref_for_offset.
322         (propagate_subacesses_accross_link): Fix a typo in a comment.
323
324 2009-06-16  Ira Rosen  <irar@il.ibm.com>
325
326         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
327         with additional parameter.
328         * tree-vectorizer.h (enum vect_def_type): Add new value
329         vect_nested_cycle.
330         (enum vect_relevant): Add comments.
331         (vect_is_simple_reduction): Add new argument.
332         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
333         Detect nested cycles.
334         (vect_is_simple_reduction): Update documentation, add an argument to
335         distinguish inner-loop reduction from nested cycle, detect nested
336         cycles, fix printings and indentation, don't swap operands in case
337         of nested cycle.
338         (get_initial_def_for_reduction): Handle subtraction.
339         (vect_create_epilog_for_reduction): Add new argument to specify
340         reduction variable.
341         (vect_finalize_reduction): Handle subtraction, fix comments.
342         (vectorizable_reduction): Handle nested cycles. In case of nested
343         cycle keep track of the reduction variable position. Call 
344         vect_is_simple_reduction with additional parameter. Use original 
345         statement code in reduction epilogue for nested cycle. Call
346         vect_create_epilog_for_reduction with additional parameter.
347         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
348         inner-loop vectorization.
349         (vect_recog_widen_sum_pattern): Likewise.
350         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
351         and reductions.
352         (vect_mark_stmts_to_be_vectorized): Likewise.
353         (vect_get_vec_def_for_operand): Handle nested cycles.
354
355 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
356
357         * doc/invoke.texi (Debugging Options): Fix option index entries
358         for -fdump-statistics, -frandom-seed add entries for
359         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
360         (FRV Options): Fix entries for -mTLS, -mtls.
361         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
362         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
363         (M68hc1x Options): Fix @itemx for -mnominmax.
364         (MCore Options): Fix entry for -mno-lsim.
365         (MMIX Options): Fix entry for -mabi=mmixware.
366         (PDP-11 Options): Fix entry for -mbcopy-builtin.
367
368 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
369
370         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
371         Mention the plugin mode of gengtype.
372         * doc/gty.texi (Source Files Containing Type Information): Likewise.
373         * gengtype.c: Updated copyright.
374         (plugin_files, nb_plugin_files) Added new static variables.
375         (measure_input_list) Care about plugin_files.
376         (write_rtx_next): Added early return in plugin mode.
377         (create_file): Updated copyright year in generated file. Added
378         asserts.
379         (oprintf): Added early return if NULL outf.
380         (get_output_file_with_visibility): Care of plugin_files.
381         (get_output_file_name): May return null.
382         (write_local): Added early return.
383         (put_mangled_filename): Ditto.
384         (finish_root_table): Added check for base_files.
385         (write_roots): Care about null when plugins.
386         (main): Added plugin mode.
387
388 2009-06-15  Ian Lance Taylor  <iant@google.com>
389
390         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
391         * gcov.c (read_count_file): Add braces around variables declared
392         before label.
393
394         * c.opt (Wjump-misses-init): New warning.
395         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
396         -Wall and -Wc++-compat if not already set.
397         (c_common_post_options): Clear warn_jump_misses_init if it was not
398         set.
399         * c-decl.c (struct c_binding): Change type field to a union with
400         new label field.  Make it the first field in the struct.  Update
401         references to type to use u.type instead.
402         (struct c_spot_bindings): Define.
403         (struct c_goto_bindings): Define.
404         (c_goto_bindings_p): Define, along with VECs.
405         (struct c_label_vars): Define.
406         (struct c_scope): Add has_label_bindings field.
407         (bind_label, set_spot_bindings): New static functions.
408         (decl_jump_unsafe, update_spot_bindings): New static functions.
409         (update_label_decls): New static function.
410         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
411         Update binding u.label field to shadowed field.
412         (c_binding_start_stmt_expr): New function.
413         (c_binding_end_stmt_expr): New function.
414         (pushdecl): Don't call c_begin_vm_scope.
415         (make_label): Add defining and p_label_vars parameters.  Change
416         all callers.
417         (lookup_label): Correct test for whether a label has not yet been
418         defined.  Call bind_label rather than bind.
419         (warn_about_goto): New static function.
420         (lookup_label_for_goto): New function.
421         (declare_label): Call bind_label rather than bind.
422         (check_earlier_gotos): New static function.
423         (define_label): Don't give errors about jumping into statement
424         expressions or scopes of variably modified types.  Call
425         set_spot_bindings and check_earlier_gotos.  Call bind_label
426         instead of bind.  Don't set label_context_stack_se or
427         label_context_stack_vm.
428         (c_get_switch_bindings): New function.
429         (c_release_switch_bindings): New function.
430         (c_check_switch_jump_warnings): New function.
431         (start_function): Don't set label_context_stack_se or
432         label_context_stack_vm.
433         (finish_function): Likewise.
434         * c-typeck.c (label_context_stack_se): Don't define.
435         (label_context_stack_vm): Don't define.
436         (c_finish_goto_label): Call lookup_label_for_goto rather than
437         lookup_label.  Don't give errors about jumping into a statement
438         expression or the scope of a variably modified type.  Don't set
439         label_context_stack_se or label_context_stack_vm.
440         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
441         fields.  Add bindings field.
442         (c_start_case): Don't set deleted fields.  Set bindings field.
443         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
444         or blocked_vm.  Call c_check_switch_jump_warnings.
445         (c_finish_case): Don't test blocked_stmt_expr field.  Call
446         c_release_switch_bindings.
447         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
448         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
449         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
450         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
451         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
452         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
453         (c_begin_vm_scope, c_end_vm_scope): Don't define.
454         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
455         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
456         (C_DECL_UNJUMPABLE_VM): Don't define.
457         (C_DECL_UNDEFINABLE_VM): Don't define.
458         (struct c_label_list): Don't define.
459         (struct c_label_context_se): Don't define.
460         (struct c_label_context_vm): Don't define.
461         (struct c_spot_bindings): Declare.
462         (c_bindings_start_stmt_expr): Declare.
463         (c_bindings_end_stmt_expr): Declare.
464         (lookup_label_for_goto): Declare.
465         (c_get_switch_bindings, c_release_switch_bindings): Declare.
466         (c_check_switch_jump_warnings): Declare.
467         (label_context_stack_se, label_context_stack_vm): Don't declare.
468         (c_finish_goto_label): Update declaration.
469         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
470         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
471         (Warning Options): Document -Wjump-misses-init.
472
473 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
474
475         * tree-object-size.c (addr_object_size): Fix a pasto in the last
476         change.
477
478 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
479
480         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
481
482 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
483
484         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
485
486 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
487
488         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
489
490 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
491
492         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
493         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
494         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
495         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
496         * dwarf2asm.c (dw2_force_const_mem): Update call to
497         make_decl_one_only.
498         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
499         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
500         * langhooks.c (lhd_comdat_group): Remove.
501         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
502         * tree.h (DECL_COMDAT_GROUP): New.
503         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
504         (tree_decl_with_vis): Add comdat_group. Remove one_only.
505         (make_decl_one_only): Change signature.
506         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
507         make_decl_one_only.
508         (make_decl_one_only): Change signature.
509         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
510
511 2009-06-15  Richard Guenther  <rguenther@suse.de>
512
513         PR middle-end/40439
514         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
515
516 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
517
518         * tree-ssa-math-opts.c: Remove extra divide.
519
520 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
521
522         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
523
524 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
525
526         * passes.c: Add bswap pass.
527         * tree-pass.h: Add pass_optimize_bswap declaration.
528         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
529         Include rtl.h, expr.h and optabs.h for optab_handler check.
530         (struct symbolic_number, pass_optimize_bswap): New definition.
531         (do_shift_rotate, verify_symbolic_number_p): New functions.
532         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
533         (gate_optimize_bswap): New function.
534         * tree.c (widest_int_cst_value): New function.
535         * tree.h (widest_int_cst_value): Prototype added.
536
537 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
538
539         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
540         REG_EQUAL/REG_EQUIV notes.
541
542 2009-06-14  Richard Guenther  <rguenther@suse.de>
543
544         PR middle-end/40389
545         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
546         has its address taken if NRV was applied and it is addressable.
547         * tree-ssa-structalias.c (get_constraint_for_address_of): New
548         function split out from ...
549         (get_constraint_for_1): ... here.
550         (handle_rhs_call): Use it to mark the return slot escaped if
551         it is addressable and NRV was applied.
552
553 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
554
555         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
556         Change first argument type to location_t.
557         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
558         Do not set input_location.
559         Use loc instead of input_location throughout.
560
561 2009-06-13  Richard Guenther  <rguenther@suse.de>
562
563         PR tree-optimization/40421
564         * tree-predcom.c (should_unroll_loop_p): Remove.
565         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
566
567 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
568
569         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
570         Add location argument.
571
572 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
573
574         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
575         build_decl.
576         * config/s390/s390.c (s390_build_builtin_va_list): Same.
577         (s390_gimplify_va_arg): Pass location to create_artificial_label.
578         * config/spu/spu-protos.h: Add location to
579         spu_resolve_overloaded_builtin.
580         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
581         spu_build_builtin_va_list.
582         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
583         argument.  Pass location to build_function_call_vec.
584         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
585         build_decl.
586         (emit_fpu_switch): Same.
587         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
588         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
589         to build_decl and create_artificial_label.
590         (xtensa_gimplify_va_arg_expr): Same.
591         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
592         (xstormy16_gimplify_va_arg_expr): Same.
593         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
594         * config/arm/arm.c (arm_build_builtin_va_list): Same.
595         * config/mips/mips.c (mips_build_builtin_va_list): Same.
596         (mips16_build_function_stub): Same.
597         (mips16_build_call_stub): Same.
598
599 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
600
601         PR target/40327
602         * arm/constraints.md (Pa, Pb): New constraints.
603         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
604         split pattern to deal with them.
605
606 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
607
608         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
609         fix index entry for -Xpreprocessor.
610
611 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
612
613         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
614         Add location argument to build_decl call.
615         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
616         (rs6000_init_builtins): Same.
617         (spe_init_builtins): Same.
618         (rs6000_gimplify_va_arg): Add location argument to
619         create_artificial_label call.
620
621 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
622
623         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
624         * combine-stack-adj.c (pass_stack_adjustments): Use it.
625         * Makefile.in: Fix GGC dependency for gcse.o.
626
627 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
628
629         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
630         * gimple-pretty-print.c (dump_gimple_stmt): Same.
631         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
632         created.
633         * c-parser.c (c_parser_binary_expression): Use current column while
634         building binary operations.
635         * common.opt (fshow-column): Enable by default.
636         * tree-vrp.c (check_array_ref): Use warning_at.
637         (check_array_bounds): Use location from call back if expr has no
638         location.
639         * tree.h: Add location argument to maybe_fold_*.
640         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
641         (maybe_fold_offset_to_array_ref): Add location argument and use it.
642         (maybe_fold_offset_to_component_ref): Same.
643         (maybe_fold_offset_to_reference): Same.
644         (maybe_fold_offset_to_address): Same.
645         (maybe_fold_stmt_indirect): Same.
646         (maybe_fold_stmt_addition): Same.
647         (fold_stmt_r): Pass location to maybe_fold_*.
648         (fold_gimple_assign): Same.
649         * c-tree.h: Add location argument to finish_decl,
650         default_function_array_conversion, store_init_value.
651         * c-decl.c (define_label): Use error_at.
652         (c_make_fname_decl): Pass location to finish_decl.
653         (finish_decl): New location argument.
654         (build_compound_literal): Pass location to store_init_value.
655         (grokdeclarator): Pass location to finish_decl.
656         (grokfield): Same.
657         * c-typeck.c (array_to_pointer_conversion): New location argument.
658         (function_to_pointer_conversion): Same.
659         (default_function_array_conversion): Same.
660         (parser_build_unary_op): Pass location to overflow_warning.
661         (parser_build_binary_op): Same.  Use warning_at.
662         (build_unary_op): Pass location to array_to_pointer_conversion.
663         (build_c_cast): Pass location to digest_init.
664         (build_modify_expr): New location argument.
665         (convert_for_assignment): Same.
666         (store_init_value): Same.
667         (digest_init): Same.
668         (output_init_element): Pass location to digest_init and
669         array_to_pointer_conversion.
670         (c_finish_return): Pass location to convert_for_assignment.
671         * gimplify.c (gimplify_conversion): Pass location to
672         maybe_fold_offset_to_address.
673         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
674         to maybe_fold_stmt_addition.
675         * c-omp.c (c_finish_omp_atomic): Pass new location to
676         build_modify_expr.
677         (c_finish_omp_for): Same.
678         * c-common.c (overflow_warning): New argument.
679         * c-common.h: New argument to build_modify_expr, overflow_warning.
680         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
681         finish_decl.
682         (c_parser_initializer): Pass location to
683         default_function_array_conversion.
684         (c_parser_initelt): Same.
685         (c_parser_initval): Same.
686         (c_parser_asm_operands): Same.
687         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
688         (c_parser_conditional_expression): Same.
689         (c_parser_binary_expression): Add location info to stack.  Use it.
690         (c_parser_unary_expression): Pass location to
691         default_function_array_conversion, parser_build_unary_op,
692         build_indirect_ref, c_parser_postfix_expression_after_primary.
693         (c_parser_postfix_expression_after_primary): New location argument.
694         Use it.
695         (c_parser_expression_conv): Pass location to
696         default_function_array_conversion.
697         (c_parser_expr_list): Same.
698         (c_parser_omp_atomic): Same.
699         (c_parser_omp_for_loop): Same.
700         * c-tree.h: (struct c_declarator): Add comment to id_loc.
701         (build_array_declarator): New argument.
702         * c-decl.c (build_array_declarator): Add location argument.
703         (grokdeclarator): Set id_loc for cdk_array.
704         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
705         build_array_declarator.
706         * tree.c (build_omp_clause): Add location argument.
707         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
708         (OMP_CLAUSE_LOCATION): New macro.
709         (struct tree_omp_clause): Add location field.
710         (build_omp_clause): Add argument.
711         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
712         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
713         build_omp_clause.
714         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
715         (cp_parser_omp_clause_collapse): Same.
716         (cp_parser_omp_clause_default): Same.
717         (cp_parser_omp_clause_if): Same.
718         (cp_parser_omp_clause_nowait): Same.
719         (cp_parser_omp_clause_num_threads): Same.
720         (cp_parser_omp_clause_ordered): Same.
721         (cp_parser_omp_clause_schedule): Same.
722         (cp_parser_omp_clause_untied): Same.
723         (cp_parser_omp_for_loop): Same.
724         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
725         * c-tree.h (c_start_case): Add location argument.
726         (c_process_expr_stmt): Same.
727         (c_finish_goto_*): Same.
728         * tree-parloops.c (initialize_reductions): Pass location to
729         build_omp_clause.
730         (create_parallel_loop): Same.
731         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
732         (gfc_trans_omp_reduction_list): Same.
733         (gfc_trans_omp_clauses): Same.
734         (gfc_trans_omp_do): Same.
735         * c-typeck.c (c_finish_goto_label): Same.
736         (c_finish_goto_ptr): New location argument.
737         (c_start_case): Same.
738         (emit_side_effect_warnings): Same.
739         (c_process_expr_stmt): Same.
740         (c_finish_stmt_expr): Same.
741         (c_finish_omp_clauses): Use error_at instead of error.
742         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
743         build_omp_clause.
744         * c-omp.c (c_split_parallel_clauses): New location argument.
745         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
746         to build_omp_clause.
747         (convert_local_reference_stmt): Same.
748         (convert_gimple_call): Same.
749         * c-common.h (c_split_parallel_clauses): New argument.
750         * c-parser.c (c_parser_statement_after_labels): Pass location to
751         c_finish_goto_label.
752         (c_parser_switch_statement): Pass location to c_start_case.
753         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
754         and c_process_expr_stmt.
755         (c_parser_omp_variable_list): Add location argument.
756         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
757         (c_parser_omp_clause_default): Same.
758         (c_parser_omp_clause_if): Same.
759         (c_parser_omp_clause_num_threads): Same.
760         (-c_parser_omp_clause_ordered): Same.
761         (c_parser_omp_clause_reduction): Pass location to
762         c_parser_omp_variable_list.
763         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
764         (c_parser_omp_clause_untied): Same.
765         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
766         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
767
768         * c-tree.h (check_for_loop_decls, undeclared_variable,
769         build_component_ref, build_array_ref, build_external_ref,
770         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
771         build_conditional_expr, build_compound_expr, c_cast_expr,
772         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
773         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
774         argument.
775         * c-semantics.c (build_stmt): Same.
776         (build_case_label): Same.
777         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
778         (undeclared_variable): New argument.
779         (make_label): Same.
780         (lookup_label): Pass location on down.
781         (define_label): Same.
782         (finish_decl): Same.
783         (build_compound_literal): Same.
784         (finish_struct): Same.
785         (finish_function): Do not set location here.
786         (check_for_loop_decls): New argument.
787         * tree.c (save_expr): Set location.
788         (build_empty_stmt): New argument.
789         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
790         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
791         * builtins.c (gimplify_va_arg_expr): Use locations.
792         (expand_builtin_sync_operation): Same.
793         * c-typeck.c (build_component_ref): New argument.
794         (build_array_ref): Same.
795         (build_external_ref): Same.
796         (c_expr_sizeof_expr): Same.
797         (c_expr_sizeof_type): Same.
798         (parser_build_unary_op): Same.
799         (build_conditional_expr): Same.
800         (build_compound_expr): Pass location on down.
801         (build_compound_expr): New argument.
802         (build_c_cast): Same.
803         (c_cast_expr): Same.
804         (build_asm_expr): Same.
805         (c_finish_return): Same.
806         (c_process_expr_stmt): Pass location on down.
807         (c_finish_stmt_expr): New argument.
808         (push_clenaup): Same.
809         (c_finish_omp_parallel): Same.
810         (c_finish_omp_task): Same.
811         * gimplify.c (gimplify_call_expr): Pass location on down.
812         * c-omp.c (c_finish_omp_master): New argument.
813         (c_finish_omp_critical): Same.
814         (c_finish_omp_ordered): Same.
815         (c_finish_omp_barrier): Same.
816         (-c_finish_omp_taskwait): Same.
817         (c_finish_omp_atomic): Same.
818         (c_finish_omp_flush): Same.
819         * tree-inline.c (copy_tree_body_r): Pass location on down.
820         (inline_forbidden_p): Remove use of input_location.
821         * c-gimplify.c (c_build_bind_expr): New argument.
822         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
823         (c_sizeof_or_alignof_type): New argument.
824         (c_alignof_expr): Same.
825         (build_va_arg): Same.
826         (c_add_case_label): Same.
827         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
828         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
829         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
830         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
831         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
832         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
833         New argument.
834         * stub-objc.c (objc_build_selector_expr): Same.
835         (objc_build_throw_stmt): Same.
836         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
837         (c_parser_initelt): Same.
838         (c_parser_compound_statement): Same.
839         (c_parser_compound_statement_nostart): Same.
840         (c_parser_label): Same.
841         (c_parser_statement_after_labels): Same.
842         (c_parser_if_body): Same.
843         (c_parser_else_body): Same.
844         (c_parser_if_statement): Same.
845         (c_parser_switch_statement): Same.
846         (c_parser_while_statement): Same.
847         (c_parser_do_statement): Same.
848         (c_parser_for_statement): Same.
849         (c_parser_asm_statement): Same.
850         (c_parser_conditional_expression): Same.
851         (c_parser_binary_expression): Same.
852         (c_parser_cast_expression): Same.
853         (c_parser_unary_expression): Same.
854         (c_parser_sizeof_expression): Same.
855         (c_parser_alignof_expression): Same.
856         (c_parser_postfix_expression): Same.
857         (c_parser_expression): Same.
858         (c_parser_objc_receiver): Same.
859         (c_parser_omp_variable_list): Same.
860         (c_parser_omp_structured_block): Same.
861         (c_parser_omp_atomic): New argument.
862         (c_parser_omp_barrier): Same.
863         (c_parser_omp_critical): Same.
864         (c_parser_omp_flush): Pass location on down.
865         (c_parser_omp_for_loop): New argument.
866         (c_parser_omp_for): Same.
867         (c_parser_omp_master): Same.
868         (c_parser_omp_ordered): Same.
869         (c_parser_omp_sections_scope): Same.
870         (c_parser_omp_sections): Same.
871         (c_parser_omp_parallel): Same.
872         (c_parser_omp_single): Same.
873         (c_parser_omp_task): Same.
874         (c_parser_omp_taskwait): Pass location on down.
875         (c_parser_omp_construct): Same.
876         (c_parser_omp_threadprivate): Same.
877         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
878         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
879         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
880         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
881         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
882         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
883         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
884         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
885         config/i386/i386.c, stmt.c:
886         Add location argument to the following function definitions and/or
887         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
888         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
889         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
890         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
891         do_case, c_finish_bc_stmt, build_compound_literal,
892         build_function_call.
893         * c-decl.c (build_compound_literal): Add location argument.
894         Make all diagnostic calls use location.
895         (start_struct): Same.
896         (finish_struct): Same.
897         (start_enum): Same.
898         (build_enumerator): Same.
899         (start_function): Same.
900         (grokdeclarator): Make all diagnostic calls use location.
901         (store_parm_decls_oldstyle): Same.
902         * c-typeck.c (build_function_call): Add location argument.
903         Make all diagnostic calls use location.
904         (do_case): Same.
905         (c_finish_bc_stmt): Same.
906         * tree-nested.c (get_trampoline_type): Add argument.
907         Pass location to build_decl.
908         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
909         * rtl.h (RTL_LOCATION): New.
910         * c-common.c (c_add_case_label): Add location argument.
911         Make all diagnostic calls use location.
912         * c-common.h: Add location argument to make_fname_decl, do_case,
913         c_add_case_label, build_function_call, resolve_overloaded_builtin.
914         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
915         Set it appropriately for every case.  Pass enum_loc to start_enum
916         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
917         parser_xref_tag.
918         (c_parser_struct_or_union_specifier): Save location.  Use it for
919         start_struct, finish_struct, and parser_xref_tag.
920
921 2009-06-12  Ian Lance Taylor  <iant@google.com>
922
923         * fold-const.c (fold_unary): Rename local variable and to and_expr.
924
925         * c-opts.c (c_common_handle_option): For -Wc++-compat set
926         cpp_opts->warn_cxx_operator_names.
927
928 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
929
930         PR tree-opt/38865
931         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
932         is returns NULL and OP is a VCE, look through the VCE.
933
934 2009-06-12  Ian Lance Taylor  <iant@google.com>
935
936         PR bootstrap/40430
937         * collect2.c (main): Use CONST_CAST2 in code inside #if
938         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
939
940 2009-06-12  Joey Ye  <joey.ye@intel.com>
941
942         PR middle-end/39146
943         * cfgexpand.c (get_decl_align_unit): Update
944         max_used_stack_slot_alignment with align instead of
945         stack_alignment_needed.
946
947         * function.c (assign_stack_local_1): Update
948         max_used_stack_slot_alignment with alignment_in_bits instead
949         of stack_alignment_needed.
950         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
951         here.
952
953 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
954
955         * dwarf2out.c (last_var_location_insn): New variable.
956         (dwarf2out_end_epilogue): Clear last_var_location_insn.
957         (dwarf2out_var_location): Don't record anything after last real
958         insn.  Only change labels if there were any real instructions
959         in between last note and this one, or if changed sections.
960
961 2009-06-11  Richard Henderson  <rth@redhat.com>
962
963         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
964         note when storing the frame pointer in a register.
965         (FRP): Don't redefine to nothing for epilogue.
966         (alpha_expand_epilogue): Mark register and sp restores.
967         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
968
969         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
970         when gen_lowpart is needed.
971
972 2009-06-11  Richard Henderson  <rth@redhat.com>
973
974         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
975
976         * dwarf2out.c (need_data_align_sf_opcode): New.
977         (div_data_align): Move earlier.
978         (def_cfa_1, reg_save): Use it.
979
980 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
981
982         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
983         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
984         (ix86_handle_option): Handle OPT_mcrc32.
985         (ix86_target_string): Add -mcrc32.
986         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
987
988         * config/i386/i386.h (TARGET_CRC32): New.
989
990         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
991         (sse4_2_crc32di): Likewise.
992
993         * config/i386/i386.opt (mcrc32): New.
994
995         * doc/invoke.texi: Document -mcrc32.
996
997 2009-06-11  Richard Henderson  <rth@redhat.com>
998
999         * common.opt (gdwarf-): Accept a version number.
1000         * doc/invoke.texi (gdwarf-): Update docs.
1001         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1002         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1003         version level, and record it.
1004
1005         * dwarf2.h (DW_CIE_VERSION): Remove.
1006         * dwarf2out.c (DWARF_VERSION): Remove.
1007         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1008         (output_call_frame_info): Use CIE version 3 for dwarf3,
1009         or if the return register column is out of range for version 1.
1010         (dwarf_stack_op_name): Add all dwarf3 values.
1011         (DEBUG_PUBTYPES_SECTION): New.
1012         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1013         encoding change for dwarf3.
1014         (output_die) [dw_val_class_die_ref]: Likewise.
1015         (output_compilation_unit_header): Emit correct version for dwarf3.
1016         (output_line_info): Likewise.
1017         (output_pubnames): Update for DWARF_VERSION removal.
1018         (output_aranges): Likewise.
1019         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1020         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1021         (dwarf2out_finish): Likewise.
1022
1023 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1024
1025         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1026         in r148403.
1027
1028 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1029
1030         PR c/39252
1031         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1032         * builtins.c (expand_builtin_unreachable): New function.
1033         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1034         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1035         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1036         successors.
1037         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1038         searching for missing barriers.
1039
1040 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1041
1042         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1043         when -fprofile-generate* was passed.
1044         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1045
1046 2009-06-11  Anthony Green  <green@moxielogic.com>
1047
1048         * config/moxie/moxie.md: Define length attribute for all instructions.
1049         (rCC): Define.
1050         (*b<cond:code>): Support limited branch ranges for new PC-relative
1051         branch instructions.
1052         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1053
1054 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
1055
1056         * config/i386/i386.c (min_insn_size): Use get_attr_length
1057         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1058         For __asm return 0.
1059
1060         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1061         instead of emit_insn_before.
1062
1063 2009-06-10  Ian Lance Taylor  <iant@google.com>
1064
1065         PR bootstrap/40408
1066         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1067         GIMPLE_SWITCH.
1068
1069 2009-06-10  Revital Eres  <eres@il.ibm.com>
1070
1071         * passes.c (init_optimization_passes): Reschedule
1072         predictive-commoning pass before complete unroll pass.
1073
1074 2009-06-10  Martin Jambor  <mjambor@suse.cz>
1075
1076         * cgraph.c (cgraph_node_can_be_local_p): New function.
1077         (cgraph_make_node_local): New function.
1078         * cgraph.h (cgraph_node_can_be_local_p): Declare.
1079         (cgraph_make_node_local): Declare.
1080
1081 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
1082
1083         * tree.h (tree_base): Add packed_flag and user_align fields.
1084         Decrease size of spare field.
1085         (TYPE_USER_ALIGN): Use user_align from tree_base.
1086         (DECL_USER_ALIGN): Likewise.
1087         (TYPE_PACKED): Use packed_flag from tree_base.
1088         (DECL_PACKED): Likewise.
1089         (tree_type): Delete packed_flag and user_align fields.  Widen
1090         precision field.  Widen mode field and shuffle fields to align
1091         mode on an 8-bit boundary.
1092         (tree_decl_common): Delete decl_flag_1 and user_align fields.
1093         Renumber decl_flag_* fields.  Fix comments.  Widen
1094         decl_common_unused field.
1095         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
1096         (DECL_EXTERNAL): Likewise.
1097         (DECL_BIT_FIELD): Likewise.
1098         (DECL_NONADDRESSABLE_P): Likewise.
1099         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1100         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1101
1102 2009-06-10  Ian Lance Taylor  <iant@google.com>
1103
1104         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1105         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1106         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1107         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1108         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1109         DEF_VEC_ALLOC_FUNC_P.
1110         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1111         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1112         DEF_VEC_ALLOC_FUNC_O.
1113         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1114         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1115         DEF_VEC_ALLOC_FUNC_I.
1116         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1117         (vec_stack_p_reserve_exact_1): Declare.
1118         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1119         (vec_stack_free): Declare.
1120         (VEC_stack_alloc): Define.
1121         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1122         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1123         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1124         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
1125         for void_p.
1126         (stack_vecs): New static variable.
1127         (vec_stack_p_reserve_exact_1): New function.
1128         (vec_stack_o_reserve_1): New static function.
1129         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1130         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1131         (vec_stack_free): New function.
1132         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1133         (VEC_df_ref_stack_alloc): Define.
1134         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
1135         DEF_VEC_ALLOC_P_STACK.
1136         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1137         (struct df_collection_rec): Change _vec fields to VEC.  Remove
1138         _use fields.
1139         (df_free_collection_rec): Adjust for new fields.
1140         (df_insn_rescan): Use new df_collection_rec fields.
1141         (df_notes_rescan, df_canonize_collection_rec): Likewise.
1142         (df_ref_create_structure, df_ref_record): Likewise.
1143         (df_get_conditional_uses, df_get_call_refs): Likewise.
1144         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1145         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1146         (df_record_exit_block_uses, df_bb_verify): Likewise.
1147         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
1148         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1149         Remove count parameter.  Change return type to void.  Change all
1150         callers.
1151         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1152         Remove count parameter.  Change return type to void.  Change all
1153         callers.
1154         (df_install_refs): Change old_vec parameter to VEC.  Remove count
1155         parameter.  Change all callers.
1156         (df_install_mws): Change old_vec parameter to VEC.  Remove count
1157         parameter.  Change all callers.
1158         (df_refs_verify): Change new_rec parameter to VEC.  Change call
1159         callers.
1160         (df_mws_verify): Likewise.
1161
1162 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
1163
1164         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1165
1166 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
1167
1168         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1169
1170 2009-06-10  Anthony Green  <green@moxielogic.com>
1171
1172         * config/moxie/crti.asm: New file.
1173         * config/moxie/crtn.asm: New file.
1174         * config/moxie/moxie.c: New file.
1175         * config/moxie/moxie.h: New file.
1176         * config/moxie/sfp-machine.h: New file.
1177         * config/moxie/moxie-protos.h: New file.
1178         * config/moxie/t-moxie: Created.
1179         * config/moxie/t-moxie-softfp: Created.
1180         * config/moxie/moxie.md: Created.
1181         * config/moxie/constraints.md: Created.
1182         * config.gcc: Add moxie support.
1183         * doc/md.texi (Machine Constraints): Add moxie constraints.
1184         * doc/contrib.texi (Contributors): Mention moxie port.
1185         * doc/install.texi (Specific): Mention the moxie port.
1186
1187 2009-06-09  Ian Lance Taylor  <iant@google.com>
1188
1189         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1190         compiling with C++.
1191         * optabs.c (optab_table): Only use designated initializers if
1192         HAVE_DESIGNATED_INITIALIZERS is defined.
1193         (convert_optab_table): Likewise.
1194         (init_optabs): Always call init_insn_codes if
1195         HAVE_DESIGNATED_INITIALIZERS is not defined.
1196
1197 2009-06-09  Ian Lance Taylor  <iant@google.com>
1198
1199         * targhooks.c (default_builtin_vectorized_function): Change fn
1200         parameter to unsigned int.
1201         (default_builtin_vectorized_conversion): Change code parameter to
1202         unsigned int.
1203         (default_builtin_reciprocal): Change fn parameter to unsigned int.
1204         * targhooks.h: Update declarations.
1205         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1206         parameter to unsigned int.
1207
1208         * c-typeck.c (comptypes_check_enum_int): New static function.
1209         (comptypes_internal): Add enum_and_int_p parameter.  Change all
1210         callers.
1211         (comp_target_types): Add location parameter.  Change all callers.
1212         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1213         Change all callers.
1214         (function_types_compatible_p, type_lists_compatible_p): Likewise.
1215         (build_conditional_expr): Add colon_loc parameter.  Change all
1216         callers.
1217         (convert_for_assignment): Add location parameter.  Change all callers.
1218         * c-parser.c (c_parser_conditional_expression): Pass location of
1219         colon to build_conditional_expr.
1220         * c-tree.h (build_conditional_expr): Update declaration.
1221
1222 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1223
1224         * graphite.c: Revert previous patch.
1225
1226 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1227
1228         PR bootstrap/40103
1229         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1230
1231 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1232
1233         * tree-ssa-loop-prefetch.c
1234         (loop_prefetch_arrays): Fixed a portability problem in printf format
1235         string.
1236
1237 2009-06-09  Martin Jambor  <mjambor@suse.cz>
1238
1239         PR tree-optimization/40351
1240         * tree-sra.c (propagate_subacesses_accross_link): Check that a
1241         refrence to a potential artifical subaccess can be constructed.
1242
1243 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1244
1245         * config/sh/sh-protos.h (sh_optimization_options): Declare.
1246         (sh_override_options): Likewise.
1247         * config/sh/sh.c: Include params.h.
1248         (sh_optimization_options): New.
1249         (sh_override_options): Likewise.
1250         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1251         (OVERRIDE_OPTIONS): Use sh_override_options.
1252
1253 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1254
1255         * dwarf2out.c (emit_cfa_remember): New variable.
1256         (add_fde_cfi): If emit_cfa_remember, recurse to add
1257         DW_CFA_remember_state first.
1258         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1259         instead just set emit_cfa_remember.
1260
1261 2009-06-08  Jan Hubicka  <jh@suse.cz>
1262
1263         PR debug/40126
1264         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1265
1266 2009-06-08  Jan Hubicka  <jh@suse.cz>
1267
1268         PR middle-end/39834
1269         * cgraphunit.c (save_inline_function_body): Do not copy transform
1270         hooks for saved inline bodies.
1271         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1272         for given function.
1273
1274 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
1275
1276         * jump.c (returnjump_p): Handle delayed branches.  Add missing
1277         function comment.
1278
1279 2009-06-08  Jan Hubicka  <jh@suse.cz>
1280
1281         PR middle-end/40102
1282         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1283         original node might've been modified.
1284         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1285
1286 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1287
1288         * tree-object-size.c (addr_object_size): Add OSI argument.
1289         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1290         (compute_builtin_object_size, expr_object_size): Adjust callers.
1291         (plus_stmt_object_size): Call addr_object_size instead of
1292         compute_builtin_object_size.
1293
1294 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1295             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1296         
1297         * tree-ssa-loop-prefetch.c 
1298         (gather_memory_references): Introduced a counter for the number of 
1299         memory references.
1300         (anything_to_prefetch_p): Introduced a counter for the number of 
1301         prefetches.
1302         (is_loop_prefetching_profitable): New function with a cost model 
1303         for prefetching.
1304         (loop_prefetch_arrays): Use the new cost model to determine if 
1305         prefetching is profitable.
1306         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
1307         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1308         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
1309         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1310         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
1311         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1312         
1313 2009-06-08  Michael Matz  <matz@suse.de>
1314
1315         PR debug/40012
1316         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1317         partitions use the same.
1318         (expand_one_var): Deal with DECL_RTL sometimes begin set also
1319         for basevars of SSA_NAMEs.
1320         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1321         to not expand them twice.
1322         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1323         multiple places.
1324
1325 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1326
1327         * common.opt (fcompare-debug=, fcompare-debug-second): New.
1328         (fdump-final-insns=, gtoggle): New.
1329         * doc/invoke.texi: Document them.
1330         * final.c (rest_of_clean_state): Dump final insn stream.
1331         * gcc.c (invoke_as): Hook in -fcompare-debug.
1332         (static_spec_functions): Add compare-debug-dump-opt,
1333         compare-debug-self-opt and compare-debug-auxbase-opt.
1334         (compare_debug, compare_debug_second, compare_debug_opt): New.
1335         (switches_debug_check, n_switches_debug_check): New.
1336         (debug_auxbase_opt, debug_check_temp_file): New.
1337         (process_command): Handle -fno-compare-debug, -fcompare-debug and
1338         -fcompare-debug=*.
1339         (do_self_spec): Handle arguments after switches.
1340         (do_spec_1): Add .gk extension to temp file basenames for compare.
1341         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1342         (cc1_options): Use it instead of normal auxbase computation for
1343         the second compare-debug compilation.
1344         (compare_files): New.
1345         (main): Set up and implement compare debug mode.
1346         (compare_debug_dump_opt_spec_function): New.
1347         (compare_debug_self_opt_spec_function): New.
1348         (compare_debug_auxbase_opt_spec_function): New.
1349         * toplev.c (process_options): Handle flag_gtoggle,
1350         flag_dump_final_insns.
1351         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1352         during -fcompare-debug-second compilation.
1353
1354 2009-06-07  Ian Lance Taylor  <iant@google.com>
1355
1356         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
1357         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1358
1359         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1360         with no default node.  Change warning with %H to warning_at.
1361         Don't clear warn_switch around case checking.
1362         * doc/invoke.texi (Warning Options): Clarify distinction between
1363         -Wswitch and -Wswitch-enum.
1364
1365 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1366
1367         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1368
1369 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1370
1371         * gbl-ctors.h: Add header guard.
1372
1373 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1374
1375         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1376         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1377         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1378         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1379         prototypes for removed functions.
1380         (expressions_equal_p): Move to ...
1381         * tree-ssa-sccvn.h: ... here and ...
1382         * matrix-reorg.c: ... adjust includes.
1383
1384 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1385
1386         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1387
1388 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1389
1390         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1391         (finish_function): Remove erroneous whitespace.
1392
1393 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1394
1395         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1396         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
1397
1398 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1399
1400         * errors.c (internal_error): Commentary typo fix.
1401         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1402         * tree-ssa-pre.c: Ditto.
1403
1404 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1405
1406         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1407         them is supposed to hold actual statements.
1408
1409 2009-06-06  Ian Lance Taylor  <iant@google.com>
1410
1411         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1412         empty statements can now have attributes.
1413
1414 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
1415
1416         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1417         * config/mips/mips.md: Ditto.
1418
1419 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1420
1421         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1422         _RELOCATABLE.
1423         (__eabi_uconvert): Likewise.
1424
1425 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1426
1427         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1428         CFI_* definitions with IN_GCC.
1429
1430 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
1431
1432         * xcoffout.h (xcoffout_source_line): Update prototype.
1433
1434 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1435
1436         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1437         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1438
1439 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1440
1441         PR middle-end/40340
1442         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1443         inlined_function_outer_scope_p blocks for artificial inlines
1444         even at -g0/-g1.
1445         * tree.c (tree_nonartificial_location): Rewrite using
1446         block_nonartificial_location.
1447
1448 2009-06-05  Revital Eres  <eres@il.ibm.com>
1449             Leehod Baruch  <leehod@il.ibm.com>
1450
1451         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1452         (expand_expr_real_1): Remove comment.
1453         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1454         Vectorize misaligned access when the target supports it.
1455         (vect_supportable_dr_alignment): Check for unaligned access support.
1456         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1457         and remove asset.
1458
1459 2009-06-05  Julian Brown  <julian@codesourcery.com>
1460
1461         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1462         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1463
1464 2009-06-05  Richard Guenther  <rguenther@suse.de>
1465
1466         PR bootstrap/40350
1467         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1468         as possibly unused.
1469
1470 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1471
1472         * config/s390/s390.c (global_not_special_regno_p): New static inline.
1473         (save_gprs): Don't tell unwinder when a global register is saved.
1474         (s390_emit_epilogue): Emit needed epilogue unwind info.
1475
1476 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1477
1478         * dwarf2out.c (deferred_asm_name): New.
1479         (add_name_and_src_coords_attributes): Defer creation of
1480         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1481         computed yet.
1482         (move_linkage_attr): New.
1483         (dwarf2out_finish): Revisit deferrals and emit attributes at the
1484         right place.
1485
1486 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1487
1488         * tree-nested.c (finalize_nesting_tree_1): Declare the
1489         frame_decl in the binding tree.
1490
1491 2009-06-04  Cary Coutant  <ccoutant@google.com>
1492
1493         * basic-block.h (struct basic_block_def): Add discriminator field.
1494         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
1495         callers.
1496         * debug.c (do_nothing_debug_hooks): Add additional entry.
1497         (debug_nothing_int_charstar_int): New function.
1498         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
1499         (debug_nothing_int_charstar_int): New declaration.
1500         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
1501         discriminator value in .loc directive.
1502         * final.c (last_discriminator): New variable.
1503         (discriminator): New variable.
1504         (final_start_function): Initialize above variables, pass current
1505         discriminator to debug hook.
1506         (notice_source_line): Check for discriminator change.
1507         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1508         * sdbout.c (sdbout_source_line): New parameter.
1509         * tree-cfg.c (struct locus_discrim_map): New structure type.
1510         (discriminator_per_locus): New hash table.
1511         (build_gimple_cfg): Allocate and free discriminator hash table.
1512         (make_edges): Call assign_discriminator.
1513         (locus_map_hash): New function.
1514         (locus_map_eq): New function.
1515         (next_discriminator_for_locus): New function.
1516         (same_line_p): New function.
1517         (assign_discriminator): New function.
1518         (make_cond_expr_edges): Call assign_discriminator.
1519         (make_gimple_switch_edges): Likewise.
1520         (first_non_label_stmt): New function.
1521         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
1522         all callers.
1523         * xcoffout.c (xcoffout_source_line): Add new parameter.
1524
1525         * configure.ac (gcc_cv_as_discriminator): New configury check for
1526         gas support for discriminator.
1527         * configure: Regenerate.
1528         * config.in: Regenerate.
1529
1530 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1531
1532         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1533         val after checking for integers.
1534
1535 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
1536
1537         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1538         X64_REGPARM_MAX.
1539         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1540         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1541         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1542         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1543         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
1544         X64_SSE_REGPARM_MAX.
1545         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1546         X64_SSE_REGPARM_MAX.
1547
1548 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1549
1550         * gcc.c (report_times_to_file): New.
1551         (execute): Implement it.
1552         (process_command): Support -time=.
1553         * doc/invoke.texi: Document it.
1554
1555 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1556
1557         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1558         that have value exprs.
1559
1560 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1561
1562         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1563         declarations for constants until...
1564         (dw2_output_indirect_constant_1): ... this point.
1565
1566 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
1567
1568         PR target/10242
1569         * arm.md (arm_addsi3): Don't try to split an add with an
1570         eliminable register until after reload has completed.
1571
1572 2009-06-03  Ian Lance Taylor  <iant@google.com>
1573
1574         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1575         * genattrtab.c (write_length_unit_log): Likewise.
1576         * genchecksum.c (dosum): Likewise.
1577         * gengtype.c (write_rtx_next): Likewise.
1578         (finish_root_table, write_roots): Likewise.
1579         * gimple.c (gimple_ops_offset_): Likewise.
1580         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1581         * config/arc/arc.c (arc_attribute_table): Likewise.
1582         * config/arm/arm.c (arm_attribute_table): Likewise.
1583         * config/avr/avr.c (avr_attribute_table): Likewise.
1584         * config/crx/crx.c (crx_attribute_table): Likewise.
1585         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1586         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1587         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1588         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1589         * config/sh/sh.c (sh_attribute_table): Likewise.
1590         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1591         * config/spu/spu.c (spu_attribute_table): Likewise.
1592         * config/v850/v850.c (v850_attribute_table): Likewise.
1593
1594         * config/alpha/alpha.c (vms_attribute_table): Make static.
1595         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1596         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1597         * config/mips/mips.c (mips_attribute_table): Likewise.
1598
1599         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1600         $(SYSTEM_H).
1601         (cc1-checksum.o): Likewise.
1602
1603 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
1604
1605         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1606
1607 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
1608
1609         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1610         insn if it is changing sp.  Use gen_add3_insn instead of
1611         conditionally gen_addsi3 and gen_adddi3.
1612         (offset_below_red_zone_p): New static inline function.
1613         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1614         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1615         * config/rs6000/ppc-asm.h: Include auto-host.h.
1616         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1617         CFI_RESTORE): Define.
1618         * config/rs6000/crtresxgpr.asm: Add unwind info.
1619         * config/rs6000/crtresxfpr.asm: Likewise.
1620         * config/rs6000/crtresgpr.asm: Likewise.
1621         * config/rs6000/crtresfpr.asm: Likewise.
1622         * config/rs6000/crtsavgpr.asm: Likewise.
1623         * config/rs6000/crtsavfpr.asm: Likewise.
1624
1625         * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1626         0 to second argument of DWARF2_FRAME_REG_OUT macros.
1627
1628 2009-06-03  Julian Brown  <julian@codesourcery.com>
1629
1630         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1631         words or less (including TImode) in core registers.
1632
1633 2009-06-03  Richard Guenther  <rguenther@suse.de>
1634
1635         PR middle-end/40328
1636         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1637
1638 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
1639
1640         * statistics.c (statistics_counter_event): Do not record event 
1641         in pass dump if its number == -1.
1642         (curr_statistics_hash): Add assert that we never get passes 
1643         with static number == -1.
1644
1645 2009-06-03  Richard Guenther  <rguenther@suse.de>
1646             Andrey Belevantsev  <abel@ispras.ru>
1647
1648         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
1649         non-BLKmode arrays addressable.
1650
1651 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1652
1653         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1654         * config/m68k/m68k.h: ... here.
1655         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1656         m68k and fido.
1657
1658 2009-06-03  Martin Jambor  <mjambor@suse.cz>
1659
1660         PR tree-optimization/40323
1661         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1662         assignment.
1663
1664 2009-06-03  Richard Guenther  <rguenther@suse.de>
1665
1666         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1667         consistently.
1668
1669 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
1670
1671         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1672         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1673         JUMP_TABLE_DATA_P where applicable.
1674         * config/sh/sh.c: Ditto.
1675         * config/sh/sh.h: Ditto.
1676         * config/sh/sh.md: Ditto.
1677         * config/sh/symbian.c: Ditto.
1678
1679 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
1680
1681         * config/i386/driver-i386.c (describe_cache): Optimize
1682         concatenation of strings.  Use snprintf instead of sprintf.
1683         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
1684         target when not compiling with GCC.
1685
1686 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1687
1688         * config/sh/sh.c: Revert last change.
1689         (sh_expand_epilogue): Emit a blockage insn before the frame
1690         pointer adjustment unconditionally.
1691
1692 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1693
1694         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1695         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1696         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1697         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1698         to COLLECT_GCC_OPTIONS.
1699
1700 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1701
1702         * collect2.c (target_system_root): New variable.
1703         (main): Handle --sysroot=.
1704         (ignore_library): Strip the sysroot from the library path.
1705
1706 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1707
1708         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1709         (collect2.o): Depend on collect2-aix.h.
1710         (collect2-aix.o): New rule.
1711         * collect2-aix.h: New file.
1712         * collect2-aix.c: Likewise.
1713         * collect2.c: Include collect2-aix.h.  Don't undefine
1714         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1715         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1716         Use TARGET_AIX_VERSION instead of _AIX51.
1717         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1718         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1719         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1720         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1721         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1722
1723 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1724
1725         * collect2.c (ignore_library): Avoid premature post-increment
1726         and null deference.
1727
1728 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1729
1730         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1731         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1732         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1733         CROSS_DIRECTORY_STRUCTURE too.
1734         (LINK_LIBG_SPEC): Likewise.
1735         (LIB_SPEC): Add %R to sysroot paths.
1736         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1737         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1738         * config/rs6000/aix51.h: As for aix43.h.
1739         * config/rs6000/aix52.h: Likewise.
1740         * config/rs6000/aix53.h: Likewise.
1741         * config/rs6000/aix61.h: Likewise.
1742         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1743         to the beginning of sysroot paths.
1744
1745 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1746
1747         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1748         INSN_LISTs that are out of the REG_NOTE range.
1749
1750 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1751
1752         * loop-unroll.c (struct iv_to_split): Add pointer to next.
1753         (struct var_to_expand): Likewise.
1754         (struct opt_info): Add head and tail for linked lists of the above.
1755         (analyze_insn_to_expand_var): Initialize next.
1756         (analyze_iv_to_split_insn): Likewise.
1757         (analyze_insns_in_loop): Create linked lists.
1758         (allocate_basic_variable): Simplify for use without hash table.
1759         (insert_var_expansion_initialization): Likewise, make it type-safer.
1760         (combine_var_copies_in_loop_exit): Likewise.
1761         (apply_opt_in_copies): Walk lists rather than hash tables.
1762         (release_var_copies): Simplified and inlined by hand into...
1763         (free_opt_info): ... this function.
1764
1765 2009-06-02  Richard Guenther  <rguenther@suse.de>
1766
1767         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1768         for field decls.
1769
1770 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1771
1772         * cfgexpand.c (gimple_expand_cfg): Discard the source location
1773         only for builtins that are not overridden.
1774
1775 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1776
1777         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1778         label string.
1779
1780 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1781
1782         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1783
1784 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1785
1786         * combine.c (move_deaths): Compare LUIDs within the same BB only.
1787
1788 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1789
1790         * common.opt (fdump-unnumbered-links): New.
1791         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1792         * print-rtl.c (flag_dump_unnumbered_links): New.
1793         (print_rtx): Test it.
1794
1795 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
1796
1797         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1798         push/pop multiple to 8-byte alignment.
1799
1800 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
1801
1802         * config/i386/i386.c (queued_cfa_restores): New static variable.
1803         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1804         functions.
1805         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1806         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1807         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1808         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1809         note unconditionally.
1810         (ix86_emit_restore_regs_using_mov): Likewise.
1811         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1812         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1813         it through to ix86_emit_restore_reg_using_pop.
1814         (ix86_emit_leave): Add RED_OFFSET argument.  Call
1815         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
1816         instead of adding REG_CFA_OFFSET note unconditionally.
1817         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1818         the above functions.  Call ix86_add_queued_cfa_restore_notes when
1819         needed.
1820
1821         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1822         force output of the label even for dwarf2out_do_cfi_asm.
1823         (add_fde_cfi): If -g2 and above and cfi might change CFA,
1824         force creation of CFI label and chain DW_CFA_set_loc jumping to it
1825         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
1826         caller.
1827         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1828         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1829         dwarf2out_cfi_label callers.
1830         * tree.h (dwarf2out_cfi_label): Adjust prototype.
1831         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1832         Adjust dwarf2out_cfi_label callers.
1833         * config/vax/vax.c (vax_output_function_prologue): Likewise.
1834
1835         * config/i386/i386.h (struct machine_cfa_state,
1836         struct machine_function): Guard with ifndef USED_FOR_TARGET
1837         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1838
1839         PR other/40024
1840         * emutls.c (__emutls_get_address): Change arr->size to mean number
1841         of allocated arr->data entries instead of # of slots + 1.
1842
1843         PR middle-end/40316
1844         * recog.c (peep2_reinit_state): New function.
1845         (peephole2_init_state): Use it at the end of a basic block and also
1846         when seeing a RTX_FRAME_RELATED_P insn.
1847
1848 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
1849
1850         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1851         fixuns_truncrfdi2): New.
1852         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1853         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1854         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1855         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1856         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1857         *recip_approx): Remove.
1858         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1859         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1860         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1861         move to div.md.
1862         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1863         setf_exp_rf): New.
1864
1865 2009-06-01  Ian Lance Taylor  <iant@google.com>
1866
1867         * attribs.c (register_attribute): Use CONST_CAST.
1868         * collect2.c (main): Use CONST_CAST2.
1869         (scan_prog_file): Likewise.
1870         * gcc.c (process_command, main): Likewise.
1871         * toplev.c (toplev_main): Likewise.
1872
1873         * c-typeck.c (handle_warn_cast_qual): New static function,
1874         partially broken out of build_c_cast.
1875         (build_c_cast): Call handle_warn_cast_qual.
1876         * doc/invoke.texi (Warning Options): Document new effect of
1877         -Wcast-qual.
1878
1879 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
1880
1881         * diagnostic.c (diagnostic_build_prefix): Always print columns.
1882         (diagnostic_report_current_module): Print columns.
1883         * common.opt (flag_show_column): Enable by default.
1884
1885 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
1886
1887         * alias.c (find_base_term): Check for NULL term before returning.
1888
1889 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1890
1891         Revert due to PR40320:
1892         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1893         * calls.c (emit_library_call_value_1): Don't force_operand for move
1894         and push insns.
1895
1896 2009-06-01  Olivier Hainque  <hainque@adacore.com>
1897             Eric Botcazou  <ebotcazou@adacore.com>
1898
1899         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1900         to be processed as a bitfield for constructor output purposes.
1901         * output.h (initializer_constant_valid_for_bitfield_p): Declare
1902         new function.
1903         * varasm.c (oc_local_state): New type, output_constructor
1904         local state to support communication with helpers.
1905         (oc_outer_state): New type, output_constructor outer state of
1906         relevance in recursive calls.
1907         (output_constructor_array_range): New output_constructor helper,
1908         extracted code for an array range element.
1909         (output_constructor_regular_field): New output_constructor helper,
1910         extracted code for an element that is not a bitfield.
1911         (output_constructor_bitfield): New output_constructor helper,
1912         extracted code for a bitfield element.  Accept an OUTER state
1913         argument for recursive processing.  Recurse on record or array
1914         CONSTRUCTOR values, possibly past noop conversions.
1915         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
1916         VALUE is a valid constant-valued expression for use in a static
1917         bit-field initializer.
1918         (output_constructor): Rework to use helpers.  Accept and honor an
1919         OUTER state argument for recursive calls.  Return total size.  Be
1920         prepared for nested constructors initializing bitfields.
1921         (output_constant): Feed OUTER in calls to output_constructor.
1922
1923 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1924
1925         * calls.c (emit_library_call_value_1): Don't force_operand for move
1926         and push insns.
1927
1928 2009-06-01  Nick Clifton  <nickc@redhat.com>
1929
1930         * doc/invoke.texi (IA-64 Options): Fix typo.
1931
1932 2009-06-01  Ira Rosen  <irar@il.ibm.com>
1933
1934         PR tree-optimization/39129
1935         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
1936         printed message.
1937         (vect_do_peeling_for_loop_bound): Use 
1938         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1939         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1940         (vect_loop_versioning): Likewise.
1941         (vect_create_cond_for_alias_checks): Fix indentation.
1942         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
1943         macros.
1944         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1945         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1946         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
1947         "control flow in loop".
1948         (vect_estimate_min_profitable_iters): Use 
1949         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1950         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1951         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1952         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1953         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
1954         statement belongs to a group of strided accesses with the exact code 
1955         check.
1956         (vectorizable_load): Likewise.
1957         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1958         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1959
1960 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
1961
1962         * config/freebsd-stdint.h: New file.
1963         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1964         Add freebsd-stdint.h to tm_file.
1965
1966 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
1967
1968         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1969         (thumb2_extendhidi2): Likewise.
1970
1971 2009-05-31  Ian Lance Taylor  <iant@google.com>
1972
1973         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
1974
1975 2009-05-31  Ian Lance Taylor  <iant@google.com>
1976
1977         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
1978         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1979         (ipa-reference.o): Depend upon gt-ipa-reference.h.
1980
1981 2009-05-31  Jason Merrill  <jason@redhat.com>
1982
1983         * tree-pretty-print.c (print_call_name): Take the callee, not the
1984         call itself.  Make non-static.  Use dump_function_name for functions.
1985         (dump_generic_node): Adjust.
1986         * diagnostic.h: Declare print_call_name.
1987         * gimple-pretty-print.c (dump_gimple_call): Use it.
1988
1989 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1990
1991         * config/sh/sh.md (ashldi3_std): New define_expand.
1992         (ashldi3): Use it.
1993
1994 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1995
1996         PR target/40313
1997         * config/sh/sh.c: Include debug.h.
1998         (sh_expand_epilogue): Emit a blockage insn before the frame
1999         pointer adjustment also when dwarf2out_do_frame returns true.
2000
2001 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
2002
2003         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2004         (thumb2_extendqidi2): New pattern.
2005
2006 2009-05-31  Ira Rosen  <irar@il.ibm.com>
2007
2008         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2009         mark phis for renaming.
2010         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2011         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2012         Call mark_sym_for_renaming.
2013         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
2014         * tree-vect-loop.c (vect_transform_loop): Remove
2015         vect_memsyms_to_rename initialization and a call to
2016         mark_set_for_renaming.
2017
2018 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
2019
2020         PR middle-end/40304
2021         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2022         frame related even if !set_cfa && style < 0.
2023
2024 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
2025
2026         * config/i386/mingw-tls.c: New file.
2027         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2028         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2029         defining _WIN32 but not __CYGWIN__.
2030
2031 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2032
2033         * configure.ac: Add MPC support.
2034         
2035         * config.in, configure: Regenerate.     
2036
2037 2009-05-29  Richard Henderson  <rth@redhat.com>
2038
2039         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2040         NOTE_INSN_BASIC_BLOCK.
2041         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2042         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2043         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2044         to be deleted.
2045         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2046         add in_use field.
2047         (add_cfi): Disable check redefining cfa away from drap.
2048         (lookup_cfa_1): Add remember argument; handle remember/restore.
2049         (lookup_cfa): Pass remember argument.
2050         (cfa_remember): New.
2051         (compute_barrier_args_size_1): Remove sibcall check.
2052         (dwarf2out_frame_debug_def_cfa): New.
2053         (dwarf2out_frame_debug_adjust_cfa): New.
2054         (dwarf2out_frame_debug_cfa_offset): New.
2055         (dwarf2out_frame_debug_cfa_register): New.
2056         (dwarf2out_frame_debug_cfa_restore): New.
2057         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2058         (dwarf2out_begin_epilogue): New.
2059         (dwarf2out_frame_debug_restore_state): New.
2060         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2061         DW_CFA_restore_state.
2062         (output_cfi_directive): Likewise.
2063         (convert_cfa_to_fb_loc_list): Likewise.
2064         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2065         * dwarf2out.h: Update.
2066         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2067         (copy_insn_1): Early out for null.
2068         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2069         and dwarf2out_frame_debug_restore_state.
2070         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2071         (prologue_insn_hash, epilogue_insn_hash): New.
2072         (free_after_compilation): Adjust freeing accordingly.
2073         (record_insns): Create hash table if needed; push insns into
2074         hash instead of array.
2075         (maybe_copy_epilogue_insn): New.
2076         (contains): Search hash table instead of array.
2077         (sibcall_epilogue_contains): Remove.
2078         (thread_prologue_and_epilogue_insns): Split eh_return insns
2079         and mark them as epilogues.
2080         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2081         scanning in terms of basic blocks.
2082         * insn-notes.def (CFA_RESTORE_STATE): New.
2083         * jump.c (returnjump_p_1): Accept EH_RETURN.
2084         (eh_returnjump_p_1, eh_returnjump_p): New.
2085         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2086         CFA_REGISTER, CFA_RESTORE): New.
2087         * rtl.def (EH_RETURN): New.
2088         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2089
2090         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2091         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2092
2093         * config/i386/i386.c (gen_push): Update cfa state.
2094         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
2095         add a CFA_ADJUST_CFA note.
2096         (ix86_dwarf_handle_frame_unspec): Remove.
2097         (ix86_expand_prologue): Update cfa state.
2098         (ix86_emit_restore_reg_using_pop): New.
2099         (ix86_emit_restore_regs_using_pop): New.
2100         (ix86_emit_leave): New.
2101         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2102         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2103         * config/i386/i386.h (struct machine_cfa_state): New.
2104         (ix86_cfa_state): New.
2105         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2106         (eh_return_internal): Merge from eh_return_<mode>,
2107         use eh_return rtx, split w/ epilogue.
2108
2109 2009-05-29  Ian Lance Taylor  <iant@google.com>
2110
2111         * builtins.c (validate_gimple_arglist): Don't use va_arg with
2112         enum type.
2113         * calls.c (emit_library_call_value_1): Likewise.
2114
2115         * c-typeck.c (c_build_va_arg): New function.
2116         * c-tree.h (c_build_va_arg): Declare.
2117         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2118         instead of build_va_arg.
2119
2120 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2121
2122         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2123         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2124         (ptr_difference_cost): Use affine combinations to compute it.
2125         (difference_cost): Likewise.
2126         (get_computation_cost_at): Compute more accurate cost for addresses
2127         if the ratio is a multiplier allowed in addresses.
2128         For non-addresses, consider that an additional offset or symbol is
2129         added only once.
2130
2131 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2132
2133         * config/i386/i386.c (ix86_decompose_address): Avoid useless
2134         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
2135
2136         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2137         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2138         (prefix_rex): For UNIT_MMX don't imply the prefix by default
2139         if MODE_DI.
2140         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2141         to 1 for TYPE_SSE{IADD1,CVT1}.
2142         (prefix_vex_imm8): Removed.
2143         (length_vex): Only pass 1 as second argument to
2144         ix86_attr_length_vex_default if prefix_extra is 0.
2145         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2146         (length): For prefix vex computation use length_immediate
2147         attribute instead of prefix_vex_imm8.
2148         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2149         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2150         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2151         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2152         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2153         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2154         a space in between the operands.
2155         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
2156         if one operand is 0xff and the other one si, di, bp or sp.
2157         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2158         other one si, di, bp or sp.
2159         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2160         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2161         type and mode attributes.
2162         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2163         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2164         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2165         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2166         prefix_data16 attribute iff MODE_DF.
2167         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2168         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2169         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2170         constm128_operand in length_immediate computation.
2171         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
2172         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2173         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2174         length_immediate attribute to 1.
2175         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2176         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2177         for certain alternatives.
2178         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2179         prefix_data16 attribute if MODE_V1DF.
2180         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2181         length_immediate to 1.
2182         (set_got_rex64, set_rip_rex64): Remove length attribute, set
2183         length_address to 4, set mode attribute to MODE_DI.
2184         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
2185         (fxam<mode>2_i387): Set length attribute to 4.
2186         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2187         *prefetch_3dnow_rex): Override length_address attribute.
2188         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2189         attributes.
2190         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2191         (constm128_operand): Removed.
2192         * config/i386/i386.c (memory_address_length): For
2193         disp && !index && !base in 64-bit mode account for SIB byte if
2194         print_operand_address can't optimize disp32 into disp32(%rip)
2195         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
2196         for fs: or gs: segment.
2197         (ix86_attr_length_immediate_default): When checking if shortform
2198         is possible, truncate immediate to the length of the non-shortened
2199         immediate.
2200         (ix86_attr_length_address_default): Ignore MEM_P operands
2201         with X constraint.
2202         (ix86_attr_length_vex_default): Only check for DImode on
2203         GENERAL_REG_P operands.
2204         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2205         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2206         (sse_cvttps2pi): Clear prefix_rep attribute.
2207         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2208         attribute.
2209         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2210         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2211         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2212         iff operand 2 is const_int_operand.
2213         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2214         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2215         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
2216         instead of vex.
2217         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2218         prefix_data16.
2219         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2220         prefix_data16 attribute for movlpd and movhpd instructions.
2221         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
2222         length_immediate for shufpd instruction.
2223         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2224         (avx_cmpp<avxmodesuffixf2c><mode>3,
2225         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2226         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2227         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
2228         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
2229         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2230         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2231         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2232         prefix_data16 attribute for the first alternative to 1.
2233         (*avx_loadlps): Override length_immediate for the first alternative.
2234         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2235         attributes for second alternative.
2236         (*vec_concatv2sf_sse4_1): Override length_immediate and
2237         prefix_data16 attributes for second alternative.
2238         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2239         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2240         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2241         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2242         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2243         prefix_data16 and length_immediate to 1.
2244         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2245         to 1.
2246         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
2247         prefix_extra attribute for variants that don't have 0f prefix alone.
2248         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
2249         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2250         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2251         *sse4_1_pextrd): Set length_immediate to 1.
2252         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
2253         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2254         to 1.
2255         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2256         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2257         length_immediate to 1 for second alternative.
2258         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2259         prefix_extra and length_immediate attributes for the first
2260         alternative.
2261         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2262         first alternative.
2263         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
2264         to 1 for the first and third alternative.
2265         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2266         alternative.
2267         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2268         attribute.
2269         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2270         attribute to 0.
2271         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2272         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2273         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2274         *avx_psign<mode>3): Set prefix_extra attribute to 1.
2275         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2276         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2277         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2278         ssse3_psign<mode>3): Override prefix_rex attribute.
2279         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
2280         (ssse3_palignrti): Override length_immediate to 1.
2281         (ssse3_palignrdi): Override length_immediate to 1, override
2282         prefix_rex attribute.
2283         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
2284         (sse4a_extrqi): Override length_immediate to 2.
2285         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
2286         (sse4a_insertq): Override prefix_data16 to 0.
2287         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2288         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2289         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2290         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2291         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2292         and length_immediate to 1.
2293         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2294         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2295         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2296         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2297         and length_immediate to 1.
2298         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2299         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2300         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2301         avx_ptest256): Override prefix_extra to 1.
2302         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2303         Override prefix_data16 and length_immediate to 1.
2304         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2305         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2306         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2307         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2308         prefix_data16 to 0 and prefix_extra to 2.
2309         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2310         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2311         attribute.
2312         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2313         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2314         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2315         and prefix_extra to 2.
2316         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2317         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2318         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2319         avx_vpermilvar<mode>3,
2320         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2321         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2322         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2323         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2324         Override prefix_extra to 1.
2325         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2326         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2327         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2328         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2329         prefix_extra and length_immediate to 1.
2330         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2331         modrm to 0.
2332         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2333         to 1 for the first alternative.
2334         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2335         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2336         cases.
2337         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2338         *movv2sf_internal_avx, *movv2sf_internal): Override
2339         prefix_rep attribute for certain alternatives.
2340         (*mov<mode>_internal): Override prefix_rep or prefix_data16
2341         attributes for certain alternatives.
2342         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2343         attributes for certain alternatives.
2344         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2345         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2346         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2347         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2348         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2349         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2350         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2351         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2352         length_immediate to 1 if operand 2 is const_int_operand.
2353         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
2354         *vec_extractv2si_1): Set length_immediate attribute to 1.
2355         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2356         using old 3DNOW insn rather than SSE/3DNOW_A.
2357         (mmx_emms, mmx_femms): Clear modrm attribute.
2358
2359 2009-05-29  Martin Jambor  <mjambor@suse.cz>
2360
2361         * tree-sra.c:  New implementation of SRA.
2362
2363         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2364         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2365         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2366         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2367         (SRA_MAX_STRUCTURE_COUNT): Removed.
2368         (SRA_FIELD_STRUCTURE_RATIO): Removed.
2369         * doc/invoke.texi (sra-max-structure-size): Removed.
2370         (sra-field-structure-ratio): Removed.
2371
2372 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2373
2374         PR middle-end/40291
2375         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2376         before expansion.
2377
2378 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
2379
2380         PR rtl-optimization/40101
2381         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2382         seqno.  Adjust comment.
2383         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
2384         inserting bookkeeping before a jump, the jump is not scheduled.
2385         When no positive seqno found, provide a value.  Add comment.
2386
2387 2009-05-29  Richard Guenther  <rguenther@suse.de>
2388
2389         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2390         short-cutting on the first component.
2391
2392 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2393
2394         PR middle-end/39958
2395         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2396         for trees other than decls/types.
2397
2398 2009-05-29  Richard Guenther  <rguenther@suse.de>
2399
2400         * tree-ssa-operands.c (get_expr_operands): Do not handle
2401         INDIRECT_REFs in the handled-component case.  Remove
2402         unused get_ref_base_and_extent case.
2403         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2404         tree_low_cst and host_integerp where possible.
2405         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2406         codes for equivalence.
2407         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2408
2409 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
2410
2411         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2412         to tmake_file for i[34567]86-*-cygwin*. 
2413
2414 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2415
2416         PR target/40017
2417         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2418         (altivec_categorize_keyword, init_vector_keywords,
2419         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2420         similar to bool.
2421
2422 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
2423
2424         * tree.c (handle_dll_attribute): Check if node is
2425         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2426
2427 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
2428
2429         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2430         component.
2431         (thumb2_zero_extendqidi2): Likewise.
2432
2433 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2434
2435         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2436         instead of gen_movrt.
2437         * config/sh/sh.md (movrt): Remove.
2438
2439 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
2440
2441         * doc/invoke.texi (IA-64 Options):
2442         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
2443         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2444         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2445         -msched-prefer-non-control-spec-insns,
2446         -msched-stop-bits-after-every-cycle,
2447         -msched-count-spec-in-critical-path,
2448         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
2449         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
2450         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2451         and -msched-spec-verbose.
2452
2453 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
2454
2455         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
2456         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2457         error if used.
2458         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2459
2460 2009-05-28  Richard Guenther  <rguenther@suse.de>
2461
2462         * tree-ssa-alias.c (ao_ref_init): New function.
2463         (ao_ref_base): Likewise.
2464         (ao_ref_base_alias_set): Likewise.
2465         (ao_ref_alias_set): Likewise.
2466         (refs_may_alias_p_1): Change signature.
2467         (refs_may_alias_p): Adjust.
2468         (refs_anti_dependent_p): Likewise.
2469         (refs_output_dependent_p): Likewise.
2470         (call_may_clobber_ref_p_1): Change signature.
2471         (call_may_clobber_ref_p): Adjust.
2472         (stmt_may_clobber_ref_p_1): New function split out from ...
2473         (stmt_may_clobber_ref_p): ... here.
2474         (maybe_skip_until): Adjust signature.
2475         (get_continuation_for_phi): Likewise.
2476         (walk_non_aliased_vuses): Likewise.
2477         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2478         (ao_ref_init): Declare.
2479         (ao_ref_base): Likewise.
2480         (ao_ref_alias_set): Likewise.
2481         (stmt_may_clobber_ref_p_1): Likewise.
2482         (walk_non_aliased_vuses): Adjust.
2483         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2484         (get_ref_from_reference_ops): remove.
2485         (vn_reference_lookup_2): Adjust signature.
2486         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
2487         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2488         (vn_reference_lookup): Adjust.
2489         (vn_reference_insert): Likewise.
2490         (vn_reference_insert_pieces): Adjust signature.
2491         (visit_reference_op_call): Adjust.
2492         * tree-ssa-pre.c (get_expr_type): Simplify.
2493         (phi_translate_1): Adjust.
2494         (compute_avail): Likewise.
2495         (translate_vuse_through_block): Do not re-build trees.
2496         (value_dies_in_block_x): Likewise.
2497         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2498         fields.
2499         (vn_reference_lookup_pieces): Adjust declaration.
2500         (vn_reference_insert_pieces): Likewise.
2501
2502 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
2503
2504         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2505         with checking disabled.
2506
2507 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
2508
2509         PR target/37216
2510
2511         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
2512         macro definition for support of three-operand format aligned
2513         .comm directive in assembler on cygwin/pe/mingw target OS.
2514         * configure:  Regenerate.
2515         * config.h:  Regenerate.
2516
2517         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
2518         aligned form of .comm directive if -mpe-aligned-commons is in effect.
2519         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
2520
2521         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
2522         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
2523
2524 2009-05-28  Ira Rosen  <irar@il.ibm.com>
2525
2526         PR tree-optimization/40254
2527         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2528         in analysis of basic blocks.
2529
2530 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
2531
2532         PR middle-end/33699
2533         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
2534         * target-def.h (TARGET_CONST_ANCHOR): New macro.
2535         (TARGET_INITIALIZER): Use it.
2536         * cse.c (CHEAPER): Move it up to the other macros.
2537         (insert): Rename this ...
2538         (insert_with_costs): ... to this.  Add cost parameters.  Update
2539         function comment.
2540         (insert): New function.  Call insert_with_costs.
2541         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2542         find_reg_offset_for_const, try_const_anchors): New functions.
2543         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
2544         when using a const-anchor.  Call insert_const_anchors.
2545         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2546         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2547
2548 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2549
2550         * tree-inline.c (remap_decls): Enable nonlocalized variables
2551         when not optimizing.
2552
2553 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2554
2555         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2556         Simplify other tests involving optimize.
2557
2558 2009-05-27  Tom Tromey  <tromey@redhat.com>
2559
2560         * unwind-dw2.c (_Unwind_DebugHook): New function.
2561         (uw_install_context): Call _Unwind_DebugHook.
2562
2563 2009-05-27  Tom Tromey  <tromey@redhat.com>
2564
2565         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2566
2567 2009-05-27  Ian Lance Taylor  <iant@google.com>
2568
2569         * Makefile.in (LINKER, LINKER_FLAGS): Define.
2570         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2571         (ALL_LINKERFLAGS): Define.
2572         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2573         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2574         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2575         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2576         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2577         $(LINKER_FOR_BUILD).
2578         (build/gcov-iov$(build_exeext)): Likewise.
2579
2580 2009-05-27  Julian Brown  <julian@codesourcery.com>
2581
2582         * gcse.c (target.h): Include.
2583         (can_assign_to_reg_without_clobbers_p): Check that the target allows
2584         copy of argument to a pseudo register.
2585
2586 2009-05-27  Diego Novillo  <dnovillo@google.com>
2587
2588         * tree-ssa-live.c (dump_scope_block): Document arguments.
2589         (dump_scope_blocks): Document.
2590         (debug_scope_blocks): New.
2591         * tree-flow.h (debug_scope_blocks): Declare.
2592
2593 2009-05-21  Denis Chertykov  <denisc@overta.ru>
2594
2595         * doc/contrib.texi (Contributors): Add myself to the list.
2596
2597 2009-05-27  Olivier Hainque  <hainque@adacore.com>
2598
2599         * expr.c (target_align): New function.  Alignment the TARGET of an
2600         assignment may be assume to have.
2601         (highest_pow2_factor_for_target): Use it instead of relying on
2602         immediate tree attributes of TARGET, not necessarily honored when
2603         intermediate bitfields are involved.
2604         
2605 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2606
2607         PR target/40266
2608         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2609         AVX, SSE4, AES, PCLMUL and POPCNT.
2610
2611 2009-05-27  Diego Novillo  <dnovillo@google.com>
2612
2613         * tree-pretty-print.c (dump_location): New.
2614         (dump_generic_node): Call it.
2615         Factor code to handle BLOCK nodes ...
2616         (dump_block_node): ... here.
2617
2618 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2619
2620         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2621         with it.
2622         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2623         included.
2624         * gcc-plugin.h: Include config.h and system.h.
2625         (IN_GCC): Define if not defined.
2626
2627 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
2628
2629         PR middle-end/40249
2630         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2631         with -fno-inline.
2632
2633 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
2634
2635         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2636         applicable.
2637         * config/m32r/m32r.h: Ditto.
2638         * config/m32r/m32r.md: Ditto.
2639         * config/m32r/predicates.md: Ditto.
2640
2641 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
2642
2643         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2644
2645 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
2646
2647         * doc/plugins.texi
2648         (Loading plugins): typo.
2649         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2650         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2651         (Interacting with the GCC Garbage Collector): Added new section.
2652         (Giving information about a plugin): Added new section for
2653         PLUGIN_INFO.
2654         * ggc.h (ggc_register_root_tab): Added declaration.
2655         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2656         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2657         (register_callback): Improved comment in declaration.
2658         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2659         (extra_root_vec) Added static variable for dynamic roots registration.
2660         (ggc_register_root_tab) Added new routine.
2661         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2662         PLUGIN_GGC_MARKING event.
2663         * ggc-zone.c: Include plugin.h.
2664         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2665         * ggc-page.c: Include plugin.h.
2666         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2667         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2668         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2669         (register_callback): check lack of callbacks for
2670         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2671         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2672         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2673         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2674         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2675         dependency on plugin.h.
2676         (plugin.o): Added dependency on ggc.h...
2677
2678 2009-05-26  Richard Guenther  <rguenther@suse.de>
2679
2680         PR middle-end/40248
2681         Revert
2682         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2683         with mismatched comparison modes.
2684
2685         * expr.c (expand_expr_real_1): Expand the operand of a
2686         VIEW_CONVERT_EXPR in its natural mode.
2687
2688 2009-05-26  Ian Lance Taylor  <iant@google.com>
2689
2690         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2691         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2692         (ALL_COMPILERFLAGS): Define.
2693         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2694         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2695         (collect2$(exeext), collect2.o): Likewise.
2696         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2697         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2698         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2699         (libbackend.o, intl.o, cppdefault.o): Likewise.
2700         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2701         (build/%.o): Use $(COMPILER_FOR_BUILD).
2702         (build/gen%$(build_exeext)): Likewise.
2703         (build/gcov-iov$(build_exeext)): LIkewise.
2704         * config/t-darwin (darwin.o): Use $(COMPILER).
2705         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2706         * config/t-sol2 (sol2-c.o): Likewise.
2707         (sol2.o): Likewise.
2708         * config/t-vxworks (vxworks.o): Likewise.
2709         * config/x-darwin (host-darwin.o): Likewise.
2710         * config/x-hpux (host-hpux.o): Likewise.
2711         * config/x-linux (host-linux.o): Likewise.
2712         * config/x-solaris (host-solaris.o): Likewise.
2713         * config/alpha/x-alpha (driver-alpha.o): Likewise.
2714         * config/arm/t-arm (arm-c.o): Likewise.
2715         * config/arm/t-pe (pe.o): Likewise.
2716         * config/arm/t-wince-pe (pe.o): Likewise.
2717         * config/i386/t-cygming (winnt.o): Likewise.
2718         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2719         * config/i386/t-cygwin (cygwin1.o): Likewise.
2720         (cygwin2.o): Likewise.
2721         * config/i386/t-i386 (i386-c.o): Likewise.
2722         * config/i386/t-interix (winnt.o): Likewise.
2723         * config/i386/t-netware (netware.o): Likewise.
2724         * config/i386/t-nwld (nwld.o): Likewise.
2725         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2726         * config/i386/x-i386 (driver-i386.o): Likewise.
2727         * config/i386/x-cygwin (host-cygwin.o): Likewise.
2728         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2729         * config/ia64/t-ia64 (ia64-c.o): Likewise.
2730         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2731         * config/mips/x-native (driver-native.o): Likewise.
2732         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2733         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2734         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2735         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2736         * config/score/t-score-elf (score7.o): Likewise.
2737         (score3.o): Likewise.
2738         * config/sh/t-sh (sh-c.o): Likewise.
2739         * config/sh/t-symbian (sh-c.o): Likewise.
2740         (symbian.o): Likewise.
2741         * config/spu/t-spu-elf (spu-c.o): Likewise.
2742         * config/v850/t-v850 (v850-c.o): Likewise.
2743         * config/v850/t-v850e (v850-c.o): Likewise.
2744
2745 2009-05-26  Richard Guenther  <rguenther@suse.de>
2746
2747         PR tree-optimization/40122
2748         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2749         VECTOR_CSTs if possible.
2750         (fold_gimple_assign): Likewise.
2751
2752 2009-05-26  Richard Guenther  <rguenther@suse.de>
2753
2754         PR middle-end/40252
2755         * fold-const.c (fold_binary): Use the correct types for building
2756         rotates.
2757
2758 2009-05-26  Richard Guenther  <rguenther@suse.de>
2759
2760         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2761         redundant calls to merge_alias_info.
2762         (bump_vector_ptr): Likewise.
2763         * tree-ssa-copy.c (merge_alias_info): Remove.
2764         (replace_exp_1): Remove call to merge_alias_info.
2765         (propagate_tree_value): Likewise.
2766         (fini_copy_prop): Propagate points-to info.
2767         * tree-flow.h (merge_alias_info): Remove.
2768
2769 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
2770
2771         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2772
2773 2009-05-25  Jan Hubicka  <jh@suse.cz>
2774
2775         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2776         * cgraph.h (struct inline_summary): New filed self_wize,
2777         size_inlining_benefit, self_time and time_inlining_benefit.
2778         (struct cgraph_global_info): Replace insns by time ans size fields.
2779         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2780         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2781         (ipcp_update_callgraph): Do not touch function bodies.
2782         * ipa-inline.c: Include except.h
2783         (MAX_TIME): New constant.
2784         (overall_insns): Remove.
2785         (leaf_node_p): New.
2786         (overall_size, max_benefit): New static variables.
2787         (cgraph_estimate_time_after_inlining): New function.
2788         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2789         (cgraph_clone_inlined_nodes): Update size.
2790         (cgraph_mark_inline_edge): Update size.
2791         (cgraph_estimate_growth): Use size info.
2792         (cgraph_check_inline_limits): Check size.
2793         (cgraph_default_inline_p): Likewise.
2794         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2795         (cgraph_decide_recursive_inlining): Check size.
2796         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2797         and times.
2798         (cgraph_decide_inlining): Likewise.
2799         (cgraph_decide_inlining_incrementally): Likewise; honor
2800         PARAM_EARLY_INLINING_INSNS.
2801         (likely_eliminated_by_inlining_p): New predicate.
2802         (estimate_function_body_sizes): New function.
2803         (compute_inline_parameters): Use it.
2804         * except.c (must_not_throw_labels): New function.
2805         * except.h (must_not_throw_labels): Declare.
2806         * tree-inline.c (init_inline_once): Kill inlining_weigths
2807         * tree-ssa-structalias.c: Avoid uninitialized warning.
2808         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2809         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2810         (PARAM_INLINE_CALL_COST): Remove.
2811         (PARAM_EARLY_INLINING_INSNS): New.
2812
2813 2009-05-25  Richard Guenther  <rguenther@suse.de>
2814
2815         PR tree-optimization/36327
2816         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
2817         callback for reference translation or lookup at the point of may-defs.
2818         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2819         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2820         for union COMPONENT_REFs.
2821         (vn_reference_lookup_3): New callback.  Lookup from memset
2822         and CONSTRUCTOR assignment, translate through struct copies.
2823         (vn_reference_lookup_pieces): Make sure to not free the
2824         passed operands array.  Adjust walk_non_aliased_vuses call.
2825         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2826         make sure we do not leak memory.
2827
2828 2009-05-25  Richard Guenther  <rguenther@suse.de>
2829
2830         * tree-ssa-alias.h (dump_points_to_solution): Declare.
2831         * tree-inline.c (expand_call_inline): Reset the escaped and
2832         callused solutions.
2833         * tree-ssa-structalias.c (pass_build_ealias): New.
2834         * tree-pass.h (pass_build_ealias): Declare.
2835         * passes.c (init_optimization_passes): Add PTA during 
2836         early optimizations.
2837         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2838         and CALLUSED solutions.
2839         (dump_points_to_solution): New function, split out from ...
2840         (dump_points_to_info_for): ... here.
2841         * tree-parloops.c (parallelize_loops): Reset the escaped and
2842         callused solutions.
2843
2844 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2845
2846         PR bootstrap/40027
2847         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2848         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2849
2850 2009-05-25  Ira Rosen  <irar@il.ibm.com>
2851
2852         PR tree-optimization/40238
2853         * tree-vect-stmts.c (vect_init_vector): Insert initialization
2854         statements after basic block's labels.
2855         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
2856         to free the allocated memory.
2857
2858 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2859
2860         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2861         return address with a USE.
2862
2863 2009-05-24  Richard Guenther  <rguenther@suse.de>
2864
2865         PR middle-end/40233
2866         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2867         array type from the main variant of the inner type.
2868
2869 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2870
2871         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2872         definition to bool (from int) to un-break build.
2873         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2874
2875 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
2876
2877         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2878         discard_stmt_changes): Delete.
2879         * tree-ssa-operands.c (scb_stack): Delete.
2880         (init_ssa_operands): Do not initialize it.
2881         (fini_ssa_operands): Do not free it.
2882         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2883
2884         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
2885         update_stmt, remove the others.  Fix comments.
2886         * tree-dfa.c (optimize_stack_restore): Likewise.
2887         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2888         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2889         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2890         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2891         Likewise.
2892         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2893         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
2894         (dom_opt_finalize_block): Likewise, adjusting access to
2895         stmts_to_rescan.
2896         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2897         (stmts_to_rescan): Change item type to gimple.
2898         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2899
2900 2009-05-24  Ira Rosen  <irar@il.ibm.com>
2901
2902         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2903         * tree-pass.h (pass_slp_vectorize): New pass.
2904         * params.h (SLP_MAX_INSNS_IN_BB): Define.
2905         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2906         * tree-vectorizer.c (timevar.h): Include.
2907         (user_vect_verbosity_level): Declare.
2908         (vect_location): Fix comment.
2909         (vect_set_verbosity_level): Update user_vect_verbosity_level
2910         instead of vect_verbosity_level.
2911         (vect_set_dump_settings): Add an argument. Ignore user defined
2912         verbosity if dump flags require higher level of verbosity. Print to
2913         stderr only for loop vectorization.
2914         (vectorize_loops): Update call to vect_set_dump_settings.
2915         (execute_vect_slp): New function.
2916         (gate_vect_slp): Likewise.
2917         (struct gimple_opt_pass pass_slp_vectorize): New.
2918         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2919         access its members.
2920         (vec_info_for_bb): New function.
2921         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2922         (VECTORIZATION_ENABLED): New macro.
2923         (SLP_ENABLED, SLP_DISABLED): Likewise.
2924         (vect_is_simple_use): Add bb_vec_info argument.
2925         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2926         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2927         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2928         vect_schedule_slp, vect_analyze_slp): Likewise.
2929         (vect_analyze_stmt): Add slp_tree argument.
2930         (find_bb_location): Declare.
2931         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2932         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2933         (vect_analyze_loop_operations, vect_analyze_loop,
2934         get_initial_def_for_induction, vect_create_epilog_for_reduction,
2935         vect_finalize_reduction, vectorizable_reduction,
2936         vectorizable_live_operation, vect_transform_loop): Likewise.
2937         * tree-data-ref.c (dr_analyze_innermost): Update comment,
2938         skip evolution analysis if analyzing a basic block.
2939         (dr_analyze_indices): Likewise.
2940         (initialize_data_dependence_relation): Skip the test whether the
2941         object is invariant for basic blocks.
2942         (compute_all_dependences): Skip dependence analysis for data
2943         references in basic blocks.
2944         (find_data_references_in_stmt): Don't fail in case of invariant
2945         access in basic block.
2946         (find_data_references_in_bb): New function.
2947         (find_data_references_in_loop): Move code to
2948         find_data_references_in_bb and add a call to it.
2949         (compute_data_dependences_for_bb): New function.
2950         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2951         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2952         that STEP is 0.
2953         (vect_analyze_data_ref_dependence): Check for interleaving in case of
2954         unknown dependence in basic block and fail in case of dependence in
2955         basic block.
2956         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2957         dependence instances from either loop or basic block vectorization
2958         info.
2959         (vect_compute_data_ref_alignment): Check if it is loop vectorization
2960         before calling nested_in_vect_loop_p.
2961         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2962         dependence instances from either loop or basic block vectorization
2963         info.
2964         (vect_verify_datarefs_alignment): Likewise.
2965         (vect_enhance_data_refs_alignment): Adjust function calls.
2966         (vect_analyze_data_refs_alignment): Likewise.
2967         (vect_analyze_group_access): Fix printing. Skip different checks if
2968         DR_STEP is 0. Keep strided stores either in loop or basic block
2969         vectorization data structure. Fix indentation.
2970         (vect_analyze_data_ref_access): Fix comments, allow zero step in
2971         basic blocks.
2972         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2973         dependence instances from either loop or basic block vectorization
2974         info.
2975         (vect_analyze_data_refs): Update comment. Call
2976         compute_data_dependences_for_bb to analyze basic blocks.
2977         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2978         case of loop vectorization. In case of basic block vectorization use
2979         data-ref itself as a base.
2980         (vect_create_data_ref_ptr): In case of basic block vectorization:
2981         don't advance the pointer, add new statements before the current
2982         statement.  Adjust function calls.
2983         (vect_supportable_dr_alignment): Support only aligned accesses in
2984         basic block vectorization.
2985         * common.opt (ftree-slp-vectorize): New flag.
2986         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2987         (vect_pattern_recog_1): Likewise.
2988         * tree-vect-stmts.c (process_use): Likewise.
2989         (vect_init_vector): Add new statements in the beginning of the basic
2990         block in case of basic block SLP.
2991         (vect_get_vec_def_for_operand): Adjust function calls.
2992         (vect_finish_stmt_generation): Likewise.
2993         (vectorizable_call): Add assert that it is loop vectorization, adjust
2994         function calls.
2995         (vectorizable_conversion, vectorizable_assignment): Likewise.
2996         (vectorizable_operation): In case of basic block SLP, take
2997         vectorization factor from statement's type and skip the relevance
2998         check. Adjust function calls.
2999         (vectorizable_type_demotion): Add assert that it is loop
3000         vectorization, adjust function calls.
3001         (vectorizable_type_promotion): Likewise.
3002         (vectorizable_store): Check for outer loop only in case of loop
3003         vectorization. Adjust function calls. For basic blocks, skip the
3004         relevance check and don't advance pointers.
3005         (vectorizable_load): Likewise.
3006         (vectorizable_condition): Add assert that it is loop vectorization,
3007         adjust function calls.
3008         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3009         that it is not reduction, get vector type, call only supported
3010         functions, skip loop specific parts.
3011         (vect_transform_stmt): Check for outer loop only in case of loop
3012         vectorization.
3013         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3014         (vect_is_simple_use): Fix comment, add new argument, fix conditions
3015         for external definition.
3016         * passes.c (pass_slp_vectorize): New pass.
3017         * tree-vect-slp.c (find_bb_location): New function.
3018         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3019         check for patterns only in loops.
3020         (vect_build_slp_tree): Add argument, adjust function calls, fail in
3021         case of multiple types in basic block SLP.
3022         (vect_mark_slp_stmts_relevant): New function.
3023         (vect_supported_load_permutation_p): Fix comment.
3024         (vect_analyze_slp_instance): Add argument. In case of basic block
3025         SLP, take vectorization factor from statement's type, check that
3026         unrolling factor is 1. Adjust function call. Save SLP instance in
3027         either loop or basic block vectorization structure. Return FALSE,
3028         if SLP failed.
3029         (vect_analyze_slp): Add argument. Get strided stores groups from
3030         either loop or basic block vectorization structure. Return FALSE
3031         if basic block SLP failed.
3032         (new_bb_vec_info): New function.
3033         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3034         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3035         (vect_schedule_slp): Add argument. Get SLP instances from either
3036         loop or basic block vectorization structure. Set vectorization factor
3037         to be 1 for basic block SLP.
3038         (vect_slp_transform_bb): New function.
3039         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3040
3041 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
3042
3043         * final.c (shorten_branches): Do not align labels for jump tables.
3044         (final_scan_insn): Use JUMP_TABLE_DATA_P.
3045
3046 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3047
3048         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3049         Remove outdated reference to flow.c and fix nits.
3050         * doc/gccint.texi: Tweak RTL description.
3051         * doc/rtl.texi: Likewise.
3052
3053 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
3054
3055         * config/avr/avr.c: Change my email address.
3056         * config/avr/avr.h: Likewise.
3057         * config/avr/avr.md: Likewise.
3058         * config/avr/avr-protos.h: Likewise.
3059         * config/avr/libgcc.S: Likewise.
3060
3061 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3062
3063         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3064         (spu_split_load, spu_split_store): Change return type to int.
3065         (spu_split_convert): Declare.
3066         * config/spu/predicates.md (spu_mem_operand): Remove.
3067         (spu_mov_operand): Update.
3068         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3069         * config/spu/spu.c (regno_aligned_for_load): Remove.
3070         (reg_aligned_for_addr, spu_expand_load): Define.
3071         (spu_expand_extv): Reimplement and handle MEM.
3072         (spu_expand_insv): Handle MEM.
3073         (spu_sched_reorder): Handle insn's with length 0.
3074         (spu_legitimate_address_p): Reimplement.
3075         (store_with_one_insn_p): Return TRUE for any mode with size
3076         larger than 16 bytes.
3077         (address_needs_split): Define.
3078         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3079         operands.
3080         (spu_convert_move): Define.
3081         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
3082         (spu_split_store): Change all MEM's to TImode.
3083         (spu_init_expanders): Preallocate registers that correspond to
3084         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3085         mark_reg_pointer.
3086         (spu_split_convert): Define.
3087         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3088         (_move<mode>, _movdi, _movti): Update predicate and condition.
3089         (load, store): Change to define_split.
3090         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3091         extend<mode>ti2.
3092         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3093         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3094         define_insn_and_split of lshr<mode>3.
3095         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3096         (<v>ashr<mode>3_imm): Define.
3097         (extv, extzv, insv): Allow MEM operands.
3098         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3099         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3100         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3101         (_spu_convert2): Change to define_insn_and_split and remove the
3102         corresponding define_peephole2.
3103         (stack_protect_set, stack_protect_test, stack_protect_test_si):
3104         Change predicates to memory_operand.
3105
3106 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3107
3108         * config/arm/thumb2.md: Add 16-bit multiply instructions.
3109
3110 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3111
3112         PR tree-optimization/40219
3113         * tree.c (iterative_hash_expr): Make sure the builtin function is
3114         a normal builtin function and not a front end or back end builtin
3115         before indexing into the built_in_decls array.
3116
3117 2009-05-22  Richard Guenther  <rguenther@suse.de>
3118
3119         PR middle-end/38964
3120         * alias.c (write_dependence_p): Do not use TBAA for answering
3121         anti-dependence or output-dependence.
3122         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
3123         (emit_pointer_definition): Remove.
3124         (emit_alias_warning): Likewise.
3125         (find_what_var_points_to): Remove TBAA pruning code.
3126         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
3127         violations.
3128         (compute_points_to_sets): Remove code computing the set of
3129         dereferenced pointers.
3130         * tree-data-ref.c (dr_may_alias_p): Properly use the split
3131         oracle for querying anti and output dependencies.
3132         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3133         if TBAA may be applied.
3134         (refs_anti_dependent_p): New function.
3135         (refs_output_dependent_p): Likewise.
3136         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3137         (refs_output_dependent_p): Likewise.
3138         * doc/tree-ssa.texi (Memory model): New section.
3139         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3140         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3141         * cfgexpand.c (expand_gimple_basic_block): Do not handle
3142         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3143         * expr.c (expand_expr_real_1): Likewise.
3144         * gimple-low.c (lower_stmt): Likewise.
3145         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3146         (dump_gimple_cdt): Remove.
3147         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3148         (gimple_size): Likewise.
3149         (walk_gimple_op): Likewise.
3150         (is_gimple_stmt): Likewise.
3151         (walk_stmt_load_store_addr_ops): Likewise.
3152         (gimple_build_cdt): Remove.
3153         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3154         * gimple.h (gimple_cdt_new_type): Remove.
3155         (gimple_cdt_new_type_ptr): Likewise.
3156         (gimple_cdt_set_new_type): Likewise.
3157         (gimple_cdt_location): Likewise.
3158         (gimple_cdt_location_ptr): Likewise.
3159         (gimple_cdt_set_location): Likewise.
3160         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3161         * tree-cfg.c (remove_useless_stmts_1): Do not handle
3162         GIMPLE_CHANGE_DYNAMIC_TYPE.
3163         (verify_types_in_gimple_stmt): Likewise.
3164         * tree-inline.c (estimate_num_insns): Likewise.
3165         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3166         (copy_decl_to_var): Likewise.
3167         (copy_result_decl_to_var): Likewise.
3168         * tree-pretty-print.c (dump_generic_node): Do not handle
3169         CHANGE_DYNAMIC_TYPE_EXPR.
3170         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3171         * tree-ssa-operands.c (get_expr_operands): Likewise.
3172         * tree-ssa-structalias.c (struct variable_info): Remove
3173         no_tbaa_pruning member.
3174         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3175         (unify_nodes): Do not copy it.
3176         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3177         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3178         (set_uids_in_ptset): Do not check it.
3179         (find_what_var_points_to): Likewise.
3180         (compute_tbaa_pruning): Remove.
3181         (compute_points_to_sets): Do not call it.
3182         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3183         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3184         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3185         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3186         (DECL_NO_TBAA_P): Likewise.
3187         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3188         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3189         (expand_omp_atomic_pipeline): Do not set it.
3190         * print-tree.c (print_node): Do not dump it.
3191         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3192         redundant check.
3193
3194 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3195
3196         PR target/39856
3197         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3198         for clobber.
3199
3200 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3201
3202         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3203         non-external.
3204
3205 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3206
3207         * Makefile.in (bversion.h, s-bversion): New targets.
3208         (TOPLEV_H): Add bversion.h.
3209         * toplev.h: Include "bversion.h".
3210         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3211         the __format__ attribute only if compiling with the same version
3212         of GCC as the sources (the "build version").
3213
3214 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3215
3216         * c-format.c (handle_format_attribute): Fix comment typo.
3217
3218 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
3219
3220         PR target/37846
3221         * config/ia64/ia64.opt (mfused-madd): New.
3222         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3223         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3224         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3225         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3226         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3227         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3228         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3229         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
3230         instruction if !TARGET_FUSED_MADD.
3231         (fpma, fpms): Remove colon from name.
3232
3233 2009-05-22  Richard Guenther  <rguenther@suse.de>
3234
3235         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3236         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
3237         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3238         TARGET_MEM_REF.
3239         (create_expression_by_pieces): Only convert if necessary.
3240         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3241         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3242
3243 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
3244
3245         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3246         regular pattern from a template and rename it ...
3247         (*extzv_truncsi_exts): ... to this.
3248
3249 2009-05-21  Richard Guenther  <rguenther@suse.de>
3250
3251         * cgraph.h (struct cgraph_node): Remove inline_decl member.
3252         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3253         (cgraph_default_inline_p): Likewise.
3254         (cgraph_decide_inlining_incrementally): Likewise.
3255
3256 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3257             Uros Bizjak  <ubizjak@gmail.com>
3258
3259         * config/i386/cpuid.h (bit_MOVBE): New.
3260
3261         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3262
3263         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3264         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3265         (ix86_handle_option): Handle OPT_mmovbe.
3266         (ix86_target_string): Add -mmovbe.
3267         (pta_flags): Add PTA_MOVBE.
3268         (processor_alias_table): Add PTA_MOVBE to "atom".
3269         (override_options): Handle PTA_MOVBE.
3270
3271         * config/i386/i386.h (TARGET_MOVBE): New.
3272
3273         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3274         (*bswapsi_movbe): New.
3275         (*bswapdi_movbe): Likewise.
3276         (bswapdi2): Renamed to ...
3277         (*bswapdi_1): This.
3278         (bswapdi2): New expander.
3279
3280         * config/i386/i386.opt (mmovbe): New.
3281
3282         * doc/invoke.texi: Document -mmovbe.
3283
3284 2009-05-21  Taras Glek  <tglek@mozilla.com>
3285
3286         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3287         * gcc-plugin.h (plugin_init): Updated signature.
3288         * gcc-plugin.h (plugin_name_args): Moved to this header.
3289         * doc/plugins.texi (plugin_init): Updated documention to reflect
3290         API change.
3291         * doc/plugins.texi (plugin_name_args): Added to documention.
3292
3293 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
3294
3295         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3296         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3297
3298 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
3299
3300         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3301         JUMP_TABLE_DATA_P predicates where applicable.
3302         * config/i386/predicates.md: Ditto.
3303         * config/i386/sse.md: Ditto.
3304
3305 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
3306
3307         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3308         operand2 -128 override length_immediate attribute to 1.
3309         * config/i386/predicates.md (constm128_operand): New predicate.
3310
3311         * config/i386/i386.c (memory_address_length): Handle %r12
3312         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
3313         also check REGNO.
3314         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3315         mode look through optional ZERO_EXTEND and SUBREG.
3316         * config/i386/i386.md (R12_REG): New define_constant.
3317         (prefix_data16): For sse unit set also for MODE_TI insns.
3318         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
3319         insns set if operand 1 is ext_QIreg_operand.
3320         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
3321         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3322         immediate.
3323         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3324         mode from MODE_DI to MODE_SI.
3325         (movdi_1_rex64): Override modrm and length_immediate attributes
3326         only for movabs (TYPE_IMOV, alternative 2).
3327         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3328         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3329         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3330         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3331         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3332         prefix_rex attribute if DImode.
3333         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3334         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3335         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3336         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3337         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3338         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3339         Likewise.  For TYPE_IMOV clear length_immediate attribute.
3340         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3341         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3342         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3343         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3344         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3345         or one operand TYPE_ISHIFT.
3346         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3347         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3348         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3349         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3350         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3351         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3352         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3353         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3354         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3355         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3356         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3357         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3358         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3359         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3360         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3361         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3362         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3363         set mode attribute, don't override length attribute.
3364         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3365         to 1.
3366         (return_internal_long): Set length attribute to 2 instead of 1.