OSDN Git Service

d278b6c555f9646e59ca0b8ff50fab0bd20611ab
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
2
3         PR c/35748
4         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5
6 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7
8         PR target/35757
9         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
10         proper error message for the third argument on blendpd and
11         blendps.
12
13         * config/i386/sse.md (blendbits): New.
14         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
15
16 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
17
18         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
19
20 2008-03-30  Richard Guenther  <rguenther@suse.de>
21
22         PR middle-end/31023
23         * fold-const.c (fold_sign_changed_comparison): Do leave
24         conversions to base-types alone.
25
26 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
27
28         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
29         the link register if one altivec register is be saved.
30
31 2008-03-30  Ben Elliston  <bje@au.ibm.com>
32
33         * final.c (final_scan_insn): Remove if (0) code.
34
35 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
36
37         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
38
39 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
40
41         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
42         of V4SFmode to ix86_binary_operator_ok.
43
44 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
45
46         * config/i386/i386.c (override_options): Initialize
47         ix86_veclib_handler to ix86_veclibabi_svml when
48         -mveclibabi=svml is used.
49         (ix86_veclibabi_svml): New function for SVML ABI style
50         vectorization support.
51         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
52
53 2008-03-28  Rafael Espindola  <espindola@google.com>
54
55         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
56         (tree_binary_nonnegative_warnv_p): Make it public.
57         (tree_single_nonnegative_warnv_p): Make it public.
58         (tree_invalid_nonnegative_warnv_p): Make it public.
59         (tree_unary_nonzero_warnv_p): Make it public.
60         (tree_binary_nonzero_warnv_p): Make it public
61         (tree_single_nonzero_warnv_p): Make it public.
62         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
63         (extract_range_from_binary_expr): Split the expr argument.
64         (extract_range_from_unary_expr): Split the expr argument.
65         (extract_range_from_comparison): Split the expr argument.
66         (extract_range_from_expr): Use the new aux functions.
67         (vrp_evaluate_conditional_warnv): Use
68         vrp_evaluate_conditional_warnv_with_ops.
69         * tree.h (tree_unary_nonzero_warnv_p): Declare.
70         (tree_binary_nonzero_warnv_p): Declare.
71         (tree_single_nonzero_warnv_p): Declare.
72         (tree_expr_nonzero_warnv_p): Declare.
73         (tree_unary_nonnegative_warnv_p): Declare.
74         (tree_binary_nonnegative_warnv_p): Declare.
75         (tree_single_nonnegative_warnv_p): Declare.
76         (tree_invalid_nonnegative_warnv_p): Declare.
77
78 2008-03-28  Richard Guenther  <rguenther@suse.de>
79
80         PR tree-optimization/30317
81         PR tree-optimization/30911
82         PR tree-optimization/34793
83         * tree-vrp.c (set_and_canonicalize_value_range): New function.
84         (struct assert_locus_d): New member EXPR.
85         (register_new_assert_for): Add EXPR parameter to support
86         ASSERT_EXPR <name, expr OP limit>.
87         (register_edge_assert_for_1): Adjust callers.
88         (find_assert_locations): Likewise.
89         (process_assert_insertions_for): Build condition from expression.
90         (extract_range_from_assert): Handle ASSERT_EXPRs
91         of the form ASSERT_EXPR <name, expr OP limit>.
92         (register_edge_assert_for_2): New helper registering
93         asserts for comparisons.  Recognize range tests of the form
94         (unsigned)i - CST1 OP CST2.
95         (register_edge_assert_for_1): Use it.
96         (register_edge_assert_for): Likewise.
97         (needs_overflow_infinity): Integer sub-types
98         do not need overflow infinities.
99         (vrp_val_is_max): The extreme values of integer sub-types
100         are those of the base type.
101         (vrp_val_is_min): Likewise.
102         * tree.def (ASSERT_EXPR): Document extra allowed conditional
103         expressions.
104
105 2008-03-28  Nick Clifton  <nickc@redhat.com>
106
107         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
108         Return GENERAL_REGS for stack adjustment reloads.
109
110 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
111
112         PR target/31334
113         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
114         const_vector when all the vectors are constant.
115
116 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
117
118         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
119         comparisons.
120         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
121         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
122         (scc_sf): New.
123         (s<code>_sf): Use new scc_sf attribute for opcode names.
124
125 2008-03-27  Tom Tromey  <tromey@redhat.com>
126
127         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
128         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
129         config/spu/t-spu-elf, config/i386/t-interix,
130         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
131         config/i386/x-darwin, config/i386/x-mingw32,
132         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
133         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
134         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
135         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
136         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
137         config/rs6000/x-darwin, config/rs6000/t-rs6000,
138         config/score/t-score-elf, config/arm/t-strongarm-pe,
139         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
140         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
141         Revert automatic dependency patch.
142
143 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
144
145         PR target/35657
146         * config/i386/i386.c (ix86_function_arg_boundary): Align
147         decimal floating point to its natural boundary.
148
149 2008-03-27  Richard Guenther  <rguenther@suse.de>
150
151         PR middle-end/35716
152         * fold-const.c (fold_comparison): Restrict distinct decl
153         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
154         solely rely on operand_equal_p.
155
156 2008-03-27  Richard Guenther  <rguenther@suse.de>
157
158         PR c/32511
159         * c-common.c (handle_weak_attribute): Reject combination of
160         weak and inline.
161
162 2008-03-27  Richard Guenther  <rguenther@suse.de>
163
164         PR tree-optimization/32810
165         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
166         conversions from DECL_INITIAL.
167         (fold_const_aggregate_ref): Likewise from constructor elements.
168
169 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
170
171         * tree-affine.h (aff_combination_expand): Declare.
172         (get_inner_reference_aff): Likewise.
173         * tree-affine.c (aff_combination_expand): Split out from
174         tree_to_aff_combination_expand.
175         (get_inner_reference_aff): New function.
176         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
177         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
178         (struct lim_aux_data): sm_done field removed.
179         (mem_ref_loc_p, mem_ref_locs_p): New types.
180         (struct mem_ref): Added id, stored, accesses_in_loop,
181         indep_loop, dep_loop, indep_ref, dep_ref fields.
182         Removed is_stored, locs and next fields.
183         (memory_accesses): New variable.
184         (movement_possibility): Do not allow moving statements
185         that store to memory.
186         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
187         New functions.
188         (determine_max_movement): For statements with memory references,
189         find the outermost loop in that the reference is independent.
190         (move_computations_stmt): Mark the virtual operands for renaming.
191         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
192         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
193         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
194         add_vop_ref_mapping, create_vop_ref_mapping_loop,
195         create_vop_ref_mapping, analyze_memory_references,
196         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
197         get_all_locs_in_loop, ref_always_accessed_p,
198         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
199         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
200         store_motion_loop, store_motion): New functions.
201         (struct vop_to_refs_elt): New type.
202         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
203         memref_hash, memref_eq, hoist_memory_references): Rewritten.
204         (schedule_sm): Replaced by...
205         (execute_sm): ... this.
206         (determine_lsm_ref, hoist_memory_references,
207         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
208         find_more_ref_vops, free_mem_ref, free_mem_refs,
209         determine_lsm_loop, determine_lsm): Removed.
210         (tree_ssa_lim_finalize): Free data structures used by store motion.
211         (tree_ssa_lim): Call analyze_memory_references.  Use
212         store_motion instead of determine_lsm.
213
214 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
215
216         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
217         rename tmake_file to m68hc11/t-m68hc11.
218         (mcore): Set inhibit_libc to true.
219         * config.host (alpha*-dec-*vms*): Set extra_programs.
220         (interix3*): Don't use host_xmake_file.
221         * configure.ac: Let config.gcc override inhibit_libc.
222         * configure: Regenerate.
223
224         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
225         * config/t-openbsd-thread: Remove commented out lines.
226         
227         * config/x-interix: Remove.
228
229         * config/m68hc11/t-m68hc11-gas: Rename to...
230         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
231
232         * config/mcore/t-mcore: Remove T_CFLAGS.
233         * config/mcore/t-mcore-pe: Likewise.
234
235 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
236
237         * configure.ac: Replace custom __GNU_SOURCE test with
238         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
239         * aclocal.m4: Regenerate.
240         * configure: Regenerate.
241         * config.in: Regenerate.
242
243 2008-03-27  Richard Guenther  <rguenther@suse.de>
244
245         * fold-const.c (target.h): Include.
246         (fold_comparison): Fold comparison of addresses of decls
247         that bind locally or of constants.  Consolidate address folding code.
248         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
249         results from fold_binary_to_constant.
250         (compare_values_warnv): Likewise.
251
252 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
253
254         PR middle-end/35429
255         * fold-const.c (fold_truthop): Check for integeral types when folding
256         a == 0 && b == 0 and a != 0 || b != 0 .
257
258 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
259
260         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
261
262 2008-03-26  Andreas Schwab  <schwab@suse.de>
263
264         * doc/invoke.texi: Fix use of @item vs. @itemx.
265
266 2008-03-26  Tom Tromey  <tromey@redhat.com>
267
268         * Makefile.in (build/gensupport.o, build/print-rtl.o,
269         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
270         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
271         build/gencodes.o, build/genconditions.o, build/genconfig.o,
272         build/genconstants.o, build/genemit.o, build/genextract.o,
273         build/genflags.o, build/genmddeps.o, build/genopinit.o,
274         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
275         options.h.
276
277 2008-03-26  Richard Guenther  <rguenther@suse.de>
278
279         Revert
280         2008-03-26  Richard Guenther  <rguenther@suse.de>
281
282         * fold-const.c (target.h): Include.
283         (fold_comparison): Fold comparison of addresses of two decls
284         that bind locally.  Consolidate address folding code.
285
286 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
287
288         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
289         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
290         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
291         dconstsqrt2, dconstthird, dconste and/or dconst10.
292         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
293         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
294         dconstsqrt2, dconste): Delete.
295         (init_emit_once): Likewise.  Simplify initializing dconstm1.
296         Constify variable.
297         * real.c (get_real_const): New.
298         * real.h (dconst3, dconst10, dconstm2, dconstthird,
299         dconstsqrt2, dconste): Delete.
300         (real_value_const, get_real_const): New.
301
302 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
303
304         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
305
306         * config/i386/i386.c (ix86_function_arg_boundary): Check
307         BIGGEST_ALIGNMENT instead of 128.
308         (setup_incoming_varargs_64): Likewise.
309
310 2008-03-26  Tom Tromey  <tromey@redhat.com>
311
312         * Makefile.in (DEPFILES): Add missing '/'.
313
314 2008-03-26  Richard Guenther  <rguenther@suse.de>
315
316         * fold-const.c (target.h): Include.
317         (fold_comparison): Fold comparison of addresses of two decls
318         that bind locally.  Consolidate address folding code.
319
320 2008-03-26  Nick Clifton  <nickc@redhat.com>
321
322         PR target/31232
323         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
324         not allow INT+INT as a legitimate addressing mode.
325
326 2008-03-26  Richard Guenther  <rguenther@suse.de>
327
328         * tree-flow.h (widen_bitfield): Remove declaration.
329         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
330         (widen_bitfield): Remove function.
331         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
332         code.
333
334 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
335
336         PR target/31558
337         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
338         error_mark_node's.
339
340 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
341
342         PR rtl-optimization/35232
343         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
344         (forget_old_reloads_1, forget_marked_reloads): Don't clear
345         reg_reloaded_call_part_clobbered here.
346         (reload_regs_reach_end_p): New function.
347         (reload_reg_rtx_for_input): New variable.
348         (reload_reg_rtx_for_output): Likewise.
349         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
350         when reassigning a pseudo register.  Load reloadreg from 
351         reload_reg_rtx_for_input, moving the mode and register
352         calculation to...
353         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
354         instead of the original when deciding whether an input reload
355         would be a no-op or whether an output reload can be deleted.
356         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
357         when setting up new_spill_reg_store.  Load it from
358         reload_reg_rtx_for_output, moving the mode and register
359         calculation to...
360         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
361         instead of the original when deciding whether an output reload
362         would be a no-op.  Do the same when modifying insn notes.
363         Use rtx_equal_p instead of == to compare the registers.
364         (inherit_piecemeal_p): Take a mode and two register numbers
365         as argument.
366         (emit_reload_insns): Clear new_spill_reg_store for every hard
367         register in the reload register.  Remove spill registers
368         from reg_reloaded_valid before considering whether to record
369         inheritance information for them.  Use reload_reg_rtx_for_output
370         instead of reg_rtx when recording output reloads.  Use
371         reload_reg_rtx_for_input instead of reg_rtx when recording
372         input reloads.  Set or clear reg_reloaded_call_part_clobbered
373         at the same time as setting reg_reloaded_valid.
374         (delete_output_reload): Add a new_reload_reg parameter and use it
375         instead of rld[j].reg_rtx.
376         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
377         calls accordingly.
378
379 2008-03-25  Tom Tromey  <tromey@redhat.com>
380
381         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
382         (build/genattr.o): Likewise.
383         (build/genattrtab.o): Likewise.
384         (build/gencodes.o): Likewise.
385         (build/genconfig.o): Likewise.
386         (build/genconstants.o): Likewise.
387         (build/genemit.o): Likewise.
388         (build/genextract.o): Likewise.
389         (build/genflags.o): Likewise.
390
391 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
392         
393         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
394         instead of size_int for integer types.
395         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
396         to match type of MINUS_EXPR.
397         
398 2008-03-25  Tom Tromey  <tromey@redhat.com>
399
400         * configure: Rebuilt.
401         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
402         Makefile.
403
404 2008-03-25  Tom Tromey  <tromey@redhat.com>
405
406         * config/x-solaris (host-solaris.o): Update.
407         * config/x-linux (host-linux.o): Update.
408         * config/x-hpux (host-hpux.o): Update.
409         * config/x-darwin (host-darwin.o): Update.
410         * config/v850/t-v850e (v850-c.o): Update.
411         * config/v850/t-v850 (v850-c.o): Update.
412         * config/t-vxworks (vxworks.o): Update.
413         * config/t-sol2 (sol2-c.o, sol2.o): Update.
414         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
415         * config/spu/t-spu-elf (spu-c.o): Update.
416         (spu.o): Remove.
417         * config/sh/t-symbian (sh-c.o): Update.
418         (symbian.o): Update.
419         * config/sh/t-sh (sh-c.o): Update.
420         * config/score/t-score-elf (score7.o, score3.o): Update.
421         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
422         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
423         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
424         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
425         (rs6000.o): Remove.
426         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
427         * config/m32c/t-m32c (m32c-pragma.o): Update.
428         * config/ia64/t-ia64 (ia64-c.o): Update.
429         * config/i386/x-mingw32 (host-mingw32.o): Update.
430         * config/i386/x-i386 (driver-i386.o): Update.
431         * config/i386/x-darwin (host-i386-darwin.o): Update.
432         * config/i386/x-cygwin (host-cygwin.o): Update.
433         * config/i386/t-nwld (nwld.o): Update.
434         * config/i386/t-netware (netware.o): Update.
435         * config/i386/t-interix (winnt.o): Update.
436         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
437         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
438         msformat-c.o): Update.
439         * config/bfin/t-bfin-linux (generated_files): Add
440         linux-sysroot-suffix.h.
441         * config/arm/t-wince-pe (pe.o): Update.
442         * config/arm/t-strongarm-pe (pe.o): Update.
443         * config/arm/t-pe (pe.o): Update.
444         * config/arm/t-arm (arm-c.o): Update.
445         * doc/install.texi (Prerequisites): Require make 3.80.
446         * Makefile.in: Remove .o targets.
447         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
448         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
449         (simple_generated_h, simple_generated_c): Move earlier.
450         (generated_files): New variable.
451         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
452         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
453         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
454         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
455         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
456         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
457         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
458         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
459         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
460         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
461         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
462         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
463         (.c.o): Remove.
464         (COMPILE.base, COMPILE): New variables.
465         (%.o): New pattern rule.
466         (ALL_HOST_OBJS): New variable.
467         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
468         (dummy-checksum.o, cc1-checksum.o): Remove.
469         (DRIVER_SHLIB): New variable.
470         (DRIVER_DEFINES): Use it.
471         (gencondmd.c): Move out of build/.
472         (s-conditions): Update.
473         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
474         (ALL_BUILD_OBJS): Likewise.
475         (build/%.o): Use BUILDCOMPILE.
476         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
477         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
478         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
479         build/gencheck.o, build/gencodes.o, build/genconditions.o,
480         build/genconfig.o, build/genconstants.o, build/genemit.o,
481         build/genextract.o, build/genflags.o, build/genmddeps.o,
482         build/genopinit.o, build/genoutput.o, build/genpeep.o,
483         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
484         build/gen-protos.o, build/scan.o, build/fix-header.o,
485         build/scan-decls.o): Simplify.
486         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
487         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
488         prefix.o, toplev.o): Reduce to variable setting.
489         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
490         ($(out_object_file), gcc-options.o): New targets.
491         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
492         * configure: Rebuilt.
493         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
494         * doc/sourcebuild.texi (Front End Directory): Document new variable.
495
496 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
497
498         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
499         complain when we hit an error, return ERROR_MARK_NODE.
500
501 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
502
503         * config/sh/constraints.md (Pso, Psz): New constraints.
504         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
505         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
506
507 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
508
509         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
510         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
511
512 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
513
514         * config/sh/sh.md (prefetch): Add condition for SH2A target.
515         (prefetch_sh2a): New.   
516
517 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
518             Naveen.H.S  <naveen.hs@kpitcummins.com>
519
520         * config/sh/constraints.md (I28): New constraint.
521         * config/sh/sh.c (broken_move): Add support for movi20s.
522         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
523
524 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
525             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
526             Naveen.H.S  <naveen.hs@kpitcummins.com>
527
528         * config/sh/sh.c (SH_ATTRIBUTES): Define.
529         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
530         (print_operand): Handle resbank in %@ operand code.
531         (sh_encode_section_info): New.
532         (push_regs): Add conditions for resbank.
533         (sh_expand_epilogue): Likewise.
534         (sh_insert_attributes): Likewise.
535         (sh_attribute_table): Likewise.
536         (sh_handle_resbank_handler_attribute): New.
537         (sh2a_handle_function_vector_handler_attribute): New.
538         (sh2a_is_function_vector_call): New.
539         (sh2a_get_function_vector_number): New.
540         (sh2a_function_vector_p): New.
541         (sh_cfun_resbank_handler_p): New.
542         * config/sh/sh.md (calli): Emit jsr/n if possible.
543         (calli_tbr_rel): New.
544         (calli_pcrel): Emit jsr/n if possible.
545         (return_i): Emit rts/n if possible.
546         (call_valuei_tbr_rel): New.
547         (call_valuei_pcrel): Add condition for SH2A target.
548         (call_value): Likewise.
549         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
550         (sh2a_get_function_vector_number): Likewise.
551         (sh2a_is_function_vector_call): Likewise.
552         * doc/extend.texi: Document TBR relative addressing of SH2A.
553         (resbank): Add description for SH2A.
554
555 2008-03-24  Richard Guenther  <rguenther@suse.de>
556
557         PR c/22371
558         * gimplify.c (gimplify_modify_expr): For frontend type-correct
559         pointer assignments change conversions according to middle-end rules.
560         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
561         * configure.ac: Include type checking in yes.
562         * configure: Regenerate.
563
564 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
565
566         * diagnostic.c (diagnostic_count_diagnostic): Delete.
567         (diagnostic_report_diagnostic): Update. Handle ICEs here.
568         
569 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
570
571         * gthr-vxworks.h (UNUSED): Define.
572
573 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
574
575         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
576
577 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
578
579         * doc/extend.texi (Function Attributes): Add missing comma in the
580         example of the "alloc_size" attribute.
581         
582 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
583
584         Revert:
585         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
586
587         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
588         32bit host.
589
590         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
591
592         PR target/35496
593         * stor-layout.c (update_alignment_for_field): Set minimum alignment
594         of the underlying type of a MS bitfield layout to the natural
595         alignment of the type.
596
597         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
598
599         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
600         to their natural alignment to avoid store forwarding stalls.
601
602 2008-03-22  Richard Guenther  <rguenther@suse.de>
603
604         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
605         For PHI nodes verify the address is invariant.
606         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
607         (get_symbol_constant_value): Use is_gimple_min_invariant.
608         (maybe_fold_stmt_indirect): Likewise.
609
610 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
611
612         PR rtl-optimization/33927
613         * Makefile.in (dse.o): Depend on $(TM_P_H).
614         * expr.h (extract_low_bits): Declare.
615         * expmed.c (extract_low_bits): New function.
616         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
617         * dse.c: Include tm_p.h.
618         (find_shift_sequence): Remove the read_reg argument and return the
619         read value.  Emit the instructions instead of returning them.
620         Iterate on new_mode rather than calculating it each time.
621         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
622         source to NEW_MODE and extract_low_bits to convert the shifted
623         value to READ_MODE.
624         (replace_read): Allow the load and store to have different mode
625         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
626         or extraction instructions before trying the replacement.  Update
627         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
628
629 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
630
631         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
632         to their natural alignment to avoid store forwarding stalls.
633
634 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
635
636         PR target/27946
637         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
638         encouraging but not allowing gprs for input;
639         change the input constraint to !f#r.
640         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
641         gprs for output;
642         change the output constraint to !f#r.
643
644 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
645
646         PR target/13958
647         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
648         corresponding post-reload splitters.
649         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
650         when x87 FP math is selected.
651         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
652         New function prototype.
653         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
654         unreachable function to ease macroization of insn patterns.
655
656 2008-03-21  Martin Jambor  <mjambor@suse.cz>
657
658         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
659         reference dumps if ddr is NULL or dependence is unknown.
660
661 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
662
663         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
664         unsigned extension into account.
665         (ATOMIC_COMPARE_AND_SWAP): Likewise.
666         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
667         Do computations on a scratch register.
668
669 2008-03-21  Richard Guenther  <rguenther@suse.de>
670
671         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
672         Use is_gimple_min_invariant instead of TREE_INVARIANT.
673         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
674         * tree-ssa-dom.c (record_equality): Likewise.
675         * tree-inline.c (copy_body_r): Likewise.
676         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
677         TREE_INVARIANT.
678
679 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
680
681         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
682         as 'delete_unused' argument.
683
684 2008-03-20  Richard Guenther  <rguenther@suse.de>
685
686         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
687         special casing of constant qualifiers.
688         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
689         care about them in general.
690         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
691         regardless of their type.
692         (fold_stmt_r): Forcefully fold *& if we end up with that.
693
694 2008-03-20  Paul Brook  <paul@codesourcery.com>
695
696         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
697         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
698         linker flags.
699         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
700         definition.
701         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
702         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
703
704 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
705
706         * common.opt (Wmudflap): New option.
707         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
708         (mx_register_decls): Likewise.
709         (mudflap_finish_file): Likewise.
710         * doc/invoke.texi: Document -Wno-mudflap.
711
712 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
713
714         * c-format.c (replace_format_name_to_system_name): New.
715         (cmp_attribs): New.
716         (convert_format_name_to_system_name): New.
717         (decode_format_attr): Add use of convert_format_name_to_system_name.
718         (format_types_orig): Add gnu_ prefix to names.
719         (check_format_info_main): Special treating of \0 escaped names for
720         supporting multi-character format specifiers as I32, I64.
721         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
722         (gnu_target_overrides_format_attributes): New.
723         * c-format.h: Add structure target_ovr_attr to hold
724         system specific formatter names.
725         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
726         msformat-c.o file to c_target_objs and cxx_target_objs.
727         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
728         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
729         (TARGET_N_FORMAT_TYPES): New.
730         * config/i386/msformat-c.c: New.
731         * config/i386/t-cygming: Add build rule for msformat-c.o.
732         * doc/extend.texi: Add new format names gnu_* and ms_* and
733         further details.
734         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
735
736 2008-03-20  Ira Rosen  <irar@il.ibm.com>
737
738         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
739         optimizations turned on under -O3.
740         (ftree-vectorize): Add that the flag is turned on with -O3.
741
742 2008-03-20  Ben Elliston  <bje@au.ibm.com>
743
744         * regmove.c (try_auto_increment): Fix spelling error in comment.
745         * final.c (final_scan_insn): Likewise.
746
747 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
748
749         PR target/14552
750         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
751         allocator preferences for "y" and "r" class registers.
752         ("*mov<mode>_internal"): Ditto.
753         ("*movv2sf_internal_rex64"): Ditto.
754         ("*movv2sf_internal"): Ditto.
755
756 2008-03-19  Michael Matz  <matz@suse.de>
757
758         PR middle-end/35616
759         * calls.c (expand_call): Check overlap of arguments with call
760         address for sibcalls.
761
762 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
763
764         PR target/35496
765         * stor-layout.c (update_alignment_for_field): Set minimum alignment
766         of the underlying type of a MS bitfield layout to the natural
767         alignment of the type.
768
769 2008-03-19  Jan Hubicka  <jh@suse.cz>
770
771         PR other/35094
772         * toplev.c (decode_d_option): Handle all CPP flags.
773         * tree-vrp.c: Update tree_pass descriptors.
774         * regrename.c: Update tree_pass descriptors.
775         * fwprop.c: Update tree_pass descriptors.
776         * doc/invoke.texi: Remove documentation of dropped -d? flags.
777         * tree-into-ssa.c: Update tree_pass descriptors.
778         * tree-dump.c: Update tree_pass descriptors.
779         * tree-complex.c: Update tree_pass descriptors.
780         * tree-dump.h: Update tree_pass descriptors.
781         * see.c: Update tree_pass descriptors.
782         * cgraphbuild.c: Update tree_pass descriptors.
783         * tracer.c: Update tree_pass descriptors.
784         * tree-loop-distribution.c: Update tree_pass descriptors.
785         * cgraph.c: Update tree_pass descriptors.
786         * postreload-gcse.c: Update tree_pass descriptors.
787         * postreload.c: Update tree_pass descriptors.
788         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
789         * tree-tailcall.c: Update tree_pass descriptors.
790         * tree-pass.h (tree_opt_pass): Rename to ...
791         (opt_pass) ... this one; add "type" field and remove letter field.
792         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
793         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
794         all_lowering_passes): Update declaration.
795         * ipa-cp.c: Update tree_pass descriptors.
796         * final.c: Update tree_pass descriptors.
797         * omp-low.c: Update tree_pass descriptors.
798         * tree-ssa-dse.c: Update tree_pass descriptors.
799         * ipa-reference.c: Update tree_pass descriptors.
800         * tree-ssa-uncprop.c: Update tree_pass descriptors.
801         * auto-inc-dec.c: Update tree_pass descriptors.
802         * reorg.c: Update tree_pass descriptors.
803         * cgraphunit.c: Update tree_pass descriptors.
804         * tree-ssa-copyrename.c: Update tree_pass descriptors.
805         * tree-ssa-ccp.c: Update tree_pass descriptors.
806         * df-core.c: Update tree_pass descriptors.
807         * mode-switching.c: Update tree_pass descriptors.
808         * tree-nomudflap.c: Update tree_pass descriptors.
809         * modulo-sched.c: Update tree_pass descriptors.
810         * ipa-pure-const.c: Update tree_pass descriptors.
811         * cse.c: Update tree_pass descriptors.
812         * web.c: Update tree_pass descriptors.
813         * tree-stdarg.c: Update tree_pass descriptors.
814         * tree-ssa-math-opts.c: Update tree_pass descriptors.
815         * tree-ssa-dom.c: Update tree_pass descriptors.
816         * tree-nrv.c: Update tree_pass descriptors.
817         * tree-ssa-alias.c: Update tree_pass descriptors.
818         * loop-init.c: Update tree_pass descriptors.
819         * gimple-low.c: Update tree_pass descriptors.
820         * ipa-inline.c: Update tree_pass descriptors.
821         * tree-ssa-sink.c: Update tree_pass descriptors.
822         * global.c: Update tree_pass descriptors.
823         * ifcvt.c: Update tree_pass descriptors.
824         * jump.c: Update tree_pass descriptors.
825         * predict.c: Update tree_pass descriptors.
826         * tree-ssa-loop.c: Update tree_pass descriptors.
827         * recog.c: Update tree_pass descriptors.
828         * dse.c: Update tree_pass descriptors.
829         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
830         * tree-eh.c: Update tree_pass descriptors.
831         * regmove.c: Update tree_pass descriptors.
832         * local-alloc.c
833         * function.c: Update tree_pass descriptors.
834         * tree-vectorizer.c: Update tree_pass descriptors.
835         * gcse.c: Update tree_pass descriptors.
836         * ipa-type-escape.c: Update tree_pass descriptors.
837         * tree-if-conv.c: Update tree_pass descriptors.
838         * init-regs.c: Update tree_pass descriptors.
839         * ipa.c: Update tree_pass descriptors.
840         * tree-ssa-phiopt.c: Update tree_pass descriptors.
841         * rtl-factoring.c: Update tree_pass descriptors.
842         * lower-subreg.c: Update tree_pass descriptors.
843         * bt-load.c: Update tree_pass descriptors.
844         * tree-dfa.c: Update tree_pass descriptors.
845         * except.c: Update tree_pass descriptors.
846         * emit-rtl.c: Update tree_pass descriptors.
847         * cfgexpand.c: Update tree_pass descriptors.
848         * tree-cfgcleanup.c: Update tree_pass descriptors.
849         * cfgcleanup.c: Update tree_pass descriptors.
850         * tree-ssa-pre.c: Update tree_pass descriptors.
851         * tree-sra.c: Update tree_pass descriptors.
852         * tree-mudflap.c: Update tree_pass descriptors.
853         * tree-ssa-copy.c: Update tree_pass descriptors.
854         * cfglayout.c: Update tree_pass descriptors.
855         * tree-ssa-forwprop.c: Update tree_pass descriptors.
856         * tree-ssa-dce.c: Update tree_pass descriptors.
857         * tree-ssa.c: Update tree_pass descriptors.
858         * regclass.c: Update tree_pass descriptors.
859         * integrate.c: Update tree_pass descriptors.
860         * tree-optimize.c: Update tree_pass descriptors.
861         * tree-ssa-phiprop.c: Update tree_pass descriptors.
862         * tree-object-size.c: Update tree_pass descriptors.
863         * combine.c: Update tree_pass descriptors.
864         * tree-outof-ssa.c: Update tree_pass descriptors.
865         * bb-reorder.c: Update tree_pass descriptors.
866         * stack-ptr-mod.c: Update tree_pass descriptors.
867         * var-tracking.c: Update tree_pass descriptors.
868         * tree-profile.c: Update tree_pass descriptors.
869         * tree-vect-generic.c: Update tree_pass descriptors.
870         * reg-stack.c: Update tree_pass descriptors.
871         * sched-rgn.c: Update tree_pass descriptors.
872         * tree-ssa-structalias.c: Update tree_pass descriptors.
873         * tree-cfg.c: Update tree_pass descriptors.
874         * passes.c (current_pass): Update declaration.
875         (finish_optimization_passes): Update.
876         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
877         (register_one_dump_file, register_dump_files_1, next_pass_1):
878         Update arguments.
879         (init_optimization_passes): Update handling of new types.
880         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
881         * ipa-struct-reorg.c: Update tree_pass descriptors.
882         * tree-ssa-reassoc.c: Update tree_pass descriptors.
883         * combine-stack-adj.c: Update tree_pass descriptors.
884         * cfgrtl.c: Update tree_pass descriptors.
885         * dce.c: Update tree_pass descriptors.
886         * tree-ssanames.c: Update tree_pass descriptors.
887
888 2008-03-19  Richard Guenther  <rguenther@suse.de>
889
890         PR middle-end/35609
891         * tree-ssa.c (walk_data): New structure.
892         (warn_uninitialized_var): If not always_executed warn with "maybe"
893         instead of "is".
894         (execute_early_warn_uninitialized): Compute post-dominators.
895         Initialize always_executed before processing each basic block.
896
897 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
898
899         PR target/35504
900         * config/i386/i386.c (x86_this_parameter): Calculate correct location
901         of "this" pointer when "regparm = N" or "fastcall" is in effect.
902
903 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
904
905         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
906
907 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
908
909         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
910         is true.
911         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
912         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
913         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
914         target after ignore has been set, and move there also the commputation
915         of subtarget and original_target.
916         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
917         (LANG_HOOKS_INITIALIZER): Remove it.
918         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
919
920 2008-03-18  Richard Guenther  <rguenther@suse.de>
921
922         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
923         found an expression with constants, note that in the VN for the lhs.
924         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
925         fold them to constants if possible.  Run cleanup_cfg if done so.
926         (execute_pre): Return todo.
927         (do_pre): Likewise.
928         (execute_fre): Likewise.
929         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
930         of constants.
931         (get_prop_source_stmt): Look through pointer conversions.
932
933 2008-03-18  Jan Hubicka  <jh@suse.cz>
934
935         * tree-pretty-print.c: Include predict.h.
936         (dump_generic_node): Dump predictor.
937         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
938         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
939         * gimple-low.c (lower_stmt): Likewise.
940         * expr.c (expand_expr_real): Likewise.
941         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
942         them.
943         (build_predict_expr, build_predict_expr): New.
944         * predict.h (predictor_name, build_predict_expr): Update.
945         * c-typeck.c (c_finish_bc_stmt): Add prediction.
946         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
947         * predict.def (PRED_CONTINUE): Update hitrate.
948         * tree.def (PREDICT_EXPR): Define.
949         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
950         do not handle BIND_EXPR.
951         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
952         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
953         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
954         operands.
955
956 2008-03-18  Michael Matz  <matz@suse.de>
957
958         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
959
960 2008-03-18  Richard Guenther  <rguenther@suse.de>
961
962         * tree-gimple.h (is_gimple_invariant_address): Declare.
963         (is_gimple_constant): Likewise.
964         * tree-gimple.c (is_gimple_constant): New function.
965         (is_gimple_invariant_address): Likewise.
966         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
967         and is_gimple_invariant_address.
968         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
969         previous change.
970         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
971         an addressable base.
972
973 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
974
975         PR middle-end/35611
976         * gimplify.c (gimplify_expr): Gimplify second operand of
977         OMP_ATOMIC_LOAD.
978
979 2008-03-17  Richard Guenther  <rguenther@suse.de>
980
981         PR tree-optimization/19637
982         * fold-const.c (fold_unary): Remove restrictions of removing
983         intermediate pointer-conversions (P2)(P1)P0.
984         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
985         conversion to void pointer.
986         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
987
988 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
989
990         PR debug/31510
991         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
992         emulated thread local variables.
993
994 2008-03-16  Richard Guenther  <rguenther@suse.de>
995
996         PR middle-end/35607
997         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
998         expand TREE_INVARIANT operations that are not gimple invariant.
999
1000 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
1001
1002         * doc/extend.texi (Alignment): Say that the ABI controls
1003         the __alignof__ for non-strict-alignment targets rather
1004         than being a recommendation.
1005
1006 2008-03-15  Paul Brook  <paul@codesourcery.com>
1007
1008         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
1009         annotations.
1010         (arm_output_fn_unwind): Mark functions that can not be unwound.
1011
1012 2008-03-15  Paul Brook  <paul@codesourcery.com>
1013
1014         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
1015         extension instructions.
1016
1017 2008-03-15  Richard Guenther  <rguenther@suse.de>
1018
1019         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
1020         and fold constant aggregate refs.
1021         (fold_const_aggregate_ref): Handle string constants
1022         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
1023         (evaluate_stmt): Simplify now that ccp_fold folds constant
1024         aggregate refs.
1025
1026 2008-03-15  Paul Brook  <paul@codesourcery.com>
1027
1028         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
1029         (extzv): Use gen_extzv_t2.
1030         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
1031
1032 2008-03-15  Richard Guenther  <rguenther@suse.de>
1033
1034         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
1035         (fold_const_aggregate_ref): Likewise.
1036         (get_value): Return NULL if we don't have any values.
1037         (ccp_finalize): Set const_val to NULL after freeing it.
1038         * tree-flow.h (get_symbol_constant_value): Declare.
1039         (fold_const_aggregate_ref): Likewise.
1040         * tree-ssa-sccvn.c (try_to_simplify): Use them.
1041
1042 2008-03-15  Richard Guenther  <rguenther@suse.de>
1043
1044         PR middle-end/35593
1045         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
1046         to not produce negative array indices if not allowed.  Add
1047         parameter to indicate that.
1048         (maybe_fold_offset_to_component_ref): Allow negative array
1049         indices only for the first member of a structure.
1050         (maybe_fold_offset_to_reference): Allow negative array indices.
1051         (maybe_fold_stmt_addition): Likewise.
1052
1053 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
1054             Anatoly Sokolov <aesok@post.ru>
1055
1056         * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
1057         (avr_arch): Add ARCH_AVR6.
1058         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
1059         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
1060         instead of fixed value 2.
1061         (print_operand_address): Use gs() asm specifier instead of pm().
1062         (avr_assemble_integer): (Ditto.).
1063         (avr_output_addr_vec_elt): (Ditto.).
1064         (print_operand): Handle "!" code.
1065         * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
1066         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
1067         (AVR_HAVE_EIJMP_EICALL): Define.
1068         (AVR_3_BYTE_PC): Redefine.
1069         (AVR_2_BYTE_PC): (Ditto.).
1070         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
1071         (LINK_SPEC): Add atmega2560 and atmega2561.
1072         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
1073         (crtm2561.o).
1074         * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
1075         for 3 byte PC devices.
1076         (call_value_insn): (Ditto.).
1077         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
1078         (indirect_jump): Use only for for 2 byte PC devices.
1079         (*tablejump): (Ditto.).
1080         (*indirect_jump_avr6): Add insn.
1081         (*tablejump_rjmp): Don't use for 3 byte PC devices.
1082         * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
1083         instead of ijmp for 3 byte PC devices.
1084         (__tablejump2__): (Ditto.).
1085         * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
1086         (MULITLIB_DIRNAMES): (Ditto.). 
1087         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
1088
1089 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
1090
1091         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
1092         "sse2_umulsidi3".  Use V1DI mode for operand 0.
1093         ("mmx_psadbw"): Use V1DI mode for operand 0.
1094         * config/i386/i386-modes.def (V1SI): New vector mode.
1095         * config/i386/i386.c (struct builtin_description)
1096         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
1097         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
1098         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
1099         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
1100         v1di_ftype_v8qi_v8qi type.
1101         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
1102
1103         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
1104         __builtin_ia32_pmuludq]: Fix the mode of return value.
1105
1106 2008-03-15  Richard Guenther  <rguenther@suse.de>
1107
1108         PR middle-end/35595
1109         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
1110         being a PHI_NODE.
1111
1112 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
1113         
1114         * doc/invoke.texi (Option Summary, Xtensa Options): Document
1115         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
1116         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
1117         unless TARGET_SERIALIZE_VOLATILE is enabled.
1118         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
1119         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
1120         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
1121
1122 2008-03-14  Richard Guenther  <rguenther@suse.de>
1123
1124         PR tree-optimization/34172
1125         * tree-flow.h (refs_may_alias_p): Declare.
1126         (get_single_def_stmt): Likewise.
1127         (get_single_def_stmt_from_phi): Likewise.
1128         (get_single_def_stmt_with_phi): Likewise.
1129         * tree-dfa.c (refs_may_alias_p): New function.
1130         (get_single_def_stmt): Likewise.
1131         (get_single_def_stmt_from_phi): Likewise.
1132         (get_single_def_stmt_with_phi): Likewise.
1133         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
1134         (vn_reference_lookup_1): New helper function.
1135         (vn_reference_lookup): Walk the virtual use-def chain to
1136         continue searching for a match if the def does not alias the
1137         reference we are looking for.
1138
1139 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
1140
1141         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
1142         archive and Perzl.  Update The Written Word listing.
1143
1144 2008-03-14  Richard Guenther  <rguenther@suse.de>
1145
1146         PR tree-optimization/34043
1147         PR tree-optimization/33989
1148         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
1149         when doing FRE.
1150         (bitmap_find_leader): Use extra argument to verify dominance
1151         relationship inside a basic-block.
1152         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
1153         (find_leader_in_sets): Adjust.
1154         (create_component_ref_by_pieces): Take extra argument for
1155         dominance check, handle lookup failures.
1156         (find_or_generate_expression): Likewise.
1157         (create_expression_by_pieces): Likewise.
1158         (insert_into_preds_of_block): Adjust.
1159         (create_value_expr_from): If asked for, verify all operands
1160         are in the blocks AVAIL_OUT set.
1161         (make_values_for_stmt): Check for SSA_NAMEs that are life
1162         over an abnormal edge.
1163         (compute_avail): Remove such check.
1164         (do_SCCVN_insertion): New function.
1165         (eliminate): If we do not find a leader suitable for replacement
1166         insert a replacement expression from SCCVN if available.
1167         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
1168         (struct vn_ssa_aux): Add needs_insertion flag.
1169         * tree-ssa-sccvn.c (may_insert): New global flag.
1170         (copy_reference_ops_from_ref): Value-number union member access
1171         based on its size, not type and member if insertion is allowed.
1172         (visit_reference_op_load): For a weak match from union type
1173         punning lookup a view-converted value and insert a SSA_NAME
1174         for that value if that is not found.
1175         (visit_use): Make dumps shorter.  Do not disallow value numbering
1176         SSA_NAMEs that are life over an abnormal edge to constants.
1177         (free_scc_vn): Release inserted SSA_NAMEs.
1178         (run_scc_vn): New flag to specify whether insertion is allowed.
1179         Process SSA_NAMEs in forward order.
1180         * tree-ssa-loop-im.c (for_each_index): Handle invariant
1181         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
1182         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
1183         pointer type to/from integral types that do not change the
1184         precision to regular conversions.
1185
1186 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
1187
1188         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
1189         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
1190         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
1191         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
1192         input arguments and the mode of return value.  Built-in functions
1193         that operate on whole 64-bit MMX register now use V1DI mode.
1194
1195 2008-03-13  Alon Dayan  <alond@il.ibm.com>
1196             Olga Golovanevsky  <olga@il.ibm.com>
1197
1198         PR tree-optimization/35041
1199         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
1200         to locate the right position in a statement.
1201
1202 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
1203
1204         PR target/34000
1205         PR target/35553
1206         * config/i386/xmmintrin.h:  Change all static inline functions to
1207         extern inline and add __gnu_inline__ attribute.
1208         * config/i386/bmintrin.h: Ditto.
1209         * config/i386/smmintrin.h: Ditto.
1210         * config/i386/tmmintrin.h: Ditto.
1211         * config/i386/mmintrin-common.h: Ditto.
1212         * config/i386/ammintrin.h: Ditto.
1213         * config/i386/emmintrin.h: Ditto.
1214         * config/i386/pmmintrin.h: Ditto.
1215         * config/i386/mmintrin.h: Ditto.
1216         * config/i386/mm3dnow.h: Ditto.
1217
1218 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
1219
1220         PR middle-end/35185
1221         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
1222         (lower_omp_2): New function.
1223         (lower_omp_1, lower_omp): Rewritten.
1224
1225 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
1226
1227         PR 35054
1228         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
1229         with the phrase "Microsoft Windows compilers".
1230         (Push/Pop Macro Pragmas): New subsection. Document
1231         #pragma push_macro and pragma pop_macro.
1232
1233 2008-03-12  Paul Brook  <paul@codesourcery.com>
1234
1235         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
1236
1237 2008-03-12  Paul Brook  <paul@codesourcery.com>
1238
1239         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
1240         (thumb2_alusi3_short): Exclude PLUS and MINUS.
1241         (thumb2_addsi_shortim): Rename ...
1242         (thumb2_addsi_short): ... to this.  Allow register operands.
1243         (thumb2_subsi_short): New pattern.
1244         (thumb2_one_cmplsi2_short,
1245         thumb2_negsi2_short): New patterns and peepholes.
1246
1247 2008-03-12  Paul Brook  <paul@codesourcery.com>
1248
1249         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
1250
1251 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
1252
1253         * config/i386/i386.md (int_cond): New code iterator.
1254         (fp_cond): Ditto.
1255         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
1256         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
1257         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
1258         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
1259         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
1260         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
1261         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
1262         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
1263
1264 2008-03-12  Paul Brook  <paul@codesourcery.com>
1265
1266         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
1267         instead of {arm,thumb}_compute_save_reg_mask.
1268         (output_return_instruction): Ditto.
1269         (thumb_unexpanded_epilogue): Ditto.
1270         (thumb1_expand_prologue): Ditto.
1271         (thumb1_output_function_prologue): Ditto.
1272         (arm_set_return_address): Ditto.
1273         (thumb_set_return_address): Ditto.
1274         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
1275         regs to achieve stack alignment.
1276         (thumb1_compute_save_reg_mask): Fix compiler warning.
1277         (arm_output_epilogue): Use offsets->saved_regs_mask.
1278         Adjust stack pointer by poping call clobered registers.
1279         (arm_expand_prologue): Use offsets->saved_regs_mask.
1280         Adjust stack pointer by pushing extra registers.
1281         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
1282
1283 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
1284
1285         PR tree-opt/35422
1286         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
1287         conversion to the operands of a multiplication.
1288
1289 2008-03-12  Richard Guenther  <rguenther@suse.de>
1290
1291         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
1292         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
1293         * timevar.def (TV_TREE_PHIPROP): Add.
1294         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
1295         pass description.  Use TV_TREE_PHIPROP.
1296         * tree-ssa-forwprop.c: Remove phiprop code.
1297
1298 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1299
1300         PR middle-end/35549
1301         * omp-low.c (maybe_lookup_decl): Constify first argument.
1302         (use_pointer_for_field): Change last argument from bool to
1303         omp_context *.  Disallow shared copy-in/out in nested
1304         parallel if decl is shared in outer parallel too.
1305         (build_outer_var_ref, scan_sharing_clauses,
1306         lower_rec_input_clauses, lower_copyprivate_clauses,
1307         lower_send_clauses, lower_send_shared_vars): Adjust callers.
1308
1309 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
1310             Ira Rosen  <irar@il.ibm.com>
1311
1312         * tree-vectorizer.c (free_stmt_vec_info): New function.
1313         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
1314         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
1315         * tree-vectorizer.h (free_stmt_vec_info): Declare.
1316         * tree-vect-transform.c (vectorizable_conversion): Free
1317         vec_oprnds0 if it was allocated.
1318         (vect_permute_store_chain): Remove unused VECs.
1319         (vectorizable_store): Free VECs that are allocated in the..
1320         function.
1321         (vect_transform_strided_load, vectorizable_load): Likewise.
1322         (vect_remove_stores): Simplify the code.
1323         (vect_transform_loop): Move code to vect_remove_stores().
1324         Call vect_remove_stores() and free_stmt_vec_info().
1325
1326 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1327
1328         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
1329         TARGET_HPUX.  Revise comment.
1330         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
1331         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
1332         Use sr4 variant of `be' instruction when not generating PIC code.
1333         (attr_length_call): Adjust for above change.
1334
1335 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1336
1337         * ipa-reference.c (static_execute): Remove module_statics_const and
1338         associated setting code.
1339
1340 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1341
1342         PR target/35540
1343         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1344         predicate for operand 1.
1345         (paritysi2_cmp): Use register_operand predicate for operand 2.
1346         Use earlyclobber modifier for operand 1.  Remove support for
1347         memory operands.
1348         (paritydi2_cmp): Use register_operand predicate for operand 3.
1349         Use earlyclobber modifier for operand 1.  Remove support for
1350         memory operands.
1351
1352 2008-03-11  Paul Brook  <paul@codesourcery.com>
1353             Vladimir Prus  <vladimir@codesourcery.com>
1354
1355         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
1356         (arm_compute_save_reg0_reg12_mask): Always
1357         check if register 11 must be saved.  Always safe hard frame pointer
1358         when frame_pointer_needeed.
1359         (arm_compute_save_reg_mask): Save IP and PC
1360         only with apcs frames.
1361         (arm_output_epilogue): Adjust Thumb2 codepath to
1362         be also invoked and work for ARM non-apcs frames.
1363         (arm_expand_prologue): Don't bother saving IP
1364         for non-apcs frame, since it's not clobbered by
1365         prologue code.  Implement non-apcs frame
1366         layout.
1367
1368 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1369
1370         PR rtl-optimization/35281
1371         * expr.c (convert_move): Use a new pseudo for the intermediate
1372         from_mode->word_mode result.
1373
1374 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1375
1376         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
1377         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
1378         * toplev.c (compile_file): Don't call it.
1379
1380 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1381
1382         PR middle-end/35526
1383         * expr.c (store_expr): Call emit_block_move if the mode
1384         of "temp" RTX is BLKmode.
1385
1386 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1387             Richard Guenther  <rguenther@suse.de>
1388
1389         PR tree-optimization/31358
1390         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
1391         the step with a NULL_TREE.
1392         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
1393         to sizetype if type is a pointer type.
1394         (add_candidate_1): Don't convert the base and step to
1395         the generic type if the orginal type is a pointer type.
1396         (add_iv_value_candidates): Use sizetype for the step
1397         if type is a pointer type.
1398         (cand_value_at): Likewise.
1399         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1400         for pointer types.
1401         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
1402         Don't convert the tem affine to the type.
1403         (add_elt_to_tree): Use sizetype for the step if a pointer.
1404         Use POINTER_PLUS_EXPR for pointers.
1405         (aff_combination_to_tree): Use sizetype for the step if a
1406         pointer.
1407
1408 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
1409
1410         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
1411         Remove commutativity hint.
1412
1413 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
1414
1415         PR c/35438
1416         PR c/35439
1417         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
1418         errorneous type.  Check that v is a VAR_DECL.
1419
1420         PR middle-end/35099
1421         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
1422
1423 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
1424
1425         PR tree-optimization/35494
1426         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
1427         may be overriden at link and run time.
1428
1429 2008-03-10  Richard Guenther  <rguenther@suse.de>
1430
1431         PR tree-optimization/34677
1432         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
1433         (poolify_tree): Likewise.
1434         (modify_expr_template): Likewise.
1435         (poolify_modify_stmt): Likewise.
1436         (insert_fake_stores): Handle all component-ref style stores
1437         in addition to INDIRECT_REF.  Also handle complex types.
1438         Do not poolify the inserted load.
1439         (realify_fake_stores): Do not rebuild the tree but only
1440         make it a SSA_NAME copy.
1441         (init_pre): Remove initialzation of modify_expr_template.
1442         Do not allocate modify_expr_node_pool.
1443         (fini_pre): Do not free modify_expr_node_pool.
1444
1445 2008-03-10  Paul Brook  <paul@codesourcery.com>
1446
1447         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
1448         to avoid conflicts.
1449
1450 2008-03-10  Paul Brook  <paul@codesourcery.com>
1451             Mark Shinwell  <shinwell@codesourcery.com>
1452
1453         * config/arm/cortex-r4.md: New.
1454         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
1455         insn attributes.
1456         * config/arm/arm.md: Include cortex-r4.md.
1457         (insn): Add smmls, sdiv and udiv values.
1458         (generic_sched): Don't use generic scheduling for Cortex-R4.
1459         (arm_issue_rate): New function.
1460         (TARGET_SCHED_ISSUE_RATE): Define.
1461
1462 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
1463
1464         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
1465
1466 2008-03-10  Richard Guenther  <rguenther@suse.de>
1467
1468         * tree-ssa-pre.c (get_sccvn_value): Simplify.
1469         (compute_avail): Do not add stmt uses to AVAIL_OUT.
1470
1471 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
1472
1473         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
1474         Set default to true.
1475
1476 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1477
1478         * c.opt (Wsynth): Deprecate.
1479         * doc/invoke.texi (Option Summary, Warning Options): Document
1480         -Wno-format-contains-nul.
1481
1482 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
1483
1484         PR target/35496
1485         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
1486         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
1487
1488 2008-03-09  Ira Rosen  <irar@il.ibm.com>
1489
1490         * config/rs6000/rs6000.c (builtin_description): Rename vector
1491         left shift operations.
1492         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
1493         (altivec_vsl<VI_char>): Rename to ...
1494         (ashl<mode>3): ... new name.
1495         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
1496         gen_ashlv4si3.
1497         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
1498
1499 2008-03-08  Richard Guenther  <rguenther@suse.de>
1500
1501         * coverage.h (tree_coverage_counter_addr): Declare.
1502         * coverage.c (tree_coverage_counter_addr): New function.
1503         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
1504         before using again.
1505         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
1506         (tree_gen_one_value_profiler): Likewise.
1507         (tree_gen_ic_profiler): Likewise.
1508         (tree_gen_average_profiler): Likewise.
1509         (tree_gen_ior_profiler): Likewise.
1510
1511 2008-03-08  Richard Guenther  <rguenther@suse.de>
1512
1513         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
1514         (vn_binary_op_insert): Likewise.
1515         (vn_unary_op_lookup): Likewise.
1516         (vn_unary_op_insert): Likewise.
1517         (vn_nary_op_lookup): Declare.
1518         (vn_nary_op_insert): Likewise.
1519         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
1520         and binary hashes, use a single obstack for unary_op_pool
1521         and binary_op_pool.
1522         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
1523         a single struct vn_nary_op_s.  Store tree code length and
1524         a variable number of operands.
1525         (struct vn_reference_op_struct): Remove unused op2.
1526         (vn_reference_op_eq): Do not compare op2.
1527         (vn_reference_op_compute_hash): Do not compute hash of op2.
1528         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
1529         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
1530         with vn_nary_op_compute_hash.
1531         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
1532         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
1533         vn_nary_op_lookup.
1534         (vn_unary_op_insert, vn_binary_op_insert): Replace with
1535         vn_nary_op_insert.
1536         (visit_unary_op): Call nary functions.
1537         (visit_binary_op): Likewise.
1538         (process_scc): Adjust for struct vn_tables_s changes.
1539         (allocate_vn_table): Likewise.
1540         (free_vn_table): Likewise.
1541         * tree-vn.c (vn_add): Call nary functions.
1542         (vn_lookup): Likewise.
1543
1544 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
1545
1546         PR target/35498
1547         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
1548         wdst back after sync_compare_and_swapqhi_internal.
1549
1550 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
1551
1552         PR target/22152
1553         * config/i386/i386-modes.def (V1DI): New vector mode.
1554         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
1555         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
1556         (MMXMODE248): Ditto.
1557         (MMXMODE): Add V1DI mode.
1558         (mmxvecsize): Change DI mode to V1DI mode.
1559         ("mov<mode>): Use MMXMODEI8 mode iterator.
1560         ("*mov<mode>_internal_rex64"): Ditto.
1561         ("*mov<mode>_internal"): Ditto.
1562         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
1563         ("mmx_sub<mode>3"): Ditto.
1564         ("mmx_adddi3"): Remove insn pattern.
1565         ("mmx_subdi3"): Ditto.
1566         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
1567         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
1568         ("mmx_ashl<mode>3"): Ditto.
1569         ("mmx_lshrdi3"): Remove insn pattern.
1570         ("mmx_ashldi3"): Ditto.
1571         * config/i386/i386.c (classify_argument): Handle V1DImode.
1572         (function_arg_advance_32): Ditto.
1573         (function_arg_32): Ditto.
1574         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
1575         mmx_addv1di3 insn pattern.
1576         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
1577         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
1578         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
1579         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
1580         Remove definitions of built-in functions.
1581         (V1DI_type_node): New node.
1582         (v1di_ftype_v1di_int): Ditto.
1583         (v1di_ftype_v1di_v1di): Ditto.
1584         (v2si_ftype_v2si_si): Ditto.
1585         (v4hi_ftype_v4hi_di): Remove node.
1586         (v2si_ftype_v2si_di): Ditto.
1587         (ix86_init_mmx_sse_builtins): Handle V1DImode.
1588         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
1589         Redefine builtins using def_builtin_const with *_ftype_*_int node.
1590         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
1591         Add new builtins using def_builtin_const.
1592         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
1593         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
1594         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
1595         * config/i386/mmintrin.h (__v1di): New typedef.
1596         (_mm_add_si64): Cast arguments to __v1di type.
1597         (_mm_sub_si64): Ditto.
1598         (_mm_sll_pi16): Cast __count to __v4hi type.
1599         (_mm_sll_pi32): Cast __count to __v2si type.
1600         (_mm_sll_si64): Cast arguments to __v1di type.
1601         (_mm_srl_pi16): Cast __count to __v4hi type.
1602         (_mm_srl_pi32): Cast __count to __v2si type.
1603         (_mm_srl_si64): Cast arguments to __v1di type.
1604         (_mm_sra_pi16): Cast __count to __v4hi type.
1605         (_mm_sra_pi32): Cast __count to __v2si type.
1606         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
1607         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
1608         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
1609         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
1610         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
1611         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
1612         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
1613         (_mm_srai_pi32): Use __builtin_ia32_psradi.
1614         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
1615         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
1616         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
1617         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
1618
1619 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
1620
1621         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
1622
1623 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
1624
1625         PR target/35373
1626         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
1627         reg+const addressing for Altivec modes.  Don't generate reg+reg
1628         addressing for TFmode or TDmode quantities.
1629
1630 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
1631
1632         * c-common.c (vector_types_convertible_p): Call langhook
1633         instead of comptypes.
1634
1635 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1636
1637         PR tree-opt/35402
1638         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
1639         integral and scalar float variables which have a
1640         NULL DECL_INITIAL.
1641
1642 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
1643
1644         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
1645         dwarf_register_span hook when emitting unwind information for
1646         register-to-memory saves.
1647         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
1648         (rs6000_frame_related): Remove call to spe_synthesize_frame.
1649
1650 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
1651
1652         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
1653         for the same VAR_DECL.
1654
1655 2008-03-06  Tom Tromey  <tromey@redhat.com>
1656
1657         * treelang: Delete.
1658         * doc/standards.texi (Standards): Don't mention treelang.
1659         * doc/invoke.texi (Overall Options): Don't mention treelang.
1660         * doc/install.texi (Prerequisites): Don't mention bison or
1661         treelang.
1662         (Configuration): Don't mention treelang.
1663         (Building): Likewise.
1664         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
1665
1666 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
1667
1668         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
1669         word-extractions out of a multi-word object.
1670
1671 2008-03-06  Richard Guenther  <rguenther@suse.de>
1672
1673         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
1674         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
1675         result type and precision.
1676         * expr.c (get_inner_reference): Set unsignedp based on the result
1677         type of BIT_FIELD_REF.
1678         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
1679         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
1680         (try_instantiate_multiple_fields): Likewise.  Use the correct type
1681         for BIT_FIELD_REF.
1682         (sra_build_assignment): Likewise.
1683         (sra_build_elt_assignment): Likewise.
1684         (sra_explode_bitfield_assignment): Likewise.
1685         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
1686         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
1687         set BIT_FIELD_REF_UNSIGNED.
1688         (vectorizable_load): Likewise.
1689
1690 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1691
1692         * cse.c (cse_extended_basic_block): Invalidate artificial defs
1693         at bb start.
1694
1695 2008-03-06  Richard Guenther  <rguenther@suse.de>
1696
1697         * alias.c (struct alias_set_entry): Move has_zero_child field
1698         to pack with alias_set.
1699
1700 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
1701
1702         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
1703         32bit host.
1704
1705 2008-03-05  Ian Lance Taylor  <iant@google.com>
1706
1707         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
1708
1709 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1710
1711         * fwprop.c (update_df): Support width and offset parameters of
1712         df_ref_create.
1713         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
1714         global_conflicts): Change DF_REF_EXTRACT to either
1715         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1716         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1717         * df-scan.c (df_ref_record, df_defs_record,
1718         df_ref_create_structure, df_def_record_1, df_uses_record,
1719         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
1720         df_bb_refs_collect, df_entry_block_defs_collect,
1721         df_exit_block_uses_collect): Support new width and offset fields.
1722         (ref_extract_pool): New storage pool.
1723         (df_free_ref): New function.
1724         (df_reg_chain_unlink, df_free_collection_rec,
1725         df_sort_and_compress_refs): Call df_free_ref.
1726         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
1727         of df_ref_extract.
1728         (df_ref_create_structure): Allocate df_ref_extract if offset and
1729         width fields are used.
1730         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
1731         (df_uses_record): Get offset and width from ZERO_EXTRACT 
1732         and SIGN_EXTRACT.
1733         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
1734         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1735         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1736         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
1737         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1738         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1739         (df_ref_extract): New structure.
1740         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
1741         (df_ref_create): Add width and offset parameters.
1742         
1743 2008-03-05  Richard Guenther  <rguenther@suse.de>
1744
1745         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1746         Use ranges_overlap_p.
1747         (offset_overlaps_with_access): Rename
1748         to ranges_overlap_p and move ...
1749         * tree-flow-inline.h (ranges_overlap_p): ... here.
1750
1751         * tree.h (get_inner_reference, handled_component_p): Update
1752         comments.
1753
1754         * tree.h (record_component_aliases, get_alias_set,
1755         alias_sets_conflict_p, alias_sets_must_conflict_p,
1756         objects_must_conflict_p): Move declarations ...
1757         * alias.h (record_component_aliases, get_alias_set,
1758         alias_sets_conflict_p, alias_sets_must_conflict_p,
1759         objects_must_conflict_p): ... here.
1760         Include coretypes.h.
1761         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
1762
1763 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
1764
1765         * cfg.c: Include tree-flow.h.
1766         (remove_edge_raw): Call redirect_edge_var_map_clear.
1767         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
1768         * tree-flow-inline.h (redirect_edge_var_map_def): New.
1769         (redirect_edge_var_map_result): New.
1770         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
1771         PENDING_STMT use with redirect_edge_var_map_*.
1772         * tree-ssa.c (edge_var_maps): New definition.
1773         (redirect_edge_var_map_add): New.
1774         (redirect_edge_var_map_clear): New.
1775         (redirect_edge_var_map_dup): New.
1776         (redirect_edge_var_map_vector): New.
1777         (redirect_edge_var_map_destroy): New.
1778         (ssa_redirect_edge): Replace PENDING_STMT use with
1779         redirect_edge_var_map_*.
1780         (flush_pending_stmts): Same.
1781         (delete_tree_ssa): Destroy edge var map.
1782         * tree-flow.h (struct _edge_var_map): New.
1783         Define edge_var_map vector type.
1784         Declare redirect_edge_var_map_* prototypes.
1785         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
1786         * tree-cfg.c (reinstall_phi_args): Replace
1787         PENDING_STMT use with redirect_edge_var_map_*.
1788
1789 2008-03-05  Richard Guenther  <rguenther@suse.de>
1790
1791         PR tree-optimization/35472
1792         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
1793         whose single use_stmt has a overlapping set of loaded and
1794         stored symbols as that use_stmt might be a noop assignment then.
1795
1796 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
1797
1798         * gthr-rtems.h: Implement __gthread_mutex_destroy.
1799
1800 2008-03-05  Richard Guenther  <rguenther@suse.de>
1801
1802         PR c++/35336
1803         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
1804         should be constants.
1805         * tree-cfg.c (verify_expr): Verify it.
1806         * fold-const.c (fold_truthop): Remove code generating
1807         BIT_FIELD_REFs of structure bases.
1808         (fold_binary): Likewise.
1809         (fold_ternary): Position and size of BIT_FIELD_REFs are
1810         always host integers.
1811         (make_bit_field_ref): Remove.
1812         (optimize_bit_field_compare): Remove.
1813         (all_ones_mask_p): Remove.
1814
1815 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
1816
1817         PR gcc/33009
1818         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
1819         (split_block_and_df_analyze): New. Split basic block and rebuild
1820         dataflow.
1821         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
1822         SPLIT_BLOCK.
1823         (split_pattern_seq): Likewise.
1824         (erase_matching_seqs): Likewise.
1825         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
1826
1827 2008-03-04  Geoff Keating  <geoffk@apple.com>
1828
1829         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
1830         declaration and code.
1831         (tree_invalid_nonnegative_warnv_p): Likewise.
1832
1833 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
1834
1835         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
1836         examples.  Truncate option-names then causing overfull hbox.
1837
1838 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1839
1840         PR target/35222
1841         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
1842         on hpux10.
1843         * configure: Rebuilt.
1844
1845 2008-03-04  Rafael Espindola  <espindola@google.com>
1846
1847         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
1848         (tree_unary_nonnegative_warnv_p): New.
1849         (tree_binary_nonnegative_warnv_p): New.
1850         (tree_single_nonnegative_warnv_p): New.
1851         (tree_invalid_nonnegative_warnv_p): New.
1852         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
1853
1854 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1855
1856         PR 28322
1857         * opts.c (handle_option): Postpone 'unknown option' errors only for
1858         warning options.
1859
1860 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1861
1862         PR target/35453
1863         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
1864         (_SIDD_XXX): This.
1865
1866 2008-03-04  Rafael Espindola  <espindola@google.com>
1867
1868         * fold-const.c (tree_unary_nonzero_warnv_p): New.
1869         (tree_binary_nonzero_warnv_p): New.
1870         (tree_single_nonzero_warnv_p): New.
1871         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
1872
1873 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
1874
1875         PR middle-end/35456
1876         * fold-const.c (fold_cond_expr_with_comparison): Prevent
1877         transformations for modes that have signed zeros.
1878         * ifcvt.c (noce_try_abs): Ditto.
1879
1880 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
1881
1882         * config/i386/i386.c (override_options): Force
1883         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
1884
1885 2008-03-04  Jan Hubicka  <jh@suse.cz>
1886
1887         PR c++/35262
1888         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
1889         in last commit.
1890
1891 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
1892
1893         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
1894         label to probe the stack.
1895
1896 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
1897
1898         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
1899         (__gthr_win32_mutex_destroy): Declare.
1900         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
1901         __gthr_win32_mutex_destroy.
1902         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
1903
1904 2008-03-03  Jan Hubicka  <jh@suse.cz>
1905
1906         PR c++/35262
1907         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
1908         aggressive on inlining cold calls.
1909
1910 2008-03-03  Richard Guenther  <rguenther@suse.de>
1911
1912         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
1913         struct copies into the expression table.
1914         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
1915         (try_to_simplify): Likewise.
1916         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
1917         integral and pointer arguments which do not change the
1918         precision to NOP_EXPRs.
1919         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
1920         VIEW_CONVERT_EXPR case.
1921
1922 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
1923
1924         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
1925         defined in a loop at depth 0 is invariant.
1926         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1927         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
1928         be called at loop depth 0.
1929
1930 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
1931
1932         PR driver/35420
1933         * gcc.c (process_command): Update copyright notice dates.
1934         * gcov.c (print_version): Likewise.
1935         * gcov-dump.c (print_version): Likewise.
1936         * mips-tfile.c (main): Likewise.
1937         * mips-tdump.c (main): Likewise.
1938
1939 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1940
1941         PR 24924
1942         * c-common.c (flag_permissive): Delete.
1943         (constant_expression_warnings): Check flags first.
1944         (constant_expression_error): New.
1945         * c-common.h (flag_permissive): Delete.
1946         (constant_expression_error): Declare.
1947         * flags.h (flag_permissive): Declare. Update description.
1948         * diagnostic.c (pedwarn): Update.
1949         (permerror): New.
1950         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
1951         (permissive_error_kind): New.
1952         * toplev.c (flag_permissive): Define. Update description.
1953         * toplev.h (permissive_error_kind): Declare.
1954         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
1955         (pedwarn_c90): Use pedantic_warning_kind.
1956         * c-opts.c (c_common_post_options): flag_permissive does not affect
1957         flag_pedantic_errors.
1958
1959 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
1960
1961         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
1962         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
1963         __absvsi2, __absvDI2): Use unsigned arithmetic.
1964
1965 2008-03-02  Andi Kleen  <ak@suse.de>
1966             Richard Guenther  <rguenther@suse.de>
1967
1968         * struct-equiv.c: Remove file.
1969         * cfg_cleanup.c (condjump_equiv_p): Remove.
1970         * Makefile.in (OBJS-common): Remove struct-equiv.o.
1971         (struct-equiv.o): Remove rule.
1972         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
1973         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
1974         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
1975
1976 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
1977
1978         * ifcvt.c (noce_process_if_block): Try to handle only the then
1979         block if the else block exists but isn't suitable.
1980
1981 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1982
1983         PR gcc/35063
1984         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
1985         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
1986         regression from previous patch.
1987
1988 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1989
1990         PR gcc/35063
1991         * gthr.h: Add __gthread_mutex_destroy as a function that must be
1992         implemented.
1993         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
1994         * gthr-single.h (__gthread_mutex_destroy): Likewise.
1995         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
1996         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
1997         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
1998         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
1999         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
2000         (__gthread_mutex_destroy_function): Rename to
2001         __gthread_mutex_destroy.
2002         * gthr-dce.h (__gthread_mutex_destroy): Call
2003         pthread_mutex_destroy.
2004         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
2005         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
2006         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
2007
2008 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2009
2010         * df-scan.c (df_ref_chain_change_bb): Simplify.
2011         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
2012         set_block_for_insn if there's any change.
2013         * df.h ((df_insn_change_bb): Fix prototype.
2014         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
2015         df_insn_change_bb, don't call set_block_for_insn.
2016         * emit-rtl.c (reorder_insns): Likewise.
2017         * haifa-sched.c (move_insn): Likewise.
2018
2019 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2020
2021         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
2022
2023 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
2024
2025         * tree-flow-inline.h (next_readonly_imm_use): Return
2026         NULL_USE_OPERAND_P after the end.
2027
2028 2008-03-01  Richard Guenther  <rguenther@suse.de>
2029
2030         PR tree-optimization/35411
2031         * tree-sra.c (sra_build_assignment): Split conversion to
2032         final type to a separate statement if we are not assigning
2033         to a register.
2034
2035 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2036
2037         * fold-const.c (fold_convertible_p): Correct the logic to follow
2038         that in fold_convert().
2039
2040 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
2041
2042         PR c++/35315
2043         * tree-inline.c (build_duplicate_type): When we make a
2044         duplicate type, make it unique in the canonical types system.
2045
2046 2008-02-29  Tom Tromey  <tromey@redhat.com>
2047
2048         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
2049         input_file_stack_history, input_file_stack_restored): Remove.
2050         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
2051         * input.h (struct file_stack): Remove.
2052         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
2053         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
2054         Likewise.
2055         * diagnostic.h (struct diagnostic_context) <last_module>: Change
2056         type.
2057         (diagnostic_last_module_changed): Add 'map' argument.
2058         (diagnostic_set_last_function): Likewise.
2059         * diagnostic.c (undiagnostic_report_current_module): Iterate using
2060         line map, not input_file_stack.
2061         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
2062
2063 2008-02-29  Paul Brook  <paul@codesourcery.com>
2064
2065         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
2066
2067 2008-02-29  Paul Brook  <paul@codesourcery.com>
2068
2069         * config/arm/ieee754-df.S (muldf3): Use RET macros.
2070
2071 2008-02-29  Richard Guenther  <rguenther@suse.de>
2072
2073         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
2074         vn_lookup_or_add.
2075         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
2076         value for comparing for a store match.
2077         (simplify_unary_expression): Do nothing for SSA_NAMEs.
2078         (try_to_simplify): Do not do a full-blown reference lookup.
2079
2080 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2081
2082         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
2083         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
2084
2085         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
2086
2087 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
2088
2089         * tree-loop-linear.c (try_interchange_loops): Compare memory access
2090         strides against cache sizes.
2091
2092 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2093
2094         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
2095         constant to fpul.
2096
2097 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
2098
2099         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
2100         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
2101         is smaller than the original promoted value.
2102         (simplify_subreg): If OP is a SUBREG, try to preserve its
2103         SUBREG_PROMOTED_VAR_P information.
2104
2105 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
2106
2107         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
2108         (VN_INFO_GET): Allocate new objects on the obstack.
2109         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
2110         for rpo_numbers_temp, for consistency.
2111         (free_scc_vn): Free the obstack.
2112
2113 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
2114
2115         * doc/invoke.texi: Document -ftree-loop-distribution.
2116         * tree-loop-distribution.c: New.
2117         * tree-pass.h (pass_loop_distribution): New.
2118         * graphds.h (struct graph): Add htab_t indices.
2119         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
2120         * tree-vectorizer.c (rename_variables_in_loop): Extern.
2121         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
2122         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
2123         * tree-data-ref.c (debug_data_dependence_relations): New.
2124         (dump_data_dependence_relation): Also print data references.
2125         (free_data_ref): Extern.
2126         (same_access_functions): Moved...
2127         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
2128         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
2129         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
2130         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
2131         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
2132         (stmts_from_loop): Skip LABEL_EXPR.
2133         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
2134         New.
2135         (build_rdg): Initialize rdg->indices htab.
2136         (free_rdg, stores_from_loop, ref_base_address,
2137         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
2138         have_similar_memory_accesses_1, ref_base_address_1,
2139         remove_similar_memory_refs): New.
2140         * tree-data-ref.h: Depend on tree-chrec.h.
2141         (debug_data_dependence_relations, free_data_ref): Declared.
2142         (same_access_functions): ... here.
2143         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
2144         New.
2145         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
2146         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
2147         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
2148         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
2149         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
2150         rdg_vertex_for_stmt): Declared.
2151         (struct rdg_edge): Add level.
2152         (RDGE_LEVEL): New.
2153         (free_rdg, stores_from_loop, remove_similar_memory_refs,
2154         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
2155         Declared.
2156         (rdg_has_similar_memory_accesses): New.
2157         * tree-vect-analyze.c: Remove unused static decls.
2158         * lambda.h (dependence_level): New.
2159         * common.opt (ftree-loop-distribution): New.
2160         * tree-flow.h (mark_virtual_ops_in_bb, 
2161         slpeel_tree_duplicate_loop_to_edge_cfg,
2162         rename_variables_in_loop): Declared.
2163         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
2164         (OBJS-common): Add tree-loop-distribution.o.
2165         (tree-loop-distribution.o): New rule.
2166         * tree-cfg.c (mark_virtual_ops_in_bb): New.
2167         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
2168         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
2169
2170 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
2171
2172         PR target/33963
2173         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
2174         other than structures and unions.
2175
2176 2008-02-28  Richard Guenther  <rguenther@suse.de>
2177
2178         Revert:
2179         2008-02-26  Richard Guenther  <rguenther@suse.de>
2180
2181         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2182         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2183         (lookup_decl_from_uid): Declare.
2184         (remove_decl_from_map): Likewise.
2185         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2186         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2187         (decl_for_uid_map): New global hashtable mapping DECL_UID
2188         to the decl tree.
2189         (init_ttree): Allocate it.
2190         (insert_decl_to_uid_decl_map): New helper function.
2191         (make_node_stat): Insert new decls into the map.
2192         (copy_node_stat): Likewise.
2193         (lookup_decl_from_uid): New function.
2194         (remove_decl_from_map): Likewise.
2195         (print_decl_for_uid_map_statistics): New helper.
2196         (dump_tree_statistics): Call it.
2197
2198         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2199         (referenced_var_iterator): Adjust.
2200         (FOR_EACH_REFERENCED_VAR): Adjust.
2201         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2202         (num_referenced_vars): Adjust.
2203         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2204         (first_referenced_var): Remove.
2205         (end_referenced_vars_p): Likewise.
2206         (next_referenced_var): Likewise.
2207         (referenced_var_iterator_set): New helper function.
2208         * tree-dfa.c (referenced_var_lookup): Adjust.
2209         (referenced_var_check_and_insert): Likewise.
2210         (remove_referenced_var): Likewise.
2211         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2212         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2213         (verify_call_clobbering): Likewise.
2214         (verify_memory_partitions): Likewise.
2215         (init_tree_ssa): Allocate bitmap instead of hashtable for
2216         referenced_vars.
2217         (delete_tree_ssa): Adjust.
2218         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2219         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2220         (compute_tag_properties): Likewise.
2221         (set_initial_properties): Likewise.
2222         (find_partition_for): Likewise.
2223         (update_reference_counts): Likewise.
2224         (dump_may_aliases_for): Likewise.
2225         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2226         (add_call_clobber_ops): Likewise.
2227         (add_call_read_ops): Likewise.
2228         (get_asm_expr_operands): Likewise.
2229         * tree-into-ssa.c (dump_decl_set): Likewise.
2230         (update_ssa): Likewise.
2231         * tree-sra.c (scan_function): Likewise.
2232         (decide_instantiations): Likewise.
2233         (scalarize_parms): Likewise.
2234         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2235         (dsa_named_for): Likewise.
2236         * tree-ssa-structalias.c (update_alias_info): Likewise.
2237         (merge_smts_into): Likewise.
2238
2239 2008-02-27  David Daney  <ddaney@avtrex.com>
2240
2241         PR target/34409
2242         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
2243         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
2244         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
2245         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
2246         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
2247
2248 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
2249
2250         PR target/25477
2251         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
2252         (BUILT_IN_NEXTTOWARD): Remove.
2253         (BUILT_IN_NEXTTOWARDF): Ditto.
2254         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
2255         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
2256
2257 2008-02-27  Tom Tromey  <tromey@redhat.com>
2258
2259         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
2260         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
2261
2262 2008-02-27  Jan Beulich  <jbeulich@novell.com>
2263
2264         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
2265         update the respective field on newdecl.
2266
2267 2008-02-27  Revital Eres  <eres@il.ibm.com>
2268
2269         PR rtl-optimization/34999
2270         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
2271         crossing edges that ends with a call insn.
2272         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
2273         call insn and clear the EDGE_CROSSING flag of the crossing edge
2274         when fixing fallthru edges.
2275
2276 2008-02-27  Richard Guenther  <rguenther@suse.de>
2277
2278         PR middle-end/35390
2279         * fold-const.c (fold_unary): Return the correct argument,
2280         converted to the result type.
2281
2282 2008-02-27  Richard Guenther  <rguenther@suse.de>
2283
2284         PR middle-end/34971
2285         * expr.c (expand_expr_real_1): Assert on rotates that operate
2286         on partial modes.
2287         * fold-const.c (fold_binary): Use the types precision, not the
2288         bitsize of the mode if folding rotate expressions.  Build rotates
2289         only for full modes.
2290
2291 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
2292
2293         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
2294         and CPP_PRAGMA_EOL.
2295         * c-pragma.c (pragma_ns_name): New typedef.
2296         (registered_pp_pragmas): New variable.
2297         (c_pp_lookup_pragma): New function.
2298         (c_register_pragma_1): If flag_preprocess_only, do nothing
2299         for non-expanded pragmas, for expanded ones push pragma's
2300         namespace and name into registered_pp_pragmas vector.
2301         (c_invoke_pragma_handler): Register OpenMP pragmas even when
2302         flag_preprocess_only, don't register GCC pch_preprocess
2303         pragma if flag_preprocess_only.
2304         * c-opts.c (c_common_init): Call init_pragma even if
2305         flag_preprocess_only.
2306         * c-pragma.c (c_pp_lookup_pragma): New prototype.
2307         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
2308         cpp_register_pragma if flag_preprocess_only.
2309
2310 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2311
2312         PR c/28800
2313         * c-parser.c (c_parser_translation_unit): Warn for empty
2314         translation unit, not empty source file.
2315
2316 2008-02-26  Paul Brook  <paul@codesourcery.com>
2317
2318         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
2319         operand for Thumb-2.
2320         * config/arm/arm.h (reg_class): Add CORE_REGS.
2321         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
2322         (BASE_REG_CLASS): Use CORE_REGS.
2323         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
2324         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
2325         (REGNO_OK_FOR_INDEX_P): Exclude SP.
2326         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
2327         ARM_REGNO_OK_FOR_INDEX_P.
2328         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
2329         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
2330         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
2331         (ldm/stm peepholes): Ditto.
2332         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
2333         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
2334         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
2335         * config/arm/constraints.md: Enable "k" constraint on ARM.
2336
2337 2008-02-27  Ben Elliston  <bje@au.ibm.com>
2338
2339         * config/rs6000/rs6000.c: Annotate cache line size field in all
2340         instances of struct processor_costs.
2341
2342 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
2343
2344         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
2345         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
2346         jump_bypass): New counters.
2347         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
2348         * dce.c (gate_ud_dce): Same.
2349         (gate_fast_dce): Same.
2350         * dse.c (gate_dse1): New function.
2351         (gate_dse2): New function.
2352         (gate_dse): Merge results of new gate functions.
2353         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
2354         (gate_handle_jump_bypass): Add dbg_cnt.
2355         (gate_handle_gcse): Add dbg_cnt.
2356         * ifcvt.c (gate_handle_if_conversion): Same.
2357         (gate_handle_if_after_combine): Same.
2358         (gate_handle_if_after_reload): Same.
2359         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
2360
2361 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
2362
2363         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
2364         line sizes.
2365         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
2366
2367 2008-02-26  Jason Merrill  <jason@redhat.com>
2368
2369         PR c++/35315
2370         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
2371         alone if it's the naming decl for the type's main variant.
2372
2373 2008-02-26  Tom Tromey  <tromey@redhat.com>
2374
2375         * system.h (USE_MAPPED_LOCATION): Poison.
2376         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
2377         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
2378         (make_goto_expr_edges): Likewise.
2379         (remove_bb): Likewise.
2380         (execute_warn_function_return): Likewise.
2381         * basic-block.h (struct edge_def) <goto_locus>: Change type to
2382         location_t.
2383         * c-common.c (fname_decl): Remove old location code.
2384         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
2385         location code.
2386         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
2387         variant.
2388         (ASM_INPUT_SOURCE_LOCATION): Likewise.
2389         (gen_rtx_ASM_INPUT): Likewise.
2390         (gen_rtx_ASM_INPUT_loc): Likewise.
2391         (get_rtx_asm_OPERANDS): Remove.
2392         * cfglayout.c (insn_locators_alloc): Remove old location code.
2393         (set_curr_insn_source_location): Likewise.
2394         (curr_insn_locator): Likewise.
2395         * print-tree.c (print_node): Remove old location code.
2396         * tree-mudflap.c (mf_varname_tree): Remove old location code.
2397         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
2398         * cfgexpand.c (expand_gimple_cond_expr): Don't use
2399         location_from_locus.
2400         (construct_exit_block): Remove old location code.
2401         * emit-rtl.c (force_next_line_note): Remove old location code.
2402         * profile.c (branch_prob): Remove old location code.
2403         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
2404         LOC_LINE): Remove old-location variants.
2405         * langhooks.c (lhd_print_error_function): Remove old location
2406         code.
2407         * configure, config.in: Rebuilt.
2408         * configure.ac (--enable-mapped-location): Remove.
2409         * c-decl.c (c_init_decl_processing): Remove old location code.
2410         (finish_function): Likewise.
2411         * recog.c (decode_asm_operands): Remove old location code.
2412         * c-pch.c (c_common_read_pch): Remove old location code.
2413         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
2414         variants.
2415         * gimple-low.c (lower_function_body): Remove old location code.
2416         * toplev.c (unknown_location): Remove.
2417         (push_srcloc): Remove old-location variant.
2418         (process_options): Remove old location code.
2419         (lang_dependent_init): Likewise.
2420         * input.h (UNKNOWN_LOCATION): Move definition.
2421         (location_t): Undeprecate.
2422         (source_locus): Remove.
2423         (location_from_locus): Remove.
2424         (struct location_s): Remove.
2425         Remove all old-location code.
2426         (input_line, input_filename): Remove.
2427         * final.c (final_scan_insn): Remove old location code.
2428         * diagnostic.c (diagnostic_build_prefix): Remove
2429         USE_MAPPED_LOCATION test.
2430         * tree.h (gimple_stmt) <locus>: Now a location_t.
2431         (tree_exp) <locus>: Likewise.
2432         (DECL_IS_BUILTIN): Remove old-location variant.
2433         (annotate_with_file_line, annotate_with_locus): Likewise.
2434         (expr_locus, set_expr_locus): Update.
2435         * tree.c (build1_stat): Remove old location code.
2436         (last_annotated_node): Remove.
2437         (annotate_with_file_line): Remove old-location variant.
2438         (annotate_with_locus): Likewise.
2439         (expr_location): Remove old location code.
2440         (set_expr_location): Likewise.
2441         (expr_has_location): Likewise.
2442         (expr_locus): Likewise.
2443         (set_expr_locus): Likewise.
2444         (expr_filename): Don't use location_from_locus.
2445         (expr_lineno): Likewise.
2446         * rtl-error.c (location_for_asm): Remove old location code.
2447         * c-lex.c (cb_line_change): Remove old location code.
2448         (fe_file_change): Likewise.
2449         (cb_def_pragma): Likewise.
2450         (c_lex_with_flags): Likewise.
2451         * gengtype.c (do_typedef): Don't special-case location types.
2452         (define_location_structures): Remove.
2453         (main): Don't call define_location_structures.
2454         * tree-pretty-print.c (dump_implicit_edges): Remove old location
2455         code.
2456
2457 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2458
2459         PR 26264
2460         * builtins.def (BUILT_IN_STDARG_START): Remove.
2461         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
2462         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2463         * tree-inline.c (inline_forbidden_p_1): Likewise.
2464         
2465 2008-02-26  Richard Guenther  <rguenther@suse.de>
2466
2467         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2468         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2469         (lookup_decl_from_uid): Declare.
2470         (remove_decl_from_map): Likewise.
2471         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2472         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2473         (decl_for_uid_map): New global hashtable mapping DECL_UID
2474         to the decl tree.
2475         (init_ttree): Allocate it.
2476         (insert_decl_to_uid_decl_map): New helper function.
2477         (make_node_stat): Insert new decls into the map.
2478         (copy_node_stat): Likewise.
2479         (lookup_decl_from_uid): New function.
2480         (remove_decl_from_map): Likewise.
2481         (print_decl_for_uid_map_statistics): New helper.
2482         (dump_tree_statistics): Call it.
2483
2484         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2485         (referenced_var_iterator): Adjust.
2486         (FOR_EACH_REFERENCED_VAR): Adjust.
2487         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2488         (num_referenced_vars): Adjust.
2489         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2490         (first_referenced_var): Remove.
2491         (end_referenced_vars_p): Likewise.
2492         (next_referenced_var): Likewise.
2493         (referenced_var_iterator_set): New helper function.
2494         * tree-dfa.c (referenced_var_lookup): Adjust.
2495         (referenced_var_check_and_insert): Likewise.
2496         (remove_referenced_var): Likewise.
2497         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2498         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2499         (verify_call_clobbering): Likewise.
2500         (verify_memory_partitions): Likewise.
2501         (init_tree_ssa): Allocate bitmap instead of hashtable for
2502         referenced_vars.
2503         (delete_tree_ssa): Adjust.
2504         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2505         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2506         (compute_tag_properties): Likewise.
2507         (set_initial_properties): Likewise.
2508         (find_partition_for): Likewise.
2509         (update_reference_counts): Likewise.
2510         (dump_may_aliases_for): Likewise.
2511         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2512         (add_call_clobber_ops): Likewise.
2513         (add_call_read_ops): Likewise.
2514         (get_asm_expr_operands): Likewise.
2515         * tree-into-ssa.c (dump_decl_set): Likewise.
2516         (update_ssa): Likewise.
2517         * tree-sra.c (scan_function): Likewise.
2518         (decide_instantiations): Likewise.
2519         (scalarize_parms): Likewise.
2520         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2521         (dsa_named_for): Likewise.
2522         * tree-ssa-structalias.c (update_alias_info): Likewise.
2523         (merge_smts_into): Likewise.
2524
2525 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2526
2527         PR 34351
2528         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
2529         * c-opts.c (c_common_handle_option): Wall enables
2530         Wvolatile-register-var.
2531         * common.opt: Move Wvolatile-register-var to...
2532         * c.opt: ...here.
2533         
2534 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2535
2536         * common.opt (Wlarger-than=): New.
2537         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
2538         -Wlarger-than=.
2539         * opts.c (common_handle_option): Handle -Wlarger-than=.
2540         * optc-gen.awk: Likewise.
2541         * opth-gen.awk: Likewise.
2542         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
2543         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2544         
2545 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2546
2547         * c-common.c (match_case_to_enum_1): Add appropriate
2548         OPT_W* parameter to warning.
2549         (c_do_switch_warnings): Likewise.
2550         * c-typeck.c (warning_init): Add one more parameter following
2551         'warning' function.
2552         (push_init_level): Update call to warning_init.
2553         (pop_init_level): Likewise.
2554         (add_pending_init): Likewise.
2555         (output_init_element: Likewise.
2556
2557 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2558
2559         PR 28322
2560         * toplev.c (toplev_main): If there are warnings or error, print
2561         errors for ignored options.
2562         * opts.c (ignored_options): New static variable.
2563         (postpone_unknown_option_error): New.
2564         (print_ignored_options): New.
2565         (handle_option): Postpone errors for unknown -Wno-* options.
2566         * opts.h (print_ignored_options): Declare.
2567         
2568 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2569
2570         * config/mips/mips.md (loadgp_blockage, blockage): Change type
2571         to "ghost".
2572
2573 2008-02-25  Richard Guenther  <rguenther@suse.de>
2574
2575         Revert:
2576         2008-02-25  Richard Guenther  <rguenther@suse.de>
2577
2578         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2579         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2580         (lookup_decl_from_uid): Declare.
2581         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2582         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2583         (decl_for_uid_map): New global hashtable mapping DECL_UID
2584         to the decl tree.
2585         (init_ttree): Allocate it.
2586         (insert_decl_to_uid_decl_map): New helper function.
2587         (make_node_stat): Insert new decls into the map.
2588         (copy_node_stat): Likewise.
2589         (lookup_decl_from_uid): New function.
2590         (print_decl_for_uid_map_statistics): New helper.
2591         (dump_tree_statistics): Call it.
2592
2593         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2594         (referenced_var_iterator): Adjust.
2595         (FOR_EACH_REFERENCED_VAR): Adjust.
2596         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2597         (num_referenced_vars): Adjust.
2598         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2599         (first_referenced_var): Remove.
2600         (end_referenced_vars_p): Likewise.
2601         (next_referenced_var): Likewise.
2602         (referenced_var_iterator_set): New helper function.
2603         * tree-dfa.c (referenced_var_lookup): Adjust.
2604         (referenced_var_check_and_insert): Likewise.
2605         (remove_referenced_var): Likewise.
2606         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2607         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2608         (verify_call_clobbering): Likewise.
2609         (verify_memory_partitions): Likewise.
2610         (init_tree_ssa): Allocate bitmap instead of hashtable for
2611         referenced_vars.
2612         (delete_tree_ssa): Adjust.
2613         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2614         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2615         (compute_tag_properties): Likewise.
2616         (set_initial_properties): Likewise.
2617         (find_partition_for): Likewise.
2618         (update_reference_counts): Likewise.
2619         (dump_may_aliases_for): Likewise.
2620         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2621         (add_call_clobber_ops): Likewise.
2622         (add_call_read_ops): Likewise.
2623         (get_asm_expr_operands): Likewise.
2624         * tree-into-ssa.c (dump_decl_set): Likewise.
2625         (update_ssa): Likewise.
2626         * tree-sra.c (scan_function): Likewise.
2627         (decide_instantiations): Likewise.
2628         (scalarize_parms): Likewise.
2629         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2630         (dsa_named_for): Likewise.
2631         * tree-ssa-structalias.c (update_alias_info): Likewise.
2632         (merge_smts_into): Likewise.
2633
2634 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2635
2636         PR fortran/29549
2637         * doc/invoke.texi (-fcx-limited-range): Document new option.
2638         * toplev.c (process_options): Handle -fcx-fortran-rules.
2639         * common.opt: Add documentation for -fcx-fortran-rules.
2640
2641 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2642
2643         PR c/35162
2644         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
2645         actual behaviour and C99.
2646         
2647 2008-02-26  Ben Elliston  <bje@au.ibm.com>
2648
2649         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
2650         (ASM_CPU_POWER6_SPEC): Likewise.
2651         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
2652         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
2653         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
2654
2655 2008-02-25  Richard Guenther  <rguenther@suse.de>
2656
2657         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2658         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2659         (lookup_decl_from_uid): Declare.
2660         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2661         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2662         (decl_for_uid_map): New global hashtable mapping DECL_UID
2663         to the decl tree.
2664         (init_ttree): Allocate it.
2665         (insert_decl_to_uid_decl_map): New helper function.
2666         (make_node_stat): Insert new decls into the map.
2667         (copy_node_stat): Likewise.
2668         (lookup_decl_from_uid): New function.
2669         (print_decl_for_uid_map_statistics): New helper.
2670         (dump_tree_statistics): Call it.
2671
2672         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2673         (referenced_var_iterator): Adjust.
2674         (FOR_EACH_REFERENCED_VAR): Adjust.
2675         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2676         (num_referenced_vars): Adjust.
2677         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2678         (first_referenced_var): Remove.
2679         (end_referenced_vars_p): Likewise.
2680         (next_referenced_var): Likewise.
2681         (referenced_var_iterator_set): New helper function.
2682         * tree-dfa.c (referenced_var_lookup): Adjust.
2683         (referenced_var_check_and_insert): Likewise.
2684         (remove_referenced_var): Likewise.
2685         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2686         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2687         (verify_call_clobbering): Likewise.
2688         (verify_memory_partitions): Likewise.
2689         (init_tree_ssa): Allocate bitmap instead of hashtable for
2690         referenced_vars.
2691         (delete_tree_ssa): Adjust.
2692         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2693         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2694         (compute_tag_properties): Likewise.
2695         (set_initial_properties): Likewise.
2696         (find_partition_for): Likewise.
2697         (update_reference_counts): Likewise.
2698         (dump_may_aliases_for): Likewise.
2699         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2700         (add_call_clobber_ops): Likewise.
2701         (add_call_read_ops): Likewise.
2702         (get_asm_expr_operands): Likewise.
2703         * tree-into-ssa.c (dump_decl_set): Likewise.
2704         (update_ssa): Likewise.
2705         * tree-sra.c (scan_function): Likewise.
2706         (decide_instantiations): Likewise.
2707         (scalarize_parms): Likewise.
2708         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2709         (dsa_named_for): Likewise.
2710         * tree-ssa-structalias.c (update_alias_info): Likewise.
2711         (merge_smts_into): Likewise.
2712
2713 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
2714
2715         PR target/35258
2716         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
2717         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
2718         * alias.h (nonoverlapping_memrefs_p): Likewise.
2719
2720 2008-02-25  Jan Beulich  <jbeulich@novell.com>
2721
2722         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
2723         * config/i386/netware-libgcc.exp: Add __bswap?i2,
2724         __emultls_get_address, __emultls_register_common,
2725         __floatundi?f, and _Unwind_GetIPInfo.
2726         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
2727         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
2728         (gen_regparm_prefix): Likewise.
2729         (i386_nlm_encode_section_info): Sync with
2730         config/i386/winnt.c:i386_pe_encode_section_info().
2731         (i386_nlm_maybe_mangle_decl_assembler_name): New.
2732         i386_nlm_mangle_decl_assembler_name): New.
2733         (netware_override_options): New.
2734         * config/i386/netware.h (netware_override_options): Declare.
2735         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
2736         (i386_nlm_mangle_decl_assembler_name): Declare.
2737         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
2738
2739 2008-02-25  Ben Elliston  <bje@au.ibm.com>
2740
2741         PR other/32948
2742         * c-decl.c (grokdeclarator): Remove unused local variables
2743         `typedef_type' and `type_as_written'.
2744         * bb-reorder.c
2745         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
2746         unused local variable `has_hot_blocks'.
2747         (fix_crossing_conditional_branches): Remove unused local variable
2748         `prev_bb'.
2749         
2750 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
2751
2752         PR middle-end/19984
2753         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
2754         using DEF_C99_BUILTIN.
2755         (BUILT_IN_NANF): Ditto.
2756         (BUILT_IN_NANL): Ditto.
2757
2758 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
2759             Revital Eres  <eres@il.ibm.com>
2760
2761         * modulo-sched.c (calculate_must_precede_follow): Address TODO
2762         regarding the order of two dependent insns in the same row.
2763
2764 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         * stor-layout.c (layout_decl): Do not bump the alignment of a
2767         bit-field to more than byte alignment if it is packed.
2768
2769 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
2770
2771         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
2772         e300c2 and e300c3.
2773
2774 2008-02-24  Diego Novillo  <dnovillo@google.com>
2775
2776         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
2777
2778         PR 33738
2779         * tree-vrp.c (vrp_evaluate_conditional): With
2780         -Wtype-limits, emit a warning when comparing against a
2781         constant outside the natural range of OP0's type.
2782         * c.opt (Wtype-limits): Move ...
2783         * common.opt (Wtype-limits): ... here.
2784
2785 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
2786
2787         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
2788         * config/rs6000/e300c2c3.md: New file.
2789         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2790         e300c2 and e300c3.
2791         (rs6000_override_options): Add e300c2 and e300c3 cases to
2792         processor_target_table. Do not allow usage of Altivec or Spe
2793         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
2794         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
2795         * config/rs6000/rs6000.h (processor_type): Add
2796         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
2797         (ASM_CPU_SPEC): Add e300c2 and e300c3.
2798         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
2799         and ppce300c3. Include e300c2c3.md.
2800
2801 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
2802
2803         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
2804         instead of TARGET_STRICT_ALIGN.
2805
2806 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
2807
2808         * explow.c (memory_address): Assert that the generated address is
2809         valid.
2810
2811 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2812
2813         PR target/25477
2814         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
2815         * config/darwin-ppc-ldouble-patch.def: New file.
2816         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
2817         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
2818         SUBTARGET_INIT_BUILTINS if defined.
2819         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
2820         New functions.
2821
2822 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2823
2824         PR rtl-opt/33512
2825         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
2826         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
2827
2828 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2829
2830         PR pch/35027
2831         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
2832         file" warning condtional on -Winvalid-PCH.
2833
2834 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
2835
2836         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
2837
2838 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
2839
2840         PR target/22076
2841         PR target/34256 
2842         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
2843         prevent reload from using MMX registers.
2844         (*mov<mode>_internal): Ditto.
2845         (*movv2sf_internal_rex64): Ditto.
2846         (*movv2sf_internal): Ditto.
2847
2848 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2849
2850         PR documentation/31569
2851         * doc/install.texi2html: Use makeinfo --no-number-sections.
2852
2853 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2854
2855         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
2856         ensure that we can address an entire entity > 8 bytes.  Don't
2857         generate reg+reg addressing for such data.
2858
2859 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2860
2861         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
2862         strings when optimizing for size, unless the target cares about
2863         alignment.
2864
2865 2008-02-22  Tom Tromey  <tromey@redhat.com>
2866
2867         * regclass.c (current_pass): Remove declaration.
2868
2869 2008-02-22  Anatoly Sokolov <aesok@post.ru>
2870
2871         * config/avr/libgcc.S (__RAMPZ__): Define.
2872         (__do_copy_data): Add for devices with 128KB code memory.
2873
2874 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2875
2876         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2877         Use spe_abi.
2878         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
2879
2880 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
2881
2882         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
2883         GENNONACR_REGS.
2884
2885 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2886
2887         PR c/19999
2888         * c-typeck.c (build_binary_op): Warn about floating point
2889         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
2890
2891 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
2892
2893         PR target/34526
2894         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
2895         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
2896         add vrsave.
2897         (rs6000_override_options): Set altivec_abi as default, not override,
2898         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
2899         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
2900         is used; use new member spe_abi.
2901         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
2902         spe_abi and altivec_abi.
2903
2904 2008-02-22  Tomas Bily  <tbily@suse.cz>
2905
2906         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
2907
2908 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2909
2910         PR bootstrap/35273
2911         * config.build (build_file_translate): Set to `CMD //c' only if
2912         it works.
2913         * Makefile.in (build_file_translate): Improve comment.
2914
2915 2008-02-21  Jan Hubicka  <jh@suse.cz>
2916
2917         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
2918         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
2919         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
2920
2921 2008-02-21  Michael Matz  <matz@suse.de>
2922
2923         PR target/35264
2924         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
2925
2926 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
2927
2928         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
2929         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
2930         as insn constraint.
2931         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
2932         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
2933         SSE_VEC_FLOAT_MODE_P as insn constraint.
2934         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
2935         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
2936         sse4a_movntdf using MODEF mode iterator.
2937         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
2938         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
2939         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
2940         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
2941         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
2942         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
2943         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
2944
2945 2008-02-21  Richard Guenther  <rguenther@suse.de>
2946
2947         * tree.def (PAREN_EXPR): New tree code.
2948         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
2949         and PAREN_EXPR.
2950         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
2951         * expr.c (expand_expr_real_1): Likewise.
2952         * tree-inline.c (estimate_num_insns_1): Likewise.
2953         * tree-complex.c (expand_complex_move): Likewise.
2954         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
2955         as plain x.
2956
2957 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2958
2959         PR target/35225
2960         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
2961
2962 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2963
2964         PR target/35190
2965         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
2966
2967         * config/sh/sh.c (find_barrier): Don't go past
2968         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
2969
2970 2008-02-20  DJ Delorie  <dj@redhat.com>
2971
2972         * config/h8300/h8300.md (insv): Force source operand to be a register.
2973
2974         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
2975         as a jump, not as a plain insn.
2976         
2977 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
2978
2979         * doc/invoke.texi (Warning Options): Add new option
2980         -Wframe-larger-than=.
2981         (-Wframe-larger-than): Document.
2982
2983         * flags.h (warn_frame_larger_than, frame_larger_than_size):
2984         Add declarations for new option variables.
2985
2986         * final.c (final_start_function): Check the frame size
2987         before emission and issue a Wframe-larger-than warning.
2988
2989         * opts.c (warn_frame_larger_than, frame_larger_than_size):
2990         Add definitions for new option variables.
2991         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
2992
2993         * common.opt (Wframe-larger-than=): New option.
2994
2995 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
2996
2997         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
2998         (<sse>_div<mode>3): Ditto.
2999         (<sse>_vmdiv<mode>3): Ditto.
3000         (<sse>_vmsqrt<mode>2): Ditto.
3001         (*smax<mode>3): Ditto.
3002         (sse5_frcz<mode>2): Ditto.
3003         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
3004         as insn constraint.
3005
3006 2008-02-20  Richard Guenther  <rguenther@suse.de>
3007
3008         PR middle-end/35265
3009         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
3010         be happy with INTEGRAL_TYPE_P.
3011
3012 2008-02-20  Richard Guenther  <rguenther@suse.de>
3013
3014         * fold-const.c (split_tree): Associate floatig-point expressions
3015         if flag_associative_math is set.
3016
3017 2008-02-20  Richard Guenther  <rguenther@suse.de>
3018
3019         * tree.h (fold_real_zero_addition_p): Declare.
3020         * fold-const.c (fold_real_zero_addition_p): Export.
3021         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
3022         floating-point operations with zero and one.
3023
3024 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
3025
3026         * doc/install.texi: Correct references to CFLAGS, replacing them
3027         with BOOT_CFLAGS.  Document flags used during bootstrap for
3028         target libraries.
3029                                 
3030 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
3031
3032         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
3033         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
3034         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
3035         insn constraint.
3036         (smin<mode>3): Ditto from similar patterns.
3037         (smax<mode>3): Ditto.
3038         (*ieee_smin<mode>3): Ditto.
3039         (*ieee_smax<mode>3): Ditto.
3040         * config/i386/sse.md (sse): New mode attribute.
3041         (mov<mode>): Macroize expander from movv4sf and movv2df using
3042         SSEMODEF2P mode iterator.
3043         (<sse>_movnt<mode>): Ditto from similar patterns. Use
3044         SSE_VEC_FLOAT_MODE_P as insn constraint.
3045         (storent<mode>): Ditto.
3046         (storent<mode>): Macroize expander from storentsf and storentdf using
3047         MODEF mode iterator.
3048         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
3049         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
3050         (abs<mode>2): Ditto from similar patterns.
3051         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
3052         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
3053         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
3054         (<sse>_vmsqrt<mode>2): Ditto.
3055         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
3056         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
3057         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
3058         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
3059         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
3060         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
3061         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
3062         insn constraint.
3063         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
3064         iterator and SSE_FLOAT_MODE_P as insn constraint.
3065         (<sse>_ucomi): Ditto from similar patterns.
3066         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
3067         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
3068         SSE_VEC_FLOAT_MODE_P as insn constraint.
3069         (vcond<mode>): Ditto from similar patterns.
3070         (and<mode>3, *and<mode>3): Ditto.
3071         (<sse>_nand<mode>3): Ditto.
3072         (ior<mode>3, *ior<mode>3): Ditto.
3073         (xor<mode>3, *xor<mode>3): Ditto.
3074         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
3075         iterator and SSE_FLOAT_MODE_P as insn constraint.
3076         (*nand<mode>3): Ditto from similar patterns.
3077         (*ior<mode>3): Ditto.
3078         (*xor<mode>3): Ditto.
3079
3080 2008-02-20  Ira Rosen  <irar@il.ibm.com>
3081
3082         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
3083         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
3084         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
3085
3086 2008-02-19  Jan Hubicka  <jh@suse.cz>
3087
3088         * predict.c (tree_bb_level_predictions): Remove variable next
3089         mistakely introduced by previous commit.
3090
3091 2008-02-19  Jan Hubicka  <jh@suse.cz>
3092
3093         * predict.c (predict_paths_leading_to): Rewrite.
3094         (predict_paths_for_bb): New.
3095         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
3096
3097 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3098
3099         PR bootstrap/35218
3100         * Makefile.in (build_file_translate): New.
3101         (gcc-vers.texi): Use it for translating $(abs_srcdir).
3102         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
3103         * configure.ac (build_file_translate): Substitute it.
3104         * configure: Regenerate.
3105
3106 2008-02-19  Jan Hubicka  <jh@suse.cz>
3107
3108         PR rtl-optimization/34408
3109         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
3110         invalid sharing.
3111
3112 2008-02-19  Jan Hubicka  <jh@suse.cz>
3113
3114         PR middle-end/28779
3115         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
3116         call_expr.
3117
3118 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
3119
3120         PR Ada/35186
3121         * config/i386/i386-modes.def: Revert the last DI alignment
3122         change until Ada people can look into it.
3123
3124 2008-02-19  Nick Clifton  <nickc@redhat.com>
3125
3126         * opts.c (print_specific_help): Fix typo in --help text.
3127
3128 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
3129
3130         PR target/35239
3131         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
3132         32-bit inline asm without asm alternatives for host GCC < 3.0.
3133
3134 2008-02-19  Richard Guenther  <rguenther@suse.de>
3135
3136         PR tree-optimization/34989
3137         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
3138         Allow propagation to INDIRECT_REF if we can simplify only.
3139
3140 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3141
3142         * c-common.c (warn_for_collisions_1): Use appropriate option when
3143         warning.
3144
3145 2008-02-19  Nick Clifton  <nickc@redhat.com>
3146
3147         PR other/31349
3148         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
3149         (handle_options): Fix indentation.
3150         (print_filtered_help): If no language-specific options were
3151         displayed tell the user how to list all the options supported by
3152         the language's front-end.
3153         (print_specific_help): Fix indentation and remove duplicate line.
3154         (common_handle_option): Handle the -v option.
3155         For --help enable the display of undocumented options if the -v
3156         switch has been included on the command line.
3157         For --help= check for overlaps in the arguments between the option
3158         classes and the language names and issue a warning when they
3159         cannot be disambiguated.
3160         * c.opt (v): Pass on to the common option handler.
3161
3162 2008-02-19  Revital Eres  <eres@il.ibm.com> 
3163
3164         * modulo-sched.c (sms_schedule): Change dump message when
3165         create_ddg function fails.
3166         (try_scheduling_node_in_cycle): Rename row to cycle.
3167         (print_partial_schedule): Rename CYCLE to ROW.
3168
3169 2008-02-19  Christian Bruel  <christian.bruel@st.com>
3170             Zdenek Dvorak  <ook@ucw.cz>
3171
3172         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
3173
3174 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
3175
3176         PR target/33555
3177         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
3178         (*x86_movdicc_0_m1_se): Ditto.
3179
3180 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
3181
3182         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
3183         (CMPtype): Define as __gcc_CMPtype.
3184         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
3185         (CMPtype): Define as __gcc_CMPtype.
3186
3187 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
3188
3189         Support valgrind 3.3 for --enable-checking=valgrind.
3190         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
3191         here.
3192         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
3193         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
3194         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
3195         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
3196         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
3197         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
3198         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
3199         respectively.
3200         * ggc-zone.c: Similar.
3201         * ggc-page.c: Similar.
3202
3203 2008-02-19  Paul Brook  <paul@codesourcery.com>
3204
3205         PR target/35071
3206         * config/arm/ieee754-df.S: Fix do_it typo.
3207         * config/arm/ieee754-sf.S: Fix do_it typo.
3208
3209 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
3210
3211         PR target/35189
3212         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
3213         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
3214         (OPTION_MASK_ISA_SSE_SET): Likewise.
3215         (OPTION_MASK_ISA_SSE2_SET): Likewise.
3216         (OPTION_MASK_ISA_SSE3_SET): Likewise.
3217         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
3218         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
3219         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
3220         (OPTION_MASK_ISA_SSE4_SET): Likewise.
3221         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
3222         (OPTION_MASK_ISA_SSE5_SET): Likewise.
3223         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
3224         (OPTION_MASK_ISA_MMX_UNSET): Updated.
3225         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
3226         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
3227         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
3228         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
3229         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
3230         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
3231         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
3232         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
3233         (OPTION_MASK_ISA_SSE4): Removed.
3234         (ix86_handle_option): Turn on bits in ix86_isa_flags and
3235         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
3236         (override_options): Don't turn on implied SSE/MMX bits in
3237         ix86_isa_flags.
3238
3239 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
3240
3241         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3242         32bit host.
3243
3244 2008-02-18  Joey Ye  <joey.ye@intel.com>
3245
3246         PR middle-end/34921
3247         * tree-nested.c (insert_field_into_struct): Set type alignment
3248         to field alignment if the former is less than the latter.
3249
3250 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
3251
3252         * BASE-VER: Set to 4.4.0.
3253
3254 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3255
3256         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
3257         * doc/cfg.texi: Likewise.
3258         * doc/extend.texi: Likewise.
3259         * doc/gty.texi: Likewise.
3260         * doc/invoke.texi: Likewise.
3261         * doc/loop.texi: Likewise.
3262         * doc/md.texi: Likewise.
3263         * doc/passes.texi: Likewise.
3264         * doc/rtl.texi: Likewise.
3265         * doc/sourcebuild.texi: Likewise.
3266         * doc/tm.texi: Likewise.
3267         * doc/tree-ssa.texi: Likewise.
3268
3269 2008-02-17  Richard Guenther  <rguenther@suse.de>
3270
3271         PR middle-end/35227
3272         * tree-complex.c (init_parameter_lattice_values): Handle parameters
3273         without default definition.
3274
3275 2008-02-17  Richard Guenther  <rguenther@suse.de>
3276
3277         PR tree-optimization/35231
3278         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
3279         if A | B != 1.
3280
3281 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
3282
3283         Revert:
3284         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
3285         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
3286         libgcc_cmp_return mode.
3287
3288 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3289
3290         PR c/28368
3291         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
3292
3293 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
3294
3295         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
3296         multilibs.
3297
3298 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3299
3300         * doc/c-tree.texi: Use `@.' where appropriate.
3301         * doc/extend.texi: Likewise.
3302         * doc/install.texi: Likewise.
3303         * doc/invoke.texi: Likewise.
3304         * doc/loop.texi: Likewise.
3305         * doc/makefile.texi: Likewise.
3306         * doc/md.texi: Likewise.
3307         * doc/passes.texi: Likewise.
3308         * doc/standards.texi: Likewise.
3309         * doc/tm.texi: Likewise.
3310
3311 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3312
3313         PR middle-end/35196
3314         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
3315         in entry_bb.
3316         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
3317         rather than in entry_bb.
3318
3319 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3320
3321         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
3322         libgcc_cmp_return mode.
3323
3324 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3325
3326         PR middle-end/35130
3327         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
3328         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
3329
3330 2008-02-15  Richard Guenther  <rguenther@suse.de>
3331             Zdenek Dvorak  <ook@ucw.cz>
3332
3333         PR tree-optimization/35164
3334         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
3335         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
3336         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3337         Only propagate addresses which do not have abnormal SSA_NAMEs
3338         in their operands.
3339
3340 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
3341
3342         PR target/35088
3343         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
3344
3345 2008-02-15  Jan Hubicka  <jh@suse.cz>
3346
3347         PR middle-end/35149
3348         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
3349
3350 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3351
3352         PR middle-end/34621
3353         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
3354         when calculating alignment_pad.
3355
3356 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3357
3358         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
3359         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
3360         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
3361         and STACK_BOUNDARY define.
3362
3363 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
3364
3365         PR preprocessor/35061
3366         * c-pragma.c (handle_pragma_pop_macro): Check that
3367         pushed_macro_table has been allocated.
3368
3369 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
3370
3371         PR middle-end/35136
3372         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
3373         (force_gimple_operand): Likewise.
3374         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
3375         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
3376         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
3377         (find_interesting_uses_address): Check addressability and alignment
3378         of the base expression only after substituting bases of IVs into it.
3379
3380 2008-02-14  Michael Matz  <matz@suse.de>
3381
3382         PR target/34930
3383         * function.c (instantiate_virtual_regs_in_insn): Reload address
3384         before falling back to reloading the whole operand.
3385
3386 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3387
3388         * config/s390/s390.c (s390_mainpool_start): Emit the pool
3389         before the first section switch note.
3390
3391 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3392
3393         * doc/bugreport.texi: Update copyright years.
3394         * doc/c-tree.texi: Likewise.
3395         * doc/cfg.texi: Likewise.
3396         * doc/cpp.texi: Likewise.
3397         * doc/cppinternals.texi: Likewise.
3398         * doc/fragments.texi: Likewise.
3399         * doc/frontends.texi: Likewise.
3400         * doc/gcc.texi: Likewise.
3401         * doc/gty.texi: Likewise.
3402         * doc/hostconfig.texi: Likewise.
3403         * doc/implement-c.texi: Likewise.
3404         * doc/libgcc.texi: Likewise.
3405         * doc/loop.texi: Likewise.
3406         * doc/makefile.texi: Likewise.
3407         * doc/options.texi: Likewise.
3408         * doc/passes.texi: Likewise.
3409         * doc/rtl.texi: Likewise.
3410         * doc/sourcebuild.texi: Likewise.
3411         * doc/standards.texi: Likewise.
3412         * doc/tree-ssa.texi: Likewise.
3413         * doc/trouble.texi: Likewise.
3414
3415         * doc/extend.texi: Use @: or add comma where appropriate.
3416         * doc/invoke.texi: Likewise.
3417         * doc/tm.texi: Likewise.
3418
3419 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
3420
3421         PR target/34393
3422         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
3423         to a reg.
3424
3425 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
3426
3427         * doc/md.texi (clz, ctz): Add reference.
3428         * doc/rtl.texi (clz, ctz): Likewise.
3429
3430 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3431
3432         PR other/35148
3433         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
3434         srcdir.
3435
3436 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3437
3438         * config/s390/s390.c (struct constant_pool): New field
3439         emit_pool_after added.
3440         (s390_mainpool_start): Set the emit_pool_after flag according
3441         to the section switch notes.
3442         (s390_mainpool_finish): Consider emit_pool_after when emitting
3443         the literal pool at the end of the function.
3444         (s390_chunkify_start): Force literal pool splits at section
3445         switch notes.
3446
3447 2008-02-13  Michael Matz  <matz@suse.de>
3448
3449         PR debug/35065
3450         * var-tracking.c (clobber_variable_part): Correctly traverse the
3451         list.
3452
3453 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3454
3455         PR 29673
3456         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
3457         Add -fdump-ipa-inline.
3458         * tree-dump.c (dump_files): Remove tree-inlined dump.
3459         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
3460         
3461 2008-02-12  Richard Guenther  <rguenther@suse.de>
3462
3463         PR tree-optimization/35171
3464         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
3465         default defs.
3466
3467 2008-02-12  Richard Guenther  <rguenther@suse.de>
3468
3469         PR middle-end/35163
3470         * fold-const.c (fold_widened_comparison): Use get_unwidened in
3471         value-preserving mode.  Disallow final truncation.
3472
3473 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3474
3475         PR middle-end/35136
3476         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
3477         code from here to...
3478         (force_gimple_operand): ...here.
3479
3480 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
3481
3482         PR c++/35144
3483         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
3484         non-compatible pointers.
3485         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
3486         different FIELD_DECLs, try harder by comparing field offsets, sizes
3487         and types.
3488
3489         PR inline-asm/35160
3490         * function.c (match_asm_constraints_1): Don't replace the same input
3491         multiple times.
3492
3493 2008-02-12  Anatoly Sokolov <aesok@post.ru>
3494
3495         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
3496         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
3497         (expand_epilogue): Restore RAMPZ register.
3498         * config/avr/avr.md (RAMPZ_ADDR): New constant.
3499
3500 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
3501
3502         * config/i386/cygwin.asm: (__alloca): Correct calling
3503         convention and alignment.
3504         (__chkstk): Force 8 byte stack alignment.
3505
3506 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
3507             Richard Guenther  <rguenther@suse.de>
3508
3509         PR tree-optimization/33992
3510         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
3511         the zero we compare against.
3512
3513 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
3514
3515         PR libfortran/35063
3516         * gthr-win32.h (__gthread_mutex_destroy_function): New function
3517         to CloseHandle after unlocking to prevent accumulation of handle
3518         count.
3519
3520 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3521
3522         PR middle_end/34150
3523         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
3524         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
3525         and update LABEL_NUSES during and after reload.
3526
3527 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
3528
3529         PR middle-end/34627
3530         * combine.c (simplify_if_then_else): Make sure the comparison is
3531         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
3532
3533 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3534
3535         PR bootstrap/35051
3536         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
3537         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
3538         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
3539         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
3540         * tree.h (get_type_static_bounds): Likewise.
3541
3542 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3543
3544         * doc/invoke.texi (Option Summary, C++ Dialect Options)
3545         (Objective-C and Objective-C++ Dialect Options, Warning Options):
3546         Make -Wfoo language annotations match what the compiler outputs.
3547
3548 2008-02-08  Sa Liu  <saliu@de.ibm.com>
3549
3550         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
3551         intrinsics spu_convts, spu_convtu, spu_convtf.
3552         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
3553
3554 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
3555
3556         * doc/extend.texi (Function Attributes) <noinline>: Mention
3557         asm ("") as method to keep calls.
3558
3559 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3560
3561         PR other/32754
3562         * doc/options.texi (Options): Replace references to opts.sh with
3563         optc-gen.awk.
3564         * opts-common.c: Likewise.
3565         * optc-gen.awk: Likewise.
3566         
3567 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3568
3569         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
3570
3571 2008-02-07  Richard Henderson  <rth@redhat.com>
3572
3573         PR rtl-opt/33410
3574         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
3575         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
3576         funny mode.
3577
3578 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
3579
3580         PR tree-optimization/35085
3581         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
3582         for operand entry oe2 in addition to operand entry oe3 in order to
3583         expose more opportunities for vectorizer sum reduction.
3584
3585 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3586
3587         PR other/35107
3588         * Makefile.in (LIBS): Remove $(GMPLIBS).
3589         (cc1-dummy, cc1): Add $(GMPLIBS).
3590
3591 2008-02-06  Jan Hubicka  <jh@suse.cz>
3592
3593         PR target/23322
3594         * i386.md (moddf_integer): Do not produce partial memory stalls for
3595         targets where it hurts.
3596
3597 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
3598
3599         PR target/35083
3600         * optabs.c (expand_float): Do not check for decimal modes when
3601         expanding unsigned integer through signed conversion.
3602
3603 2008-02-06  Nick Clifton  <nickc@redhat.com>
3604
3605         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
3606         inside the clobber with a match_operand and duplicated operand
3607         number in the constraint.
3608         (ineqbranchsi): Delete redundant comment.
3609
3610 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
3611
3612         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
3613         builtin_define ("__USE_INIT_FINI__").
3614         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
3615         -msx multilibs.
3616         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
3617
3618 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3619
3620         PR documentation/30330
3621         * doc/invoke.texi (C++ Dialect Options)
3622         (Objective-C and Objective-C++ Dialect Options, Warning Options):
3623         For each warning option -Wfoo that allows -Wno-foo, ensure both
3624         -Wfoo and -Wno-foo are listed in the option index.  Fix index
3625         entry of -Wswitch-default, index -Wnormalized= including the
3626         `=', and -Wlarger-than-@var{len} including @var{len}.
3627
3628 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
3629
3630         * config/i386/i386.md (floatunssisf2): Use
3631         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
3632         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
3633         Macroize expander using MODEF mode iterator.
3634
3635 2008-02-05  Diego Novillo  <dnovillo@google.com>
3636
3637         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
3638
3639         PR 33738
3640         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
3641
3642 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3643
3644         PR other/35070
3645         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
3646
3647 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
3648
3649         PR target/35084
3650         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
3651         to indicate if a message should be generated.
3652         (init_cumulative_args): Updated.
3653         (function_value_32): Likewise.
3654
3655 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
3656
3657         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
3658
3659 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
3660
3661         PR target/35083
3662         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
3663         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
3664
3665 2008-02-04  Diego Novillo  <dnovillo@google.com>
3666
3667         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
3668
3669         PR 33738
3670         * tree-vrp.c (vrp_evaluate_conditional): With
3671         -Wtype-limits, emit a warning when comparing against a
3672         constant outside the natural range of OP0's type.
3673
3674 2008-02-04  Richard Guenther  <rguenther@suse.de>
3675
3676         PR middle-end/33631
3677         * expr.c (count_type_elements): Give for unions instead of
3678         guessing.
3679
3680 2008-02-04  Richard Guenther  <rguenther@suse.de>
3681
3682         PR middle-end/35043
3683         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
3684         to TYPE_DOMAINs base type instead of using bitsizetype here.
3685
3686 2008-02-03  Jason Merrill  <jason@redhat.com>
3687
3688         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
3689
3690 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3691
3692         PR other/29972
3693         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
3694         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
3695         (RS/6000 and PowerPC Options): Fix typos and markup.
3696         * doc/passes.texi (Tree-SSA passes): Likewise.
3697
3698 2008-02-02  Michael Matz  <matz@suse.de>
3699
3700         PR target/35045
3701         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
3702         from record_last_reg_set_info.
3703         (record_last_reg_set_info): Take an RTX argument, iterate over all
3704         constituent hardregs.
3705         (record_last_set_info, record_opr_changes): Change calls to
3706         new signature or to record_last_reg_set_info_regno.
3707
3708 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
3709
3710         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
3711
3712 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
3713
3714         PR rtl-optimization/34773
3715         * reg-notes.def (EQUAL): Mention significance of combination of
3716         REG_EQUAL and REG_RETVAL.
3717         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
3718         insn that has a REG_RETVAL.
3719
3720 2008-02-01  Roger Sayle  <roger@eyesopen.com>
3721
3722         PR bootstrap/33781
3723         * configure.ac (--enable-fixed-point): Disable unless explicitly
3724         requested on IRIX.
3725         * configure: Regenerate.
3726
3727 2008-02-01  Richard Guenther  <rguenther@suse.de>
3728
3729         PR other/35042
3730         * invoke.texi (-finline-limit): Remove no longer true parts
3731         of the documentation.  Note that there is no default value.
3732
3733 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
3734             Mark Mitchell  <mark@codesourcery.com>
3735             Ben Elliston  <bje@au.ibm.com>
3736
3737         PR c/29326
3738         * doc/extend.texi (Other Builtins): Document.
3739
3740 2008-01-31  Tom Browder <tom.browder@gmail.com>
3741
3742         * doc/c-tree.texi (Types): Fix grammar.
3743         (Expression trees): Ditto.
3744         * doc/passes.texi (Tree-SSA passes): Ditto.
3745         
3746         * doc/configterms.texi (Configure Terms): Fix typo.
3747         * doc/cpp.texi (Common Predefined Macros): Ditto.
3748         * doc/md.texi (Machine Constraints): Ditto.
3749         
3750         * doc/makefile.texi (Makefile): Add comma.
3751
3752 2008-01-31  Tom Browder  <tom.browder@gmail.com>
3753             Gerald Pfeifer  <gerald@pfeifer.com>
3754         
3755         * doc/sourcebuild.texi (Front End): Remove references to CVS
3756         and CVSROOT/modules.
3757         (Texinfo Manuals): Replace reference to CVS by one to SVN.
3758         (Back End): Remove reference to CVS.
3759
3760 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
3761
3762         PR target/34900
3763         * config/mips/mips.c (gen_load_const_gp): New function, taking a
3764         comment from...
3765         (mips16_gp_pseudo_reg): ...here.
3766         * config/mips/mips.md (load_const_gp): Replace with...
3767         (load_const_gp_<mode>): ...this :P-based insn.
3768
3769 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3770
3771         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
3772         options. Minor fixes.
3773         (-std): Move reference to standards closer to where language
3774         standards are first mentioned.
3775         
3776 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
3777
3778         PR rtl-optimization/34995
3779         * reload.c (alternative_allows_const_pool_ref): Take an rtx
3780         parameter and return a bool.  If the rtx parameter is nonnull,
3781         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
3782         (find_reloads): Update call accordingly.  Pass the new operand
3783         if it needed no address reloads, otherwise pass null.
3784
3785 2008-01-30  Richard Henderson  <rth@redhat.com>
3786
3787         PR c/34993
3788         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
3789         for unbounded arrays.
3790
3791 2008-01-30  Silvius Rus  <rus@google.com>
3792
3793         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
3794
3795 2008-01-30  Jan Hubicka  <jh@suse.cz>
3796
3797         PR target/34982
3798         * i386.c (init_cumulative_args): Use real function declaration when
3799         calling locally.
3800
3801 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3802
3803         PR rtl-optimization/34998
3804         * global.c (build_insn_chain): Treat non-subreg_lowpart
3805         SUBREGs of pseudos as clobbering all the words covered by the
3806         SUBREG, not just all the bytes.
3807         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
3808         original df_ref rather than an extract parameter.
3809         (global_conflicts): Update call accordingly.
3810
3811 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
3812
3813         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
3814         the overflow check to make it easier to read.
3815         (__fixtfdi): Change the type of the ll member in union
3816         long_double to UDItype_x.
3817
3818 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
3819
3820         PR middle-end/34969
3821         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
3822         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
3823         * tree-inline.c (fold_marked_statements): Call
3824         cgraph_update_edges_for_call_stmt if folding a call statement.
3825         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
3826         debug_generic_stmt calls, reset it back afterwards.
3827
3828         PR c/35017
3829         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
3830         static decls.
3831         * c-typeck.c (build_external_ref): Don't pedwarn about
3832         static vars in current function's scope.
3833
3834 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
3835
3836         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
3837
3838 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
3839
3840         PR c/35002
3841         * ipa-struct-reorg.c: Fix spelling.
3842         * params.def: Ditto.
3843
3844 2008-01-29  Richard Guenther  <rguenther@suse.de>
3845
3846         PR middle-end/35006
3847         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
3848         field.
3849         * tree-inline.c (remap_type): Increment remapping_type_depth
3850         around remapping types.
3851         (copy_body_r): Only add referenced variables if they are referenced
3852         from code, not types.
3853
3854 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
3855
3856         PR c++/34055
3857         PR c++/34103
3858         PR c++/34219
3859         PR c++/34606
3860         PR c++/34753
3861         PR c++/34754
3862         PR c++/34755
3863         PR c++/34919
3864         PR c++/34961
3865         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
3866         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
3867
3868 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
3869
3870         PR target/34412
3871         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
3872         pointer for tiny stack.
3873
3874 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
3875
3876         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
3877
3878 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
3879
3880         * config/vx-common.h: Fix typo in comment.
3881
3882 2008-01-28  Ian Lance Taylor  <iant@google.com>
3883
3884         PR c++/34862
3885         PR c++/33407
3886         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3887         coalesce pointers if they have different DECL_NO_TBAA_P values.
3888         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
3889         between variables with different DECL_NO_TBAA_P values.
3890
3891 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
3892
3893         PR 31535
3894         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
3895         are not legitimate small data references on SPE targets.
3896
3897 2008-01-28  David Daney  <ddaney@avtrex.com>
3898
3899         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
3900
3901 2008-01-28  David Daney  <ddaney@avtrex.com>
3902
3903         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
3904
3905 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
3906
3907         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
3908         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
3909         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
3910         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
3911         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3912         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
3913         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
3914         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
3915
3916 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3917
3918         * basic-block.h (condjump_equiv_p): Fix comment.
3919
3920 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3921
3922         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
3923         print_generic_stmt_indented): Fix comment.
3924
3925 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3926
3927         * configure.ac (__stack_chk_fail): Add detecion for availability
3928         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
3929         * configure: Regenerate.
3930
3931 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
3932
3933         PR middle-end/34688
3934         * final.c (output_addr_const): Handle TRUNCATE.
3935
3936 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
3937
3938         PR target/34711
3939         * tree-ssa-loop-ivopts.c (comp_cost): New type.
3940         (zero_cost, infinite_cost): New constants.
3941         (struct cost_pair): Change type of cost to comp_cost.
3942         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
3943         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
3944         New functions.
3945         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
3946         split_address_cost, ptr_difference_cost, difference_cost,
3947         get_computation_cost_at, get_computation_cost,
3948         determine_use_iv_cost_generic, determine_use_iv_cost_address,
3949         determine_use_iv_cost_condition, determine_use_iv_costs,
3950         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
3951         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
3952         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
3953         Change type of cost to comp_cost.
3954         (determine_iv_cost): Increase cost of non-original ivs, instead
3955         of decreasing the cost of original ones.
3956         (get_address_cost): Indicate the complexity of the addressing mode 
3957         in comp_cost.
3958         (try_add_cand_for): Prefer using ivs not specific to some object.
3959         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
3960
3961 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
3962             Janis Johnson  <janis187@us.ibm.com>
3963
3964         PR target/34814
3965         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
3966         (TARGET_INSTANTIATE_DECLS): Likewise.
3967         * target.h (expand_to_rtl_hook): New target hook.
3968         (instantiate_decls): Likewise.
3969         * function.c (instantiate_decl): Make non-static.  Rename to...
3970         (instantiate_decl_rtl): ... this.
3971         (instantiate_expr): Use instantiate_decl_rtl.
3972         (instantiate_decls_1): Likewise.
3973         (instantiate_decls): Likewise.
3974         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
3975         * function.h (instantiate_decl_rtl): Add prototype.
3976         * cfgexpand.c (target.h): New include.
3977         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
3978         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
3979         (TARGET_INSTANTIATE_DECLS): Likewise.
3980         (TARGET_INITIALIZER): New target hooks added.
3981         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
3982         New prototype.
3983         * config/rs6000/rs6000.c (tree-flow.h): New include.
3984         (machine_function): Add sdmode_stack_slot field.
3985         (rs6000_alloc_sdmode_stack_slot): New function.
3986         (rs6000_instantiate_decls): Likewise.
3987         (rs6000_secondary_memory_needed_rtx): Likewise.
3988         (rs6000_check_sdmode): Likewise.
3989         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
3990         (TARGET_INSTANTIATE_DECLS): Likewise.
3991         (rs6000_hard_regno_mode_ok): Allow SDmode.
3992         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
3993         (rs6000_emit_move): Handle SDmode.
3994         (function_arg_advance): Likewise.
3995         (function_arg): Likewise.
3996         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
3997         SDmode var args for 32-bit compiles.
3998         (rs6000_secondary_reload_class): Handle SDmode.
3999         (rs6000_output_function_epilogue): Likewise.
4000         (rs6000_function_value): Simplify if statement.
4001         (rs6000_libcall_value): Likewise.
4002         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
4003         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
4004         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
4005         (movsd_hardfloat): New define_insn.
4006         (movsd_softfloat): Likewise.
4007         (movsd_store): Likewise.
4008         (movsd_load): Likewise.
4009         (extendsddd2): Likewise.
4010         (extendsdtd2): Likewise.
4011         (truncddsd2): Likewise.
4012         (movdd_hardfloat64): Fixup comment.
4013         (UNSPEC_MOVSD_LOAD): New constant.
4014         (UNSPEC_MOVSD_STORE): Likewise.
4015
4016 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
4017
4018         PR c++/34965
4019         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
4020         TRUTH_XOR_EXPR.
4021         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
4022         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
4023         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR