OSDN Git Service

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