OSDN Git Service

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