OSDN Git Service

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