OSDN Git Service

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