OSDN Git Service

PR c/35652
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-26  Simon Baldwin <simonb@google.com>
2
3         PR c/35652
4         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
5         with propagated string constants.
6
7 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8
9         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
10         constraint for operand 2 when operand 0 is memory operand.
11         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
12         operand 0 is memory operand.
13         (fix_trunc<mode>_i387_with_temp): Ditto.
14         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
15         operand 2 when operand 1 is memory operand.
16         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
17         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
18         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
19         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
20         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
21         operands 2,3 and 4 when operand 1 is memory operand.
22         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
23         is memory operand.
24         (fistdi2_floor_with_temp): Ditto.
25         (fist<mode>2_floor_with_temp): Ditto.
26         (fistdi2_ceil_with_temp): Ditto.
27         (fist<mode>2_ceil_with_temp): Ditto.
28         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
29
30 2008-04-26  David Daney  <ddaney@avtrex.com>
31
32         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
33         unspec_volitile.
34         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
35         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
36         UNSPEC_UPDATE_GOT_VERSION): Renumber.
37         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
38         (compare_and_swap_12): New insn.
39         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
40         * config/mips/mips.c (mips_force_binary): New function.
41         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
42         (mips_expand_compare_and_swap_12): New function.
43         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
44
45 2008-04-25  Jan Hubicka  <jh@suse.cz>
46
47         PR testsuite/35843
48         * cfgexpand.c (pass_expand): Turn into RTL pass.
49         * passes.c (execute_one_pass): Do pass typechecking after execution.
50         * tree-pass.h (pass_expand): Turn into RTL pass.
51
52         * function.h (struct rtl_data): Move here fields
53         accesses_prior_frames, calls_eh_return, saves_all_registers,
54         has_nonlocal_goto, has_asm_statement, is_thunk,
55         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
56         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
57         arg_pointer_save_area_init from struct function; turn into bool.
58         (struct function): Move
59         calls_eh_return, saves_all_registers, has_nonlocal_goto,
60         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
61         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
62         tail_call_emit, arg_pointer_save_area_init
63         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
64         (current_function_returns_struct, current_function_returns_pcc_struct,
65         current_function_calls_setjmp, current_function_calls_alloca,
66         current_function_accesses_prior_frames,
67         current_function_calls_eh_return, current_function_is_thunk,
68         current_function_stdarg, current_function_profile,
69         current_function_limit_stack, current_function_uses_pic_offset_table,
70         current_function_uses_const_pool, current_function_has_nonlocal_label,
71         current_function_saves_all_registers,
72         current_function_has_nonlocal_goto,
73         current_function_has_asm_statement): Remove accesor macros.
74         * ra-conflict.c (global_conflicts): Update.
75         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
76         (suitable_for_tail_call_opt_p): Update.
77         * builtins.c (expand_builtin_return_addr): Update.
78         (expand_builtin_setjmp_setup): Update.
79         (expand_builtin_nonlocal_goto): Update.
80         * final.c (final_start_function): Update.
81         (profile_function): Update.
82         (leaf_function_p): Update.
83         (only_leaf_regs_used): Update.
84         * df-scan.c (df_get_exit_block_use_set): Update.
85         * dojump.c (clear_pending_stack_adjust): Update.
86         * tree-stdarg.c (gate_optimize_stdarg): Update.
87         * gimple-low.c (lower_function_body): Update.
88         * global.c (compute_regsets): Update.
89         (global_alloc): Update.
90         * dwarf2out.c (dwarf2out_begin_prologue): Update.
91         * expr.c (expand_assignment): Update.
92         * dse.c (dse_step0): Update.
93         (dse_step1): Update.
94         * c-decl.c (store_parm_decls): Update.
95         * local-alloc.c (combine_regs): Update.
96         (find_free_reg): Update.
97         * function.c (assign_parms_augmented_arg_list): Update.
98         (assign_parm_find_data_types): Update.
99         (assign_parms): Update.
100         (allocate_struct_function): Update.
101         (expand_function_start): Update.
102         (expand_function_end): Update.
103         (get_arg_pointer_save_area): Update.
104         (thread_prologue_and_epilogue_insns): Update.
105         (rest_of_match_asm_constraints): Update.
106         * stor-layout.c (variable_size): Update.
107         * gcse.c (gcse_main): Update.
108         (bypass_jumps): Update.
109         * gimplify.c (gimplify_function_tree): Update.
110         * calls.c (emit_call_1): Update.
111         (expand_call): Update.
112         * bt-load.c (compute_defs_uses_and_gen): Update.
113         * except.c (sjlj_assign_call_site_values): Update.
114         (sjlj_emit_function_enter): Update.
115         (can_throw_external): Update.
116         (set_nothrow_function_flags): Update.
117         (expand_builtin_unwind_init): Update.
118         (expand_eh_return): Update.
119         (convert_to_eh_region_ranges): Update.
120         (output_function_exception_table): Update.
121         * emit-rtl.c (gen_tmp_stack_mem): Update.
122         * cfgexpand.c (expand_used_vars): Update.
123         (tree_expand_cfg): Update.
124         * cfgcleanup.c (rest_of_handle_jump): Update.
125         * explow.c (allocate_dynamic_stack_space): Update.
126         * varasm.c (assemble_start_function): Update.
127         (force_const_mem): Update.
128         (mark_constant_pool): Update.
129         * tree-optimize.c (tree_rest_of_compilation): Update.
130         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
131         * tree-cfg.c (notice_special_calls): Update.
132         (is_ctrl_altering_stmt): Update.
133         (tree_can_make_abnormal_goto): Update.
134         (tree_purge_dead_abnormal_call_edges): Update.
135         * config/alpha/predicates.md: Update.
136         * config/alpha/alpha.c (alpha_sa_mask): Update.
137         (alpha_sa_size): Update.
138         (alpha_does_function_need_gp): Update.
139         (alpha_expand_prologue): Update.
140         (alpha_start_function): Update.
141         (alpha_output_function_end_prologue): Update.
142         (alpha_expand_epilogue): Update.
143         * config/frv/frv.c (frv_stack_info): Update.
144         (frv_expand_epilogue): Update.
145         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
146         (s390_register_info): Update.
147         (s390_frame_info): Update.
148         (s390_init_frame_layout): Update.
149         (s390_can_eliminate): Update.
150         (save_gprs): Update.
151         * config/spu/spu.c (spu_split_immediate): Update.
152         (need_to_save_reg): Update.
153         (spu_expand_prologue): Update.
154         (spu_expand_epilogue): Update.
155         * config/sparc/sparc.md: Update.
156         * config/sparc/sparc.c (eligible_for_return_delay): Update.
157         (sparc_tls_got): Update.
158         (legitimize_pic_address): Update.
159         (sparc_emit_call_insn): Update.
160         (sparc_expand_prologue): Update.
161         (output_return): Update.
162         (print_operand): Update.
163         (sparc_function_ok_for_sibcall): Update.
164         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
165         * config/m32r/m32r.md: Update.
166         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
167         (m32r_compute_frame_size): Update.
168         (m32r_expand_prologue): Update.
169         (m32r_expand_epilogue): Update.
170         (m32r_legitimize_pic_address): Update.
171         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
172         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
173         * config/i386/i386.c (ix86_frame_pointer_required): Update.
174         (gen_push): Update.
175         (ix86_save_reg): Update.
176         (ix86_compute_frame_layout): Update.
177         (ix86_expand_prologue): Update.
178         (ix86_expand_epilogue): Update.
179         * config/sh/sh.c (output_stack_adjust): Update.
180         (calc_live_regs): Update.
181         (sh5_schedule_saves): Update.
182         (sh_expand_prologue): Update.
183         (sh_expand_epilogue): Update.
184         (sh_setup_incoming_varargs): Update.
185         (sh_allocate_initial_value): Update.
186         (sh_get_pr_initial_val): Update.
187         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
188         * config/sh/sh.md (label:): Update.
189         * config/avr/avr.c (out_movhi_mr_r): Update.
190         * config/crx/crx.h (enum): Update.
191         * config/xtensa/xtensa.h (along): Update.
192         * config/stormy16/stormy16.c Update.
193         (xstormy16_compute_stack_layout): Update.
194         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
195         (fr30_expand_prologue): Update.
196         * config/cris/cris.c (cris_conditional_register_usage): Update.
197         (cris_reg_saved_in_regsave_area): Update.
198         (cris_initial_frame_pointer_offset): Update.
199         (cris_simple_epilogue): Update.
200         (cris_expand_prologue): Update.
201         (cris_expand_epilogue): Update.
202         (cris_expand_pic_call_address): Update.
203         (cris_asm_output_symbol_ref): Update.
204         (cris_asm_output_label_ref): Update.
205         * config/cris/cris.md Update.
206         * config/iq2000/iq2000.c (compute_frame_size): Update.
207         (iq2000_expand_epilogue): Update.
208         * config/mt/mt.h (save_direction): Update.
209         * config/mn10300/mn10300.c (mn10300_function_value): Update.
210         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
211         (ia64_secondary_reload_class): Update.
212         * config/m68k/m68k.c (m68k_save_reg): Update.
213         (m68k_expand_prologue): Update.
214         (m68k_expand_epilogue): Update.
215         (legitimize_pic_address): Update.
216         * config/rs6000/rs6000.c (rs6000_got_register): Update.
217         (first_reg_to_save): Update.
218         (first_altivec_reg_to_save): Update.
219         (compute_vrsave_mask): Update.
220         (compute_save_world_info): Update.
221         (rs6000_stack_info): Update.
222         (spe_func_has_64bit_regs_p): Update.
223         (rs6000_ra_ever_killed): Update.
224         (rs6000_emit_eh_reg_restore): Update.
225         (rs6000_emit_allocate_stack): Update.
226         (rs6000_emit_prologue): Update.
227         (rs6000_emit_epilogue): Update.
228         (rs6000_output_function_epilogue): Update.
229         (output_profile_hook): Update.
230         (rs6000_elf_declare_function_name): Update.
231         * config/rs6000/rs6000.h (rs6000_args): Update.
232         * config/rs6000/rs6000.md: Update.
233         * config/mcore/mcore.c (mcore_expand_prolog): Update.
234         * config/arc/arc.c (arc_output_function_epilogue): Update.
235         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
236         * config/darwin.c (machopic_function_base_name): Update.
237         * config/score/score3.c (score3_compute_frame_size): Update.
238         (rpush): Update.
239         (rpop): Update.
240         (score3_epilogue): Update.
241         * config/score/score7.c (score7_compute_frame_size): Update.
242         (score7_prologue): Update.
243         (score7_epilogue): Update.
244         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
245         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
246         * config/arm/arm.c (use_return_insn): Update.
247         (require_pic_register): Update.
248         (arm_load_pic_register): Update.
249         (arm_compute_save_reg0_reg12_mask): Update.
250         (arm_compute_save_reg_mask): Update.
251         (thumb1_compute_save_reg_mask): Update.
252         (output_return_instruction): Update.
253         (arm_output_function_prologue): Update.
254         (arm_output_epilogue): Update.
255         (arm_get_frame_offsets): Update.
256         (arm_expand_prologue): Update.
257         (thumb_pushpop): Update.
258         (thumb_exit): Update.
259         (thumb1_expand_prologue): Update.
260         (thumb1_expand_epilogue): Update.
261         (arm_unwind_emit): Update.
262         (arm_output_fn_unwind): Update.
263         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
264         * config/arm/arm.md: Update.
265         * config/pa/pa.md: Update.
266         * config/pa/pa.c (legitimize_pic_address): Update.
267         (compute_frame_size): Update.
268         (hppa_expand_prologue): Update.
269         (hppa_expand_epilogue): Update.
270         (borx_reg_operand): Update.
271         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
272         (HARD_REGNO_RENAME_OK): Update.
273         * config/mips/mips.c (mips_global_pointer): Update.
274         (mips_save_reg_p): Update.
275         (mips_compute_frame_info): Update.
276         (mips_frame_pointer_required): Update.
277         (mips_expand_prologue): Update.
278         (mips_expand_epilogue): Update.
279         (mips_can_use_return_insn): Update.
280         (mips_reorg_process_insns): Update.
281         * config/v850/v850.c (compute_register_save_size): Update.
282         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
283         * config/mmix/mmix.c (along): Update.
284         (mmix_expand_epilogue): Update.
285         * config/bfin/bfin.c (legitimize_pic_address): Update.
286         (must_save_p): Update.
287         (stack_frame_needed_p): Update.
288         (add_to_reg): Update.
289         (bfin_expand_prologue): Update.
290         * stmt.c (expand_asm_operands): Update.
291         * reload1.c (reload): Update.
292         (init_elim_table): Update.
293
294 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
295         
296         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
297         
298 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
299
300         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with
301         SSEMODE.
302         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
303         (mov<mode>): Removed.
304         (*movv4sf_internal): Likewise.
305         (*movv2df_internal): Likewise.
306
307 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
308
309         * config.gcc (crx-*-elf): Remove deprecation.
310
311 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
312
313         * config/i386/cygming-crtend.c (register_frame_ctor): Register
314         __gcc_deregister_frame with atexit.
315         (deregister_frame_dtor): Remove.
316
317 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
318             Nathan Sidwell  <nathan@codesourcery.com>
319
320         * config/rs6000/rs6000.opt (mspe): Remove Var property.
321         (misel): Likewise.
322         * config/rs6000/rs6000.h (rs6000_spe): Declare.
323         (rs6000_isel): Likewise.
324         * config/rs6000/rs6000.c (rs6000_spe): New variable.
325         (rs6000_isel): New variable.
326         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
327
328 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
329
330         PR c++/35758
331         * c-common.c (handle_vector_size_attribute): Call
332         lang_hooks.types.reconstruct_complex_type instead of
333         reconstruct_complex_type.
334         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
335         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
336         * langhooks.h (struct lang_hooks_for_types): Add
337         reconstruct_complex_type hook.
338         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
339         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
340
341 2008-04-24  Richard Guenther  <rguenther@suse.de>
342
343         * c-common.h (check_builtin_function_arguments): Declare.
344         * c-common.c (validate_nargs): New function.
345         (check_builtin_function_arguments): Likewise.
346         * c-typeck.c (build_function_call): Call
347         check_builtin_function_arguments.
348         * builtins.c (fold_builtin_classify): Remove error reporting code.
349         (fold_builtin_unordered_cmp): Likewise.
350         (fold_builtin_1): Likewise.
351         (fold_builtin_n): Likewise.
352
353 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
354
355         PR tree-optimization/36008
356         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
357         the original op1, rather than delta by step.
358
359 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
360             Sebastian Pop  <sebastian.pop@amd.com>
361
362         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
363         eliminate_local_variables_stmt, eliminate_local_variables,
364         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
365         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
366         of code delimited by two edges in the CFG.
367         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
368         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
369         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
370         the case of parallelisation of reductions.
371         (expr_invariant_in_region_p): New.
372
373         * tree-flow.h (gather_blocks_in_sese_region): Declared.
374         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
375
376 2008-04-24  Ira Rosen  <irar@il.ibm.com>
377             Richard Guenther  <rguenther@suse.de>
378
379         PR tree-optimization/36034
380         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
381         incapable of dealing with loads with gaps.
382
383 2008-04-24  Rafael Espindola  <espindola@google.com>
384
385         * tree-flow.h (vrp_evaluate_conditional): Change signature.
386         * tree-ssa-propagate.c (fold_predicate_in): Update call to
387         vrp_evaluate_conditional.
388         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
389         (vrp_evaluate_conditional): Split the cond argument.
390         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
391         (simplify_stmt_for_jump_threading): Update call to
392         vrp_evaluate_conditional.
393
394 2008-04-24  Ira Rosen  <irar@il.ibm.com>
395
396         PR tree-optimization/35982
397         * tree-vect-analyze.c (vect_check_interleaving): Check that the
398         interleaved data-refs are of the same type.
399
400 2008-04-24  Danny Smith  <dannysmith@users.net>
401
402         * c-format.c (check_format_info_main): Use strncmp rather than a
403         magic prefix to handle multichar length specs.
404         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
405         Don't prefix "I64" and "I32" with '\0'.
406
407 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
408
409         PR target/36015
410         * config/i386/i386.c (init_cumulative_args): Don't pass anything
411         in registers for -m32 only if stdarg_p (fntype).
412
413 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
414
415         PR rtl-optimization/36006
416         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
417         temp to op0 in order to avoid invalid rtx sharing.
418
419 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
420
421         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
422         check TREE_INVARIANT.
423         * tree-gimple.c (is_gimple_address): New.
424         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
425         * tree-gimple.h (is_gimple_address): New.
426         * tree.h (decl_address_invariant_p): New.
427         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
428         (build_string): Likewise.
429         (decl_address_invariant_p): New, from is_gimple_invariant_address.
430         (tree_invariant_p_1): Likewise.
431         (save_expr): Use it.
432         (tree_invariant_p): New.
433         (skip_simple_arithmetic): Use it.
434         (stabilize_reference_1): Use it.
435         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
436         simplify.
437         (build1_stat): Drop code to compute TREE_INVARIANT.
438         (build2_stat): Drop code to compute TREE_INVARIANT.
439         (build3_stat): Drop code to compute TREE_INVARIANT.
440         (build4_stat): Drop code to compute TREE_INVARIANT.
441         (build5_stat): Drop code to compute TREE_INVARIANT.
442         (build7_stat): Drop code to compute TREE_INVARIANT.
443         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
444         * tree.h (struct tree_base): Remove invariant_flag.
445         (TREE_INVARIANT): Remove.
446         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
447         (fold_builtin_expect): Check TREE_CONSTANT.
448         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
449         * c-tree.h (c_expr_to_decl): Drop third parameter.
450         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
451         (build_c_cast): Don't set TREE_INVARIANT.
452         (pop_init_level): Don't set TREE_INVARIANT.
453         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
454         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
455         TREE_CONSTANT.
456         (gimplify_init_constructor): Don't set TREE_INVARIANT.
457         (gimplify_addr_expr): Adjust comment.
458         * tree-mudflap.c (mf_build_string):
459         * print-tree.c (print_node): Don't print TREE_INVARIANT.
460         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
461         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
462         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
463         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
464         * langhooks.h (struct lang_hooks): Drop third parameter from
465         expr_to_decl.
466
467 2008-04-23  Richard Guenther  <rguenther@suse.de>
468
469         PR tree-optimization/27799
470         PR tree-optimization/32921
471         PR tree-optimization/32624
472         * tree-ssa-structalias.c (merge_smts_into): Only merge the
473         SMTs aliases and the tag itself into the solution.
474         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
475         merge the points-to solution back into the SMT aliases.
476         (may_alias_p): Use alias_set_subset_of instead of
477         aliases_conflict_p.  A pointer which points to
478         memory with alias set zero may access any variable.
479
480 2008-04-23  Richard Guenther  <rguenther@suse.de>
481
482         * alias.c (alias_set_subset_of): Correctly handle asking
483         if zero is a subset of an alias set with zero child.
484         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
485         (compute_flow_insensitive_aliasing): Correctly walk all
486         pointers.  Do not unnecessarily union sets.
487
488 2008-04-23  Richard Guenther  <rguenther@suse.de>
489
490         PR middle-end/36021
491         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
492
493 2008-04-22  Tomas Bily  <tbily@suse.cz>
494
495         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
496         unreachable case.
497         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
498         NON_LVALUE_EXPR.
499         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
500         * tree-ssa-structalias.c (get_constraint_for): Likewise.
501         * tree-inline.c (estimate_num_insns_1): Likewise.
502         * varasm.c (const_hash_1, compare_constant, copy_constant)
503         (compute_reloc_for_constant, output_addressed_constants): Likewise.
504         * emit-rtl.c (component_ref_for_mem_expr)
505         (set_mem_attributes_minus_bitpos): Likewise.
506         * expr.c (highest_pow2_factor, expand_expr_real_1, )
507         (is_aligning_offset): Likewise.
508         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
509         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
510         * dojump.c (do_jump): Likewise.
511         * builtins.c (get_pointer_alignment, get_memory_rtx)
512         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
513         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
514
515 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
516
517         PR rtl-optimization/36017
518         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
519         expanding the library call.
520
521 2008-04-22  Ian Lance Taylor  <iant@google.com>
522
523         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
524         than size_in_bytes.
525
526 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
527
528         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
529         of LR/CTR moves for Power6.
530
531 2008-04-22  Kenneth Zadeck <zadeck@naturalbridge.com>
532
533         PR middle-end/36003
534         * passes.c (init_optimization_passes): Remove
535         pass_fast_rtl_byte_dce.
536         
537 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
538
539         PR target/29096
540         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
541         builtin functions to generate faster code.
542         (_mm_cvtpu16_ps): Ditto.
543         (_mm_cvtpi32x2_ps): Ditto.
544
545 2008-04-22  Nick Clifton  <nickc@redhat.com>
546
547         * common.opt (ftree-loop-distribution): Add Optimization
548         attribute.
549
550         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
551         (frv_expand_builtin_va_start): Likewise.
552
553         * config/arm/arm.c (thumb_find_work_register): Fix location of
554         argument register count.
555
556 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
557
558         Support scheduling for ColdFire V1 and V3 microarchitecture.
559         Improve scheduling of multiplication instructions.
560
561         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
562         (mac): New instruction attribute.
563         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
564         (m68k_sched_mac): New variable.
565         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
566         Handle cfv1 and cfv3.
567         (max_insn_size): New static variable.
568         (struct _sched_ib): New type.
569         (sched_ib): New static variable.
570         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
571         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
572         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
573         Update.
574         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
575         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
576         new variables.  Update.
577         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
578         Add modeling of cfv3 instruction buffer.  Update.
579         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
580         * config/m68k/m68k.h (TUNE_CFV3): New macro.
581         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
582         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
583         a particular reservation applies to.
584         (type2): Reorganize attribute values.  Rename alu to alu_reg,
585         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
586         to mul_l and mul_w.
587         (cf_ib_*): Simplify description of instruction buffer.
588         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
589         (cf_mem): Split into cf_mem1 and cf_mem2.
590         (cf_v2_move_??): Rename to cfv12_alu_??.
591         (cf_v2_move_l_??): Rename to cfv12_omove_??.
592         (cf_v2_mul_??): Remove reservations.
593         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
594         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
595         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
596         appropriate place.
597         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
598         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
599         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
600         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
601         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
602         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
603         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
604         expansions of the above reservations for instructions of sizes
605         1, 2 and 3 words.
606
607 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
608
609         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
610
611 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
612
613         * coverage.c: Include tree-pass.h.
614         (coverage_counter_alloc): Print da_file_name to the dump file.
615
616 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
617
618         * sbitmap.c (sbitmap_range_empty_p): New function.
619         * sbitmap.h (sbitmap_range_empty_p): New function.
620         * bitmap.h: Now includes obstack.h.
621
622 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
623             Kenneth Zadeck <zadeck@naturalbridge.com>
624
625         * dbgcnt.def (ra_byte_scan): Added.
626         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
627         when the last hit happens for a counter.  
628         * timevar.def (TV_DF_BYTE_LR): New variable.
629         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
630         * passes.c (pass_fast_rtl_byte_dce): New pass.
631         * fwprop.c (update_df): Added mode to call df_ref_create.
632         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
633         DF_REF_EXTRACT_OFFSET.
634         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
635         DF_BYTE_LR_OUT, df_byte_lr): New macro.
636         (df_mm): New enum.
637         (df_ref_extract): Added mode field.
638         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
639         DF_REF_EXTRACT_OFFSET.
640         (DF_REF_EXTRACT_MODE): New macro.
641         (df_byte_lr_bb_info): New structure.
642         (df_print_byte_regset, df_compute_accessed_bytes, 
643         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
644         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
645         df_byte_lr_simulate_uses,
646         df_byte_lr_simulate_artificial_refs_at_top,
647         df_byte_lr_simulate_artificial_refs_at_end,
648         df_compute_accessed_bytes): New function.
649         (df_ref_create): Add parameter.
650         (df_byte_lr_get_bb_info): New inline function.
651         * df-scan.c (df_ref_record, df_uses_record,
652         df_ref_create_structure): Added mode parameter.
653         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
654         df_defs_record, df_uses_record, df_get_conditional_uses,
655         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
656         df_entry_block_defs_collect, df_exit_block_uses_collect):
657         Added mode parameter to calls to df_ref_record, df_uses_record,
658         df_ref_create_structure.
659         (df_ref_equal_p, df_ref_compare): Added test for modes.
660         (df_ref_create_structure): Added code to set mode.  Renamed
661         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
662         DF_REF_EXTRACT_OFFSET.
663         * df-core.c (df_print_byte_regset): New function.
664         * df-byte-scan.c: New file.
665         * df-problems.c (df_rd_transfer_function): Removed unnecessary
666         calls to BITMAP_FREE.  
667         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
668         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
669         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
670         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
671         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
672         df_byte_lr_local_compute, df_byte_lr_init,
673         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
674         df_byte_lr_transfer_function, df_byte_lr_free, 
675         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
676         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
677         df_byte_lr_simulate_uses,
678         df_byte_lr_simulate_artificial_refs_at_top,
679         df_byte_lr_simulate_artificial_refs_at_end): New function.
680         * dce.c (byte_dce_process_block): New function.
681         (dce_process_block): au is now passed in rather than computed
682         locally.  Changed loops that look at artificial defs to not look
683         for conditional or partial ones, because there never are any.  
684         (fast_dce): Now is able to drive byte_dce_process_block or 
685         dce_process_block depending on the kind of dce being done.
686         (rest_of_handle_fast_dce): Add parameter to fast_dce.
687         (rest_of_handle_fast_byte_dce): New function.
688         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
689         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
690
691 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
692
693         PR fortran/35019
694         * gcc.h: Added fortran options that take arguments to
695         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
696         macros.
697
698 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
699
700         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
701         scalarization if on the LHS and not a full access.
702
703 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
704
705         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
706
707 2008-04-18  Rafael Espindola  <espindola@google.com>
708
709         * tree-vrp.c (find_case_label_index): Fix the binary search.
710         (find_case_label_range): New.
711         (vrp_visit_switch_stmt): Use find_case_label_range.
712         (simplify_switch_using_ranges): Use find_case_label_range.
713
714 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
715
716         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
717         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
718
719 2008-04-18  Tom Tromey  <tromey@redhat.com>
720
721         PR libcpp/15500:
722         * doc/cpp.texi (Implementation-defined behavior): Mention
723         -finput-charset.
724
725 2008-04-18  Ian Lance Taylor  <iant@google.com>
726
727         * fold-const.c (pointer_may_wrap_p): New static function.
728         (fold_comparison): Add another test for pointer overflow.  Use
729         pointer_may_wrap_p to disable some false positives.
730
731 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
732           
733         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
734         (fname_as_string): Match updated cpp_interpret_string prototype.
735         (fix_string_type): Support char16_t* and char32_t*.
736         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
737         derivative) nodes.  Register as builtin if C++0x.
738         (c_parse_error): Support CPP_CHAR{16,32}.
739         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
740         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
741         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
742         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
743         CTI_CHAR32_ARRAY_TYPE>: New elements.
744         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
745         char32_type_node, signed_char32_type_node, char16_array_type_node,
746         char32_array_type_node): New defines.
747         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
748         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
749         (lex_string): Support CPP_STRING{16,32}, match updated
750         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
751         (lex_charconst): Support CPP_CHAR{16,32}.
752         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
753         and CPP_STRING{16,32}.
754
755 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
756
757         PR bootstrap/35457
758         * aclocal.m4: Regenerate.
759         * configure: Regenerate.
760
761 2008-04-18  Jan Hubicka  <jh@suse.cz>
762
763         * except.c (dw2_size_of_call_site_table,
764         sjlj_size_of_call_site_table): Use vector API for call_site_record.
765
766         * cgraphbuild.c (build_cgraph_edges): Update.
767         * tree-pass.h: Update comment.
768         * final.c (leaf_function_p): Update.
769         (leaf_renumber_regs): Update.
770         (rest_of_clean_state): Update.
771         * omp-low.c (expand_omp_parallel): Update.
772         * ipa-reference.c (analyze_function): Update.
773         * reorg.c (find_end_label): Update.
774         (optimize_skip): Update.
775         (fill_simple_delay_slots): Update.
776         (fill_simple_delay_slots): Update.
777         (make_return_insns): Update.
778         (dbr_schedule): Update.
779         * gimple-low.c (record_vars_into): Update.
780         * cfgbuild.c (make_edges): Update.
781         * function.c (assign_stack_local): Update.
782         (assign_parm_adjust_stack_rtl): Update.
783         (locate_and_pad_parm): Update.
784         (allocate_struct_function): Do not initialize stack_alignment_needed
785         and preferred_stack_boundary here.
786         (stack_protect_prologue): Update.
787         (stack_protect_epilogue): Update.
788         (expand_function_start): Initialize stack_alignment_needed,
789         preferred_stack_boundary and max_jumptable_ents.
790         (expand_function_end): Update.
791         (free_after_compilation): Do not NULLify epilogue_delay_list.
792         * function.h (struct rtl_data): Add stack_protect_guard,
793         stack_alignment_needed,
794         preferred_stack_boundary, epilogue_delay_list.
795         (struct function): Remove value_histograms, stack_alignment_needed,
796         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
797         last_label_uid,
798         unexpanded_var_list, stack_protect_guard.
799         (current_function_epilogue_delay_list): Remove.
800         * ipa-type-escape.c (analyze_function): Update.
801         * gimplify.c (pop_gimplify_context): Update comment.
802         * calls.c (expand_call): Update.
803         (emit_library_call_value_1): Update.
804         * except.c (set_nothrow_function_flags): Update.
805         * cfgexpand.c (get_decl_align_unit): Update.
806         (create_stack_guard): Update.
807         (estimated_stack_frame_size): Update.
808         (expand_used_vars): Update.
809         (tree_expand_cfg): Free histogram earliers, init expansion variables.
810         * explow.c (allocate_dynamic_stack_space): Update.
811         * tree-ssa-live.c (remove_unused_locals): Update.
812         * varasm.c (mark_constant_pool): Update.
813         * tree-inline.c (remap_decls): Update.
814         (initialize_cfun): Update.
815         (declare_return_variable): Update.
816         (inline_forbidden_p): Update.
817         (expand_call_inline): Update.
818         (declare_inline_vars): Update.
819         (tree_function_versioning): Update.
820         * tree-flow.h (value_histograms): New.
821         (VALUE_HISTOGRAMS): New macro.
822         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
823         last_label_uid.
824         * tree-cfg.c (set_bb_for_stmt): Update.
825         (replace_by_duplicate_decl): Update.
826         (move_block_to_fn): Update.
827         (new_label_mapper): Update.
828         (dump_function_to_file): Update.
829         * ipa-struct-reorg.c (build_data_structure): Update.
830         * cfgrtl.c (print_rtl_with_bb): Update.
831         * reload1.c (reload): Update.
832         (reload): Update.
833         * config/i386/i386.c (setup_incoming_varargs_64,
834         ix86_compute_frame_layout): Update.
835         * config/arc/arc.c (arc_output_function_epilogue): Update.
836
837 2008-04-18  Marius Strobl <marius@FreeBSD.org>
838
839         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
840         for FreeBSD as well.
841         * gthr-posix95.h: Likewise.
842
843 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
844
845         PR rtl-optimization/35838
846         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
847         out the byte offset of the first subreg.
848
849 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
850
851         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
852         to split_ti instead of three separate calls with single member arrays.
853         (subti3 splitter): Ditto.
854         (adddi3 splitter): Ditto with split_di.
855         (subdi3 splitter): Ditto.
856         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
857         two separate calls with single member arrays.  Swap match_dup
858         operands 1 and 2 to better fit into the array.
859         (negdi2 splitter): Ditto with split_di.
860         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
861         two separate calls with single member arrays.  Swap match_dup operands
862         6 and 7 to better fit into the array.
863
864 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
865
866         * config/i386/i386.c (sse_builtin_type): New.
867         (bdesc_sse_args): Likewise.
868         (bdesc_sse_3arg): Removed.
869         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
870         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
871         IX86_BUILTIN_ROUNDPS.
872         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
873         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
874         IX86_BUILTIN_ROUNDPS.
875         (ix86_expand_sse_4_operands_builtin): Removed.
876         (ix86_expand_sse_operands_builtin): New.
877         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
878         and CODE_FOR_sse4_1_roundps.
879         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
880         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
881
882 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
883
884         PR target/35907
885         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
886         regs before frame pop when needed.  If use_backchain_to_restore_sp
887         then load backchain into a temp reg to restore vr and vrsave.  Add
888         code to restore vr after frame pop if possible.
889
890 2008-04-17  Richard Guenther  <rguenther@suse.de>
891
892         * tree-vn.c (expressions_equal_p): Do not check type
893         equality or compatibility before calling operand_equal_p.
894         * fold-const.c (operand_equal_p): Check equivalence of
895         integer constants before bailing out due to signedness or
896         precision differences.
897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
898         spurious differences in type qualification.  Ignore types
899         for COMPONENT_REFs at all.
900
901 2008-04-17  Christian Bruel  <christian.bruel@st.com>
902
903         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
904         msw_skip comparison.
905         
906 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
907
908         PR c/35739
909         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
910         reg type.
911
912         PR tree-optimization/35899
913         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
914         rather than TREE_OPERAND.
915
916 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
917
918         PR target/35944
919         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
920         temporary registers.  Change operand predicate to general_operand.
921         (remainderxf3): Ditto.
922
923 2008-04-16  Richard Guenther  <rguenther@suse.de>
924
925         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
926         * tree-affine.c (aff_combination_expand): Look through some
927         conversions.
928
929 2008-04-15  Doug Kwan  <dougkwan@google.com>
930
931         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
932         for hex printing.
933         * tree-pretty-print.c (dump_generic_node): Ditto.
934         * final.c (output_addr_const): Ditto.
935         * dwarf2out.c (output_cfi): Ditto.
936         * c-pretty-print.c (pp_c_integer_constant): Ditto.
937         * print-rtl.c (print_rtx): Ditto.
938         * print-tree.c (print_node_brief, print_node): Ditto.
939         * c-common.c (match_case_to_enum_1): Ditto.
940         * sched-vis.c (print_value): Ditto.
941         * config/i386/i386.c (print_operand): Cast to long unsigned int
942         for hex printing.
943
944 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
945         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
946         MS Windows VirtualProtect function.
947
948 2008-04-15  Jan Hubicka  <jh@suse.cz>
949
950         * gengtype.c (write_root): Param_is argument is OK.
951         * expr.c (expand_expr_real_1): Update call of get_exception_*.
952         * function.h: Include varray.h
953         (rtl_eh): New stucture based on except.c one.
954         (call_site_record): New forward declaration and vector type.
955         * calls.c (emit_call_1): Do not call
956         note_current_region_may_contain_throw.
957         * except.c (eh_status): Remove cur_region, try_region since they are
958         unused.
959         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
960         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
961         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
962         Remove call_site_data_used, call_site_data_size.
963         Turn call_site_record into vector in function.h.
964         (note_current_region_may_contain_throw): Remove.
965         (get_exception_pointer, get_exception_filter): Do not take struct
966         function argument; update.
967         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
968         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
969         build_post_landing_pads, dw2_build_landing_pads,
970         sjlj_assign_call_site_values, sjlj_mark_call_sites,
971         sjlj_emit_function_enter, sjlj_emit_function_enter, 
972         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
973         sjlj_build_landing_pads, finish_eh_generation,
974         remove_exception_handler_label, remove_eh_handler,
975         maybe_remove_eh_handler, add_reachable_handler,
976         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
977         add_action_record, collect_one_action_chain, add_call_site,
978         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
979         sjlj_output_call_site_table, output_function_exception_table,
980         * except.h (note_current_region_may_contain_throw): Remove
981         (get_exception_pointer, get_exception_filter): Do not take struct
982         function argument.
983         * Makefile.in (GTFILES): Put varargs before struct function.
984
985 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
988         punt for STRING_CST.
989         (get_constraint_for): Deal with STRING_CST here instead.
990
991 2008-04-15  Richard Guenther  <rguenther@suse.de>
992
993         * tree-ssa-propagate.c (substitute_and_fold): Substitute
994         statements in a basic-block with a backward walk.  Do not
995         substitute into dead statements but instead remove those.
996
997 2008-04-15  Richard Guenther  <rguenther@suse.de>
998
999         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
1000         to zero, thus disable creation of SFTs.
1001
1002 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1003
1004         * tree-predcom.c (suitable_reference_p): Return false if the
1005         reference can throw.
1006
1007 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
1008
1009         PR c/35751
1010         * c-decl.c (finish_decl): If extern or static var has variable
1011         size, set TREE_TYPE (decl) to error_mark_node.
1012
1013 2008-04-15  Rafael Espindola  <espindola@google.com>
1014
1015         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
1016         variable arg1.
1017
1018 2008-04-15  Richard Guenther  <rguenther@suse.de>
1019
1020         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
1021         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
1022         (visit_reference_op_load): Do walk vuse-vdef chains on
1023         vn_reference_lookup.
1024         (visit_reference_op_store): But do not here.
1025         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
1026         vn_reference_lookup.
1027         (vn_lookup_with_vuses): But do so here.
1028
1029 2008-04-14  Ian Lance Taylor  <iant@google.com>
1030
1031         * fold-const.c (fold_overflow_warning): Remove assertion.
1032
1033 2008-04-15  Ben Elliston  <bje@au.ibm.com>
1034
1035         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
1036         temp1 local variables.
1037
1038 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
1039
1040         PR target/35661
1041         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
1042         ".text.unlikely" section as executable.
1043
1044 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
1045
1046         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1047         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
1048         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
1049         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
1050         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
1051         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
1052         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
1053
1054 2008-04-14  Ian Lance Taylor  <iant@google.com>
1055
1056         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
1057         * fold-const.c (fold_comparison): If appropriate, test
1058         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
1059         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
1060         reassociating a pointer type.
1061         * doc/invoke.texi (Optimize Options): Document that
1062         -fstrict-overflow applies to pointer wraparound.
1063
1064 2008-04-13  Jan Hubicka  <jh@suse.cz>
1065
1066         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
1067
1068 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
1069
1070         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
1071         we are going to "save the world".
1072
1073 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
1074
1075         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
1076         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
1077         operand 0 constraint, not "=".
1078
1079 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
1080
1081         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
1082
1083 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1084
1085         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
1086         of size of positions_needed * CHAR_BIT.
1087
1088 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
1089
1090         PR middle-end/35897
1091         * dse.c (store_info): Change positions_needed to unsigned
1092         HOST_WIDE_INT.
1093         (lowpart_bitmask): New.
1094         (record_store): Cast to unsigned HOST_WIDE_INT for
1095         positions_needed.  Assert width <= size of positions_needed *
1096         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
1097         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
1098         lowpart_bitmask to set mask.
1099
1100 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1101
1102         * config/bfin/constraints.md: New file.
1103         * config/bfin/bfin.md: Include it.
1104         (adddi3): Use satisfies_constraint functions instead of the old macros.
1105         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
1106         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
1107         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
1108         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
1109         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
1110         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
1111         EXTRA_CONSTRAINT): Delete.
1112         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
1113         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
1114         of the old macros.
1115         * config/bfin/bfin.c: Include "tm-constrs.h".
1116         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
1117         Use satisfies_constraint functions instead of the old macros.
1118         * doc/md.texi (Blackfin Constraints): Update file name reference.
1119
1120 2008-04-11  Richard Guenther  <rguenther@suse.de>
1121
1122         PR tree-optimization/35869
1123         * tree-vrp.c (execute_vrp): Move switch statement update after
1124         jump threading.  Schedule another cfg cleanup run.
1125
1126 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
1127
1128         PR c/35744
1129         * attribs.c (decl_attributes): Return early on errorneous node.
1130
1131 2008-04-10  Oleg Ryjkov  <olegr@google.com>
1132
1133         * tree.h (struct tree_base): Added a new flag default_def_flag.
1134         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
1135
1136 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1137
1138         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
1139
1140 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1141
1142         PR target/35768
1143         * pa.md: Define mode iterator P.  Define mode attribute dwc.
1144         (dcacheflush): Update pattern to use iterator P and attribute dwc.
1145         (icacheflush): Likewise.
1146         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
1147         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
1148
1149 2008-04-11  Ben Elliston  <bje@au.ibm.com>
1150
1151         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
1152
1153 2008-04-10  Rafael Espindola  <espindola@google.com>
1154
1155         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
1156         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
1157         (extract_range_from_expr): The same.
1158
1159 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1160
1161         * config/mips/mips.md (GPR2): New mode iterator.
1162         (seq): Add comment.
1163         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
1164         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
1165         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
1166         Rewrite these to take two modes, the mode of comparison and the
1167         mode of the destination.
1168         * config/mips/mips.c (mips_expand_scc): Instead of having
1169         paradoxical subreg as destination, expand "narrowing" scc if mode
1170         of comparison is SI and target is requested in DI mode.
1171         (mips_emit_int_order_test): Update comment.  Make mode of
1172         comparison match CMP0 rather than TARGET.  When creating inverse
1173         target use mode of TARGET.
1174
1175 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
1176
1177         * gcov-dump.c (tag_summary): Only print summaries for the first
1178         GCOV_COUNTERS_SUMMABLE counters.
1179
1180 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
1181
1182         * config/i386/i386.md (absneg): New code iterator.
1183         (absnegprefix): New code attribute.
1184         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
1185         patterns using absneg code iterator.
1186         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
1187         using absneg code iterator.
1188         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
1189         *neg<mode>2 patterns using absneg code iterator.
1190         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1191         *negextendsfdf2 patterns using absneg code iterator.
1192         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
1193         *negextendsfxf2 patterns using absneg code iterator.
1194         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
1195         *negextendsfdf2 patterns using absneg code iterator.
1196         * config/i386/sse.md (<code><mode>2): Macroize expander from
1197         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
1198
1199 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1200
1201         * config/s390/s390.h: Remove the remains of the recent search
1202         & replace action of current_function_outgoing_args_size.
1203
1204 2008-04-10  Ira Rosen  <irar@il.ibm.com>
1205
1206         PR tree-optimization/35821
1207         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
1208         NEW_STMT_LIST is not NULL.
1209
1210 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
1211
1212         PR libstdc++/35597
1213         * toplev.c (process_options): Remove -ffunction-sections debugging
1214         warning.
1215
1216 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
1217
1218         PR middle-end/PR28690
1219         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
1220         than gen_rtx_fmt_ee to perform more canonicalizations.
1221
1222 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1223
1224         PR driver/35665
1225         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
1226
1227 2008-04-09  Richard Guenther  <rguenther@suse.de>
1228
1229         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
1230         (dump_function_to_file): Dump function arguments with types.
1231
1232 2008-04-08  Richard Guenther  <rguenther@suse.de>
1233
1234         * fold-const.c (fold_widened_comparison): Do not allow
1235         sign-changes that change the result.
1236
1237 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
1238
1239         PR target/35839
1240         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
1241         kinds of indirect references.
1242
1243 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
1244
1245         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
1246         GNU Fortran language string.
1247
1248 2008-04-08  Rafael Espindola  <espindola@google.com>
1249
1250         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
1251         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
1252         * tree.h (tree_call_nonnegative_warnv_p): New.
1253
1254 2008-04-08  Jan Hubicka  <jh@suse.cz>
1255
1256         * function.c (free_after_compilation): Clear out regno_reg_rtx
1257         pointer.
1258
1259 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
1260
1261         Revert
1262         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1263
1264         PR middle-end/PR28690
1265         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
1266         same precedence as REG_POINTER and MEM_POINTER operands.
1267
1268 2008-04-08  Richard Guenther  <rguenther@suse.de>
1269
1270         PR middle-end/35834
1271         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
1272         for adding index to base.
1273
1274 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
1275
1276         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
1277         (MINGW_ENABLE_EXECUTE_STACK): New.
1278         (IN_LIBGCC2): For libgcc include windows.h file for
1279         function declarations.
1280
1281 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
1282
1283         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
1284         and tem2 if tem1 is not a REG or MULT.
1285
1286 2008-04-08  Jan Hubicka  <jh@suse.cz>
1287
1288         * function.h (incomming_args): Break out of struct function.
1289         (function_subsections): Break out of struct function.
1290         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
1291         return_rtx and hard_reg_initial_vals from struct function.
1292         Kill inl_max_label_num.
1293         (current_function_pops_args, current_function_args_info,
1294         current_function_args_size, current_function_args_size,
1295         current_function_pretend_args_size,
1296         current_function_outgoing_args_size,
1297         current_function_internal_arg_pointer, current_function_return_rtx):
1298         Kill compatibility accestor macros.
1299         * builtins.c (expand_builtin_apply_args_1): Update.
1300         (expand_builtin_next_arg): Update.
1301         * df-scan.c (df_get_call_refs): Update.
1302         * dbxout.c (dbxout_function_end): Update.
1303         * dwarf2out.c (dwarf2out_switch_text_section): Update.
1304         (output_line_info): Update.
1305         (secname_for_decl): Update.
1306         (dwarf2out_var_location): Update.
1307         * function.c (free_after_compilation): Update.
1308         (assign_parm_find_stack_rtl): Update.
1309         (assign_parms): Update.
1310         (expand_dummy_function_end): Update.
1311         (expand_function_end): Update.
1312         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
1313         (expand_call): Update.
1314         (emit_library_call_value_1): Update.
1315         (store_one_arg): Update.
1316         * varasm.c (initialize_cold_section_name): Update.
1317         (unlikely_text_section): Update.
1318         (unlikely_text_section_p): Update.
1319         (assemble_start_function): Update.
1320         (assemble_end_function): Update.
1321         (default_section_type_flags): Update.
1322         (switch_to_section): Update.
1323         * integrate.c (set_decl_abstract_flags): Update.
1324         (get_hard_reg_initial_val): Update.
1325         (has_hard_reg_initial_val): Update.
1326         (allocate_initial_values): Update.
1327         * resource.c (init_resource_info): Update.
1328         * config/alpha/alpha.c (NUM_ARGS): Update.
1329         (direct_return): Update.
1330         (alpha_va_start): Update.
1331         (alpha_sa_size): Update.
1332         (alpha_initial_elimination_offset): Update.
1333         (alpha_expand_prologue): Update.
1334         (alpha_start_function): Update.
1335         (alpha_expand_epilogue): Update.
1336         (unicosmk_initial_elimination_offset):
1337         * config/alpha/alpha.md (call expander): Update.
1338         * config/s390/s390.c (s390_register_info): Update.
1339         (s390_register_info): Update.
1340         (s390_frame_info): Update.
1341         (s390_initial_elimination_offset): Update.
1342         (s390_build_builtin_va_list): Update.
1343         (s390_va_start): Update.
1344         * config/spu/spu.c (direct_return): Update.
1345         (spu_expand_prologue): Update.
1346         (spu_initial_elimination_offset): Update.
1347         (spu_build_builtin_va_list): Update.
1348         (spu_va_start): Update.
1349         * config/sparc/sparc.c (sparc_init_modes): Update.
1350         (sparc_compute_frame_size): Update.
1351         (function_value): Update.
1352         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
1353         * config/i386/i386.md (return expander): Update.
1354         * config/i386/i386.c (ix86_va_start): Update.
1355         (ix86_can_use_return_insn_p): Update.
1356         (ix86_compute_frame_layout): Update.
1357         (ix86_expand_epilogue): Update.
1358         * config/sh/sh.c (output_stack_adjust): Update.
1359         (calc_live_regs): Update.
1360         (sh_expand_prologue): Update.
1361         (sh_builtin_saveregs): Update.
1362         (sh_va_start): Update.
1363         (initial_elimination_offset): Update.
1364         (sh_allocate_initial_value): Update.
1365         (sh_function_ok_for_sibcall): Update.
1366         (sh_get_pr_initial_val): Update.
1367         * config/sh/sh.md (return expander): Update.
1368         * config/avr/avr.c (frame_pointer_required_p): UPdate.
1369         * config/crx/crx.c (crx_compute_frame): UPdate.
1370         (crx_initial_elimination_offset): UPdate.
1371         * config/xtensa/xtensa.c (compute_frame_size): Update
1372         (xtensa_builtin_saveregs): Update.
1373         (xtensa_va_start): Update.
1374         (order_regs_for_local_alloc): Update.
1375         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
1376         (xstormy16_expand_builtin_va_start): Update.
1377         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
1378         * config/m68hc11/m68hc11.md (return expanders): Update.
1379         * config/m68hc11/m68hc11.c (expand_prologue): Update.
1380         (expand_epilogue): Update.
1381         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
1382         (cris_simple_epilogue): Update.
1383         (cris_expand_prologue): Update.
1384         (cris_expand_epilogue): Update.
1385         * config/iq2000/iq2000.c (iq2000_va_start): Update.
1386         (compute_frame_size): Update.
1387         * config/mt/mt.c (mt_compute_frame_size): Update.
1388         * config/mn10300/mn10300.c (expand_prologue): Update.
1389         (expand_epilogue): Update.
1390         (initial_offset): Update.
1391         (mn10300_builtin_saveregs):
1392         * config/mn10300/mn10300.md (return expander): Update.
1393         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
1394         (ia64_initial_elimination_offset): Update.
1395         (ia64_initial_elimination_offset): Update.
1396         (ia64_expand_prologue): Update.
1397         * config/m68k/m68k.md (return expander): Update.
1398         * config/rs6000/rs6000.c (rs6000_va_start): Update.
1399         (rs6000_stack_info): Update.
1400         * config/mcore/mcore.c (layout_mcore_frame): Update.
1401         (mcore_expand_prolog): Update.
1402         * config/arc/arc.c (arc_compute_frame_size): Update.
1403         * config/score/score3.c (score3_compute_frame_size): Update.
1404         * config/score/score7.c (score7_compute_frame_size): Update.
1405         * config/arm/arm.c (use_return_insn): Update.
1406         (thumb_find_work_register): Update.
1407         (arm_compute_save_reg_mask): Update.
1408         (arm_output_function_prologue): Update.
1409         (arm_output_epilogue): Update.
1410         (arm_size_return_regs): Update.
1411         (arm_get_frame_offsets): Update.
1412         (arm_expand_prologue): Update.
1413         (thumb_exit): Update.
1414         (thumb_unexpanded_epilogue): Update.
1415         (thumb1_output_function_prologue): Update.
1416         * config/pa/pa.md (return expander): Update.
1417         * config/pa/pa.c (compute_frame_size): Update.
1418         (hppa_builtin_saveregs): Update.
1419         * config/mips/mips.c (mips_va_start): Update.
1420         (mips16_build_function_stub): Update.
1421         (mips_compute_frame_info): Update.
1422         (mips_restore_gp): Update.
1423         (mips_output_function_prologue): Update.
1424         (mips_expand_prologue): Update.
1425         * config/v850/v850.c (compute_frame_size): Update.
1426         (expand_prologue): * config/mmix/mmix.c (along): update.
1427         (mmix_initial_elimination_offset): update.
1428         (mmix_reorg): update.
1429         (mmix_use_simple_return): update.
1430         (mmix_expand_prologue): update.
1431         (mmix_expand_epilogue): Update.
1432         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
1433         (emit_link_insn): Update.
1434
1435 2008-04-08  Anatoly Sokolov <aesok@post.ru>
1436
1437         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
1438         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
1439         instructions.
1440         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
1441         atmega103 device.
1442
1443 2008-04-07  Jan Hubicka  <jh@suse.cz>
1444
1445         * function.h (rtl): Rename to x_rtl.
1446         (crtl): New define.
1447         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1448         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1449         used_temp_slots avail_temp_slots, temp_slot_level,
1450         nonlocal_goto_handler_labels): Update accesstors.
1451         (rtl): New global variable.
1452         (struct function): Move some fileds to rtl_data.
1453         (get_arg_pointer_save_area): Update prototype.
1454         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1455         get_arg_pointer_save_area.
1456         * expr.c (init_expr): Update
1457         * function.c (get_frame_size): Update
1458         (assign_stack_local): Update
1459         (expand_function_end): Update.
1460         (get_art_pointer_save_area): Update
1461         * function.h 
1462         * emit-rtl.c (rtl): Declare.
1463         (regno_reg_rtx): Declare.
1464         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1465         Update.
1466         (gen_reg_rtx): Update.
1467         * varasm.c (n_deferred_constatns): Update accestor.
1468         (init_varasm_status): Do not allocate varasm_status.
1469         (force_const_mem, get_pool_size, output_constant_pool): Update.
1470         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1471         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1472         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
1473         * sparc/sparc.h (INIT_EXPANDERS): Update.
1474         * ia64/ia64.h (INIT_EXPANDERS): Update.
1475
1476 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
1477
1478         * reload.c (push_secondary_reload): Add missing break to for loop.
1479
1480 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
1481
1482         PR middle-end/PR28690
1483         * rtlanal.c: Update copyright years.
1484         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
1485         as REG_POINTER and MEM_POINTER operands.
1486         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
1487         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
1488         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
1489         * gcse.c: Update copyright years.
1490         (pre_delete): Call gen_reg_rtx_and_attrs.
1491         (hoist_code): Likewise.
1492         (build_store_vectors): Likewise.
1493         (delete_store): Likewise.
1494         * loop-invariant.c (move_invariant_reg): Likewise.
1495         Update copyright years.
1496
1497 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
1498
1499         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
1500         control string instead of quoted.
1501
1502 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1503
1504         * doc/rtl.texi: Rewrite of subreg section.
1505
1506 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
1507
1508         PR/35842
1509         * config/i386/i386.c (legitimize_pic_address): Add treating
1510         of dllimport SYM_REF's.
1511         (legitimize_dllimport_symbol): Add prototype.
1512
1513 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1514
1515         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
1516         reference in constructor with non self-referential type.
1517
1518 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1519
1520         Removal of Return with Depressed Stack Pointer support
1521         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
1522         (ECF_SP_DEPRESSED): Likewise.
1523         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
1524         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
1525         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1526         (expand_call): Do not test ECF_SP_DEPRESSED.
1527         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1528         * function.c (keep_stack_depressed): Delete.
1529         (handle_epilogue_set): Likewise.
1530         (update_epilogue_consts): Likewise.
1531         (emit_equiv_load): Likewise.
1532         (thread_prologue_and_epilogue_insns): Remove support for Return with
1533         Depressed Stack Pointer.
1534         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
1535
1536 2008-04-06  Richard Guenther  <rguenther@suse.de>
1537
1538         PR tree-optimization/35400
1539         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
1540         information from SSA_NAMEs.
1541
1542 2008-04-06  Anatoly Sokolov <aesok@post.ru>
1543
1544         * config/avr/avr.h (avr_mega_p): Remove declaration.
1545         (AVR_MEGA): Remove macro.
1546         * config/avr/avr.c (avr_mega_p): Remove variable.
1547         (avr_override_options): Remove inicializion of avr_mega_p.
1548         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1549         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
1550         (avr_jump_mode): (Ditto.).
1551         (avr_output_progmem_section_asm_op): (Ditto.).
1552         (avr_asm_init_sections): (Ditto.).
1553         (avr_asm_init_sections): (Ditto.).
1554         (avr_rtx_costs): (Ditto.).
1555         * config/avr/avr.md: (Ditto.).
1556         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
1557         '__AVR_MEGA__'.
1558
1559 2008-04-06  Richard Guenther  <rguenther@suse.de>
1560
1561         PR tree-optimization/35842
1562         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
1563         is_gimple_invariant_address.
1564
1565 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1566
1567         * gcc.c (default_compilers): Sync Fortran extensions list with
1568         that in fortran/lang-specs.h.
1569         * doc/invoke.texi: Likewise.
1570         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
1571         * dwarf2out.c (gen_compile_unit_die): Likewise.
1572
1573 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
1574
1575         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
1576
1577 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
1578
1579         PR target/12329
1580         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
1581         attribute is used for nested functions.
1582
1583 2008-04-05  Jan Hubicka  <jh@suse.cz>
1584
1585         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
1586
1587         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
1588         letter argument.
1589         (dump_files): Update.
1590         (enable_rtl_dump_file): Do not accept letter argument.
1591         * tree-pass.h (dump_file_info): Remove letter argument.
1592         * toplev.c (decode_d_option): Update -da handling.
1593         * toplev.h (enable_rtl_dump_file): Update prototype.
1594         * passes.c (register_one_dump_file): Do not accept IPA argument; work
1595         it out based on pass type.
1596         (register_dump_files_1): Likewise.
1597         (init_optimization_passes): Update register_one_dump_file calls.
1598         (execute_one_pass): Sanity check that IPA passes are called at IPA
1599         level and RTL passes at RTL level.
1600         (execute_pass_list): IPA pass can not be after or subpass of
1601         GIMPLE/RTL pass.
1602         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
1603         disallov RTL subpasses of IPA subpasses.
1604
1605 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1606
1607         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1608         builtins that return exactly once and do not throw. Cache call to
1609         call_expr_flags.
1610
1611 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1612
1613         PR rtl-optimization/34916
1614         PR middle-end/35519
1615         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1616         between instruction pairs.
1617
1618 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1619
1620         * doc/invoke.texi: Document -mbitops for SH.
1621         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1622         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1623         * config/sh/sh.c (print_operand): Add %t operand code.
1624         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1625         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1626         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1627         (extendqihi2): Likewise.
1628         (movqi_i): Likewise.
1629         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1630         (extv): Use bld instruction for SH2A if possible.
1631         (extzv): Likewise.
1632         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1633         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1634         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1635         (bset.b, bclr.b): Define peepholes.
1636         * config/sh/sh.opt (mbitops): New option.
1637
1638 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1639
1640         PR target/35620
1641         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1642         and view convert expression.
1643
1644 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1645
1646         PR target/35364
1647         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1648
1649 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1650
1651         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1652
1653         * config/i386/cpuid.h (bit_AES): New.
1654         (bit_PCLMUL): Likewise.
1655
1656         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1657         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1658         SSE2 if AES or PCLMUL is enabled.
1659         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1660         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1661         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1662         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1663         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1664         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1665         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1666         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1667         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1668         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1669         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1670         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1671         __builtin_ia32_aeskeygenassist128 and
1672         __builtin_ia32_pclmulqdq128.
1673         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1674         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1675         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1676
1677         * config/i386/i386.h (TARGET_AES): New.
1678         (TARGET_PCLMUL): Likewise.
1679         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1680
1681         * config/i386/i386.md (UNSPEC_AESENC): New.
1682         (UNSPEC_AESENCLAST): Likewise.
1683         (UNSPEC_AESDEC): Likewise.
1684         (UNSPEC_AESDECLAST): Likewise.
1685         (UNSPEC_AESIMC): Likewise.
1686         (UNSPEC_AESKEYGENASSIST): Likewise.
1687         (UNSPEC_PCLMUL): Likewise.
1688
1689         * config/i386/i386.opt (maes): New.
1690         (mpclmul): Likewise.
1691
1692         * config/i386/sse.md (aesenc): New pattern.
1693         (aesenclast): Likewise.
1694         (aesdec): Likewise.
1695         (aesdeclast): Likewise.
1696         (aesimc): Likewise.
1697         (aeskeygenassist): Likewise.
1698         (pclmulqdq): Likewise.
1699
1700         * config/i386/wmmintrin.h: New.
1701
1702         * doc/extend.texi: Document AES and PCLMUL built-in function.
1703
1704         * doc/invoke.texi: Document -maes and -mpclmul.
1705
1706 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1707
1708         * function.c (free_after_parsing): Replace with
1709         cxx_push_function_context from C++ front-end.
1710         (allocate_struct_function): Don't call langhook.
1711         * langhooks.h (struct lang_hooks_for_functions): Delete.
1712         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1713         member "function".
1714         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1715         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1716         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1717         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1718         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1719         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1720         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1721
1722         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1723         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1724         
1725 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1726
1727         PR c/35440
1728         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1729         for all types.
1730
1731 2008-04-04  Richard Guenther  <rguenther@suse.de>
1732
1733         PR middle-end/35823
1734         * fold-const.c (optimize_minmax_comparison): Use the correct
1735         type for the constant in the simplified comparison.
1736
1737 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1738
1739         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1740         Pass L2 size as "--param l2-cache-size" to the compiler.
1741         (decode_l2_cache): New function to decode L2 cache parameters using
1742         0x8000006 extended cpuid function.
1743         (detect_caches_amd): Determine parameters of L2 cache using
1744         decode_l2_caches function.
1745         (decode_caches_intel): Decode L2 cache parameters.
1746         (detect_caches_intel): Determine L2 cache parameters using
1747         decode_caches_intel and decode_l2_caches functions.
1748
1749 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1750
1751         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1752         secondary input reload for subword loads from the constant pool.
1753
1754 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1755
1756         PR target/35713
1757         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1758           constants of the appropriate size for runtime calculations.
1759
1760         PR c/35712
1761         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1762           decimal-float literal constant zero.
1763
1764 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1765
1766         PR c/35738
1767         * c-parser.c (c_parser_omp_atomic): Call
1768         default_function_array_conversion on the RHS.
1769
1770         PR middle-end/35818
1771         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1772         call is_variable_sized if decl has incomplete type.
1773
1774 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1775
1776         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1777
1778 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1779
1780         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1781         iterators.
1782         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1783         (sgt<u>): Merge sgt and sgtu into new expander.
1784         (sgt, sgtu): Remove expanders.
1785         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1786         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1787         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1788         *sgtu_<mode>_mips16 into new pattern.
1789         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1790         (sge<u>): Merge sge and sgeu into new expander.
1791         (sge, sgeu): Remove expanders.
1792         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1793         new pattern.
1794         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1795         (slt<u>): Merge slt and sltu into new expander.
1796         (slt, sltu): Remove expanders.
1797         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1798         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1799         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1800         *sltu_<mode>_mips16 into new pattern.
1801         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1802         (sle<u>): Merge sle and sleu into new expander.
1803         (sle, sleu): Remove expanders.
1804         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1805         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1806         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1807         *sleu_<mode>_mips16 into new pattern.
1808         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1809
1810 2008-04-03  Jan Hubicka  <jh@suse.cz>
1811
1812         PR tree-optimization/35795
1813         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1814         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1815         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1816         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1817         * score/score3.c (score3_output_mi_thunk): Likewise.
1818         * score/score7.c (score7_output_mi_thunk): Likewise.
1819         * mips/mips.c (mips_output_mi_thunk): Likewise.
1820
1821 2008-04-03  Richard Guenther  <rguenther@suse.de>
1822
1823         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1824         conversions.  Simplify code.
1825
1826 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1827
1828         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1829
1830 2008-04-03  Tom Tromey  <tromey@redhat.com>
1831             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1832
1833         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1834         * config/bfin/t-bfin-linux (generated_files): Add
1835         linux-sysroot-suffix.h.
1836         * doc/install.texi (Prerequisites): Require make 3.80.
1837         * doc/sourcebuild.texi (Front End Directory): Document new
1838         variable.
1839         * Makefile.in (generated_files): New variable.
1840         (ALL_HOST_OBJS): New variable.
1841         ($(ALL_HOST_OBJS)): New target.
1842
1843 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1844
1845         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1846         (remap_block): Call id->transform_lang_insert_block instead
1847         of langhook.
1848         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1849         Set id.transform_lang_insert_block to NULL.
1850         (clone_body): Move to cp/optimize.c
1851         * tree-inline.h (struct copy_body_data): Change
1852         transform_lang_insert_block to function pointer.
1853         (copy_generic_body, copy_decl_no_change): Export.
1854         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1855         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1856         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1857
1858         * c-tree.h (insert_block): Kill.
1859         * c-decl.c (insert_block): Kill.
1860
1861 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1862
1863         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1864         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1865         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1866         argument.
1867         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1868         argument, call {push,pop}_function_context from here.
1869         * c-parser.c: Use c_{push,pop}_function_context.
1870
1871         * function.c (push_function_context_to): Move meat ...
1872         (push_function_context): ... here.  Simplify.
1873         * function.c (pop_function_context_from): Move meat ...
1874         (pop_function_context): ... here.  Simplify.
1875         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1876         leave_nested).
1877         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1878         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1879         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1880         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1881
1882 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1883
1884         * expmed.c (extract_force_align_mem_bit_field): Remove.
1885
1886 2008-04-03  Richard Guenther  <rguenther@suse.de>
1887
1888         PR middle-end/35800
1889         * expr.h (try_casesi): Adjust prototype.
1890         * expr.c (try_casesi): Take fallback label as extra parameter.
1891         Use that for gen_casesi if default_label is NULL.
1892         * stmt.c (expand_case): Pass fallback label to try_casesi,
1893         make sure to fill gaps with a fallback label if default_label
1894         is not present.
1895
1896 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1897
1898         PR target/35801
1899         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1900
1901 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1902
1903         * expmed.c (extract_split_bit_field): Remove if (0) code.
1904         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1905         (do_ds_constraint): Likewise.
1906
1907 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1908
1909         * doc/cppopts.texi (-dU): Document.
1910         * c-common.h (flag_dump_macros): Update comment.
1911         * c-opts.c (handle_OPT_d): Handle -dU.
1912         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1913         dump_queued_macros, cb_used_define, cb_used_undef): New.
1914         (init_pp_output): Handle -dU.
1915         (cb_line_change): Call dump_queued_macros.
1916         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1917
1918 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1919
1920         * config/avr/predicates.md (io_address_operand): New predicate. 
1921         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1922         * config/avr/avr.c (avr_io_address_p): Remove function.
1923         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1924         'avr_io_address_p' function.
1925         (out_movhi_r_mr): (Ditto.).
1926         (out_movqi_mr_r): (Ditto.).
1927         (out_movhi_mr_r): (Ditto.).
1928         (avr_address_cost): (Ditto.).
1929
1930 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1931
1932         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1933         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1934         in 32bit mode when XMM registers are available to avoid store
1935         forwarding stalls.
1936         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1937         corresponding post-reload splitters.
1938
1939 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1940
1941         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1942         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1943         __builtin_ia32_roundss.
1944         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1945         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1946         __builtin_ia32_roundss.
1947         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1948         IX86_BUILTIN_SHUFPD here.
1949
1950 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1951
1952         * config/i386/i386.md (plogic): New.
1953         (plogicprefix): Likewise.
1954
1955         * config/i386/mmx.md (mmx_<code><mode>3): New.
1956         (mmx_and<mode>3): Removed.
1957         (mmx_ior<mode>3): Likewise.
1958         (mmx_xor<mode>3): Likewise.
1959
1960         * config/i386/sse.md (<code><mode>3): New.
1961         (*<code><mode>3): Likewise.
1962         (*<code><mode>3): Likewise.
1963         (<code><mode>3): Likewise.
1964         (*sse_<code><mode>3): Likewise.
1965         (*sse2_<code><mode>3): Likewise.
1966         (<code>tf3): Likewise.
1967         (*<code>tf3): Likewise.
1968         (and<mode>3): Likewise.
1969         (*and<mode>3): Likewise.
1970         (ior<mode>3): Removed.
1971         (*ior<mode>3): Likewise.
1972         (xor<mode>3): Likewise.
1973         (*xor<mode>3): Likewise.
1974         (*and<mode>3): Likewise.
1975         (*ior<mode>3): Likewise.
1976         (*xor<mode>3): Likewise.
1977         (and<mode>3): Likewise.
1978         (*sse_and<mode>3): Likewise.
1979         (*sse2_and<mode>3): Likewise.
1980         (andtf3): Likewise.
1981         (*andtf3): Likewise.
1982         (ior<mode>3): Likewise.
1983         (*sse_ior<mode>3): Likewise.
1984         (*sse2_ior<mode>3): Likewise.
1985         (iortf3): Likewise.
1986         (*iortf3): Likewise.
1987         (xor<mode>3): Likewise.
1988         (*sse_xor<mode>3): Likewise.
1989         (*sse2_xor<mode>3): Likewise.
1990         (xortf3): Likewise.
1991         (*xortf3): Likewise.
1992
1993 2008-04-02  Richard Guenther  <rguenther@suse.de>
1994
1995         PR tree-optimization/14495
1996         PR tree-optimization/34793
1997         * tree-vrp.c (struct switch_update): New structure.
1998         (to_remove_edges, to_update_switch_stmts): New VECs.
1999         (simplify_switch_using_ranges): New function.  Remove not taken
2000         case labels and edges.
2001         (simplify_stmt_using_ranges): Call it.
2002         (identify_jump_threads): Mark edges we have queued for removal
2003         so we don't thread them.
2004         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
2005         case label vector.
2006         * tree-cfg.c (group_case_labels): Deal with missing default label.
2007         (tree_verify_flow_info): Allow missing default label.
2008         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
2009         (emit_case_nodes): Likewise.
2010         (expand_case): Do not rely on the default label to be present.
2011         * expr.c (try_casesi): Deal with NULL default_label.
2012         (do_tablejump): Likewise.
2013
2014 2008-04-02  Richard Guenther  <rguenther@suse.de>
2015
2016         PR tree-optimization/14495
2017         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
2018         SWITCH_EXPR here ...
2019         (vrp_visit_switch_stmt): ... but here (new function).
2020         (find_case_label_index): New helper function.
2021         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
2022
2023 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2024
2025         * fwprop.c: Fix ISO-C99ism.
2026
2027 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2028
2029         PR bootstrap/35752
2030         * Makefile.in (objdir): Set it here.
2031         * configure.ac: Not here.  Find dynamic linker characteristics.
2032         * exec-tool.in: Use them.
2033         * aclocal.m4: Regenerate.
2034         * configure: Regenerate.
2035
2036 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2037
2038         * expr.c (expand_var): Delete it.
2039         * expr.h (expand_var): Delete prototype.
2040         * function.c (expand_function_start): Use expand_decl instead.
2041         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
2042         langhook.
2043
2044 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
2045
2046         PR rtl-optimization/35542
2047         * fwprop.c (forward_propagate_and_simplify): Replace
2048         loc_reg_mentioned_in_p with reg_mentioned_p.
2049
2050 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
2051
2052         PR rtl-optimization/35281
2053         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
2054         (propagate_rtx_1): Handle PR_HANDLE_MEM.
2055         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
2056         (varying_mem_p): Move above propagate_rtx.
2057         (all_uses_available_at): Do not check MEMs.
2058
2059 2008-04-02  Rafael Espindola  <espindola@google.com>
2060
2061         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
2062         (register_edge_assert_for_2): Split the cond argument.
2063         (register_edge_assert_for_1): Adjust for the change in
2064         register_edge_assert_for_2.
2065         (register_edge_assert_for): Split the cond argument.
2066         (find_switch_asserts): Adjust for the change in
2067         register_edge_assert_for.
2068
2069 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
2070
2071         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
2072         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
2073         offsets for 64-bit mingw.
2074         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
2075         abi for x86_64-pc-mingw.
2076
2077 2008-04-02  Richard Guenther  <rguenther@suse.de>
2078
2079         * tree-vrp.c (extract_range_from_assert): Make sure to not
2080         produce range min/max with TREE_OVERFOW set.
2081         If merging a anti-range and a range keep the anti-range if
2082         the range covers all values of the type.
2083         (register_edge_assert_for_2): Only allow sign-changing
2084         conversions in detecting canonical range checks.  Also
2085         register an assert for the unsigned name if useful.
2086
2087         PR tree-optimization/35787
2088         * tree-vrp.c (vrp_val_max): New function.
2089         (vrp_val_min): Likewise.
2090         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
2091         (vrp_val_is_min): Likewise.
2092         (supports_overflow_infinity): Use vrp_val_{min,max}.
2093         (negative_overflow_infinity): Likewise.
2094         (positive_overflow_infinity): Likewise.
2095         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
2096         (is_positive_overflow_infinity): Likewise.
2097         (is_overflow_infinity): Likewise.
2098         (avoid_overflow_infinity): Use vrp_val_{min,max} and
2099         vrp_val_is_{min,max}.
2100         (set_and_canonicalize_value_range): Canonicalize anti-ranges
2101         to ranges if possible.  Avoid empty ranges.
2102
2103 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2104
2105         PR middle-end/35705
2106         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
2107         the expression is a function address.
2108
2109 2008-04-01  George Helffrich  <george@gcc.gnu.org>
2110
2111         PR fortran/PR35154, fortran/PR23057
2112         * fortran/trans-common.c (create_common):  Add decl to function
2113         chain to preserve identifier scope in debug output.
2114
2115         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
2116         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
2117         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
2118         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
2119         in common.
2120         (dbxout_syms): Check for COMMON-based symbol and wrap in
2121         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
2122         in bracket for efficiency.
2123
2124         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
2125         using DW_TAG_common_block + member offset.
2126         (add_pubname_string): New function.
2127         (dw_expand_expr): New function to find block name and offset for
2128         COMMON var.
2129         (common_check): New function to check whether symbol in Fortran COMMON.
2130         (gen_variable_die): If COMMON, use DW_TAG_common_block.
2131
2132         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
2133         use of common is unchanged.
2134
2135         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
2136         with all combinations of debug options available on target.
2137         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
2138         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
2139         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
2140         .stabs functionality.
2141         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
2142         DWARF functionality.
2143
2144 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
2145
2146         PR c/35436
2147         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
2148
2149 2008-04-02  Ben Elliston  <bje@au.ibm.com>
2150
2151         * config/v850/v850.md (casesi): Remove if (0) code.
2152         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
2153         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
2154
2155 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
2156
2157         * config/i386/i386.md (rex64suffix): New mode attribute.
2158         (floathi<mode>2): Disable expander for SSE math.
2159         (*floathi<mode>2_1): New insn insn_and_split pattern.
2160         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
2161         corresponding post-reload splitters.
2162         (*floathi<mode>2_i387): New macroized insn pattern.
2163         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
2164         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
2165         insn_and_split pattern.
2166         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
2167         New macroized instruction patterns and corresponding post-reload
2168         splitters.
2169         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
2170         and corresponding post-reload splitters.
2171         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
2172         New macroized instruction patterns.
2173         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
2174         macroized instruction patterns and corresponding post-reload splitters.
2175         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
2176         corresponding post-reload splitters.
2177         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
2178         New macroized instruction patterns.
2179         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
2180         corresponding post-reload splitters.
2181         (*floatsi<mode>2_i387): New macroized instruction patterns.
2182
2183 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
2184
2185         * config/i386/i386.md (smaxmin): New.
2186         (umaxmin): Likewise.
2187         (maxminiprefix): Likewise.
2188         (maxminfprefix): Likewise.
2189         (<code><mode>3): Likewise.
2190         (smin<mode>3): Removed.
2191         (smax<mode>3): Likewise.
2192
2193         * config/i386/mmx.md (mmx_<code>v2sf3): New.
2194         (mmx_<code>v4hi3): Likewise.
2195         (mmx_<code>v8qi3): Likewise.
2196         (mmx_smaxv2sf3): Removed.
2197         (mmx_sminv2sf3): Likewise.
2198         (mmx_umaxv8qi3): Likewise.
2199         (mmx_smaxv4hi3): Likewise.
2200         (mmx_uminv8qi3): Likewise.
2201         (mmx_sminv4hi3): Likewise.
2202
2203         * config/i386/sse.md (<addsub><mode>3): New.
2204         (*<addsub><mode>3): Likewise.
2205         (<sse>_vm<addsub><mode>3): Likewise.
2206         (<maxmin><mode>3): Likewise.
2207         (*<maxmin><mode>3_finite): Likewise.
2208         (*<maxmin><mode>3): Likewise.
2209         (<sse>_vm<maxmin><mode>3): Likewise.
2210         (sse3_h<addsub>v4sf3): Likewise.
2211         (sse3_h<addsub>v2df3): Likewise.
2212         (<maxmin>v16qi3): Likewise.
2213         (*<maxmin>v16qi3): Likewise.
2214         (<maxmin>v8hi3): Likewise.
2215         (*<maxmin>v8hi3): Likewise.
2216         (*sse4_1_<maxmin><mode>3): Likewise.
2217         (*sse4_1_<maxmin><mode>3): Likewise.
2218         (add<mode>3): Removed.
2219         (*add<mode>3): Likewise.
2220         (<sse>_vmadd<mode>3): Likewise.
2221         (sub<mode>3): Likewise.
2222         (*sub<mode>3): Likewise.
2223         (<sse>_vmsub<mode>3): Likewise.
2224         (smin<mode>3): Likewise.
2225         (*smin<mode>3_finite): Likewise.
2226         (*smin<mode>3): Likewise.
2227         (<sse>_vmsmin<mode>3): Likewise.
2228         (smax<mode>3): Likewise.
2229         (*smax<mode>3_finite): Likewise.
2230         (*smax<mode>3): Likewise.
2231         (<sse>_vmsmax<mode>3): Likewise.
2232         (sse3_haddv4sf3): Likewise.
2233         (sse3_haddv2df3): Likewise.
2234         (sse3_hsubv4sf3): Likewise.
2235         (sse3_hsubv2df3): Likewise.
2236         (umaxv16qi3): Likewise.
2237         (*umaxv16qi3): Likewise.
2238         (smaxv8hi3): Likewise.
2239         (*smaxv8hi3): Likewise.
2240         (*sse4_1_smax<mode>3): Likewise.
2241         (*sse4_1_umax<mode>3): Likewise.
2242         (uminv16qi3): Likewise.
2243         (*uminv16qi3): Likewise.
2244         (sminv8hi3): Likewise.
2245         (*sminv8hi3): Likewise.
2246         (*sse4_1_smin<mode>3): Likewise.
2247         (*sse4_1_umin<mode>3): Likewise.
2248
2249 2008-04-01  Rafael Espindola  <espindola@google.com>
2250
2251         * tree-cfg.c (verify_expr): remove in_phi.
2252         (verify_stmt): Don't call walk_tree with verify_expr. Use
2253         is_gimple_min_invariant instead of is_gimple_val.
2254
2255 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
2256
2257         * doc/include/gpl_v3.texi: Update for manpage generation.
2258         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
2259         gpl.texi.
2260         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
2261         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
2262         gpl_v3.texi instead of gpl.texi.
2263         (gpl.pod): New.
2264
2265 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
2266
2267         PR pch/13675
2268         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
2269
2270 2008-04-01  Rafael Espindola  <espindola@google.com>
2271
2272         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
2273         (extract_code_and_val_from_cond): Use
2274         extract_code_and_val_from_cond_with_ops.
2275
2276 2008-04-01  Jan Hubicka  <jh@suse.cz>
2277
2278         * function.c (free_after_compilation): Free epilogue_delay_list.
2279         (prepare_function_start): Assert that previous compilation was freed.
2280
2281 2008-04-01  Jan Hubicka  <jh@suse.cz>
2282             Jim Wilson  <wilson@tuliptree.org>
2283             Andreas Tobler <andreast@gcc.gnu.org>
2284
2285         PR middle-end/35781
2286         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
2287         rtl.emit instead cfun->emit.
2288         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
2289         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
2290
2291 2008-04-01  Ben Elliston  <bje@au.ibm.com>
2292
2293         * doc/c-tree.texi (Function Basics): Fix grammatical error.
2294
2295 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
2296
2297         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
2298         New options
2299         (fprofile-use): Add var flag_profile_use
2300         * coverage.c (coverage_begin_output): Do not open a gcno file for
2301         output only if -ftest-coverage is set.
2302         Do not add getpwd() to gcda file path.
2303         (build_gcov_info): Check the new flag
2304         flag_profile_datafile_relative_path.
2305         (coverage_init): Use profile_data_prefix.
2306         Read profile counter only if flag_profile_use is set.
2307         * opts.c (common_handle_option): New option fprofile-use=,
2308         fprofile-dir=, fprofile-generate=.
2309         * toplev.c (profile_data_prefix): New variable definition.
2310         * toplev.h (profile_data_prefix): New declaration.
2311         * doc/invoke.tex (Option Summary, Optimization Options):
2312         Add new options.
2313
2314 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
2315
2316         * varasm.c (output_constant_pool_1): In LABEL_REF check,
2317         use tmp consistently.
2318
2319         PR target/35695
2320         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
2321         * config/ia64/ia64.c (rtx_needs_barrier): Handle
2322         UNSPEC_FR_RECIP_APPROX_RES.
2323         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
2324
2325 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
2326
2327         PR c/35750
2328         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
2329
2330 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2331
2332         PR middle-end/30186
2333         * fold-const.c (fold_indirect_ref_1): Support accessing non first
2334         element of the vector via a pointer.
2335
2336 2008-03-31  Ian Lance Taylor  <iant@google.com>
2337
2338         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
2339
2340 2008-03-31  Jan Hubicka  <jh@suse.cz>
2341
2342         * builtins.c (expand_builtin_setjmp_receiver): Update call of
2343         get_arg_pointer_save_area.
2344         * expr.c (init_expr): Just clear out rtl.expr.
2345         * function.c (free_after_compilation): Clear out whole RTL structure.
2346         (get_func_frame_size): Merge into ...
2347         (get_frame_size): ... this one.
2348         (assign_stack_local_1): Merge into ...
2349         (assign_stack_local): ... this one.
2350         (expand_function_end): Update call of get_arg_pointer_save_area.
2351         (get_art_pointer_save_area): Remove cfun argument.
2352         * function.h (emit_status): regno_pointer_align does not need length
2353         attribute. Move x_regno_reg_rtx to ...
2354         (regno_reg_rtx): ... new global array.
2355         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
2356         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
2357         apply_args_value, forced_labels, stack_pointer_delta):
2358         Update accestors.
2359         (struct varasm_status): Move here from varasm.c
2360         (struct rtl_data): New. Move here some fields from struct function.
2361         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
2362         frame_offset, stack_check_probe_note, arg_pointer_save_area,
2363         used_temp_slots avail_temp_slots, temp_slot_level,
2364         nonlocal_goto_handler_labels): Update accesstors.
2365         (rtl): New global variable.
2366         (struct function): Move some fileds to rtl_data.
2367         (get_arg_pointer_save_area): Update prototype.
2368         * emit-rtl.c (rtl): Declare.
2369         (regno_reg_rtx): Declare.
2370         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
2371         Update.
2372         (gen_reg_rtx): Update.
2373         (init_virtual_regs): Do not tate emit_status argument.
2374         (init_emit): Do not allocate emit.
2375         * varasm.c (varasm_statuc): Move to function.h.
2376         (n_deferred_constatns): Update accestor.
2377         (init_varasm_status): Do not allocate varasm_status.
2378         (force_const_mem, get_pool_size, output_constant_pool): Update.
2379         * stmt.c (force_label_rtx): Do not use x_ prefixes.
2380         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
2381
2382 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
2383
2384         PR rtl-optimization/35729
2385         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
2386         references.
2387
2388 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         PR target/32000
2391         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
2392         load/store if memory is unaligned.
2393         (*movti_rex64): Likewise.
2394
2395         * config/i386/predicates.md (misaligned_operand): New.
2396
2397 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
2398
2399         PR tree-opt/35431
2400         * tree-ssa-phiopt.c (conditional_replacement): Return early for
2401         complex types.
2402
2403 2008-03-31  Jan Beulich  <jbeulich@novell.com>
2404
2405         * config/ia64/constraints.md: Add 'j' constraint.
2406         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
2407         (movdi_internal): Likewise.
2408
2409 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2410
2411         PR c/35748
2412         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
2413
2414 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2415
2416         PR target/35757
2417         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
2418         proper error message for the third argument on blendpd and
2419         blendps.
2420
2421         * config/i386/sse.md (blendbits): New.
2422         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
2423
2424 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
2425
2426         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
2427
2428 2008-03-30  Richard Guenther  <rguenther@suse.de>
2429
2430         PR middle-end/31023
2431         * fold-const.c (fold_sign_changed_comparison): Do leave
2432         conversions to base-types alone.
2433
2434 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2435
2436         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
2437         the link register if one altivec register is be saved.
2438
2439 2008-03-30  Ben Elliston  <bje@au.ibm.com>
2440
2441         * final.c (final_scan_insn): Remove if (0) code.
2442
2443 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
2444
2445         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
2446
2447 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
2448
2449         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
2450         of V4SFmode to ix86_binary_operator_ok.
2451
2452 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         * config/i386/i386.c (override_options): Initialize
2455         ix86_veclib_handler to ix86_veclibabi_svml when
2456         -mveclibabi=svml is used.
2457         (ix86_veclibabi_svml): New function for SVML ABI style
2458         vectorization support.
2459         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
2460
2461 2008-03-28  Rafael Espindola  <espindola@google.com>
2462
2463         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
2464         (tree_binary_nonnegative_warnv_p): Make it public.
2465         (tree_single_nonnegative_warnv_p): Make it public.
2466         (tree_invalid_nonnegative_warnv_p): Make it public.
2467         (tree_unary_nonzero_warnv_p): Make it public.
2468         (tree_binary_nonzero_warnv_p): Make it public
2469         (tree_single_nonzero_warnv_p): Make it public.
2470         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
2471         (extract_range_from_binary_expr): Split the expr argument.
2472         (extract_range_from_unary_expr): Split the expr argument.
2473         (extract_range_from_comparison): Split the expr argument.
2474         (extract_range_from_expr): Use the new aux functions.
2475         (vrp_evaluate_conditional_warnv): Use
2476         vrp_evaluate_conditional_warnv_with_ops.
2477         * tree.h (tree_unary_nonzero_warnv_p): Declare.
2478         (tree_binary_nonzero_warnv_p): Declare.
2479         (tree_single_nonzero_warnv_p): Declare.
2480         (tree_expr_nonzero_warnv_p): Declare.
2481         (tree_unary_nonnegative_warnv_p): Declare.
2482         (tree_binary_nonnegative_warnv_p): Declare.
2483         (tree_single_nonnegative_warnv_p): Declare.
2484         (tree_invalid_nonnegative_warnv_p): Declare.
2485
2486 2008-03-28  Richard Guenther  <rguenther@suse.de>
2487
2488         PR tree-optimization/30317
2489         PR tree-optimization/30911
2490         PR tree-optimization/34793
2491         * tree-vrp.c (set_and_canonicalize_value_range): New function.
2492         (struct assert_locus_d): New member EXPR.
2493         (register_new_assert_for): Add EXPR parameter to support
2494         ASSERT_EXPR <name, expr OP limit>.
2495         (register_edge_assert_for_1): Adjust callers.
2496         (find_assert_locations): Likewise.
2497         (process_assert_insertions_for): Build condition from expression.
2498         (extract_range_from_assert): Handle ASSERT_EXPRs
2499         of the form ASSERT_EXPR <name, expr OP limit>.
2500         (register_edge_assert_for_2): New helper registering
2501         asserts for comparisons.  Recognize range tests of the form
2502         (unsigned)i - CST1 OP CST2.
2503         (register_edge_assert_for_1): Use it.
2504         (register_edge_assert_for): Likewise.
2505         (needs_overflow_infinity): Integer sub-types
2506         do not need overflow infinities.
2507         (vrp_val_is_max): The extreme values of integer sub-types
2508         are those of the base type.
2509         (vrp_val_is_min): Likewise.
2510         * tree.def (ASSERT_EXPR): Document extra allowed conditional
2511         expressions.
2512
2513 2008-03-28  Nick Clifton  <nickc@redhat.com>
2514
2515         PR target/31110
2516         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2517         Return GENERAL_REGS for stack adjustment reloads.
2518
2519 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2520
2521         PR target/31334
2522         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
2523         const_vector when all the vectors are constant.
2524
2525 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
2526
2527         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
2528         comparisons.
2529         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
2530         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
2531         (scc_sf): New.
2532         (s<code>_sf): Use new scc_sf attribute for opcode names.
2533
2534 2008-03-27  Tom Tromey  <tromey@redhat.com>
2535
2536         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
2537         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
2538         config/spu/t-spu-elf, config/i386/t-interix,
2539         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
2540         config/i386/x-darwin, config/i386/x-mingw32,
2541         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
2542         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
2543         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
2544         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
2545         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
2546         config/rs6000/x-darwin, config/rs6000/t-rs6000,
2547         config/score/t-score-elf, config/arm/t-strongarm-pe,
2548         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
2549         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
2550         Revert automatic dependency patch.
2551
2552 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2553
2554         PR target/35657
2555         * config/i386/i386.c (ix86_function_arg_boundary): Align
2556         decimal floating point to its natural boundary.
2557
2558 2008-03-27  Richard Guenther  <rguenther@suse.de>
2559
2560         PR middle-end/35716
2561         * fold-const.c (fold_comparison): Restrict distinct decl
2562         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
2563         solely rely on operand_equal_p.
2564
2565 2008-03-27  Richard Guenther  <rguenther@suse.de>
2566
2567         PR c/32511
2568         * c-common.c (handle_weak_attribute): Reject combination of
2569         weak and inline.
2570
2571 2008-03-27  Richard Guenther  <rguenther@suse.de>
2572
2573         PR tree-optimization/32810
2574         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
2575         conversions from DECL_INITIAL.
2576         (fold_const_aggregate_ref): Likewise from constructor elements.
2577
2578 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
2579
2580         * tree-affine.h (aff_combination_expand): Declare.
2581         (get_inner_reference_aff): Likewise.
2582         * tree-affine.c (aff_combination_expand): Split out from
2583         tree_to_aff_combination_expand.
2584         (get_inner_reference_aff): New function.
2585         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
2586         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
2587         (struct lim_aux_data): sm_done field removed.
2588         (mem_ref_loc_p, mem_ref_locs_p): New types.
2589         (struct mem_ref): Added id, stored, accesses_in_loop,
2590         indep_loop, dep_loop, indep_ref, dep_ref fields.
2591         Removed is_stored, locs and next fields.
2592         (memory_accesses): New variable.
2593         (movement_possibility): Do not allow moving statements
2594         that store to memory.
2595         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
2596         New functions.
2597         (determine_max_movement): For statements with memory references,
2598         find the outermost loop in that the reference is independent.
2599         (move_computations_stmt): Mark the virtual operands for renaming.
2600         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
2601         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
2602         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
2603         add_vop_ref_mapping, create_vop_ref_mapping_loop,
2604         create_vop_ref_mapping, analyze_memory_references,
2605         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
2606         get_all_locs_in_loop, ref_always_accessed_p,
2607         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2608         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2609         store_motion_loop, store_motion): New functions.
2610         (struct vop_to_refs_elt): New type.
2611         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2612         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2613         (schedule_sm): Replaced by...
2614         (execute_sm): ... this.
2615         (determine_lsm_ref, hoist_memory_references,
2616         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2617         find_more_ref_vops, free_mem_ref, free_mem_refs,
2618         determine_lsm_loop, determine_lsm): Removed.
2619         (tree_ssa_lim_finalize): Free data structures used by store motion.
2620         (tree_ssa_lim): Call analyze_memory_references.  Use
2621         store_motion instead of determine_lsm.
2622
2623 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2624
2625         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2626         rename tmake_file to m68hc11/t-m68hc11.
2627         (mcore): Set inhibit_libc to true.
2628         * config.host (alpha*-dec-*vms*): Set extra_programs.
2629         (interix3*): Don't use host_xmake_file.
2630         * configure.ac: Let config.gcc override inhibit_libc.
2631         * configure: Regenerate.
2632
2633         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2634         * config/t-openbsd-thread: Remove commented out lines.
2635         
2636         * config/x-interix: Remove.
2637
2638         * config/m68hc11/t-m68hc11-gas: Rename to...
2639         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2640
2641         * config/mcore/t-mcore: Remove T_CFLAGS.
2642         * config/mcore/t-mcore-pe: Likewise.
2643
2644 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2645
2646         * configure.ac: Replace custom __GNU_SOURCE test with
2647         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2648         * aclocal.m4: Regenerate.
2649         * configure: Regenerate.
2650         * config.in: Regenerate.
2651
2652 2008-03-27  Richard Guenther  <rguenther@suse.de>
2653
2654         * fold-const.c (target.h): Include.
2655         (fold_comparison): Fold comparison of addresses of decls
2656         that bind locally or of constants.  Consolidate address folding code.
2657         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2658         results from fold_binary_to_constant.
2659         (compare_values_warnv): Likewise.
2660
2661 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2662
2663         PR middle-end/35429
2664         * fold-const.c (fold_truthop): Check for integeral types when folding
2665         a == 0 && b == 0 and a != 0 || b != 0 .
2666
2667 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2668
2669         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2670
2671 2008-03-26  Andreas Schwab  <schwab@suse.de>
2672
2673         * doc/invoke.texi: Fix use of @item vs. @itemx.
2674
2675 2008-03-26  Tom Tromey  <tromey@redhat.com>
2676
2677         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2678         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2679         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2680         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2681         build/genconstants.o, build/genemit.o, build/genextract.o,
2682         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2683         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2684         options.h.
2685
2686 2008-03-26  Richard Guenther  <rguenther@suse.de>
2687
2688         Revert
2689         2008-03-26  Richard Guenther  <rguenther@suse.de>
2690
2691         * fold-const.c (target.h): Include.
2692         (fold_comparison): Fold comparison of addresses of two decls
2693         that bind locally.  Consolidate address folding code.
2694
2695 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2696
2697         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2698         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2699         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2700         dconstsqrt2, dconstthird, dconste and/or dconst10.
2701         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2702         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2703         dconstsqrt2, dconste): Delete.
2704         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2705         Constify variable.
2706         * real.c (get_real_const): New.
2707         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2708         dconstsqrt2, dconste): Delete.
2709         (real_value_const, get_real_const): New.
2710
2711 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2712
2713         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2714
2715         * config/i386/i386.c (ix86_function_arg_boundary): Check
2716         BIGGEST_ALIGNMENT instead of 128.
2717         (setup_incoming_varargs_64): Likewise.
2718
2719 2008-03-26  Tom Tromey  <tromey@redhat.com>
2720
2721         * Makefile.in (DEPFILES): Add missing '/'.
2722
2723 2008-03-26  Richard Guenther  <rguenther@suse.de>
2724
2725         * fold-const.c (target.h): Include.
2726         (fold_comparison): Fold comparison of addresses of two decls
2727         that bind locally.  Consolidate address folding code.
2728
2729 2008-03-26  Nick Clifton  <nickc@redhat.com>
2730
2731         PR target/31232
2732         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2733         not allow INT+INT as a legitimate addressing mode.
2734
2735 2008-03-26  Richard Guenther  <rguenther@suse.de>
2736
2737         * tree-flow.h (widen_bitfield): Remove declaration.
2738         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2739         (widen_bitfield): Remove function.
2740         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2741         code.
2742
2743 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2744
2745         PR target/31558
2746         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2747         error_mark_node's.
2748
2749 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2750
2751         PR rtl-optimization/35232
2752         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2753         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2754         reg_reloaded_call_part_clobbered here.
2755         (reload_regs_reach_end_p): New function.
2756         (reload_reg_rtx_for_input): New variable.
2757         (reload_reg_rtx_for_output): Likewise.
2758         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2759         when reassigning a pseudo register.  Load reloadreg from 
2760         reload_reg_rtx_for_input, moving the mode and register
2761         calculation to...
2762         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2763         instead of the original when deciding whether an input reload
2764         would be a no-op or whether an output reload can be deleted.
2765         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2766         when setting up new_spill_reg_store.  Load it from
2767         reload_reg_rtx_for_output, moving the mode and register
2768         calculation to...
2769         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2770         instead of the original when deciding whether an output reload
2771         would be a no-op.  Do the same when modifying insn notes.
2772         Use rtx_equal_p instead of == to compare the registers.
2773         (inherit_piecemeal_p): Take a mode and two register numbers
2774         as argument.
2775         (emit_reload_insns): Clear new_spill_reg_store for every hard
2776         register in the reload register.  Remove spill registers
2777         from reg_reloaded_valid before considering whether to record
2778         inheritance information for them.  Use reload_reg_rtx_for_output
2779         instead of reg_rtx when recording output reloads.  Use
2780         reload_reg_rtx_for_input instead of reg_rtx when recording
2781         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2782         at the same time as setting reg_reloaded_valid.
2783         (delete_output_reload): Add a new_reload_reg parameter and use it
2784         instead of rld[j].reg_rtx.
2785         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2786         calls accordingly.
2787
2788 2008-03-25  Tom Tromey  <tromey@redhat.com>
2789
2790         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2791         (build/genattr.o): Likewise.
2792         (build/genattrtab.o): Likewise.
2793         (build/gencodes.o): Likewise.
2794         (build/genconfig.o): Likewise.
2795         (build/genconstants.o): Likewise.
2796         (build/genemit.o): Likewise.
2797         (build/genextract.o): Likewise.
2798         (build/genflags.o): Likewise.
2799
2800 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2801         
2802         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2803         instead of size_int for integer types.
2804         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2805         to match type of MINUS_EXPR.
2806         
2807 2008-03-25  Tom Tromey  <tromey@redhat.com>
2808
2809         * configure: Rebuilt.
2810         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2811         Makefile.
2812
2813 2008-03-25  Tom Tromey  <tromey@redhat.com>
2814
2815         * config/x-solaris (host-solaris.o): Update.
2816         * config/x-linux (host-linux.o): Update.
2817         * config/x-hpux (host-hpux.o): Update.
2818         * config/x-darwin (host-darwin.o): Update.
2819         * config/v850/t-v850e (v850-c.o): Update.
2820         * config/v850/t-v850 (v850-c.o): Update.
2821         * config/t-vxworks (vxworks.o): Update.
2822         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2823         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2824         * config/spu/t-spu-elf (spu-c.o): Update.
2825         (spu.o): Remove.
2826         * config/sh/t-symbian (sh-c.o): Update.
2827         (symbian.o): Update.
2828         * config/sh/t-sh (sh-c.o): Update.
2829         * config/score/t-score-elf (score7.o, score3.o): Update.
2830         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2831         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2832         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2833         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2834         (rs6000.o): Remove.
2835         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2836         * config/m32c/t-m32c (m32c-pragma.o): Update.
2837         * config/ia64/t-ia64 (ia64-c.o): Update.
2838         * config/i386/x-mingw32 (host-mingw32.o): Update.
2839         * config/i386/x-i386 (driver-i386.o): Update.
2840         * config/i386/x-darwin (host-i386-darwin.o): Update.
2841         * config/i386/x-cygwin (host-cygwin.o): Update.
2842         * config/i386/t-nwld (nwld.o): Update.
2843         * config/i386/t-netware (netware.o): Update.
2844         * config/i386/t-interix (winnt.o): Update.
2845         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2846         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2847         msformat-c.o): Update.
2848         * config/bfin/t-bfin-linux (generated_files): Add
2849         linux-sysroot-suffix.h.
2850         * config/arm/t-wince-pe (pe.o): Update.
2851         * config/arm/t-strongarm-pe (pe.o): Update.
2852         * config/arm/t-pe (pe.o): Update.
2853         * config/arm/t-arm (arm-c.o): Update.
2854         * doc/install.texi (Prerequisites): Require make 3.80.
2855         * Makefile.in: Remove .o targets.
2856         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2857         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2858         (simple_generated_h, simple_generated_c): Move earlier.
2859         (generated_files): New variable.
2860         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2861         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2862         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2863         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2864         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2865         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2866         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2867         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2868         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2869         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2870         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2871         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2872         (.c.o): Remove.
2873         (COMPILE.base, COMPILE): New variables.
2874         (%.o): New pattern rule.
2875         (ALL_HOST_OBJS): New variable.
2876         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2877         (dummy-checksum.o, cc1-checksum.o): Remove.
2878         (DRIVER_SHLIB): New variable.
2879         (DRIVER_DEFINES): Use it.
2880         (gencondmd.c): Move out of build/.
2881         (s-conditions): Update.
2882         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2883         (ALL_BUILD_OBJS): Likewise.
2884         (build/%.o): Use BUILDCOMPILE.
2885         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2886         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2887         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2888         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2889         build/genconfig.o, build/genconstants.o, build/genemit.o,
2890         build/genextract.o, build/genflags.o, build/genmddeps.o,
2891         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2892         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2893         build/gen-protos.o, build/scan.o, build/fix-header.o,
2894         build/scan-decls.o): Simplify.
2895         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2896         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2897         prefix.o, toplev.o): Reduce to variable setting.
2898         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2899         ($(out_object_file), gcc-options.o): New targets.
2900         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2901         * configure: Rebuilt.
2902         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2903         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2904
2905 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2906
2907         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2908         complain when we hit an error, return ERROR_MARK_NODE.
2909
2910 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2911
2912         * config/sh/constraints.md (Pso, Psz): New constraints.
2913         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2914         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2915
2916 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2917
2918         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2919         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2920
2921 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2922
2923         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2924         (prefetch_sh2a): New.   
2925
2926 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2927             Naveen.H.S  <naveen.hs@kpitcummins.com>
2928
2929         * config/sh/constraints.md (I28): New constraint.
2930         * config/sh/sh.c (broken_move): Add support for movi20s.
2931         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2932
2933 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2934             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2935             Naveen.H.S  <naveen.hs@kpitcummins.com>
2936
2937         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2938         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2939         (print_operand): Handle resbank in %@ operand code.
2940         (sh_encode_section_info): New.
2941         (push_regs): Add conditions for resbank.
2942         (sh_expand_epilogue): Likewise.
2943         (sh_insert_attributes): Likewise.
2944         (sh_attribute_table): Likewise.
2945         (sh_handle_resbank_handler_attribute): New.
2946         (sh2a_handle_function_vector_handler_attribute): New.
2947         (sh2a_is_function_vector_call): New.
2948         (sh2a_get_function_vector_number): New.
2949         (sh2a_function_vector_p): New.
2950         (sh_cfun_resbank_handler_p): New.
2951         * config/sh/sh.md (calli): Emit jsr/n if possible.
2952         (calli_tbr_rel): New.
2953         (calli_pcrel): Emit jsr/n if possible.
2954         (return_i): Emit rts/n if possible.
2955         (call_valuei_tbr_rel): New.
2956         (call_valuei_pcrel): Add condition for SH2A target.
2957         (call_value): Likewise.
2958         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2959         (sh2a_get_function_vector_number): Likewise.
2960         (sh2a_is_function_vector_call): Likewise.
2961         * doc/extend.texi: Document TBR relative addressing of SH2A.
2962         (resbank): Add description for SH2A.
2963
2964 2008-03-24  Richard Guenther  <rguenther@suse.de>
2965
2966         PR c/22371
2967         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2968         pointer assignments change conversions according to middle-end rules.
2969         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2970         * configure.ac: Include type checking in yes.
2971         * configure: Regenerate.
2972
2973 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2974
2975         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2976         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2977         
2978 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2979
2980         * gthr-vxworks.h (UNUSED): Define.
2981
2982 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2985
2986 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2987
2988         * doc/extend.texi (Function Attributes): Add missing comma in the
2989         example of the "alloc_size" attribute.
2990         
2991 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2992
2993         Revert:
2994         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2995
2996         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2997         32bit host.
2998
2999         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3000
3001         PR target/35496
3002         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3003         of the underlying type of a MS bitfield layout to the natural
3004         alignment of the type.
3005
3006         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3007
3008         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3009         to their natural alignment to avoid store forwarding stalls.
3010
3011 2008-03-22  Richard Guenther  <rguenther@suse.de>
3012
3013         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
3014         For PHI nodes verify the address is invariant.
3015         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
3016         (get_symbol_constant_value): Use is_gimple_min_invariant.
3017         (maybe_fold_stmt_indirect): Likewise.
3018
3019 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
3020
3021         PR rtl-optimization/33927
3022         * Makefile.in (dse.o): Depend on $(TM_P_H).
3023         * expr.h (extract_low_bits): Declare.
3024         * expmed.c (extract_low_bits): New function.
3025         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
3026         * dse.c: Include tm_p.h.
3027         (find_shift_sequence): Remove the read_reg argument and return the
3028         read value.  Emit the instructions instead of returning them.
3029         Iterate on new_mode rather than calculating it each time.
3030         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
3031         source to NEW_MODE and extract_low_bits to convert the shifted
3032         value to READ_MODE.
3033         (replace_read): Allow the load and store to have different mode
3034         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
3035         or extraction instructions before trying the replacement.  Update
3036         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
3037
3038 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
3039
3040         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
3041         to their natural alignment to avoid store forwarding stalls.
3042
3043 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3044
3045         PR target/27946
3046         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
3047         encouraging but not allowing gprs for input;
3048         change the input constraint to !f#r.
3049         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
3050         gprs for output;
3051         change the output constraint to !f#r.
3052
3053 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
3054
3055         PR target/13958
3056         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
3057         corresponding post-reload splitters.
3058         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
3059         when x87 FP math is selected.
3060         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
3061         New function prototype.
3062         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
3063         unreachable function to ease macroization of insn patterns.
3064
3065 2008-03-21  Martin Jambor  <mjambor@suse.cz>
3066
3067         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
3068         reference dumps if ddr is NULL or dependence is unknown.
3069
3070 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3071
3072         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
3073         unsigned extension into account.
3074         (ATOMIC_COMPARE_AND_SWAP): Likewise.
3075         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
3076         Do computations on a scratch register.
3077
3078 2008-03-21  Richard Guenther  <rguenther@suse.de>
3079
3080         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3081         Use is_gimple_min_invariant instead of TREE_INVARIANT.
3082         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3083         * tree-ssa-dom.c (record_equality): Likewise.
3084         * tree-inline.c (copy_body_r): Likewise.
3085         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
3086         TREE_INVARIANT.
3087
3088 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3089
3090         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
3091         as 'delete_unused' argument.
3092
3093 2008-03-20  Richard Guenther  <rguenther@suse.de>
3094
3095         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
3096         special casing of constant qualifiers.
3097         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
3098         care about them in general.
3099         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
3100         regardless of their type.
3101         (fold_stmt_r): Forcefully fold *& if we end up with that.
3102
3103 2008-03-20  Paul Brook  <paul@codesourcery.com>
3104
3105         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
3106         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
3107         linker flags.
3108         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
3109         definition.
3110         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
3111         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
3112
3113 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
3114
3115         * common.opt (Wmudflap): New option.
3116         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
3117         (mx_register_decls): Likewise.
3118         (mudflap_finish_file): Likewise.
3119         * doc/invoke.texi: Document -Wno-mudflap.
3120
3121 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
3122
3123         * c-format.c (replace_format_name_to_system_name): New.
3124         (cmp_attribs): New.
3125         (convert_format_name_to_system_name): New.
3126         (decode_format_attr): Add use of convert_format_name_to_system_name.
3127         (format_types_orig): Add gnu_ prefix to names.
3128         (check_format_info_main): Special treating of \0 escaped names for
3129         supporting multi-character format specifiers as I32, I64.
3130         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
3131         (gnu_target_overrides_format_attributes): New.
3132         * c-format.h: Add structure target_ovr_attr to hold
3133         system specific formatter names.
3134         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
3135         msformat-c.o file to c_target_objs and cxx_target_objs.
3136         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3137         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
3138         (TARGET_N_FORMAT_TYPES): New.
3139         * config/i386/msformat-c.c: New.
3140         * config/i386/t-cygming: Add build rule for msformat-c.o.
3141         * doc/extend.texi: Add new format names gnu_* and ms_* and
3142         further details.
3143         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
3144
3145 2008-03-20  Ira Rosen  <irar@il.ibm.com>
3146
3147         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
3148         optimizations turned on under -O3.
3149         (ftree-vectorize): Add that the flag is turned on with -O3.
3150
3151 2008-03-20  Ben Elliston  <bje@au.ibm.com>
3152
3153         * regmove.c (try_auto_increment): Fix spelling error in comment.
3154         * final.c (final_scan_insn): Likewise.
3155
3156 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
3157
3158         PR target/14552
3159         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
3160         allocator preferences for "y" and "r" class registers.
3161         ("*mov<mode>_internal"): Ditto.
3162         ("*movv2sf_internal_rex64"): Ditto.
3163         ("*movv2sf_internal"): Ditto.
3164
3165 2008-03-19  Michael Matz  <matz@suse.de>
3166
3167         PR middle-end/35616
3168         * calls.c (expand_call): Check overlap of arguments with call
3169         address for sibcalls.
3170
3171 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
3172
3173         PR target/35496
3174         * stor-layout.c (update_alignment_for_field): Set minimum alignment
3175         of the underlying type of a MS bitfield layout to the natural
3176         alignment of the type.
3177
3178 2008-03-19  Jan Hubicka  <jh@suse.cz>
3179
3180         PR other/35094
3181         * toplev.c (decode_d_option): Handle all CPP flags.
3182         * tree-vrp.c: Update tree_pass descriptors.
3183         * regrename.c: Update tree_pass descriptors.
3184         * fwprop.c: Update tree_pass descriptors.
3185         * doc/invoke.texi: Remove documentation of dropped -d? flags.
3186         * tree-into-ssa.c: Update tree_pass descriptors.
3187         * tree-dump.c: Update tree_pass descriptors.
3188         * tree-complex.c: Update tree_pass descriptors.
3189         * tree-dump.h: Update tree_pass descriptors.
3190         * see.c: Update tree_pass descriptors.
3191         * cgraphbuild.c: Update tree_pass descriptors.
3192         * tracer.c: Update tree_pass descriptors.
3193         * tree-loop-distribution.c: Update tree_pass descriptors.
3194         * cgraph.c: Update tree_pass descriptors.
3195         * postreload-gcse.c: Update tree_pass descriptors.
3196         * postreload.c: Update tree_pass descriptors.
3197         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
3198         * tree-tailcall.c: Update tree_pass descriptors.
3199         * tree-pass.h (tree_opt_pass): Rename to ...
3200         (opt_pass) ... this one; add "type" field and remove letter field.
3201         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
3202         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
3203         all_lowering_passes): Update declaration.
3204         * ipa-cp.c: Update tree_pass descriptors.
3205         * final.c: Update tree_pass descriptors.
3206         * omp-low.c: Update tree_pass descriptors.
3207         * tree-ssa-dse.c: Update tree_pass descriptors.
3208         * ipa-reference.c: Update tree_pass descriptors.
3209         * tree-ssa-uncprop.c: Update tree_pass descriptors.
3210         * auto-inc-dec.c: Update tree_pass descriptors.
3211         * reorg.c: Update tree_pass descriptors.
3212         * cgraphunit.c: Update tree_pass descriptors.
3213         * tree-ssa-copyrename.c: Update tree_pass descriptors.
3214         * tree-ssa-ccp.c: Update tree_pass descriptors.
3215         * df-core.c: Update tree_pass descriptors.
3216         * mode-switching.c: Update tree_pass descriptors.
3217         * tree-nomudflap.c: Update tree_pass descriptors.
3218         * modulo-sched.c: Update tree_pass descriptors.
3219         * ipa-pure-const.c: Update tree_pass descriptors.
3220         * cse.c: Update tree_pass descriptors.
3221         * web.c: Update tree_pass descriptors.
3222         * tree-stdarg.c: Update tree_pass descriptors.
3223         * tree-ssa-math-opts.c: Update tree_pass descriptors.
3224         * tree-ssa-dom.c: Update tree_pass descriptors.
3225         * tree-nrv.c: Update tree_pass descriptors.
3226         * tree-ssa-alias.c: Update tree_pass descriptors.
3227         * loop-init.c: Update tree_pass descriptors.
3228         * gimple-low.c: Update tree_pass descriptors.
3229         * ipa-inline.c: Update tree_pass descriptors.
3230         * tree-ssa-sink.c: Update tree_pass descriptors.
3231         * global.c: Update tree_pass descriptors.
3232         * ifcvt.c: Update tree_pass descriptors.
3233         * jump.c: Update tree_pass descriptors.
3234         * predict.c: Update tree_pass descriptors.
3235         * tree-ssa-loop.c: Update tree_pass descriptors.
3236         * recog.c: Update tree_pass descriptors.
3237         * dse.c: Update tree_pass descriptors.
3238         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
3239         * tree-eh.c: Update tree_pass descriptors.
3240         * regmove.c: Update tree_pass descriptors.
3241         * local-alloc.c
3242         * function.c: Update tree_pass descriptors.
3243         * tree-vectorizer.c: Update tree_pass descriptors.
3244         * gcse.c: Update tree_pass descriptors.
3245         * ipa-type-escape.c: Update tree_pass descriptors.
3246         * tree-if-conv.c: Update tree_pass descriptors.
3247         * init-regs.c: Update tree_pass descriptors.
3248         * ipa.c: Update tree_pass descriptors.
3249         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3250         * rtl-factoring.c: Update tree_pass descriptors.
3251         * lower-subreg.c: Update tree_pass descriptors.
3252         * bt-load.c: Update tree_pass descriptors.
3253         * tree-dfa.c: Update tree_pass descriptors.
3254         * except.c: Update tree_pass descriptors.
3255         * emit-rtl.c: Update tree_pass descriptors.
3256         * cfgexpand.c: Update tree_pass descriptors.
3257         * tree-cfgcleanup.c: Update tree_pass descriptors.
3258         * cfgcleanup.c: Update tree_pass descriptors.
3259         * tree-ssa-pre.c: Update tree_pass descriptors.
3260         * tree-sra.c: Update tree_pass descriptors.
3261         * tree-mudflap.c: Update tree_pass descriptors.
3262         * tree-ssa-copy.c: Update tree_pass descriptors.
3263         * cfglayout.c: Update tree_pass descriptors.
3264         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3265         * tree-ssa-dce.c: Update tree_pass descriptors.
3266         * tree-ssa.c: Update tree_pass descriptors.
3267         * regclass.c: Update tree_pass descriptors.
3268         * integrate.c: Update tree_pass descriptors.
3269         * tree-optimize.c: Update tree_pass descriptors.
3270         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3271         * tree-object-size.c: Update tree_pass descriptors.
3272         * combine.c: Update tree_pass descriptors.
3273         * tree-outof-ssa.c: Update tree_pass descriptors.
3274         * bb-reorder.c: Update tree_pass descriptors.
3275         * stack-ptr-mod.c: Update tree_pass descriptors.
3276         * var-tracking.c: Update tree_pass descriptors.
3277         * tree-profile.c: Update tree_pass descriptors.
3278         * tree-vect-generic.c: Update tree_pass descriptors.
3279         * reg-stack.c: Update tree_pass descriptors.
3280         * sched-rgn.c: Update tree_pass descriptors.
3281         * tree-ssa-structalias.c: Update tree_pass descriptors.
3282         * tree-cfg.c: Update tree_pass descriptors.
3283         * passes.c (current_pass): Update declaration.
3284         (finish_optimization_passes): Update.
3285         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3286         (register_one_dump_file, register_dump_files_1, next_pass_1):
3287         Update arguments.
3288         (init_optimization_passes): Update handling of new types.
3289         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3290         * ipa-struct-reorg.c: Update tree_pass descriptors.
3291         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3292         * combine-stack-adj.c: Update tree_pass descriptors.
3293         * cfgrtl.c: Update tree_pass descriptors.
3294         * dce.c: Update tree_pass descriptors.
3295         * tree-ssanames.c: Update tree_pass descriptors.
3296
3297 2008-03-19  Richard Guenther  <rguenther@suse.de>
3298
3299         PR middle-end/35609
3300         * tree-ssa.c (walk_data): New structure.
3301         (warn_uninitialized_var): If not always_executed warn with "maybe"
3302         instead of "is".
3303         (execute_early_warn_uninitialized): Compute post-dominators.
3304         Initialize always_executed before processing each basic block.
3305
3306 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3307
3308         PR target/35504
3309         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3310         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3311
3312 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3313
3314         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3315
3316 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3317
3318         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3319         is true.
3320         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3321         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3322         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3323         target after ignore has been set, and move there also the commputation
3324         of subtarget and original_target.
3325         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3326         (LANG_HOOKS_INITIALIZER): Remove it.
3327         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3328
3329 2008-03-18  Richard Guenther  <rguenther@suse.de>
3330
3331         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3332         found an expression with constants, note that in the VN for the lhs.
3333         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3334         fold them to constants if possible.  Run cleanup_cfg if done so.
3335         (execute_pre): Return todo.
3336         (do_pre): Likewise.
3337         (execute_fre): Likewise.
3338         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3339         of constants.
3340         (get_prop_source_stmt): Look through pointer conversions.
3341
3342 2008-03-18  Jan Hubicka  <jh@suse.cz>
3343
3344         * tree-pretty-print.c: Include predict.h.
3345         (dump_generic_node): Dump predictor.
3346         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3347         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3348         * gimple-low.c (lower_stmt): Likewise.
3349         * expr.c (expand_expr_real): Likewise.
3350         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3351         them.
3352         (build_predict_expr, build_predict_expr): New.
3353         * predict.h (predictor_name, build_predict_expr): Update.
3354         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3355         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3356         * predict.def (PRED_CONTINUE): Update hitrate.
3357         * tree.def (PREDICT_EXPR): Define.
3358         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3359         do not handle BIND_EXPR.
3360         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3361         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3362         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3363         operands.
3364
3365 2008-03-18  Michael Matz  <matz@suse.de>
3366
3367         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3368
3369 2008-03-18  Richard Guenther  <rguenther@suse.de>
3370
3371         * tree-gimple.h (is_gimple_invariant_address): Declare.
3372         (is_gimple_constant): Likewise.
3373         * tree-gimple.c (is_gimple_constant): New function.
3374         (is_gimple_invariant_address): Likewise.
3375         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3376         and is_gimple_invariant_address.
3377         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3378         previous change.
3379         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3380         an addressable base.
3381
3382 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR middle-end/35611
3385         * gimplify.c (gimplify_expr): Gimplify second operand of
3386         OMP_ATOMIC_LOAD.
3387
3388 2008-03-17  Richard Guenther  <rguenther@suse.de>
3389
3390         PR tree-optimization/19637
3391         * fold-const.c (fold_unary): Remove restrictions of removing
3392         intermediate pointer-conversions (P2)(P1)P0.
3393         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3394         conversion to void pointer.
3395         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3396
3397 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3398
3399         PR debug/31510
3400         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3401         emulated thread local variables.
3402
3403 2008-03-16  Richard Guenther  <rguenther@suse.de>
3404
3405         PR middle-end/35607
3406         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3407         expand TREE_INVARIANT operations that are not gimple invariant.
3408
3409 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
3410
3411         * doc/extend.texi (Alignment): Say that the ABI controls
3412         the __alignof__ for non-strict-alignment targets rather
3413         than being a recommendation.
3414
3415 2008-03-15  Paul Brook  <paul@codesourcery.com>
3416
3417         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
3418         annotations.
3419         (arm_output_fn_unwind): Mark functions that can not be unwound.
3420
3421 2008-03-15  Paul Brook  <paul@codesourcery.com>
3422
3423         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
3424         extension instructions.
3425
3426 2008-03-15  Richard Guenther  <rguenther@suse.de>
3427
3428         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
3429         and fold constant aggregate refs.
3430         (fold_const_aggregate_ref): Handle string constants
3431         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
3432         (evaluate_stmt): Simplify now that ccp_fold folds constant
3433         aggregate refs.
3434
3435 2008-03-15  Paul Brook  <paul@codesourcery.com>
3436
3437         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
3438         (extzv): Use gen_extzv_t2.
3439         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
3440
3441 2008-03-15  Richard Guenther  <rguenther@suse.de>
3442
3443         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
3444         (fold_const_aggregate_ref): Likewise.
3445         (get_value): Return NULL if we don't have any values.
3446         (ccp_finalize): Set const_val to NULL after freeing it.
3447         * tree-flow.h (get_symbol_constant_value): Declare.
3448         (fold_const_aggregate_ref): Likewise.
3449         * tree-ssa-sccvn.c (try_to_simplify): Use them.
3450
3451 2008-03-15  Richard Guenther  <rguenther@suse.de>
3452
3453         PR middle-end/35593
3454         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
3455         to not produce negative array indices if not allowed.  Add
3456         parameter to indicate that.
3457         (maybe_fold_offset_to_component_ref): Allow negative array
3458         indices only for the first member of a structure.
3459         (maybe_fold_offset_to_reference): Allow negative array indices.
3460         (maybe_fold_stmt_addition): Likewise.
3461
3462 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
3463             Anatoly Sokolov <aesok@post.ru>
3464
3465         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
3466         (avr_arch): Add ARCH_AVR6.
3467         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
3468         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
3469         instead of fixed value 2.
3470         (print_operand_address): Use gs() asm specifier instead of pm().
3471         (avr_assemble_integer): (Ditto.).
3472         (avr_output_addr_vec_elt): (Ditto.).
3473         (print_operand): Handle "!" code.
3474         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
3475         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
3476         (AVR_HAVE_EIJMP_EICALL): Define.
3477         (AVR_3_BYTE_PC): Redefine.
3478         (AVR_2_BYTE_PC): (Ditto.).
3479         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
3480         (LINK_SPEC): Add atmega2560 and atmega2561.
3481         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
3482         (crtm2561.o).
3483         * config/avr/avr.md (call_insn): Use eicall instead of icall 
3484         for 3 byte PC devices.
3485         (call_value_insn): (Ditto.).
3486         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
3487         (indirect_jump): Use only for for 2 byte PC devices.
3488         (*tablejump): (Ditto.).
3489         (*indirect_jump_avr6): Add insn.
3490         (*tablejump_rjmp): Don't use for 3 byte PC devices.
3491         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
3492         instead of ijmp for 3 byte PC devices.
3493         (__tablejump2__): (Ditto.).
3494         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
3495         (MULITLIB_DIRNAMES): (Ditto.). 
3496         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
3497
3498 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
3499
3500         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
3501         "sse2_umulsidi3".  Use V1DI mode for operand 0.
3502         ("mmx_psadbw"): Use V1DI mode for operand 0.
3503         * config/i386/i386-modes.def (V1SI): New vector mode.
3504         * config/i386/i386.c (struct builtin_description)
3505         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
3506         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
3507         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
3508         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
3509         v1di_ftype_v8qi_v8qi type.
3510         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
3511
3512         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
3513         __builtin_ia32_pmuludq]: Fix the mode of return value.
3514
3515 2008-03-15  Richard Guenther  <rguenther@suse.de>
3516
3517         PR middle-end/35595
3518         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
3519         being a PHI_NODE.
3520
3521 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
3522         
3523         * doc/invoke.texi (Option Summary, Xtensa Options): Document
3524         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
3525         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
3526         unless TARGET_SERIALIZE_VOLATILE is enabled.
3527         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
3528         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
3529         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
3530
3531 2008-03-14  Richard Guenther  <rguenther@suse.de>
3532
3533         PR tree-optimization/34172
3534         * tree-flow.h (refs_may_alias_p): Declare.
3535         (get_single_def_stmt): Likewise.
3536         (get_single_def_stmt_from_phi): Likewise.
3537         (get_single_def_stmt_with_phi): Likewise.
3538         * tree-dfa.c (refs_may_alias_p): New function.
3539         (get_single_def_stmt): Likewise.
3540         (get_single_def_stmt_from_phi): Likewise.
3541         (get_single_def_stmt_with_phi): Likewise.
3542         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
3543         (vn_reference_lookup_1): New helper function.
3544         (vn_reference_lookup): Walk the virtual use-def chain to
3545         continue searching for a match if the def does not alias the
3546         reference we are looking for.
3547
3548 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
3549
3550         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
3551         archive and Perzl.  Update The Written Word listing.
3552
3553 2008-03-14  Richard Guenther  <rguenther@suse.de>
3554
3555         PR tree-optimization/34043
3556         PR tree-optimization/33989
3557         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
3558         when doing FRE.
3559         (bitmap_find_leader): Use extra argument to verify dominance
3560         relationship inside a basic-block.
3561         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
3562         (find_leader_in_sets): Adjust.
3563         (create_component_ref_by_pieces): Take extra argument for
3564         dominance check, handle lookup failures.
3565         (find_or_generate_expression): Likewise.
3566         (create_expression_by_pieces): Likewise.
3567         (insert_into_preds_of_block): Adjust.
3568         (create_value_expr_from): If asked for, verify all operands
3569         are in the blocks AVAIL_OUT set.
3570         (make_values_for_stmt): Check for SSA_NAMEs that are life
3571         over an abnormal edge.
3572         (compute_avail): Remove such check.
3573         (do_SCCVN_insertion): New function.
3574         (eliminate): If we do not find a leader suitable for replacement
3575         insert a replacement expression from SCCVN if available.
3576         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
3577         (struct vn_ssa_aux): Add needs_insertion flag.
3578         * tree-ssa-sccvn.c (may_insert): New global flag.
3579         (copy_reference_ops_from_ref): Value-number union member access
3580         based on its size, not type and member if insertion is allowed.
3581         (visit_reference_op_load): For a weak match from union type
3582         punning lookup a view-converted value and insert a SSA_NAME
3583         for that value if that is not found.
3584         (visit_use): Make dumps shorter.  Do not disallow value numbering
3585         SSA_NAMEs that are life over an abnormal edge to constants.
3586         (free_scc_vn): Release inserted SSA_NAMEs.
3587         (run_scc_vn): New flag to specify whether insertion is allowed.
3588         Process SSA_NAMEs in forward order.
3589         * tree-ssa-loop-im.c (for_each_index): Handle invariant
3590         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
3591         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
3592         pointer type to/from integral types that do not change the
3593         precision to regular conversions.
3594
3595 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3596
3597         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3598         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3599         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
3600         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
3601         input arguments and the mode of return value.  Built-in functions
3602         that operate on whole 64-bit MMX register now use V1DI mode.
3603
3604 2008-03-13  Alon Dayan  <alond@il.ibm.com>
3605             Olga Golovanevsky  <olga@il.ibm.com>
3606
3607         PR tree-optimization/35041
3608         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3609         to locate the right position in a statement.
3610
3611 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3612
3613         PR target/34000
3614         PR target/35553
3615         * config/i386/xmmintrin.h:  Change all static inline functions to
3616         extern inline and add __gnu_inline__ attribute.
3617         * config/i386/bmintrin.h: Ditto.
3618         * config/i386/smmintrin.h: Ditto.
3619         * config/i386/tmmintrin.h: Ditto.
3620         * config/i386/mmintrin-common.h: Ditto.
3621         * config/i386/ammintrin.h: Ditto.
3622         * config/i386/emmintrin.h: Ditto.
3623         * config/i386/pmmintrin.h: Ditto.
3624         * config/i386/mmintrin.h: Ditto.
3625         * config/i386/mm3dnow.h: Ditto.
3626
3627 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3628
3629         PR middle-end/35185
3630         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3631         (lower_omp_2): New function.
3632         (lower_omp_1, lower_omp): Rewritten.
3633
3634 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3635
3636         PR 35054
3637         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3638         with the phrase "Microsoft Windows compilers".
3639         (Push/Pop Macro Pragmas): New subsection. Document
3640         #pragma push_macro and pragma pop_macro.
3641
3642 2008-03-12  Paul Brook  <paul@codesourcery.com>
3643
3644         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3645
3646 2008-03-12  Paul Brook  <paul@codesourcery.com>
3647
3648         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3649         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3650         (thumb2_addsi_shortim): Rename ...
3651         (thumb2_addsi_short): ... to this.  Allow register operands.
3652         (thumb2_subsi_short): New pattern.
3653         (thumb2_one_cmplsi2_short,
3654         thumb2_negsi2_short): New patterns and peepholes.
3655
3656 2008-03-12  Paul Brook  <paul@codesourcery.com>
3657
3658         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3659
3660 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3661
3662         * config/i386/i386.md (int_cond): New code iterator.
3663         (fp_cond): Ditto.
3664         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3665         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3666         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3667         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3668         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3669         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3670         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3671         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3672
3673 2008-03-12  Paul Brook  <paul@codesourcery.com>
3674
3675         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3676         instead of {arm,thumb}_compute_save_reg_mask.
3677         (output_return_instruction): Ditto.
3678         (thumb_unexpanded_epilogue): Ditto.
3679         (thumb1_expand_prologue): Ditto.
3680         (thumb1_output_function_prologue): Ditto.
3681         (arm_set_return_address): Ditto.
3682         (thumb_set_return_address): Ditto.
3683         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3684         regs to achieve stack alignment.
3685         (thumb1_compute_save_reg_mask): Fix compiler warning.
3686         (arm_output_epilogue): Use offsets->saved_regs_mask.
3687         Adjust stack pointer by poping call clobered registers.
3688         (arm_expand_prologue): Use offsets->saved_regs_mask.
3689         Adjust stack pointer by pushing extra registers.
3690         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3691
3692 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3693
3694         PR tree-opt/35422
3695         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3696         conversion to the operands of a multiplication.
3697
3698 2008-03-12  Richard Guenther  <rguenther@suse.de>
3699
3700         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3701         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3702         * timevar.def (TV_TREE_PHIPROP): Add.
3703         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3704         pass description.  Use TV_TREE_PHIPROP.
3705         * tree-ssa-forwprop.c: Remove phiprop code.
3706
3707 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3708
3709         PR middle-end/35549
3710         * omp-low.c (maybe_lookup_decl): Constify first argument.
3711         (use_pointer_for_field): Change last argument from bool to
3712         omp_context *.  Disallow shared copy-in/out in nested
3713         parallel if decl is shared in outer parallel too.
3714         (build_outer_var_ref, scan_sharing_clauses,
3715         lower_rec_input_clauses, lower_copyprivate_clauses,
3716         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3717
3718 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3719             Ira Rosen  <irar@il.ibm.com>
3720
3721         * tree-vectorizer.c (free_stmt_vec_info): New function.
3722         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3723         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3724         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3725         * tree-vect-transform.c (vectorizable_conversion): Free
3726         vec_oprnds0 if it was allocated.
3727         (vect_permute_store_chain): Remove unused VECs.
3728         (vectorizable_store): Free VECs that are allocated in the..
3729         function.
3730         (vect_transform_strided_load, vectorizable_load): Likewise.
3731         (vect_remove_stores): Simplify the code.
3732         (vect_transform_loop): Move code to vect_remove_stores().
3733         Call vect_remove_stores() and free_stmt_vec_info().
3734
3735 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3736
3737         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3738         TARGET_HPUX.  Revise comment.
3739         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3740         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3741         Use sr4 variant of `be' instruction when not generating PIC code.
3742         (attr_length_call): Adjust for above change.
3743
3744 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3745
3746         * ipa-reference.c (static_execute): Remove module_statics_const and
3747         associated setting code.
3748
3749 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3750
3751         PR target/35540
3752         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3753         predicate for operand 1.
3754         (paritysi2_cmp): Use register_operand predicate for operand 2.
3755         Use earlyclobber modifier for operand 1.  Remove support for
3756         memory operands.
3757         (paritydi2_cmp): Use register_operand predicate for operand 3.
3758         Use earlyclobber modifier for operand 1.  Remove support for
3759         memory operands.
3760
3761 2008-03-11  Paul Brook  <paul@codesourcery.com>
3762             Vladimir Prus  <vladimir@codesourcery.com>
3763
3764         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3765         (arm_compute_save_reg0_reg12_mask): Always
3766         check if register 11 must be saved.  Always safe hard frame pointer
3767         when frame_pointer_needeed.
3768         (arm_compute_save_reg_mask): Save IP and PC
3769         only with apcs frames.
3770         (arm_output_epilogue): Adjust Thumb2 codepath to
3771         be also invoked and work for ARM non-apcs frames.
3772         (arm_expand_prologue): Don't bother saving IP
3773         for non-apcs frame, since it's not clobbered by
3774         prologue code.  Implement non-apcs frame
3775         layout.
3776
3777 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3778
3779         PR rtl-optimization/35281
3780         * expr.c (convert_move): Use a new pseudo for the intermediate
3781         from_mode->word_mode result.
3782
3783 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3784
3785         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3786         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3787         * toplev.c (compile_file): Don't call it.
3788
3789 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3790
3791         PR middle-end/35526
3792         * expr.c (store_expr): Call emit_block_move if the mode
3793         of "temp" RTX is BLKmode.
3794
3795 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3796             Richard Guenther  <rguenther@suse.de>
3797
3798         PR tree-optimization/31358
3799         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3800         the step with a NULL_TREE.
3801         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3802         to sizetype if type is a pointer type.
3803         (add_candidate_1): Don't convert the base and step to
3804         the generic type if the orginal type is a pointer type.
3805         (add_iv_value_candidates): Use sizetype for the step
3806         if type is a pointer type.
3807         (cand_value_at): Likewise.
3808         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3809         for pointer types.
3810         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3811         Don't convert the tem affine to the type.
3812         (add_elt_to_tree): Use sizetype for the step if a pointer.
3813         Use POINTER_PLUS_EXPR for pointers.
3814         (aff_combination_to_tree): Use sizetype for the step if a
3815         pointer.
3816
3817 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3818
3819         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3820         Remove commutativity hint.
3821
3822 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3823
3824         PR c/35438
3825         PR c/35439
3826         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3827         errorneous type.  Check that v is a VAR_DECL.
3828
3829         PR middle-end/35099
3830         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3831
3832 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3833
3834         PR tree-optimization/35494
3835         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3836         may be overriden at link and run time.
3837
3838 2008-03-10  Richard Guenther  <rguenther@suse.de>
3839
3840         PR tree-optimization/34677
3841         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
3842         (poolify_tree): Likewise.
3843         (modify_expr_template): Likewise.
3844         (poolify_modify_stmt): Likewise.
3845         (insert_fake_stores): Handle all component-ref style stores
3846         in addition to INDIRECT_REF.  Also handle complex types.
3847         Do not poolify the inserted load.
3848         (realify_fake_stores): Do not rebuild the tree but only
3849         make it a SSA_NAME copy.
3850         (init_pre): Remove initialzation of modify_expr_template.
3851         Do not allocate modify_expr_node_pool.
3852         (fini_pre): Do not free modify_expr_node_pool.
3853
3854 2008-03-10  Paul Brook  <paul@codesourcery.com>
3855
3856         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
3857         to avoid conflicts.
3858
3859 2008-03-10  Paul Brook  <paul@codesourcery.com>
3860             Mark Shinwell  <shinwell@codesourcery.com>
3861
3862         * config/arm/cortex-r4.md: New.
3863         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
3864         insn attributes.
3865         * config/arm/arm.md: Include cortex-r4.md.
3866         (insn): Add smmls, sdiv and udiv values.
3867         (generic_sched): Don't use generic scheduling for Cortex-R4.
3868         (arm_issue_rate): New function.
3869         (TARGET_SCHED_ISSUE_RATE): Define.
3870
3871 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
3872
3873         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
3874
3875 2008-03-10  Richard Guenther  <rguenther@suse.de>
3876
3877         * tree-ssa-pre.c (get_sccvn_value): Simplify.
3878         (compute_avail): Do not add stmt uses to AVAIL_OUT.
3879
3880 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
3881
3882         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3883         Set default to true.
3884
3885 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3886
3887         * c.opt (Wsynth): Deprecate.
3888         * doc/invoke.texi (Option Summary, Warning Options): Document
3889         -Wno-format-contains-nul.
3890
3891 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
3892
3893         PR target/35496
3894         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
3895         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
3896
3897 2008-03-09  Ira Rosen  <irar@il.ibm.com>
3898
3899         * config/rs6000/rs6000.c (builtin_description): Rename vector
3900         left shift operations.
3901         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
3902         (altivec_vsl<VI_char>): Rename to ...
3903         (ashl<mode>3): ... new name.
3904         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
3905         gen_ashlv4si3.
3906         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
3907
3908 2008-03-08  Richard Guenther  <rguenther@suse.de>
3909
3910         * coverage.h (tree_coverage_counter_addr): Declare.
3911         * coverage.c (tree_coverage_counter_addr): New function.
3912         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
3913         before using again.
3914         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
3915         (tree_gen_one_value_profiler): Likewise.
3916         (tree_gen_ic_profiler): Likewise.
3917         (tree_gen_average_profiler): Likewise.
3918         (tree_gen_ior_profiler): Likewise.
3919
3920 2008-03-08  Richard Guenther  <rguenther@suse.de>
3921
3922         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
3923         (vn_binary_op_insert): Likewise.
3924         (vn_unary_op_lookup): Likewise.
3925         (vn_unary_op_insert): Likewise.
3926         (vn_nary_op_lookup): Declare.
3927         (vn_nary_op_insert): Likewise.
3928         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
3929         and binary hashes, use a single obstack for unary_op_pool
3930         and binary_op_pool.
3931         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
3932         a single struct vn_nary_op_s.  Store tree code length and
3933         a variable number of operands.
3934         (struct vn_reference_op_struct): Remove unused op2.
3935         (vn_reference_op_eq): Do not compare op2.
3936         (vn_reference_op_compute_hash): Do not compute hash of op2.
3937         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
3938         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
3939         with vn_nary_op_compute_hash.
3940         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
3941         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
3942         vn_nary_op_lookup.
3943         (vn_unary_op_insert, vn_binary_op_insert): Replace with
3944         vn_nary_op_insert.
3945         (visit_unary_op): Call nary functions.
3946         (visit_binary_op): Likewise.
3947         (process_scc): Adjust for struct vn_tables_s changes.
3948         (allocate_vn_table): Likewise.
3949         (free_vn_table): Likewise.
3950         * tree-vn.c (vn_add): Call nary functions.
3951         (vn_lookup): Likewise.
3952
3953 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
3954
3955         PR target/35498
3956         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
3957         wdst back after sync_compare_and_swapqhi_internal.
3958
3959 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
3960
3961         PR target/22152
3962         * config/i386/i386-modes.def (V1DI): New vector mode.
3963         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
3964         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
3965         (MMXMODE248): Ditto.
3966         (MMXMODE): Add V1DI mode.
3967         (mmxvecsize): Change DI mode to V1DI mode.
3968         ("mov<mode>): Use MMXMODEI8 mode iterator.
3969         ("*mov<mode>_internal_rex64"): Ditto.
3970         ("*mov<mode>_internal"): Ditto.
3971         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
3972         ("mmx_sub<mode>3"): Ditto.
3973         ("mmx_adddi3"): Remove insn pattern.
3974         ("mmx_subdi3"): Ditto.
3975         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
3976         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
3977         ("mmx_ashl<mode>3"): Ditto.
3978         ("mmx_lshrdi3"): Remove insn pattern.
3979         ("mmx_ashldi3"): Ditto.
3980         * config/i386/i386.c (classify_argument): Handle V1DImode.
3981         (function_arg_advance_32): Ditto.
3982         (function_arg_32): Ditto.
3983         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
3984         mmx_addv1di3 insn pattern.
3985         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
3986         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
3987         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
3988         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
3989         Remove definitions of built-in functions.
3990         (V1DI_type_node): New node.
3991         (v1di_ftype_v1di_int): Ditto.
3992         (v1di_ftype_v1di_v1di): Ditto.
3993         (v2si_ftype_v2si_si): Ditto.
3994         (v4hi_ftype_v4hi_di): Remove node.
3995         (v2si_ftype_v2si_di): Ditto.
3996         (ix86_init_mmx_sse_builtins): Handle V1DImode.
3997         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
3998         Redefine builtins using def_builtin_const with *_ftype_*_int node.
3999         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
4000         Add new builtins using def_builtin_const.
4001         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
4002         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
4003         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
4004         * config/i386/mmintrin.h (__v1di): New typedef.
4005         (_mm_add_si64): Cast arguments to __v1di type.
4006         (_mm_sub_si64): Ditto.
4007         (_mm_sll_pi16): Cast __count to __v4hi type.
4008         (_mm_sll_pi32): Cast __count to __v2si type.
4009         (_mm_sll_si64): Cast arguments to __v1di type.
4010         (_mm_srl_pi16): Cast __count to __v4hi type.
4011         (_mm_srl_pi32): Cast __count to __v2si type.
4012         (_mm_srl_si64): Cast arguments to __v1di type.
4013         (_mm_sra_pi16): Cast __count to __v4hi type.
4014         (_mm_sra_pi32): Cast __count to __v2si type.
4015         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
4016         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
4017         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
4018         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
4019         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
4020         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
4021         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
4022         (_mm_srai_pi32): Use __builtin_ia32_psradi.
4023         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
4024         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4025         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4026         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
4027
4028 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
4029
4030         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
4031
4032 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
4033
4034         PR target/35373
4035         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
4036         reg+const addressing for Altivec modes.  Don't generate reg+reg
4037         addressing for TFmode or TDmode quantities.
4038
4039 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
4040
4041         * c-common.c (vector_types_convertible_p): Call langhook
4042         instead of comptypes.
4043
4044 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4045
4046         PR tree-opt/35402
4047         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
4048         integral and scalar float variables which have a
4049         NULL DECL_INITIAL.
4050
4051 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
4052
4053         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
4054         dwarf_register_span hook when emitting unwind information for
4055         register-to-memory saves.
4056         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
4057         (rs6000_frame_related): Remove call to spe_synthesize_frame.
4058
4059 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4060
4061         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
4062         for the same VAR_DECL.
4063
4064 2008-03-06  Tom Tromey  <tromey@redhat.com>
4065
4066         * treelang: Delete.
4067         * doc/standards.texi (Standards): Don't mention treelang.
4068         * doc/invoke.texi (Overall Options): Don't mention treelang.
4069         * doc/install.texi (Prerequisites): Don't mention bison or
4070         treelang.
4071         (Configuration): Don't mention treelang.
4072         (Building): Likewise.
4073         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
4074
4075 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
4076
4077         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
4078         word-extractions out of a multi-word object.
4079
4080 2008-03-06  Richard Guenther  <rguenther@suse.de>
4081
4082         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
4083         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
4084         result type and precision.
4085         * expr.c (get_inner_reference): Set unsignedp based on the result
4086         type of BIT_FIELD_REF.
4087         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
4088         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
4089         (try_instantiate_multiple_fields): Likewise.  Use the correct type
4090         for BIT_FIELD_REF.
4091         (sra_build_assignment): Likewise.
4092         (sra_build_elt_assignment): Likewise.
4093         (sra_explode_bitfield_assignment): Likewise.
4094         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
4095         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
4096         set BIT_FIELD_REF_UNSIGNED.
4097         (vectorizable_load): Likewise.
4098
4099 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4100
4101         * cse.c (cse_extended_basic_block): Invalidate artificial defs
4102         at bb start.
4103
4104 2008-03-06  Richard Guenther  <rguenther@suse.de>
4105
4106         * alias.c (struct alias_set_entry): Move has_zero_child field
4107         to pack with alias_set.
4108
4109 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4110
4111         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4112         32bit host.
4113
4114 2008-03-05  Ian Lance Taylor  <iant@google.com>
4115
4116         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
4117
4118 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
4119
4120         * fwprop.c (update_df): Support width and offset parameters of
4121         df_ref_create.
4122         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
4123         global_conflicts): Change DF_REF_EXTRACT to either
4124         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4125         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4126         * df-scan.c (df_ref_record, df_defs_record,
4127         df_ref_create_structure, df_def_record_1, df_uses_record,
4128         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
4129         df_bb_refs_collect, df_entry_block_defs_collect,
4130         df_exit_block_uses_collect): Support new width and offset fields.
4131         (ref_extract_pool): New storage pool.
4132         (df_free_ref): New function.
4133         (df_reg_chain_unlink, df_free_collection_rec,
4134         df_sort_and_compress_refs): Call df_free_ref.
4135         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
4136         of df_ref_extract.
4137         (df_ref_create_structure): Allocate df_ref_extract if offset and
4138         width fields are used.
4139         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
4140         (df_uses_record): Get offset and width from ZERO_EXTRACT 
4141         and SIGN_EXTRACT.
4142         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
4143         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4144         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4145         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
4146         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4147         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4148         (df_ref_extract): New structure.
4149         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
4150         (df_ref_create): Add width and offset parameters.
4151         
4152 2008-03-05  Richard Guenther  <rguenther@suse.de>
4153
4154         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4155         Use ranges_overlap_p.
4156         (offset_overlaps_with_access): Rename
4157         to ranges_overlap_p and move ...
4158         * tree-flow-inline.h (ranges_overlap_p): ... here.
4159
4160         * tree.h (get_inner_reference, handled_component_p): Update
4161         comments.
4162
4163         * tree.h (record_component_aliases, get_alias_set,
4164         alias_sets_conflict_p, alias_sets_must_conflict_p,
4165         objects_must_conflict_p): Move declarations ...
4166         * alias.h (record_component_aliases, get_alias_set,
4167         alias_sets_conflict_p, alias_sets_must_conflict_p,
4168         objects_must_conflict_p): ... here.
4169         Include coretypes.h.
4170         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
4171
4172 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
4173
4174         * cfg.c: Include tree-flow.h.
4175         (remove_edge_raw): Call redirect_edge_var_map_clear.
4176         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
4177         * tree-flow-inline.h (redirect_edge_var_map_def): New.
4178         (redirect_edge_var_map_result): New.
4179         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
4180         PENDING_STMT use with redirect_edge_var_map_*.
4181         * tree-ssa.c (edge_var_maps): New definition.
4182         (redirect_edge_var_map_add): New.
4183         (redirect_edge_var_map_clear): New.
4184         (redirect_edge_var_map_dup): New.
4185         (redirect_edge_var_map_vector): New.
4186         (redirect_edge_var_map_destroy): New.
4187         (ssa_redirect_edge): Replace PENDING_STMT use with
4188         redirect_edge_var_map_*.
4189         (flush_pending_stmts): Same.
4190         (delete_tree_ssa): Destroy edge var map.
4191         * tree-flow.h (struct _edge_var_map): New.
4192         Define edge_var_map vector type.
4193         Declare redirect_edge_var_map_* prototypes.
4194         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
4195         * tree-cfg.c (reinstall_phi_args): Replace
4196         PENDING_STMT use with redirect_edge_var_map_*.
4197
4198 2008-03-05  Richard Guenther  <rguenther@suse.de>
4199
4200         PR tree-optimization/35472
4201         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
4202         whose single use_stmt has a overlapping set of loaded and
4203         stored symbols as that use_stmt might be a noop assignment then.
4204
4205 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4206
4207         * gthr-rtems.h: Implement __gthread_mutex_destroy.
4208
4209 2008-03-05  Richard Guenther  <rguenther@suse.de>
4210
4211         PR c++/35336
4212         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
4213         should be constants.
4214         * tree-cfg.c (verify_expr): Verify it.
4215         * fold-const.c (fold_truthop): Remove code generating
4216         BIT_FIELD_REFs of structure bases.
4217         (fold_binary): Likewise.
4218         (fold_ternary): Position and size of BIT_FIELD_REFs are
4219         always host integers.
4220         (make_bit_field_ref): Remove.
4221         (optimize_bit_field_compare): Remove.
4222         (all_ones_mask_p): Remove.
4223
4224 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
4225
4226         PR gcc/33009
4227         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
4228         (split_block_and_df_analyze): New. Split basic block and rebuild
4229         dataflow.
4230         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
4231         SPLIT_BLOCK.
4232         (split_pattern_seq): Likewise.
4233         (erase_matching_seqs): Likewise.
4234         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
4235
4236 2008-03-04  Geoff Keating  <geoffk@apple.com>
4237
4238         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
4239         declaration and code.
4240         (tree_invalid_nonnegative_warnv_p): Likewise.
4241
4242 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
4243
4244         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
4245         examples.  Truncate option-names then causing overfull hbox.
4246
4247 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4248
4249         PR target/35222
4250         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
4251         on hpux10.
4252         * configure: Rebuilt.
4253
4254 2008-03-04  Rafael Espindola  <espindola@google.com>
4255
4256         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
4257         (tree_unary_nonnegative_warnv_p): New.
4258         (tree_binary_nonnegative_warnv_p): New.
4259         (tree_single_nonnegative_warnv_p): New.
4260         (tree_invalid_nonnegative_warnv_p): New.
4261         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4262
4263 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4264
4265         PR 28322
4266         * opts.c (handle_option): Postpone 'unknown option' errors only for
4267         warning options.
4268
4269 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
4270
4271         PR target/35453
4272         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
4273         (_SIDD_XXX): This.
4274
4275 2008-03-04  Rafael Espindola  <espindola@google.com>
4276
4277         * fold-const.c (tree_unary_nonzero_warnv_p): New.
4278         (tree_binary_nonzero_warnv_p): New.
4279         (tree_single_nonzero_warnv_p): New.
4280         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
4281
4282 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
4283
4284         PR middle-end/35456
4285         * fold-const.c (fold_cond_expr_with_comparison): Prevent
4286         transformations for modes that have signed zeros.
4287         * ifcvt.c (noce_try_abs): Ditto.
4288
4289 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
4290
4291         * config/i386/i386.c (override_options): Force
4292         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
4293
4294 2008-03-04  Jan Hubicka  <jh@suse.cz>
4295
4296         PR c++/35262
4297         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
4298         in last commit.
4299
4300 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4301
4302         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
4303         label to probe the stack.
4304
4305 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4306
4307         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
4308         (__gthr_win32_mutex_destroy): Declare.
4309         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
4310         __gthr_win32_mutex_destroy.
4311         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
4312
4313 2008-03-03  Jan Hubicka  <jh@suse.cz>
4314
4315         PR c++/35262
4316         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
4317         aggressive on inlining cold calls.
4318
4319 2008-03-03  Richard Guenther  <rguenther@suse.de>
4320
4321         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
4322         struct copies into the expression table.
4323         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
4324         (try_to_simplify): Likewise.
4325         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
4326         integral and pointer arguments which do not change the
4327         precision to NOP_EXPRs.
4328         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
4329         VIEW_CONVERT_EXPR case.
4330
4331 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4332
4333         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
4334         defined in a loop at depth 0 is invariant.
4335         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4336         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
4337         be called at loop depth 0.
4338
4339 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
4340
4341         PR driver/35420
4342         * gcc.c (process_command): Update copyright notice dates.
4343         * gcov.c (print_version): Likewise.
4344         * gcov-dump.c (print_version): Likewise.
4345         * mips-tfile.c (main): Likewise.
4346         * mips-tdump.c (main): Likewise.
4347
4348 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4349
4350         PR 24924
4351         * c-common.c (flag_permissive): Delete.
4352         (constant_expression_warnings): Check flags first.
4353         (constant_expression_error): New.
4354         * c-common.h (flag_permissive): Delete.
4355         (constant_expression_error): Declare.
4356         * flags.h (flag_permissive): Declare. Update description.
4357         * diagnostic.c (pedwarn): Update.
4358         (permerror): New.
4359         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
4360         (permissive_error_kind): New.
4361         * toplev.c (flag_permissive): Define. Update description.
4362         * toplev.h (permissive_error_kind): Declare.
4363         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
4364         (pedwarn_c90): Use pedantic_warning_kind.
4365         * c-opts.c (c_common_post_options): flag_permissive does not affect
4366         flag_pedantic_errors.
4367
4368 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
4369
4370         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
4371         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
4372         __absvsi2, __absvDI2): Use unsigned arithmetic.
4373
4374 2008-03-02  Andi Kleen  <ak@suse.de>
4375             Richard Guenther  <rguenther@suse.de>
4376
4377         * struct-equiv.c: Remove file.
4378         * cfg_cleanup.c (condjump_equiv_p): Remove.
4379         * Makefile.in (OBJS-common): Remove struct-equiv.o.
4380         (struct-equiv.o): Remove rule.
4381         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
4382         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
4383         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
4384
4385 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4386
4387         * ifcvt.c (noce_process_if_block): Try to handle only the then
4388         block if the else block exists but isn't suitable.
4389
4390 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4391
4392         PR gcc/35063
4393         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
4394         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
4395         regression from previous patch.
4396
4397 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4398
4399         PR gcc/35063
4400         * gthr.h: Add __gthread_mutex_destroy as a function that must be
4401         implemented.
4402         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
4403         * gthr-single.h (__gthread_mutex_destroy): Likewise.
4404         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
4405         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
4406         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
4407         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
4408         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
4409         (__gthread_mutex_destroy_function): Rename to
4410         __gthread_mutex_destroy.
4411         * gthr-dce.h (__gthread_mutex_destroy): Call
4412         pthread_mutex_destroy.
4413         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
4414         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
4415         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
4416
4417 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4418
4419         * df-scan.c (df_ref_chain_change_bb): Simplify.
4420         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
4421         set_block_for_insn if there's any change.
4422         * df.h ((df_insn_change_bb): Fix prototype.
4423         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
4424         df_insn_change_bb, don't call set_block_for_insn.
4425         * emit-rtl.c (reorder_insns): Likewise.
4426         * haifa-sched.c (move_insn): Likewise.
4427
4428 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4429
4430         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
4431
4432 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4433
4434         * tree-flow-inline.h (next_readonly_imm_use): Return
4435         NULL_USE_OPERAND_P after the end.
4436
4437 2008-03-01  Richard Guenther  <rguenther@suse.de>
4438
4439         PR tree-optimization/35411
4440         * tree-sra.c (sra_build_assignment): Split conversion to
4441         final type to a separate statement if we are not assigning
4442         to a register.
4443
4444 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4445
4446         * fold-const.c (fold_convertible_p): Correct the logic to follow
4447         that in fold_convert().
4448
4449 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
4450
4451         PR c++/35315
4452         * tree-inline.c (build_duplicate_type): When we make a
4453         duplicate type, make it unique in the canonical types system.
4454
4455 2008-02-29  Tom Tromey  <tromey@redhat.com>
4456
4457         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
4458         input_file_stack_history, input_file_stack_restored): Remove.
4459         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4460         * input.h (struct file_stack): Remove.
4461         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4462         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
4463         Likewise.
4464         * diagnostic.h (struct diagnostic_context) <last_module>: Change
4465         type.
4466         (diagnostic_last_module_changed): Add 'map' argument.
4467         (diagnostic_set_last_function): Likewise.
4468         * diagnostic.c (undiagnostic_report_current_module): Iterate using
4469         line map, not input_file_stack.
4470         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
4471
4472 2008-02-29  Paul Brook  <paul@codesourcery.com>
4473
4474         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
4475
4476 2008-02-29  Paul Brook  <paul@codesourcery.com>
4477
4478         * config/arm/ieee754-df.S (muldf3): Use RET macros.
4479
4480 2008-02-29  Richard Guenther  <rguenther@suse.de>
4481
4482         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
4483         vn_lookup_or_add.
4484         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
4485         value for comparing for a store match.
4486         (simplify_unary_expression): Do nothing for SSA_NAMEs.
4487         (try_to_simplify): Do not do a full-blown reference lookup.
4488
4489 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4490
4491         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
4492         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4493
4494         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
4495
4496 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
4497
4498         * tree-loop-linear.c (try_interchange_loops): Compare memory access
4499         strides against cache sizes.
4500
4501 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4502
4503         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
4504         constant to fpul.
4505
4506 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
4507
4508         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
4509         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
4510         is smaller than the original promoted value.
4511         (simplify_subreg): If OP is a SUBREG, try to preserve its
4512         SUBREG_PROMOTED_VAR_P information.
4513
4514 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
4515
4516         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
4517         (VN_INFO_GET): Allocate new objects on the obstack.
4518         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
4519         for rpo_numbers_temp, for consistency.
4520         (free_scc_vn): Free the obstack.
4521
4522 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
4523
4524         * doc/invoke.texi: Document -ftree-loop-distribution.
4525         * tree-loop-distribution.c: New.
4526         * tree-pass.h (pass_loop_distribution): New.
4527         * graphds.h (struct graph): Add htab_t indices.
4528         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
4529         * tree-vectorizer.c (rename_variables_in_loop): Extern.
4530         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
4531         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
4532         * tree-data-ref.c (debug_data_dependence_relations): New.
4533         (dump_data_dependence_relation): Also print data references.
4534         (free_data_ref): Extern.
4535         (same_access_functions): Moved...
4536         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
4537         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4538         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
4539         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
4540         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
4541         (stmts_from_loop): Skip LABEL_EXPR.
4542         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
4543         New.
4544         (build_rdg): Initialize rdg->indices htab.
4545         (free_rdg, stores_from_loop, ref_base_address,
4546         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
4547         have_similar_memory_accesses_1, ref_base_address_1,
4548         remove_similar_memory_refs): New.
4549         * tree-data-ref.h: Depend on tree-chrec.h.
4550         (debug_data_dependence_relations, free_data_ref): Declared.
4551         (same_access_functions): ... here.
4552         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
4553         New.
4554         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
4555         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
4556         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
4557         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4558         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
4559         rdg_vertex_for_stmt): Declared.
4560         (struct rdg_edge): Add level.
4561         (RDGE_LEVEL): New.
4562         (free_rdg, stores_from_loop, remove_similar_memory_refs,
4563         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
4564         Declared.
4565         (rdg_has_similar_memory_accesses): New.
4566         * tree-vect-analyze.c: Remove unused static decls.
4567         * lambda.h (dependence_level): New.
4568         * common.opt (ftree-loop-distribution): New.
4569         * tree-flow.h (mark_virtual_ops_in_bb, 
4570         slpeel_tree_duplicate_loop_to_edge_cfg,
4571         rename_variables_in_loop): Declared.
4572         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
4573         (OBJS-common): Add tree-loop-distribution.o.
4574         (tree-loop-distribution.o): New rule.
4575         * tree-cfg.c (mark_virtual_ops_in_bb): New.
4576         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
4577         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
4578
4579 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
4580
4581         PR target/33963
4582         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
4583         other than structures and unions.
4584
4585 2008-02-28  Richard Guenther  <rguenther@suse.de>
4586
4587         Revert:
4588         2008-02-26  Richard Guenther  <rguenther@suse.de>
4589
4590         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4591         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4592         (lookup_decl_from_uid): Declare.
4593         (remove_decl_from_map): Likewise.
4594         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4595         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4596         (decl_for_uid_map): New global hashtable mapping DECL_UID
4597         to the decl tree.
4598         (init_ttree): Allocate it.
4599         (insert_decl_to_uid_decl_map): New helper function.
4600         (make_node_stat): Insert new decls into the map.
4601         (copy_node_stat): Likewise.
4602         (lookup_decl_from_uid): New function.
4603         (remove_decl_from_map): Likewise.
4604         (print_decl_for_uid_map_statistics): New helper.
4605         (dump_tree_statistics): Call it.
4606
4607         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4608         (referenced_var_iterator): Adjust.
4609         (FOR_EACH_REFERENCED_VAR): Adjust.
4610         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4611         (num_referenced_vars): Adjust.
4612         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4613         (first_referenced_var): Remove.
4614         (end_referenced_vars_p): Likewise.
4615         (next_referenced_var): Likewise.
4616         (referenced_var_iterator_set): New helper function.
4617         * tree-dfa.c (referenced_var_lookup): Adjust.
4618         (referenced_var_check_and_insert): Likewise.
4619         (remove_referenced_var): Likewise.
4620         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4621         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4622         (verify_call_clobbering): Likewise.
4623         (verify_memory_partitions): Likewise.
4624         (init_tree_ssa): Allocate bitmap instead of hashtable for
4625         referenced_vars.
4626         (delete_tree_ssa): Adjust.
4627         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4628         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4629         (compute_tag_properties): Likewise.
4630         (set_initial_properties): Likewise.
4631         (find_partition_for): Likewise.
4632         (update_reference_counts): Likewise.
4633         (dump_may_aliases_for): Likewise.
4634         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4635         (add_call_clobber_ops): Likewise.
4636         (add_call_read_ops): Likewise.
4637         (get_asm_expr_operands): Likewise.
4638         * tree-into-ssa.c (dump_decl_set): Likewise.
4639         (update_ssa): Likewise.
4640         * tree-sra.c (scan_function): Likewise.
4641         (decide_instantiations): Likewise.
4642         (scalarize_parms): Likewise.
4643         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4644         (dsa_named_for): Likewise.
4645         * tree-ssa-structalias.c (update_alias_info): Likewise.
4646         (merge_smts_into): Likewise.
4647
4648 2008-02-27  David Daney  <ddaney@avtrex.com>
4649
4650         PR target/34409
4651         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
4652         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
4653         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
4654         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
4655         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
4656
4657 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
4658
4659         PR target/25477
4660         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
4661         (BUILT_IN_NEXTTOWARD): Remove.
4662         (BUILT_IN_NEXTTOWARDF): Ditto.
4663         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
4664         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
4665
4666 2008-02-27  Tom Tromey  <tromey@redhat.com>
4667
4668         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
4669         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
4670
4671 2008-02-27  Jan Beulich  <jbeulich@novell.com>
4672
4673         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
4674         update the respective field on newdecl.
4675
4676 2008-02-27  Revital Eres  <eres@il.ibm.com>
4677
4678         PR rtl-optimization/34999
4679         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
4680         crossing edges that ends with a call insn.
4681         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
4682         call insn and clear the EDGE_CROSSING flag of the crossing edge
4683         when fixing fallthru edges.
4684
4685 2008-02-27  Richard Guenther  <rguenther@suse.de>
4686
4687         PR middle-end/35390
4688         * fold-const.c (fold_unary): Return the correct argument,
4689         converted to the result type.
4690
4691 2008-02-27  Richard Guenther  <rguenther@suse.de>
4692
4693         PR middle-end/34971
4694         * expr.c (expand_expr_real_1): Assert on rotates that operate
4695         on partial modes.
4696         * fold-const.c (fold_binary): Use the types precision, not the
4697         bitsize of the mode if folding rotate expressions.  Build rotates
4698         only for full modes.
4699
4700 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
4701
4702         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
4703         and CPP_PRAGMA_EOL.
4704         * c-pragma.c (pragma_ns_name): New typedef.
4705         (registered_pp_pragmas): New variable.
4706         (c_pp_lookup_pragma): New function.
4707         (c_register_pragma_1): If flag_preprocess_only, do nothing
4708         for non-expanded pragmas, for expanded ones push pragma's
4709         namespace and name into registered_pp_pragmas vector.
4710         (c_invoke_pragma_handler): Register OpenMP pragmas even when
4711         flag_preprocess_only, don't register GCC pch_preprocess
4712         pragma if flag_preprocess_only.
4713         * c-opts.c (c_common_init): Call init_pragma even if
4714         flag_preprocess_only.
4715         * c-pragma.c (c_pp_lookup_pragma): New prototype.
4716         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
4717         cpp_register_pragma if flag_preprocess_only.
4718
4719 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4720
4721         PR c/28800
4722         * c-parser.c (c_parser_translation_unit): Warn for empty
4723         translation unit, not empty source file.
4724
4725 2008-02-26  Paul Brook  <paul@codesourcery.com>
4726
4727         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
4728         operand for Thumb-2.
4729         * config/arm/arm.h (reg_class): Add CORE_REGS.
4730         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
4731         (BASE_REG_CLASS): Use CORE_REGS.
4732         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
4733         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
4734         (REGNO_OK_FOR_INDEX_P): Exclude SP.
4735         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
4736         ARM_REGNO_OK_FOR_INDEX_P.
4737         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
4738         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
4739         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
4740         (ldm/stm peepholes): Ditto.
4741         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
4742         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
4743         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
4744         * config/arm/constraints.md: Enable "k" constraint on ARM.
4745
4746 2008-02-27  Ben Elliston  <bje@au.ibm.com>
4747
4748         * config/rs6000/rs6000.c: Annotate cache line size field in all
4749         instances of struct processor_costs.
4750
4751 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
4752
4753         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
4754         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
4755         jump_bypass): New counters.
4756         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
4757         * dce.c (gate_ud_dce): Same.
4758         (gate_fast_dce): Same.
4759         * dse.c (gate_dse1): New function.
4760         (gate_dse2): New function.
4761         (gate_dse): Merge results of new gate functions.
4762         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
4763         (gate_handle_jump_bypass): Add dbg_cnt.
4764         (gate_handle_gcse): Add dbg_cnt.
4765         * ifcvt.c (gate_handle_if_conversion): Same.
4766         (gate_handle_if_after_combine): Same.
4767         (gate_handle_if_after_reload): Same.
4768         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
4769
4770 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
4771
4772         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
4773         line sizes.
4774         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
4775
4776 2008-02-26  Jason Merrill  <jason@redhat.com>
4777
4778         PR c++/35315
4779         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
4780         alone if it's the naming decl for the type's main variant.
4781
4782 2008-02-26  Tom Tromey  <tromey@redhat.com>
4783
4784         * system.h (USE_MAPPED_LOCATION): Poison.
4785         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
4786         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
4787         (make_goto_expr_edges): Likewise.
4788         (remove_bb): Likewise.
4789         (execute_warn_function_return): Likewise.
4790         * basic-block.h (struct edge_def) <goto_locus>: Change type to
4791         location_t.
4792         * c-common.c (fname_decl): Remove old location code.
4793         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
4794         location code.
4795         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
4796         variant.
4797         (ASM_INPUT_SOURCE_LOCATION): Likewise.
4798         (gen_rtx_ASM_INPUT): Likewise.
4799         (gen_rtx_ASM_INPUT_loc): Likewise.
4800         (get_rtx_asm_OPERANDS): Remove.
4801         * cfglayout.c (insn_locators_alloc): Remove old location code.
4802         (set_curr_insn_source_location): Likewise.
4803         (curr_insn_locator): Likewise.
4804         * print-tree.c (print_node): Remove old location code.
4805         * tree-mudflap.c (mf_varname_tree): Remove old location code.
4806         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
4807         * cfgexpand.c (expand_gimple_cond_expr): Don't use
4808         location_from_locus.
4809         (construct_exit_block): Remove old location code.
4810         * emit-rtl.c (force_next_line_note): Remove old location code.
4811         * profile.c (branch_prob): Remove old location code.
4812         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4813         LOC_LINE): Remove old-location variants.
4814         * langhooks.c (lhd_print_error_function): Remove old location
4815         code.
4816         * configure, config.in: Rebuilt.
4817         * configure.ac (--enable-mapped-location): Remove.
4818         * c-decl.c (c_init_decl_processing): Remove old location code.
4819         (finish_function): Likewise.
4820         * recog.c (decode_asm_operands): Remove old location code.
4821         * c-pch.c (c_common_read_pch): Remove old location code.
4822         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
4823         variants.
4824         * gimple-low.c (lower_function_body): Remove old location code.
4825         * toplev.c (unknown_location): Remove.
4826         (push_srcloc): Remove old-location variant.
4827         (process_options): Remove old location code.
4828         (lang_dependent_init): Likewise.
4829         * input.h (UNKNOWN_LOCATION): Move definition.
4830         (location_t): Undeprecate.
4831         (source_locus): Remove.
4832         (location_from_locus): Remove.
4833         (struct location_s): Remove.
4834         Remove all old-location code.
4835         (input_line, input_filename): Remove.
4836         * final.c (final_scan_insn): Remove old location code.
4837         * diagnostic.c (diagnostic_build_prefix): Remove
4838         USE_MAPPED_LOCATION test.
4839         * tree.h (gimple_stmt) <locus>: Now a location_t.
4840         (tree_exp) <locus>: Likewise.
4841         (DECL_IS_BUILTIN): Remove old-location variant.
4842         (annotate_with_file_line, annotate_with_locus): Likewise.
4843         (expr_locus, set_expr_locus): Update.
4844         * tree.c (build1_stat): Remove old location code.
4845         (last_annotated_node): Remove.
4846         (annotate_with_file_line): Remove old-location variant.
4847         (annotate_with_locus): Likewise.
4848         (expr_location): Remove old location code.
4849         (set_expr_location): Likewise.
4850         (expr_has_location): Likewise.
4851         (expr_locus): Likewise.
4852         (set_expr_locus): Likewise.
4853         (expr_filename): Don't use location_from_locus.
4854         (expr_lineno): Likewise.
4855         * rtl-error.c (location_for_asm): Remove old location code.
4856         * c-lex.c (cb_line_change): Remove old location code.
4857         (fe_file_change): Likewise.
4858         (cb_def_pragma): Likewise.
4859         (c_lex_with_flags): Likewise.
4860         * gengtype.c (do_typedef): Don't special-case location types.
4861         (define_location_structures): Remove.
4862         (main): Don't call define_location_structures.
4863         * tree-pretty-print.c (dump_implicit_edges): Remove old location
4864         code.
4865
4866 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4867
4868         PR 26264
4869         * builtins.def (BUILT_IN_STDARG_START): Remove.
4870         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
4871         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4872         * tree-inline.c (inline_forbidden_p_1): Likewise.
4873         
4874 2008-02-26  Richard Guenther  <rguenther@suse.de>
4875
4876         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4877         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4878         (lookup_decl_from_uid): Declare.
4879         (remove_decl_from_map): Likewise.
4880         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4881         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4882         (decl_for_uid_map): New global hashtable mapping DECL_UID
4883         to the decl tree.
4884         (init_ttree): Allocate it.
4885         (insert_decl_to_uid_decl_map): New helper function.
4886         (make_node_stat): Insert new decls into the map.
4887         (copy_node_stat): Likewise.
4888         (lookup_decl_from_uid): New function.
4889         (remove_decl_from_map): Likewise.
4890         (print_decl_for_uid_map_statistics): New helper.
4891         (dump_tree_statistics): Call it.
4892
4893         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4894         (referenced_var_iterator): Adjust.
4895         (FOR_EACH_REFERENCED_VAR): Adjust.
4896         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4897         (num_referenced_vars): Adjust.
4898         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4899         (first_referenced_var): Remove.
4900         (end_referenced_vars_p): Likewise.
4901         (next_referenced_var): Likewise.
4902         (referenced_var_iterator_set): New helper function.
4903         * tree-dfa.c (referenced_var_lookup): Adjust.
4904         (referenced_var_check_and_insert): Likewise.
4905         (remove_referenced_var): Likewise.
4906         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4907         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4908         (verify_call_clobbering): Likewise.
4909         (verify_memory_partitions): Likewise.
4910         (init_tree_ssa): Allocate bitmap instead of hashtable for
4911         referenced_vars.
4912         (delete_tree_ssa): Adjust.
4913         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4914         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4915         (compute_tag_properties): Likewise.
4916         (set_initial_properties): Likewise.
4917         (find_partition_for): Likewise.
4918         (update_reference_counts): Likewise.
4919         (dump_may_aliases_for): Likewise.
4920         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4921         (add_call_clobber_ops): Likewise.
4922         (add_call_read_ops): Likewise.
4923         (get_asm_expr_operands): Likewise.
4924         * tree-into-ssa.c (dump_decl_set): Likewise.
4925         (update_ssa): Likewise.
4926         * tree-sra.c (scan_function): Likewise.
4927         (decide_instantiations): Likewise.
4928         (scalarize_parms): Likewise.
4929         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4930         (dsa_named_for): Likewise.
4931         * tree-ssa-structalias.c (update_alias_info): Likewise.
4932         (merge_smts_into): Likewise.
4933
4934 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4935
4936         PR 34351
4937         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
4938         * c-opts.c (c_common_handle_option): Wall enables
4939         Wvolatile-register-var.
4940         * common.opt: Move Wvolatile-register-var to...
4941         * c.opt: ...here.
4942         
4943 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4944
4945         * common.opt (Wlarger-than=): New.
4946         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
4947         -Wlarger-than=.
4948         * opts.c (common_handle_option): Handle -Wlarger-than=.
4949         * optc-gen.awk: Likewise.
4950         * opth-gen.awk: Likewise.
4951         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
4952         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4953         
4954 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4955
4956         * c-common.c (match_case_to_enum_1): Add appropriate
4957         OPT_W* parameter to warning.
4958         (c_do_switch_warnings): Likewise.
4959         * c-typeck.c (warning_init): Add one more parameter following
4960         'warning' function.
4961         (push_init_level): Update call to warning_init.
4962         (pop_init_level): Likewise.
4963         (add_pending_init): Likewise.
4964         (output_init_element: Likewise.
4965
4966 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4967
4968         PR 28322
4969         * toplev.c (toplev_main): If there are warnings or error, print
4970         errors for ignored options.
4971         * opts.c (ignored_options): New static variable.
4972         (postpone_unknown_option_error): New.
4973         (print_ignored_options): New.
4974         (handle_option): Postpone errors for unknown -Wno-* options.
4975         * opts.h (print_ignored_options): Declare.
4976         
4977 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4978
4979         * config/mips/mips.md (loadgp_blockage, blockage): Change type
4980         to "ghost".
4981
4982 2008-02-25  Richard Guenther  <rguenther@suse.de>
4983
4984         Revert:
4985         2008-02-25  Richard Guenther  <rguenther@suse.de>
4986
4987         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4988         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4989         (lookup_decl_from_uid): Declare.
4990         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4991         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4992         (decl_for_uid_map): New global hashtable mapping DECL_UID
4993         to the decl tree.
4994         (init_ttree): Allocate it.
4995         (insert_decl_to_uid_decl_map): New helper function.
4996         (make_node_stat): Insert new decls into the map.
4997         (copy_node_stat): Likewise.
4998         (lookup_decl_from_uid): New function.
4999         (print_decl_for_uid_map_statistics): New helper.
5000         (dump_tree_statistics): Call it.
5001
5002         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5003         (referenced_var_iterator): Adjust.
5004         (FOR_EACH_REFERENCED_VAR): Adjust.
5005         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5006         (num_referenced_vars): Adjust.
5007         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5008         (first_referenced_var): Remove.
5009         (end_referenced_vars_p): Likewise.
5010         (next_referenced_var): Likewise.
5011         (referenced_var_iterator_set): New helper function.
5012         * tree-dfa.c (referenced_var_lookup): Adjust.
5013         (referenced_var_check_and_insert): Likewise.
5014         (remove_referenced_var): Likewise.
5015         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5016         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5017         (verify_call_clobbering): Likewise.
5018         (verify_memory_partitions): Likewise.
5019         (init_tree_ssa): Allocate bitmap instead of hashtable for
5020         referenced_vars.
5021         (delete_tree_ssa): Adjust.
5022         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5023         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5024         (compute_tag_properties): Likewise.
5025         (set_initial_properties): Likewise.
5026         (find_partition_for): Likewise.
5027         (update_reference_counts): Likewise.
5028         (dump_may_aliases_for): Likewise.
5029         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5030         (add_call_clobber_ops): Likewise.
5031         (add_call_read_ops): Likewise.
5032         (get_asm_expr_operands): Likewise.
5033         * tree-into-ssa.c (dump_decl_set): Likewise.
5034         (update_ssa): Likewise.
5035         * tree-sra.c (scan_function): Likewise.
5036         (decide_instantiations): Likewise.
5037         (scalarize_parms): Likewise.
5038         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5039         (dsa_named_for): Likewise.
5040         * tree-ssa-structalias.c (update_alias_info): Likewise.
5041         (merge_smts_into): Likewise.
5042
5043 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5044
5045         PR fortran/29549
5046         * doc/invoke.texi (-fcx-limited-range): Document new option.
5047         * toplev.c (process_options): Handle -fcx-fortran-rules.
5048         * common.opt: Add documentation for -fcx-fortran-rules.
5049
5050 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5051
5052         PR c/35162
5053         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
5054         actual behaviour and C99.
5055         
5056 2008-02-26  Ben Elliston  <bje@au.ibm.com>
5057
5058         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
5059         (ASM_CPU_POWER6_SPEC): Likewise.
5060         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
5061         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
5062         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
5063
5064 2008-02-25  Richard Guenther  <rguenther@suse.de>
5065
5066         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5067         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5068         (lookup_decl_from_uid): Declare.
5069         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5070         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5071         (decl_for_uid_map): New global hashtable mapping DECL_UID
5072         to the decl tree.
5073         (init_ttree): Allocate it.
5074         (insert_decl_to_uid_decl_map): New helper function.
5075         (make_node_stat): Insert new decls into the map.
5076         (copy_node_stat): Likewise.
5077         (lookup_decl_from_uid): New function.
5078         (print_decl_for_uid_map_statistics): New helper.
5079         (dump_tree_statistics): Call it.
5080
5081         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5082         (referenced_var_iterator): Adjust.
5083         (FOR_EACH_REFERENCED_VAR): Adjust.
5084         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5085         (num_referenced_vars): Adjust.
5086         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5087         (first_referenced_var): Remove.
5088         (end_referenced_vars_p): Likewise.
5089         (next_referenced_var): Likewise.
5090         (referenced_var_iterator_set): New helper function.
5091         * tree-dfa.c (referenced_var_lookup): Adjust.
5092         (referenced_var_check_and_insert): Likewise.
5093         (remove_referenced_var): Likewise.
5094         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5095         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5096         (verify_call_clobbering): Likewise.
5097         (verify_memory_partitions): Likewise.
5098         (init_tree_ssa): Allocate bitmap instead of hashtable for
5099         referenced_vars.
5100         (delete_tree_ssa): Adjust.
5101         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5102         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5103         (compute_tag_properties): Likewise.
5104         (set_initial_properties): Likewise.
5105         (find_partition_for): Likewise.
5106         (update_reference_counts): Likewise.
5107         (dump_may_aliases_for): Likewise.
5108         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5109         (add_call_clobber_ops): Likewise.
5110         (add_call_read_ops): Likewise.
5111         (get_asm_expr_operands): Likewise.
5112         * tree-into-ssa.c (dump_decl_set): Likewise.
5113         (update_ssa): Likewise.
5114         * tree-sra.c (scan_function): Likewise.
5115         (decide_instantiations): Likewise.
5116         (scalarize_parms): Likewise.
5117         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5118         (dsa_named_for): Likewise.
5119         * tree-ssa-structalias.c (update_alias_info): Likewise.
5120         (merge_smts_into): Likewise.
5121
5122 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5123
5124         PR target/35258
5125         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
5126         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
5127         * alias.h (nonoverlapping_memrefs_p): Likewise.
5128
5129 2008-02-25  Jan Beulich  <jbeulich@novell.com>
5130
5131         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
5132         * config/i386/netware-libgcc.exp: Add __bswap?i2,
5133         __emultls_get_address, __emultls_register_common,
5134         __floatundi?f, and _Unwind_GetIPInfo.
5135         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
5136         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
5137         (gen_regparm_prefix): Likewise.
5138         (i386_nlm_encode_section_info): Sync with
5139         config/i386/winnt.c:i386_pe_encode_section_info().
5140         (i386_nlm_maybe_mangle_decl_assembler_name): New.
5141         i386_nlm_mangle_decl_assembler_name): New.
5142         (netware_override_options): New.
5143         * config/i386/netware.h (netware_override_options): Declare.
5144         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
5145         (i386_nlm_mangle_decl_assembler_name): Declare.
5146         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
5147
5148 2008-02-25  Ben Elliston  <bje@au.ibm.com>
5149
5150         PR other/32948
5151         * c-decl.c (grokdeclarator): Remove unused local variables
5152         `typedef_type' and `type_as_written'.
5153         * bb-reorder.c
5154         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
5155         unused local variable `has_hot_blocks'.
5156         (fix_crossing_conditional_branches): Remove unused local variable
5157         `prev_bb'.
5158         
5159 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
5160
5161         PR middle-end/19984
5162         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
5163         using DEF_C99_BUILTIN.
5164         (BUILT_IN_NANF): Ditto.
5165         (BUILT_IN_NANL): Ditto.
5166
5167 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
5168             Revital Eres  <eres@il.ibm.com>
5169
5170         * modulo-sched.c (calculate_must_precede_follow): Address TODO
5171         regarding the order of two dependent insns in the same row.
5172
5173 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5174
5175         * stor-layout.c (layout_decl): Do not bump the alignment of a
5176         bit-field to more than byte alignment if it is packed.
5177
5178 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
5179
5180         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
5181         e300c2 and e300c3.
5182
5183 2008-02-24  Diego Novillo  <dnovillo@google.com>
5184
5185         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
5186
5187         PR 33738
5188         * tree-vrp.c (vrp_evaluate_conditional): With
5189         -Wtype-limits, emit a warning when comparing against a
5190         constant outside the natural range of OP0's type.
5191         * c.opt (Wtype-limits): Move ...
5192         * common.opt (Wtype-limits): ... here.
5193
5194 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
5195
5196         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
5197         * config/rs6000/e300c2c3.md: New file.
5198         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5199         e300c2 and e300c3.
5200         (rs6000_override_options): Add e300c2 and e300c3 cases to
5201         processor_target_table. Do not allow usage of Altivec or Spe
5202         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
5203         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
5204         * config/rs6000/rs6000.h (processor_type): Add
5205         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
5206         (ASM_CPU_SPEC): Add e300c2 and e300c3.
5207         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
5208         and ppce300c3. Include e300c2c3.md.
5209
5210 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
5211
5212         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
5213         instead of TARGET_STRICT_ALIGN.
5214
5215 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
5216
5217         * explow.c (memory_address): Assert that the generated address is
5218         valid.
5219
5220 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5221
5222         PR target/25477
5223         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
5224         * config/darwin-ppc-ldouble-patch.def: New file.
5225         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
5226         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
5227         SUBTARGET_INIT_BUILTINS if defined.
5228         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
5229         New functions.
5230
5231 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5232
5233         PR rtl-opt/33512
5234         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
5235         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
5236
5237 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5238
5239         PR pch/35027
5240         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
5241         file" warning condtional on -Winvalid-PCH.
5242
5243 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5244
5245         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
5246
5247 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
5248
5249         PR target/22076
5250         PR target/34256 
5251         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
5252         prevent reload from using MMX registers.
5253         (*mov<mode>_internal): Ditto.
5254         (*movv2sf_internal_rex64): Ditto.
5255         (*movv2sf_internal): Ditto.
5256
5257 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5258
5259         PR documentation/31569
5260         * doc/install.texi2html: Use makeinfo --no-number-sections.
5261
5262 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5263
5264         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
5265         ensure that we can address an entire entity > 8 bytes.  Don't
5266         generate reg+reg addressing for such data.
5267
5268 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5269
5270         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
5271         strings when optimizing for size, unless the target cares about
5272         alignment.
5273
5274 2008-02-22  Tom Tromey  <tromey@redhat.com>
5275
5276         * regclass.c (current_pass): Remove declaration.
5277
5278 2008-02-22  Anatoly Sokolov <aesok@post.ru>
5279
5280         * config/avr/libgcc.S (__RAMPZ__): Define.
5281         (__do_copy_data): Add for devices with 128KB code memory.
5282
5283 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5284
5285         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
5286         Use spe_abi.
5287         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
5288
5289 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
5290
5291         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
5292         GENNONACR_REGS.
5293
5294 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5295
5296         PR c/19999
5297         * c-typeck.c (build_binary_op): Warn about floating point
5298         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
5299
5300 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
5301
5302         PR target/34526
5303         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
5304         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
5305         add vrsave.
5306         (rs6000_override_options): Set altivec_abi as default, not override,
5307         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
5308         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
5309         is used; use new member spe_abi.
5310         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
5311         spe_abi and altivec_abi.
5312
5313 2008-02-22  Tomas Bily  <tbily@suse.cz>
5314
5315         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
5316
5317 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5318
5319         PR bootstrap/35273
5320         * config.build (build_file_translate): Set to `CMD //c' only if
5321         it works.
5322         * Makefile.in (build_file_translate): Improve comment.
5323
5324 2008-02-21  Jan Hubicka  <jh@suse.cz>
5325
5326         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
5327         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
5328         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
5329
5330 2008-02-21  Michael Matz  <matz@suse.de>
5331
5332         PR target/35264
5333         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
5334
5335 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
5336
5337         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
5338         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
5339         as insn constraint.
5340         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
5341         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
5342         SSE_VEC_FLOAT_MODE_P as insn constraint.
5343         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
5344         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
5345         sse4a_movntdf using MODEF mode iterator.
5346         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
5347         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
5348         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
5349         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
5350         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
5351         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
5352         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
5353
5354 2008-02-21  Richard Guenther  <rguenther@suse.de>
5355
5356         * tree.def (PAREN_EXPR): New tree code.
5357         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
5358         and PAREN_EXPR.
5359         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
5360         * expr.c (expand_expr_real_1): Likewise.
5361         * tree-inline.c (estimate_num_insns_1): Likewise.
5362         * tree-complex.c (expand_complex_move): Likewise.
5363         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
5364         as plain x.
5365
5366 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5367
5368         PR target/35225
5369         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
5370
5371 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5372
5373         PR target/35190
5374         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
5375
5376         * config/sh/sh.c (find_barrier): Don't go past
5377         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
5378
5379 2008-02-20  DJ Delorie  <dj@redhat.com>
5380
5381         * config/h8300/h8300.md (insv): Force source operand to be a register.
5382
5383         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
5384         as a jump, not as a plain insn.
5385         
5386 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
5387
5388         * doc/invoke.texi (Warning Options): Add new option
5389         -Wframe-larger-than=.
5390         (-Wframe-larger-than): Document.
5391
5392         * flags.h (warn_frame_larger_than, frame_larger_than_size):
5393         Add declarations for new option variables.
5394
5395         * final.c (final_start_function): Check the frame size
5396         before emission and issue a Wframe-larger-than warning.
5397
5398         * opts.c (warn_frame_larger_than, frame_larger_than_size):
5399         Add definitions for new option variables.
5400         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
5401
5402         * common.opt (Wframe-larger-than=): New option.
5403
5404 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5405
5406         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
5407         (<sse>_div<mode>3): Ditto.
5408         (<sse>_vmdiv<mode>3): Ditto.
5409         (<sse>_vmsqrt<mode>2): Ditto.
5410         (*smax<mode>3): Ditto.
5411         (sse5_frcz<mode>2): Ditto.
5412         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
5413         as insn constraint.
5414
5415 2008-02-20  Richard Guenther  <rguenther@suse.de>
5416
5417         PR middle-end/35265
5418         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
5419         be happy with INTEGRAL_TYPE_P.
5420
5421 2008-02-20  Richard Guenther  <rguenther@suse.de>
5422
5423         * fold-const.c (split_tree): Associate floatig-point expressions
5424         if flag_associative_math is set.
5425
5426 2008-02-20  Richard Guenther  <rguenther@suse.de>
5427
5428         * tree.h (fold_real_zero_addition_p): Declare.
5429         * fold-const.c (fold_real_zero_addition_p): Export.
5430         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
5431         floating-point operations with zero and one.
5432
5433 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
5434
5435         * doc/install.texi: Correct references to CFLAGS, replacing them
5436         with BOOT_CFLAGS.  Document flags used during bootstrap for
5437         target libraries.
5438                                 
5439 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5440
5441         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
5442         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
5443         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
5444         insn constraint.
5445         (smin<mode>3): Ditto from similar patterns.
5446         (smax<mode>3): Ditto.
5447         (*ieee_smin<mode>3): Ditto.
5448         (*ieee_smax<mode>3): Ditto.
5449         * config/i386/sse.md (sse): New mode attribute.
5450         (mov<mode>): Macroize expander from movv4sf and movv2df using
5451         SSEMODEF2P mode iterator.
5452         (<sse>_movnt<mode>): Ditto from similar patterns. Use
5453         SSE_VEC_FLOAT_MODE_P as insn constraint.
5454         (storent<mode>): Ditto.
5455         (storent<mode>): Macroize expander from storentsf and storentdf using
5456         MODEF mode iterator.
5457         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
5458         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
5459         (abs<mode>2): Ditto from similar patterns.
5460         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
5461         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
5462         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
5463         (<sse>_vmsqrt<mode>2): Ditto.
5464         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
5465         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
5466         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
5467         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
5468         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
5469         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
5470         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
5471         insn constraint.
5472         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
5473         iterator and SSE_FLOAT_MODE_P as insn constraint.
5474         (<sse>_ucomi): Ditto from similar patterns.
5475         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
5476         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
5477         SSE_VEC_FLOAT_MODE_P as insn constraint.
5478         (vcond<mode>): Ditto from similar patterns.
5479         (and<mode>3, *and<mode>3): Ditto.
5480         (<sse>_nand<mode>3): Ditto.
5481         (ior<mode>3, *ior<mode>3): Ditto.
5482         (xor<mode>3, *xor<mode>3): Ditto.
5483         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
5484         iterator and SSE_FLOAT_MODE_P as insn constraint.
5485         (*nand<mode>3): Ditto from similar patterns.
5486         (*ior<mode>3): Ditto.
5487         (*xor<mode>3): Ditto.
5488
5489 2008-02-20  Ira Rosen  <irar@il.ibm.com>
5490
5491         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
5492         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
5493         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
5494
5495 2008-02-19  Jan Hubicka  <jh@suse.cz>
5496
5497         * predict.c (tree_bb_level_predictions): Remove variable next
5498         mistakely introduced by previous commit.
5499
5500 2008-02-19  Jan Hubicka  <jh@suse.cz>
5501
5502         * predict.c (predict_paths_leading_to): Rewrite.
5503         (predict_paths_for_bb): New.
5504         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
5505
5506 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5507
5508         PR bootstrap/35218
5509         * Makefile.in (build_file_translate): New.
5510         (gcc-vers.texi): Use it for translating $(abs_srcdir).
5511         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
5512         * configure.ac (build_file_translate): Substitute it.
5513         * configure: Regenerate.
5514
5515 2008-02-19  Jan Hubicka  <jh@suse.cz>
5516
5517         PR rtl-optimization/34408
5518         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
5519         invalid sharing.
5520
5521 2008-02-19  Jan Hubicka  <jh@suse.cz>
5522
5523         PR middle-end/28779
5524         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
5525         call_expr.
5526
5527 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5528
5529         PR Ada/35186
5530         * config/i386/i386-modes.def: Revert the last DI alignment
5531         change until Ada people can look into it.
5532
5533 2008-02-19  Nick Clifton  <nickc@redhat.com>
5534
5535         * opts.c (print_specific_help): Fix typo in --help text.
5536
5537 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
5538
5539         PR target/35239
5540         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
5541         32-bit inline asm without asm alternatives for host GCC < 3.0.
5542
5543 2008-02-19  Richard Guenther  <rguenther@suse.de>
5544
5545         PR tree-optimization/34989
5546         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
5547         Allow propagation to INDIRECT_REF if we can simplify only.
5548
5549 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5550
5551         * c-common.c (warn_for_collisions_1): Use appropriate option when
5552         warning.
5553
5554 2008-02-19  Nick Clifton  <nickc@redhat.com>
5555
5556         PR other/31349
5557         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
5558         (handle_options): Fix indentation.
5559         (print_filtered_help): If no language-specific options were
5560         displayed tell the user how to list all the options supported by
5561         the language's front-end.
5562         (print_specific_help): Fix indentation and remove duplicate line.
5563         (common_handle_option): Handle the -v option.
5564         For --help enable the display of undocumented options if the -v
5565         switch has been included on the command line.
5566         For --help= check for overlaps in the arguments between the option
5567         classes and the language names and issue a warning when they
5568         cannot be disambiguated.
5569         * c.opt (v): Pass on to the common option handler.
5570
5571 2008-02-19  Revital Eres  <eres@il.ibm.com> 
5572
5573         * modulo-sched.c (sms_schedule): Change dump message when
5574         create_ddg function fails.
5575         (try_scheduling_node_in_cycle): Rename row to cycle.
5576         (print_partial_schedule): Rename CYCLE to ROW.
5577
5578 2008-02-19  Christian Bruel  <christian.bruel@st.com>
5579             Zdenek Dvorak  <ook@ucw.cz>
5580
5581         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
5582
5583 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5584
5585         PR target/33555
5586         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
5587         (*x86_movdicc_0_m1_se): Ditto.
5588
5589 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5590
5591         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
5592         (CMPtype): Define as __gcc_CMPtype.
5593         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
5594         (CMPtype): Define as __gcc_CMPtype.
5595
5596 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
5597
5598         Support valgrind 3.3 for --enable-checking=valgrind.
5599         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
5600         here.
5601         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
5602         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
5603         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
5604         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
5605         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
5606         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
5607         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
5608         respectively.
5609         * ggc-zone.c: Similar.
5610         * ggc-page.c: Similar.
5611
5612 2008-02-19  Paul Brook  <paul@codesourcery.com>
5613
5614         PR target/35071
5615         * config/arm/ieee754-df.S: Fix do_it typo.
5616         * config/arm/ieee754-sf.S: Fix do_it typo.
5617
5618 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5619
5620         PR target/35189
5621         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
5622         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
5623         (OPTION_MASK_ISA_SSE_SET): Likewise.
5624         (OPTION_MASK_ISA_SSE2_SET): Likewise.
5625         (OPTION_MASK_ISA_SSE3_SET): Likewise.
5626         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
5627         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
5628         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
5629         (OPTION_MASK_ISA_SSE4_SET): Likewise.
5630         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
5631         (OPTION_MASK_ISA_SSE5_SET): Likewise.
5632         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
5633         (OPTION_MASK_ISA_MMX_UNSET): Updated.
5634         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
5635         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5636         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5637         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5638         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5639         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5640         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5641         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
5642         (OPTION_MASK_ISA_SSE4): Removed.
5643         (ix86_handle_option): Turn on bits in ix86_isa_flags and
5644         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
5645         (override_options): Don't turn on implied SSE/MMX bits in
5646         ix86_isa_flags.
5647
5648 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5649
5650         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5651         32bit host.
5652
5653 2008-02-18  Joey Ye  <joey.ye@intel.com>
5654
5655         PR middle-end/34921
5656         * tree-nested.c (insert_field_into_struct): Set type alignment
5657         to field alignment if the former is less than the latter.
5658
5659 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
5660
5661         * BASE-VER: Set to 4.4.0.
5662
5663 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5664
5665         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
5666         * doc/cfg.texi: Likewise.
5667         * doc/extend.texi: Likewise.
5668         * doc/gty.texi: Likewise.
5669         * doc/invoke.texi: Likewise.
5670         * doc/loop.texi: Likewise.
5671         * doc/md.texi: Likewise.
5672         * doc/passes.texi: Likewise.
5673         * doc/rtl.texi: Likewise.
5674         * doc/sourcebuild.texi: Likewise.
5675         * doc/tm.texi: Likewise.
5676         * doc/tree-ssa.texi: Likewise.
5677
5678 2008-02-17  Richard Guenther  <rguenther@suse.de>
5679
5680         PR middle-end/35227
5681         * tree-complex.c (init_parameter_lattice_values): Handle parameters
5682         without default definition.
5683
5684 2008-02-17  Richard Guenther  <rguenther@suse.de>
5685
5686         PR tree-optimization/35231
5687         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
5688         if A | B != 1.
5689
5690 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
5691
5692         Revert:
5693         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
5694         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5695         libgcc_cmp_return mode.
5696
5697 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5698
5699         PR c/28368
5700         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
5701
5702 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
5703
5704         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
5705         multilibs.
5706
5707 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5708
5709         * doc/c-tree.texi: Use `@.' where appropriate.
5710         * doc/extend.texi: Likewise.
5711         * doc/install.texi: Likewise.
5712         * doc/invoke.texi: Likewise.
5713         * doc/loop.texi: Likewise.
5714         * doc/makefile.texi: Likewise.
5715         * doc/md.texi: Likewise.
5716         * doc/passes.texi: Likewise.
5717         * doc/standards.texi: Likewise.
5718         * doc/tm.texi: Likewise.
5719
5720 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5721
5722         PR middle-end/35196
5723         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
5724         in entry_bb.
5725         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
5726         rather than in entry_bb.
5727
5728 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5729
5730         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5731         libgcc_cmp_return mode.
5732
5733 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5734
5735         PR middle-end/35130
5736         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
5737         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
5738
5739 2008-02-15  Richard Guenther  <rguenther@suse.de>
5740             Zdenek Dvorak  <ook@ucw.cz>
5741
5742         PR tree-optimization/35164
5743         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
5744         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
5745         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5746         Only propagate addresses which do not have abnormal SSA_NAMEs
5747         in their operands.
5748
5749 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
5750
5751         PR target/35088
5752         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
5753
5754 2008-02-15  Jan Hubicka  <jh@suse.cz>
5755
5756         PR middle-end/35149
5757         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
5758
5759 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5760
5761         PR middle-end/34621
5762         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
5763         when calculating alignment_pad.
5764
5765 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5766
5767         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
5768         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
5769         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
5770         and STACK_BOUNDARY define.
5771
5772 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
5773
5774         PR preprocessor/35061
5775         * c-pragma.c (handle_pragma_pop_macro): Check that
5776         pushed_macro_table has been allocated.
5777
5778 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5779
5780         PR middle-end/35136
5781         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
5782         (force_gimple_operand): Likewise.
5783         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
5784         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
5785         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
5786         (find_interesting_uses_address): Check addressability and alignment
5787         of the base expression only after substituting bases of IVs into it.
5788
5789 2008-02-14  Michael Matz  <matz@suse.de>
5790
5791         PR target/34930
5792         * function.c (instantiate_virtual_regs_in_insn): Reload address
5793         before falling back to reloading the whole operand.
5794
5795 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5796
5797         * config/s390/s390.c (s390_mainpool_start): Emit the pool
5798         before the first section switch note.
5799
5800 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5801
5802         * doc/bugreport.texi: Update copyright years.
5803         * doc/c-tree.texi: Likewise.
5804         * doc/cfg.texi: Likewise.
5805         * doc/cpp.texi: Likewise.
5806         * doc/cppinternals.texi: Likewise.
5807         * doc/fragments.texi: Likewise.
5808         * doc/frontends.texi: Likewise.
5809         * doc/gcc.texi: Likewise.
5810         * doc/gty.texi: Likewise.
5811         * doc/hostconfig.texi: Likewise.
5812         * doc/implement-c.texi: Likewise.
5813         * doc/libgcc.texi: Likewise.
5814         * doc/loop.texi: Likewise.
5815         * doc/makefile.texi: Likewise.
5816         * doc/options.texi: Likewise.
5817         * doc/passes.texi: Likewise.
5818         * doc/rtl.texi: Likewise.
5819         * doc/sourcebuild.texi: Likewise.
5820         * doc/standards.texi: Likewise.
5821         * doc/tree-ssa.texi: Likewise.
5822         * doc/trouble.texi: Likewise.
5823
5824         * doc/extend.texi: Use @: or add comma where appropriate.
5825         * doc/invoke.texi: Likewise.
5826         * doc/tm.texi: Likewise.
5827
5828 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
5829
5830         PR target/34393
5831         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
5832         to a reg.
5833
5834 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
5835
5836         * doc/md.texi (clz, ctz): Add reference.
5837         * doc/rtl.texi (clz, ctz): Likewise.
5838
5839 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5840
5841         PR other/35148
5842         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
5843         srcdir.
5844
5845 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
5846
5847         * config/s390/s390.c (struct constant_pool): New field
5848         emit_pool_after added.
5849         (s390_mainpool_start): Set the emit_pool_after flag according
5850         to the section switch notes.
5851         (s390_mainpool_finish): Consider emit_pool_after when emitting
5852         the literal pool at the end of the function.
5853         (s390_chunkify_start): Force literal pool splits at section
5854         switch notes.
5855
5856 2008-02-13  Michael Matz  <matz@suse.de>
5857
5858         PR debug/35065
5859         * var-tracking.c (clobber_variable_part): Correctly traverse the
5860         list.
5861
5862 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5863
5864         PR 29673
5865         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
5866         Add -fdump-ipa-inline.
5867         * tree-dump.c (dump_files): Remove tree-inlined dump.
5868         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
5869         
5870 2008-02-12  Richard Guenther  <rguenther@suse.de>
5871
5872         PR tree-optimization/35171
5873         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
5874         default defs.
5875
5876 2008-02-12  Richard Guenther  <rguenther@suse.de>
5877
5878         PR middle-end/35163
5879         * fold-const.c (fold_widened_comparison): Use get_unwidened in
5880         value-preserving mode.  Disallow final truncation.
5881
5882 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5883
5884         PR middle-end/35136
5885         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
5886         code from here to...
5887         (force_gimple_operand): ...here.
5888
5889 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
5890
5891         PR c++/35144
5892         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
5893         non-compatible pointers.
5894         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
5895         different FIELD_DECLs, try harder by comparing field offsets, sizes
5896         and types.
5897
5898         PR inline-asm/35160
5899         * function.c (match_asm_constraints_1): Don't replace the same input
5900         multiple times.
5901
5902 2008-02-12  Anatoly Sokolov <aesok@post.ru>
5903
5904         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
5905         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
5906         (expand_epilogue): Restore RAMPZ register.
5907         * config/avr/avr.md (RAMPZ_ADDR): New constant.
5908
5909 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
5910
5911         * config/i386/cygwin.asm: (__alloca): Correct calling
5912         convention and alignment.
5913         (__chkstk): Force 8 byte stack alignment.
5914
5915 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
5916             Richard Guenther  <rguenther@suse.de>
5917
5918         PR tree-optimization/33992
5919         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
5920         the zero we compare against.
5921
5922 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5923
5924         PR libfortran/35063
5925         * gthr-win32.h (__gthread_mutex_destroy_function): New function
5926         to CloseHandle after unlocking to prevent accumulation of handle
5927         count.
5928
5929 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5930
5931         PR middle_end/34150
5932         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
5933         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
5934         and update LABEL_NUSES during and after reload.
5935
5936 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
5937
5938         PR middle-end/34627
5939         * combine.c (simplify_if_then_else): Make sure the comparison is
5940         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
5941
5942 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5943
5944         PR bootstrap/35051
5945         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
5946         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
5947         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
5948         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
5949         * tree.h (get_type_static_bounds): Likewise.
5950
5951 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5952
5953         * doc/invoke.texi (Option Summary, C++ Dialect Options)
5954         (Objective-C and Objective-C++ Dialect Options, Warning Options):
5955         Make -Wfoo language annotations match what the compiler outputs.
5956
5957 2008-02-08  Sa Liu  <saliu@de.ibm.com>
5958
5959         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
5960         intrinsics spu_convts, spu_convtu, spu_convtf.
5961         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
5962
5963 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
5964
5965         * doc/extend.texi (Function Attributes) <noinline>: Mention
5966         asm ("") as method to keep calls.
5967
5968 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5969
5970         PR other/32754
5971         * doc/options.texi (Options): Replace references to opts.sh with
5972         optc-gen.awk.
5973         * opts-common.c: Likewise.
5974         * optc-gen.awk: Likewise.
5975         
5976 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
5977
5978         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
5979
5980 2008-02-07  Richard Henderson  <rth@redhat.com>
5981
5982         PR rtl-opt/33410
5983         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
5984         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
5985         funny mode.
5986
5987 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
5988
5989         PR tree-optimization/35085
5990         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
5991         for operand entry oe2 in addition to operand entry oe3 in order to
5992         expose more opportunities for vectorizer sum reduction.
5993
5994 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5995
5996         PR other/35107
5997         * Makefile.in (LIBS): Remove $(GMPLIBS).
5998         (cc1-dummy, cc1): Add $(GMPLIBS).
5999
6000 2008-02-06  Jan Hubicka  <jh@suse.cz>
6001
6002         PR target/23322
6003         * i386.md (moddf_integer): Do not produce partial memory stalls for
6004         targets where it hurts.
6005
6006 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
6007
6008         PR target/35083
6009         * optabs.c (expand_float): Do not check for decimal modes when
6010         expanding unsigned integer through signed conversion.
6011
6012 2008-02-06  Nick Clifton  <nickc@redhat.com>
6013
6014         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
6015         inside the clobber with a match_operand and duplicated operand
6016         number in the constraint.
6017         (ineqbranchsi): Delete redundant comment.
6018
6019 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6020
6021         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
6022         builtin_define ("__USE_INIT_FINI__").
6023         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
6024         -msx multilibs.
6025         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
6026
6027 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6028
6029         PR documentation/30330
6030         * doc/invoke.texi (C++ Dialect Options)
6031         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6032         For each warning option -Wfoo that allows -Wno-foo, ensure both
6033         -Wfoo and -Wno-foo are listed in the option index.  Fix index
6034         entry of -Wswitch-default, index -Wnormalized= including the
6035         `=', and -Wlarger-than-@var{len} including @var{len}.
6036
6037 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6038
6039         * config/i386/i386.md (floatunssisf2): Use
6040         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
6041         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
6042         Macroize expander using MODEF mode iterator.
6043
6044 2008-02-05  Diego Novillo  <dnovillo@google.com>
6045
6046         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
6047
6048         PR 33738
6049         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
6050
6051 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6052
6053         PR other/35070
6054         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
6055
6056 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
6057
6058         PR target/35084
6059         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
6060         to indicate if a message should be generated.
6061         (init_cumulative_args): Updated.
6062         (function_value_32): Likewise.
6063
6064 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
6065
6066         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
6067
6068 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6069
6070         PR target/35083
6071         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
6072         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
6073
6074 2008-02-04  Diego Novillo  <dnovillo@google.com>
6075
6076         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
6077
6078         PR 33738
6079         * tree-vrp.c (vrp_evaluate_conditional): With
6080         -Wtype-limits, emit a warning when comparing against a
6081         constant outside the natural range of OP0's type.
6082
6083 2008-02-04  Richard Guenther  <rguenther@suse.de>
6084
6085         PR middle-end/33631
6086         * expr.c (count_type_elements): Give for unions instead of
6087         guessing.
6088
6089 2008-02-04  Richard Guenther  <rguenther@suse.de>
6090
6091         PR middle-end/35043
6092         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
6093         to TYPE_DOMAINs base type instead of using bitsizetype here.
6094
6095 2008-02-03  Jason Merrill  <jason@redhat.com>
6096
6097         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
6098
6099 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6100
6101         PR other/29972
6102         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
6103         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
6104         (RS/6000 and PowerPC Options): Fix typos and markup.
6105         * doc/passes.texi (Tree-SSA passes): Likewise.
6106
6107 2008-02-02  Michael Matz  <matz@suse.de>
6108
6109         PR target/35045
6110         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
6111         from record_last_reg_set_info.
6112         (record_last_reg_set_info): Take an RTX argument, iterate over all
6113         constituent hardregs.
6114         (record_last_set_info, record_opr_changes): Change calls to
6115         new signature or to record_last_reg_set_info_regno.
6116
6117 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6118
6119         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
6120
6121 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
6122
6123         PR rtl-optimization/34773
6124         * reg-notes.def (EQUAL): Mention significance of combination of
6125         REG_EQUAL and REG_RETVAL.
6126         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
6127         insn that has a REG_RETVAL.
6128
6129 2008-02-01  Roger Sayle  <roger@eyesopen.com>
6130
6131         PR bootstrap/33781
6132         * configure.ac (--enable-fixed-point): Disable unless explicitly
6133         requested on IRIX.
6134         * configure: Regenerate.
6135
6136 2008-02-01  Richard Guenther  <rguenther@suse.de>
6137
6138         PR other/35042
6139         * invoke.texi (-finline-limit): Remove no longer true parts
6140         of the documentation.  Note that there is no default value.
6141
6142 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
6143             Mark Mitchell  <mark@codesourcery.com>
6144             Ben Elliston  <bje@au.ibm.com>
6145
6146         PR c/29326
6147         * doc/extend.texi (Other Builtins): Document.
6148
6149 2008-01-31  Tom Browder <tom.browder@gmail.com>
6150
6151         * doc/c-tree.texi (Types): Fix grammar.
6152         (Expression trees): Ditto.
6153         * doc/passes.texi (Tree-SSA passes): Ditto.
6154         
6155         * doc/configterms.texi (Configure Terms): Fix typo.
6156         * doc/cpp.texi (Common Predefined Macros): Ditto.
6157         * doc/md.texi (Machine Constraints): Ditto.
6158         
6159         * doc/makefile.texi (Makefile): Add comma.
6160
6161 2008-01-31  Tom Browder  <tom.browder@gmail.com>
6162             Gerald Pfeifer  <gerald@pfeifer.com>
6163         
6164         * doc/sourcebuild.texi (Front End): Remove references to CVS
6165         and CVSROOT/modules.
6166         (Texinfo Manuals): Replace reference to CVS by one to SVN.
6167         (Back End): Remove reference to CVS.
6168
6169 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6170
6171         PR target/34900
6172         * config/mips/mips.c (gen_load_const_gp): New function, taking a
6173         comment from...
6174         (mips16_gp_pseudo_reg): ...here.
6175         * config/mips/mips.md (load_const_gp): Replace with...
6176         (load_const_gp_<mode>): ...this :P-based insn.
6177
6178 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6179
6180         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
6181         options. Minor fixes.
6182         (-std): Move reference to standards closer to where language
6183         standards are first mentioned.
6184         
6185 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6186
6187         PR rtl-optimization/34995
6188         * reload.c (alternative_allows_const_pool_ref): Take an rtx
6189         parameter and return a bool.  If the rtx parameter is nonnull,
6190         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
6191         (find_reloads): Update call accordingly.  Pass the new operand
6192         if it needed no address reloads, otherwise pass null.
6193
6194 2008-01-30  Richard Henderson  <rth@redhat.com>
6195
6196         PR c/34993
6197         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
6198         for unbounded arrays.
6199
6200 2008-01-30  Silvius Rus  <rus@google.com>
6201
6202         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
6203
6204 2008-01-30  Jan Hubicka  <jh@suse.cz>
6205
6206         PR target/34982
6207         * i386.c (init_cumulative_args): Use real function declaration when
6208         calling locally.
6209
6210 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6211
6212         PR rtl-optimization/34998
6213         * global.c (build_insn_chain): Treat non-subreg_lowpart
6214         SUBREGs of pseudos as clobbering all the words covered by the
6215         SUBREG, not just all the bytes.
6216         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
6217         original df_ref rather than an extract parameter.
6218         (global_conflicts): Update call accordingly.
6219
6220 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6221
6222         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
6223         the overflow check to make it easier to read.
6224         (__fixtfdi): Change the type of the ll member in union
6225         long_double to UDItype_x.
6226
6227 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
6228
6229         PR middle-end/34969
6230         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
6231         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
6232         * tree-inline.c (fold_marked_statements): Call
6233         cgraph_update_edges_for_call_stmt if folding a call statement.
6234         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
6235         debug_generic_stmt calls, reset it back afterwards.
6236
6237         PR c/35017
6238         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
6239         static decls.
6240         * c-typeck.c (build_external_ref): Don't pedwarn about
6241         static vars in current function's scope.
6242
6243 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
6244
6245         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
6246
6247 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
6248
6249         PR c/35002
6250         * ipa-struct-reorg.c: Fix spelling.
6251         * params.def: Ditto.
6252
6253 2008-01-29  Richard Guenther  <rguenther@suse.de>
6254
6255         PR middle-end/35006
6256         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
6257         field.
6258         * tree-inline.c (remap_type): Increment remapping_type_depth
6259         around remapping types.
6260         (copy_body_r): Only add referenced variables if they are referenced
6261         from code, not types.
6262
6263 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
6264
6265         PR c++/34055
6266         PR c++/34103
6267         PR c++/34219
6268         PR c++/34606
6269         PR c++/34753
6270         PR c++/34754
6271         PR c++/34755
6272         PR c++/34919
6273         PR c++/34961
6274         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
6275         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
6276
6277 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
6278
6279         PR target/34412
6280         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
6281         pointer for tiny stack.
6282
6283 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6284
6285         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
6286
6287 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6288
6289         * config/vx-common.h: Fix typo in comment.
6290
6291 2008-01-28  Ian Lance Taylor  <iant@google.com>
6292
6293         PR c++/34862
6294         PR c++/33407
6295         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6296         coalesce pointers if they have different DECL_NO_TBAA_P values.
6297         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
6298         between variables with different DECL_NO_TBAA_P values.
6299
6300 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
6301
6302         PR 31535
6303         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
6304         are not legitimate small data references on SPE targets.
6305
6306 2008-01-28  David Daney  <ddaney@avtrex.com>
6307
6308         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
6309
6310 2008-01-28  David Daney  <ddaney@avtrex.com>
6311
6312         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
6313
6314 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
6315
6316         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
6317         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
6318         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
6319         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
6320         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6321         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
6322         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
6323         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
6324
6325 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6326
6327         * basic-block.h (condjump_equiv_p): Fix comment.
6328
6329 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6330
6331         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
6332         print_generic_stmt_indented): Fix comment.
6333
6334 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6335
6336         * configure.ac (__stack_chk_fail): Add detecion for availability
6337         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
6338         * configure: Regenerate.
6339
6340 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
6341
6342         PR middle-end/34688
6343         * final.c (output_addr_const): Handle TRUNCATE.
6344
6345 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
6346
6347         PR target/34711
6348         * tree-ssa-loop-ivopts.c (comp_cost): New type.
6349         (zero_cost, infinite_cost): New constants.
6350         (struct cost_pair): Change type of cost to comp_cost.
6351         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
6352         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
6353         New functions.
6354         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
6355         split_address_cost, ptr_difference_cost, difference_cost,
6356         get_computation_cost_at, get_computation_cost,
6357         determine_use_iv_cost_generic, determine_use_iv_cost_address,
6358         determine_use_iv_cost_condition, determine_use_iv_costs,
6359         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
6360         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
6361         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
6362         Change type of cost to comp_cost.
6363         (determine_iv_cost): Increase cost of non-original ivs, instead
6364         of decreasing the cost of original ones.
6365         (get_address_cost): Indicate the complexity of the addressing mode 
6366         in comp_cost.
6367         (try_add_cand_for): Prefer using ivs not specific to some object.
6368         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
6369
6370 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
6371             Janis Johnson  <janis187@us.ibm.com>
6372
6373         PR target/34814
6374         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
6375         (TARGET_INSTANTIATE_DECLS): Likewise.
6376         * target.h (expand_to_rtl_hook): New target hook.
6377         (instantiate_decls): Likewise.
6378         * function.c (instantiate_decl): Make non-static.  Rename to...
6379         (instantiate_decl_rtl): ... this.
6380         (instantiate_expr): Use instantiate_decl_rtl.
6381         (instantiate_decls_1): Likewise.
6382         (instantiate_decls): Likewise.
6383         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
6384         * function.h (instantiate_decl_rtl): Add prototype.
6385         * cfgexpand.c (target.h): New include.
6386         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
6387         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
6388         (TARGET_INSTANTIATE_DECLS): Likewise.
6389         (TARGET_INITIALIZER): New target hooks added.
6390         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
6391         New prototype.
6392         * config/rs6000/rs6000.c (tree-flow.h): New include.
6393         (machine_function): Add sdmode_stack_slot field.
6394         (rs6000_alloc_sdmode_stack_slot): New function.
6395         (rs6000_instantiate_decls): Likewise.
6396         (rs6000_secondary_memory_needed_rtx): Likewise.
6397         (rs6000_check_sdmode): Likewise.
6398         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
6399         (TARGET_INSTANTIATE_DECLS): Likewise.
6400         (rs6000_hard_regno_mode_ok): Allow SDmode.
6401         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
6402         (rs6000_emit_move): Handle SDmode.
6403         (function_arg_advance): Likewise.
6404         (function_arg): Likewise.
6405         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
6406         SDmode var args for 32-bit compiles.
6407         (rs6000_secondary_reload_class): Handle SDmode.
6408         (rs6000_output_function_epilogue): Likewise.
6409         (rs6000_function_value): Simplify if statement.
6410         (rs6000_libcall_value): Likewise.
6411         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
6412         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
6413         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
6414         (movsd_hardfloat): New define_insn.
6415         (movsd_softfloat): Likewise.
6416         (movsd_store): Likewise.
6417         (movsd_load): Likewise.
6418         (extendsddd2): Likewise.
6419         (extendsdtd2): Likewise.
6420         (truncddsd2): Likewise.
6421         (movdd_hardfloat64): Fixup comment.
6422         (UNSPEC_MOVSD_LOAD): New constant.
6423         (UNSPEC_MOVSD_STORE): Likewise.
6424
6425 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
6426
6427         PR c++/34965
6428         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
6429         TRUTH_XOR_EXPR.
6430         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
6431         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
6432         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
6433         and TRUTH_XOR_EXPR.
6434
6435 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
6436
6437         PR target/34794
6438         * config.gcc: Separate AIX 5.3 from AIX 6.1.
6439         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6440         __LONGDOUBLE128 too.
6441         * config/rs6000/aix61.h: New file.
6442
6443 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6444
6445         PR rtl-optimization/34959
6446         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
6447         popcount and parity rtxes the same mode as their operand.
6448         Truncate or extend the result to the return value's mode
6449         if necessary.
6450
6451 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6452
6453         PR target/34981
6454         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
6455         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
6456         to GOT_VERSION_REGNUM.
6457         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
6458         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
6459         * config/mips/mips.c (mips_emit_call_insn): New function.
6460         (mips_call_tls_get_addr): Call mips_expand_call directly.
6461         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
6462         emit_call_insn.
6463         (mips16_build_call_stub): Likewise.  Return the call insn or null.
6464         (mips_expand_call): Update the call to mips16_build_call_stub
6465         accordingly and a remove redundant condition.  Assert that MIPS16
6466         stubs do not use lazy binding.  Use mips_emit_call_insn and return
6467         the call insn.
6468         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
6469         TARGET_USE_GOT.
6470         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
6471         (mips_avoid_hazard): Remove hazard_set handling.
6472         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
6473         (UNSPEC_RESTORE_GP): ...this.
6474         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
6475         (FAKE_CALL_REGNO): Rename to...
6476         (GOT_VERSION_REGNUM): ...this.
6477         (type): Add "ghost" value.  Add an associated insn reservation.
6478         (hazard_set): Remove.
6479         (exception_receiver): Rename to...
6480         (restore_gp): ...this and update the unspec identifier accordingly.
6481         (exception_receiver, nonlocal_got_receiver): New expanders.
6482         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
6483         FAKE_CALL_REGNO.  Remove hazard_set attribute.
6484         (set_got_version, update_got_version): New patterns.
6485
6486 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
6487
6488         PR target/34970
6489         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
6490
6491 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6492
6493         PR other/31955
6494         * doc/install.texi2html: Generate gcc-vers.texi.
6495
6496 2008-01-25  DJ Delorie  <dj@redhat.com>
6497
6498         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6499
6500 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6501
6502         * config/c4x: Remove directory.
6503         * config.gcc (crx-*, mt-*): Mark obsolete.
6504         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
6505         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
6506         sh-*-rtemscoff*): Remove cases.
6507         * defaults.h (C4X_FLOAT_FORMAT): Remove.
6508         * real.c (encode_c4x_single, decode_c4x_single,
6509         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
6510         c4x_extended_format): Remove.
6511         * real.h (c4x_single_format, c4x_extended_format): Remove.
6512         * doc/extend.texi (interrupt, naked): Remove mention of attributes
6513         on C4x.
6514         (Pragmas): Remove comment about c4x pragmas.
6515         * doc/install.texi (c4x): Remove target-specific instructions.
6516         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
6517         * doc/md.texi (Machine Constraints): Remove C4x documentation.
6518         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
6519         refer to C4x source files as examples.
6520         (C4X_FLOAT_FORMAT): Remove documentation.
6521
6522 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
6523
6524         * config/bfin/bfin.c (override_options): Reorder tests so that
6525         flag_pic gets enabled for -msep-data.
6526
6527 2008-01-25  Richard Guenther  <rguenther@suse.de>
6528
6529         PR middle-end/32244
6530         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
6531         to its bitfield precision if required.
6532
6533 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6534
6535         PR middle-end/33880
6536         * tree-nested.c (walk_omp_for): New function.
6537         (convert_nonlocal_reference, convert_local_reference): Call
6538         walk_omp_for on OMP_FOR.
6539         (convert_call_expr): Call walk_body on OMP_FOR's
6540         OMP_FOR_PRE_INIT_BODY.
6541
6542 2008-01-25  Richard Guenther  <rguenther@suse.de>
6543
6544         PR tree-optimization/34966
6545         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
6546         default defs and PHI_NODEs we have to insert after the
6547         defining statement.
6548
6549 2008-01-24  Nick Clifton  <nickc@redhat.com>
6550
6551         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
6552         Provide a default definition.
6553         (LIBGCC2_UNITS_PER_WORD): Likewise.
6554
6555         * config/stormy16/stormy16.c: Include df.h for the prototype
6556         for df_regs_ever_live_p.
6557         (xstormy16_expand_builtin_va_start): Convert the stack offset
6558         into a component_ref and then use POINTER_PLUS_EXPR to add it
6559         to the incoming_virtual_args_rtx.
6560         (xstormy16_gimplify_va_arg_expr): Rename to
6561         xstormy16_gimplify_va_arg_expr.
6562         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
6563         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
6564         xstormy16_gimplify_va_arg_expr.
6565         Fix up some formatting issues.
6566
6567         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
6568         Move to predicates.md.
6569         (xs_hi_general_operand): Likewise.
6570         (xs_hi_nonmemory_operand): Likewise.
6571         * config/stormy16/predicates.md:
6572         (xstormy16_carry_plus_operand): New predicate.
6573         (xs_hi_general_operand): New predicate.
6574         (xs_hi_nonmemory_operand): New predicate.
6575         * config/stormy16/stormy16-protos.h:
6576         (xstormy16_carry_plus_operand): Delete prototype.
6577         (xs_hi_general_operand): Likewise.
6578         (xs_hi_nonmemory_operand): Likewise.
6579
6580         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
6581         modifiers as they are no longer needed and they can trigger
6582         reload spill failures.
6583
6584         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
6585         with a match_operand in order to help reload.
6586
6587         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
6588         constraint with 'e' for the 8th alternative as this version of
6589         the mov.w instruction only accepts the lower 8 registers.
6590
6591 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
6592
6593         PR target/34856
6594         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
6595         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
6596         vector elements.
6597
6598 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6599
6600         PR middle-end/33333
6601         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
6602
6603 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6604
6605         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
6606         New functions.
6607         (remove_structure): Update allocations list before removing structure.
6608         
6609 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6610
6611         * ipa-struct-reorg.c (is_safe_cond_expr, 
6612         create_new_stmts_for_cond_expr): Use integer_zerop function,
6613         that recognize not only zero-pointer, but zero-integer too.
6614
6615 2008-01-25  Ben Elliston  <bje@au.ibm.com>
6616
6617         PR other/22232
6618         * fixproto: Escape "." in sed expression that strips leading "./".
6619
6620 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6621
6622         PR driver/34904
6623         * gcc.c (SWITCH_OK): Removed.
6624         (SWITCH_LIVE): Changed to bit.
6625         (SWITCH_FALSE): Likewise.
6626         (SWITCH_IGNORE): Likewise.
6627         (switchstr): Change live_cond to unsigned int.
6628         (process_command): Replace SWITCH_OK with 0.
6629         (do_self_spec): Likewise.
6630         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
6631         (give_switch): Likewise.
6632         (used_arg): Likewise.
6633         (do_spec_1): Set the SWITCH_IGNORE bit.
6634         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
6635         bits.  Set the SWITCH_LIVE bit.
6636
6637 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6638
6639         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
6640
6641 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6642
6643         PR tree-optimization/34472
6644         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
6645         parameter to a "bool *" and set *DATA to false if there is
6646         an unsafe access.  Do not delete the structure here.
6647         (check_cond_exprs): Delete it here instead.
6648         (check_cond_exprs, exclude_cold_structs): Do not increase
6649         I when removing a structure.
6650
6651 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
6652
6653         PR target/34856
6654         * config/i386/i386.c (ix86_expand_vector_init): Consider only
6655         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
6656
6657 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
6658
6659         PR middle-end/34934
6660         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
6661         a fixed vector for stack.
6662
6663 2008-01-24  Ben Elliston  <bje@au.ibm.com>
6664
6665         PR c++/25701
6666         * doc/gcc.texi (Software development): Add a direntry for g++.
6667         
6668 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
6669
6670         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
6671         stale and straggling -fforce-addr comments above.
6672
6673         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
6674         define.
6675         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
6676         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
6677
6678 2008-01-23  Michael Matz  <matz@suse.de>
6679
6680         PR debug/34895
6681         * dwarf2out.c (force_type_die): Use modified_type_die instead of
6682         gen_type_die.
6683
6684 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
6685
6686         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
6687         malloc result type.
6688
6689 2008-01-23 Anatoly Sokolov <aesok@post.ru>
6690
6691         * config/avr/avr.c (avr_current_arch): New variable.
6692         (avr_arch_types): Add 'avr31' and 'avr51' entries.
6693         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
6694         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
6695         (avr_override_options): Init 'avr_current_arch'. 
6696         (base_arch_s): Move from here...
6697         * config/avr/avr.h (base_arch_s): ... here. Add new members 
6698         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
6699         'mega' to 'have_jmp_call'.
6700         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
6701         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
6702         macros.
6703         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
6704         architectures.
6705         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
6706         MULTILIB_MATCHES): (Ditto.).
6707
6708 2008-01-23  Richard Guenther  <rguenther@suse.de>
6709
6710         PR middle-end/31529
6711         * cgraphunit.c (cgraph_reset_node): Always mark the node
6712         not reachable if it is not queued already.
6713
6714 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
6715
6716         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
6717         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
6718         (cputype_selected): New static variable.
6719         (bfin_handle_option): Set it if -mcpu is used.
6720         (override_option): Select default set of workarounds if no cpu type
6721         selected on the command line.
6722         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
6723
6724         From  Michael Frysinger  <michael.frysinger@analog.com>
6725         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
6726         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
6727
6728         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
6729         for bf547, bf523, bf524, and bf526.
6730         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
6731         bf526.
6732         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6733         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
6734         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
6735         __ADSPBF547__ and __ADSPBF54x__ for bf547.
6736         * doc/invoke.texi (Blackfin Options): Document that
6737         -mcpu now accept bf547, bf523, bf524, and bf526.
6738
6739 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
6740
6741         PR rtl-optimization/34628
6742         * combine.c (try_combine): Stop and undo after the first combination
6743         if an autoincrement side-effect on the first insn has effectively
6744         been lost.
6745
6746 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
6747
6748         PR target/34529
6749         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
6750         Offset addresses are not valid for Altivec or paired float modes.
6751
6752 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
6753
6754         PR c++/34607
6755         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
6756         if DECL_INITIAL (decl) is error_mark_node.
6757
6758         PR c++/34914
6759         * c-common.c (handle_vector_size_attribute): Only allow
6760         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
6761         the same way as pointer, array etc. types.
6762         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
6763
6764         PR c++/34917
6765         * tree.c (build_type_attribute_qual_variant): Call
6766         build_qualified_type if attributes are equal, but quals are not.
6767
6768 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6769
6770         PR 32102
6771         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
6772         * flags.h (warn_strict_aliasing): Remove.
6773         (warn_strict_overflow): Remove.
6774         * opts.c (warn_strict_aliasing): Remove.
6775         (warn_strict_overflow): Remove.
6776         * c-opts.c (c_common_handle_option): -Wall only sets
6777         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
6778         (c_common_post_options): Give default values to -Wstrict-aliasing
6779         and -Wstrict-overflow if they are uninitialized.
6780         * common.opt (Wstrict-aliasing): Specify Var and Init.
6781         (Wstrict-overflow): Likewise.
6782
6783 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
6784
6785         PR rtl-optimization/26854
6786         PR rtl-optimization/34400
6787         PR rtl-optimization/34884
6788         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
6789         DF_RD->gen.
6790         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
6791         (df_rd_bb_info.expanded_lr_out): Deleted
6792         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
6793         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
6794         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6795         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6796         Removed code to allocate, initialize or free expanded_lr_out.
6797         (df_rd_bb_local_compute_process_def): Restructured to make more
6798         understandable.
6799         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
6800         sets if the sets are being trimmed.
6801
6802 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6803
6804         PR bootstrap/32287
6805         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
6806         (as_vers): Likewise.
6807         * configure: Regenerated.
6808
6809 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6810
6811         PR middle-end/33092
6812         * tree-pass.h (pass_build_alias): New pass.
6813         * tree-ssa-alias.c (gate_build_alias): New.
6814         (pass_build_alias): New.
6815         * passes.c (init_optimization_passes): Add pass_build_alias after
6816         pass_create_structure_vars.
6817
6818 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
6819
6820         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
6821         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
6822         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
6823         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
6824         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
6825         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
6826         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
6827         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
6828         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
6829         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
6830         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
6831         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
6832         * config/s390/s390.md (FP_ALL): New mode iterator.
6833         (_d): New mode attribute.
6834         ("*signbit<mode>2>"): Changed mode of first operand.
6835         ("isinf<mode>2"): Changed mode of first operand.
6836         ("*TDC_insn"): Adaptation for DFP modes.
6837
6838 2008-01-22  Ben Elliston  <bje@au.ibm.com>
6839
6840         * tree.c (check_qualified_type): Improve function description.
6841
6842 2008-01-21  Jason Merrill  <jason@redhat.com>
6843
6844         PR c++/34196
6845         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
6846         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
6847         if it is set.
6848
6849 2008-01-21  DJ Delorie  <dj@redhat.com>
6850
6851         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
6852         return zero.
6853
6854 2008-01-21  Richard Guenther  <rguenther@suse.de>
6855
6856         PR middle-end/34856
6857         * tree-cfg.c (verify_expr): Allow all invariant expressions
6858         instead of just constant class ones as reference argument.
6859         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
6860         like any other constant.
6861         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6862
6863 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
6864
6865         * regmove.c (fixup_match_1): Update call crossed frequencies.
6866
6867 2008-01-21  Richard Guenther  <rguenther@suse.de>
6868
6869         PR c/34885
6870         * tree-inline.c (setup_one_parameter): Deal with mismatched
6871         types using a VIEW_CONVERT_EXPR.
6872
6873 2008-01-21  Alon Dayan  <alond@il.ibm.com>
6874             Olga Golovanevsky  <olga@il.ibm.com>
6875         
6876         PR tree-optimization/34701
6877         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
6878         when the structure size is not a power of 2.
6879
6880 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
6881
6882         * doc/install.texi: Add doc for --enable-checking=df.
6883         
6884 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6885
6886         PR rtl-optimization/34808
6887         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
6888
6889 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6890
6891         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
6892         input.
6893
6894 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6895
6896         PR rtl-optimization/26854
6897         PR rtl-optimization/34400
6898         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
6899         DF_RD->gen.
6900         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
6901         (df_rd_bb_info.expanded_lr_out): New.
6902         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
6903         * loop_iv.c (iv_analysis_loop_init): Ditto.
6904         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6905         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6906         Added code to allocate, initialize or free expanded_lr_out.
6907         (df_rd_bb_local_compute_process_def): Restructured to make
6908         more understandable.
6909         (df_rd_confluence_n): Add code to do nothing with fake edges and
6910         code to no apply invalidate_by_call sets if the sets are being trimmed.
6911         (df_lr_local_finalize): Renamed to df_lr_finalize.
6912         (df_live_local_finalize): Renamed to df_live_finalize.
6913
6914 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6915
6916         PR target/34831
6917         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
6918         deciding whether to use reciprocal instructions.
6919
6920 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
6921
6922         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
6923         dwarf2out_note_section_used if cold_text_section is NULL.
6924
6925 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
6926
6927         PR gcov-profile/34610
6928         * tree-cfg.c (make_edges): Mark both outgoing edges from
6929         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
6930         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
6931         from OMP_FOR and OMP_CONTINUE outgoing edges.
6932
6933         * tree-profile.c (tree_profiling): Return early if
6934         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
6935         at the end.
6936         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
6937         from cfun to child_cfun.
6938         * function.h (struct function): Add after_tree_profile bit.
6939
6940 2008-01-19 Anatoly Sokolov <aesok@post.ru>
6941
6942         * config/avr/avr.S (_exit): Disable interrupt.
6943
6944 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
6945             Steven Bosscher  <stevenb.gcc@gmail.com>
6946
6947         PR rtl-optimization/26854
6948         PR rtl-optimization/34400
6949         * df-problems.c (df_live_scratch): New scratch bitmap.
6950         (df_live_alloc): Allocate df_live_scratch when doing df_live.
6951         (df_live_reset): Clear the proper bitmaps.
6952         (df_live_bb_local_compute): Only process the artificial defs once
6953         since the order is not important.
6954         (df_live_init): Init the df_live sets only with the variables
6955         found live by df_lr.
6956         (df_live_transfer_function): Use the df_lr sets to prune the
6957         df_live sets as they are being computed.  
6958         (df_live_free): Free df_live_scratch.
6959
6960 2008-01-18  Ian Lance Taylor  <iant@google.com>
6961
6962         * common.opt: Add fmerge-debug-strings.
6963         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
6964         flag_merge_debug_strings rather than flag_merge_constants.
6965         * doc/invoke.texi (Option Summary): Mention
6966         -fmerge-debug-strings.
6967         (Debugging Options): Document -fmerge-debug-strings.
6968
6969 2008-01-18  Ian Lance Taylor  <iant@google.com>
6970
6971         PR c++/33407
6972         * tree.h (DECL_IS_OPERATOR_NEW): Define.
6973         (struct tree_function_decl): Add new field operator_new_flag.
6974         * tree-inline.c (expand_call_inline): When inlining a call to
6975         operator new, force the return value to go into a variable, and
6976         set DECL_NO_TBAA_P on that variable.
6977         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
6978
6979 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
6980
6981         PR debug/34484
6982         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
6983         DWARF2_DEBUGGING_INFO.
6984         (dwarf2out_note_section_used): Ditto.  Add prototype.
6985         (have_multiple_function_sections, text_section_used,
6986         cold_text_section_used, *cold_text_sections): Move declarations
6987         before their uses.
6988
6989 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
6990
6991         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
6992         field and add signal_ra.
6993         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
6994         assignments to frame state pc.  Move end of stack check after
6995         MD_FALLBACK_FRAME_STATE_FOR.
6996         (uw_update_context_1): Use frame state signal_regs if set, instead
6997         of checking signal_frame flag.
6998         (uw_update_context): Use frame state signal_ra if set.
6999         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
7000         * config/xtensa/linux-unwind.h: New file.
7001
7002 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7003
7004         * modulo-sched.c (get_sched_window): Fix comment typo.
7005
7006 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
7007
7008         PR tree-optimization/34648
7009         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
7010
7011 2008-01-17  Anatoly Sokolov <aesok@post.ru>
7012
7013         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
7014         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
7015
7016 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
7017
7018         PR rtl-optimization/34400
7019         * df-core.c (df_worklist_dataflow_overeager,
7020         df_worklist_dataflow_doublequeue): New functions.
7021         (df_worklist_dataflow): Two different worklist solvers.
7022         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
7023         New param.
7024
7025 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7026
7027         PR testsuite/34821
7028         * doc/invoke.texi: Document the dependence on pthread for fopenmp
7029         and ftree-parallelize-loops.
7030
7031 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
7032
7033         PR rtl-optimization/34826
7034         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
7035
7036 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7037
7038         * global.c (find_reg): Mark the eh regs as used if necessary.
7039         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
7040         * ra.h (struct allocno): no_eh_reg field added.  Changed
7041         no_stack_reg type to bitfield.
7042
7043 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7044
7045         * tree.c (substitute_in_expr): Add missing 'break'.
7046
7047 2008-01-17  Richard Guenther  <rguenther@suse.de>
7048
7049         PR tree-optimization/34825
7050         * tree-ssa-math-opts.c (is_division_by): Do not recognize
7051         x / x as division to handle.
7052
7053 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7054
7055         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
7056         "-pthread" is specified.
7057         * pa-hpux11.h (LIB_SPEC): Likewise.
7058
7059 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
7060             Peter Bergner  <bergner@vnet.ibm.com>
7061
7062         PR rtl-optimization/33796
7063         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
7064
7065 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7066
7067         PR libgfortran/34699
7068         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
7069         static links.
7070         * pa-hpux10.h (LINK_SPEC): Likewise.
7071         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
7072
7073 2008-01-16  Richard Guenther  <rguenther@suse.de>
7074
7075         PR middle-end/32628
7076         * fold-const.c (fold_convert_const_int_from_int): Do not
7077         set overflow if that occured only because of a sign extension
7078         change when converting from/to a sizetype with the same
7079         precision and signedness.
7080
7081 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7082
7083         PR debug/34249
7084         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
7085         location address to the correct place.  Update copyright year.
7086
7087 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7088
7089         * lambda-code.c (lambda_transform_legal_p): Handle the case of
7090         no dependences in the dependence_relations vector.
7091
7092 2008-01-16  Jan Hubicka  <jh@suse.cz>
7093
7094         PR rtl-optimization/31396
7095         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
7096         * cfg.c (dump_reg_info): Print it.
7097         * regs.h (struct reg_info_t): add freq_calls_crossed.
7098         (REG_FREQ_CALLS_CROSSED): New macro.
7099         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
7100         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
7101         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7102         regmove_optimize): Update call crossed frequencies.
7103         * local-alloc.c (struct qty): Add freq_calls_crossed.
7104         (alloc_qty): Copute freq_calls_crossed.
7105         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
7106         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
7107         * ra.h (struct allocno): Add freq_calls_crossed.
7108
7109 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7110
7111         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
7112         libgomp when compiling with ftree-parallelize-loops.
7113         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
7114
7115 2008-01-16  Richard Guenther  <rguenther@suse.de>
7116
7117         PR tree-optimization/34769
7118         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
7119         * tree.c (int_cst_value): Instead make this function more
7120         permissive in what it accepts as valid input.  Document this
7121         function always sign-extends the value.
7122
7123 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
7124             Richard Guenther  <rguenther@suse.de>
7125
7126         PR c/34668
7127         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
7128         (gimple_fold_indirect_ref_rhs): ... this.
7129         (gimple_fold_indirect_ref): New function with foldings
7130         that preserve lvalueness.
7131         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
7132         * tree-flow.h (gimple_fold_indirect_ref): Declare.
7133         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
7134         to fold an INDIRECT_REF, fall back to the old use of
7135         fold_indirect_ref_1.
7136
7137 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7138
7139         * tree-data-ref.c (subscript_dependence_tester_1): Call 
7140         free_conflict_function.
7141         (compute_self_dependence): Same.
7142
7143 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7144
7145         PR debug/34249
7146         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
7147         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
7148         function global.
7149         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
7150         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
7151         for DWARF2_UNWIND_INFO targets.
7152
7153 2008-01-16  Richard Guenther  <rguenther@suse.de>
7154
7155         PR c/34768
7156         * c-typeck.c (common_pointer_type): Do not merge inconsistent
7157         type qualifiers for function types.
7158
7159 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
7160
7161         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
7162         loop_iterator li from previous commit.
7163
7164 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7165
7166         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
7167
7168 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7169
7170         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
7171         (parallelize_loops): Don't parallelize irreducible components.
7172
7173 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7174
7175         PR c++/24924
7176         * c-opts (c_common_post_options): Do not enable CPP
7177         flag_pedantic_errors by default.
7178         
7179 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7180
7181         PR rtl-optimization/31944
7182         * cse.c (remove_pseudo_from_table): New function.
7183         (merge_equiv_classes): Use above function to remove pseudo-registers.
7184         (invalidate): Likewise.
7185
7186 2008-01-13  Richard Guenther  <rguenther@suse.de>
7187
7188         PR middle-end/34601
7189         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
7190         instead of TYPE_MODE to deal with calls from expand_one_error_var.
7191
7192 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
7193
7194         * gcse.c (cprop_jump): Call validate_unshare_change instead of
7195         validate_change to unshare the source of the PC set.
7196
7197 2008-01-12  Jan Hubicka  <jh@suse.cz>
7198
7199         PR middle-end/32135
7200         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
7201         references above array bounds.  This might trigger bounds checks for
7202         pointers to arrays.
7203
7204 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7205
7206         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
7207         new_replaceable_dependencies.
7208
7209 2008-01-12  Doug Kwan  <dougkwan@google.com>
7210
7211         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
7212         instead of OPT_Wreturn_type in warning due to ignored return type
7213         qualifiers.
7214         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
7215         options included in -Wextra.
7216         * c.opt: New option -Wignored_qualifiers.
7217         * doc/invoke.texi (Warning Options, -Wextra): Add new option
7218         -Wignore_qualifiers.
7219         (-Wignored-qualifiers): Document.
7220         (-Wreturn-type): Remove description of functionality now handled
7221         by -Wignored-qualifiers.
7222
7223 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7224
7225         PR ada/33788
7226         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
7227         NOP_EXPR if it is between integral types with the same precision.
7228
7229 2008-01-12  Jan Hubicka  <jh@suse.cz>
7230
7231         PR other/28023
7232         * invoke.texi (max-inline-recursive-depth): Fix default value.
7233
7234 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
7235
7236         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
7237         correct type.
7238
7239 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
7240         
7241         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
7242         
7243 2008-01-11  James E. Wilson  <wilson@specifix.com>
7244
7245         PR target/26015
7246         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
7247
7248 2008-01-11  Anatoly Sokolov <aesok@post.ru>
7249
7250         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
7251         save/restore frame pointer register and don't use 'call-prologues' 
7252         optimization in function with "OS_task" attribute.
7253
7254 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7255
7256         PR middle-end/31309
7257         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
7258         when copying to memory.
7259
7260 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7261
7262         PR rtl-optimization/30905
7263         * cfgcleanup.c: Include dce.h
7264         (crossjumps_occured): New global variable.
7265         (try_crossjump_bb): Exit loop after finding a fallthru edge.
7266         If something changed, set crossjumps_occured to true.
7267         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
7268         Don't add/remove fake edges to exit here...
7269         (cleanup_cfg): ...but do it here, when crossjumping.
7270         Run a fast DCE when successful crossjumps occured in the latest
7271         iteration of try_optimize_cfg.
7272
7273 2008-01-11  Richard Guenther  <rguenther@suse.de>
7274
7275         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
7276         (struct vn_unary_op_s): Likewise.
7277         (vn_reference_insert): Free old reference on hash collision.
7278
7279 2008-01-10  Raksit Ashok  <raksit@google.com>
7280
7281         PR rtl-optimization/27971
7282         * combine.c (find_split_point): Split PLUS expressions which are
7283         inside a MEM rtx, and whose first operand is complex.
7284
7285 2008-01-10  DJ Delorie  <dj@redhat.com>
7286
7287         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
7288         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
7289         (m32c_hard_regno_ok): Call the underlying function.
7290
7291 2008-01-10  Richard Guenther  <rguenther@suse.de>
7292
7293         PR middle-end/34683
7294         * tree-cfg.c (tree_merge_blocks): Do not go through the
7295         full-blown folding and stmt updating path if we just deal
7296         with virtual operands.
7297         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
7298         test for abnormal SSA_NAMEs.
7299
7300 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7301
7302         PR middle-end/34641
7303         * reload.c (push_reload): Add assertions.  All constants from
7304         reg_equiv_constant should have been used for replacing the respective
7305         pseudo earlier.
7306         (find_reloads_address): Invoke find_reloads_address_part for
7307         constant taken from the reg_equiv_constant array.
7308
7309 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
7310
7311         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
7312         field (valnum) the first in the struct.  Replace bools with
7313         unit bit fields.
7314
7315 2008-01-10  Richard Guenther  <rguenther@suse.de>
7316
7317         PR tree-optimization/34651
7318         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
7319         types and ordering for masking and converting.
7320
7321 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
7322
7323         PR tree-optimization/34017
7324         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
7325         also for PHI_NODE expressions.
7326
7327 2008-01-09  Jan Hubicka  <jh@suse.cz>
7328
7329         PR tree-optimization/34708
7330         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
7331         based on number of case labels.
7332         (init_inline_once): Remove switch_cost.
7333         * tree-inline.h (eni_weights_d): Remove switch_cost.
7334
7335 2008-01-09  Richard Guenther  <rguenther@suse.de>
7336         Andrew Pinski  <andrew_pinski@playstation.sony.com>
7337
7338         PR middle-end/30132
7339         * gimplify.c (gimplify_cond_expr): Do not create an addressable
7340         temporary if an rvalue is ok or an lvalue is not required.
7341
7342 2008-01-09  Richard Guenther  <rguenther@suse.de>
7343
7344         PR middle-end/34458
7345         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
7346         adjust return type.
7347
7348 2008-01-09  Richard Guenther  <rguenther@suse.de>
7349
7350         PR middle-end/34679
7351         * tree.c (host_integerp): Check for sizetype only if the
7352         type is an integer type.
7353
7354 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
7355
7356         PR debug/26364
7357         * opts.c (decode_options): Disable inlining of functions called
7358         once if not in unit-at-a-time mode.
7359
7360 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
7361
7362         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
7363
7364 2008-01-08  Richard Guenther  <rguenther@suse.de>
7365
7366         PR middle-end/31863
7367         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
7368         out early if the result will be unused.
7369
7370 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7371
7372         PR target/34709
7373         Revert:
7374
7375         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7376         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7377         for TARGET_RECIP.       
7378         
7379 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
7380         
7381         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
7382         for vectorization tuned.
7383         
7384 2008-01-08  Richard Guenther  <rguenther@suse.de>
7385
7386         PR tree-optimization/34683
7387         * tree-ssa-operands.c (operand_build_cmp): Export.
7388         * tree-ssa-operands.h (operand_build_cmp): Declare.
7389         * tree-vn.c (vuses_compare): Remove.
7390         (sort_vuses): Use operand_build_cmp.
7391         (sort_vuses_heap): Likewise.
7392         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
7393         to re-use old VEC if available.  Do not sort already sorted VUSEs.
7394         (vdefs_to_vec): Do not sort already sorted VDEFs.
7395
7396 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
7397
7398         PR middle-end/34694
7399         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
7400
7401 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7402
7403         PR target/34702
7404         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
7405         limitations of reciprocal sequences on x86 targets.
7406
7407 2008-01-08  Richard Guenther  <rguenther@suse.de>
7408
7409         PR tree-optimization/34683
7410         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
7411
7412 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
7413
7414         PR target/34622
7415         * config/darwin.c (darwin_mergeable_string_section): Don't use
7416         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
7417
7418 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
7419
7420         PR target/34682
7421         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
7422         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
7423         predicates of op0 and op1 to register_operand.
7424         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
7425         expander using X87MODEF mode iterator.  Change predicates of
7426         op0 and op1 to register_operand.
7427         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
7428         corresponding patterns and macroize using MODEF macro.  Change
7429         predicates of op0 and op1 to register_operand and remove
7430         "m" constraint. Disparage "r" alternative with "!".
7431         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
7432         macroize using X87MODEF macro.  Change predicates of op0 and op1
7433         to register_operand and remove "m" constraint.  Disparage "r"
7434         alternative with "!".
7435         (absneg splitter with memory operands): Remove.
7436         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
7437         patterns and macroize using X87MODEF mode iterator.
7438         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
7439         Change predicate of op1 to register_operand.
7440         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
7441         for memory operands.
7442
7443 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
7444
7445         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
7446
7447 2008-01-07  Richard Guenther  <rguenther@suse.de>
7448
7449         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
7450         fields.
7451
7452 2008-01-07  Richard Guenther  <rguenther@suse.de>
7453
7454         PR tree-optimization/34683
7455         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
7456         VOPs of the needed size to save memory.  Use VEC_quick_push
7457         to save compile-time.
7458         (vdefs_to_vec): Likewise.
7459
7460 2008-01-07  Sa Liu  <saliu@de.ibm.com>
7461
7462         * config/spu/spu.md (divdf3): Genetate inline code for double
7463         division.  The implementation doesn't handle INF or NAN, therefore it
7464         only applies when -ffinite-math-only is given.
7465
7466 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
7467
7468         PR libstdc++/34680
7469         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
7470         * doc/cpp.texi ([Common Predefined Macros]): Document.
7471
7472 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
7473
7474         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
7475         order to use commutative addition instead of subtraction.
7476
7477 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7478             Mircea Namolaru  <namolaru@il.ibm.com>
7479             Vladimir Yanovsky  <yanov@il.ibm.com>
7480             Revital Eres  <eres@il.ibm.com>
7481
7482         PR tree-optimization/34263
7483         * tree-outof-ssa.c (process_single_block_loop_latch,
7484         contains_tree_r): New functions.
7485         (analyze_edges_for_bb): Call process_single_block_loop_latch
7486         function to empty single-basic-block latch block if possible.
7487
7488 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7489
7490         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7491         for TARGET_RECIP.
7492         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
7493
7494 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7495
7496         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
7497
7498 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7499
7500         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
7501
7502 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
7503
7504         PR tree-optimization/34618
7505         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
7506         flag from T.
7507
7508 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7509
7510         PR target/34673
7511         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
7512         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
7513         Update copyright year.
7514
7515         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
7516         Update copyright year.
7517         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
7518         using NR fixup.
7519
7520 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
7521
7522         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
7523         edge does not point to current bb before changing need_assert.
7524
7525 2008-01-04  Richard Guenther  <rguenther@suse.de>
7526
7527         PR middle-end/34029
7528         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
7529         for verifying purposes if they are is_gimple_min_invariant.
7530
7531 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
7532
7533         PR tree-optimization/34448
7534         PR tree-optimization/34465
7535         * gimplify.c (gimplify_init_constructor): Add new parameter
7536         notify_temp_creation.  Use it.
7537         (gimplify_modify_expr_rhs): Take volatiles into account when
7538         optimizing constructors.
7539         Do not optimize constructors if gimplify_init_constructor will dump to
7540         memory.
7541         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
7542         * gcc.c-torture/compile/pr34448.c: New.
7543
7544 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
7545
7546         PR gcov-profile/34609
7547         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
7548         return_slot if result is TREE_ADDRESSABLE.
7549
7550 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
7551
7552         * config/mips/mips.md (sqrt_condition): Tweak comment.
7553         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
7554
7555 2008-01-03  Tom Tromey  <tromey@redhat.com>
7556
7557         PR c/34457
7558         * c-common.c (c_type_hash): Handle VLAs.
7559
7560 2008-01-03  Jan Hubicka  <jh@suse.cz>
7561
7562         PR tree-optimization/31081
7563         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
7564         0 when inlining and not inlining to first basic block.
7565         (remap_decl): When var is initialized to 0, don't set default_def.
7566         (expand_call_inline): Set entry_bb.
7567         * tree-inline.h (copy_body_data): Add entry_bb.
7568
7569 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7570
7571         PR c++/34619
7572         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
7573         before returning.
7574
7575         PR tree-optimization/29484
7576         * tree-inline.c (inline_forbidden_p_2): New function.
7577         (inline_forbidden_p): Disallow inlining if some static var
7578         has an address of a local LABEL_DECL in its initializer.
7579         * doc/extend.texi (Labels as Values): Document &&foo behaviour
7580         vs. inlining.
7581
7582 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
7583
7584         PR tree-optimization/34635
7585         * tree-data-ref.c (add_other_self_distances): Make sure that the
7586         evolution step is constant.
7587
7588 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7589
7590         PR middle-end/34608
7591         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
7592
7593 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
7594
7595         * tree-sra.c (scalarize_init): Insert the generate_element_init
7596         statements after the generate_element_zero statements.
7597
7598 2008-01-02  Richard Guenther  <rguenther@suse.de>
7599
7600         PR middle-end/34093
7601         PR middle-end/31976
7602         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
7603         for very large number of operands instead of ICEing.
7604
7605 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
7606
7607         PR target/34013
7608         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
7609         while stack probing.
7610
7611 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
7612
7613         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
7614         in C++0x mode.
7615
7616 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
7617
7618         PR libmudflap/26442
7619         * tree-mudflap.c (mx_register_decls): Guard warning by
7620         !DECL_ARTIFICIAL check.
7621
7622 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
7623
7624         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
7625         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
7626         sse5_perm<mode>): Fix constraints.