OSDN Git Service

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