OSDN Git Service

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