OSDN Git Service

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