OSDN Git Service

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