OSDN Git Service

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