OSDN Git Service

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