OSDN Git Service

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