OSDN Git Service

6453c50335509679e103d2f3ea10f04a35c79d8d
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-26  Simon Baldwin <simonb@google.com>
2
3         PR c/35652
4         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5         with propagated string constants.
6
7 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
10         constraint for operand 2 when operand 0 is memory operand.
11         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12         operand 0 is memory operand.
13         (fix_trunc<mode>_i387_with_temp): Ditto.
14         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
15         operand 2 when operand 1 is memory operand.
16         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
17         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
19         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
20         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
21         operands 2,3 and 4 when operand 1 is memory operand.
22         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
23         is memory operand.
24         (fistdi2_floor_with_temp): Ditto.
25         (fist<mode>2_floor_with_temp): Ditto.
26         (fistdi2_ceil_with_temp): Ditto.
27         (fist<mode>2_ceil_with_temp): Ditto.
28         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
29
30 2008-04-26  David Daney  <ddaney@avtrex.com>
31
32         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
33         unspec_volitile.
34         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
35         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
36         UNSPEC_UPDATE_GOT_VERSION): Renumber.
37         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
38         (compare_and_swap_12): New insn.
39         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
40         * config/mips/mips.c (mips_force_binary): New function.
41         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
42         (mips_expand_compare_and_swap_12): New function.
43         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
44
45 2008-04-25  Jan Hubicka  <jh@suse.cz>
46
47         PR testsuite/35843
48         * cfgexpand.c (pass_expand): Turn into RTL pass.
49         * passes.c (execute_one_pass): Do pass typechecking after execution.
50         * tree-pass.h (pass_expand): Turn into RTL pass.
51
52         * function.h (struct rtl_data): Move here fields
53         accesses_prior_frames, calls_eh_return, saves_all_registers,
54         has_nonlocal_goto, has_asm_statement, is_thunk,
55         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
56         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
57         arg_pointer_save_area_init from struct function; turn into bool.
58         (struct function): Move
59         calls_eh_return, saves_all_registers, has_nonlocal_goto,
60         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
61         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
62         tail_call_emit, arg_pointer_save_area_init
63         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
64         (current_function_returns_struct, current_function_returns_pcc_struct,
65         current_function_calls_setjmp, current_function_calls_alloca,
66         current_function_accesses_prior_frames,
67         current_function_calls_eh_return, current_function_is_thunk,
68         current_function_stdarg, current_function_profile,
69         current_function_limit_stack, current_function_uses_pic_offset_table,
70         current_function_uses_const_pool, current_function_has_nonlocal_label,
71         current_function_saves_all_registers,
72         current_function_has_nonlocal_goto,
73         current_function_has_asm_statement): Remove accesor macros.
74         * ra-conflict.c (global_conflicts): Update.
75         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
76         (suitable_for_tail_call_opt_p): Update.
77         * builtins.c (expand_builtin_return_addr): Update.
78         (expand_builtin_setjmp_setup): Update.
79         (expand_builtin_nonlocal_goto): Update.
80         * final.c (final_start_function): Update.
81         (profile_function): Update.
82         (leaf_function_p): Update.
83         (only_leaf_regs_used): Update.
84         * df-scan.c (df_get_exit_block_use_set): Update.
85         * dojump.c (clear_pending_stack_adjust): Update.
86         * tree-stdarg.c (gate_optimize_stdarg): Update.
87         * gimple-low.c (lower_function_body): Update.
88         * global.c (compute_regsets): Update.
89         (global_alloc): Update.
90         * dwarf2out.c (dwarf2out_begin_prologue): Update.
91         * expr.c (expand_assignment): Update.
92         * dse.c (dse_step0): Update.
93         (dse_step1): Update.
94         * c-decl.c (store_parm_decls): Update.
95         * local-alloc.c (combine_regs): Update.
96         (find_free_reg): Update.
97         * function.c (assign_parms_augmented_arg_list): Update.
98         (assign_parm_find_data_types): Update.
99         (assign_parms): Update.
100         (allocate_struct_function): Update.
101         (expand_function_start): Update.
102         (expand_function_end): Update.
103         (get_arg_pointer_save_area): Update.
104         (thread_prologue_and_epilogue_insns): Update.
105         (rest_of_match_asm_constraints): Update.
106         * stor-layout.c (variable_size): Update.
107         * gcse.c (gcse_main): Update.
108         (bypass_jumps): Update.
109         * gimplify.c (gimplify_function_tree): Update.
110         * calls.c (emit_call_1): Update.
111         (expand_call): Update.
112         * bt-load.c (compute_defs_uses_and_gen): Update.
113         * except.c (sjlj_assign_call_site_values): Update.
114         (sjlj_emit_function_enter): Update.
115         (can_throw_external): Update.
116         (set_nothrow_function_flags): Update.
117         (expand_builtin_unwind_init): Update.
118         (expand_eh_return): Update.
119         (convert_to_eh_region_ranges): Update.
120         (output_function_exception_table): Update.
121         * emit-rtl.c (gen_tmp_stack_mem): Update.
122         * cfgexpand.c (expand_used_vars): Update.
123         (tree_expand_cfg): Update.
124         * cfgcleanup.c (rest_of_handle_jump): Update.
125         * explow.c (allocate_dynamic_stack_space): Update.
126         * varasm.c (assemble_start_function): Update.
127         (force_const_mem): Update.
128         (mark_constant_pool): Update.
129         * tree-optimize.c (tree_rest_of_compilation): Update.
130         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
131         * tree-cfg.c (notice_special_calls): Update.
132         (is_ctrl_altering_stmt): Update.
133         (tree_can_make_abnormal_goto): Update.
134         (tree_purge_dead_abnormal_call_edges): Update.
135         * config/alpha/predicates.md: Update.
136         * config/alpha/alpha.c (alpha_sa_mask): Update.
137         (alpha_sa_size): Update.
138         (alpha_does_function_need_gp): Update.
139         (alpha_expand_prologue): Update.
140         (alpha_start_function): Update.
141         (alpha_output_function_end_prologue): Update.
142         (alpha_expand_epilogue): Update.
143         * config/frv/frv.c (frv_stack_info): Update.
144         (frv_expand_epilogue): Update.
145         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
146         (s390_register_info): Update.
147         (s390_frame_info): Update.
148         (s390_init_frame_layout): Update.
149         (s390_can_eliminate): Update.
150         (save_gprs): Update.
151         * config/spu/spu.c (spu_split_immediate): Update.
152         (need_to_save_reg): Update.
153         (spu_expand_prologue): Update.
154         (spu_expand_epilogue): Update.
155         * config/sparc/sparc.md: Update.
156         * config/sparc/sparc.c (eligible_for_return_delay): Update.
157         (sparc_tls_got): Update.
158         (legitimize_pic_address): Update.
159         (sparc_emit_call_insn): Update.
160         (sparc_expand_prologue): Update.
161         (output_return): Update.
162         (print_operand): Update.
163         (sparc_function_ok_for_sibcall): Update.
164         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
165         * config/m32r/m32r.md: Update.
166         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
167         (m32r_compute_frame_size): Update.
168         (m32r_expand_prologue): Update.
169         (m32r_expand_epilogue): Update.
170         (m32r_legitimize_pic_address): Update.
171         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
172         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
173         * config/i386/i386.c (ix86_frame_pointer_required): Update.
174         (gen_push): Update.
175         (ix86_save_reg): Update.
176         (ix86_compute_frame_layout): Update.
177         (ix86_expand_prologue): Update.
178         (ix86_expand_epilogue): Update.
179         * config/sh/sh.c (output_stack_adjust): Update.
180         (calc_live_regs): Update.
181         (sh5_schedule_saves): Update.
182         (sh_expand_prologue): Update.
183         (sh_expand_epilogue): Update.
184         (sh_setup_incoming_varargs): Update.
185         (sh_allocate_initial_value): Update.
186         (sh_get_pr_initial_val): Update.
187         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
188         * config/sh/sh.md (label:): Update.
189         * config/avr/avr.c (out_movhi_mr_r): Update.
190         * config/crx/crx.h (enum): Update.
191         * config/xtensa/xtensa.h (along): Update.
192         * config/stormy16/stormy16.c Update.
193         (xstormy16_compute_stack_layout): Update.
194         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
195         (fr30_expand_prologue): Update.
196         * config/cris/cris.c (cris_conditional_register_usage): Update.
197         (cris_reg_saved_in_regsave_area): Update.
198         (cris_initial_frame_pointer_offset): Update.
199         (cris_simple_epilogue): Update.
200         (cris_expand_prologue): Update.
201         (cris_expand_epilogue): Update.
202         (cris_expand_pic_call_address): Update.
203         (cris_asm_output_symbol_ref): Update.
204         (cris_asm_output_label_ref): Update.
205         * config/cris/cris.md Update.
206         * config/iq2000/iq2000.c (compute_frame_size): Update.
207         (iq2000_expand_epilogue): Update.
208         * config/mt/mt.h (save_direction): Update.
209         * config/mn10300/mn10300.c (mn10300_function_value): Update.
210         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
211         (ia64_secondary_reload_class): Update.
212         * config/m68k/m68k.c (m68k_save_reg): Update.
213         (m68k_expand_prologue): Update.
214         (m68k_expand_epilogue): Update.
215         (legitimize_pic_address): Update.
216         * config/rs6000/rs6000.c (rs6000_got_register): Update.
217         (first_reg_to_save): Update.
218         (first_altivec_reg_to_save): Update.
219         (compute_vrsave_mask): Update.
220         (compute_save_world_info): Update.
221         (rs6000_stack_info): Update.
222         (spe_func_has_64bit_regs_p): Update.
223         (rs6000_ra_ever_killed): Update.
224         (rs6000_emit_eh_reg_restore): Update.
225         (rs6000_emit_allocate_stack): Update.
226         (rs6000_emit_prologue): Update.
227         (rs6000_emit_epilogue): Update.
228         (rs6000_output_function_epilogue): Update.
229         (output_profile_hook): Update.
230         (rs6000_elf_declare_function_name): Update.
231         * config/rs6000/rs6000.h (rs6000_args): Update.
232         * config/rs6000/rs6000.md: Update.
233         * config/mcore/mcore.c (mcore_expand_prolog): Update.
234         * config/arc/arc.c (arc_output_function_epilogue): Update.
235         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
236         * config/darwin.c (machopic_function_base_name): Update.
237         * config/score/score3.c (score3_compute_frame_size): Update.
238         (rpush): Update.
239         (rpop): Update.
240         (score3_epilogue): Update.
241         * config/score/score7.c (score7_compute_frame_size): Update.
242         (score7_prologue): Update.
243         (score7_epilogue): Update.
244         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
245         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
246         * config/arm/arm.c (use_return_insn): Update.
247         (require_pic_register): Update.
248         (arm_load_pic_register): Update.
249         (arm_compute_save_reg0_reg12_mask): Update.
250         (arm_compute_save_reg_mask): Update.
251         (thumb1_compute_save_reg_mask): Update.
252         (output_return_instruction): Update.
253         (arm_output_function_prologue): Update.
254         (arm_output_epilogue): Update.
255         (arm_get_frame_offsets): Update.
256         (arm_expand_prologue): Update.
257         (thumb_pushpop): Update.
258         (thumb_exit): Update.
259         (thumb1_expand_prologue): Update.
260         (thumb1_expand_epilogue): Update.
261         (arm_unwind_emit): Update.
262         (arm_output_fn_unwind): Update.
263         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
264         * config/arm/arm.md: Update.
265         * config/pa/pa.md: Update.
266         * config/pa/pa.c (legitimize_pic_address): Update.
267         (compute_frame_size): Update.
268         (hppa_expand_prologue): Update.
269         (hppa_expand_epilogue): Update.
270         (borx_reg_operand): Update.
271         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
272         (HARD_REGNO_RENAME_OK): Update.
273         * config/mips/mips.c (mips_global_pointer): Update.
274         (mips_save_reg_p): Update.
275         (mips_compute_frame_info): Update.
276         (mips_frame_pointer_required): Update.
277         (mips_expand_prologue): Update.
278         (mips_expand_epilogue): Update.
279         (mips_can_use_return_insn): Update.
280         (mips_reorg_process_insns): Update.
281         * config/v850/v850.c (compute_register_save_size): Update.
282         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
283         * config/mmix/mmix.c (along): Update.
284         (mmix_expand_epilogue): Update.
285         * config/bfin/bfin.c (legitimize_pic_address): Update.
286         (must_save_p): Update.
287         (stack_frame_needed_p): Update.
288         (add_to_reg): Update.
289         (bfin_expand_prologue): Update.
290         * stmt.c (expand_asm_operands): Update.
291         * reload1.c (reload): Update.
292         (init_elim_table): Update.
293
294 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
295         
296         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
297         
298 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
299
300         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
301         SSEMODE.
302         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
303         (mov<mode>): Removed.
304         (*movv4sf_internal): Likewise.
305         (*movv2df_internal): Likewise.
306
307 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
308
309         * config.gcc (crx-*-elf): Remove deprecation.
310
311 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
312
313         * config/i386/cygming-crtend.c (register_frame_ctor): Register
314         __gcc_deregister_frame with atexit.
315         (deregister_frame_dtor): Remove.
316
317 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
318             Nathan Sidwell  <nathan@codesourcery.com>
319
320         * config/rs6000/rs6000.opt (mspe): Remove Var property.
321         (misel): Likewise.
322         * config/rs6000/rs6000.h (rs6000_spe): Declare.
323         (rs6000_isel): Likewise.
324         * config/rs6000/rs6000.c (rs6000_spe): New variable.
325         (rs6000_isel): New variable.
326         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
327
328 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
329
330         PR c++/35758
331         * c-common.c (handle_vector_size_attribute): Call
332         lang_hooks.types.reconstruct_complex_type instead of
333         reconstruct_complex_type.
334         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
335         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
336         * langhooks.h (struct lang_hooks_for_types): Add
337         reconstruct_complex_type hook.
338         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
339         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
340
341 2008-04-24  Richard Guenther  <rguenther@suse.de>
342
343         * c-common.h (check_builtin_function_arguments): Declare.
344         * c-common.c (validate_nargs): New function.
345         (check_builtin_function_arguments): Likewise.
346         * c-typeck.c (build_function_call): Call
347         check_builtin_function_arguments.
348         * builtins.c (fold_builtin_classify): Remove error reporting code.
349         (fold_builtin_unordered_cmp): Likewise.
350         (fold_builtin_1): Likewise.
351         (fold_builtin_n): Likewise.
352
353 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
354
355         PR tree-optimization/36008
356         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
357         the original op1, rather than delta by step.
358
359 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
360             Sebastian Pop  <sebastian.pop@amd.com>
361
362         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
363         eliminate_local_variables_stmt, eliminate_local_variables,
364         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
365         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
366         of code delimited by two edges in the CFG.
367         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
368         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
369         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
370         the case of parallelisation of reductions.
371         (expr_invariant_in_region_p): New.
372
373         * tree-flow.h (gather_blocks_in_sese_region): Declared.
374         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
375
376 2008-04-24  Ira Rosen  <irar@il.ibm.com>
377             Richard Guenther  <rguenther@suse.de>
378
379         PR tree-optimization/36034
380         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
381         incapable of dealing with loads with gaps.
382
383 2008-04-24  Rafael Espindola  <espindola@google.com>
384
385         * tree-flow.h (vrp_evaluate_conditional): Change signature.
386         * tree-ssa-propagate.c (fold_predicate_in): Update call to
387         vrp_evaluate_conditional.
388         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
389         (vrp_evaluate_conditional): Split the cond argument.
390         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
391         (simplify_stmt_for_jump_threading): Update call to
392         vrp_evaluate_conditional.
393
394 2008-04-24  Ira Rosen  <irar@il.ibm.com>
395
396         PR tree-optimization/35982
397         * tree-vect-analyze.c (vect_check_interleaving): Check that the
398         interleaved data-refs are of the same type.
399
400 2008-04-24  Danny Smith  <dannysmith@users.net>
401
402         * c-format.c (check_format_info_main): Use strncmp rather than a
403         magic prefix to handle multichar length specs.
404         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
405         Don't prefix "I64" and "I32" with '\0'.
406
407 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
408
409         PR target/36015
410         * config/i386/i386.c (init_cumulative_args): Don't pass anything
411         in registers for -m32 only if stdarg_p (fntype).
412
413 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
414
415         PR rtl-optimization/36006
416         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
417         temp to op0 in order to avoid invalid rtx sharing.
418
419 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
420
421         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
422         check TREE_INVARIANT.
423         * tree-gimple.c (is_gimple_address): New.
424         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
425         * tree-gimple.h (is_gimple_address): New.
426         * tree.h (decl_address_invariant_p): New.
427         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
428         (build_string): Likewise.
429         (decl_address_invariant_p): New, from is_gimple_invariant_address.
430         (tree_invariant_p_1): Likewise.
431         (save_expr): Use it.
432         (tree_invariant_p): New.
433         (skip_simple_arithmetic): Use it.
434         (stabilize_reference_1): Use it.
435         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
436         simplify.
437         (build1_stat): Drop code to compute TREE_INVARIANT.
438         (build2_stat): Drop code to compute TREE_INVARIANT.
439         (build3_stat): Drop code to compute TREE_INVARIANT.
440         (build4_stat): Drop code to compute TREE_INVARIANT.
441         (build5_stat): Drop code to compute TREE_INVARIANT.
442         (build7_stat): Drop code to compute TREE_INVARIANT.
443         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
444         * tree.h (struct tree_base): Remove invariant_flag.
445         (TREE_INVARIANT): Remove.
446         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
447         (fold_builtin_expect): Check TREE_CONSTANT.
448         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
449         * c-tree.h (c_expr_to_decl): Drop third parameter.
450         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
451         (build_c_cast): Don't set TREE_INVARIANT.
452         (pop_init_level): Don't set TREE_INVARIANT.
453         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
454         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
455         TREE_CONSTANT.
456         (gimplify_init_constructor): Don't set TREE_INVARIANT.
457         (gimplify_addr_expr): Adjust comment.
458         * tree-mudflap.c (mf_build_string):
459         * print-tree.c (print_node): Don't print TREE_INVARIANT.
460         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
461         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
462         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
463         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
464         * langhooks.h (struct lang_hooks): Drop third parameter from
465         expr_to_decl.
466
467 2008-04-23  Richard Guenther  <rguenther@suse.de>
468
469         PR tree-optimization/27799
470         PR tree-optimization/32921
471         PR tree-optimization/32624
472         * tree-ssa-structalias.c (merge_smts_into): Only merge the
473         SMTs aliases and the tag itself into the solution.
474         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
475         merge the points-to solution back into the SMT aliases.
476         (may_alias_p): Use alias_set_subset_of instead of
477         aliases_conflict_p.  A pointer which points to
478         memory with alias set zero may access any variable.
479
480 2008-04-23  Richard Guenther  <rguenther@suse.de>
481
482         * alias.c (alias_set_subset_of): Correctly handle asking
483         if zero is a subset of an alias set with zero child.
484         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
485         (compute_flow_insensitive_aliasing): Correctly walk all
486         pointers.  Do not unnecessarily union sets.
487
488 2008-04-23  Richard Guenther  <rguenther@suse.de>
489
490         PR middle-end/36021
491         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
492
493 2008-04-22  Tomas Bily  <tbily@suse.cz>
494
495         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
496         unreachable case.
497         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
498         NON_LVALUE_EXPR.
499         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
500         * tree-ssa-structalias.c (get_constraint_for): Likewise.
501         * tree-inline.c (estimate_num_insns_1): Likewise.
502         * varasm.c (const_hash_1, compare_constant, copy_constant)
503         (compute_reloc_for_constant, output_addressed_constants): Likewise.
504         * emit-rtl.c (component_ref_for_mem_expr)
505         (set_mem_attributes_minus_bitpos): Likewise.
506         * expr.c (highest_pow2_factor, expand_expr_real_1, )
507         (is_aligning_offset): Likewise.
508         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
509         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
510         * dojump.c (do_jump): Likewise.
511         * builtins.c (get_pointer_alignment, get_memory_rtx)
512         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
513         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
514
515 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
516
517         PR rtl-optimization/36017
518         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
519         expanding the library call.
520
521 2008-04-22  Ian Lance Taylor  <iant@google.com>
522
523         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
524         than size_in_bytes.
525
526 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
527
528         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
529         of LR/CTR moves for Power6.
530
531 2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
532
533         PR middle-end/36003
534         * passes.c (init_optimization_passes): Remove
535         pass_fast_rtl_byte_dce.
536         
537 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
538
539         PR target/29096
540         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
541         builtin functions to generate faster code.
542         (_mm_cvtpu16_ps): Ditto.
543         (_mm_cvtpi32x2_ps): Ditto.
544
545 2008-04-22  Nick Clifton  <nickc@redhat.com>
546
547         * common.opt (ftree-loop-distribution): Add Optimization
548         attribute.
549
550         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
551         (frv_expand_builtin_va_start): Likewise.
552
553         * config/arm/arm.c (thumb_find_work_register): Fix location of
554         argument register count.
555
556 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
557
558         Support scheduling for ColdFire V1 and V3 microarchitecture.
559         Improve scheduling of multiplication instructions.
560
561         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
562         (mac): New instruction attribute.
563         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
564         (m68k_sched_mac): New variable.
565         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
566         Handle cfv1 and cfv3.
567         (max_insn_size): New static variable.
568         (struct _sched_ib): New type.
569         (sched_ib): New static variable.
570         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
571         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
572         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
573         Update.
574         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
575         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
576         new variables.  Update.
577         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
578         Add modeling of cfv3 instruction buffer.  Update.
579         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
580         * config/m68k/m68k.h (TUNE_CFV3): New macro.
581         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
582         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
583         a particular reservation applies to.
584         (type2): Reorganize attribute values.  Rename alu to alu_reg,
585         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
586         to mul_l and mul_w.
587         (cf_ib_*): Simplify description of instruction buffer.
588         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
589         (cf_mem): Split into cf_mem1 and cf_mem2.
590         (cf_v2_move_??): Rename to cfv12_alu_??.
591         (cf_v2_move_l_??): Rename to cfv12_omove_??.
592         (cf_v2_mul_??): Remove reservations.
593         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
594         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
595         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
596         appropriate place.
597         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
598         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
599         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
600         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
601         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
602         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
603         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
604         expansions of the above reservations for instructions of sizes
605         1, 2 and 3 words.
606
607 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
608
609         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
610
611 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
612
613         * coverage.c: Include tree-pass.h.
614         (coverage_counter_alloc): Print da_file_name to the dump file.
615
616 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
617
618         * sbitmap.c (sbitmap_range_empty_p): New function.
619         * sbitmap.h (sbitmap_range_empty_p): New function.
620         * bitmap.h: Now includes obstack.h.
621
622 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
623             Kenneth Zadeck <zadeck@naturalbridge.com>
624
625         * dbgcnt.def (ra_byte_scan): Added.
626         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
627         when the last hit happens for a counter.  
628         * timevar.def (TV_DF_BYTE_LR): New variable.
629         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
630         * passes.c (pass_fast_rtl_byte_dce): New pass.
631         * fwprop.c (update_df): Added mode to call df_ref_create.
632         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
633         DF_REF_EXTRACT_OFFSET.
634         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
635         DF_BYTE_LR_OUT, df_byte_lr): New macro.
636         (df_mm): New enum.
637         (df_ref_extract): Added mode field.
638         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
639         DF_REF_EXTRACT_OFFSET.
640         (DF_REF_EXTRACT_MODE): New macro.
641         (df_byte_lr_bb_info): New structure.
642         (df_print_byte_regset, df_compute_accessed_bytes, 
643         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
644         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
645         df_byte_lr_simulate_uses,
646         df_byte_lr_simulate_artificial_refs_at_top,
647         df_byte_lr_simulate_artificial_refs_at_end,
648         df_compute_accessed_bytes): New function.
649         (df_ref_create): Add parameter.
650         (df_byte_lr_get_bb_info): New inline function.
651         * df-scan.c (df_ref_record, df_uses_record,
652         df_ref_create_structure): Added mode parameter.
653         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
654         df_defs_record, df_uses_record, df_get_conditional_uses,
655         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
656         df_entry_block_defs_collect, df_exit_block_uses_collect):
657         Added mode parameter to calls to df_ref_record, df_uses_record,
658         df_ref_create_structure.
659         (df_ref_equal_p, df_ref_compare): Added test for modes.
660         (df_ref_create_structure): Added code to set mode.  Renamed
661         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
662         DF_REF_EXTRACT_OFFSET.
663         * df-core.c (df_print_byte_regset): New function.
664         * df-byte-scan.c: New file.
665         * df-problems.c (df_rd_transfer_function): Removed unnecessary
666         calls to BITMAP_FREE.  
667         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
668         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
669         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
670         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
671         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
672         df_byte_lr_local_compute, df_byte_lr_init,
673         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
674         df_byte_lr_transfer_function, df_byte_lr_free, 
675         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
676         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
677         df_byte_lr_simulate_uses,
678         df_byte_lr_simulate_artificial_refs_at_top,
679         df_byte_lr_simulate_artificial_refs_at_end): New function.
680         * dce.c (byte_dce_process_block): New function.
681         (dce_process_block): au is now passed in rather than computed
682         locally.  Changed loops that look at artificial defs to not look
683         for conditional or partial ones, because there never are any.  
684         (fast_dce): Now is able to drive byte_dce_process_block or 
685         dce_process_block depending on the kind of dce being done.
686         (rest_of_handle_fast_dce): Add parameter to fast_dce.
687         (rest_of_handle_fast_byte_dce): New function.
688         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
689         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
690
691 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
692
693         PR fortran/35019
694         * gcc.h: Added fortran options that take arguments to
695         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
696         macros.
697
698 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
699
700         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
701         scalarization if on the LHS and not a full access.
702
703 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
704
705         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
706
707 2008-04-18  Rafael Espindola  <espindola@google.com>
708
709         * tree-vrp.c (find_case_label_index): Fix the binary search.
710         (find_case_label_range): New.
711         (vrp_visit_switch_stmt): Use find_case_label_range.
712         (simplify_switch_using_ranges): Use find_case_label_range.
713
714 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
715
716         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
717         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
718
719 2008-04-18  Tom Tromey  <tromey@redhat.com>
720
721         PR libcpp/15500:
722         * doc/cpp.texi (Implementation-defined behavior): Mention
723         -finput-charset.
724
725 2008-04-18  Ian Lance Taylor  <iant@google.com>
726
727         * fold-const.c (pointer_may_wrap_p): New static function.
728         (fold_comparison): Add another test for pointer overflow.  Use
729         pointer_may_wrap_p to disable some false positives.
730
731 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
732           
733         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
734         (fname_as_string): Match updated cpp_interpret_string prototype.
735         (fix_string_type): Support char16_t* and char32_t*.
736         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
737         derivative) nodes.  Register as builtin if C++0x.
738         (c_parse_error): Support CPP_CHAR{16,32}.
739         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
740         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
741         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
742         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
743         CTI_CHAR32_ARRAY_TYPE>: New elements.
744         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
745         char32_type_node, signed_char32_type_node, char16_array_type_node,
746         char32_array_type_node): New defines.
747         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
748         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
749         (lex_string): Support CPP_STRING{16,32}, match updated
750         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
751         (lex_charconst): Support CPP_CHAR{16,32}.
752         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
753         and CPP_STRING{16,32}.
754
755 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
756
757         PR bootstrap/35457
758         * aclocal.m4: Regenerate.
759         * configure: Regenerate.
760
761 2008-04-18  Jan Hubicka  <jh@suse.cz>
762
763         * except.c (dw2_size_of_call_site_table,
764         sjlj_size_of_call_site_table): Use vector API for call_site_record.
765
766         * cgraphbuild.c (build_cgraph_edges): Update.
767         * tree-pass.h: Update comment.
768         * final.c (leaf_function_p): Update.
769         (leaf_renumber_regs): Update.
770         (rest_of_clean_state): Update.
771         * omp-low.c (expand_omp_parallel): Update.
772         * ipa-reference.c (analyze_function): Update.
773         * reorg.c (find_end_label): Update.
774         (optimize_skip): Update.
775         (fill_simple_delay_slots): Update.
776         (fill_simple_delay_slots): Update.
777         (make_return_insns): Update.
778         (dbr_schedule): Update.
779         * gimple-low.c (record_vars_into): Update.
780         * cfgbuild.c (make_edges): Update.
781         * function.c (assign_stack_local): Update.
782         (assign_parm_adjust_stack_rtl): Update.
783         (locate_and_pad_parm): Update.
784         (allocate_struct_function): Do not initialize stack_alignment_needed
785         and preferred_stack_boundary here.
786         (stack_protect_prologue): Update.
787         (stack_protect_epilogue): Update.
788         (expand_function_start): Initialize stack_alignment_needed,
789         preferred_stack_boundary and max_jumptable_ents.
790         (expand_function_end): Update.
791         (free_after_compilation): Do not NULLify epilogue_delay_list.
792         * function.h (struct rtl_data): Add stack_protect_guard,
793         stack_alignment_needed,
794         preferred_stack_boundary, epilogue_delay_list.
795         (struct function): Remove value_histograms, stack_alignment_needed,
796         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
797         last_label_uid,
798         unexpanded_var_list, stack_protect_guard.
799         (current_function_epilogue_delay_list): Remove.
800         * ipa-type-escape.c (analyze_function): Update.
801         * gimplify.c (pop_gimplify_context): Update comment.
802         * calls.c (expand_call): Update.
803         (emit_library_call_value_1): Update.
804         * except.c (set_nothrow_function_flags): Update.
805         * cfgexpand.c (get_decl_align_unit): Update.
806         (create_stack_guard): Update.
807         (estimated_stack_frame_size): Update.
808         (expand_used_vars): Update.
809         (tree_expand_cfg): Free histogram earliers, init expansion variables.
810         * explow.c (allocate_dynamic_stack_space): Update.
811         * tree-ssa-live.c (remove_unused_locals): Update.
812         * varasm.c (mark_constant_pool): Update.
813         * tree-inline.c (remap_decls): Update.
814         (initialize_cfun): Update.
815         (declare_return_variable): Update.
816         (inline_forbidden_p): Update.
817         (expand_call_inline): Update.
818         (declare_inline_vars): Update.
819         (tree_function_versioning): Update.
820         * tree-flow.h (value_histograms): New.
821         (VALUE_HISTOGRAMS): New macro.
822         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
823         last_label_uid.
824         * tree-cfg.c (set_bb_for_stmt): Update.
825         (replace_by_duplicate_decl): Update.
826         (move_block_to_fn): Update.
827         (new_label_mapper): Update.
828         (dump_function_to_file): Update.
829         * ipa-struct-reorg.c (build_data_structure): Update.
830         * cfgrtl.c (print_rtl_with_bb): Update.
831         * reload1.c (reload): Update.
832         (reload): Update.
833         * config/i386/i386.c (setup_incoming_varargs_64,
834         ix86_compute_frame_layout): Update.
835         * config/arc/arc.c (arc_output_function_epilogue): Update.
836
837 2008-04-18  Marius Strobl <marius@FreeBSD.org>
838
839         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
840         for FreeBSD as well.
841         * gthr-posix95.h: Likewise.
842
843 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
844
845         PR rtl-optimization/35838
846         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
847         out the byte offset of the first subreg.
848
849 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
850
851         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
852         to split_ti instead of three separate calls with single member arrays.
853         (subti3 splitter): Ditto.
854         (adddi3 splitter): Ditto with split_di.
855         (subdi3 splitter): Ditto.
856         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
857         two separate calls with single member arrays.  Swap match_dup
858         operands 1 and 2 to better fit into the array.
859         (negdi2 splitter): Ditto with split_di.
860         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
861         two separate calls with single member arrays.  Swap match_dup operands
862         6 and 7 to better fit into the array.
863
864 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
865
866         * config/i386/i386.c (sse_builtin_type): New.
867         (bdesc_sse_args): Likewise.
868         (bdesc_sse_3arg): Removed.
869         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
870         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
871         IX86_BUILTIN_ROUNDPS.
872         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
873         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
874         IX86_BUILTIN_ROUNDPS.
875         (ix86_expand_sse_4_operands_builtin): Removed.
876         (ix86_expand_sse_operands_builtin): New.
877         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
878         and CODE_FOR_sse4_1_roundps.
879         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
880         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
881
882 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
883
884         PR target/35907
885         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
886         regs before frame pop when needed.  If use_backchain_to_restore_sp
887         then load backchain into a temp reg to restore vr and vrsave.  Add
888         code to restore vr after frame pop if possible.
889
890 2008-04-17  Richard Guenther  <rguenther@suse.de>
891
892         * tree-vn.c (expressions_equal_p): Do not check type
893         equality or compatibility before calling operand_equal_p.
894         * fold-const.c (operand_equal_p): Check equivalence of
895         integer constants before bailing out due to signedness or
896         precision differences.
897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
898         spurious differences in type qualification.  Ignore types
899         for COMPONENT_REFs at all.
900
901 2008-04-17  Christian Bruel  <christian.bruel@st.com>
902
903         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
904         msw_skip comparison.
905         
906 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
907
908         PR c/35739
909         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
910         reg type.
911
912         PR tree-optimization/35899
913         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
914         rather than TREE_OPERAND.
915
916 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
917
918         PR target/35944
919         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
920         temporary registers.  Change operand predicate to general_operand.
921         (remainderxf3): Ditto.
922
923 2008-04-16  Richard Guenther  <rguenther@suse.de>
924
925         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
926         * tree-affine.c (aff_combination_expand): Look through some
927         conversions.
928
929 2008-04-15  Doug Kwan  <dougkwan@google.com>
930
931         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
932         for hex printing.
933         * tree-pretty-print.c (dump_generic_node): Ditto.
934         * final.c (output_addr_const): Ditto.
935         * dwarf2out.c (output_cfi): Ditto.
936         * c-pretty-print.c (pp_c_integer_constant): Ditto.
937         * print-rtl.c (print_rtx): Ditto.
938         * print-tree.c (print_node_brief, print_node): Ditto.
939         * c-common.c (match_case_to_enum_1): Ditto.
940         * sched-vis.c (print_value): Ditto.
941         * config/i386/i386.c (print_operand): Cast to long unsigned int
942         for hex printing.
943
944 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
945         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
946         MS Windows VirtualProtect function.
947
948 2008-04-15  Jan Hubicka  <jh@suse.cz>
949
950         * gengtype.c (write_root): Param_is argument is OK.
951         * expr.c (expand_expr_real_1): Update call of get_exception_*.
952         * function.h: Include varray.h
953         (rtl_eh): New stucture based on except.c one.
954         (call_site_record): New forward declaration and vector type.
955         * calls.c (emit_call_1): Do not call
956         note_current_region_may_contain_throw.
957         * except.c (eh_status): Remove cur_region, try_region since they are
958         unused.
959         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
960         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
961         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
962         Remove call_site_data_used, call_site_data_size.
963         Turn call_site_record into vector in function.h.
964         (note_current_region_may_contain_throw): Remove.
965         (get_exception_pointer, get_exception_filter): Do not take struct
966         function argument; update.
967         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
968         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
969         build_post_landing_pads, dw2_build_landing_pads,
970         sjlj_assign_call_site_values, sjlj_mark_call_sites,
971         sjlj_emit_function_enter, sjlj_emit_function_enter, 
972         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
973         sjlj_build_landing_pads, finish_eh_generation,
974         remove_exception_handler_label, remove_eh_handler,
975         maybe_remove_eh_handler, add_reachable_handler,
976         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
977         add_action_record, collect_one_action_chain, add_call_site,
978         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
979         sjlj_output_call_site_table, output_function_exception_table,
980         * except.h (note_current_region_may_contain_throw): Remove
981         (get_exception_pointer, get_exception_filter): Do not take struct
982         function argument.
983         * Makefile.in (GTFILES): Put varargs before struct function.
984
985 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
988         punt for STRING_CST.
989         (get_constraint_for): Deal with STRING_CST here instead.
990
991 2008-04-15  Richard Guenther  <rguenther@suse.de>
992
993         * tree-ssa-propagate.c (substitute_and_fold): Substitute
994         statements in a basic-block with a backward walk.  Do not
995         substitute into dead statements but instead remove those.
996
997 2008-04-15  Richard Guenther  <rguenther@suse.de>
998
999         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1000         to zero, thus disable creation of SFTs.
1001
1002 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1003
1004         * tree-predcom.c (suitable_reference_p): Return false if the
1005         reference can throw.
1006
1007 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
1008
1009         PR c/35751
1010         * c-decl.c (finish_decl): If extern or static var has variable
1011         size, set TREE_TYPE (decl) to error_mark_node.
1012
1013 2008-04-15  Rafael Espindola  <espindola@google.com>
1014
1015         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1016         variable arg1.
1017
1018 2008-04-15  Richard Guenther  <rguenther@suse.de>
1019
1020         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1021         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1022         (visit_reference_op_load): Do walk vuse-vdef chains on
1023         vn_reference_lookup.
1024         (visit_reference_op_store): But do not here.
1025         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1026         vn_reference_lookup.
1027         (vn_lookup_with_vuses): But do so here.
1028
1029 2008-04-14  Ian Lance Taylor  <iant@google.com>
1030
1031         * fold-const.c (fold_overflow_warning): Remove assertion.
1032
1033 2008-04-15  Ben Elliston  <bje@au.ibm.com>
1034
1035         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1036         temp1 local variables.
1037
1038 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
1039
1040         PR target/35661
1041         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1042         ".text.unlikely" section as executable.
1043
1044 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
1045
1046         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1047         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1048         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1049         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1050         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1051         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1052         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1053
1054 2008-04-14  Ian Lance Taylor  <iant@google.com>
1055
1056         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1057         * fold-const.c (fold_comparison): If appropriate, test
1058         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1059         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1060         reassociating a pointer type.
1061         * doc/invoke.texi (Optimize Options): Document that
1062         -fstrict-overflow applies to pointer wraparound.
1063
1064 2008-04-13  Jan Hubicka  <jh@suse.cz>
1065
1066         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1067
1068 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
1069
1070         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1071         we are going to "save the world".
1072
1073 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
1074
1075         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1076         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1077         operand 0 constraint, not "=".
1078
1079 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
1080
1081         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1082
1083 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1084
1085         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1086         of size of positions_needed * CHAR_BIT.
1087
1088 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1089
1090         PR middle-end/35897
1091         * dse.c (store_info): Change positions_needed to unsigned
1092         HOST_WIDE_INT.
1093         (lowpart_bitmask): New.
1094         (record_store): Cast to unsigned HOST_WIDE_INT for
1095         positions_needed.  Assert width <= size of positions_needed *
1096         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
1097         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
1098         lowpart_bitmask to set mask.
1099
1100 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1101
1102         * config/bfin/constraints.md: New file.
1103         * config/bfin/bfin.md: Include it.
1104         (adddi3): Use satisfies_constraint functions instead of the old macros.
1105         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1106         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1107         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1108         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1109         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1110         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1111         EXTRA_CONSTRAINT): Delete.
1112         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1113         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1114         of the old macros.
1115         * config/bfin/bfin.c: Include "tm-constrs.h".
1116         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1117         Use satisfies_constraint functions instead of the old macros.
1118         * doc/md.texi (Blackfin Constraints): Update file name reference.
1119
1120 2008-04-11  Richard Guenther  <rguenther@suse.de>
1121
1122         PR tree-optimization/35869
1123         * tree-vrp.c (execute_vrp): Move switch statement update after
1124         jump threading.  Schedule another cfg cleanup run.
1125
1126 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
1127
1128         PR c/35744
1129         * attribs.c (decl_attributes): Return early on errorneous node.
1130
1131 2008-04-10  Oleg Ryjkov  <olegr@google.com>
1132
1133         * tree.h (struct tree_base): Added a new flag default_def_flag.
1134         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1135
1136 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1137
1138         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1139
1140 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1141
1142         PR target/35768
1143         * pa.md: Define mode iterator P.  Define mode attribute dwc.
1144         (dcacheflush): Update pattern to use iterator P and attribute dwc.
1145         (icacheflush): Likewise.
1146         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1147         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1148
1149 2008-04-11  Ben Elliston  <bje@au.ibm.com>
1150
1151         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1152
1153 2008-04-10  Rafael Espindola  <espindola@google.com>
1154
1155         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1156         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1157         (extract_range_from_expr): The same.
1158
1159 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1160
1161         * config/mips/mips.md (GPR2): New mode iterator.
1162         (seq): Add comment.
1163         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1164         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1165         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1166         Rewrite these to take two modes, the mode of comparison and the
1167         mode of the destination.
1168         * config/mips/mips.c (mips_expand_scc): Instead of having
1169         paradoxical subreg as destination, expand "narrowing" scc if mode
1170         of comparison is SI and target is requested in DI mode.
1171         (mips_emit_int_order_test): Update comment.  Make mode of
1172         comparison match CMP0 rather than TARGET.  When creating inverse
1173         target use mode of TARGET.
1174
1175 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1176
1177         * gcov-dump.c (tag_summary): Only print summaries for the first
1178         GCOV_COUNTERS_SUMMABLE counters.
1179
1180 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
1181
1182         * config/i386/i386.md (absneg): New code iterator.
1183         (absnegprefix): New code attribute.
1184         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1185         patterns using absneg code iterator.
1186         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1187         using absneg code iterator.
1188         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1189         *neg<mode>2 patterns using absneg code iterator.
1190         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1191         *negextendsfdf2 patterns using absneg code iterator.
1192         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1193         *negextendsfxf2 patterns using absneg code iterator.
1194         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1195         *negextendsfdf2 patterns using absneg code iterator.
1196         * config/i386/sse.md (<code><mode>2): Macroize expander from
1197         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
1198
1199 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1200
1201         * config/s390/s390.h: Remove the remains of the recent search
1202         & replace action of current_function_outgoing_args_size.
1203
1204 2008-04-10  Ira Rosen  <irar@il.ibm.com>
1205
1206         PR tree-optimization/35821
1207         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1208         NEW_STMT_LIST is not NULL.
1209
1210 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
1211
1212         PR libstdc++/35597
1213         * toplev.c (process_options): Remove -ffunction-sections debugging
1214         warning.
1215
1216 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
1217
1218         PR middle-end/PR28690
1219         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1220         than gen_rtx_fmt_ee to perform more canonicalizations.
1221
1222 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1223
1224         PR driver/35665
1225         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1226
1227 2008-04-09  Richard Guenther  <rguenther@suse.de>
1228
1229         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1230         (dump_function_to_file): Dump function arguments with types.
1231
1232 2008-04-08  Richard Guenther  <rguenther@suse.de>
1233
1234         * fold-const.c (fold_widened_comparison): Do not allow
1235         sign-changes that change the result.
1236
1237 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
1238
1239         PR target/35839
1240         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1241         kinds of indirect references.
1242
1243 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
1244
1245         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1246         GNU Fortran language string.
1247
1248 2008-04-08  Rafael Espindola  <espindola@google.com>
1249
1250         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1251         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1252         * tree.h (tree_call_nonnegative_warnv_p): New.
1253
1254 2008-04-08  Jan Hubicka  <jh@suse.cz>
1255
1256         * function.c (free_after_compilation): Clear out regno_reg_rtx
1257         pointer.
1258
1259 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
1260
1261         Revert
1262         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1263
1264         PR middle-end/PR28690
1265         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1266         same precedence as REG_POINTER and MEM_POINTER operands.
1267
1268 2008-04-08  Richard Guenther  <rguenther@suse.de>
1269
1270         PR middle-end/35834
1271         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1272         for adding index to base.
1273
1274 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
1275
1276         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1277         (MINGW_ENABLE_EXECUTE_STACK): New.
1278         (IN_LIBGCC2): For libgcc include windows.h file for
1279         function declarations.
1280
1281 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
1282
1283         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1284         and tem2 if tem1 is not a REG or MULT.
1285
1286 2008-04-08  Jan Hubicka  <jh@suse.cz>
1287
1288         * function.h (incomming_args): Break out of struct function.
1289         (function_subsections): Break out of struct function.
1290         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1291         return_rtx and hard_reg_initial_vals from struct function.
1292         Kill inl_max_label_num.
1293         (current_function_pops_args, current_function_args_info,
1294         current_function_args_size, current_function_args_size,
1295         current_function_pretend_args_size,
1296         current_function_outgoing_args_size,
1297         current_function_internal_arg_pointer, current_function_return_rtx):
1298         Kill compatibility accestor macros.
1299         * builtins.c (expand_builtin_apply_args_1): Update.
1300         (expand_builtin_next_arg): Update.
1301         * df-scan.c (df_get_call_refs): Update.
1302         * dbxout.c (dbxout_function_end): Update.
1303         * dwarf2out.c (dwarf2out_switch_text_section): Update.
1304         (output_line_info): Update.
1305         (secname_for_decl): Update.
1306         (dwarf2out_var_location): Update.
1307         * function.c (free_after_compilation): Update.
1308         (assign_parm_find_stack_rtl): Update.
1309         (assign_parms): Update.
1310         (expand_dummy_function_end): Update.
1311         (expand_function_end): Update.
1312         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1313         (expand_call): Update.
1314         (emit_library_call_value_1): Update.
1315         (store_one_arg): Update.
1316         * varasm.c (initialize_cold_section_name): Update.
1317         (unlikely_text_section): Update.
1318         (unlikely_text_section_p): Update.
1319         (assemble_start_function): Update.
1320         (assemble_end_function): Update.
1321         (default_section_type_flags): Update.
1322         (switch_to_section): Update.
1323         * integrate.c (set_decl_abstract_flags): Update.
1324         (get_hard_reg_initial_val): Update.
1325         (has_hard_reg_initial_val): Update.
1326         (allocate_initial_values): Update.
1327         * resource.c (init_resource_info): Update.
1328         * config/alpha/alpha.c (NUM_ARGS): Update.
1329         (direct_return): Update.
1330         (alpha_va_start): Update.
1331         (alpha_sa_size): Update.
1332         (alpha_initial_elimination_offset): Update.
1333         (alpha_expand_prologue): Update.
1334         (alpha_start_function): Update.
1335         (alpha_expand_epilogue): Update.
1336         (unicosmk_initial_elimination_offset):
1337         * config/alpha/alpha.md (call expander): Update.
1338         * config/s390/s390.c (s390_register_info): Update.
1339         (s390_register_info): Update.
1340         (s390_frame_info): Update.
1341         (s390_initial_elimination_offset): Update.
1342         (s390_build_builtin_va_list): Update.
1343         (s390_va_start): Update.
1344         * config/spu/spu.c (direct_return): Update.
1345         (spu_expand_prologue): Update.
1346         (spu_initial_elimination_offset): Update.
1347         (spu_build_builtin_va_list): Update.
1348         (spu_va_start): Update.
1349         * config/sparc/sparc.c (sparc_init_modes): Update.
1350         (sparc_compute_frame_size): Update.
1351         (function_value): Update.
1352         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1353         * config/i386/i386.md (return expander): Update.
1354         * config/i386/i386.c (ix86_va_start): Update.
1355         (ix86_can_use_return_insn_p): Update.
1356         (ix86_compute_frame_layout): Update.
1357         (ix86_expand_epilogue): Update.
1358         * config/sh/sh.c (output_stack_adjust): Update.
1359         (calc_live_regs): Update.
1360         (sh_expand_prologue): Update.
1361         (sh_builtin_saveregs): Update.
1362         (sh_va_start): Update.
1363         (initial_elimination_offset): Update.
1364         (sh_allocate_initial_value): Update.
1365         (sh_function_ok_for_sibcall): Update.
1366         (sh_get_pr_initial_val): Update.
1367         * config/sh/sh.md (return expander): Update.
1368         * config/avr/avr.c (frame_pointer_required_p): UPdate.
1369         * config/crx/crx.c (crx_compute_frame): UPdate.
1370         (crx_initial_elimination_offset): UPdate.
1371         * config/xtensa/xtensa.c (compute_frame_size): Update
1372         (xtensa_builtin_saveregs): Update.
1373         (xtensa_va_start): Update.
1374         (order_regs_for_local_alloc): Update.
1375         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1376         (xstormy16_expand_builtin_va_start): Update.
1377         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1378         * config/m68hc11/m68hc11.md (return expanders): Update.
1379         * config/m68hc11/m68hc11.c (expand_prologue): Update.
1380         (expand_epilogue): Update.
1381         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1382         (cris_simple_epilogue): Update.
1383         (cris_expand_prologue): Update.
1384         (cris_expand_epilogue): Update.
1385         * config/iq2000/iq2000.c (iq2000_va_start): Update.
1386         (compute_frame_size): Update.
1387         * config/mt/mt.c (mt_compute_frame_size): Update.
1388         * config/mn10300/mn10300.c (expand_prologue): Update.
1389         (expand_epilogue): Update.
1390         (initial_offset): Update.
1391         (mn10300_builtin_saveregs):
1392         * config/mn10300/mn10300.md (return expander): Update.
1393         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1394         (ia64_initial_elimination_offset): Update.
1395         (ia64_initial_elimination_offset): Update.
1396         (ia64_expand_prologue): Update.
1397         * config/m68k/m68k.md (return expander): Update.
1398         * config/rs6000/rs6000.c (rs6000_va_start): Update.
1399         (rs6000_stack_info): Update.
1400         * config/mcore/mcore.c (layout_mcore_frame): Update.
1401         (mcore_expand_prolog): Update.
1402         * config/arc/arc.c (arc_compute_frame_size): Update.
1403         * config/score/score3.c (score3_compute_frame_size): Update.
1404         * config/score/score7.c (score7_compute_frame_size): Update.
1405         * config/arm/arm.c (use_return_insn): Update.
1406         (thumb_find_work_register): Update.
1407         (arm_compute_save_reg_mask): Update.
1408         (arm_output_function_prologue): Update.
1409         (arm_output_epilogue): Update.
1410         (arm_size_return_regs): Update.
1411         (arm_get_frame_offsets): Update.
1412         (arm_expand_prologue): Update.
1413         (thumb_exit): Update.
1414         (thumb_unexpanded_epilogue): Update.
1415         (thumb1_output_function_prologue): Update.
1416         * config/pa/pa.md (return expander): Update.
1417         * config/pa/pa.c (compute_frame_size): Update.
1418         (hppa_builtin_saveregs): Update.
1419         * config/mips/mips.c (mips_va_start): Update.
1420         (mips16_build_function_stub): Update.
1421         (mips_compute_frame_info): Update.
1422         (mips_restore_gp): Update.
1423         (mips_output_function_prologue): Update.
1424         (mips_expand_prologue): Update.
1425         * config/v850/v850.c (compute_frame_size): Update.
1426         (expand_prologue): * config/mmix/mmix.c (along): update.
1427         (mmix_initial_elimination_offset): update.
1428         (mmix_reorg): update.
1429         (mmix_use_simple_return): update.
1430         (mmix_expand_prologue): update.
1431         (mmix_expand_epilogue): Update.
1432         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1433         (emit_link_insn): Update.
1434
1435 2008-04-08  Anatoly Sokolov <aesok@post.ru>
1436
1437         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
1438         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
1439         instructions.
1440         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
1441         atmega103 device.
1442
1443 2008-04-07  Jan Hubicka  <jh@suse.cz>
1444
1445         * function.h (rtl): Rename to x_rtl.
1446         (crtl): New define.
1447         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1448         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1449         used_temp_slots avail_temp_slots, temp_slot_level,
1450         nonlocal_goto_handler_labels): Update accesstors.
1451         (rtl): New global variable.
1452         (struct function): Move some fileds to rtl_data.
1453         (get_arg_pointer_save_area): Update prototype.
1454         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1455         get_arg_pointer_save_area.
1456         * expr.c (init_expr): Update
1457         * function.c (get_frame_size): Update
1458         (assign_stack_local): Update
1459         (expand_function_end): Update.
1460         (get_art_pointer_save_area): Update
1461         * function.h 
1462         * emit-rtl.c (rtl): Declare.
1463         (regno_reg_rtx): Declare.
1464         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1465         Update.
1466         (gen_reg_rtx): Update.
1467         * varasm.c (n_deferred_constatns): Update accestor.
1468         (init_varasm_status): Do not allocate varasm_status.
1469         (force_const_mem, get_pool_size, output_constant_pool): Update.
1470         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1471         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1472         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1473         * sparc/sparc.h (INIT_EXPANDERS): Update.
1474         * ia64/ia64.h (INIT_EXPANDERS): Update.
1475
1476 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
1477
1478         * reload.c (push_secondary_reload): Add missing break to for loop.
1479
1480 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1481
1482         PR middle-end/PR28690
1483         * rtlanal.c: Update copyright years.
1484         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
1485         as REG_POINTER and MEM_POINTER operands.
1486         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
1487         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
1488         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
1489         * gcse.c: Update copyright years.
1490         (pre_delete): Call gen_reg_rtx_and_attrs.
1491         (hoist_code): Likewise.
1492         (build_store_vectors): Likewise.
1493         (delete_store): Likewise.
1494         * loop-invariant.c (move_invariant_reg): Likewise.
1495         Update copyright years.
1496
1497 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
1498
1499         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
1500         control string instead of quoted.
1501
1502 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1503
1504         * doc/rtl.texi: Rewrite of subreg section.
1505
1506 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
1507
1508         PR/35842
1509         * config/i386/i386.c (legitimize_pic_address): Add treating
1510         of dllimport SYM_REF's.
1511         (legitimize_dllimport_symbol): Add prototype.
1512
1513 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
1516         reference in constructor with non self-referential type.
1517
1518 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1519
1520         Removal of Return with Depressed Stack Pointer support
1521         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
1522         (ECF_SP_DEPRESSED): Likewise.
1523         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
1524         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
1525         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1526         (expand_call): Do not test ECF_SP_DEPRESSED.
1527         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1528         * function.c (keep_stack_depressed): Delete.
1529         (handle_epilogue_set): Likewise.
1530         (update_epilogue_consts): Likewise.
1531         (emit_equiv_load): Likewise.
1532         (thread_prologue_and_epilogue_insns): Remove support for Return with
1533         Depressed Stack Pointer.
1534         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1535
1536 2008-04-06  Richard Guenther  <rguenther@suse.de>
1537
1538         PR tree-optimization/35400
1539         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
1540         information from SSA_NAMEs.
1541
1542 2008-04-06  Anatoly Sokolov <aesok@post.ru>
1543
1544         * config/avr/avr.h (avr_mega_p): Remove declaration.
1545         (AVR_MEGA): Remove macro.
1546         * config/avr/avr.c (avr_mega_p): Remove variable.
1547         (avr_override_options): Remove inicializion of avr_mega_p.
1548         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1549         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1550         (avr_jump_mode): (Ditto.).
1551         (avr_output_progmem_section_asm_op): (Ditto.).
1552         (avr_asm_init_sections): (Ditto.).
1553         (avr_asm_init_sections): (Ditto.).
1554         (avr_rtx_costs): (Ditto.).
1555         * config/avr/avr.md: (Ditto.).
1556         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
1557         '__AVR_MEGA__'.
1558
1559 2008-04-06  Richard Guenther  <rguenther@suse.de>
1560
1561         PR tree-optimization/35842
1562         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
1563         is_gimple_invariant_address.
1564
1565 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1566
1567         * gcc.c (default_compilers): Sync Fortran extensions list with
1568         that in fortran/lang-specs.h.
1569         * doc/invoke.texi: Likewise.
1570         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
1571         * dwarf2out.c (gen_compile_unit_die): Likewise.
1572
1573 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
1574
1575         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
1576
1577 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
1578
1579         PR target/12329
1580         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
1581         attribute is used for nested functions.
1582
1583 2008-04-05  Jan Hubicka  <jh@suse.cz>
1584
1585         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
1586
1587         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
1588         letter argument.
1589         (dump_files): Update.
1590         (enable_rtl_dump_file): Do not accept letter argument.
1591         * tree-pass.h (dump_file_info): Remove letter argument.
1592         * toplev.c (decode_d_option): Update -da handling.
1593         * toplev.h (enable_rtl_dump_file): Update prototype.
1594         * passes.c (register_one_dump_file): Do not accept IPA argument; work
1595         it out based on pass type.
1596         (register_dump_files_1): Likewise.
1597         (init_optimization_passes): Update register_one_dump_file calls.
1598         (execute_one_pass): Sanity check that IPA passes are called at IPA
1599         level and RTL passes at RTL level.
1600         (execute_pass_list): IPA pass can not be after or subpass of
1601         GIMPLE/RTL pass.
1602         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
1603         disallov RTL subpasses of IPA subpasses.
1604
1605 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1606
1607         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1608         builtins that return exactly once and do not throw. Cache call to
1609         call_expr_flags.
1610
1611 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1612
1613         PR rtl-optimization/34916
1614         PR middle-end/35519
1615         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1616         between instruction pairs.
1617
1618 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1619
1620         * doc/invoke.texi: Document -mbitops for SH.
1621         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1622         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1623         * config/sh/sh.c (print_operand): Add %t operand code.
1624         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1625         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1626         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1627         (extendqihi2): Likewise.
1628         (movqi_i): Likewise.
1629         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1630         (extv): Use bld instruction for SH2A if possible.
1631         (extzv): Likewise.
1632         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1633         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1634         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1635         (bset.b, bclr.b): Define peepholes.
1636         * config/sh/sh.opt (mbitops): New option.
1637
1638 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1639
1640         PR target/35620
1641         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1642         and view convert expression.
1643
1644 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1645
1646         PR target/35364
1647         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1648
1649 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1650
1651         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1652
1653         * config/i386/cpuid.h (bit_AES): New.
1654         (bit_PCLMUL): Likewise.
1655
1656         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1657         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1658         SSE2 if AES or PCLMUL is enabled.
1659         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1660         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1661         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1662         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1663         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1664         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1665         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1666         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1667         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1668         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1669         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1670         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1671         __builtin_ia32_aeskeygenassist128 and
1672         __builtin_ia32_pclmulqdq128.
1673         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1674         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1675         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1676
1677         * config/i386/i386.h (TARGET_AES): New.
1678         (TARGET_PCLMUL): Likewise.
1679         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1680
1681         * config/i386/i386.md (UNSPEC_AESENC): New.
1682         (UNSPEC_AESENCLAST): Likewise.
1683         (UNSPEC_AESDEC): Likewise.
1684         (UNSPEC_AESDECLAST): Likewise.
1685         (UNSPEC_AESIMC): Likewise.
1686         (UNSPEC_AESKEYGENASSIST): Likewise.
1687         (UNSPEC_PCLMUL): Likewise.
1688
1689         * config/i386/i386.opt (maes): New.
1690         (mpclmul): Likewise.
1691
1692         * config/i386/sse.md (aesenc): New pattern.
1693         (aesenclast): Likewise.
1694         (aesdec): Likewise.
1695         (aesdeclast): Likewise.
1696         (aesimc): Likewise.
1697         (aeskeygenassist): Likewise.
1698         (pclmulqdq): Likewise.
1699
1700         * config/i386/wmmintrin.h: New.
1701
1702         * doc/extend.texi: Document AES and PCLMUL built-in function.
1703
1704         * doc/invoke.texi: Document -maes and -mpclmul.
1705
1706 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1707
1708         * function.c (free_after_parsing): Replace with
1709         cxx_push_function_context from C++ front-end.
1710         (allocate_struct_function): Don't call langhook.
1711         * langhooks.h (struct lang_hooks_for_functions): Delete.
1712         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1713         member "function".
1714         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1715         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1716         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1717         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1718         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1719         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1720         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1721
1722         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1723         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1724         
1725 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1726
1727         PR c/35440
1728         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1729         for all types.
1730
1731 2008-04-04  Richard Guenther  <rguenther@suse.de>
1732
1733         PR middle-end/35823
1734         * fold-const.c (optimize_minmax_comparison): Use the correct
1735         type for the constant in the simplified comparison.
1736
1737 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1738
1739         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1740         Pass L2 size as "--param l2-cache-size" to the compiler.
1741         (decode_l2_cache): New function to decode L2 cache parameters using
1742         0x8000006 extended cpuid function.
1743         (detect_caches_amd): Determine parameters of L2 cache using
1744         decode_l2_caches function.
1745         (decode_caches_intel): Decode L2 cache parameters.
1746         (detect_caches_intel): Determine L2 cache parameters using
1747         decode_caches_intel and decode_l2_caches functions.
1748
1749 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1750
1751         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1752         secondary input reload for subword loads from the constant pool.
1753
1754 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1755
1756         PR target/35713
1757         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1758           constants of the appropriate size for runtime calculations.
1759
1760         PR c/35712
1761         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1762           decimal-float literal constant zero.
1763
1764 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1765
1766         PR c/35738
1767         * c-parser.c (c_parser_omp_atomic): Call
1768         default_function_array_conversion on the RHS.
1769
1770         PR middle-end/35818
1771         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1772         call is_variable_sized if decl has incomplete type.
1773
1774 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1775
1776         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1777
1778 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1779
1780         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1781         iterators.
1782         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1783         (sgt<u>): Merge sgt and sgtu into new expander.
1784         (sgt, sgtu): Remove expanders.
1785         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1786         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1787         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1788         *sgtu_<mode>_mips16 into new pattern.
1789         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1790         (sge<u>): Merge sge and sgeu into new expander.
1791         (sge, sgeu): Remove expanders.
1792         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1793         new pattern.
1794         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1795         (slt<u>): Merge slt and sltu into new expander.
1796         (slt, sltu): Remove expanders.
1797         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1798         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1799         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1800         *sltu_<mode>_mips16 into new pattern.
1801         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1802         (sle<u>): Merge sle and sleu into new expander.
1803         (sle, sleu): Remove expanders.
1804         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1805         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1806         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1807         *sleu_<mode>_mips16 into new pattern.
1808         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1809
1810 2008-04-03  Jan Hubicka  <jh@suse.cz>
1811
1812         PR tree-optimization/35795
1813         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1814         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1815         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1816         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1817         * score/score3.c (score3_output_mi_thunk): Likewise.
1818         * score/score7.c (score7_output_mi_thunk): Likewise.
1819         * mips/mips.c (mips_output_mi_thunk): Likewise.
1820
1821 2008-04-03  Richard Guenther  <rguenther@suse.de>
1822
1823         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1824         conversions.  Simplify code.
1825
1826 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1827
1828         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1829
1830 2008-04-03  Tom Tromey  <tromey@redhat.com>
1831             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1832
1833         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1834         * config/bfin/t-bfin-linux (generated_files): Add
1835         linux-sysroot-suffix.h.
1836         * doc/install.texi (Prerequisites): Require make 3.80.
1837         * doc/sourcebuild.texi (Front End Directory): Document new
1838         variable.
1839         * Makefile.in (generated_files): New variable.
1840         (ALL_HOST_OBJS): New variable.
1841         ($(ALL_HOST_OBJS)): New target.
1842
1843 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1844
1845         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1846         (remap_block): Call id->transform_lang_insert_block instead
1847         of langhook.
1848         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1849         Set id.transform_lang_insert_block to NULL.
1850         (clone_body): Move to cp/optimize.c
1851         * tree-inline.h (struct copy_body_data): Change
1852         transform_lang_insert_block to function pointer.
1853         (copy_generic_body, copy_decl_no_change): Export.
1854         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1855         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1856         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1857
1858         * c-tree.h (insert_block): Kill.
1859         * c-decl.c (insert_block): Kill.
1860
1861 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1862
1863         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1864         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1865         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1866         argument.
1867         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1868         argument, call {push,pop}_function_context from here.
1869         * c-parser.c: Use c_{push,pop}_function_context.
1870
1871         * function.c (push_function_context_to): Move meat ...
1872         (push_function_context): ... here.  Simplify.
1873         * function.c (pop_function_context_from): Move meat ...
1874         (pop_function_context): ... here.  Simplify.
1875         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1876         leave_nested).
1877         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1878         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1879         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1880         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1881
1882 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1883
1884         * expmed.c (extract_force_align_mem_bit_field): Remove.
1885
1886 2008-04-03  Richard Guenther  <rguenther@suse.de>
1887
1888         PR middle-end/35800
1889         * expr.h (try_casesi): Adjust prototype.
1890         * expr.c (try_casesi): Take fallback label as extra parameter.
1891         Use that for gen_casesi if default_label is NULL.
1892         * stmt.c (expand_case): Pass fallback label to try_casesi,
1893         make sure to fill gaps with a fallback label if default_label
1894         is not present.
1895
1896 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1897
1898         PR target/35801
1899         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1900
1901 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1902
1903         * expmed.c (extract_split_bit_field): Remove if (0) code.
1904         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1905         (do_ds_constraint): Likewise.
1906
1907 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1908
1909         * doc/cppopts.texi (-dU): Document.
1910         * c-common.h (flag_dump_macros): Update comment.
1911         * c-opts.c (handle_OPT_d): Handle -dU.
1912         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1913         dump_queued_macros, cb_used_define, cb_used_undef): New.
1914         (init_pp_output): Handle -dU.
1915         (cb_line_change): Call dump_queued_macros.
1916         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1917
1918 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1919
1920         * config/avr/predicates.md (io_address_operand): New predicate. 
1921         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1922         * config/avr/avr.c (avr_io_address_p): Remove function.
1923         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1924         'avr_io_address_p' function.
1925         (out_movhi_r_mr): (Ditto.).
1926         (out_movqi_mr_r): (Ditto.).
1927         (out_movhi_mr_r): (Ditto.).
1928         (avr_address_cost): (Ditto.).
1929
1930 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1931
1932         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1933         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1934         in 32bit mode when XMM registers are available to avoid store
1935         forwarding stalls.
1936         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1937         corresponding post-reload splitters.
1938
1939 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1940
1941         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1942         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1943         __builtin_ia32_roundss.
1944         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1945         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1946         __builtin_ia32_roundss.
1947         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1948         IX86_BUILTIN_SHUFPD here.
1949
1950 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1951
1952         * config/i386/i386.md (plogic): New.
1953         (plogicprefix): Likewise.
1954
1955         * config/i386/mmx.md (mmx_<code><mode>3): New.
1956         (mmx_and<mode>3): Removed.
1957         (mmx_ior<mode>3): Likewise.
1958         (mmx_xor<mode>3): Likewise.
1959
1960         * config/i386/sse.md (<code><mode>3): New.
1961         (*<code><mode>3): Likewise.
1962         (*<code><mode>3): Likewise.
1963         (<code><mode>3): Likewise.
1964         (*sse_<code><mode>3): Likewise.
1965         (*sse2_<code><mode>3): Likewise.
1966         (<code>tf3): Likewise.
1967         (*<code>tf3): Likewise.
1968         (and<mode>3): Likewise.
1969         (*and<mode>3): Likewise.
1970         (ior<mode>3): Removed.
1971         (*ior<mode>3): Likewise.
1972         (xor<mode>3): Likewise.
1973         (*xor<mode>3): Likewise.
1974         (*and<mode>3): Likewise.
1975         (*ior<mode>3): Likewise.
1976         (*xor<mode>3): Likewise.
1977         (and<mode>3): Likewise.
1978         (*sse_and<mode>3): Likewise.
1979         (*sse2_and<mode>3): Likewise.
1980         (andtf3): Likewise.
1981         (*andtf3): Likewise.
1982         (ior<mode>3): Likewise.
1983         (*sse_ior<mode>3): Likewise.
1984         (*sse2_ior<mode>3): Likewise.
1985         (iortf3): Likewise.
1986         (*iortf3): Likewise.
1987         (xor<mode>3): Likewise.
1988         (*sse_xor<mode>3): Likewise.
1989         (*sse2_xor<mode>3): Likewise.
1990         (xortf3): Likewise.
1991         (*xortf3): Likewise.
1992
1993 2008-04-02  Richard Guenther  <rguenther@suse.de>
1994
1995         PR tree-optimization/14495
1996         PR tree-optimization/34793
1997         * tree-vrp.c (struct switch_update): New structure.
1998         (to_remove_edges, to_update_switch_stmts): New VECs.
1999         (simplify_switch_using_ranges): New function.  Remove not taken
2000         case labels and edges.
2001         (simplify_stmt_using_ranges): Call it.
2002         (identify_jump_threads): Mark edges we have queued for removal
2003         so we don't thread them.
2004         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2005         case label vector.
2006         * tree-cfg.c (group_case_labels): Deal with missing default label.
2007         (tree_verify_flow_info): Allow missing default label.
2008         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2009         (emit_case_nodes): Likewise.
2010         (expand_case): Do not rely on the default label to be present.
2011         * expr.c (try_casesi): Deal with NULL default_label.
2012         (do_tablejump): Likewise.
2013
2014 2008-04-02  Richard Guenther  <rguenther@suse.de>
2015
2016         PR tree-optimization/14495
2017         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2018         SWITCH_EXPR here ...
2019         (vrp_visit_switch_stmt): ... but here (new function).
2020         (find_case_label_index): New helper function.
2021         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2022
2023 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2024
2025         * fwprop.c: Fix ISO-C99ism.
2026
2027 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2028
2029         PR bootstrap/35752
2030         * Makefile.in (objdir): Set it here.
2031         * configure.ac: Not here.  Find dynamic linker characteristics.
2032         * exec-tool.in: Use them.
2033         * aclocal.m4: Regenerate.
2034         * configure: Regenerate.
2035
2036 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2037
2038         * expr.c (expand_var): Delete it.
2039         * expr.h (expand_var): Delete prototype.
2040         * function.c (expand_function_start): Use expand_decl instead.
2041         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2042         langhook.
2043
2044 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
2045
2046         PR rtl-optimization/35542
2047         * fwprop.c (forward_propagate_and_simplify): Replace
2048         loc_reg_mentioned_in_p with reg_mentioned_p.
2049
2050 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2051
2052         PR rtl-optimization/35281
2053         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2054         (propagate_rtx_1): Handle PR_HANDLE_MEM.
2055         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2056         (varying_mem_p): Move above propagate_rtx.
2057         (all_uses_available_at): Do not check MEMs.
2058
2059 2008-04-02  Rafael Espindola  <espindola@google.com>
2060
2061         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2062         (register_edge_assert_for_2): Split the cond argument.
2063         (register_edge_assert_for_1): Adjust for the change in
2064         register_edge_assert_for_2.
2065         (register_edge_assert_for): Split the cond argument.
2066         (find_switch_asserts): Adjust for the change in
2067         register_edge_assert_for.
2068
2069 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
2070
2071         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2072         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2073         offsets for 64-bit mingw.
2074         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2075         abi for x86_64-pc-mingw.
2076
2077 2008-04-02  Richard Guenther  <rguenther@suse.de>
2078
2079         * tree-vrp.c (extract_range_from_assert): Make sure to not
2080         produce range min/max with TREE_OVERFOW set.
2081         If merging a anti-range and a range keep the anti-range if
2082         the range covers all values of the type.
2083         (register_edge_assert_for_2): Only allow sign-changing
2084         conversions in detecting canonical range checks.  Also
2085         register an assert for the unsigned name if useful.
2086
2087         PR tree-optimization/35787
2088         * tree-vrp.c (vrp_val_max): New function.
2089         (vrp_val_min): Likewise.
2090         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2091         (vrp_val_is_min): Likewise.
2092         (supports_overflow_infinity): Use vrp_val_{min,max}.
2093         (negative_overflow_infinity): Likewise.
2094         (positive_overflow_infinity): Likewise.
2095         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2096         (is_positive_overflow_infinity): Likewise.
2097         (is_overflow_infinity): Likewise.
2098         (avoid_overflow_infinity): Use vrp_val_{min,max} and
2099         vrp_val_is_{min,max}.
2100         (set_and_canonicalize_value_range): Canonicalize anti-ranges
2101         to ranges if possible.  Avoid empty ranges.
2102
2103 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2104
2105         PR middle-end/35705
2106         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2107         the expression is a function address.
2108
2109 2008-04-01  George Helffrich  <george@gcc.gnu.org>
2110
2111         PR fortran/PR35154, fortran/PR23057
2112         * fortran/trans-common.c (create_common):  Add decl to function
2113         chain to preserve identifier scope in debug output.
2114
2115         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2116         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2117         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2118         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2119         in common.
2120         (dbxout_syms): Check for COMMON-based symbol and wrap in
2121         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2122         in bracket for efficiency.
2123
2124         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2125         using DW_TAG_common_block + member offset.
2126         (add_pubname_string): New function.
2127         (dw_expand_expr): New function to find block name and offset for
2128         COMMON var.
2129         (common_check): New function to check whether symbol in Fortran COMMON.
2130         (gen_variable_die): If COMMON, use DW_TAG_common_block.
2131
2132         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
2133         use of common is unchanged.
2134
2135         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
2136         with all combinations of debug options available on target.
2137         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
2138         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
2139         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
2140         .stabs functionality.
2141         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
2142         DWARF functionality.
2143
2144 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
2145
2146         PR c/35436
2147         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2148
2149 2008-04-02  Ben Elliston  <bje@au.ibm.com>
2150
2151         * config/v850/v850.md (casesi): Remove if (0) code.
2152         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2153         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2154
2155 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
2156
2157         * config/i386/i386.md (rex64suffix): New mode attribute.
2158         (floathi<mode>2): Disable expander for SSE math.
2159         (*floathi<mode>2_1): New insn insn_and_split pattern.
2160         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2161         corresponding post-reload splitters.
2162         (*floathi<mode>2_i387): New macroized insn pattern.
2163         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2164         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2165         insn_and_split pattern.
2166         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2167         New macroized instruction patterns and corresponding post-reload
2168         splitters.
2169         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2170         and corresponding post-reload splitters.
2171         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2172         New macroized instruction patterns.
2173         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2174         macroized instruction patterns and corresponding post-reload splitters.
2175         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2176         corresponding post-reload splitters.
2177         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2178         New macroized instruction patterns.
2179         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2180         corresponding post-reload splitters.
2181         (*floatsi<mode>2_i387): New macroized instruction patterns.
2182
2183 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
2184
2185         * config/i386/i386.md (smaxmin): New.
2186         (umaxmin): Likewise.
2187         (maxminiprefix): Likewise.
2188         (maxminfprefix): Likewise.
2189         (<code><mode>3): Likewise.
2190         (smin<mode>3): Removed.
2191         (smax<mode>3): Likewise.
2192
2193         * config/i386/mmx.md (mmx_<code>v2sf3): New.
2194         (mmx_<code>v4hi3): Likewise.
2195         (mmx_<code>v8qi3): Likewise.
2196         (mmx_smaxv2sf3): Removed.
2197         (mmx_sminv2sf3): Likewise.
2198         (mmx_umaxv8qi3): Likewise.
2199         (mmx_smaxv4hi3): Likewise.
2200         (mmx_uminv8qi3): Likewise.
2201         (mmx_sminv4hi3): Likewise.
2202
2203         * config/i386/sse.md (<addsub><mode>3): New.
2204         (*<addsub><mode>3): Likewise.
2205         (<sse>_vm<addsub><mode>3): Likewise.
2206         (<maxmin><mode>3): Likewise.
2207         (*<maxmin><mode>3_finite): Likewise.
2208         (*<maxmin><mode>3): Likewise.
2209         (<sse>_vm<maxmin><mode>3): Likewise.
2210         (sse3_h<addsub>v4sf3): Likewise.
2211         (sse3_h<addsub>v2df3): Likewise.
2212         (<maxmin>v16qi3): Likewise.
2213         (*<maxmin>v16qi3): Likewise.
2214         (<maxmin>v8hi3): Likewise.
2215         (*<maxmin>v8hi3): Likewise.
2216         (*sse4_1_<maxmin><mode>3): Likewise.
2217         (*sse4_1_<maxmin><mode>3): Likewise.
2218         (add<mode>3): Removed.
2219         (*add<mode>3): Likewise.
2220         (<sse>_vmadd<mode>3): Likewise.
2221         (sub<mode>3): Likewise.
2222         (*sub<mode>3): Likewise.
2223         (<sse>_vmsub<mode>3): Likewise.
2224         (smin<mode>3): Likewise.
2225         (*smin<mode>3_finite): Likewise.
2226         (*smin<mode>3): Likewise.
2227         (<sse>_vmsmin<mode>3): Likewise.
2228         (smax<mode>3): Likewise.
2229         (*smax<mode>3_finite): Likewise.
2230         (*smax<mode>3): Likewise.
2231         (<sse>_vmsmax<mode>3): Likewise.
2232         (sse3_haddv4sf3): Likewise.
2233         (sse3_haddv2df3): Likewise.
2234         (sse3_hsubv4sf3): Likewise.
2235         (sse3_hsubv2df3): Likewise.
2236         (umaxv16qi3): Likewise.
2237         (*umaxv16qi3): Likewise.
2238         (smaxv8hi3): Likewise.
2239         (*smaxv8hi3): Likewise.
2240         (*sse4_1_smax<mode>3): Likewise.
2241         (*sse4_1_umax<mode>3): Likewise.
2242         (uminv16qi3): Likewise.
2243         (*uminv16qi3): Likewise.
2244         (sminv8hi3): Likewise.
2245         (*sminv8hi3): Likewise.
2246         (*sse4_1_smin<mode>3): Likewise.
2247         (*sse4_1_umin<mode>3): Likewise.
2248
2249 2008-04-01  Rafael Espindola  <espindola@google.com>
2250
2251         * tree-cfg.c (verify_expr): remove in_phi.
2252         (verify_stmt): Don't call walk_tree with verify_expr. Use
2253         is_gimple_min_invariant instead of is_gimple_val.
2254
2255 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
2256
2257         * doc/include/gpl_v3.texi: Update for manpage generation.
2258         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2259         gpl.texi.
2260         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2261         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2262         gpl_v3.texi instead of gpl.texi.
2263         (gpl.pod): New.
2264
2265 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
2266
2267         PR pch/13675
2268         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2269
2270 2008-04-01  Rafael Espindola  <espindola@google.com>
2271
2272         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2273         (extract_code_and_val_from_cond): Use
2274         extract_code_and_val_from_cond_with_ops.
2275
2276 2008-04-01  Jan Hubicka  <jh@suse.cz>
2277
2278         * function.c (free_after_compilation): Free epilogue_delay_list.
2279         (prepare_function_start): Assert that previous compilation was freed.
2280
2281 2008-04-01  Jan Hubicka  <jh@suse.cz>
2282             Jim Wilson  <wilson@tuliptree.org>
2283             Andreas Tobler <andreast@gcc.gnu.org>
2284
2285         PR middle-end/35781
2286         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2287         rtl.emit instead cfun->emit.
2288         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2289         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2290
2291 2008-04-01  Ben Elliston  <bje@au.ibm.com>
2292
2293         * doc/c-tree.texi (Function Basics): Fix grammatical error.
2294
2295 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
2296
2297         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2298         New options
2299         (fprofile-use): Add var flag_profile_use
2300         * coverage.c (coverage_begin_output): Do not open a gcno file for
2301         output only if -ftest-coverage is set.
2302         Do not add getpwd() to gcda file path.
2303         (build_gcov_info): Check the new flag
2304         flag_profile_datafile_relative_path.
2305         (coverage_init): Use profile_data_prefix.
2306         Read profile counter only if flag_profile_use is set.
2307         * opts.c (common_handle_option): New option fprofile-use=,
2308         fprofile-dir=, fprofile-generate=.
2309         * toplev.c (profile_data_prefix): New variable definition.
2310         * toplev.h (profile_data_prefix): New declaration.
2311         * doc/invoke.tex (Option Summary, Optimization Options):
2312         Add new options.
2313
2314 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
2315
2316         * varasm.c (output_constant_pool_1): In LABEL_REF check,
2317         use tmp consistently.
2318
2319         PR target/35695
2320         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2321         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2322         UNSPEC_FR_RECIP_APPROX_RES.
2323         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2324
2325 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
2326
2327         PR c/35750
2328         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2329
2330 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2331
2332         PR middle-end/30186
2333         * fold-const.c (fold_indirect_ref_1): Support accessing non first
2334         element of the vector via a pointer.
2335
2336 2008-03-31  Ian Lance Taylor  <iant@google.com>
2337
2338         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2339
2340 2008-03-31  Jan Hubicka  <jh@suse.cz>
2341
2342         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2343         get_arg_pointer_save_area.
2344         * expr.c (init_expr): Just clear out rtl.expr.
2345         * function.c (free_after_compilation): Clear out whole RTL structure.
2346         (get_func_frame_size): Merge into ...
2347         (get_frame_size): ... this one.
2348         (assign_stack_local_1): Merge into ...
2349         (assign_stack_local): ... this one.
2350         (expand_function_end): Update call of get_arg_pointer_save_area.
2351         (get_art_pointer_save_area): Remove cfun argument.
2352         * function.h (emit_status): regno_pointer_align does not need length
2353         attribute. Move x_regno_reg_rtx to ...
2354         (regno_reg_rtx): ... new global array.
2355         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2356         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2357         apply_args_value, forced_labels, stack_pointer_delta):
2358         Update accestors.
2359         (struct varasm_status): Move here from varasm.c
2360         (struct rtl_data): New. Move here some fields from struct function.
2361         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2362         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2363         used_temp_slots avail_temp_slots, temp_slot_level,
2364         nonlocal_goto_handler_labels): Update accesstors.
2365         (rtl): New global variable.
2366         (struct function): Move some fileds to rtl_data.
2367         (get_arg_pointer_save_area): Update prototype.
2368         * emit-rtl.c (rtl): Declare.
2369         (regno_reg_rtx): Declare.
2370         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2371         Update.
2372         (gen_reg_rtx): Update.
2373         (init_virtual_regs): Do not tate emit_status argument.
2374         (init_emit): Do not allocate emit.
2375         * varasm.c (varasm_statuc): Move to function.h.
2376         (n_deferred_constatns): Update accestor.
2377         (init_varasm_status): Do not allocate varasm_status.
2378         (force_const_mem, get_pool_size, output_constant_pool): Update.
2379         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2380         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2381
2382 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
2383
2384         PR rtl-optimization/35729
2385         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2386         references.
2387
2388 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         PR target/32000
2391         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2392         load/store if memory is unaligned.
2393         (*movti_rex64): Likewise.
2394
2395         * config/i386/predicates.md (misaligned_operand): New.
2396
2397 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
2398
2399         PR tree-opt/35431
2400         * tree-ssa-phiopt.c (conditional_replacement): Return early for
2401         complex types.
2402
2403 2008-03-31  Jan Beulich  <jbeulich@novell.com>
2404
2405         * config/ia64/constraints.md: Add 'j' constraint.
2406         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2407         (movdi_internal): Likewise.
2408
2409 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2410
2411         PR c/35748
2412         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2413
2414 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         PR target/35757
2417         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2418         proper error message for the third argument on blendpd and
2419         blendps.
2420
2421         * config/i386/sse.md (blendbits): New.
2422         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2423
2424 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2425
2426         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2427
2428 2008-03-30  Richard Guenther  <rguenther@suse.de>
2429
2430         PR middle-end/31023
2431         * fold-const.c (fold_sign_changed_comparison): Do leave
2432         conversions to base-types alone.
2433
2434 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2435
2436         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2437         the link register if one altivec register is be saved.
2438
2439 2008-03-30  Ben Elliston  <bje@au.ibm.com>
2440
2441         * final.c (final_scan_insn): Remove if (0) code.
2442
2443 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
2444
2445         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2446
2447 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2448
2449         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2450         of V4SFmode to ix86_binary_operator_ok.
2451
2452 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/i386.c (override_options): Initialize
2455         ix86_veclib_handler to ix86_veclibabi_svml when
2456         -mveclibabi=svml is used.
2457         (ix86_veclibabi_svml): New function for SVML ABI style
2458         vectorization support.
2459         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2460
2461 2008-03-28  Rafael Espindola  <espindola@google.com>
2462
2463         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2464         (tree_binary_nonnegative_warnv_p): Make it public.
2465         (tree_single_nonnegative_warnv_p): Make it public.
2466         (tree_invalid_nonnegative_warnv_p): Make it public.
2467         (tree_unary_nonzero_warnv_p): Make it public.
2468         (tree_binary_nonzero_warnv_p): Make it public
2469         (tree_single_nonzero_warnv_p): Make it public.
2470         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2471         (extract_range_from_binary_expr): Split the expr argument.
2472         (extract_range_from_unary_expr): Split the expr argument.
2473         (extract_range_from_comparison): Split the expr argument.
2474         (extract_range_from_expr): Use the new aux functions.
2475         (vrp_evaluate_conditional_warnv): Use
2476         vrp_evaluate_conditional_warnv_with_ops.
2477         * tree.h (tree_unary_nonzero_warnv_p): Declare.
2478         (tree_binary_nonzero_warnv_p): Declare.
2479         (tree_single_nonzero_warnv_p): Declare.
2480         (tree_expr_nonzero_warnv_p): Declare.
2481         (tree_unary_nonnegative_warnv_p): Declare.
2482         (tree_binary_nonnegative_warnv_p): Declare.
2483         (tree_single_nonnegative_warnv_p): Declare.
2484         (tree_invalid_nonnegative_warnv_p): Declare.
2485
2486 2008-03-28  Richard Guenther  <rguenther@suse.de>
2487
2488         PR tree-optimization/30317
2489         PR tree-optimization/30911
2490         PR tree-optimization/34793
2491         * tree-vrp.c (set_and_canonicalize_value_range): New function.
2492         (struct assert_locus_d): New member EXPR.
2493         (register_new_assert_for): Add EXPR parameter to support
2494         ASSERT_EXPR <name, expr OP limit>.
2495         (register_edge_assert_for_1): Adjust callers.
2496         (find_assert_locations): Likewise.
2497         (process_assert_insertions_for): Build condition from expression.
2498         (extract_range_from_assert): Handle ASSERT_EXPRs
2499         of the form ASSERT_EXPR <name, expr OP limit>.
2500         (register_edge_assert_for_2): New helper registering
2501         asserts for comparisons.  Recognize range tests of the form
2502         (unsigned)i - CST1 OP CST2.
2503         (register_edge_assert_for_1): Use it.
2504         (register_edge_assert_for): Likewise.
2505         (needs_overflow_infinity): Integer sub-types
2506         do not need overflow infinities.
2507         (vrp_val_is_max): The extreme values of integer sub-types
2508         are those of the base type.
2509         (vrp_val_is_min): Likewise.
2510         * tree.def (ASSERT_EXPR): Document extra allowed conditional
2511         expressions.
2512
2513 2008-03-28  Nick Clifton  <nickc@redhat.com>
2514
2515         PR target/31110
2516         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2517         Return GENERAL_REGS for stack adjustment reloads.
2518
2519 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2520
2521         PR target/31334
2522         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
2523         const_vector when all the vectors are constant.
2524
2525 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
2526
2527         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
2528         comparisons.
2529         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
2530         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
2531         (scc_sf): New.
2532         (s<code>_sf): Use new scc_sf attribute for opcode names.
2533
2534 2008-03-27  Tom Tromey  <tromey@redhat.com>
2535
2536         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
2537         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
2538         config/spu/t-spu-elf, config/i386/t-interix,
2539         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
2540         config/i386/x-darwin, config/i386/x-mingw32,
2541         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
2542         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
2543         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
2544         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
2545         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
2546         config/rs6000/x-darwin, config/rs6000/t-rs6000,
2547         config/score/t-score-elf, config/arm/t-strongarm-pe,
2548         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
2549         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
2550         Revert automatic dependency patch.
2551
2552 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2553
2554         PR target/35657
2555         * config/i386/i386.c (ix86_function_arg_boundary): Align
2556         decimal floating point to its natural boundary.
2557
2558 2008-03-27  Richard Guenther  <rguenther@suse.de>
2559
2560         PR middle-end/35716
2561         * fold-const.c (fold_comparison): Restrict distinct decl
2562         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
2563         solely rely on operand_equal_p.
2564
2565 2008-03-27  Richard Guenther  <rguenther@suse.de>
2566
2567         PR c/32511
2568         * c-common.c (handle_weak_attribute): Reject combination of
2569         weak and inline.
2570
2571 2008-03-27  Richard Guenther  <rguenther@suse.de>
2572
2573         PR tree-optimization/32810
2574         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
2575         conversions from DECL_INITIAL.
2576         (fold_const_aggregate_ref): Likewise from constructor elements.
2577
2578 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
2579
2580         * tree-affine.h (aff_combination_expand): Declare.
2581         (get_inner_reference_aff): Likewise.
2582         * tree-affine.c (aff_combination_expand): Split out from
2583         tree_to_aff_combination_expand.
2584         (get_inner_reference_aff): New function.
2585         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
2586         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
2587         (struct lim_aux_data): sm_done field removed.
2588         (mem_ref_loc_p, mem_ref_locs_p): New types.
2589         (struct mem_ref): Added id, stored, accesses_in_loop,
2590         indep_loop, dep_loop, indep_ref, dep_ref fields.
2591         Removed is_stored, locs and next fields.
2592         (memory_accesses): New variable.
2593         (movement_possibility): Do not allow moving statements
2594         that store to memory.
2595         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
2596         New functions.
2597         (determine_max_movement): For statements with memory references,
2598         find the outermost loop in that the reference is independent.
2599         (move_computations_stmt): Mark the virtual operands for renaming.
2600         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
2601         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
2602         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
2603         add_vop_ref_mapping, create_vop_ref_mapping_loop,
2604         create_vop_ref_mapping, analyze_memory_references,
2605         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
2606         get_all_locs_in_loop, ref_always_accessed_p,
2607         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2608         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2609         store_motion_loop, store_motion): New functions.
2610         (struct vop_to_refs_elt): New type.
2611         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2612         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2613         (schedule_sm): Replaced by...
2614         (execute_sm): ... this.
2615         (determine_lsm_ref, hoist_memory_references,
2616         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2617         find_more_ref_vops, free_mem_ref, free_mem_refs,
2618         determine_lsm_loop, determine_lsm): Removed.
2619         (tree_ssa_lim_finalize): Free data structures used by store motion.
2620         (tree_ssa_lim): Call analyze_memory_references.  Use
2621         store_motion instead of determine_lsm.
2622
2623 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2624
2625         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2626         rename tmake_file to m68hc11/t-m68hc11.
2627         (mcore): Set inhibit_libc to true.
2628         * config.host (alpha*-dec-*vms*): Set extra_programs.
2629         (interix3*): Don't use host_xmake_file.
2630         * configure.ac: Let config.gcc override inhibit_libc.
2631         * configure: Regenerate.
2632
2633         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2634         * config/t-openbsd-thread: Remove commented out lines.
2635         
2636         * config/x-interix: Remove.
2637
2638         * config/m68hc11/t-m68hc11-gas: Rename to...
2639         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2640
2641         * config/mcore/t-mcore: Remove T_CFLAGS.
2642         * config/mcore/t-mcore-pe: Likewise.
2643
2644 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2645
2646         * configure.ac: Replace custom __GNU_SOURCE test with
2647         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2648         * aclocal.m4: Regenerate.
2649         * configure: Regenerate.
2650         * config.in: Regenerate.
2651
2652 2008-03-27  Richard Guenther  <rguenther@suse.de>
2653
2654         * fold-const.c (target.h): Include.
2655         (fold_comparison): Fold comparison of addresses of decls
2656         that bind locally or of constants.  Consolidate address folding code.
2657         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2658         results from fold_binary_to_constant.
2659         (compare_values_warnv): Likewise.
2660
2661 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2662
2663         PR middle-end/35429
2664         * fold-const.c (fold_truthop): Check for integeral types when folding
2665         a == 0 && b == 0 and a != 0 || b != 0 .
2666
2667 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2668
2669         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2670
2671 2008-03-26  Andreas Schwab  <schwab@suse.de>
2672
2673         * doc/invoke.texi: Fix use of @item vs. @itemx.
2674
2675 2008-03-26  Tom Tromey  <tromey@redhat.com>
2676
2677         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2678         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2679         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2680         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2681         build/genconstants.o, build/genemit.o, build/genextract.o,
2682         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2683         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2684         options.h.
2685
2686 2008-03-26  Richard Guenther  <rguenther@suse.de>
2687
2688         Revert
2689         2008-03-26  Richard Guenther  <rguenther@suse.de>
2690
2691         * fold-const.c (target.h): Include.
2692         (fold_comparison): Fold comparison of addresses of two decls
2693         that bind locally.  Consolidate address folding code.
2694
2695 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2696
2697         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2698         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2699         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2700         dconstsqrt2, dconstthird, dconste and/or dconst10.
2701         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2702         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2703         dconstsqrt2, dconste): Delete.
2704         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2705         Constify variable.
2706         * real.c (get_real_const): New.
2707         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2708         dconstsqrt2, dconste): Delete.
2709         (real_value_const, get_real_const): New.
2710
2711 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2712
2713         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2714
2715         * config/i386/i386.c (ix86_function_arg_boundary): Check
2716         BIGGEST_ALIGNMENT instead of 128.
2717         (setup_incoming_varargs_64): Likewise.
2718
2719 2008-03-26  Tom Tromey  <tromey@redhat.com>
2720
2721         * Makefile.in (DEPFILES): Add missing '/'.
2722
2723 2008-03-26  Richard Guenther  <rguenther@suse.de>
2724
2725         * fold-const.c (target.h): Include.
2726         (fold_comparison): Fold comparison of addresses of two decls
2727         that bind locally.  Consolidate address folding code.
2728
2729 2008-03-26  Nick Clifton  <nickc@redhat.com>
2730
2731         PR target/31232
2732         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2733         not allow INT+INT as a legitimate addressing mode.
2734
2735 2008-03-26  Richard Guenther  <rguenther@suse.de>
2736
2737         * tree-flow.h (widen_bitfield): Remove declaration.
2738         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2739         (widen_bitfield): Remove function.
2740         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2741         code.
2742
2743 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2744
2745         PR target/31558
2746         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2747         error_mark_node's.
2748
2749 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2750
2751         PR rtl-optimization/35232
2752         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2753         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2754         reg_reloaded_call_part_clobbered here.
2755         (reload_regs_reach_end_p): New function.
2756         (reload_reg_rtx_for_input): New variable.
2757         (reload_reg_rtx_for_output): Likewise.
2758         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2759         when reassigning a pseudo register.  Load reloadreg from 
2760         reload_reg_rtx_for_input, moving the mode and register
2761         calculation to...
2762         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2763         instead of the original when deciding whether an input reload
2764         would be a no-op or whether an output reload can be deleted.
2765         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2766         when setting up new_spill_reg_store.  Load it from
2767         reload_reg_rtx_for_output, moving the mode and register
2768         calculation to...
2769         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2770         instead of the original when deciding whether an output reload
2771         would be a no-op.  Do the same when modifying insn notes.
2772         Use rtx_equal_p instead of == to compare the registers.
2773         (inherit_piecemeal_p): Take a mode and two register numbers
2774         as argument.
2775         (emit_reload_insns): Clear new_spill_reg_store for every hard
2776         register in the reload register.  Remove spill registers
2777         from reg_reloaded_valid before considering whether to record
2778         inheritance information for them.  Use reload_reg_rtx_for_output
2779         instead of reg_rtx when recording output reloads.  Use
2780         reload_reg_rtx_for_input instead of reg_rtx when recording
2781         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2782         at the same time as setting reg_reloaded_valid.
2783         (delete_output_reload): Add a new_reload_reg parameter and use it
2784         instead of rld[j].reg_rtx.
2785         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2786         calls accordingly.
2787
2788 2008-03-25  Tom Tromey  <tromey@redhat.com>
2789
2790         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2791         (build/genattr.o): Likewise.
2792         (build/genattrtab.o): Likewise.
2793         (build/gencodes.o): Likewise.
2794         (build/genconfig.o): Likewise.
2795         (build/genconstants.o): Likewise.
2796         (build/genemit.o): Likewise.
2797         (build/genextract.o): Likewise.
2798         (build/genflags.o): Likewise.
2799
2800 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2801         
2802         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2803         instead of size_int for integer types.
2804         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2805         to match type of MINUS_EXPR.
2806         
2807 2008-03-25  Tom Tromey  <tromey@redhat.com>
2808
2809         * configure: Rebuilt.
2810         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2811         Makefile.
2812
2813 2008-03-25  Tom Tromey  <tromey@redhat.com>
2814
2815         * config/x-solaris (host-solaris.o): Update.
2816         * config/x-linux (host-linux.o): Update.
2817         * config/x-hpux (host-hpux.o): Update.
2818         * config/x-darwin (host-darwin.o): Update.
2819         * config/v850/t-v850e (v850-c.o): Update.
2820         * config/v850/t-v850 (v850-c.o): Update.
2821         * config/t-vxworks (vxworks.o): Update.
2822         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2823         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2824         * config/spu/t-spu-elf (spu-c.o): Update.
2825         (spu.o): Remove.
2826         * config/sh/t-symbian (sh-c.o): Update.
2827         (symbian.o): Update.
2828         * config/sh/t-sh (sh-c.o): Update.
2829         * config/score/t-score-elf (score7.o, score3.o): Update.
2830         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2831         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2832         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2833         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2834         (rs6000.o): Remove.
2835         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2836         * config/m32c/t-m32c (m32c-pragma.o): Update.
2837         * config/ia64/t-ia64 (ia64-c.o): Update.
2838         * config/i386/x-mingw32 (host-mingw32.o): Update.
2839         * config/i386/x-i386 (driver-i386.o): Update.
2840         * config/i386/x-darwin (host-i386-darwin.o): Update.
2841         * config/i386/x-cygwin (host-cygwin.o): Update.
2842         * config/i386/t-nwld (nwld.o): Update.
2843         * config/i386/t-netware (netware.o): Update.
2844         * config/i386/t-interix (winnt.o): Update.
2845         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2846         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2847         msformat-c.o): Update.
2848         * config/bfin/t-bfin-linux (generated_files): Add
2849         linux-sysroot-suffix.h.
2850         * config/arm/t-wince-pe (pe.o): Update.
2851         * config/arm/t-strongarm-pe (pe.o): Update.
2852         * config/arm/t-pe (pe.o): Update.
2853         * config/arm/t-arm (arm-c.o): Update.
2854         * doc/install.texi (Prerequisites): Require make 3.80.
2855         * Makefile.in: Remove .o targets.
2856         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2857         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2858         (simple_generated_h, simple_generated_c): Move earlier.
2859         (generated_files): New variable.
2860         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2861         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2862         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2863         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2864         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2865         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2866         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2867         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2868         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2869         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2870         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2871         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2872         (.c.o): Remove.
2873         (COMPILE.base, COMPILE): New variables.
2874         (%.o): New pattern rule.
2875         (ALL_HOST_OBJS): New variable.
2876         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2877         (dummy-checksum.o, cc1-checksum.o): Remove.
2878         (DRIVER_SHLIB): New variable.
2879         (DRIVER_DEFINES): Use it.
2880         (gencondmd.c): Move out of build/.
2881         (s-conditions): Update.
2882         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2883         (ALL_BUILD_OBJS): Likewise.
2884         (build/%.o): Use BUILDCOMPILE.
2885         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2886         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2887         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2888         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2889         build/genconfig.o, build/genconstants.o, build/genemit.o,
2890         build/genextract.o, build/genflags.o, build/genmddeps.o,
2891         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2892         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2893         build/gen-protos.o, build/scan.o, build/fix-header.o,
2894         build/scan-decls.o): Simplify.
2895         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2896         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2897         prefix.o, toplev.o): Reduce to variable setting.
2898         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2899         ($(out_object_file), gcc-options.o): New targets.
2900         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2901         * configure: Rebuilt.
2902         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2903         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2904
2905 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2906
2907         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2908         complain when we hit an error, return ERROR_MARK_NODE.
2909
2910 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2911
2912         * config/sh/constraints.md (Pso, Psz): New constraints.
2913         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2914         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2915
2916 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2917
2918         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2919         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2920
2921 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2922
2923         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2924         (prefetch_sh2a): New.   
2925
2926 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2927             Naveen.H.S  <naveen.hs@kpitcummins.com>
2928
2929         * config/sh/constraints.md (I28): New constraint.
2930         * config/sh/sh.c (broken_move): Add support for movi20s.
2931         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2932
2933 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2934             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2935             Naveen.H.S  <naveen.hs@kpitcummins.com>
2936
2937         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2938         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2939         (print_operand): Handle resbank in %@ operand code.
2940         (sh_encode_section_info): New.
2941         (push_regs): Add conditions for resbank.
2942         (sh_expand_epilogue): Likewise.
2943         (sh_insert_attributes): Likewise.
2944         (sh_attribute_table): Likewise.
2945         (sh_handle_resbank_handler_attribute): New.
2946         (sh2a_handle_function_vector_handler_attribute): New.
2947         (sh2a_is_function_vector_call): New.
2948         (sh2a_get_function_vector_number): New.
2949         (sh2a_function_vector_p): New.
2950         (sh_cfun_resbank_handler_p): New.
2951         * config/sh/sh.md (calli): Emit jsr/n if possible.
2952         (calli_tbr_rel): New.
2953         (calli_pcrel): Emit jsr/n if possible.
2954         (return_i): Emit rts/n if possible.
2955         (call_valuei_tbr_rel): New.
2956         (call_valuei_pcrel): Add condition for SH2A target.
2957         (call_value): Likewise.
2958         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2959         (sh2a_get_function_vector_number): Likewise.
2960         (sh2a_is_function_vector_call): Likewise.
2961         * doc/extend.texi: Document TBR relative addressing of SH2A.
2962         (resbank): Add description for SH2A.
2963
2964 2008-03-24  Richard Guenther  <rguenther@suse.de>
2965
2966         PR c/22371
2967         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2968         pointer assignments change conversions according to middle-end rules.
2969         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2970         * configure.ac: Include type checking in yes.
2971         * configure: Regenerate.
2972
2973 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2974
2975         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2976         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2977         
2978 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2979
2980         * gthr-vxworks.h (UNUSED): Define.
2981
2982 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2985
2986 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2987
2988         * doc/extend.texi (Function Attributes): Add missing comma in the
2989         example of the "alloc_size" attribute.
2990         
2991 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2992
2993         Revert:
2994         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2995
2996         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2997         32bit host.
2998
2999         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3000
3001         PR target/35496
3002         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3003         of the underlying type of a MS bitfield layout to the natural
3004         alignment of the type.
3005
3006         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3007
3008         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3009         to their natural alignment to avoid store forwarding stalls.
3010
3011 2008-03-22  Richard Guenther  <rguenther@suse.de>
3012
3013         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3014         For PHI nodes verify the address is invariant.
3015         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3016         (get_symbol_constant_value): Use is_gimple_min_invariant.
3017         (maybe_fold_stmt_indirect): Likewise.
3018
3019 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3020
3021         PR rtl-optimization/33927
3022         * Makefile.in (dse.o): Depend on $(TM_P_H).
3023         * expr.h (extract_low_bits): Declare.
3024         * expmed.c (extract_low_bits): New function.
3025         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3026         * dse.c: Include tm_p.h.
3027         (find_shift_sequence): Remove the read_reg argument and return the
3028         read value.  Emit the instructions instead of returning them.
3029         Iterate on new_mode rather than calculating it each time.
3030         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
3031         source to NEW_MODE and extract_low_bits to convert the shifted
3032         value to READ_MODE.
3033         (replace_read): Allow the load and store to have different mode
3034         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
3035         or extraction instructions before trying the replacement.  Update
3036         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3037
3038 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3039
3040         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3041         to their natural alignment to avoid store forwarding stalls.
3042
3043 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3044
3045         PR target/27946
3046         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3047         encouraging but not allowing gprs for input;
3048         change the input constraint to !f#r.
3049         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3050         gprs for output;
3051         change the output constraint to !f#r.
3052
3053 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
3054
3055         PR target/13958
3056         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3057         corresponding post-reload splitters.
3058         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3059         when x87 FP math is selected.
3060         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3061         New function prototype.
3062         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3063         unreachable function to ease macroization of insn patterns.
3064
3065 2008-03-21  Martin Jambor  <mjambor@suse.cz>
3066
3067         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3068         reference dumps if ddr is NULL or dependence is unknown.
3069
3070 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3071
3072         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3073         unsigned extension into account.
3074         (ATOMIC_COMPARE_AND_SWAP): Likewise.
3075         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3076         Do computations on a scratch register.
3077
3078 2008-03-21  Richard Guenther  <rguenther@suse.de>
3079
3080         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3081         Use is_gimple_min_invariant instead of TREE_INVARIANT.
3082         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3083         * tree-ssa-dom.c (record_equality): Likewise.
3084         * tree-inline.c (copy_body_r): Likewise.
3085         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3086         TREE_INVARIANT.
3087
3088 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3089
3090         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3091         as 'delete_unused' argument.
3092
3093 2008-03-20  Richard Guenther  <rguenther@suse.de>
3094
3095         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3096         special casing of constant qualifiers.
3097         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3098         care about them in general.
3099         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3100         regardless of their type.
3101         (fold_stmt_r): Forcefully fold *& if we end up with that.
3102
3103 2008-03-20  Paul Brook  <paul@codesourcery.com>
3104
3105         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3106         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3107         linker flags.
3108         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3109         definition.
3110         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3111         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3112
3113 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
3114
3115         * common.opt (Wmudflap): New option.
3116         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3117         (mx_register_decls): Likewise.
3118         (mudflap_finish_file): Likewise.
3119         * doc/invoke.texi: Document -Wno-mudflap.
3120
3121 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
3122
3123         * c-format.c (replace_format_name_to_system_name): New.
3124         (cmp_attribs): New.
3125         (convert_format_name_to_system_name): New.
3126         (decode_format_attr): Add use of convert_format_name_to_system_name.
3127         (format_types_orig): Add gnu_ prefix to names.
3128         (check_format_info_main): Special treating of \0 escaped names for
3129         supporting multi-character format specifiers as I32, I64.
3130         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3131         (gnu_target_overrides_format_attributes): New.
3132         * c-format.h: Add structure target_ovr_attr to hold
3133         system specific formatter names.
3134         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3135         msformat-c.o file to c_target_objs and cxx_target_objs.
3136         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3137         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3138         (TARGET_N_FORMAT_TYPES): New.
3139         * config/i386/msformat-c.c: New.
3140         * config/i386/t-cygming: Add build rule for msformat-c.o.
3141         * doc/extend.texi: Add new format names gnu_* and ms_* and
3142         further details.
3143         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3144
3145 2008-03-20  Ira Rosen  <irar@il.ibm.com>
3146
3147         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3148         optimizations turned on under -O3.
3149         (ftree-vectorize): Add that the flag is turned on with -O3.
3150
3151 2008-03-20  Ben Elliston  <bje@au.ibm.com>
3152
3153         * regmove.c (try_auto_increment): Fix spelling error in comment.
3154         * final.c (final_scan_insn): Likewise.
3155
3156 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
3157
3158         PR target/14552
3159         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3160         allocator preferences for "y" and "r" class registers.
3161         ("*mov<mode>_internal"): Ditto.
3162         ("*movv2sf_internal_rex64"): Ditto.
3163         ("*movv2sf_internal"): Ditto.
3164
3165 2008-03-19  Michael Matz  <matz@suse.de>
3166
3167         PR middle-end/35616
3168         * calls.c (expand_call): Check overlap of arguments with call
3169         address for sibcalls.
3170
3171 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3172
3173         PR target/35496
3174         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3175         of the underlying type of a MS bitfield layout to the natural
3176         alignment of the type.
3177
3178 2008-03-19  Jan Hubicka  <jh@suse.cz>
3179
3180         PR other/35094
3181         * toplev.c (decode_d_option): Handle all CPP flags.
3182         * tree-vrp.c: Update tree_pass descriptors.
3183         * regrename.c: Update tree_pass descriptors.
3184         * fwprop.c: Update tree_pass descriptors.
3185         * doc/invoke.texi: Remove documentation of dropped -d? flags.
3186         * tree-into-ssa.c: Update tree_pass descriptors.
3187         * tree-dump.c: Update tree_pass descriptors.
3188         * tree-complex.c: Update tree_pass descriptors.
3189         * tree-dump.h: Update tree_pass descriptors.
3190         * see.c: Update tree_pass descriptors.
3191         * cgraphbuild.c: Update tree_pass descriptors.
3192         * tracer.c: Update tree_pass descriptors.
3193         * tree-loop-distribution.c: Update tree_pass descriptors.
3194         * cgraph.c: Update tree_pass descriptors.
3195         * postreload-gcse.c: Update tree_pass descriptors.
3196         * postreload.c: Update tree_pass descriptors.
3197         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3198         * tree-tailcall.c: Update tree_pass descriptors.
3199         * tree-pass.h (tree_opt_pass): Rename to ...
3200         (opt_pass) ... this one; add "type" field and remove letter field.
3201         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3202         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3203         all_lowering_passes): Update declaration.
3204         * ipa-cp.c: Update tree_pass descriptors.
3205         * final.c: Update tree_pass descriptors.
3206         * omp-low.c: Update tree_pass descriptors.
3207         * tree-ssa-dse.c: Update tree_pass descriptors.
3208         * ipa-reference.c: Update tree_pass descriptors.
3209         * tree-ssa-uncprop.c: Update tree_pass descriptors.
3210         * auto-inc-dec.c: Update tree_pass descriptors.
3211         * reorg.c: Update tree_pass descriptors.
3212         * cgraphunit.c: Update tree_pass descriptors.
3213         * tree-ssa-copyrename.c: Update tree_pass descriptors.
3214         * tree-ssa-ccp.c: Update tree_pass descriptors.
3215         * df-core.c: Update tree_pass descriptors.
3216         * mode-switching.c: Update tree_pass descriptors.
3217         * tree-nomudflap.c: Update tree_pass descriptors.
3218         * modulo-sched.c: Update tree_pass descriptors.
3219         * ipa-pure-const.c: Update tree_pass descriptors.
3220         * cse.c: Update tree_pass descriptors.
3221         * web.c: Update tree_pass descriptors.
3222         * tree-stdarg.c: Update tree_pass descriptors.
3223         * tree-ssa-math-opts.c: Update tree_pass descriptors.
3224         * tree-ssa-dom.c: Update tree_pass descriptors.
3225         * tree-nrv.c: Update tree_pass descriptors.
3226         * tree-ssa-alias.c: Update tree_pass descriptors.
3227         * loop-init.c: Update tree_pass descriptors.
3228         * gimple-low.c: Update tree_pass descriptors.
3229         * ipa-inline.c: Update tree_pass descriptors.
3230         * tree-ssa-sink.c: Update tree_pass descriptors.
3231         * global.c: Update tree_pass descriptors.
3232         * ifcvt.c: Update tree_pass descriptors.
3233         * jump.c: Update tree_pass descriptors.
3234         * predict.c: Update tree_pass descriptors.
3235         * tree-ssa-loop.c: Update tree_pass descriptors.
3236         * recog.c: Update tree_pass descriptors.
3237         * dse.c: Update tree_pass descriptors.
3238         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3239         * tree-eh.c: Update tree_pass descriptors.
3240         * regmove.c: Update tree_pass descriptors.
3241         * local-alloc.c
3242         * function.c: Update tree_pass descriptors.
3243         * tree-vectorizer.c: Update tree_pass descriptors.
3244         * gcse.c: Update tree_pass descriptors.
3245         * ipa-type-escape.c: Update tree_pass descriptors.
3246         * tree-if-conv.c: Update tree_pass descriptors.
3247         * init-regs.c: Update tree_pass descriptors.
3248         * ipa.c: Update tree_pass descriptors.
3249         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3250         * rtl-factoring.c: Update tree_pass descriptors.
3251         * lower-subreg.c: Update tree_pass descriptors.
3252         * bt-load.c: Update tree_pass descriptors.
3253         * tree-dfa.c: Update tree_pass descriptors.
3254         * except.c: Update tree_pass descriptors.
3255         * emit-rtl.c: Update tree_pass descriptors.
3256         * cfgexpand.c: Update tree_pass descriptors.
3257         * tree-cfgcleanup.c: Update tree_pass descriptors.
3258         * cfgcleanup.c: Update tree_pass descriptors.
3259         * tree-ssa-pre.c: Update tree_pass descriptors.
3260         * tree-sra.c: Update tree_pass descriptors.
3261         * tree-mudflap.c: Update tree_pass descriptors.
3262         * tree-ssa-copy.c: Update tree_pass descriptors.
3263         * cfglayout.c: Update tree_pass descriptors.
3264         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3265         * tree-ssa-dce.c: Update tree_pass descriptors.
3266         * tree-ssa.c: Update tree_pass descriptors.
3267         * regclass.c: Update tree_pass descriptors.
3268         * integrate.c: Update tree_pass descriptors.
3269         * tree-optimize.c: Update tree_pass descriptors.
3270         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3271         * tree-object-size.c: Update tree_pass descriptors.
3272         * combine.c: Update tree_pass descriptors.
3273         * tree-outof-ssa.c: Update tree_pass descriptors.
3274         * bb-reorder.c: Update tree_pass descriptors.
3275         * stack-ptr-mod.c: Update tree_pass descriptors.
3276         * var-tracking.c: Update tree_pass descriptors.
3277         * tree-profile.c: Update tree_pass descriptors.
3278         * tree-vect-generic.c: Update tree_pass descriptors.
3279         * reg-stack.c: Update tree_pass descriptors.
3280         * sched-rgn.c: Update tree_pass descriptors.
3281         * tree-ssa-structalias.c: Update tree_pass descriptors.
3282         * tree-cfg.c: Update tree_pass descriptors.
3283         * passes.c (current_pass): Update declaration.
3284         (finish_optimization_passes): Update.
3285         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3286         (register_one_dump_file, register_dump_files_1, next_pass_1):
3287         Update arguments.
3288         (init_optimization_passes): Update handling of new types.
3289         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3290         * ipa-struct-reorg.c: Update tree_pass descriptors.
3291         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3292         * combine-stack-adj.c: Update tree_pass descriptors.
3293         * cfgrtl.c: Update tree_pass descriptors.
3294         * dce.c: Update tree_pass descriptors.
3295         * tree-ssanames.c: Update tree_pass descriptors.
3296
3297 2008-03-19  Richard Guenther  <rguenther@suse.de>
3298
3299         PR middle-end/35609
3300         * tree-ssa.c (walk_data): New structure.
3301         (warn_uninitialized_var): If not always_executed warn with "maybe"
3302         instead of "is".
3303         (execute_early_warn_uninitialized): Compute post-dominators.
3304         Initialize always_executed before processing each basic block.
3305
3306 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3307
3308         PR target/35504
3309         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3310         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3311
3312 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3313
3314         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3315
3316 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3317
3318         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3319         is true.
3320         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3321         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3322         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3323         target after ignore has been set, and move there also the commputation
3324         of subtarget and original_target.
3325         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3326         (LANG_HOOKS_INITIALIZER): Remove it.
3327         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3328
3329 2008-03-18  Richard Guenther  <rguenther@suse.de>
3330
3331         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3332         found an expression with constants, note that in the VN for the lhs.
3333         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3334         fold them to constants if possible.  Run cleanup_cfg if done so.
3335         (execute_pre): Return todo.
3336         (do_pre): Likewise.
3337         (execute_fre): Likewise.
3338         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3339         of constants.
3340         (get_prop_source_stmt): Look through pointer conversions.
3341
3342 2008-03-18  Jan Hubicka  <jh@suse.cz>
3343
3344         * tree-pretty-print.c: Include predict.h.
3345         (dump_generic_node): Dump predictor.
3346         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3347         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3348         * gimple-low.c (lower_stmt): Likewise.
3349         * expr.c (expand_expr_real): Likewise.
3350         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3351         them.
3352         (build_predict_expr, build_predict_expr): New.
3353         * predict.h (predictor_name, build_predict_expr): Update.
3354         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3355         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3356         * predict.def (PRED_CONTINUE): Update hitrate.
3357         * tree.def (PREDICT_EXPR): Define.
3358         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3359         do not handle BIND_EXPR.
3360         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3361         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3362         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3363         operands.
3364
3365 2008-03-18  Michael Matz  <matz@suse.de>
3366
3367         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3368
3369 2008-03-18  Richard Guenther  <rguenther@suse.de>
3370
3371         * tree-gimple.h (is_gimple_invariant_address): Declare.
3372         (is_gimple_constant): Likewise.
3373         * tree-gimple.c (is_gimple_constant): New function.
3374         (is_gimple_invariant_address): Likewise.
3375         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3376         and is_gimple_invariant_address.
3377         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3378         previous change.
3379         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3380         an addressable base.
3381
3382 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR middle-end/35611
3385         * gimplify.c (gimplify_expr): Gimplify second operand of
3386         OMP_ATOMIC_LOAD.
3387
3388 2008-03-17  Richard Guenther  <rguenther@suse.de>
3389
3390         PR tree-optimization/19637
3391         * fold-const.c (fold_unary): Remove restrictions of removing
3392         intermediate pointer-conversions (P2)(P1)P0.
3393         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3394         conversion to void pointer.
3395         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3396
3397 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3398
3399         PR debug/31510
3400         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3401         emulated thread local variables.
3402
3403 2008-03-16  Richard Guenther  <rguenther@suse.de>
3404
3405         PR middle-end/35607
3406     &