OSDN Git Service

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