OSDN Git Service

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