OSDN Git Service

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