OSDN Git Service

b8392545ac5b6b67fed34c9a75b294062eca92f2
[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