OSDN Git Service

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