OSDN Git Service

9cd2d2812134ca4feb047b62b2d26db7e8a51fd5
[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.
3406         * tree-if-conv.c: Update tree_pass descriptors.
3407         * init-regs.c: Update tree_pass descriptors.
3408         * ipa.c: Update tree_pass descriptors.
3409         * tree-ssa-phiopt.c: Update tree_pass descriptors.
3410         * rtl-factoring.c: Update tree_pass descriptors.
3411         * lower-subreg.c: Update tree_pass descriptors.
3412         * bt-load.c: Update tree_pass descriptors.
3413         * tree-dfa.c: Update tree_pass descriptors.
3414         * except.c: Update tree_pass descriptors.
3415         * emit-rtl.c: Update tree_pass descriptors.
3416         * cfgexpand.c: Update tree_pass descriptors.
3417         * tree-cfgcleanup.c: Update tree_pass descriptors.
3418         * cfgcleanup.c: Update tree_pass descriptors.
3419         * tree-ssa-pre.c: Update tree_pass descriptors.
3420         * tree-sra.c: Update tree_pass descriptors.
3421         * tree-mudflap.c: Update tree_pass descriptors.
3422         * tree-ssa-copy.c: Update tree_pass descriptors.
3423         * cfglayout.c: Update tree_pass descriptors.
3424         * tree-ssa-forwprop.c: Update tree_pass descriptors.
3425         * tree-ssa-dce.c: Update tree_pass descriptors.
3426         * tree-ssa.c: Update tree_pass descriptors.
3427         * regclass.c: Update tree_pass descriptors.
3428         * integrate.c: Update tree_pass descriptors.
3429         * tree-optimize.c: Update tree_pass descriptors.
3430         * tree-ssa-phiprop.c: Update tree_pass descriptors.
3431         * tree-object-size.c: Update tree_pass descriptors.
3432         * combine.c: Update tree_pass descriptors.
3433         * tree-outof-ssa.c: Update tree_pass descriptors.
3434         * bb-reorder.c: Update tree_pass descriptors.
3435         * stack-ptr-mod.c: Update tree_pass descriptors.
3436         * var-tracking.c: Update tree_pass descriptors.
3437         * tree-profile.c: Update tree_pass descriptors.
3438         * tree-vect-generic.c: Update tree_pass descriptors.
3439         * reg-stack.c: Update tree_pass descriptors.
3440         * sched-rgn.c: Update tree_pass descriptors.
3441         * tree-ssa-structalias.c: Update tree_pass descriptors.
3442         * tree-cfg.c: Update tree_pass descriptors.
3443         * passes.c (current_pass): Update declaration.
3444         (finish_optimization_passes): Update.
3445         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
3446         (register_one_dump_file, register_dump_files_1, next_pass_1):
3447         Update arguments.
3448         (init_optimization_passes): Update handling of new types.
3449         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
3450         * ipa-struct-reorg.c: Update tree_pass descriptors.
3451         * tree-ssa-reassoc.c: Update tree_pass descriptors.
3452         * combine-stack-adj.c: Update tree_pass descriptors.
3453         * cfgrtl.c: Update tree_pass descriptors.
3454         * dce.c: Update tree_pass descriptors.
3455         * tree-ssanames.c: Update tree_pass descriptors.
3456
3457 2008-03-19  Richard Guenther  <rguenther@suse.de>
3458
3459         PR middle-end/35609
3460         * tree-ssa.c (walk_data): New structure.
3461         (warn_uninitialized_var): If not always_executed warn with "maybe"
3462         instead of "is".
3463         (execute_early_warn_uninitialized): Compute post-dominators.
3464         Initialize always_executed before processing each basic block.
3465
3466 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
3467
3468         PR target/35504
3469         * config/i386/i386.c (x86_this_parameter): Calculate correct location
3470         of "this" pointer when "regparm = N" or "fastcall" is in effect.
3471
3472 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3473
3474         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
3475
3476 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
3477
3478         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
3479         is true.
3480         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
3481         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
3482         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
3483         target after ignore has been set, and move there also the commputation
3484         of subtarget and original_target.
3485         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
3486         (LANG_HOOKS_INITIALIZER): Remove it.
3487         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
3488
3489 2008-03-18  Richard Guenther  <rguenther@suse.de>
3490
3491         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
3492         found an expression with constants, note that in the VN for the lhs.
3493         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
3494         fold them to constants if possible.  Run cleanup_cfg if done so.
3495         (execute_pre): Return todo.
3496         (do_pre): Likewise.
3497         (execute_fre): Likewise.
3498         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
3499         of constants.
3500         (get_prop_source_stmt): Look through pointer conversions.
3501
3502 2008-03-18  Jan Hubicka  <jh@suse.cz>
3503
3504         * tree-pretty-print.c: Include predict.h.
3505         (dump_generic_node): Dump predictor.
3506         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
3507         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
3508         * gimple-low.c (lower_stmt): Likewise.
3509         * expr.c (expand_expr_real): Likewise.
3510         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
3511         them.
3512         (build_predict_expr, build_predict_expr): New.
3513         * predict.h (predictor_name, build_predict_expr): Update.
3514         * c-typeck.c (c_finish_bc_stmt): Add prediction.
3515         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
3516         * predict.def (PRED_CONTINUE): Update hitrate.
3517         * tree.def (PREDICT_EXPR): Define.
3518         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
3519         do not handle BIND_EXPR.
3520         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
3521         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
3522         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
3523         operands.
3524
3525 2008-03-18  Michael Matz  <matz@suse.de>
3526
3527         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
3528
3529 2008-03-18  Richard Guenther  <rguenther@suse.de>
3530
3531         * tree-gimple.h (is_gimple_invariant_address): Declare.
3532         (is_gimple_constant): Likewise.
3533         * tree-gimple.c (is_gimple_constant): New function.
3534         (is_gimple_invariant_address): Likewise.
3535         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
3536         and is_gimple_invariant_address.
3537         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
3538         previous change.
3539         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
3540         an addressable base.
3541
3542 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3543
3544         PR middle-end/35611
3545         * gimplify.c (gimplify_expr): Gimplify second operand of
3546         OMP_ATOMIC_LOAD.
3547
3548 2008-03-17  Richard Guenther  <rguenther@suse.de>
3549
3550         PR tree-optimization/19637
3551         * fold-const.c (fold_unary): Remove restrictions of removing
3552         intermediate pointer-conversions (P2)(P1)P0.
3553         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
3554         conversion to void pointer.
3555         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
3556
3557 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
3558
3559         PR debug/31510
3560         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
3561         emulated thread local variables.
3562
3563 2008-03-16  Richard Guenther  <rguenther@suse.de>
3564
3565         PR middle-end/35607
3566         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
3567         expand TREE_INVARIANT operations that are not gimple invariant.
3568
3569 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
3570
3571         * doc/extend.texi (Alignment): Say that the ABI controls
3572         the __alignof__ for non-strict-alignment targets rather
3573         than being a recommendation.
3574
3575 2008-03-15  Paul Brook  <paul@codesourcery.com>
3576
3577         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
3578         annotations.
3579         (arm_output_fn_unwind): Mark functions that can not be unwound.
3580
3581 2008-03-15  Paul Brook  <paul@codesourcery.com>
3582
3583         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
3584         extension instructions.
3585
3586 2008-03-15  Richard Guenther  <rguenther@suse.de>
3587
3588         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
3589         and fold constant aggregate refs.
3590         (fold_const_aggregate_ref): Handle string constants
3591         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
3592         (evaluate_stmt): Simplify now that ccp_fold folds constant
3593         aggregate refs.
3594
3595 2008-03-15  Paul Brook  <paul@codesourcery.com>
3596
3597         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
3598         (extzv): Use gen_extzv_t2.
3599         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
3600
3601 2008-03-15  Richard Guenther  <rguenther@suse.de>
3602
3603         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
3604         (fold_const_aggregate_ref): Likewise.
3605         (get_value): Return NULL if we don't have any values.
3606         (ccp_finalize): Set const_val to NULL after freeing it.
3607         * tree-flow.h (get_symbol_constant_value): Declare.
3608         (fold_const_aggregate_ref): Likewise.
3609         * tree-ssa-sccvn.c (try_to_simplify): Use them.
3610
3611 2008-03-15  Richard Guenther  <rguenther@suse.de>
3612
3613         PR middle-end/35593
3614         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
3615         to not produce negative array indices if not allowed.  Add
3616         parameter to indicate that.
3617         (maybe_fold_offset_to_component_ref): Allow negative array
3618         indices only for the first member of a structure.
3619         (maybe_fold_offset_to_reference): Allow negative array indices.
3620         (maybe_fold_stmt_addition): Likewise.
3621
3622 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
3623             Anatoly Sokolov <aesok@post.ru>
3624
3625         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
3626         (avr_arch): Add ARCH_AVR6.
3627         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
3628         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
3629         instead of fixed value 2.
3630         (print_operand_address): Use gs() asm specifier instead of pm().
3631         (avr_assemble_integer): (Ditto.).
3632         (avr_output_addr_vec_elt): (Ditto.).
3633         (print_operand): Handle "!" code.
3634         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
3635         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
3636         (AVR_HAVE_EIJMP_EICALL): Define.
3637         (AVR_3_BYTE_PC): Redefine.
3638         (AVR_2_BYTE_PC): (Ditto.).
3639         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
3640         (LINK_SPEC): Add atmega2560 and atmega2561.
3641         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
3642         (crtm2561.o).
3643         * config/avr/avr.md (call_insn): Use eicall instead of icall 
3644         for 3 byte PC devices.
3645         (call_value_insn): (Ditto.).
3646         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
3647         (indirect_jump): Use only for for 2 byte PC devices.
3648         (*tablejump): (Ditto.).
3649         (*indirect_jump_avr6): Add insn.
3650         (*tablejump_rjmp): Don't use for 3 byte PC devices.
3651         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
3652         instead of ijmp for 3 byte PC devices.
3653         (__tablejump2__): (Ditto.).
3654         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
3655         (MULITLIB_DIRNAMES): (Ditto.). 
3656         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
3657
3658 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
3659
3660         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
3661         "sse2_umulsidi3".  Use V1DI mode for operand 0.
3662         ("mmx_psadbw"): Use V1DI mode for operand 0.
3663         * config/i386/i386-modes.def (V1SI): New vector mode.
3664         * config/i386/i386.c (struct builtin_description)
3665         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
3666         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
3667         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
3668         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
3669         v1di_ftype_v8qi_v8qi type.
3670         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
3671
3672         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
3673         __builtin_ia32_pmuludq]: Fix the mode of return value.
3674
3675 2008-03-15  Richard Guenther  <rguenther@suse.de>
3676
3677         PR middle-end/35595
3678         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
3679         being a PHI_NODE.
3680
3681 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
3682         
3683         * doc/invoke.texi (Option Summary, Xtensa Options): Document
3684         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
3685         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
3686         unless TARGET_SERIALIZE_VOLATILE is enabled.
3687         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
3688         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
3689         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
3690
3691 2008-03-14  Richard Guenther  <rguenther@suse.de>
3692
3693         PR tree-optimization/34172
3694         * tree-flow.h (refs_may_alias_p): Declare.
3695         (get_single_def_stmt): Likewise.
3696         (get_single_def_stmt_from_phi): Likewise.
3697         (get_single_def_stmt_with_phi): Likewise.
3698         * tree-dfa.c (refs_may_alias_p): New function.
3699         (get_single_def_stmt): Likewise.
3700         (get_single_def_stmt_from_phi): Likewise.
3701         (get_single_def_stmt_with_phi): Likewise.
3702         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
3703         (vn_reference_lookup_1): New helper function.
3704         (vn_reference_lookup): Walk the virtual use-def chain to
3705         continue searching for a match if the def does not alias the
3706         reference we are looking for.
3707
3708 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
3709
3710         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
3711         archive and Perzl.  Update The Written Word listing.
3712
3713 2008-03-14  Richard Guenther  <rguenther@suse.de>
3714
3715         PR tree-optimization/34043
3716         PR tree-optimization/33989
3717         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
3718         when doing FRE.
3719         (bitmap_find_leader): Use extra argument to verify dominance
3720         relationship inside a basic-block.
3721         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
3722         (find_leader_in_sets): Adjust.
3723         (create_component_ref_by_pieces): Take extra argument for
3724         dominance check, handle lookup failures.
3725         (find_or_generate_expression): Likewise.
3726         (create_expression_by_pieces): Likewise.
3727         (insert_into_preds_of_block): Adjust.
3728         (create_value_expr_from): If asked for, verify all operands
3729         are in the blocks AVAIL_OUT set.
3730         (make_values_for_stmt): Check for SSA_NAMEs that are life
3731         over an abnormal edge.
3732         (compute_avail): Remove such check.
3733         (do_SCCVN_insertion): New function.
3734         (eliminate): If we do not find a leader suitable for replacement
3735         insert a replacement expression from SCCVN if available.
3736         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
3737         (struct vn_ssa_aux): Add needs_insertion flag.
3738         * tree-ssa-sccvn.c (may_insert): New global flag.
3739         (copy_reference_ops_from_ref): Value-number union member access
3740         based on its size, not type and member if insertion is allowed.
3741         (visit_reference_op_load): For a weak match from union type
3742         punning lookup a view-converted value and insert a SSA_NAME
3743         for that value if that is not found.
3744         (visit_use): Make dumps shorter.  Do not disallow value numbering
3745         SSA_NAMEs that are life over an abnormal edge to constants.
3746         (free_scc_vn): Release inserted SSA_NAMEs.
3747         (run_scc_vn): New flag to specify whether insertion is allowed.
3748         Process SSA_NAMEs in forward order.
3749         * tree-ssa-loop-im.c (for_each_index): Handle invariant
3750         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
3751         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
3752         pointer type to/from integral types that do not change the
3753         precision to regular conversions.
3754
3755 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3756
3757         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3758         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3759         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
3760         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
3761         input arguments and the mode of return value.  Built-in functions
3762         that operate on whole 64-bit MMX register now use V1DI mode.
3763
3764 2008-03-13  Alon Dayan  <alond@il.ibm.com>
3765             Olga Golovanevsky  <olga@il.ibm.com>
3766
3767         PR tree-optimization/35041
3768         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3769         to locate the right position in a statement.
3770
3771 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3772
3773         PR target/34000
3774         PR target/35553
3775         * config/i386/xmmintrin.h:  Change all static inline functions to
3776         extern inline and add __gnu_inline__ attribute.
3777         * config/i386/bmintrin.h: Ditto.
3778         * config/i386/smmintrin.h: Ditto.
3779         * config/i386/tmmintrin.h: Ditto.
3780         * config/i386/mmintrin-common.h: Ditto.
3781         * config/i386/ammintrin.h: Ditto.
3782         * config/i386/emmintrin.h: Ditto.
3783         * config/i386/pmmintrin.h: Ditto.
3784         * config/i386/mmintrin.h: Ditto.
3785         * config/i386/mm3dnow.h: Ditto.
3786
3787 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3788
3789         PR middle-end/35185
3790         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3791         (lower_omp_2): New function.
3792         (lower_omp_1, lower_omp): Rewritten.
3793
3794 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3795
3796         PR 35054
3797         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3798         with the phrase "Microsoft Windows compilers".
3799         (Push/Pop Macro Pragmas): New subsection. Document
3800         #pragma push_macro and pragma pop_macro.
3801
3802 2008-03-12  Paul Brook  <paul@codesourcery.com>
3803
3804         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3805
3806 2008-03-12  Paul Brook  <paul@codesourcery.com>
3807
3808         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3809         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3810         (thumb2_addsi_shortim): Rename ...
3811         (thumb2_addsi_short): ... to this.  Allow register operands.
3812         (thumb2_subsi_short): New pattern.
3813         (thumb2_one_cmplsi2_short,
3814         thumb2_negsi2_short): New patterns and peepholes.
3815
3816 2008-03-12  Paul Brook  <paul@codesourcery.com>
3817
3818         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3819
3820 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3821
3822         * config/i386/i386.md (int_cond): New code iterator.
3823         (fp_cond): Ditto.
3824         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3825         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3826         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3827         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3828         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3829         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3830         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3831         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3832
3833 2008-03-12  Paul Brook  <paul@codesourcery.com>
3834
3835         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3836         instead of {arm,thumb}_compute_save_reg_mask.
3837         (output_return_instruction): Ditto.
3838         (thumb_unexpanded_epilogue): Ditto.
3839         (thumb1_expand_prologue): Ditto.
3840         (thumb1_output_function_prologue): Ditto.
3841         (arm_set_return_address): Ditto.
3842         (thumb_set_return_address): Ditto.
3843         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3844         regs to achieve stack alignment.
3845         (thumb1_compute_save_reg_mask): Fix compiler warning.
3846         (arm_output_epilogue): Use offsets->saved_regs_mask.
3847         Adjust stack pointer by poping call clobered registers.
3848         (arm_expand_prologue): Use offsets->saved_regs_mask.
3849         Adjust stack pointer by pushing extra registers.
3850         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3851
3852 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3853
3854         PR tree-opt/35422
3855         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3856         conversion to the operands of a multiplication.
3857
3858 2008-03-12  Richard Guenther  <rguenther@suse.de>
3859
3860         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3861         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3862         * timevar.def (TV_TREE_PHIPROP): Add.
3863         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3864         pass description.  Use TV_TREE_PHIPROP.
3865         * tree-ssa-forwprop.c: Remove phiprop code.
3866
3867 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3868
3869         PR middle-end/35549
3870         * omp-low.c (maybe_lookup_decl): Constify first argument.
3871         (use_pointer_for_field): Change last argument from bool to
3872         omp_context *.  Disallow shared copy-in/out in nested
3873         parallel if decl is shared in outer parallel too.
3874         (build_outer_var_ref, scan_sharing_clauses,
3875         lower_rec_input_clauses, lower_copyprivate_clauses,
3876         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3877
3878 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3879             Ira Rosen  <irar@il.ibm.com>
3880
3881         * tree-vectorizer.c (free_stmt_vec_info): New function.
3882         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3883         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3884         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3885         * tree-vect-transform.c (vectorizable_conversion): Free
3886         vec_oprnds0 if it was allocated.
3887         (vect_permute_store_chain): Remove unused VECs.
3888         (vectorizable_store): Free VECs that are allocated in the..
3889         function.
3890         (vect_transform_strided_load, vectorizable_load): Likewise.
3891         (vect_remove_stores): Simplify the code.
3892         (vect_transform_loop): Move code to vect_remove_stores().
3893         Call vect_remove_stores() and free_stmt_vec_info().
3894
3895 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3896
3897         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3898         TARGET_HPUX.  Revise comment.
3899         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3900         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3901         Use sr4 variant of `be' instruction when not generating PIC code.
3902         (attr_length_call): Adjust for above change.
3903
3904 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3905
3906         * ipa-reference.c (static_execute): Remove module_statics_const and
3907         associated setting code.
3908
3909 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3910
3911         PR target/35540
3912         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3913         predicate for operand 1.
3914         (paritysi2_cmp): Use register_operand predicate for operand 2.
3915         Use earlyclobber modifier for operand 1.  Remove support for
3916         memory operands.
3917         (paritydi2_cmp): Use register_operand predicate for operand 3.
3918         Use earlyclobber modifier for operand 1.  Remove support for
3919         memory operands.
3920
3921 2008-03-11  Paul Brook  <paul@codesourcery.com>
3922             Vladimir Prus  <vladimir@codesourcery.com>
3923
3924         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3925         (arm_compute_save_reg0_reg12_mask): Always
3926         check if register 11 must be saved.  Always safe hard frame pointer
3927         when frame_pointer_needeed.
3928         (arm_compute_save_reg_mask): Save IP and PC
3929         only with apcs frames.
3930         (arm_output_epilogue): Adjust Thumb2 codepath to
3931         be also invoked and work for ARM non-apcs frames.
3932         (arm_expand_prologue): Don't bother saving IP
3933         for non-apcs frame, since it's not clobbered by
3934         prologue code.  Implement non-apcs frame
3935         layout.
3936
3937 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3938
3939         PR rtl-optimization/35281
3940         * expr.c (convert_move): Use a new pseudo for the intermediate
3941         from_mode->word_mode result.
3942
3943 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3944
3945         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3946         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3947         * toplev.c (compile_file): Don't call it.
3948
3949 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3950
3951         PR middle-end/35526
3952         * expr.c (store_expr): Call emit_block_move if the mode
3953         of "temp" RTX is BLKmode.
3954
3955 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3956             Richard Guenther  <rguenther@suse.de>
3957
3958         PR tree-optimization/31358
3959         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3960         the step with a NULL_TREE.
3961         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3962         to sizetype if type is a pointer type.
3963         (add_candidate_1): Don't convert the base and step to
3964         the generic type if the orginal type is a pointer type.
3965         (add_iv_value_candidates): Use sizetype for the step
3966         if type is a pointer type.
3967         (cand_value_at): Likewise.
3968         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3969         for pointer types.
3970         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3971         Don't convert the tem affine to the type.
3972         (add_elt_to_tree): Use sizetype for the step if a pointer.
3973         Use POINTER_PLUS_EXPR for pointers.
3974         (aff_combination_to_tree): Use sizetype for the step if a
3975         pointer.
3976
3977 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3978
3979         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3980         Remove commutativity hint.
3981
3982 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3983
3984         PR c/35438
3985         PR c/35439
3986         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3987         errorneous type.  Check that v is a VAR_DECL.
3988
3989         PR middle-end/35099
3990         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3991
3992 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3993
3994         PR tree-optimization/35494
3995         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3996         may be overriden at link and run time.
3997
3998 2008-03-10  Richard Guenther  <rguenther@suse.de>
3999
4000         PR tree-optimization/34677
4001         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
4002         (poolify_tree): Likewise.
4003         (modify_expr_template): Likewise.
4004         (poolify_modify_stmt): Likewise.
4005         (insert_fake_stores): Handle all component-ref style stores
4006         in addition to INDIRECT_REF.  Also handle complex types.
4007         Do not poolify the inserted load.
4008         (realify_fake_stores): Do not rebuild the tree but only
4009         make it a SSA_NAME copy.
4010         (init_pre): Remove initialzation of modify_expr_template.
4011         Do not allocate modify_expr_node_pool.
4012         (fini_pre): Do not free modify_expr_node_pool.
4013
4014 2008-03-10  Paul Brook  <paul@codesourcery.com>
4015
4016         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
4017         to avoid conflicts.
4018
4019 2008-03-10  Paul Brook  <paul@codesourcery.com>
4020             Mark Shinwell  <shinwell@codesourcery.com>
4021
4022         * config/arm/cortex-r4.md: New.
4023         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
4024         insn attributes.
4025         * config/arm/arm.md: Include cortex-r4.md.
4026         (insn): Add smmls, sdiv and udiv values.
4027         (generic_sched): Don't use generic scheduling for Cortex-R4.
4028         (arm_issue_rate): New function.
4029         (TARGET_SCHED_ISSUE_RATE): Define.
4030
4031 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
4032
4033         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
4034
4035 2008-03-10  Richard Guenther  <rguenther@suse.de>
4036
4037         * tree-ssa-pre.c (get_sccvn_value): Simplify.
4038         (compute_avail): Do not add stmt uses to AVAIL_OUT.
4039
4040 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
4041
4042         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
4043         Set default to true.
4044
4045 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4046
4047         * c.opt (Wsynth): Deprecate.
4048         * doc/invoke.texi (Option Summary, Warning Options): Document
4049         -Wno-format-contains-nul.
4050
4051 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
4052
4053         PR target/35496
4054         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
4055         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
4056
4057 2008-03-09  Ira Rosen  <irar@il.ibm.com>
4058
4059         * config/rs6000/rs6000.c (builtin_description): Rename vector
4060         left shift operations.
4061         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
4062         (altivec_vsl<VI_char>): Rename to ...
4063         (ashl<mode>3): ... new name.
4064         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
4065         gen_ashlv4si3.
4066         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
4067
4068 2008-03-08  Richard Guenther  <rguenther@suse.de>
4069
4070         * coverage.h (tree_coverage_counter_addr): Declare.
4071         * coverage.c (tree_coverage_counter_addr): New function.
4072         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
4073         before using again.
4074         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
4075         (tree_gen_one_value_profiler): Likewise.
4076         (tree_gen_ic_profiler): Likewise.
4077         (tree_gen_average_profiler): Likewise.
4078         (tree_gen_ior_profiler): Likewise.
4079
4080 2008-03-08  Richard Guenther  <rguenther@suse.de>
4081
4082         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
4083         (vn_binary_op_insert): Likewise.
4084         (vn_unary_op_lookup): Likewise.
4085         (vn_unary_op_insert): Likewise.
4086         (vn_nary_op_lookup): Declare.
4087         (vn_nary_op_insert): Likewise.
4088         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
4089         and binary hashes, use a single obstack for unary_op_pool
4090         and binary_op_pool.
4091         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
4092         a single struct vn_nary_op_s.  Store tree code length and
4093         a variable number of operands.
4094         (struct vn_reference_op_struct): Remove unused op2.
4095         (vn_reference_op_eq): Do not compare op2.
4096         (vn_reference_op_compute_hash): Do not compute hash of op2.
4097         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
4098         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
4099         with vn_nary_op_compute_hash.
4100         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
4101         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
4102         vn_nary_op_lookup.
4103         (vn_unary_op_insert, vn_binary_op_insert): Replace with
4104         vn_nary_op_insert.
4105         (visit_unary_op): Call nary functions.
4106         (visit_binary_op): Likewise.
4107         (process_scc): Adjust for struct vn_tables_s changes.
4108         (allocate_vn_table): Likewise.
4109         (free_vn_table): Likewise.
4110         * tree-vn.c (vn_add): Call nary functions.
4111         (vn_lookup): Likewise.
4112
4113 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
4114
4115         PR target/35498
4116         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
4117         wdst back after sync_compare_and_swapqhi_internal.
4118
4119 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
4120
4121         PR target/22152
4122         * config/i386/i386-modes.def (V1DI): New vector mode.
4123         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
4124         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
4125         (MMXMODE248): Ditto.
4126         (MMXMODE): Add V1DI mode.
4127         (mmxvecsize): Change DI mode to V1DI mode.
4128         ("mov<mode>): Use MMXMODEI8 mode iterator.
4129         ("*mov<mode>_internal_rex64"): Ditto.
4130         ("*mov<mode>_internal"): Ditto.
4131         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
4132         ("mmx_sub<mode>3"): Ditto.
4133         ("mmx_adddi3"): Remove insn pattern.
4134         ("mmx_subdi3"): Ditto.
4135         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
4136         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
4137         ("mmx_ashl<mode>3"): Ditto.
4138         ("mmx_lshrdi3"): Remove insn pattern.
4139         ("mmx_ashldi3"): Ditto.
4140         * config/i386/i386.c (classify_argument): Handle V1DImode.
4141         (function_arg_advance_32): Ditto.
4142         (function_arg_32): Ditto.
4143         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
4144         mmx_addv1di3 insn pattern.
4145         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
4146         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
4147         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
4148         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
4149         Remove definitions of built-in functions.
4150         (V1DI_type_node): New node.
4151         (v1di_ftype_v1di_int): Ditto.
4152         (v1di_ftype_v1di_v1di): Ditto.
4153         (v2si_ftype_v2si_si): Ditto.
4154         (v4hi_ftype_v4hi_di): Remove node.
4155         (v2si_ftype_v2si_di): Ditto.
4156         (ix86_init_mmx_sse_builtins): Handle V1DImode.
4157         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
4158         Redefine builtins using def_builtin_const with *_ftype_*_int node.
4159         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
4160         Add new builtins using def_builtin_const.
4161         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
4162         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
4163         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
4164         * config/i386/mmintrin.h (__v1di): New typedef.
4165         (_mm_add_si64): Cast arguments to __v1di type.
4166         (_mm_sub_si64): Ditto.
4167         (_mm_sll_pi16): Cast __count to __v4hi type.
4168         (_mm_sll_pi32): Cast __count to __v2si type.
4169         (_mm_sll_si64): Cast arguments to __v1di type.
4170         (_mm_srl_pi16): Cast __count to __v4hi type.
4171         (_mm_srl_pi32): Cast __count to __v2si type.
4172         (_mm_srl_si64): Cast arguments to __v1di type.
4173         (_mm_sra_pi16): Cast __count to __v4hi type.
4174         (_mm_sra_pi32): Cast __count to __v2si type.
4175         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
4176         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
4177         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
4178         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
4179         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
4180         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
4181         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
4182         (_mm_srai_pi32): Use __builtin_ia32_psradi.
4183         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
4184         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
4185         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
4186         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
4187
4188 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
4189
4190         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
4191
4192 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
4193
4194         PR target/35373
4195         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
4196         reg+const addressing for Altivec modes.  Don't generate reg+reg
4197         addressing for TFmode or TDmode quantities.
4198
4199 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
4200
4201         * c-common.c (vector_types_convertible_p): Call langhook
4202         instead of comptypes.
4203
4204 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4205
4206         PR tree-opt/35402
4207         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
4208         integral and scalar float variables which have a
4209         NULL DECL_INITIAL.
4210
4211 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
4212
4213         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
4214         dwarf_register_span hook when emitting unwind information for
4215         register-to-memory saves.
4216         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
4217         (rs6000_frame_related): Remove call to spe_synthesize_frame.
4218
4219 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
4220
4221         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
4222         for the same VAR_DECL.
4223
4224 2008-03-06  Tom Tromey  <tromey@redhat.com>
4225
4226         * treelang: Delete.
4227         * doc/standards.texi (Standards): Don't mention treelang.
4228         * doc/invoke.texi (Overall Options): Don't mention treelang.
4229         * doc/install.texi (Prerequisites): Don't mention bison or
4230         treelang.
4231         (Configuration): Don't mention treelang.
4232         (Building): Likewise.
4233         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
4234
4235 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
4236
4237         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
4238         word-extractions out of a multi-word object.
4239
4240 2008-03-06  Richard Guenther  <rguenther@suse.de>
4241
4242         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
4243         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
4244         result type and precision.
4245         * expr.c (get_inner_reference): Set unsignedp based on the result
4246         type of BIT_FIELD_REF.
4247         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
4248         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
4249         (try_instantiate_multiple_fields): Likewise.  Use the correct type
4250         for BIT_FIELD_REF.
4251         (sra_build_assignment): Likewise.
4252         (sra_build_elt_assignment): Likewise.
4253         (sra_explode_bitfield_assignment): Likewise.
4254         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
4255         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
4256         set BIT_FIELD_REF_UNSIGNED.
4257         (vectorizable_load): Likewise.
4258
4259 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
4260
4261         * cse.c (cse_extended_basic_block): Invalidate artificial defs
4262         at bb start.
4263
4264 2008-03-06  Richard Guenther  <rguenther@suse.de>
4265
4266         * alias.c (struct alias_set_entry): Move has_zero_child field
4267         to pack with alias_set.
4268
4269 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
4270
4271         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
4272         32bit host.
4273
4274 2008-03-05  Ian Lance Taylor  <iant@google.com>
4275
4276         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
4277
4278 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
4279
4280         * fwprop.c (update_df): Support width and offset parameters of
4281         df_ref_create.
4282         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
4283         global_conflicts): Change DF_REF_EXTRACT to either
4284         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4285         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4286         * df-scan.c (df_ref_record, df_defs_record,
4287         df_ref_create_structure, df_def_record_1, df_uses_record,
4288         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
4289         df_bb_refs_collect, df_entry_block_defs_collect,
4290         df_exit_block_uses_collect): Support new width and offset fields.
4291         (ref_extract_pool): New storage pool.
4292         (df_free_ref): New function.
4293         (df_reg_chain_unlink, df_free_collection_rec,
4294         df_sort_and_compress_refs): Call df_free_ref.
4295         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
4296         of df_ref_extract.
4297         (df_ref_create_structure): Allocate df_ref_extract if offset and
4298         width fields are used.
4299         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
4300         (df_uses_record): Get offset and width from ZERO_EXTRACT 
4301         and SIGN_EXTRACT.
4302         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
4303         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4304         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4305         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
4306         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
4307         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
4308         (df_ref_extract): New structure.
4309         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
4310         (df_ref_create): Add width and offset parameters.
4311         
4312 2008-03-05  Richard Guenther  <rguenther@suse.de>
4313
4314         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4315         Use ranges_overlap_p.
4316         (offset_overlaps_with_access): Rename
4317         to ranges_overlap_p and move ...
4318         * tree-flow-inline.h (ranges_overlap_p): ... here.
4319
4320         * tree.h (get_inner_reference, handled_component_p): Update
4321         comments.
4322
4323         * tree.h (record_component_aliases, get_alias_set,
4324         alias_sets_conflict_p, alias_sets_must_conflict_p,
4325         objects_must_conflict_p): Move declarations ...
4326         * alias.h (record_component_aliases, get_alias_set,
4327         alias_sets_conflict_p, alias_sets_must_conflict_p,
4328         objects_must_conflict_p): ... here.
4329         Include coretypes.h.
4330         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
4331
4332 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
4333
4334         * cfg.c: Include tree-flow.h.
4335         (remove_edge_raw): Call redirect_edge_var_map_clear.
4336         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
4337         * tree-flow-inline.h (redirect_edge_var_map_def): New.
4338         (redirect_edge_var_map_result): New.
4339         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
4340         PENDING_STMT use with redirect_edge_var_map_*.
4341         * tree-ssa.c (edge_var_maps): New definition.
4342         (redirect_edge_var_map_add): New.
4343         (redirect_edge_var_map_clear): New.
4344         (redirect_edge_var_map_dup): New.
4345         (redirect_edge_var_map_vector): New.
4346         (redirect_edge_var_map_destroy): New.
4347         (ssa_redirect_edge): Replace PENDING_STMT use with
4348         redirect_edge_var_map_*.
4349         (flush_pending_stmts): Same.
4350         (delete_tree_ssa): Destroy edge var map.
4351         * tree-flow.h (struct _edge_var_map): New.
4352         Define edge_var_map vector type.
4353         Declare redirect_edge_var_map_* prototypes.
4354         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
4355         * tree-cfg.c (reinstall_phi_args): Replace
4356         PENDING_STMT use with redirect_edge_var_map_*.
4357
4358 2008-03-05  Richard Guenther  <rguenther@suse.de>
4359
4360         PR tree-optimization/35472
4361         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
4362         whose single use_stmt has a overlapping set of loaded and
4363         stored symbols as that use_stmt might be a noop assignment then.
4364
4365 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
4366
4367         * gthr-rtems.h: Implement __gthread_mutex_destroy.
4368
4369 2008-03-05  Richard Guenther  <rguenther@suse.de>
4370
4371         PR c++/35336
4372         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
4373         should be constants.
4374         * tree-cfg.c (verify_expr): Verify it.
4375         * fold-const.c (fold_truthop): Remove code generating
4376         BIT_FIELD_REFs of structure bases.
4377         (fold_binary): Likewise.
4378         (fold_ternary): Position and size of BIT_FIELD_REFs are
4379         always host integers.
4380         (make_bit_field_ref): Remove.
4381         (optimize_bit_field_compare): Remove.
4382         (all_ones_mask_p): Remove.
4383
4384 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
4385
4386         PR gcc/33009
4387         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
4388         (split_block_and_df_analyze): New. Split basic block and rebuild
4389         dataflow.
4390         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
4391         SPLIT_BLOCK.
4392         (split_pattern_seq): Likewise.
4393         (erase_matching_seqs): Likewise.
4394         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
4395
4396 2008-03-04  Geoff Keating  <geoffk@apple.com>
4397
4398         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
4399         declaration and code.
4400         (tree_invalid_nonnegative_warnv_p): Likewise.
4401
4402 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
4403
4404         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
4405         examples.  Truncate option-names then causing overfull hbox.
4406
4407 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4408
4409         PR target/35222
4410         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
4411         on hpux10.
4412         * configure: Rebuilt.
4413
4414 2008-03-04  Rafael Espindola  <espindola@google.com>
4415
4416         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
4417         (tree_unary_nonnegative_warnv_p): New.
4418         (tree_binary_nonnegative_warnv_p): New.
4419         (tree_single_nonnegative_warnv_p): New.
4420         (tree_invalid_nonnegative_warnv_p): New.
4421         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4422
4423 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4424
4425         PR 28322
4426         * opts.c (handle_option): Postpone 'unknown option' errors only for
4427         warning options.
4428
4429 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
4430
4431         PR target/35453
4432         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
4433         (_SIDD_XXX): This.
4434
4435 2008-03-04  Rafael Espindola  <espindola@google.com>
4436
4437         * fold-const.c (tree_unary_nonzero_warnv_p): New.
4438         (tree_binary_nonzero_warnv_p): New.
4439         (tree_single_nonzero_warnv_p): New.
4440         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
4441
4442 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
4443
4444         PR middle-end/35456
4445         * fold-const.c (fold_cond_expr_with_comparison): Prevent
4446         transformations for modes that have signed zeros.
4447         * ifcvt.c (noce_try_abs): Ditto.
4448
4449 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
4450
4451         * config/i386/i386.c (override_options): Force
4452         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
4453
4454 2008-03-04  Jan Hubicka  <jh@suse.cz>
4455
4456         PR c++/35262
4457         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
4458         in last commit.
4459
4460 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4461
4462         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
4463         label to probe the stack.
4464
4465 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
4466
4467         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
4468         (__gthr_win32_mutex_destroy): Declare.
4469         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
4470         __gthr_win32_mutex_destroy.
4471         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
4472
4473 2008-03-03  Jan Hubicka  <jh@suse.cz>
4474
4475         PR c++/35262
4476         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
4477         aggressive on inlining cold calls.
4478
4479 2008-03-03  Richard Guenther  <rguenther@suse.de>
4480
4481         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
4482         struct copies into the expression table.
4483         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
4484         (try_to_simplify): Likewise.
4485         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
4486         integral and pointer arguments which do not change the
4487         precision to NOP_EXPRs.
4488         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
4489         VIEW_CONVERT_EXPR case.
4490
4491 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4492
4493         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
4494         defined in a loop at depth 0 is invariant.
4495         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
4496         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
4497         be called at loop depth 0.
4498
4499 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
4500
4501         PR driver/35420
4502         * gcc.c (process_command): Update copyright notice dates.
4503         * gcov.c (print_version): Likewise.
4504         * gcov-dump.c (print_version): Likewise.
4505         * mips-tfile.c (main): Likewise.
4506         * mips-tdump.c (main): Likewise.
4507
4508 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4509
4510         PR 24924
4511         * c-common.c (flag_permissive): Delete.
4512         (constant_expression_warnings): Check flags first.
4513         (constant_expression_error): New.
4514         * c-common.h (flag_permissive): Delete.
4515         (constant_expression_error): Declare.
4516         * flags.h (flag_permissive): Declare. Update description.
4517         * diagnostic.c (pedwarn): Update.
4518         (permerror): New.
4519         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
4520         (permissive_error_kind): New.
4521         * toplev.c (flag_permissive): Define. Update description.
4522         * toplev.h (permissive_error_kind): Declare.
4523         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
4524         (pedwarn_c90): Use pedantic_warning_kind.
4525         * c-opts.c (c_common_post_options): flag_permissive does not affect
4526         flag_pedantic_errors.
4527
4528 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
4529
4530         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
4531         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
4532         __absvsi2, __absvDI2): Use unsigned arithmetic.
4533
4534 2008-03-02  Andi Kleen  <ak@suse.de>
4535             Richard Guenther  <rguenther@suse.de>
4536
4537         * struct-equiv.c: Remove file.
4538         * cfg_cleanup.c (condjump_equiv_p): Remove.
4539         * Makefile.in (OBJS-common): Remove struct-equiv.o.
4540         (struct-equiv.o): Remove rule.
4541         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
4542         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
4543         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
4544
4545 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4546
4547         * ifcvt.c (noce_process_if_block): Try to handle only the then
4548         block if the else block exists but isn't suitable.
4549
4550 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4551
4552         PR gcc/35063
4553         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
4554         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
4555         regression from previous patch.
4556
4557 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
4558
4559         PR gcc/35063
4560         * gthr.h: Add __gthread_mutex_destroy as a function that must be
4561         implemented.
4562         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
4563         * gthr-single.h (__gthread_mutex_destroy): Likewise.
4564         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
4565         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
4566         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
4567         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
4568         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
4569         (__gthread_mutex_destroy_function): Rename to
4570         __gthread_mutex_destroy.
4571         * gthr-dce.h (__gthread_mutex_destroy): Call
4572         pthread_mutex_destroy.
4573         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
4574         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
4575         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
4576
4577 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4578
4579         * df-scan.c (df_ref_chain_change_bb): Simplify.
4580         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
4581         set_block_for_insn if there's any change.
4582         * df.h ((df_insn_change_bb): Fix prototype.
4583         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
4584         df_insn_change_bb, don't call set_block_for_insn.
4585         * emit-rtl.c (reorder_insns): Likewise.
4586         * haifa-sched.c (move_insn): Likewise.
4587
4588 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4589
4590         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
4591
4592 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
4593
4594         * tree-flow-inline.h (next_readonly_imm_use): Return
4595         NULL_USE_OPERAND_P after the end.
4596
4597 2008-03-01  Richard Guenther  <rguenther@suse.de>
4598
4599         PR tree-optimization/35411
4600         * tree-sra.c (sra_build_assignment): Split conversion to
4601         final type to a separate statement if we are not assigning
4602         to a register.
4603
4604 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4605
4606         * fold-const.c (fold_convertible_p): Correct the logic to follow
4607         that in fold_convert().
4608
4609 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
4610
4611         PR c++/35315
4612         * tree-inline.c (build_duplicate_type): When we make a
4613         duplicate type, make it unique in the canonical types system.
4614
4615 2008-02-29  Tom Tromey  <tromey@redhat.com>
4616
4617         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
4618         input_file_stack_history, input_file_stack_restored): Remove.
4619         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4620         * input.h (struct file_stack): Remove.
4621         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
4622         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
4623         Likewise.
4624         * diagnostic.h (struct diagnostic_context) <last_module>: Change
4625         type.
4626         (diagnostic_last_module_changed): Add 'map' argument.
4627         (diagnostic_set_last_function): Likewise.
4628         * diagnostic.c (undiagnostic_report_current_module): Iterate using
4629         line map, not input_file_stack.
4630         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
4631
4632 2008-02-29  Paul Brook  <paul@codesourcery.com>
4633
4634         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
4635
4636 2008-02-29  Paul Brook  <paul@codesourcery.com>
4637
4638         * config/arm/ieee754-df.S (muldf3): Use RET macros.
4639
4640 2008-02-29  Richard Guenther  <rguenther@suse.de>
4641
4642         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
4643         vn_lookup_or_add.
4644         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
4645         value for comparing for a store match.
4646         (simplify_unary_expression): Do nothing for SSA_NAMEs.
4647         (try_to_simplify): Do not do a full-blown reference lookup.
4648
4649 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4650
4651         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
4652         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4653
4654         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
4655
4656 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
4657
4658         * tree-loop-linear.c (try_interchange_loops): Compare memory access
4659         strides against cache sizes.
4660
4661 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4662
4663         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
4664         constant to fpul.
4665
4666 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
4667
4668         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
4669         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
4670         is smaller than the original promoted value.
4671         (simplify_subreg): If OP is a SUBREG, try to preserve its
4672         SUBREG_PROMOTED_VAR_P information.
4673
4674 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
4675
4676         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
4677         (VN_INFO_GET): Allocate new objects on the obstack.
4678         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
4679         for rpo_numbers_temp, for consistency.
4680         (free_scc_vn): Free the obstack.
4681
4682 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
4683
4684         * doc/invoke.texi: Document -ftree-loop-distribution.
4685         * tree-loop-distribution.c: New.
4686         * tree-pass.h (pass_loop_distribution): New.
4687         * graphds.h (struct graph): Add htab_t indices.
4688         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
4689         * tree-vectorizer.c (rename_variables_in_loop): Extern.
4690         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
4691         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
4692         * tree-data-ref.c (debug_data_dependence_relations): New.
4693         (dump_data_dependence_relation): Also print data references.
4694         (free_data_ref): Extern.
4695         (same_access_functions): Moved...
4696         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
4697         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4698         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
4699         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
4700         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
4701         (stmts_from_loop): Skip LABEL_EXPR.
4702         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
4703         New.
4704         (build_rdg): Initialize rdg->indices htab.
4705         (free_rdg, stores_from_loop, ref_base_address,
4706         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
4707         have_similar_memory_accesses_1, ref_base_address_1,
4708         remove_similar_memory_refs): New.
4709         * tree-data-ref.h: Depend on tree-chrec.h.
4710         (debug_data_dependence_relations, free_data_ref): Declared.
4711         (same_access_functions): ... here.
4712         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
4713         New.
4714         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
4715         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
4716         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
4717         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
4718         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
4719         rdg_vertex_for_stmt): Declared.
4720         (struct rdg_edge): Add level.
4721         (RDGE_LEVEL): New.
4722         (free_rdg, stores_from_loop, remove_similar_memory_refs,
4723         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
4724         Declared.
4725         (rdg_has_similar_memory_accesses): New.
4726         * tree-vect-analyze.c: Remove unused static decls.
4727         * lambda.h (dependence_level): New.
4728         * common.opt (ftree-loop-distribution): New.
4729         * tree-flow.h (mark_virtual_ops_in_bb, 
4730         slpeel_tree_duplicate_loop_to_edge_cfg,
4731         rename_variables_in_loop): Declared.
4732         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
4733         (OBJS-common): Add tree-loop-distribution.o.
4734         (tree-loop-distribution.o): New rule.
4735         * tree-cfg.c (mark_virtual_ops_in_bb): New.
4736         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
4737         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
4738
4739 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
4740
4741         PR target/33963
4742         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
4743         other than structures and unions.
4744
4745 2008-02-28  Richard Guenther  <rguenther@suse.de>
4746
4747         Revert:
4748         2008-02-26  Richard Guenther  <rguenther@suse.de>
4749
4750         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4751         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4752         (lookup_decl_from_uid): Declare.
4753         (remove_decl_from_map): Likewise.
4754         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4755         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4756         (decl_for_uid_map): New global hashtable mapping DECL_UID
4757         to the decl tree.
4758         (init_ttree): Allocate it.
4759         (insert_decl_to_uid_decl_map): New helper function.
4760         (make_node_stat): Insert new decls into the map.
4761         (copy_node_stat): Likewise.
4762         (lookup_decl_from_uid): New function.
4763         (remove_decl_from_map): Likewise.
4764         (print_decl_for_uid_map_statistics): New helper.
4765         (dump_tree_statistics): Call it.
4766
4767         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4768         (referenced_var_iterator): Adjust.
4769         (FOR_EACH_REFERENCED_VAR): Adjust.
4770         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4771         (num_referenced_vars): Adjust.
4772         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4773         (first_referenced_var): Remove.
4774         (end_referenced_vars_p): Likewise.
4775         (next_referenced_var): Likewise.
4776         (referenced_var_iterator_set): New helper function.
4777         * tree-dfa.c (referenced_var_lookup): Adjust.
4778         (referenced_var_check_and_insert): Likewise.
4779         (remove_referenced_var): Likewise.
4780         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4781         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4782         (verify_call_clobbering): Likewise.
4783         (verify_memory_partitions): Likewise.
4784         (init_tree_ssa): Allocate bitmap instead of hashtable for
4785         referenced_vars.
4786         (delete_tree_ssa): Adjust.
4787         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4788         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4789         (compute_tag_properties): Likewise.
4790         (set_initial_properties): Likewise.
4791         (find_partition_for): Likewise.
4792         (update_reference_counts): Likewise.
4793         (dump_may_aliases_for): Likewise.
4794         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4795         (add_call_clobber_ops): Likewise.
4796         (add_call_read_ops): Likewise.
4797         (get_asm_expr_operands): Likewise.
4798         * tree-into-ssa.c (dump_decl_set): Likewise.
4799         (update_ssa): Likewise.
4800         * tree-sra.c (scan_function): Likewise.
4801         (decide_instantiations): Likewise.
4802         (scalarize_parms): Likewise.
4803         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4804         (dsa_named_for): Likewise.
4805         * tree-ssa-structalias.c (update_alias_info): Likewise.
4806         (merge_smts_into): Likewise.
4807
4808 2008-02-27  David Daney  <ddaney@avtrex.com>
4809
4810         PR target/34409
4811         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
4812         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
4813         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
4814         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
4815         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
4816
4817 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
4818
4819         PR target/25477
4820         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
4821         (BUILT_IN_NEXTTOWARD): Remove.
4822         (BUILT_IN_NEXTTOWARDF): Ditto.
4823         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
4824         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
4825
4826 2008-02-27  Tom Tromey  <tromey@redhat.com>
4827
4828         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
4829         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
4830
4831 2008-02-27  Jan Beulich  <jbeulich@novell.com>
4832
4833         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
4834         update the respective field on newdecl.
4835
4836 2008-02-27  Revital Eres  <eres@il.ibm.com>
4837
4838         PR rtl-optimization/34999
4839         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
4840         crossing edges that ends with a call insn.
4841         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
4842         call insn and clear the EDGE_CROSSING flag of the crossing edge
4843         when fixing fallthru edges.
4844
4845 2008-02-27  Richard Guenther  <rguenther@suse.de>
4846
4847         PR middle-end/35390
4848         * fold-const.c (fold_unary): Return the correct argument,
4849         converted to the result type.
4850
4851 2008-02-27  Richard Guenther  <rguenther@suse.de>
4852
4853         PR middle-end/34971
4854         * expr.c (expand_expr_real_1): Assert on rotates that operate
4855         on partial modes.
4856         * fold-const.c (fold_binary): Use the types precision, not the
4857         bitsize of the mode if folding rotate expressions.  Build rotates
4858         only for full modes.
4859
4860 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
4861
4862         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
4863         and CPP_PRAGMA_EOL.
4864         * c-pragma.c (pragma_ns_name): New typedef.
4865         (registered_pp_pragmas): New variable.
4866         (c_pp_lookup_pragma): New function.
4867         (c_register_pragma_1): If flag_preprocess_only, do nothing
4868         for non-expanded pragmas, for expanded ones push pragma's
4869         namespace and name into registered_pp_pragmas vector.
4870         (c_invoke_pragma_handler): Register OpenMP pragmas even when
4871         flag_preprocess_only, don't register GCC pch_preprocess
4872         pragma if flag_preprocess_only.
4873         * c-opts.c (c_common_init): Call init_pragma even if
4874         flag_preprocess_only.
4875         * c-pragma.c (c_pp_lookup_pragma): New prototype.
4876         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
4877         cpp_register_pragma if flag_preprocess_only.
4878
4879 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4880
4881         PR c/28800
4882         * c-parser.c (c_parser_translation_unit): Warn for empty
4883         translation unit, not empty source file.
4884
4885 2008-02-26  Paul Brook  <paul@codesourcery.com>
4886
4887         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
4888         operand for Thumb-2.
4889         * config/arm/arm.h (reg_class): Add CORE_REGS.
4890         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
4891         (BASE_REG_CLASS): Use CORE_REGS.
4892         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
4893         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
4894         (REGNO_OK_FOR_INDEX_P): Exclude SP.
4895         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
4896         ARM_REGNO_OK_FOR_INDEX_P.
4897         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
4898         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
4899         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
4900         (ldm/stm peepholes): Ditto.
4901         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
4902         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
4903         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
4904         * config/arm/constraints.md: Enable "k" constraint on ARM.
4905
4906 2008-02-27  Ben Elliston  <bje@au.ibm.com>
4907
4908         * config/rs6000/rs6000.c: Annotate cache line size field in all
4909         instances of struct processor_costs.
4910
4911 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
4912
4913         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
4914         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
4915         jump_bypass): New counters.
4916         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
4917         * dce.c (gate_ud_dce): Same.
4918         (gate_fast_dce): Same.
4919         * dse.c (gate_dse1): New function.
4920         (gate_dse2): New function.
4921         (gate_dse): Merge results of new gate functions.
4922         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
4923         (gate_handle_jump_bypass): Add dbg_cnt.
4924         (gate_handle_gcse): Add dbg_cnt.
4925         * ifcvt.c (gate_handle_if_conversion): Same.
4926         (gate_handle_if_after_combine): Same.
4927         (gate_handle_if_after_reload): Same.
4928         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
4929
4930 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
4931
4932         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
4933         line sizes.
4934         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
4935
4936 2008-02-26  Jason Merrill  <jason@redhat.com>
4937
4938         PR c++/35315
4939         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
4940         alone if it's the naming decl for the type's main variant.
4941
4942 2008-02-26  Tom Tromey  <tromey@redhat.com>
4943
4944         * system.h (USE_MAPPED_LOCATION): Poison.
4945         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
4946         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
4947         (make_goto_expr_edges): Likewise.
4948         (remove_bb): Likewise.
4949         (execute_warn_function_return): Likewise.
4950         * basic-block.h (struct edge_def) <goto_locus>: Change type to
4951         location_t.
4952         * c-common.c (fname_decl): Remove old location code.
4953         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
4954         location code.
4955         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
4956         variant.
4957         (ASM_INPUT_SOURCE_LOCATION): Likewise.
4958         (gen_rtx_ASM_INPUT): Likewise.
4959         (gen_rtx_ASM_INPUT_loc): Likewise.
4960         (get_rtx_asm_OPERANDS): Remove.
4961         * cfglayout.c (insn_locators_alloc): Remove old location code.
4962         (set_curr_insn_source_location): Likewise.
4963         (curr_insn_locator): Likewise.
4964         * print-tree.c (print_node): Remove old location code.
4965         * tree-mudflap.c (mf_varname_tree): Remove old location code.
4966         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
4967         * cfgexpand.c (expand_gimple_cond_expr): Don't use
4968         location_from_locus.
4969         (construct_exit_block): Remove old location code.
4970         * emit-rtl.c (force_next_line_note): Remove old location code.
4971         * profile.c (branch_prob): Remove old location code.
4972         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4973         LOC_LINE): Remove old-location variants.
4974         * langhooks.c (lhd_print_error_function): Remove old location
4975         code.
4976         * configure, config.in: Rebuilt.
4977         * configure.ac (--enable-mapped-location): Remove.
4978         * c-decl.c (c_init_decl_processing): Remove old location code.
4979         (finish_function): Likewise.
4980         * recog.c (decode_asm_operands): Remove old location code.
4981         * c-pch.c (c_common_read_pch): Remove old location code.
4982         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
4983         variants.
4984         * gimple-low.c (lower_function_body): Remove old location code.
4985         * toplev.c (unknown_location): Remove.
4986         (push_srcloc): Remove old-location variant.
4987         (process_options): Remove old location code.
4988         (lang_dependent_init): Likewise.
4989         * input.h (UNKNOWN_LOCATION): Move definition.
4990         (location_t): Undeprecate.
4991         (source_locus): Remove.
4992         (location_from_locus): Remove.
4993         (struct location_s): Remove.
4994         Remove all old-location code.
4995         (input_line, input_filename): Remove.
4996         * final.c (final_scan_insn): Remove old location code.
4997         * diagnostic.c (diagnostic_build_prefix): Remove
4998         USE_MAPPED_LOCATION test.
4999         * tree.h (gimple_stmt) <locus>: Now a location_t.
5000         (tree_exp) <locus>: Likewise.
5001         (DECL_IS_BUILTIN): Remove old-location variant.
5002         (annotate_with_file_line, annotate_with_locus): Likewise.
5003         (expr_locus, set_expr_locus): Update.
5004         * tree.c (build1_stat): Remove old location code.
5005         (last_annotated_node): Remove.
5006         (annotate_with_file_line): Remove old-location variant.
5007         (annotate_with_locus): Likewise.
5008         (expr_location): Remove old location code.
5009         (set_expr_location): Likewise.
5010         (expr_has_location): Likewise.
5011         (expr_locus): Likewise.
5012         (set_expr_locus): Likewise.
5013         (expr_filename): Don't use location_from_locus.
5014         (expr_lineno): Likewise.
5015         * rtl-error.c (location_for_asm): Remove old location code.
5016         * c-lex.c (cb_line_change): Remove old location code.
5017         (fe_file_change): Likewise.
5018         (cb_def_pragma): Likewise.
5019         (c_lex_with_flags): Likewise.
5020         * gengtype.c (do_typedef): Don't special-case location types.
5021         (define_location_structures): Remove.
5022         (main): Don't call define_location_structures.
5023         * tree-pretty-print.c (dump_implicit_edges): Remove old location
5024         code.
5025
5026 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5027
5028         PR 26264
5029         * builtins.def (BUILT_IN_STDARG_START): Remove.
5030         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
5031         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
5032         * tree-inline.c (inline_forbidden_p_1): Likewise.
5033         
5034 2008-02-26  Richard Guenther  <rguenther@suse.de>
5035
5036         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5037         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5038         (lookup_decl_from_uid): Declare.
5039         (remove_decl_from_map): Likewise.
5040         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5041         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5042         (decl_for_uid_map): New global hashtable mapping DECL_UID
5043         to the decl tree.
5044         (init_ttree): Allocate it.
5045         (insert_decl_to_uid_decl_map): New helper function.
5046         (make_node_stat): Insert new decls into the map.
5047         (copy_node_stat): Likewise.
5048         (lookup_decl_from_uid): New function.
5049         (remove_decl_from_map): Likewise.
5050         (print_decl_for_uid_map_statistics): New helper.
5051         (dump_tree_statistics): Call it.
5052
5053         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5054         (referenced_var_iterator): Adjust.
5055         (FOR_EACH_REFERENCED_VAR): Adjust.
5056         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5057         (num_referenced_vars): Adjust.
5058         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5059         (first_referenced_var): Remove.
5060         (end_referenced_vars_p): Likewise.
5061         (next_referenced_var): Likewise.
5062         (referenced_var_iterator_set): New helper function.
5063         * tree-dfa.c (referenced_var_lookup): Adjust.
5064         (referenced_var_check_and_insert): Likewise.
5065         (remove_referenced_var): Likewise.
5066         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5067         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5068         (verify_call_clobbering): Likewise.
5069         (verify_memory_partitions): Likewise.
5070         (init_tree_ssa): Allocate bitmap instead of hashtable for
5071         referenced_vars.
5072         (delete_tree_ssa): Adjust.
5073         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5074         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5075         (compute_tag_properties): Likewise.
5076         (set_initial_properties): Likewise.
5077         (find_partition_for): Likewise.
5078         (update_reference_counts): Likewise.
5079         (dump_may_aliases_for): Likewise.
5080         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5081         (add_call_clobber_ops): Likewise.
5082         (add_call_read_ops): Likewise.
5083         (get_asm_expr_operands): Likewise.
5084         * tree-into-ssa.c (dump_decl_set): Likewise.
5085         (update_ssa): Likewise.
5086         * tree-sra.c (scan_function): Likewise.
5087         (decide_instantiations): Likewise.
5088         (scalarize_parms): Likewise.
5089         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5090         (dsa_named_for): Likewise.
5091         * tree-ssa-structalias.c (update_alias_info): Likewise.
5092         (merge_smts_into): Likewise.
5093
5094 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5095
5096         PR 34351
5097         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
5098         * c-opts.c (c_common_handle_option): Wall enables
5099         Wvolatile-register-var.
5100         * common.opt: Move Wvolatile-register-var to...
5101         * c.opt: ...here.
5102         
5103 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5104
5105         * common.opt (Wlarger-than=): New.
5106         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
5107         -Wlarger-than=.
5108         * opts.c (common_handle_option): Handle -Wlarger-than=.
5109         * optc-gen.awk: Likewise.
5110         * opth-gen.awk: Likewise.
5111         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
5112         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5113         
5114 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5115
5116         * c-common.c (match_case_to_enum_1): Add appropriate
5117         OPT_W* parameter to warning.
5118         (c_do_switch_warnings): Likewise.
5119         * c-typeck.c (warning_init): Add one more parameter following
5120         'warning' function.
5121         (push_init_level): Update call to warning_init.
5122         (pop_init_level): Likewise.
5123         (add_pending_init): Likewise.
5124         (output_init_element: Likewise.
5125
5126 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5127
5128         PR 28322
5129         * toplev.c (toplev_main): If there are warnings or error, print
5130         errors for ignored options.
5131         * opts.c (ignored_options): New static variable.
5132         (postpone_unknown_option_error): New.
5133         (print_ignored_options): New.
5134         (handle_option): Postpone errors for unknown -Wno-* options.
5135         * opts.h (print_ignored_options): Declare.
5136         
5137 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5138
5139         * config/mips/mips.md (loadgp_blockage, blockage): Change type
5140         to "ghost".
5141
5142 2008-02-25  Richard Guenther  <rguenther@suse.de>
5143
5144         Revert:
5145         2008-02-25  Richard Guenther  <rguenther@suse.de>
5146
5147         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5148         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5149         (lookup_decl_from_uid): Declare.
5150         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5151         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5152         (decl_for_uid_map): New global hashtable mapping DECL_UID
5153         to the decl tree.
5154         (init_ttree): Allocate it.
5155         (insert_decl_to_uid_decl_map): New helper function.
5156         (make_node_stat): Insert new decls into the map.
5157         (copy_node_stat): Likewise.
5158         (lookup_decl_from_uid): New function.
5159         (print_decl_for_uid_map_statistics): New helper.
5160         (dump_tree_statistics): Call it.
5161
5162         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5163         (referenced_var_iterator): Adjust.
5164         (FOR_EACH_REFERENCED_VAR): Adjust.
5165         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5166         (num_referenced_vars): Adjust.
5167         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5168         (first_referenced_var): Remove.
5169         (end_referenced_vars_p): Likewise.
5170         (next_referenced_var): Likewise.
5171         (referenced_var_iterator_set): New helper function.
5172         * tree-dfa.c (referenced_var_lookup): Adjust.
5173         (referenced_var_check_and_insert): Likewise.
5174         (remove_referenced_var): Likewise.
5175         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5176         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5177         (verify_call_clobbering): Likewise.
5178         (verify_memory_partitions): Likewise.
5179         (init_tree_ssa): Allocate bitmap instead of hashtable for
5180         referenced_vars.
5181         (delete_tree_ssa): Adjust.
5182         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5183         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5184         (compute_tag_properties): Likewise.
5185         (set_initial_properties): Likewise.
5186         (find_partition_for): Likewise.
5187         (update_reference_counts): Likewise.
5188         (dump_may_aliases_for): Likewise.
5189         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5190         (add_call_clobber_ops): Likewise.
5191         (add_call_read_ops): Likewise.
5192         (get_asm_expr_operands): Likewise.
5193         * tree-into-ssa.c (dump_decl_set): Likewise.
5194         (update_ssa): Likewise.
5195         * tree-sra.c (scan_function): Likewise.
5196         (decide_instantiations): Likewise.
5197         (scalarize_parms): Likewise.
5198         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5199         (dsa_named_for): Likewise.
5200         * tree-ssa-structalias.c (update_alias_info): Likewise.
5201         (merge_smts_into): Likewise.
5202
5203 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5204
5205         PR fortran/29549
5206         * doc/invoke.texi (-fcx-limited-range): Document new option.
5207         * toplev.c (process_options): Handle -fcx-fortran-rules.
5208         * common.opt: Add documentation for -fcx-fortran-rules.
5209
5210 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
5211
5212         PR c/35162
5213         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
5214         actual behaviour and C99.
5215         
5216 2008-02-26  Ben Elliston  <bje@au.ibm.com>
5217
5218         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
5219         (ASM_CPU_POWER6_SPEC): Likewise.
5220         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
5221         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
5222         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
5223
5224 2008-02-25  Richard Guenther  <rguenther@suse.de>
5225
5226         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
5227         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
5228         (lookup_decl_from_uid): Declare.
5229         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
5230         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
5231         (decl_for_uid_map): New global hashtable mapping DECL_UID
5232         to the decl tree.
5233         (init_ttree): Allocate it.
5234         (insert_decl_to_uid_decl_map): New helper function.
5235         (make_node_stat): Insert new decls into the map.
5236         (copy_node_stat): Likewise.
5237         (lookup_decl_from_uid): New function.
5238         (print_decl_for_uid_map_statistics): New helper.
5239         (dump_tree_statistics): Call it.
5240
5241         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
5242         (referenced_var_iterator): Adjust.
5243         (FOR_EACH_REFERENCED_VAR): Adjust.
5244         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
5245         (num_referenced_vars): Adjust.
5246         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
5247         (first_referenced_var): Remove.
5248         (end_referenced_vars_p): Likewise.
5249         (next_referenced_var): Likewise.
5250         (referenced_var_iterator_set): New helper function.
5251         * tree-dfa.c (referenced_var_lookup): Adjust.
5252         (referenced_var_check_and_insert): Likewise.
5253         (remove_referenced_var): Likewise.
5254         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
5255         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5256         (verify_call_clobbering): Likewise.
5257         (verify_memory_partitions): Likewise.
5258         (init_tree_ssa): Allocate bitmap instead of hashtable for
5259         referenced_vars.
5260         (delete_tree_ssa): Adjust.
5261         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
5262         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
5263         (compute_tag_properties): Likewise.
5264         (set_initial_properties): Likewise.
5265         (find_partition_for): Likewise.
5266         (update_reference_counts): Likewise.
5267         (dump_may_aliases_for): Likewise.
5268         * tree-ssa-operands.c (add_virtual_operand): Likewise.
5269         (add_call_clobber_ops): Likewise.
5270         (add_call_read_ops): Likewise.
5271         (get_asm_expr_operands): Likewise.
5272         * tree-into-ssa.c (dump_decl_set): Likewise.
5273         (update_ssa): Likewise.
5274         * tree-sra.c (scan_function): Likewise.
5275         (decide_instantiations): Likewise.
5276         (scalarize_parms): Likewise.
5277         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
5278         (dsa_named_for): Likewise.
5279         * tree-ssa-structalias.c (update_alias_info): Likewise.
5280         (merge_smts_into): Likewise.
5281
5282 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
5283
5284         PR target/35258
5285         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
5286         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
5287         * alias.h (nonoverlapping_memrefs_p): Likewise.
5288
5289 2008-02-25  Jan Beulich  <jbeulich@novell.com>
5290
5291         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
5292         * config/i386/netware-libgcc.exp: Add __bswap?i2,
5293         __emultls_get_address, __emultls_register_common,
5294         __floatundi?f, and _Unwind_GetIPInfo.
5295         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
5296         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
5297         (gen_regparm_prefix): Likewise.
5298         (i386_nlm_encode_section_info): Sync with
5299         config/i386/winnt.c:i386_pe_encode_section_info().
5300         (i386_nlm_maybe_mangle_decl_assembler_name): New.
5301         i386_nlm_mangle_decl_assembler_name): New.
5302         (netware_override_options): New.
5303         * config/i386/netware.h (netware_override_options): Declare.
5304         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
5305         (i386_nlm_mangle_decl_assembler_name): Declare.
5306         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
5307
5308 2008-02-25  Ben Elliston  <bje@au.ibm.com>
5309
5310         PR other/32948
5311         * c-decl.c (grokdeclarator): Remove unused local variables
5312         `typedef_type' and `type_as_written'.
5313         * bb-reorder.c
5314         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
5315         unused local variable `has_hot_blocks'.
5316         (fix_crossing_conditional_branches): Remove unused local variable
5317         `prev_bb'.
5318         
5319 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
5320
5321         PR middle-end/19984
5322         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
5323         using DEF_C99_BUILTIN.
5324         (BUILT_IN_NANF): Ditto.
5325         (BUILT_IN_NANL): Ditto.
5326
5327 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
5328             Revital Eres  <eres@il.ibm.com>
5329
5330         * modulo-sched.c (calculate_must_precede_follow): Address TODO
5331         regarding the order of two dependent insns in the same row.
5332
5333 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
5334
5335         * stor-layout.c (layout_decl): Do not bump the alignment of a
5336         bit-field to more than byte alignment if it is packed.
5337
5338 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
5339
5340         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
5341         e300c2 and e300c3.
5342
5343 2008-02-24  Diego Novillo  <dnovillo@google.com>
5344
5345         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
5346
5347         PR 33738
5348         * tree-vrp.c (vrp_evaluate_conditional): With
5349         -Wtype-limits, emit a warning when comparing against a
5350         constant outside the natural range of OP0's type.
5351         * c.opt (Wtype-limits): Move ...
5352         * common.opt (Wtype-limits): ... here.
5353
5354 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
5355
5356         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
5357         * config/rs6000/e300c2c3.md: New file.
5358         * config/rs6000/rs6000.c (processor_costs): Add new costs for
5359         e300c2 and e300c3.
5360         (rs6000_override_options): Add e300c2 and e300c3 cases to
5361         processor_target_table. Do not allow usage of Altivec or Spe
5362         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
5363         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
5364         * config/rs6000/rs6000.h (processor_type): Add
5365         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
5366         (ASM_CPU_SPEC): Add e300c2 and e300c3.
5367         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
5368         and ppce300c3. Include e300c2c3.md.
5369
5370 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
5371
5372         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
5373         instead of TARGET_STRICT_ALIGN.
5374
5375 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
5376
5377         * explow.c (memory_address): Assert that the generated address is
5378         valid.
5379
5380 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
5381
5382         PR target/25477
5383         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
5384         * config/darwin-ppc-ldouble-patch.def: New file.
5385         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
5386         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
5387         SUBTARGET_INIT_BUILTINS if defined.
5388         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
5389         New functions.
5390
5391 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5392
5393         PR rtl-opt/33512
5394         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
5395         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
5396
5397 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5398
5399         PR pch/35027
5400         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
5401         file" warning condtional on -Winvalid-PCH.
5402
5403 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
5404
5405         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
5406
5407 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
5408
5409         PR target/22076
5410         PR target/34256 
5411         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
5412         prevent reload from using MMX registers.
5413         (*mov<mode>_internal): Ditto.
5414         (*movv2sf_internal_rex64): Ditto.
5415         (*movv2sf_internal): Ditto.
5416
5417 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5418
5419         PR documentation/31569
5420         * doc/install.texi2html: Use makeinfo --no-number-sections.
5421
5422 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5423
5424         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
5425         ensure that we can address an entire entity > 8 bytes.  Don't
5426         generate reg+reg addressing for such data.
5427
5428 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5429
5430         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
5431         strings when optimizing for size, unless the target cares about
5432         alignment.
5433
5434 2008-02-22  Tom Tromey  <tromey@redhat.com>
5435
5436         * regclass.c (current_pass): Remove declaration.
5437
5438 2008-02-22  Anatoly Sokolov <aesok@post.ru>
5439
5440         * config/avr/libgcc.S (__RAMPZ__): Define.
5441         (__do_copy_data): Add for devices with 128KB code memory.
5442
5443 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
5444
5445         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
5446         Use spe_abi.
5447         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
5448
5449 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
5450
5451         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
5452         GENNONACR_REGS.
5453
5454 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5455
5456         PR c/19999
5457         * c-typeck.c (build_binary_op): Warn about floating point
5458         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
5459
5460 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
5461
5462         PR target/34526
5463         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
5464         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
5465         add vrsave.
5466         (rs6000_override_options): Set altivec_abi as default, not override,
5467         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
5468         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
5469         is used; use new member spe_abi.
5470         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
5471         spe_abi and altivec_abi.
5472
5473 2008-02-22  Tomas Bily  <tbily@suse.cz>
5474
5475         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
5476
5477 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5478
5479         PR bootstrap/35273
5480         * config.build (build_file_translate): Set to `CMD //c' only if
5481         it works.
5482         * Makefile.in (build_file_translate): Improve comment.
5483
5484 2008-02-21  Jan Hubicka  <jh@suse.cz>
5485
5486         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
5487         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
5488         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
5489
5490 2008-02-21  Michael Matz  <matz@suse.de>
5491
5492         PR target/35264
5493         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
5494
5495 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
5496
5497         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
5498         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
5499         as insn constraint.
5500         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
5501         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
5502         SSE_VEC_FLOAT_MODE_P as insn constraint.
5503         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
5504         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
5505         sse4a_movntdf using MODEF mode iterator.
5506         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
5507         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
5508         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
5509         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
5510         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
5511         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
5512         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
5513
5514 2008-02-21  Richard Guenther  <rguenther@suse.de>
5515
5516         * tree.def (PAREN_EXPR): New tree code.
5517         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
5518         and PAREN_EXPR.
5519         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
5520         * expr.c (expand_expr_real_1): Likewise.
5521         * tree-inline.c (estimate_num_insns_1): Likewise.
5522         * tree-complex.c (expand_complex_move): Likewise.
5523         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
5524         as plain x.
5525
5526 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5527
5528         PR target/35225
5529         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
5530
5531 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
5532
5533         PR target/35190
5534         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
5535
5536         * config/sh/sh.c (find_barrier): Don't go past
5537         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
5538
5539 2008-02-20  DJ Delorie  <dj@redhat.com>
5540
5541         * config/h8300/h8300.md (insv): Force source operand to be a register.
5542
5543         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
5544         as a jump, not as a plain insn.
5545         
5546 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
5547
5548         * doc/invoke.texi (Warning Options): Add new option
5549         -Wframe-larger-than=.
5550         (-Wframe-larger-than): Document.
5551
5552         * flags.h (warn_frame_larger_than, frame_larger_than_size):
5553         Add declarations for new option variables.
5554
5555         * final.c (final_start_function): Check the frame size
5556         before emission and issue a Wframe-larger-than warning.
5557
5558         * opts.c (warn_frame_larger_than, frame_larger_than_size):
5559         Add definitions for new option variables.
5560         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
5561
5562         * common.opt (Wframe-larger-than=): New option.
5563
5564 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5565
5566         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
5567         (<sse>_div<mode>3): Ditto.
5568         (<sse>_vmdiv<mode>3): Ditto.
5569         (<sse>_vmsqrt<mode>2): Ditto.
5570         (*smax<mode>3): Ditto.
5571         (sse5_frcz<mode>2): Ditto.
5572         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
5573         as insn constraint.
5574
5575 2008-02-20  Richard Guenther  <rguenther@suse.de>
5576
5577         PR middle-end/35265
5578         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
5579         be happy with INTEGRAL_TYPE_P.
5580
5581 2008-02-20  Richard Guenther  <rguenther@suse.de>
5582
5583         * fold-const.c (split_tree): Associate floatig-point expressions
5584         if flag_associative_math is set.
5585
5586 2008-02-20  Richard Guenther  <rguenther@suse.de>
5587
5588         * tree.h (fold_real_zero_addition_p): Declare.
5589         * fold-const.c (fold_real_zero_addition_p): Export.
5590         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
5591         floating-point operations with zero and one.
5592
5593 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
5594
5595         * doc/install.texi: Correct references to CFLAGS, replacing them
5596         with BOOT_CFLAGS.  Document flags used during bootstrap for
5597         target libraries.
5598                                 
5599 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
5600
5601         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
5602         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
5603         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
5604         insn constraint.
5605         (smin<mode>3): Ditto from similar patterns.
5606         (smax<mode>3): Ditto.
5607         (*ieee_smin<mode>3): Ditto.
5608         (*ieee_smax<mode>3): Ditto.
5609         * config/i386/sse.md (sse): New mode attribute.
5610         (mov<mode>): Macroize expander from movv4sf and movv2df using
5611         SSEMODEF2P mode iterator.
5612         (<sse>_movnt<mode>): Ditto from similar patterns. Use
5613         SSE_VEC_FLOAT_MODE_P as insn constraint.
5614         (storent<mode>): Ditto.
5615         (storent<mode>): Macroize expander from storentsf and storentdf using
5616         MODEF mode iterator.
5617         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
5618         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
5619         (abs<mode>2): Ditto from similar patterns.
5620         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
5621         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
5622         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
5623         (<sse>_vmsqrt<mode>2): Ditto.
5624         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
5625         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
5626         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
5627         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
5628         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
5629         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
5630         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
5631         insn constraint.
5632         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
5633         iterator and SSE_FLOAT_MODE_P as insn constraint.
5634         (<sse>_ucomi): Ditto from similar patterns.
5635         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
5636         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
5637         SSE_VEC_FLOAT_MODE_P as insn constraint.
5638         (vcond<mode>): Ditto from similar patterns.
5639         (and<mode>3, *and<mode>3): Ditto.
5640         (<sse>_nand<mode>3): Ditto.
5641         (ior<mode>3, *ior<mode>3): Ditto.
5642         (xor<mode>3, *xor<mode>3): Ditto.
5643         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
5644         iterator and SSE_FLOAT_MODE_P as insn constraint.
5645         (*nand<mode>3): Ditto from similar patterns.
5646         (*ior<mode>3): Ditto.
5647         (*xor<mode>3): Ditto.
5648
5649 2008-02-20  Ira Rosen  <irar@il.ibm.com>
5650
5651         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
5652         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
5653         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
5654
5655 2008-02-19  Jan Hubicka  <jh@suse.cz>
5656
5657         * predict.c (tree_bb_level_predictions): Remove variable next
5658         mistakely introduced by previous commit.
5659
5660 2008-02-19  Jan Hubicka  <jh@suse.cz>
5661
5662         * predict.c (predict_paths_leading_to): Rewrite.
5663         (predict_paths_for_bb): New.
5664         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
5665
5666 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5667
5668         PR bootstrap/35218
5669         * Makefile.in (build_file_translate): New.
5670         (gcc-vers.texi): Use it for translating $(abs_srcdir).
5671         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
5672         * configure.ac (build_file_translate): Substitute it.
5673         * configure: Regenerate.
5674
5675 2008-02-19  Jan Hubicka  <jh@suse.cz>
5676
5677         PR rtl-optimization/34408
5678         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
5679         invalid sharing.
5680
5681 2008-02-19  Jan Hubicka  <jh@suse.cz>
5682
5683         PR middle-end/28779
5684         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
5685         call_expr.
5686
5687 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5688
5689         PR Ada/35186
5690         * config/i386/i386-modes.def: Revert the last DI alignment
5691         change until Ada people can look into it.
5692
5693 2008-02-19  Nick Clifton  <nickc@redhat.com>
5694
5695         * opts.c (print_specific_help): Fix typo in --help text.
5696
5697 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
5698
5699         PR target/35239
5700         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
5701         32-bit inline asm without asm alternatives for host GCC < 3.0.
5702
5703 2008-02-19  Richard Guenther  <rguenther@suse.de>
5704
5705         PR tree-optimization/34989
5706         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
5707         Allow propagation to INDIRECT_REF if we can simplify only.
5708
5709 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5710
5711         * c-common.c (warn_for_collisions_1): Use appropriate option when
5712         warning.
5713
5714 2008-02-19  Nick Clifton  <nickc@redhat.com>
5715
5716         PR other/31349
5717         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
5718         (handle_options): Fix indentation.
5719         (print_filtered_help): If no language-specific options were
5720         displayed tell the user how to list all the options supported by
5721         the language's front-end.
5722         (print_specific_help): Fix indentation and remove duplicate line.
5723         (common_handle_option): Handle the -v option.
5724         For --help enable the display of undocumented options if the -v
5725         switch has been included on the command line.
5726         For --help= check for overlaps in the arguments between the option
5727         classes and the language names and issue a warning when they
5728         cannot be disambiguated.
5729         * c.opt (v): Pass on to the common option handler.
5730
5731 2008-02-19  Revital Eres  <eres@il.ibm.com> 
5732
5733         * modulo-sched.c (sms_schedule): Change dump message when
5734         create_ddg function fails.
5735         (try_scheduling_node_in_cycle): Rename row to cycle.
5736         (print_partial_schedule): Rename CYCLE to ROW.
5737
5738 2008-02-19  Christian Bruel  <christian.bruel@st.com>
5739             Zdenek Dvorak  <ook@ucw.cz>
5740
5741         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
5742
5743 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5744
5745         PR target/33555
5746         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
5747         (*x86_movdicc_0_m1_se): Ditto.
5748
5749 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
5750
5751         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
5752         (CMPtype): Define as __gcc_CMPtype.
5753         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
5754         (CMPtype): Define as __gcc_CMPtype.
5755
5756 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
5757
5758         Support valgrind 3.3 for --enable-checking=valgrind.
5759         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
5760         here.
5761         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
5762         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
5763         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
5764         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
5765         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
5766         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
5767         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
5768         respectively.
5769         * ggc-zone.c: Similar.
5770         * ggc-page.c: Similar.
5771
5772 2008-02-19  Paul Brook  <paul@codesourcery.com>
5773
5774         PR target/35071
5775         * config/arm/ieee754-df.S: Fix do_it typo.
5776         * config/arm/ieee754-sf.S: Fix do_it typo.
5777
5778 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5779
5780         PR target/35189
5781         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
5782         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
5783         (OPTION_MASK_ISA_SSE_SET): Likewise.
5784         (OPTION_MASK_ISA_SSE2_SET): Likewise.
5785         (OPTION_MASK_ISA_SSE3_SET): Likewise.
5786         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
5787         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
5788         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
5789         (OPTION_MASK_ISA_SSE4_SET): Likewise.
5790         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
5791         (OPTION_MASK_ISA_SSE5_SET): Likewise.
5792         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
5793         (OPTION_MASK_ISA_MMX_UNSET): Updated.
5794         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
5795         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5796         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5797         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5798         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5799         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5800         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5801         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
5802         (OPTION_MASK_ISA_SSE4): Removed.
5803         (ix86_handle_option): Turn on bits in ix86_isa_flags and
5804         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
5805         (override_options): Don't turn on implied SSE/MMX bits in
5806         ix86_isa_flags.
5807
5808 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5809
5810         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5811         32bit host.
5812
5813 2008-02-18  Joey Ye  <joey.ye@intel.com>
5814
5815         PR middle-end/34921
5816         * tree-nested.c (insert_field_into_struct): Set type alignment
5817         to field alignment if the former is less than the latter.
5818
5819 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
5820
5821         * BASE-VER: Set to 4.4.0.
5822
5823 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5824
5825         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
5826         * doc/cfg.texi: Likewise.
5827         * doc/extend.texi: Likewise.
5828         * doc/gty.texi: Likewise.
5829         * doc/invoke.texi: Likewise.
5830         * doc/loop.texi: Likewise.
5831         * doc/md.texi: Likewise.
5832         * doc/passes.texi: Likewise.
5833         * doc/rtl.texi: Likewise.
5834         * doc/sourcebuild.texi: Likewise.
5835         * doc/tm.texi: Likewise.
5836         * doc/tree-ssa.texi: Likewise.
5837
5838 2008-02-17  Richard Guenther  <rguenther@suse.de>
5839
5840         PR middle-end/35227
5841         * tree-complex.c (init_parameter_lattice_values): Handle parameters
5842         without default definition.
5843
5844 2008-02-17  Richard Guenther  <rguenther@suse.de>
5845
5846         PR tree-optimization/35231
5847         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
5848         if A | B != 1.
5849
5850 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
5851
5852         Revert:
5853         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
5854         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5855         libgcc_cmp_return mode.
5856
5857 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5858
5859         PR c/28368
5860         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
5861
5862 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
5863
5864         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
5865         multilibs.
5866
5867 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5868
5869         * doc/c-tree.texi: Use `@.' where appropriate.
5870         * doc/extend.texi: Likewise.
5871         * doc/install.texi: Likewise.
5872         * doc/invoke.texi: Likewise.
5873         * doc/loop.texi: Likewise.
5874         * doc/makefile.texi: Likewise.
5875         * doc/md.texi: Likewise.
5876         * doc/passes.texi: Likewise.
5877         * doc/standards.texi: Likewise.
5878         * doc/tm.texi: Likewise.
5879
5880 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5881
5882         PR middle-end/35196
5883         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
5884         in entry_bb.
5885         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
5886         rather than in entry_bb.
5887
5888 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5889
5890         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5891         libgcc_cmp_return mode.
5892
5893 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5894
5895         PR middle-end/35130
5896         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
5897         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
5898
5899 2008-02-15  Richard Guenther  <rguenther@suse.de>
5900             Zdenek Dvorak  <ook@ucw.cz>
5901
5902         PR tree-optimization/35164
5903         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
5904         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
5905         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5906         Only propagate addresses which do not have abnormal SSA_NAMEs
5907         in their operands.
5908
5909 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
5910
5911         PR target/35088
5912         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
5913
5914 2008-02-15  Jan Hubicka  <jh@suse.cz>
5915
5916         PR middle-end/35149
5917         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
5918
5919 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5920
5921         PR middle-end/34621
5922         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
5923         when calculating alignment_pad.
5924
5925 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5926
5927         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
5928         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
5929         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
5930         and STACK_BOUNDARY define.
5931
5932 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
5933
5934         PR preprocessor/35061
5935         * c-pragma.c (handle_pragma_pop_macro): Check that
5936         pushed_macro_table has been allocated.
5937
5938 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5939
5940         PR middle-end/35136
5941         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
5942         (force_gimple_operand): Likewise.
5943         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
5944         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
5945         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
5946         (find_interesting_uses_address): Check addressability and alignment
5947         of the base expression only after substituting bases of IVs into it.
5948
5949 2008-02-14  Michael Matz  <matz@suse.de>
5950
5951         PR target/34930
5952         * function.c (instantiate_virtual_regs_in_insn): Reload address
5953         before falling back to reloading the whole operand.
5954
5955 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5956
5957         * config/s390/s390.c (s390_mainpool_start): Emit the pool
5958         before the first section switch note.
5959
5960 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5961
5962         * doc/bugreport.texi: Update copyright years.
5963         * doc/c-tree.texi: Likewise.
5964         * doc/cfg.texi: Likewise.
5965         * doc/cpp.texi: Likewise.
5966         * doc/cppinternals.texi: Likewise.
5967         * doc/fragments.texi: Likewise.
5968         * doc/frontends.texi: Likewise.
5969         * doc/gcc.texi: Likewise.
5970         * doc/gty.texi: Likewise.
5971         * doc/hostconfig.texi: Likewise.
5972         * doc/implement-c.texi: Likewise.
5973         * doc/libgcc.texi: Likewise.
5974         * doc/loop.texi: Likewise.
5975         * doc/makefile.texi: Likewise.
5976         * doc/options.texi: Likewise.
5977         * doc/passes.texi: Likewise.
5978         * doc/rtl.texi: Likewise.
5979         * doc/sourcebuild.texi: Likewise.
5980         * doc/standards.texi: Likewise.
5981         * doc/tree-ssa.texi: Likewise.
5982         * doc/trouble.texi: Likewise.
5983
5984         * doc/extend.texi: Use @: or add comma where appropriate.
5985         * doc/invoke.texi: Likewise.
5986         * doc/tm.texi: Likewise.
5987
5988 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
5989
5990         PR target/34393
5991         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
5992         to a reg.
5993
5994 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
5995
5996         * doc/md.texi (clz, ctz): Add reference.
5997         * doc/rtl.texi (clz, ctz): Likewise.
5998
5999 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6000
6001         PR other/35148
6002         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
6003         srcdir.
6004
6005 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
6006
6007         * config/s390/s390.c (struct constant_pool): New field
6008         emit_pool_after added.
6009         (s390_mainpool_start): Set the emit_pool_after flag according
6010         to the section switch notes.
6011         (s390_mainpool_finish): Consider emit_pool_after when emitting
6012         the literal pool at the end of the function.
6013         (s390_chunkify_start): Force literal pool splits at section
6014         switch notes.
6015
6016 2008-02-13  Michael Matz  <matz@suse.de>
6017
6018         PR debug/35065
6019         * var-tracking.c (clobber_variable_part): Correctly traverse the
6020         list.
6021
6022 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6023
6024         PR 29673
6025         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
6026         Add -fdump-ipa-inline.
6027         * tree-dump.c (dump_files): Remove tree-inlined dump.
6028         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
6029         
6030 2008-02-12  Richard Guenther  <rguenther@suse.de>
6031
6032         PR tree-optimization/35171
6033         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
6034         default defs.
6035
6036 2008-02-12  Richard Guenther  <rguenther@suse.de>
6037
6038         PR middle-end/35163
6039         * fold-const.c (fold_widened_comparison): Use get_unwidened in
6040         value-preserving mode.  Disallow final truncation.
6041
6042 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
6043
6044         PR middle-end/35136
6045         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
6046         code from here to...
6047         (force_gimple_operand): ...here.
6048
6049 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
6050
6051         PR c++/35144
6052         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
6053         non-compatible pointers.
6054         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
6055         different FIELD_DECLs, try harder by comparing field offsets, sizes
6056         and types.
6057
6058         PR inline-asm/35160
6059         * function.c (match_asm_constraints_1): Don't replace the same input
6060         multiple times.
6061
6062 2008-02-12  Anatoly Sokolov <aesok@post.ru>
6063
6064         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
6065         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
6066         (expand_epilogue): Restore RAMPZ register.
6067         * config/avr/avr.md (RAMPZ_ADDR): New constant.
6068
6069 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
6070
6071         * config/i386/cygwin.asm: (__alloca): Correct calling
6072         convention and alignment.
6073         (__chkstk): Force 8 byte stack alignment.
6074
6075 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
6076             Richard Guenther  <rguenther@suse.de>
6077
6078         PR tree-optimization/33992
6079         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
6080         the zero we compare against.
6081
6082 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6083
6084         PR libfortran/35063
6085         * gthr-win32.h (__gthread_mutex_destroy_function): New function
6086         to CloseHandle after unlocking to prevent accumulation of handle
6087         count.
6088
6089 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6090
6091         PR middle_end/34150
6092         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
6093         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
6094         and update LABEL_NUSES during and after reload.
6095
6096 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
6097
6098         PR middle-end/34627
6099         * combine.c (simplify_if_then_else): Make sure the comparison is
6100         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
6101
6102 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6103
6104         PR bootstrap/35051
6105         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
6106         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
6107         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
6108         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
6109         * tree.h (get_type_static_bounds): Likewise.
6110
6111 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6112
6113         * doc/invoke.texi (Option Summary, C++ Dialect Options)
6114         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6115         Make -Wfoo language annotations match what the compiler outputs.
6116
6117 2008-02-08  Sa Liu  <saliu@de.ibm.com>
6118
6119         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
6120         intrinsics spu_convts, spu_convtu, spu_convtf.
6121
6122 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
6123
6124         * doc/extend.texi (Function Attributes) <noinline>: Mention
6125         asm ("") as method to keep calls.
6126
6127 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6128
6129         PR other/32754
6130         * doc/options.texi (Options): Replace references to opts.sh with
6131         optc-gen.awk.
6132         * opts-common.c: Likewise.
6133         * optc-gen.awk: Likewise.
6134         
6135 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
6136
6137         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
6138
6139 2008-02-07  Richard Henderson  <rth@redhat.com>
6140
6141         PR rtl-opt/33410
6142         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
6143         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
6144         funny mode.
6145
6146 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
6147
6148         PR tree-optimization/35085
6149         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
6150         for operand entry oe2 in addition to operand entry oe3 in order to
6151         expose more opportunities for vectorizer sum reduction.
6152
6153 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6154
6155         PR other/35107
6156         * Makefile.in (LIBS): Remove $(GMPLIBS).
6157         (cc1-dummy, cc1): Add $(GMPLIBS).
6158
6159 2008-02-06  Jan Hubicka  <jh@suse.cz>
6160
6161         PR target/23322
6162         * i386.md (moddf_integer): Do not produce partial memory stalls for
6163         targets where it hurts.
6164
6165 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
6166
6167         PR target/35083
6168         * optabs.c (expand_float): Do not check for decimal modes when
6169         expanding unsigned integer through signed conversion.
6170
6171 2008-02-06  Nick Clifton  <nickc@redhat.com>
6172
6173         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
6174         inside the clobber with a match_operand and duplicated operand
6175         number in the constraint.
6176         (ineqbranchsi): Delete redundant comment.
6177
6178 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
6179
6180         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
6181         builtin_define ("__USE_INIT_FINI__").
6182         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
6183         -msx multilibs.
6184         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
6185
6186 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6187
6188         PR documentation/30330
6189         * doc/invoke.texi (C++ Dialect Options)
6190         (Objective-C and Objective-C++ Dialect Options, Warning Options):
6191         For each warning option -Wfoo that allows -Wno-foo, ensure both
6192         -Wfoo and -Wno-foo are listed in the option index.  Fix index
6193         entry of -Wswitch-default, index -Wnormalized= including the
6194         `=', and -Wlarger-than-@var{len} including @var{len}.
6195
6196 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6197
6198         * config/i386/i386.md (floatunssisf2): Use
6199         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
6200         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
6201         Macroize expander using MODEF mode iterator.
6202
6203 2008-02-05  Diego Novillo  <dnovillo@google.com>
6204
6205         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
6206
6207         PR 33738
6208         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
6209
6210 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6211
6212         PR other/35070
6213         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
6214
6215 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
6216
6217         PR target/35084
6218         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
6219         to indicate if a message should be generated.
6220         (init_cumulative_args): Updated.
6221         (function_value_32): Likewise.
6222
6223 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
6224
6225         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
6226
6227 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
6228
6229         PR target/35083
6230         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
6231         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
6232
6233 2008-02-04  Diego Novillo  <dnovillo@google.com>
6234
6235         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
6236
6237         PR 33738
6238         * tree-vrp.c (vrp_evaluate_conditional): With
6239         -Wtype-limits, emit a warning when comparing against a
6240         constant outside the natural range of OP0's type.
6241
6242 2008-02-04  Richard Guenther  <rguenther@suse.de>
6243
6244         PR middle-end/33631
6245         * expr.c (count_type_elements): Give for unions instead of
6246         guessing.
6247
6248 2008-02-04  Richard Guenther  <rguenther@suse.de>
6249
6250         PR middle-end/35043
6251         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
6252         to TYPE_DOMAINs base type instead of using bitsizetype here.
6253
6254 2008-02-03  Jason Merrill  <jason@redhat.com>
6255
6256         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
6257
6258 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6259
6260         PR other/29972
6261         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
6262         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
6263         (RS/6000 and PowerPC Options): Fix typos and markup.
6264         * doc/passes.texi (Tree-SSA passes): Likewise.
6265
6266 2008-02-02  Michael Matz  <matz@suse.de>
6267
6268         PR target/35045
6269         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
6270         from record_last_reg_set_info.
6271         (record_last_reg_set_info): Take an RTX argument, iterate over all
6272         constituent hardregs.
6273         (record_last_set_info, record_opr_changes): Change calls to
6274         new signature or to record_last_reg_set_info_regno.
6275
6276 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6277
6278         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
6279
6280 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
6281
6282         PR rtl-optimization/34773
6283         * reg-notes.def (EQUAL): Mention significance of combination of
6284         REG_EQUAL and REG_RETVAL.
6285         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
6286         insn that has a REG_RETVAL.
6287
6288 2008-02-01  Roger Sayle  <roger@eyesopen.com>
6289
6290         PR bootstrap/33781
6291         * configure.ac (--enable-fixed-point): Disable unless explicitly
6292         requested on IRIX.
6293         * configure: Regenerate.
6294
6295 2008-02-01  Richard Guenther  <rguenther@suse.de>
6296
6297         PR other/35042
6298         * invoke.texi (-finline-limit): Remove no longer true parts
6299         of the documentation.  Note that there is no default value.
6300
6301 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
6302             Mark Mitchell  <mark@codesourcery.com>
6303             Ben Elliston  <bje@au.ibm.com>
6304
6305         PR c/29326
6306         * doc/extend.texi (Other Builtins): Document.
6307
6308 2008-01-31  Tom Browder <tom.browder@gmail.com>
6309
6310         * doc/c-tree.texi (Types): Fix grammar.
6311         (Expression trees): Ditto.
6312         * doc/passes.texi (Tree-SSA passes): Ditto.
6313         
6314         * doc/configterms.texi (Configure Terms): Fix typo.
6315         * doc/cpp.texi (Common Predefined Macros): Ditto.
6316         * doc/md.texi (Machine Constraints): Ditto.
6317         
6318         * doc/makefile.texi (Makefile): Add comma.
6319
6320 2008-01-31  Tom Browder  <tom.browder@gmail.com>
6321             Gerald Pfeifer  <gerald@pfeifer.com>
6322         
6323         * doc/sourcebuild.texi (Front End): Remove references to CVS
6324         and CVSROOT/modules.
6325         (Texinfo Manuals): Replace reference to CVS by one to SVN.
6326         (Back End): Remove reference to CVS.
6327
6328 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6329
6330         PR target/34900
6331         * config/mips/mips.c (gen_load_const_gp): New function, taking a
6332         comment from...
6333         (mips16_gp_pseudo_reg): ...here.
6334         * config/mips/mips.md (load_const_gp): Replace with...
6335         (load_const_gp_<mode>): ...this :P-based insn.
6336
6337 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6338
6339         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
6340         options. Minor fixes.
6341         (-std): Move reference to standards closer to where language
6342         standards are first mentioned.
6343         
6344 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
6345
6346         PR rtl-optimization/34995
6347         * reload.c (alternative_allows_const_pool_ref): Take an rtx
6348         parameter and return a bool.  If the rtx parameter is nonnull,
6349         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
6350         (find_reloads): Update call accordingly.  Pass the new operand
6351         if it needed no address reloads, otherwise pass null.
6352
6353 2008-01-30  Richard Henderson  <rth@redhat.com>
6354
6355         PR c/34993
6356         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
6357         for unbounded arrays.
6358
6359 2008-01-30  Silvius Rus  <rus@google.com>
6360
6361         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
6362
6363 2008-01-30  Jan Hubicka  <jh@suse.cz>
6364
6365         PR target/34982
6366         * i386.c (init_cumulative_args): Use real function declaration when
6367         calling locally.
6368
6369 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
6370
6371         PR rtl-optimization/34998
6372         * global.c (build_insn_chain): Treat non-subreg_lowpart
6373         SUBREGs of pseudos as clobbering all the words covered by the
6374         SUBREG, not just all the bytes.
6375         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
6376         original df_ref rather than an extract parameter.
6377         (global_conflicts): Update call accordingly.
6378
6379 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6380
6381         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
6382         the overflow check to make it easier to read.
6383         (__fixtfdi): Change the type of the ll member in union
6384         long_double to UDItype_x.
6385
6386 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
6387
6388         PR middle-end/34969
6389         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
6390         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
6391         * tree-inline.c (fold_marked_statements): Call
6392         cgraph_update_edges_for_call_stmt if folding a call statement.
6393         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
6394         debug_generic_stmt calls, reset it back afterwards.
6395
6396         PR c/35017
6397         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
6398         static decls.
6399         * c-typeck.c (build_external_ref): Don't pedwarn about
6400         static vars in current function's scope.
6401
6402 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
6403
6404         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
6405
6406 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
6407
6408         PR c/35002
6409         * ipa-struct-reorg.c: Fix spelling.
6410         * params.def: Ditto.
6411
6412 2008-01-29  Richard Guenther  <rguenther@suse.de>
6413
6414         PR middle-end/35006
6415         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
6416         field.
6417         * tree-inline.c (remap_type): Increment remapping_type_depth
6418         around remapping types.
6419         (copy_body_r): Only add referenced variables if they are referenced
6420         from code, not types.
6421
6422 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
6423
6424         PR c++/34055
6425         PR c++/34103
6426         PR c++/34219
6427         PR c++/34606
6428         PR c++/34753
6429         PR c++/34754
6430         PR c++/34755
6431         PR c++/34919
6432         PR c++/34961
6433         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
6434         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
6435
6436 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
6437
6438         PR target/34412
6439         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
6440         pointer for tiny stack.
6441
6442 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6443
6444         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
6445
6446 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
6447
6448         * config/vx-common.h: Fix typo in comment.
6449
6450 2008-01-28  Ian Lance Taylor  <iant@google.com>
6451
6452         PR c++/34862
6453         PR c++/33407
6454         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6455         coalesce pointers if they have different DECL_NO_TBAA_P values.
6456         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
6457         between variables with different DECL_NO_TBAA_P values.
6458
6459 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
6460
6461         PR 31535
6462         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
6463         are not legitimate small data references on SPE targets.
6464
6465 2008-01-28  David Daney  <ddaney@avtrex.com>
6466
6467         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
6468
6469 2008-01-28  David Daney  <ddaney@avtrex.com>
6470
6471         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
6472
6473 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
6474
6475         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
6476         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
6477         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
6478         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
6479         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
6480         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
6481         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
6482         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
6483
6484 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6485
6486         * basic-block.h (condjump_equiv_p): Fix comment.
6487
6488 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6489
6490         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
6491         print_generic_stmt_indented): Fix comment.
6492
6493 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
6494
6495         * configure.ac (__stack_chk_fail): Add detecion for availability
6496         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
6497         * configure: Regenerate.
6498
6499 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
6500
6501         PR middle-end/34688
6502         * final.c (output_addr_const): Handle TRUNCATE.
6503
6504 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
6505
6506         PR target/34711
6507         * tree-ssa-loop-ivopts.c (comp_cost): New type.
6508         (zero_cost, infinite_cost): New constants.
6509         (struct cost_pair): Change type of cost to comp_cost.
6510         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
6511         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
6512         New functions.
6513         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
6514         split_address_cost, ptr_difference_cost, difference_cost,
6515         get_computation_cost_at, get_computation_cost,
6516         determine_use_iv_cost_generic, determine_use_iv_cost_address,
6517         determine_use_iv_cost_condition, determine_use_iv_costs,
6518         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
6519         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
6520         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
6521         Change type of cost to comp_cost.
6522         (determine_iv_cost): Increase cost of non-original ivs, instead
6523         of decreasing the cost of original ones.
6524         (get_address_cost): Indicate the complexity of the addressing mode 
6525         in comp_cost.
6526         (try_add_cand_for): Prefer using ivs not specific to some object.
6527         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
6528
6529 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
6530             Janis Johnson  <janis187@us.ibm.com>
6531
6532         PR target/34814
6533         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
6534         (TARGET_INSTANTIATE_DECLS): Likewise.
6535         * target.h (expand_to_rtl_hook): New target hook.
6536         (instantiate_decls): Likewise.
6537         * function.c (instantiate_decl): Make non-static.  Rename to...
6538         (instantiate_decl_rtl): ... this.
6539         (instantiate_expr): Use instantiate_decl_rtl.
6540         (instantiate_decls_1): Likewise.
6541         (instantiate_decls): Likewise.
6542         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
6543         * function.h (instantiate_decl_rtl): Add prototype.
6544         * cfgexpand.c (target.h): New include.
6545         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
6546         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
6547         (TARGET_INSTANTIATE_DECLS): Likewise.
6548         (TARGET_INITIALIZER): New target hooks added.
6549         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
6550         New prototype.
6551         * config/rs6000/rs6000.c (tree-flow.h): New include.
6552         (machine_function): Add sdmode_stack_slot field.
6553         (rs6000_alloc_sdmode_stack_slot): New function.
6554         (rs6000_instantiate_decls): Likewise.
6555         (rs6000_secondary_memory_needed_rtx): Likewise.
6556         (rs6000_check_sdmode): Likewise.
6557         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
6558         (TARGET_INSTANTIATE_DECLS): Likewise.
6559         (rs6000_hard_regno_mode_ok): Allow SDmode.
6560         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
6561         (rs6000_emit_move): Handle SDmode.
6562         (function_arg_advance): Likewise.
6563         (function_arg): Likewise.
6564         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
6565         SDmode var args for 32-bit compiles.
6566         (rs6000_secondary_reload_class): Handle SDmode.
6567         (rs6000_output_function_epilogue): Likewise.
6568         (rs6000_function_value): Simplify if statement.
6569         (rs6000_libcall_value): Likewise.
6570         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
6571         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
6572         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
6573         (movsd_hardfloat): New define_insn.
6574         (movsd_softfloat): Likewise.
6575         (movsd_store): Likewise.
6576         (movsd_load): Likewise.
6577         (extendsddd2): Likewise.
6578         (extendsdtd2): Likewise.
6579         (truncddsd2): Likewise.
6580         (movdd_hardfloat64): Fixup comment.
6581         (UNSPEC_MOVSD_LOAD): New constant.
6582         (UNSPEC_MOVSD_STORE): Likewise.
6583
6584 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
6585
6586         PR c++/34965
6587         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
6588         TRUTH_XOR_EXPR.
6589         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
6590         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
6591         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
6592         and TRUTH_XOR_EXPR.
6593
6594 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
6595
6596         PR target/34794
6597         * config.gcc: Separate AIX 5.3 from AIX 6.1.
6598         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
6599         __LONGDOUBLE128 too.
6600         * config/rs6000/aix61.h: New file.
6601
6602 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6603
6604         PR rtl-optimization/34959
6605         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
6606         popcount and parity rtxes the same mode as their operand.
6607         Truncate or extend the result to the return value's mode
6608         if necessary.
6609
6610 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
6611
6612         PR target/34981
6613         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
6614         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
6615         to GOT_VERSION_REGNUM.
6616         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
6617         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
6618         * config/mips/mips.c (mips_emit_call_insn): New function.
6619         (mips_call_tls_get_addr): Call mips_expand_call directly.
6620         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
6621         emit_call_insn.
6622         (mips16_build_call_stub): Likewise.  Return the call insn or null.
6623         (mips_expand_call): Update the call to mips16_build_call_stub
6624         accordingly and a remove redundant condition.  Assert that MIPS16
6625         stubs do not use lazy binding.  Use mips_emit_call_insn and return
6626         the call insn.
6627         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
6628         TARGET_USE_GOT.
6629         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
6630         (mips_avoid_hazard): Remove hazard_set handling.
6631         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
6632         (UNSPEC_RESTORE_GP): ...this.
6633         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
6634         (FAKE_CALL_REGNO): Rename to...
6635         (GOT_VERSION_REGNUM): ...this.
6636         (type): Add "ghost" value.  Add an associated insn reservation.
6637         (hazard_set): Remove.
6638         (exception_receiver): Rename to...
6639         (restore_gp): ...this and update the unspec identifier accordingly.
6640         (exception_receiver, nonlocal_got_receiver): New expanders.
6641         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
6642         FAKE_CALL_REGNO.  Remove hazard_set attribute.
6643         (set_got_version, update_got_version): New patterns.
6644
6645 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
6646
6647         PR target/34970
6648         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
6649
6650 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6651
6652         PR other/31955
6653         * doc/install.texi2html: Generate gcc-vers.texi.
6654
6655 2008-01-25  DJ Delorie  <dj@redhat.com>
6656
6657         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
6658
6659 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
6660
6661         * config/c4x: Remove directory.
6662         * config.gcc (crx-*, mt-*): Mark obsolete.
6663         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
6664         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
6665         sh-*-rtemscoff*): Remove cases.
6666         * defaults.h (C4X_FLOAT_FORMAT): Remove.
6667         * real.c (encode_c4x_single, decode_c4x_single,
6668         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
6669         c4x_extended_format): Remove.
6670         * real.h (c4x_single_format, c4x_extended_format): Remove.
6671         * doc/extend.texi (interrupt, naked): Remove mention of attributes
6672         on C4x.
6673         (Pragmas): Remove comment about c4x pragmas.
6674         * doc/install.texi (c4x): Remove target-specific instructions.
6675         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
6676         * doc/md.texi (Machine Constraints): Remove C4x documentation.
6677         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
6678         refer to C4x source files as examples.
6679         (C4X_FLOAT_FORMAT): Remove documentation.
6680
6681 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
6682
6683         * config/bfin/bfin.c (override_options): Reorder tests so that
6684         flag_pic gets enabled for -msep-data.
6685
6686 2008-01-25  Richard Guenther  <rguenther@suse.de>
6687
6688         PR middle-end/32244
6689         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
6690         to its bitfield precision if required.
6691
6692 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6693
6694         PR middle-end/33880
6695         * tree-nested.c (walk_omp_for): New function.
6696         (convert_nonlocal_reference, convert_local_reference): Call
6697         walk_omp_for on OMP_FOR.
6698         (convert_call_expr): Call walk_body on OMP_FOR's
6699         OMP_FOR_PRE_INIT_BODY.
6700
6701 2008-01-25  Richard Guenther  <rguenther@suse.de>
6702
6703         PR tree-optimization/34966
6704         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
6705         default defs and PHI_NODEs we have to insert after the
6706         defining statement.
6707
6708 2008-01-24  Nick Clifton  <nickc@redhat.com>
6709
6710         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
6711         Provide a default definition.
6712         (LIBGCC2_UNITS_PER_WORD): Likewise.
6713
6714         * config/stormy16/stormy16.c: Include df.h for the prototype
6715         for df_regs_ever_live_p.
6716         (xstormy16_expand_builtin_va_start): Convert the stack offset
6717         into a component_ref and then use POINTER_PLUS_EXPR to add it
6718         to the incoming_virtual_args_rtx.
6719         (xstormy16_gimplify_va_arg_expr): Rename to
6720         xstormy16_gimplify_va_arg_expr.
6721         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
6722         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
6723         xstormy16_gimplify_va_arg_expr.
6724         Fix up some formatting issues.
6725
6726         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
6727         Move to predicates.md.
6728         (xs_hi_general_operand): Likewise.
6729         (xs_hi_nonmemory_operand): Likewise.
6730         * config/stormy16/predicates.md:
6731         (xstormy16_carry_plus_operand): New predicate.
6732         (xs_hi_general_operand): New predicate.
6733         (xs_hi_nonmemory_operand): New predicate.
6734         * config/stormy16/stormy16-protos.h:
6735         (xstormy16_carry_plus_operand): Delete prototype.
6736         (xs_hi_general_operand): Likewise.
6737         (xs_hi_nonmemory_operand): Likewise.
6738
6739         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
6740         modifiers as they are no longer needed and they can trigger
6741         reload spill failures.
6742
6743         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
6744         with a match_operand in order to help reload.
6745
6746         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
6747         constraint with 'e' for the 8th alternative as this version of
6748         the mov.w instruction only accepts the lower 8 registers.
6749
6750 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
6751
6752         PR target/34856
6753         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
6754         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
6755         vector elements.
6756
6757 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
6758
6759         PR middle-end/33333
6760         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
6761
6762 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6763
6764         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
6765         New functions.
6766         (remove_structure): Update allocations list before removing structure.
6767         
6768 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
6769
6770         * ipa-struct-reorg.c (is_safe_cond_expr, 
6771         create_new_stmts_for_cond_expr): Use integer_zerop function,
6772         that recognize not only zero-pointer, but zero-integer too.
6773
6774 2008-01-25  Ben Elliston  <bje@au.ibm.com>
6775
6776         PR other/22232
6777         * fixproto: Escape "." in sed expression that strips leading "./".
6778
6779 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6780
6781         PR driver/34904
6782         * gcc.c (SWITCH_OK): Removed.
6783         (SWITCH_LIVE): Changed to bit.
6784         (SWITCH_FALSE): Likewise.
6785         (SWITCH_IGNORE): Likewise.
6786         (switchstr): Change live_cond to unsigned int.
6787         (process_command): Replace SWITCH_OK with 0.
6788         (do_self_spec): Likewise.
6789         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
6790         (give_switch): Likewise.
6791         (used_arg): Likewise.
6792         (do_spec_1): Set the SWITCH_IGNORE bit.
6793         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
6794         bits.  Set the SWITCH_LIVE bit.
6795
6796 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6797
6798         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
6799
6800 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6801
6802         PR tree-optimization/34472
6803         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
6804         parameter to a "bool *" and set *DATA to false if there is
6805         an unsafe access.  Do not delete the structure here.
6806         (check_cond_exprs): Delete it here instead.
6807         (check_cond_exprs, exclude_cold_structs): Do not increase
6808         I when removing a structure.
6809
6810 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
6811
6812         PR target/34856
6813         * config/i386/i386.c (ix86_expand_vector_init): Consider only
6814         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
6815
6816 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
6817
6818         PR middle-end/34934
6819         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
6820         a fixed vector for stack.
6821
6822 2008-01-24  Ben Elliston  <bje@au.ibm.com>
6823
6824         PR c++/25701
6825         * doc/gcc.texi (Software development): Add a direntry for g++.
6826         
6827 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
6828
6829         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
6830         stale and straggling -fforce-addr comments above.
6831
6832         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
6833         define.
6834         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
6835         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
6836
6837 2008-01-23  Michael Matz  <matz@suse.de>
6838
6839         PR debug/34895
6840         * dwarf2out.c (force_type_die): Use modified_type_die instead of
6841         gen_type_die.
6842
6843 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
6844
6845         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
6846         malloc result type.
6847
6848 2008-01-23 Anatoly Sokolov <aesok@post.ru>
6849
6850         * config/avr/avr.c (avr_current_arch): New variable.
6851         (avr_arch_types): Add 'avr31' and 'avr51' entries.
6852         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
6853         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
6854         (avr_override_options): Init 'avr_current_arch'. 
6855         (base_arch_s): Move from here...
6856         * config/avr/avr.h (base_arch_s): ... here. Add new members 
6857         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
6858         'mega' to 'have_jmp_call'.
6859         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
6860         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
6861         macros.
6862         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
6863         architectures.
6864         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
6865         MULTILIB_MATCHES): (Ditto.).
6866
6867 2008-01-23  Richard Guenther  <rguenther@suse.de>
6868
6869         PR middle-end/31529
6870         * cgraphunit.c (cgraph_reset_node): Always mark the node
6871         not reachable if it is not queued already.
6872
6873 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
6874
6875         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
6876         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
6877         (cputype_selected): New static variable.
6878         (bfin_handle_option): Set it if -mcpu is used.
6879         (override_option): Select default set of workarounds if no cpu type
6880         selected on the command line.
6881         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
6882
6883         From  Michael Frysinger  <michael.frysinger@analog.com>
6884         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
6885         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
6886
6887         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
6888         for bf547, bf523, bf524, and bf526.
6889         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
6890         bf526.
6891         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6892         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
6893         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
6894         __ADSPBF547__ and __ADSPBF54x__ for bf547.
6895         * doc/invoke.texi (Blackfin Options): Document that
6896         -mcpu now accept bf547, bf523, bf524, and bf526.
6897
6898 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
6899
6900         PR rtl-optimization/34628
6901         * combine.c (try_combine): Stop and undo after the first combination
6902         if an autoincrement side-effect on the first insn has effectively
6903         been lost.
6904
6905 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
6906
6907         PR target/34529
6908         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
6909         Offset addresses are not valid for Altivec or paired float modes.
6910
6911 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
6912
6913         PR c++/34607
6914         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
6915         if DECL_INITIAL (decl) is error_mark_node.
6916
6917         PR c++/34914
6918         * c-common.c (handle_vector_size_attribute): Only allow
6919         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
6920         the same way as pointer, array etc. types.
6921         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
6922
6923         PR c++/34917
6924         * tree.c (build_type_attribute_qual_variant): Call
6925         build_qualified_type if attributes are equal, but quals are not.
6926
6927 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6928
6929         PR 32102
6930         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
6931         * flags.h (warn_strict_aliasing): Remove.
6932         (warn_strict_overflow): Remove.
6933         * opts.c (warn_strict_aliasing): Remove.
6934         (warn_strict_overflow): Remove.
6935         * c-opts.c (c_common_handle_option): -Wall only sets
6936         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
6937         (c_common_post_options): Give default values to -Wstrict-aliasing
6938         and -Wstrict-overflow if they are uninitialized.
6939         * common.opt (Wstrict-aliasing): Specify Var and Init.
6940         (Wstrict-overflow): Likewise.
6941
6942 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
6943
6944         PR rtl-optimization/26854
6945         PR rtl-optimization/34400
6946         PR rtl-optimization/34884
6947         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
6948         DF_RD->gen.
6949         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
6950         (df_rd_bb_info.expanded_lr_out): Deleted
6951         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
6952         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
6953         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6954         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6955         Removed code to allocate, initialize or free expanded_lr_out.
6956         (df_rd_bb_local_compute_process_def): Restructured to make more
6957         understandable.
6958         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
6959         sets if the sets are being trimmed.
6960
6961 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6962
6963         PR bootstrap/32287
6964         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
6965         (as_vers): Likewise.
6966         * configure: Regenerated.
6967
6968 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6969
6970         PR middle-end/33092
6971         * tree-pass.h (pass_build_alias): New pass.
6972         * tree-ssa-alias.c (gate_build_alias): New.
6973         (pass_build_alias): New.
6974         * passes.c (init_optimization_passes): Add pass_build_alias after
6975         pass_create_structure_vars.
6976
6977 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
6978
6979         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
6980         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
6981         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
6982         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
6983         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
6984         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
6985         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
6986         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
6987         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
6988         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
6989         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
6990         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
6991         * config/s390/s390.md (FP_ALL): New mode iterator.
6992         (_d): New mode attribute.
6993         ("*signbit<mode>2>"): Changed mode of first operand.
6994         ("isinf<mode>2"): Changed mode of first operand.
6995         ("*TDC_insn"): Adaptation for DFP modes.
6996
6997 2008-01-22  Ben Elliston  <bje@au.ibm.com>
6998
6999         * tree.c (check_qualified_type): Improve function description.
7000
7001 2008-01-21  Jason Merrill  <jason@redhat.com>
7002
7003         PR c++/34196
7004         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
7005         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
7006         if it is set.
7007
7008 2008-01-21  DJ Delorie  <dj@redhat.com>
7009
7010         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
7011         return zero.
7012
7013 2008-01-21  Richard Guenther  <rguenther@suse.de>
7014
7015         PR middle-end/34856
7016         * tree-cfg.c (verify_expr): Allow all invariant expressions
7017         instead of just constant class ones as reference argument.
7018         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
7019         like any other constant.
7020         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
7021
7022 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
7023
7024         * regmove.c (fixup_match_1): Update call crossed frequencies.
7025
7026 2008-01-21  Richard Guenther  <rguenther@suse.de>
7027
7028         PR c/34885
7029         * tree-inline.c (setup_one_parameter): Deal with mismatched
7030         types using a VIEW_CONVERT_EXPR.
7031
7032 2008-01-21  Alon Dayan  <alond@il.ibm.com>
7033             Olga Golovanevsky  <olga@il.ibm.com>
7034         
7035         PR tree-optimization/34701
7036         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
7037         when the structure size is not a power of 2.
7038
7039 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
7040
7041         * doc/install.texi: Add doc for --enable-checking=df.
7042         
7043 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
7044
7045         PR rtl-optimization/34808
7046         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
7047
7048 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7049
7050         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
7051         input.
7052
7053 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
7054
7055         PR rtl-optimization/26854
7056         PR rtl-optimization/34400
7057         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
7058         DF_RD->gen.
7059         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
7060         (df_rd_bb_info.expanded_lr_out): New.
7061         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
7062         * loop_iv.c (iv_analysis_loop_init): Ditto.
7063         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
7064         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
7065         Added code to allocate, initialize or free expanded_lr_out.
7066         (df_rd_bb_local_compute_process_def): Restructured to make
7067         more understandable.
7068         (df_rd_confluence_n): Add code to do nothing with fake edges and
7069         code to no apply invalidate_by_call sets if the sets are being trimmed.
7070         (df_lr_local_finalize): Renamed to df_lr_finalize.
7071         (df_live_local_finalize): Renamed to df_live_finalize.
7072
7073 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
7074
7075         PR target/34831
7076         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
7077         deciding whether to use reciprocal instructions.
7078
7079 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
7080
7081         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
7082         dwarf2out_note_section_used if cold_text_section is NULL.
7083
7084 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
7085
7086         PR gcov-profile/34610
7087         * tree-cfg.c (make_edges): Mark both outgoing edges from
7088         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
7089         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
7090         from OMP_FOR and OMP_CONTINUE outgoing edges.
7091
7092         * tree-profile.c (tree_profiling): Return early if
7093         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
7094         at the end.
7095         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
7096         from cfun to child_cfun.
7097         * function.h (struct function): Add after_tree_profile bit.
7098
7099 2008-01-19 Anatoly Sokolov <aesok@post.ru>
7100
7101         * config/avr/avr.S (_exit): Disable interrupt.
7102
7103 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
7104             Steven Bosscher  <stevenb.gcc@gmail.com>
7105
7106         PR rtl-optimization/26854
7107         PR rtl-optimization/34400
7108         * df-problems.c (df_live_scratch): New scratch bitmap.
7109         (df_live_alloc): Allocate df_live_scratch when doing df_live.
7110         (df_live_reset): Clear the proper bitmaps.
7111         (df_live_bb_local_compute): Only process the artificial defs once
7112         since the order is not important.
7113         (df_live_init): Init the df_live sets only with the variables
7114         found live by df_lr.
7115         (df_live_transfer_function): Use the df_lr sets to prune the
7116         df_live sets as they are being computed.  
7117         (df_live_free): Free df_live_scratch.
7118
7119 2008-01-18  Ian Lance Taylor  <iant@google.com>
7120
7121         * common.opt: Add fmerge-debug-strings.
7122         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
7123         flag_merge_debug_strings rather than flag_merge_constants.
7124         * doc/invoke.texi (Option Summary): Mention
7125         -fmerge-debug-strings.
7126         (Debugging Options): Document -fmerge-debug-strings.
7127
7128 2008-01-18  Ian Lance Taylor  <iant@google.com>
7129
7130         PR c++/33407
7131         * tree.h (DECL_IS_OPERATOR_NEW): Define.
7132         (struct tree_function_decl): Add new field operator_new_flag.
7133         * tree-inline.c (expand_call_inline): When inlining a call to
7134         operator new, force the return value to go into a variable, and
7135         set DECL_NO_TBAA_P on that variable.
7136         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
7137
7138 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
7139
7140         PR debug/34484
7141         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
7142         DWARF2_DEBUGGING_INFO.
7143         (dwarf2out_note_section_used): Ditto.  Add prototype.
7144         (have_multiple_function_sections, text_section_used,
7145         cold_text_section_used, *cold_text_sections): Move declarations
7146         before their uses.
7147
7148 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
7149
7150         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
7151         field and add signal_ra.
7152         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
7153         assignments to frame state pc.  Move end of stack check after
7154         MD_FALLBACK_FRAME_STATE_FOR.
7155         (uw_update_context_1): Use frame state signal_regs if set, instead
7156         of checking signal_frame flag.
7157         (uw_update_context): Use frame state signal_ra if set.
7158         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
7159         * config/xtensa/linux-unwind.h: New file.
7160
7161 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
7162
7163         * modulo-sched.c (get_sched_window): Fix comment typo.
7164
7165 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
7166
7167         PR tree-optimization/34648
7168         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
7169
7170 2008-01-17  Anatoly Sokolov <aesok@post.ru>
7171
7172         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
7173         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
7174
7175 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
7176
7177         PR rtl-optimization/34400
7178         * df-core.c (df_worklist_dataflow_overeager,
7179         df_worklist_dataflow_doublequeue): New functions.
7180         (df_worklist_dataflow): Two different worklist solvers.
7181         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
7182         New param.
7183
7184 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7185
7186         PR testsuite/34821
7187         * doc/invoke.texi: Document the dependence on pthread for fopenmp
7188         and ftree-parallelize-loops.
7189
7190 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
7191
7192         PR rtl-optimization/34826
7193         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
7194
7195 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7196
7197         * global.c (find_reg): Mark the eh regs as used if necessary.
7198         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
7199         * ra.h (struct allocno): no_eh_reg field added.  Changed
7200         no_stack_reg type to bitfield.
7201
7202 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
7203
7204         * tree.c (substitute_in_expr): Add missing 'break'.
7205
7206 2008-01-17  Richard Guenther  <rguenther@suse.de>
7207
7208         PR tree-optimization/34825
7209         * tree-ssa-math-opts.c (is_division_by): Do not recognize
7210         x / x as division to handle.
7211
7212 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7213
7214         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
7215         "-pthread" is specified.
7216         * pa-hpux11.h (LIB_SPEC): Likewise.
7217
7218 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
7219             Peter Bergner  <bergner@vnet.ibm.com>
7220
7221         PR rtl-optimization/33796
7222         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
7223
7224 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7225
7226         PR libgfortran/34699
7227         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
7228         static links.
7229         * pa-hpux10.h (LINK_SPEC): Likewise.
7230         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
7231
7232 2008-01-16  Richard Guenther  <rguenther@suse.de>
7233
7234         PR middle-end/32628
7235         * fold-const.c (fold_convert_const_int_from_int): Do not
7236         set overflow if that occured only because of a sign extension
7237         change when converting from/to a sizetype with the same
7238         precision and signedness.
7239
7240 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7241
7242         PR debug/34249
7243         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
7244         location address to the correct place.  Update copyright year.
7245
7246 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7247
7248         * lambda-code.c (lambda_transform_legal_p): Handle the case of
7249         no dependences in the dependence_relations vector.
7250
7251 2008-01-16  Jan Hubicka  <jh@suse.cz>
7252
7253         PR rtl-optimization/31396
7254         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
7255         * cfg.c (dump_reg_info): Print it.
7256         * regs.h (struct reg_info_t): add freq_calls_crossed.
7257         (REG_FREQ_CALLS_CROSSED): New macro.
7258         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
7259         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
7260         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
7261         regmove_optimize): Update call crossed frequencies.
7262         * local-alloc.c (struct qty): Add freq_calls_crossed.
7263         (alloc_qty): Copute freq_calls_crossed.
7264         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
7265         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
7266         * ra.h (struct allocno): Add freq_calls_crossed.
7267
7268 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7269
7270         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
7271         libgomp when compiling with ftree-parallelize-loops.
7272         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
7273
7274 2008-01-16  Richard Guenther  <rguenther@suse.de>
7275
7276         PR tree-optimization/34769
7277         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
7278         * tree.c (int_cst_value): Instead make this function more
7279         permissive in what it accepts as valid input.  Document this
7280         function always sign-extends the value.
7281
7282 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
7283             Richard Guenther  <rguenther@suse.de>
7284
7285         PR c/34668
7286         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
7287         (gimple_fold_indirect_ref_rhs): ... this.
7288         (gimple_fold_indirect_ref): New function with foldings
7289         that preserve lvalueness.
7290         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
7291         * tree-flow.h (gimple_fold_indirect_ref): Declare.
7292         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
7293         to fold an INDIRECT_REF, fall back to the old use of
7294         fold_indirect_ref_1.
7295
7296 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7297
7298         * tree-data-ref.c (subscript_dependence_tester_1): Call 
7299         free_conflict_function.
7300         (compute_self_dependence): Same.
7301
7302 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
7303
7304         PR debug/34249
7305         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
7306         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
7307         function global.
7308         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
7309         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
7310         for DWARF2_UNWIND_INFO targets.
7311
7312 2008-01-16  Richard Guenther  <rguenther@suse.de>
7313
7314         PR c/34768
7315         * c-typeck.c (common_pointer_type): Do not merge inconsistent
7316         type qualifiers for function types.
7317
7318 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
7319
7320         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
7321         loop_iterator li from previous commit.
7322
7323 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7324
7325         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
7326
7327 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7328
7329         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
7330         (parallelize_loops): Don't parallelize irreducible components.
7331
7332 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7333
7334         PR c++/24924
7335         * c-opts (c_common_post_options): Do not enable CPP
7336         flag_pedantic_errors by default.
7337         
7338 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
7339
7340         PR rtl-optimization/31944
7341         * cse.c (remove_pseudo_from_table): New function.
7342         (merge_equiv_classes): Use above function to remove pseudo-registers.
7343         (invalidate): Likewise.
7344
7345 2008-01-13  Richard Guenther  <rguenther@suse.de>
7346
7347         PR middle-end/34601
7348         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
7349         instead of TYPE_MODE to deal with calls from expand_one_error_var.
7350
7351 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
7352
7353         * gcse.c (cprop_jump): Call validate_unshare_change instead of
7354         validate_change to unshare the source of the PC set.
7355
7356 2008-01-12  Jan Hubicka  <jh@suse.cz>
7357
7358         PR middle-end/32135
7359         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
7360         references above array bounds.  This might trigger bounds checks for
7361         pointers to arrays.
7362
7363 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
7364
7365         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
7366         new_replaceable_dependencies.
7367
7368 2008-01-12  Doug Kwan  <dougkwan@google.com>
7369
7370         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
7371         instead of OPT_Wreturn_type in warning due to ignored return type
7372         qualifiers.
7373         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
7374         options included in -Wextra.
7375         * c.opt: New option -Wignored_qualifiers.
7376         * doc/invoke.texi (Warning Options, -Wextra): Add new option
7377         -Wignore_qualifiers.
7378         (-Wignored-qualifiers): Document.
7379         (-Wreturn-type): Remove description of functionality now handled
7380         by -Wignored-qualifiers.
7381
7382 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
7383
7384         PR ada/33788
7385         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
7386         NOP_EXPR if it is between integral types with the same precision.
7387
7388 2008-01-12  Jan Hubicka  <jh@suse.cz>
7389
7390         PR other/28023
7391         * invoke.texi (max-inline-recursive-depth): Fix default value.
7392
7393 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
7394
7395         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
7396         correct type.
7397
7398 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
7399         
7400         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
7401         
7402 2008-01-11  James E. Wilson  <wilson@specifix.com>
7403
7404         PR target/26015
7405         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
7406
7407 2008-01-11  Anatoly Sokolov <aesok@post.ru>
7408
7409         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
7410         save/restore frame pointer register and don't use 'call-prologues' 
7411         optimization in function with "OS_task" attribute.
7412
7413 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
7414
7415         PR middle-end/31309
7416         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
7417         when copying to memory.
7418
7419 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7420
7421         PR rtl-optimization/30905
7422         * cfgcleanup.c: Include dce.h
7423         (crossjumps_occured): New global variable.
7424         (try_crossjump_bb): Exit loop after finding a fallthru edge.
7425         If something changed, set crossjumps_occured to true.
7426         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
7427         Don't add/remove fake edges to exit here...
7428         (cleanup_cfg): ...but do it here, when crossjumping.
7429         Run a fast DCE when successful crossjumps occured in the latest
7430         iteration of try_optimize_cfg.
7431
7432 2008-01-11  Richard Guenther  <rguenther@suse.de>
7433
7434         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
7435         (struct vn_unary_op_s): Likewise.
7436         (vn_reference_insert): Free old reference on hash collision.
7437
7438 2008-01-10  Raksit Ashok  <raksit@google.com>
7439
7440         PR rtl-optimization/27971
7441         * combine.c (find_split_point): Split PLUS expressions which are
7442         inside a MEM rtx, and whose first operand is complex.
7443
7444 2008-01-10  DJ Delorie  <dj@redhat.com>
7445
7446         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
7447         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
7448         (m32c_hard_regno_ok): Call the underlying function.
7449
7450 2008-01-10  Richard Guenther  <rguenther@suse.de>
7451
7452         PR middle-end/34683
7453         * tree-cfg.c (tree_merge_blocks): Do not go through the
7454         full-blown folding and stmt updating path if we just deal
7455         with virtual operands.
7456         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
7457         test for abnormal SSA_NAMEs.
7458
7459 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
7460
7461         PR middle-end/34641
7462         * reload.c (push_reload): Add assertions.  All constants from
7463         reg_equiv_constant should have been used for replacing the respective
7464         pseudo earlier.
7465         (find_reloads_address): Invoke find_reloads_address_part for
7466         constant taken from the reg_equiv_constant array.
7467
7468 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
7469
7470         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
7471         field (valnum) the first in the struct.  Replace bools with
7472         unit bit fields.
7473
7474 2008-01-10  Richard Guenther  <rguenther@suse.de>
7475
7476         PR tree-optimization/34651
7477         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
7478         types and ordering for masking and converting.
7479
7480 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
7481
7482         PR tree-optimization/34017
7483         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
7484         also for PHI_NODE expressions.
7485
7486 2008-01-09  Jan Hubicka  <jh@suse.cz>
7487
7488         PR tree-optimization/34708
7489         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
7490         based on number of case labels.
7491         (init_inline_once): Remove switch_cost.
7492         * tree-inline.h (eni_weights_d): Remove switch_cost.
7493
7494 2008-01-09  Richard Guenther  <rguenther@suse.de>
7495         Andrew Pinski  <andrew_pinski@playstation.sony.com>
7496
7497         PR middle-end/30132
7498         * gimplify.c (gimplify_cond_expr): Do not create an addressable
7499         temporary if an rvalue is ok or an lvalue is not required.
7500
7501 2008-01-09  Richard Guenther  <rguenther@suse.de>
7502
7503         PR middle-end/34458
7504         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
7505         adjust return type.
7506
7507 2008-01-09  Richard Guenther  <rguenther@suse.de>
7508
7509         PR middle-end/34679
7510         * tree.c (host_integerp): Check for sizetype only if the
7511         type is an integer type.
7512
7513 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
7514
7515         PR debug/26364
7516         * opts.c (decode_options): Disable inlining of functions called
7517         once if not in unit-at-a-time mode.
7518
7519 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
7520
7521         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
7522
7523 2008-01-08  Richard Guenther  <rguenther@suse.de>
7524
7525         PR middle-end/31863
7526         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
7527         out early if the result will be unused.
7528
7529 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7530
7531         PR target/34709
7532         Revert:
7533
7534         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7535         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7536         for TARGET_RECIP.       
7537         
7538 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
7539         
7540         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
7541         for vectorization tuned.
7542         
7543 2008-01-08  Richard Guenther  <rguenther@suse.de>
7544
7545         PR tree-optimization/34683
7546         * tree-ssa-operands.c (operand_build_cmp): Export.
7547         * tree-ssa-operands.h (operand_build_cmp): Declare.
7548         * tree-vn.c (vuses_compare): Remove.
7549         (sort_vuses): Use operand_build_cmp.
7550         (sort_vuses_heap): Likewise.
7551         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
7552         to re-use old VEC if available.  Do not sort already sorted VUSEs.
7553         (vdefs_to_vec): Do not sort already sorted VDEFs.
7554
7555 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
7556
7557         PR middle-end/34694
7558         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
7559
7560 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
7561
7562         PR target/34702
7563         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
7564         limitations of reciprocal sequences on x86 targets.
7565
7566 2008-01-08  Richard Guenther  <rguenther@suse.de>
7567
7568         PR tree-optimization/34683
7569         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
7570
7571 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
7572
7573         PR target/34622
7574         * config/darwin.c (darwin_mergeable_string_section): Don't use
7575         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
7576
7577 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
7578
7579         PR target/34682
7580         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
7581         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
7582         predicates of op0 and op1 to register_operand.
7583         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
7584         expander using X87MODEF mode iterator.  Change predicates of
7585         op0 and op1 to register_operand.
7586         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
7587         corresponding patterns and macroize using MODEF macro.  Change
7588         predicates of op0 and op1 to register_operand and remove
7589         "m" constraint. Disparage "r" alternative with "!".
7590         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
7591         macroize using X87MODEF macro.  Change predicates of op0 and op1
7592         to register_operand and remove "m" constraint.  Disparage "r"
7593         alternative with "!".
7594         (absneg splitter with memory operands): Remove.
7595         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
7596         patterns and macroize using X87MODEF mode iterator.
7597         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
7598         Change predicate of op1 to register_operand.
7599         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
7600         for memory operands.
7601
7602 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
7603
7604         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
7605
7606 2008-01-07  Richard Guenther  <rguenther@suse.de>
7607
7608         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
7609         fields.
7610
7611 2008-01-07  Richard Guenther  <rguenther@suse.de>
7612
7613         PR tree-optimization/34683
7614         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
7615         VOPs of the needed size to save memory.  Use VEC_quick_push
7616         to save compile-time.
7617         (vdefs_to_vec): Likewise.
7618
7619 2008-01-07  Sa Liu  <saliu@de.ibm.com>
7620
7621         * config/spu/spu.md (divdf3): Genetate inline code for double
7622         division.  The implementation doesn't handle INF or NAN, therefore it
7623         only applies when -ffinite-math-only is given.
7624
7625 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
7626
7627         PR libstdc++/34680
7628         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
7629         * doc/cpp.texi ([Common Predefined Macros]): Document.
7630
7631 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
7632
7633         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
7634         order to use commutative addition instead of subtraction.
7635
7636 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7637             Mircea Namolaru  <namolaru@il.ibm.com>
7638             Vladimir Yanovsky  <yanov@il.ibm.com>
7639             Revital Eres  <eres@il.ibm.com>
7640
7641         PR tree-optimization/34263
7642         * tree-outof-ssa.c (process_single_block_loop_latch,
7643         contains_tree_r): New functions.
7644         (analyze_edges_for_bb): Call process_single_block_loop_latch
7645         function to empty single-basic-block latch block if possible.
7646
7647 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7648
7649         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
7650         for TARGET_RECIP.
7651         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
7652
7653 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7654
7655         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
7656
7657 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
7658
7659         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
7660
7661 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
7662
7663         PR tree-optimization/34618
7664         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
7665         flag from T.
7666
7667 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
7668
7669         PR target/34673
7670         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
7671         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
7672         Update copyright year.
7673
7674         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
7675         Update copyright year.
7676         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
7677         using NR fixup.
7678
7679 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
7680
7681         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
7682         edge does not point to current bb before changing need_assert.
7683
7684 2008-01-04  Richard Guenther  <rguenther@suse.de>
7685
7686         PR middle-end/34029
7687         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
7688         for verifying purposes if they are is_gimple_min_invariant.
7689
7690 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
7691
7692         PR tree-optimization/34448
7693         PR tree-optimization/34465
7694         * gimplify.c (gimplify_init_constructor): Add new parameter
7695         notify_temp_creation.  Use it.
7696         (gimplify_modify_expr_rhs): Take volatiles into account when
7697         optimizing constructors.
7698         Do not optimize constructors if gimplify_init_constructor will dump to
7699         memory.
7700         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
7701         * gcc.c-torture/compile/pr34448.c: New.
7702
7703 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
7704
7705         PR gcov-profile/34609
7706         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
7707         return_slot if result is TREE_ADDRESSABLE.
7708
7709 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
7710
7711         * config/mips/mips.md (sqrt_condition): Tweak comment.
7712         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
7713
7714 2008-01-03  Tom Tromey  <tromey@redhat.com>
7715
7716         PR c/34457
7717         * c-common.c (c_type_hash): Handle VLAs.
7718
7719 2008-01-03  Jan Hubicka  <jh@suse.cz>
7720
7721         PR tree-optimization/31081
7722         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
7723         0 when inlining and not inlining to first basic block.
7724         (remap_decl): When var is initialized to 0, don't set default_def.
7725         (expand_call_inline): Set entry_bb.
7726         * tree-inline.h (copy_body_data): Add entry_bb.
7727
7728 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7729
7730         PR c++/34619
7731         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
7732         before returning.
7733
7734         PR tree-optimization/29484
7735         * tree-inline.c (inline_forbidden_p_2): New function.
7736         (inline_forbidden_p): Disallow inlining if some static var
7737         has an address of a local LABEL_DECL in its initializer.
7738         * doc/extend.texi (Labels as Values): Document &&foo behaviour
7739         vs. inlining.
7740
7741 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
7742
7743         PR tree-optimization/34635
7744         * tree-data-ref.c (add_other_self_distances): Make sure that the
7745         evolution step is constant.
7746
7747 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
7748
7749         PR middle-end/34608
7750         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
7751
7752 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
7753
7754         * tree-sra.c (scalarize_init): Insert the generate_element_init
7755         statements after the generate_element_zero statements.
7756
7757 2008-01-02  Richard Guenther  <rguenther@suse.de>
7758
7759         PR middle-end/34093
7760         PR middle-end/31976
7761         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
7762         for very large number of operands instead of ICEing.
7763
7764 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
7765
7766         PR target/34013
7767         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
7768         while stack probing.
7769
7770 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
7771
7772         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
7773         in C++0x mode.
7774
7775 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
7776
7777         PR libmudflap/26442
7778         * tree-mudflap.c (mx_register_decls): Guard warning by
7779         !DECL_ARTIFICIAL check.
7780
7781 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
7782
7783         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
7784         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
7785         sse5_perm<mode>): Fix constraints.