OSDN Git Service

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