OSDN Git Service

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