OSDN Git Service

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