OSDN Git Service

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