OSDN Git Service

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