OSDN Git Service

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