OSDN Git Service

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