OSDN Git Service

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