OSDN Git Service

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