OSDN Git Service

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