OSDN Git Service

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