OSDN Git Service

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