OSDN Git Service

2008-09-09 Sandra Loosemore <sandra@codesourcery.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-09-09  Sandra Loosemore  <sandra@codesourcery.com>
2
3         * doc/invoke.texi (ARM Options): Correct errors in discussion 
4         of -mfloat-abi, -mhard-float, and -msoft-float.
5
6 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
7             Jan Hubicka  <jh@suse.cz>
8
9         PR middle-end/37356
10         * tree-inline.c (copy_bb): Insert stmt into copy_basic_block before
11         calling gimple_regimplify_operands on it.  Iterate over all newly
12         added statements, not just the last one.
13         (insert_init_stmt): Insert stmt into seq first, then call
14         gimple_regimplify_operands on it.  Don't create new gimplification
15         context, nor find referenced vars.
16
17 2008-09-09  Jakub Jelinek  <jakub@redhat.com>
18
19         PR other/37419
20         * ipa-prop.h (ipa_propagate_indirect_call_infos): Change last argument
21         to pointer to vector pointer.
22         * ipa-prop.c (ipa_propagate_indirect_call_infos,
23         propagate_info_to_inlined_callees): Likewise.
24         (update_call_notes_after_inlining): Likewise.  Push new indirect edge
25         to *new_edges instead of new_edges.  Reread IPA_EDGE_REF after
26         ipa_check_create_edge_args.
27         * ipa-inline.c (cgraph_decide_recursive_inlining): Change last argument
28         to pointer to vector pointer.
29         (cgraph_decide_inlining_of_small_function): Adjust
30         cgraph_decide_recursive_inlining and ipa_propagate_indirect_call_infos
31         calls.
32
33         PR target/37438
34         * config/i386/i386.md (zero_extendqihi2_movzbl): Enable when optimizing
35         for size, not speed.
36
37         PR rtl-optimization/37408
38         * function.c (assign_parm_find_stack_rtl): Set correct MEM_SIZE
39         if parm is promoted.
40
41 2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>
42
43         PR tree-optimization/37375
44         * tree-scalar-evolution.c (scev_info_str): Add field instantiated_below.
45         (new_scev_info_str, eq_scev_info, find_var_scev_info,
46         set_scalar_evolution, get_scalar_evolution, get_instantiated_value,
47         set_instantiated_value): Pass instantiated_below.
48         (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls to
49         above functions.
50         (instantiate_scev_1, instantiate_scev): Pass a basic block above which the
51         definitions are not instantiated.
52
53         * tree-scalar-evolution.h (instantiate_scev): Update declaration.
54         (block_before_loop): New.
55         * tree-data-ref.c (dr_analyze_indices): Update uses of instantiate_scev.
56         * graphite.c (block_before_scop): New.
57         (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a 
58         basic block, not a loop for determining the parameters.
59         (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the
60         scop.
61         (idx_record_params, find_params_in_bb, find_scop_parameters,
62         build_loop_iteration_domains, add_conditions_to_domain): Update calls 
63         to instantiate_scev.
64
65         * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H.
66
67 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
68
69         PR rtl-opt/37333
70         
71         * ira-build.c (ira_create_allocno): Setup frequency to 0.
72
73         * ira-color.c (update_conflict_hard_regno_costs): Remove assert.
74         Check zero freq and increase if necessary.
75
76 2008-09-09  Vladimir Makarov  <vmakarov@redhat.com>
77
78         * ira-conflicts.c (process_regs_for_copy): Check that the hard
79         regno is in the right range.  Add comments.
80
81 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
82
83         * Makefile.in (mips-tfile.o-warn): Don't error out on mips-tfile.c
84         warnings.
85         * mips-tfile.c (copy_object): Cast alloca result to int *.
86         * mips-tdump.c (print_symbol): Cast xmalloc return values to
87         proper types.
88         Rename class to sclass.
89         (read_tfile): Cast read_seek return values to proper types.
90         Cast xcalloc return value to proper type.
91
92 2008-09-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
93
94         * config/sol2.h (REGISTER_TARGET_PRAGMAS): Move ...
95         * config/i386/sol2.h (REGISTER_SUBTARGET_PRAGMAS): ... here.
96         * config/sparc/sol2.h (REGISTER_TARGET_PRAGMAS): ... and here.
97
98 2008-09-09  Jan Hubicka  <jh@suse.cz>
99
100         * profile.c (is_edge_inconsistent): Add debug output; ignore negative count
101         on fake edges.
102         (is_inconsistent): Add debug output.
103
104 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
105
106         * haifa-sched.c (advance_one_cycle): Do not print '\n' before printing
107         dump message.
108         (choose_ready): When first insn is chosen from the ready list, also
109         dump it.
110
111 2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
112
113         PR rtl-optimization/37360
114         * haifa-sched.c (max_issue): Do not assert that we never issue more
115         insns than issue_rate.  Add comment.
116         
117 2008-09-09  Richard Guenther  <rguenther@suse.de>
118
119         * tree-cfg.c (verify_types_in_gimple_op): Remove.
120         (verify_types_in_gimple_call): Rename to ...
121         (verify_gimple_call): ... this.  Enhance.
122         (verify_types_in_gimple_cond): Remove.
123         (verify_gimple_comparison): New function ...
124         (verify_types_in_gimple_assign): ... split out from here.
125         (verify_types_in_gimple_return): Rename to ...
126         (verify_gimple_return): ... this.  Enhance.
127         (verify_types_in_gimple_switch): Rename to ...
128         (verify_gimple_switch): ... this.  Enhance.
129         (verify_gimple_goto): New function.
130         (verify_types_in_gimple_phi): Rename to ...
131         (verify_gimple_phi): ... this.  Enhance.
132         (verify_types_in_gimple_stmt): Adjust calls to helper functions.
133         Fold in single-statement cases from verify_types_in_gimple_seq_2.
134         (verify_types_in_gimple_seq_2): Remove cases handled in
135         verify_types_in_gimple_stmt.
136
137 2008-09-09  Bernd Schmidt  <bernd.schmidt@analog.com>
138
139         * config/bfin/bfin.c (n_regs_to_save): New static variable.
140         (push_multiple_operation, pop_multiple_operation): Set it.
141         (workaround_rts_anomaly): New function.
142         (workaround_speculation): New function, broken out of bfin_reorg.
143         (bfin_reorg): Call the new functions.
144
145 2008-09-09  Richard Guenther  <rguenther@suse.de>
146
147         PR middle-end/37354
148         PR middle-end/30165
149         * gimplify.c (gimplify_conversion): Change conversions of
150         non-register type to VIEW_CONVERT_EXPRs.
151         (gimplify_addr_expr): If we need to make the operand
152         addressable make sure to use a properly initialized
153         temporary for that so it gets a valid gimple store.
154
155 2008-09-09  Aldy Hernandez  <aldyh@redhat.com>
156
157         * function.h (struct function): Add function_start_locus.
158         * cfgexpand.c (gimple_expand_cfg): Use it.
159         * c-parser.c (c_parser_declaration_or_fndef): Set it.
160
161 2008-09-09  Richard Guenther  <rguenther@suse.de>
162
163         PR tree-optimization/37433
164         * tree-ssa-ccp.c (ccp_fold): Properly guard folding of
165         function calls.
166
167 2008-09-09  Richard Guenther  <rguenther@suse.de>
168
169         PR tree-optimization/37387
170         * tree-ssa-ifcombine.c (ifcombine_iforif): Convert the name
171         and bits to a common type.
172
173 2008-09-09  Nick Clifton  <nickc@redhat.com>
174
175         * config/v850/v850.md (return): Restore frame size restriction.
176
177 2008-09-09  Paolo Bonzini  <bonzini@gnu.org>
178
179         * c-common.c (c_expand_decl): Remove.
180         * c-common.h (anon_aggr_type_p): Remove prototype.
181         (DECL_ANON_UNION_ELEMS): Remove.
182         * c-objc-common.h (LANG_HOOKS_EXPAND_DECL): Remove.
183         * c-decl.c (anon_aggr_type_p): Remove.
184         * langhooks-def.h (LANG_HOOKS_EXPAND_DECL): Remove.
185         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_EXPAND_DECL.
186         * langhooks.h (struct lang_hooks): Remove expand_decl.
187         * langhooks.c (lhd_expand_decl): Remove.
188         * stmt.c (expand_anon_union_decl): Remove.
189         * tree.h (expand_anon_union_decl): Remove prototype.
190
191 2008-08-09  Andy Hutchinson  <hutchinsonandy@aim.com>
192
193         PR target/36609
194         * config/avr/avr.c (avr_reorg): Create RTL for reversed compare with
195         zero.
196         * config/avr/avr.md  (QISI) : Define mode iterator.
197         (negated_tst<mode>) : Redefine as split using mode macro.
198         (reversed_tstqi): Define insn as reversed compare with zero.
199         (reversed_tsthi): Ditto.
200         (reversed_tstsi): Ditto.
201
202 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
203
204         PR middle-end/37393
205         * tree-inline.c (copy_bb): When replacing a gimple_call_va_arg_pack_p
206         call stmt by new_call, clear gimple_bb on stmt after gsi_replace.
207
208         PR middle-end/37414
209         * predict.c (optimize_function_for_size_p): Don't segfault if
210         FUN is NULL.
211         * fold-const.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop,
212         tree_swap_operands_p): Don't test cfun != NULL before calling
213         optimize_function_for_s*_p.
214
215 2008-09-08  Eric Botcazou  <ebotcazou@adacore.com>
216
217         * ira-color.c (ira_reuse_stack_slot): Set slot_num on success at the
218         end of the search.
219
220 2008-09-08  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
221
222         * crx/crx.h (IRA_COVER_CLASSES): Define.
223
224 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
225
226         PR middle-end/37337
227         * tree-ssa-dom.c (optimize_stmt): Call maybe_clean_or_replace_eh_stmt
228         even when a stmt has been gimple_modified_p, but after fold_stmt is
229         not any longer.  Remove unneeded may_have_exposed_new_symbols
230         initializations.
231
232 2008-09-08  Richard Guenther  <rguenther@suse.de>
233
234         PR tree-optimization/37421
235         * tree-ssa-sccvn.c (visit_copy): Make sure to fully
236         valueize the RHS.
237
238 2008-09-08  Jakub Jelinek  <jakub@redhat.com>
239
240         PR middle-end/37415
241         * opts.c (common_handle_option): Handle OPT_ftree_store_ccp.
242
243 2008-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
244
245         PR driver/37409
246         * pa-hpux.h (LINK_SPEC): Strip -fwhole-program.
247         * pa-hpux10.h (LINK_SPEC): Likewise.
248         * pa-hpux11.h (LINK_SPEC): Likewise.
249
250 2008-09-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
251
252         * pa32-regs.h (IRA_COVER_CLASSES): Define.
253         * pa64-regs.h (IRA_COVER_CLASSES): Define.
254
255 2008-09-07  Helge Deller  <deller@gmx.de>
256
257         * pa/linux-atomic.c: New file.
258         * pa/t-linux (LIB2FUNCS_STATIC_EXTRA): Define.
259         * pa/t-linux64 (LIB2FUNCS_STATIC_EXTRA): Define.
260
261 2008-09-07  Richard Guenther  <rguenther@suse.de>
262             Ira Rosen  <irar@il.ibm.com>
263
264         PR tree-optimization/36630
265         * tree-vect-transform.c (vect_update_ivs_after_vectorizer):
266         Call STRIP_NOPS before calling evolution_part_in_loop_num.
267
268 2008-09-07  Dorit Nuzman  <dorit@il.ibm.com>
269             Ira Rosen  <irar@il.ibm.com>
270
271         PR tree-optimization/35642
272         * config/rs6000/altivec.md (mulv8hi3): Implement.
273
274 2008-09-06  Jeff Law <law@redhat.com>
275
276         * h8300/h8300.h (IRA_COVER_CLASSES): Define.
277
278 2008-09-06  Jan Hubicka  <jh@suse.cz>
279
280         PR tree-optimization/14703
281         * tree-ssa-live.c (remove_unused_scope_block_p): Remove ignored declarations.
282         * passes.c (init_optimization_passes): Recompute inline parameters.
283
284 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
285
286         * config/mips/mips.c (mips_function_ok_for_sibcall): Check for
287         DECL being null.
288
289 2008-09-06  Richard Sandiford  <rdsandiford@goolemail.com>
290             Peter Fuerst  <post@pfrst.de>
291
292         * doc/invoke.texi: Document -mr10k-cache-barrier=.
293         * doc/extend.texi: Document __builtin_mips_cache.
294         * config/mips/mips-ftypes.def: Add a (VOID, SI, CVPOINTER) entry.
295         * config/mips/mips.opt (mr10k-cache-barrier=): New option.
296         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
297         __GCC_HAVE_BUILTIN_MIPS_CACHE.
298         (TARGET_CACHE_BUILTIN, ISA_HAS_CACHE): New macros.
299         * config/mips/mips.c (mips_r10k_cache_barrier_setting): New enum.
300         (set_push_mips_isas): New variable.
301         (mips_r10k_cache_barrier): New variable.
302         (cache): New availability predicate.
303         (mips_builtins): Add an entry for __builtin_mips_cache.
304         (mips_build_cvpointer_type): New function.
305         (MIPS_ATYPE_CVPOINTER): New macro.
306         (mips_prepare_builtin_arg): Only use the insn's mode if the rtx's
307         mode is VOIDmode.
308         (r10k_simplified_address_p, r10k_simplify_address)
309         (r10k_uncached_address_p, r10k_safe_address_p)
310         (r10k_needs_protection_p_1, r10k_needs_protection_p_store)
311         (r10k_needs_protection_p_call, r10k_needs_protection_p)
312         (r10k_insert_cache_barriers): New functions.
313         (mips_reorg_process_insns): Delete cache barriers after a
314         branch-likely instruction.
315         (mips_reorg): Call r10k_insert_cache_barriers.
316         (mips_handle_option): Handle OPT_mr10k_cache_barrier_.
317         * config/mips/mips.md (UNSPEC_MIPS_CACHE): New constant.
318         (UNSPEC_R10K_CACHE_BARRIER): Likewise.
319         (mips_cache, r10k_cache_barrier): New define_insns.
320
321 2008-09-06  Richard Sandiford  <rdsandiford@googlemail.com>
322
323         * ira-int.h (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
324         * ira-color.c (setup_allocno_left_conflicts_num): Use
325         hard_reg_set_equal_p instead of a comparison with
326         ira_zero_hard_reg_set.
327         * ira.c (setup_reg_subclasses): Likewise.
328         (setup_cover_and_important_classes): Likewise.
329         (setup_class_translate): Likewise.
330         (setup_reg_class_intersect_union): Likewise.
331         (ira_zero_hard_reg_set, ira_one_hard_reg_set): Delete.
332         (ira_init_once): Don't initialize them.
333
334 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
335
336         * doc/tm.texi (IRA_COVER_CLASSES): Fix a typo.
337
338 2008-09-05  Vladimir Makarov  <vmakarov@redhat.com>
339
340         * ira-color.c (ira_fast_allocation): Permit global allocno
341         allocation.
342         
343 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
344
345         Improved branch hints, safe hints, and scheduling.
346
347         * haifa-sched.c (sched_emit_insn) : Define.
348         * sched-int.h (sched_emit_insn) : Add prototype.
349         * doc/invoke.texi (-mdual-nops, -mhint-max-nops,
350         -mhint-max-distance -msafe-hints) : Document.
351         * config/spu/spu.c (spu_flag_var_tracking): New.
352         (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_INIT,
353         TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2,
354         TARGET_ASM_FILE_START): Define.
355         (TARGET_SCHED_ADJUST_PRIORITY): Remove.
356         (STOP_HINT_P, HINTED_P, SCHED_ON_EVEN_P): Define.
357         (spu_emit_branch_hint): Add blocks argument.
358         (insert_branch_hints, insert_nops): Remove.
359         (pad_bb, insert_hbrp_for_ilb_runout, insert_hbrp, in_spu_reorg,
360         uses_ls_unit, spu_sched_init_global, spu_sched_init,
361         spu_sched_reorder, asm_file_start): New functions.
362         (clock_var, spu_sched_length, pipe0_clock,
363         pipe1_clock, prev_clock_var, prev_priority,
364         spu_ls_first, prev_ls_clock): New static variables.
365         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_SAFE_HINTS.
366         * config/spu.md (iprefetch): Add operand, make it clobber MEM.
367         (nopn_nv): Add a non-volatile version of nop.
368         * config/spu/spu.opt (-mdual-nops, -mhint-max-nops,
369         -mhint-max-distance, -msafe-hints): New options.
370
371 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
372             Samuel Tardieu  <sam@rfc1149.net>
373
374         * opts.c (decode_options): Combine nested if statements.
375
376         PR target/37283
377         * opts.c (decode_options): Handle more relationships among
378         unit-at-a-time, toplevel-reorder, and section-anchors.
379
380 2008-09-05  David Daney  <ddaney@avtrex.com>
381
382         * doc/install.texi (--enable-reduced-reflection): Document new option.
383
384 2008-09-05  Bob Wilson  <bob.wilson@acm.org>
385
386         * config/xtensa/predicates.md (nonimmed_operand, mem_operand): Use
387         constantpool_mem_p.
388         (constantpool_operand): New.
389         (move_operand): Disallow sub-word modes for the constant pool.
390         * config/xtensa/xtensa.c (TARGET_SECONDARY_RELOAD): Define.
391         (xtensa_secondary_reload_class): Replace with....
392         (xtensa_secondary_reload): this function.  Remove SIGN_EXTEND check. 
393         Set icode for sub-word reloads from the constant pool.
394         * config/xtensa/xtensa.h (SECONDARY_INPUT_RELOAD_CLASS): Delete.
395         (SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
396         * config/xtensa/xtensa.md (reload<mode>_literal): New.
397         * config/xtensa/xtensa-protos.h: Update prototypes.
398         
399 2008-09-05  Joseph Myers  <joseph@codesourcery.com>
400
401         * config/mips/mips.h (enum reg_class): Add FRAME_REGS.
402         (REG_CLASS_NAMES): Update.
403         (REG_CLASS_CONTENTS): Update.
404         * config/mips/mips.c (mips_regno_to_class): Use FRAME_REGS instead
405         of ALL_REGS for regs 77 and 78.
406         * function.c (instantiate_virtual_regs_in_insn): Assert that
407         return value of simplify_gen_subreg is not NULL.
408
409 2008-09-05  Paolo Bonzini  <bonzini@gnu.org>
410
411         * emit-rtl.c (gen_rtvec): Rewrite not using gen_rtvec_v.
412         (gen_rtvec_v): Fix coding standards.
413
414 2008-09-04  Jan Hubicka  <jh@suse.cz>
415
416         * i386.c (decide_alg): Be more conservative about optimizing for size.
417
418 2008-09-04  Ian Lance Taylor  <iant@google.com>
419
420         * varasm.c (narrowing_initializer_constant_valid_p): New
421         static function.
422         (initializer_constant_valid_p): Call it.
423
424 2008-09-04  Jeff Law  <law@redhat.com>
425
426         * fold-const.c (native_encode_real): Fix computation of WORDS.
427         (native_interpret_real): Likewise.
428
429 2008-09-04  Janis Johnson  <janis187@us.ibm.com>
430
431         * config/rs6000/t-rs6000: Remove target gt-rs6000.h.
432
433 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
434
435         * ira-conflicts.c (process_regs_for_copy): Check insn to check
436         that the cost is already taken into account in ira-costs.c
437
438         * ira-int.h (ira_debug_copy, ira_debug_copies): New.
439
440         * ira-build.c (print_copy, print_copies, ira_debug_copy,
441         ira_debug_copies): New.
442         (ira_bulid): Call print_copies.
443         
444         * doc/tm.texi (IRA_COVER_CLASSES): Fix the description.
445         
446 2008-09-04  Samuel Tardieu  <sam@rfc1149.net>
447
448         PR target/32783
449         * config/rs6000/rs6000.c (optimization_options): Remove check of
450         flag_toplevel_order.
451
452 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
453
454         * config/mips/mips.h (ISA_HAS_SEQ_SNE): New macro.
455         * config/mips/mips.c (mips_expand_scc): Also expand seq and sne if
456         second operand is a reg_imm10_operand.
457         * config/mips/mips.md (*seq_<GPR:mode><GPR2:mode>_seq,
458         *sne_<GPR:mode><GPR2:mode>_sne): New patterns.
459         (*seq_<GPR:mode><GPR2:mode>): Rename to
460         *seq_zero_<GPR:mode><GPR2:mode>.  Don't match if
461         ISA_HAS_SEQ_SNE.
462         (*seq_<GPR:mode><GPR2:mode>_mips16): Rename to
463         *seq_zero_<GPR:mode><GPR2:mode>_mip16.  Don't match if
464         ISA_HAS_SEQ_SNE.
465         (*sne_<GPR:mode><GPR2:mode>): Rename to
466         *sne_zero_<GPR:mode><GPR2:mode>.  Don't match if
467         ISA_HAS_SEQ_SNE.
468
469 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
470
471         * config/mips/mips.h (ISA_HAS_EXTS): New macro.
472         * config/mips/mips.md (*ashr_trunc<mode>): Name the pattern
473         combining an arithmetic right shift by more than 31 and a
474         trunction.  Don't match for out-of-range shift amounts.  Set
475         attribute mode to <MODE>.
476         (*lshr32_trunc<mode>): Name the pattern combining a logical right
477         shift by 32 and and a truncation.  Set attribute mode to <MODE>.
478         (*<optab>_trunc<mode>_exts): New pattern for truncated right
479         shifts by less than 32.
480         (extv): Change predicate on first operand to accept registers.
481         Change predicate of the other operands from immediate_operand to
482         const_int_operand.  Expand exts when source is a register.
483         (extzv): Change predicate of the constant operands from
484         immediate_operand to const_int_operand.
485         (extzv<mode>): Change predicate of the constant operands from
486         immediate_operand to const_int_operand and no constraint. Also
487         remove mode.
488         (*extzv_trunc<mode>_exts): New pattern.
489
490 2008-09-04  Adam Nemet  <anemet@caviumnetworks.com>
491
492         * config/mips/mips.h (ISA_HAS_CINS): New macro.
493         * config/mips/mips-protos.h (mask_low_and_shift_p,
494         mask_low_and_shift_len): Declare.
495         * config/mips/mips.c (mask_low_and_shift_p,
496         mask_low_and_shift_len): New functions.
497         (mips_print_operand): Handle new operand prefix "m".
498         * config/mips/mips.md (*cins<mode>): New pattern.
499
500 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
501
502         * config/bfin/bfin.c (gen_one_bundle): Don't create new nops when
503         optimizing for size.
504
505 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
506
507         * df-scan.c (df_get_entry_block_def_set): Add STACK_POINTER_REGNUM
508         regardless of epilogue_completed.
509
510 2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
511
512         PR middle-end/37359
513         * ira-lives.c (process_bb_node_lives): Check setjmp.
514
515 2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>
516
517         PR middle-end/37243
518         * ira-build.c (form_loop_tree): Reverse BB walk.
519         (create_bb_allocnos): Likewise.
520         * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
521         (mark_reg_store): Rename to...
522         (mark_ref_live): ...this and take a df_ref argument instead of
523         note_stores arguments.  Assert that we have a register.
524         (mark_reg_clobber): Delete.
525         (def_conflicts_with_inputs_p): New function.
526         (mark_reg_conflicts): Delete.
527         (mark_reg_death): Rename to...
528         (mark_ref_dead): ...this and take a df_ref argument instead of
529         a register.  Assert that we have a register.
530         (process_bb_node_lives): Hoist frequency calculation out of
531         instruction walk.  Convert from a forwards scan to a backwards scan.
532         Use DF_REF_USES and DF_REF_DEFS instead of register notes and
533         note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
534         (create_allocno_live_ranges): Don't create regs_set.
535
536 2008-09-04  Ian Lance Taylor  <iant@google.com>
537
538         * rtl.h (LABEL_REF_NONLOCAL_P): Don't check for REG_LABEL_OPERAND
539         or REG_LABEL_TARGET.
540         * calls.c (emit_library_call_value_1): Use MEM_P rather than
541         comparing MODE with MEM.
542         * gimple.c (gimple_build_predict): Cast END_PREDICTORS before
543         comparing with GF_PREDICT_TAKEN.
544         (gimple_get_lhs): Change code to enum gimple_code.
545         (gimple_set_lhs): Likewise.
546         * ifcvt.c (noce_process_if_block): Correct GET_MODE to GET_CODE.
547         * omp-low.c (find_omp_clause): Change kind parameter to enum
548         omp_clause_code.
549         * tree-flow.h (find_omp_clause): Update declaration.
550         * regrename.c (clear_dead_regs): Change kind parameter to enum
551         reg_note.
552         * reload1.c (eliminate_regs_1): Use REG_NOTE_KIND rather than
553         GET_MODE.
554         * see.c (see_get_extension_data): Change return type to enum
555         entry_type.  Change UNKNOWN to NOT_RELEVANT, SIGN_EXTEND to
556         SIGNED_EXTENDED_DEF, ZERO_EXTEND to ZERO_EXTENDED_DEF.
557         (see_gen_normalized_extension): Change extension_code parameter to
558         enum entry_type.
559         (see_seek_pre_extension_expr): Change extension_code to enum
560         entry_type.
561         (see_merge_one_def_extension): Likewise.
562         (see_handle_relevant_defs): Likewise.
563         (see_handle_relevant_uses): Likewise.
564         (see_analyze_one_def): Likewise.
565         * tree-cfg.c (need_fake_edge_p): Compare gimple code with
566         GIMPLE_ASM rather than ASM_EXPR.
567         * tree-ssa-alias.c (is_escape_site): Compare gimple code with
568         GIMPLE_RETURN rather than RETURN_EXPR.
569         * tree-ssa-ccp.c (likely_value): Change code to enum gimple_code.
570         (evaluate_stmt): Likewise.
571         * tree-vect-analyze.c (vect_analyze_operations): Change relevance
572         to enum vect_relevant.
573         (vect_mark_stmts_to_be_vectorized): Change assertion to not
574         compare gimple codes with tree codes.
575
576 2008-09-04  Paul Brook  <paul@codesourcery.com>
577
578         * config/arm/arm.c (arm_size_rtx_costs): Call cost function.
579
580 2008-09-04  Bernd Schmidt  <bernd.schmidt@analog.com>
581
582         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Restore a null
583         pointer check lost in the recent no-unit-at-a-time patch.
584         
585 2008-09-04  Jan Hubicka  <jh@suse.cz>
586
587         PR middle-end/37343
588         * tree-switch-conversion.c (check_final_bb): Accept only IP
589         invariants.
590
591 2008-09-04  Jan Hubicka  <jh@suse.cz>
592
593         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
594         Break out from ...
595         (vrp_evaluate_conditional_warnv_with_ops): ... this one.  Add
596         using_ranges argument.
597         (vrp_evaluate_conditional): Avoid bogus warning for type range.
598         (vrp_visit_cond_stmt): Update call of
599         vrp_evaluate_conditional_warnv_with_ops
600
601 2008-09-04  Jan Hubicka  <jh@suse.cz>
602
603         PR tree-optimization/37345
604         PR tree-optimization/37358
605         PR tree-optimization/37357
606         * tree.c (build_function_type_skip_args): Build distinct type copy;
607         set TYPE_CONTEXT.
608         (build_function_decl_skip_args): Set type of new decl not orig decl;
609         clear DECL_VINDEX for methods turned into functions.
610
611 2008-09-04  Nick Clifton  <nickc@redhat.com>
612
613         * configure.ac (HAVE_GAS_LCOMM_WITH_ALIGNMENT): New assembler
614         check.
615         * configure: Regenerate.
616         * config.in: Regenerate.
617         * config/i386/bsd.h (ASM_OUTPUT_ALIGNED_LOCAL): Use .lcomm with an
618         alignment field, if it is supported.
619
620 2008-09-04  Kai Tietz  <kai.tietz@onevision.com>
621
622         * config/i386/t-mingw32 (SHLIB_LC): Change order of import
623         libraries.
624
625 2008-09-03  David Edelsohn  <edelsohn@gnu.org>
626
627         * config/rs6000/rs6000.c (processor_target_table): Do not
628         enable VMX for POWER6.
629
630 2008-09-03  Anton Blanchard  <anton@samba.org>
631
632         * config/rs6000/rs6000.c (rs6000_split_lock_test_and_set): Do not
633         emit memory barrier before operation.
634
635 2008-09-03  John David Anglin  <dave.anglin@nrc.cnrc.gc.ca>
636
637         PR testsuite/37325
638         * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL_REAL): Call
639         default_elf_asm_output_external.
640
641 2008-09-03  Jeff Law  <law@redhat.com>
642
643         * h8300.c (expand_a_shift): Avoid invalid RTL sharing.
644
645 2008-09-03  Richard Henderson  <rth@redhat.com>
646
647         * config/alpha/alpha.c (alpha_split_lock_test_and_set): Move
648         memory barrier to below the test-and-set.
649         (alpha_split_lock_test_and_set_12): Likewise.
650
651 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
652
653         PR rtl-opt/37243
654
655         * ira-int.h (ira_loop_tree_node): Rename mentioned_allocnos to
656         all_allocnos.
657
658         * ira-color.c (print_loop_title): Use all_allocnos.
659         (color_pass): Ditto.  Don't add border_allocnos.  Check that
660         subloop allocno in the correspdoning bitmap all_allocnos.
661
662         * ira-emit.c (change_loop): Use all_allocnos.
663
664         * ira-build.c (create_loop_tree_nodes, finish_loop_tree_node):
665         Ditto.
666         (ira_create_allocno): Set up all_allocnos bit for the created
667         allocno.
668         (create_cap_allocno): Remove setting mentioned_allocnos.
669         (create_insn_allocnos): Ditto.
670         (remove_unnecessary_allocnos): Use all_allocnos.
671         (check_allocno_creation): Check that allocnos are in the
672         corresponding bitmap all_allocnos.
673         
674 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
675
676         PR rtl-opt/37243
677         
678         * ira-conflicts.c (REG_SUBREG_P, go_through_subreg): New.
679         (process_regs_for_copy): Process subregs.  Refine check when cost
680         is taken into account in ira-costs.c.
681         (process_reg_shuffles): Use REG_SUBREG_P.
682         (add_insn_allocno_copies): Ditto.  Ignore modes.
683
684         * ira-color.c (conflict_allocno_vec): New.
685         (COST_HOP_DIVISOR): New macro.
686         (update_copy_costs_1): Use it.
687         (update_conflict_hard_regno_costs): New function.
688         (assign_hard_reg): Use it.
689         (ira_color): Allocate and free conflict_allocno_vec.
690  
691 2008-09-03  Vladimir Makarov  <vmakarov@redhat.com>
692
693         PR rtl-opt/37296
694
695         * ira-int.h (ira_sort_insn_chain): Remove.
696
697         * ira.c (basic_block_order_nums, chain_insn_order,
698         chain_freq_compare, chain_bb_compare, ira_sort_insn_chain): Remove.
699         (ira): Don't call ira_sort_insn_chain.
700
701         * reload1.c (reload): Don't call ira_sort_insn_chain.
702
703 2008-09-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
704
705         PR middle-end/37293
706         * cgraphunit.c (update_call_expr): Remove eh regions from statements
707         which become non throw.
708         (cgraph_function_versioning): Also clear DECL_WEAK.  Call
709         update_call_expr after updating the flags on the decl.
710
711 2008-09-03  Jan Hubicka  <jh@suse.cz>
712
713         PR tree-optimization/37315
714         * cgraph.c (cgraph_create_edge): Use gimple_has_body_p.
715         * cgraphunit.c (verify_cgraph_node): drop gimple_body check.
716         (cgraph_analyze_functions): Use node->analyzed
717         (cgraph_mark_functions_to_output): Likewise.
718         (cgraph_expand_function): All functions can be released after
719         expanding.
720         (cgraph_optimize): Use gimple_has_body_p.
721         * ipa-inline.c (cgraph_clone_inlined_nodes): Use analyzed flag.
722         (cgraph_decide_inlining_incrementally): Likewise.
723         (inline_transform): Inline transform.
724         * tree-inline.c (initialize_cfun): Do now shallow copy structure;
725         copy fields needed.
726         (inlinable_function_p): Drop gimple_body check.
727         (expand_call_inline): Use gimple_has_body_p.
728         * gimple.c (gimple_has_body_p): New.
729         * gimple.h (gimple_has_body_p): Add prototype.
730         * tree-cfg.c (execute_build_cfg): Remove gimple_body.
731         (dump_function_to_file): Use gimple_has_body_p check.
732
733 2008-09-03  Jakub Jelinek  <jakub@redhat.com>
734
735         PR c++/37346
736         * gimple.h (gimple_has_substatements): GIMPLE_OMP_CRITICAL has
737         substatements.
738         * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_CRITICAL.
739
740 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
741
742         From Michael Frysinger  <michael.frysinger@analog.com>
743         * config/bfin/bfin.c (bfin_cpus[]): Add 0.1 for bf522, bf523, bf524,
744         bf525, bf526, bf527, bf542, bf544, bf547, bf548, and bf549.  Add 0.2
745         for bf538.
746
747 2008-09-03  Hari Sandanagobalane  <hariharan@picochip.com>
748
749         Add picoChip port.
750         * doc/extend.texi: Document picoChip builtin functions.
751         * doc/invoke.texi: Document picoChip options.
752         * doc/contrib.texi: Add picoChip contribution.
753         * doc/md.texi: Document picoChip constraints.
754         * config.gcc: Add picochip-*-*.
755         * config/picochip/: Add new port.
756
757 2008-09-03  Richard Guenther  <rguenther@suse.de>
758
759         PR tree-optimization/37328
760         * tree-sra.c (sra_build_assignment): Gimplify properly.
761         (generate_copy_inout): Take the correct stmt as definition,
762         remove bogus assert.
763
764 2008-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
765
766         * config/bfin/bfin.c (bfin_expand_prologue): Honour no_stack_limit
767         attributes.
768
769         From Michael Frysinger  <michael.frysinger@analog.com>
770         * config/bfin/bfin.c (bfin_handle_option): Remove BF561 warning.
771
772 2008-09-03 Danny Smith  <dannysmith@usrs.sourceforge.net>
773
774         * gthr-win32.h (CONST_CAST2): Really make sure CONST_CAST2 is
775         defined.
776         (__gthread_setspecific): Revert 2008-08-31 change to
777         __GTHREAD_HIDE_W32API case.  Apply it to !__GTHREAD_HIDE_W32API
778         case.
779
780 2008-09-02  Aldy Hernandez  <aldyh@redhat.com>
781
782         * diagnostic.c (error_at): New.
783         * toplev.h (error_at): New prototype.
784         * c-typeck.c (build_array_ref): Call error_at instead of error.
785         Pass location to pedwarn.
786
787 2008-09-02  Adam Nemet  <anemet@caviumnetworks.com>
788
789         * sel-sched.c (sel_hard_regno_rename_ok): Mark arguments unused.
790
791 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
792
793         * dwarf2out.c (tree_add_const_value_attribute): Only handle
794         VAR_DECL and CONST_DECL.
795
796 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
797             Jakub Jelinek  <jakub@redhat.com>
798
799         * config/i386/i386.c (X86_64_VARARGS_SIZE): Removed.
800         (setup_incoming_varargs_64): Assume cum != NULL. Set/check
801         ix86_varargs_gpr_size and ix86_varargs_fpr_size.  Use
802         ix86_varargs_gpr_size instead of X86_64_REGPARM_MAX.
803         Don't set ix86_save_varrargs_registers.
804         (ix86_setup_incoming_varargs): Assume cum != NULL.
805         (ix86_va_start): Check ix86_varargs_gpr_size and
806         ix86_varargs_fpr_size instead of cfun->va_list_gpr_size and
807         cfun->va_list_fpr_size, respectively.  Subtract 8*X86_64_REGPARM_MAX
808         from frame pointer if ix86_varargs_gpr_size == 0.
809         (ix86_compute_frame_layout): Updated.
810         * config/i386/i386.h (ix86_save_varrargs_registers): Removed.
811         (ix86_varargs_gpr_size): Define.
812         (ix86_varargs_fpr_size): Likewise.
813         (machine_function): Remove save_varrargs_registers.
814         Add varargs_gpr_size and varargs_fpr_size.
815
816 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
817
818         * config/alpha/alpha.c (va_list_skip_additions,
819         alpha_stdarg_optimize_hook, alpha_gimplify_va_arg_1): Tuplify.
820         (alpha_gimplify_va_arg): Call unshare_expr on second use of
821         offset_field.
822
823         PR tree-optimization/36766
824         * tree-cfg.c (gimple_purge_all_dead_eh_edges): Do nothing
825         for already removed basic blocks.
826
827         PR target/36332
828         * real.c (real_maxval): Clear a lower bit to make real_maxval
829         match get_max_float for IBM long double format.
830
831 2008-09-02  Andreas Schwab  <schwab@suse.de>
832
833         * configure.ac: Use m4_quote to quote the expansion of m4_do.
834         * configure: Regenerate.
835
836 2008-09-02  Richard Sandiford  <rdsandiford@googlemail.com>
837
838         * simplify-rtx.c (simplify_binary_operation_1): Check for CONST,
839         SYMBOL_REF and LABEL_REF when applying plus_constant, instead of
840         checking for a non-VOID CONSTANT_P.
841
842 2008-09-02  Jan Hubicka  <jh@suse.cz>
843
844         * predict.c (pass_strip_predict_hints): Avoid bugs dump file.
845         * expmed.c (expand_divmod): Fix test of smod_pow2_cheap and sdiv_pow2_cheap
846
847 2008-09-02  H.J. Lu  <hongjiu.lu@intel.com>
848
849         * expr.c (emit_group_store): Don't assert stack temp mode size.
850
851 2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
852             Tobias Grosser  <grosser@fim.uni-passau.de>
853             Jan Sjodin  <jan.sjodin@amd.com>
854             Harsha Jagasia  <harsha.jagasia@amd.com>
855             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
856             Konrad Trifunovic  <konrad.trifunovic@inria.fr>
857             Adrien Eliche  <aeliche@isty.uvsq.fr>
858
859         Merge from graphite branch.
860         * graphite.c: New.
861         * graphite.h: New.
862         * tree-loop-linear.c (perfect_loop_nest_depth): Export.
863         * doc/invoke.texi (-floop-block, -floop-interchange,
864         -floop-strip-mine): Document new flags.
865         * tree-into-ssa.c (gimple_vec): Moved...
866         * tree-loop-distribution.c (rdg_component): Moved...
867         * cfgloopmanip.c: Include tree-flow.h.
868         (update_dominators_in_loop): New.
869         (create_empty_if_region_on_edge): New.
870         (create_empty_loop_on_edge): New.
871         (loopify): Use update_dominators_in_loop.
872         * tree-pass.h (pass_graphite_transforms): Declared.
873         * configure: Regenerate.
874         * tree-phinodes.c (make_phi_node): Export.
875         (add_phi_node_to_bb): New, split from create_phi_node.
876         * tree-chrec.c (for_each_scev_op): New.
877         * tree-chrec.h (for_each_scev_op): Declared.
878         * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
879         (remove_statement): Call get_phi_with_result.
880         * config.in (HAVE_cloog): Undef.
881         * gdbinit.in (pgg): New.
882         * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
883         * tree-ssa-loop.c (graphite_transforms): New.
884         (gate_graphite_transforms): New.
885         (pass_graphite_transforms): New.
886         * configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
887         HAVE_cloog): Defined.
888         * tree-vectorizer.c (rename_variables_in_bb): Export.
889         * tree-data-ref.c (dr_may_alias_p): Export.
890         (stmt_simple_memref_p): New.
891         (find_data_references_in_stmt): Export.
892         (find_data_references_in_loop): Export.
893         (create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
894         (create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
895         (create_rdg_vertices): Export.
896         (build_empty_rdg): New.
897         (build_rdg): Call build_empty_rdg.  Free dependence_relations.
898         * tree-data-ref.h (rdg_component): ... here.
899         (scop_p): New.
900         (struct data_reference): Add a field scop.
901         (DR_SCOP): New.
902         (find_data_references_in_loop): Declared.
903         (find_data_references_in_stmt): Declared.
904         (create_rdg_vertices): Declared.
905         (dr_may_alias_p): Declared.
906         (stmt_simple_memref_p): Declared.
907         (struct rdg_edge): Add a field ddr_p relation.
908         (build_empty_rdg): Declared.
909         * lambda.h (lambda_matrix): Declare a VEC of.
910         (find_induction_var_from_exit_cond): Declared.
911         (lambda_vector_compare): New.
912         * common.opt (fgraphite, floop-strip-mine,
913         floop-interchange, floop-block): New flags.
914         * lambda-code.c (find_induction_var_from_exit_cond): Export.
915         * cfgloop.c (is_loop_exit): New.
916         * cfgloop.h (is_loop_exit): Declared.
917         (create_empty_if_region_on_edge): Declared.
918         (create_empty_loop_on_edge): Declared.
919         * tree-flow.h (add_phi_node_to_bb): Declared.
920         (make_phi_node): Declared.
921         (rename_variables_in_bb): Declared.
922         (perfect_loop_nest_depth): Declared.
923         (graphite_transform_loops): Declared.
924         * Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
925         (graphite.o-warn): Add -Wno-error.
926         (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
927         (LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
928         (INCLUDES): Add PPLINC, CLOOGINC.
929         (OBJS-common): Add graphite.o.
930         (graphite.o): Add rule.
931         * gimple.h (gimple_vec): ... here.
932         * tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
933         * passes.c (init_optimization_passes): Schedule 
934         pass_graphite_transforms.
935
936 2008-09-02  Samuel Tardieu  <sam@rfc1149.net>
937
938         PR target/37283
939         * opts.c (decode_options): Move processing of -fno-unit-at-a-time
940         and -fno-toplevel-reorder after handle_options.
941
942 2008-09-02  Paul Brook  <paul@codesourcery.com>
943
944         * config/arm/arm.c (arm_tune_cortex_a9): Define.
945         (arm_override_options): Set arm_tune_cortex_a9.
946         (arm_rtx_costs_1): Make register shifts more expensive on Cortex-A9.
947         (arm_issue_rate): Handle cortexa9.
948         * config/arm/arm.h (arm_tune_cortex_a9): Declare.
949         * config/arm/arm-cores.def: Add cortex-a9.
950         * config/arm/arm-tune.md: Regenerate.
951         * config/arm/arm.md: Include cortex-a9.md.
952         (generic_sched, generic_vfp): Add cortexa9.
953         * config/arm/cortex-a9.md: New file.
954
955 2008-09-02  Richard Guenther  <rguenther@suse.de>
956
957         PR tree-optimization/37327
958         * tree-vrp.c (register_new_assert_for): Make sure to not have
959         TREE_OVERFLOW set on the bound.
960
961 2008-09-02  Alexander Monakov  <amonakov@ispras.ru>
962
963         Fixed typo in date of the 2008-09-01 MOVE_RATIO commit.
964
965         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 1.
966         * config/ia64/ia64.c (ia64_set_sched_flags): Always initialize
967         spec_info->mask.
968
969 2008-09-02  Victor Kaplansky  <victork@il.ibm.com>
970
971         * gcc/config/spu/spu.md (divdf3): Removed.
972
973 2008-09-02  Jakub Jelinek  <jakub@redhat.com>
974
975         PR tree-optimization/37095
976         * cgraph.c (cgraph_node): When creating new cgraph node after
977         assembler_name_hash has been populated, record it in the hash
978         table.
979
980 2008-09-01  Paul Brook  <paul@codesourcery.com>
981
982         * doc/invoke.texi: Document -mword-relocations.
983         * config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
984         * config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
985         * config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
986         * config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
987         (arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
988         (arm_emit_movpair): New function.
989         (arm_print_operand <c>): Handle sybolic addresses.
990         * config/arm/arm.h (TARGET_USE_MOVT): Define.
991         (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
992         * config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
993         * config/arm/arm.opt: Add -mword-relocations.
994         * config/arm/arm.md (movsi): Use arm_emit_movpair.
995         (arm_movt, arm_movw): New.
996
997 2008-09-01  Paul Brook  <paul@codesourcery.com>
998
999         * config/arm/arm.c (arm_override_options): Set arm_abi earlier.
1000         Allow Interworking on ARMv4 EABI based targets.
1001         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
1002         (SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.
1003
1004 2008-09-01  Paul Brook  <paul@codesourcery.com>
1005
1006         * config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
1007         optimized LT0 test.  Remove optimization for GT.
1008
1009 2008-09-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1010
1011         * pa64-hpux.h (LIB_SPEC): Link against librt when building static
1012         openmp applications.
1013         * pa-hpux11.h (LIB_SPEC): Likewise.
1014
1015         * ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is
1016         defined.
1017
1018 2008-09-01  Jan Hubicka  <jh@suse.cz>
1019
1020         * predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
1021         present, use only counts; when guessed use only frequencies.
1022         (estimate_bb_frequencies): Use function_frequency.
1023         * profile.c (compute_branch_probabilities): Exit early when
1024         profile reading failed. Set profile_status.
1025         (branch_prob): Do not set profile_status.
1026
1027 2008-09-01  Aldy Hernandez  <aldyh@redhat.com>
1028
1029         * tree.c (protected_set_expr_location): New.
1030         * tree.h (protected_set_expr_location): New prototype.
1031         * c-tree.h (build_array_ref): Add argument.
1032         (parser_build_unary_op): Same.
1033         * c-typeck.c (build_indirect_ref): Handle new location argument.
1034         (build_array_ref): Same.
1035         (parser_build_unary_op): Same.
1036         * gimplify.c (gimplify_asm_expr): Set input_location before calling
1037         error.
1038         * c-omp.c (c_finish_omp_atomic): Pass location when calling
1039         build_indirect_ref.
1040         * c-common.c (finish_label_address_expr): Handle new location
1041         argument.
1042         * c-common.h (build_indirect_ref): Add argument.
1043         (finish_label_address_expr): Same.
1044         * c-parser.c (c_parser_unary_expression): Pass location to build
1045         functions.
1046         (c_parser_postfix_expression): Same.
1047
1048 2008-09-01  Paul Brook  <paul@codesourcery.com>
1049
1050         * config/arm/arm.md: Include cortex-r4f.md.
1051         (attr fpu): Update type list.
1052         (attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
1053         fconstd, fcmps and fcmpd.
1054         (attr tune_cortexr4): Define.
1055         (attr generic_sched, attr generic_vfp): Use tune_cortexr4.
1056         * config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
1057         fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
1058         * config/arm/arm.c (arm_issue_rate): Add cortexr4f.
1059         * config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
1060         types.
1061         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
1062         cortex_a8_vfp_farith: Ditto.
1063         * config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
1064         * config/arm/cortex-r4.md: Use tune_cortexr4.
1065         * config/arm/cortex-r4f.md: New file.
1066
1067 2008-09-01  Richard Guenther  <rguenther@suse.de>
1068
1069         PR tree-optimization/37305
1070         * tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
1071         the result of constant conversions.
1072         (fold_gimple_assign): Likewise.
1073
1074 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
1075
1076         * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
1077         #ifdef ENABLE_CHECKING.
1078
1079 2008-09-01  Andrey Belevantsev  <abel@ispras.ru>
1080
1081         * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
1082         * sched-int.h (print_insn, print_pattern, print_value): Declare also
1083         when !INSN_SCHEDULING.
1084
1085 2008-09-01  Andreas Schwab  <schwab@suse.de>
1086
1087         * config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
1088
1089 2008-09-01  Paul Brook  <paul@codesourcery.com>
1090
1091         * config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.
1092
1093 2008-09-01  Jan Hubicka  <jh@suse.cz>
1094
1095         * config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
1096
1097         * expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
1098         * expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
1099         * gimplify.c (gimplify_init_constructor): Add speed operand.
1100         * tree-sra.c (decide_block_copy): Likewise.
1101         * tree-inline.c (estimate_move_cost): Likewise.
1102         * config/alpha/alpha.h (MOVE_RATIO): Update.
1103         * config/frv/frv.c (MOVE_RATIO): Update.
1104         * config/spu/spu.h (MOVE_RATIO): Update.
1105         * config/sparc/sparc.h (MOVE_RATIO): Update.
1106         * config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
1107         * config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
1108         * config/cris/cris.h (MOVE_RATIO): Update.
1109         * config/mn10300/mn10300.h (MOVE_RATIO): Update.
1110         * config/arm/arm.h (MOVE_RATIO): Update.
1111         * config/pa/pa.md: Update uses of MOVE_RATIO
1112         * config/pa/pa.h (MOVE_RATIO): Update.
1113         * config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
1114         * config/h8300/h8300.h (MOVE_RATIO): Update.
1115         * config/v850/v850.h (MOVE_RATIO): Update.
1116         * config/bfin/bfin.h (MOVE_RATIO): Update.
1117
1118 2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
1119         Dmitry Melnik  <dm@ispras.ru>
1120         Dmitry Zhurikhin  <zhur@ispras.ru>
1121         Alexander Monakov  <amonakov@ispras.ru>
1122         Maxim Kuvyrkov  <maxim@codesourcery.com>
1123
1124         * sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
1125         sel-sched-dump.c, sel-sched-ir.c: New files.
1126         * Makefile.in (OBJS-common): Add selective scheduling object
1127         files.
1128         (sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
1129         (SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
1130         (sched-vis.o): Add dependency on $(INSN_ATTR_H).
1131         * cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
1132         * cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
1133         (make_forwarder_block): Update loop latch if we have redirected
1134         the loop latch edge.
1135         * cfgloop.c (get_loop_body_in_custom_order): New function.
1136         * cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
1137         (CP_FALLTHRU_PREHEADERS): Likewise.
1138         (get_loop_body_in_custom_order): Declare.
1139         * cfgloopmanip.c (has_preds_from_loop): New.
1140         (create_preheader): Honor CP_FALLTHRU_PREHEADERS.
1141         Assert that the preheader edge will be fall thru when it is set.
1142         * common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
1143         fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
1144         fsel-sched-substitution, fselective-scheduling): New flags.
1145         * cse.c (hash_rtx_cb): New.
1146         (hash_rtx): Use it.
1147         * dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
1148         sel_sched_insn_cnt): New counters.
1149         * final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
1150         * genattr.c (main): Output maximal_insn_latency prototype.
1151         * genautomata.c (output_default_latencies): New. Factor its code from ...
1152         (output_internal_insn_latency_func): ... here.
1153         (output_internal_maximal_insn_latency_func): New.
1154         (output_maximal_insn_latency_func): New.
1155         * hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
1156         (struct hard_reg_set_iterator): New.
1157         (hard_reg_set_iter_init, hard_reg_set_iter_set,
1158         hard_reg_set_iter_next): New functions.
1159         (EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
1160         * lists.c (remove_free_INSN_LIST_node,
1161         remove_free_EXPR_LIST_node): New functions.
1162         * loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
1163         set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
1164         (loop_optimizer_finalize): Do not verify flow info after reload.
1165         * recog.c (validate_replace_rtx_1): New parameter simplify.
1166         Default it to true.  Update all uses.  Factor out simplifying
1167         code to ...
1168         (simplify_while_replacing): ... this new function.
1169         (validate_replace_rtx_part,
1170         validate_replace_rtx_part_nosimplify): New.
1171         * recog.h (validate_replace_rtx_part,
1172         validate_replace_rtx_part_nosimplify): Declare.
1173         * rtl.c (rtx_equal_p_cb): New.
1174         (rtx_equal_p): Use it.
1175         * rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
1176         (remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
1177         debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
1178         * vecprim.h: Add a vector type for unsigned int.
1179         * haifa-sched.c: Include vecprim.h and cfgloop.h.
1180         (issue_rate, sched_verbose_param, note_list, dfa_state_size,
1181         ready_try, cycle_issued_insns, spec_info): Make global.
1182         (readyp): Initialize.
1183         (dfa_lookahead): New global variable.
1184         (old_max_uid, old_last_basic_block): Remove.
1185         (h_i_d): Make it a vector.
1186         (INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
1187         through HID macro.
1188         (after_recovery, adding_bb_to_current_region_p):
1189         New variables to handle correct insertion of the recovery code.
1190         (struct ready_list): Move declaration to sched-int.h.
1191         (rgn_n_insns): Removed.
1192         (rtx_vec_t): Move to sched-int.h.
1193         (find_insn_reg_weight): Remove.
1194         (find_insn_reg_weight1): Rename to find_insn_reg_weight.
1195         (haifa_init_h_i_d, haifa_finish_h_i_d):
1196         New functions to initialize / finalize haifa instruction data.
1197         (extend_h_i_d, init_h_i_d): Rewrite.
1198         (unlink_other_notes): Move logic to add_to_note_list.  Handle
1199         selective scheduler.
1200         (ready_lastpos, ready_element, ready_sort, reemit_notes,
1201         find_fallthru_edge): Make global, remove static prototypes.
1202         (max_issue): Make global.  Add privileged_n and state parameters.  Use
1203         them.
1204         (extend_global, extend_all): Removed.
1205         (init_before_recovery): Add new param.  Fix the handling of the case
1206         when we insert a recovery code before the EXIT which has a predecessor
1207         with a fallthrough edge to it.
1208         (create_recovery_block): Make global.  Rename to
1209         sched_create_recovery_block.  Update.
1210         (change_pattern): Rename to sched_change_pattern.  Make global.
1211         (speculate_insn): Rename to sched_speculate_insn.  Make global.
1212         Split haifa-specific functionality into ...
1213         (haifa_change_pattern): New static function.
1214         (sched_extend_bb): New static function.
1215         (sched_init_bbs): New function.
1216         (current_sched_info): Change type to struct haifa_sched_info.
1217         (insn_cost): Adjust for selective scheduling.
1218         (dep_cost_1): New function.  Move logic from ...
1219         (dep_cost): ... here.
1220         (dep_cost): Use dep_cost_1.
1221         (contributes_to_priority_p): Use sched_deps_info instead of
1222         current_sched_info.
1223         (priority): Adjust to work with selective scheduling.  Process the
1224         corner case when all dependencies don't contribute to priority.
1225         (rank_for_schedule): Use ds_weak instead of dep_weak.
1226         (advance_state): New function.  Move logic from ...
1227         (advance_one_cycle): ... here.
1228         (add_to_note_list, concat_note_lists): New functions.
1229         (rm_other_notes): Make static.  Adjust for selective scheduling.
1230         (remove_notes, restore_other_notes): New functions.
1231         (move_insn): Add two arguments.  Update assert.  Don't call
1232         reemit_notes.
1233         (choose_ready): Remove lookahead variable, use dfa_lookahead.
1234         Remove more_issue, max_points.  Move the code to initialize
1235         max_lookahead_tries to max_issue.
1236         (schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
1237         ready.  Adjust use of move_insn.  Call restore_other_notes.
1238         (luid): Remove.
1239         (sched_init, sched_finish): Move Haifa-specific initialization/
1240         finalization to ...
1241         (haifa_sched_init, haifa_sched_finish): ... respectively.
1242         New functions.
1243         (setup_sched_dump): New function.
1244         (haifa_init_only_bb): New static function.
1245         (haifa_speculate_insn): New static function.
1246         (try_ready): Use haifa_* instead of speculate_insn and
1247         change_pattern.
1248         (extend_ready, extend_all): Remove.
1249         (sched_extend_ready_list, sched_finish_ready_list): New functions.
1250         (create_check_block_twin, add_to_speculative_block): Use
1251         haifa_insns_init instead of extend_global.  Update to use new
1252         initialization functions.  Change parameter.  Factor out code from
1253         create_check_block_twin to ...
1254         (sched_create_recovery_edges) ... this new function.
1255         (add_block): Remove.
1256         (sched_scan_info): New.
1257         (extend_bb): Use sched_scan_info.
1258         (init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
1259         static functions for walking through scheduling region.
1260         (sched_luids): New vector variable to replace uid_to_luid.
1261         (luids_extend_insn): New function.
1262         (sched_max_luid): New variable.
1263         (luids_init_insn): New function.
1264         (sched_init_luids, sched_finish_luids): New functions.
1265         (insn_luid): New debug function.
1266         (sched_extend_target): New function.
1267         (haifa_init_insn): New static function.
1268         (sched_init_only_bb): New hook.
1269         (sched_split_block): New hook.
1270         (sched_split_block_1): New function.
1271         (sched_create_empty_bb): New hook.
1272         (sched_create_empty_bb_1): New function.
1273         (common_sched_info, ready): New global variables.
1274         (current_sched_info_var): Remove.
1275         (move_block_after_check): Use common_sched_info.
1276         (haifa_luid_for_non_insn): New static function.
1277         (init_before_recovery): Use haifa_init_only_bb instead of
1278         add_block.
1279         (increase_insn_priority): New.
1280         * modulo-sched.c: (issue_rate): Remove static declaration.
1281         (sms_sched_info): Change type to haifa_sched_info.
1282         (sms_sched_deps_info, sms_common_sched_info): New variables.
1283         (setup_sched_infos): New.
1284         (sms_schedule): Initialize them.  Call haifa_sched_init/finish.
1285         Do not call regstat_free_calls_crossed.
1286         (sms_print_insn): Use const_rtx.
1287         * params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
1288         PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
1289         PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
1290         PARAM_SCHED_MEM_TRUE_DEP_COST): New.
1291         * sched-deps.c (sched_deps_info): New.  Update all relevant uses of
1292         current_sched_info to use it.
1293         (enum reg_pending_barrier_mode): Move to sched-int.h.
1294         (h_d_i_d): New variable. Initialize to NULL.
1295         ({true, output, anti, spec, forward}_dependency_cache): Initialize
1296         to NULL.
1297         (estimate_dep_weak): Remove static declaration.
1298         (sched_has_condition_p): New function.  Adjust users of
1299         sched_get_condition to use it instead.
1300         (conditions_mutex_p): Add arguments indicating which conditions are
1301         reversed.  Use them.
1302         (sched_get_condition_with_rev): Rename from sched_get_condition.  Add
1303         argument to indicate whether returned condition is reversed.  Do not
1304         generate new rtx when condition should be reversed; indicate it by
1305         setting new argument instead.
1306         (add_dependence_list_and_free): Add deps parameter.
1307         Update all users.  Do not free dependence list when
1308         deps context is readonly.
1309         (add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
1310         contexts.
1311         (remove_from_dependence_list, remove_from_both_dependence_lists): New.
1312         (remove_from_deps): New. Use the above functions.
1313         (cur_insn, can_start_lhs_rhs_p): New static variables.
1314         (add_or_update_back_dep_1): Initialize present_dep_type.
1315         (haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
1316         haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
1317         haifa_note_dep): New functions implementing dependence hooks for
1318         the Haifa scheduler.
1319         (note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
1320         note_dep): New functions.
1321         (ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
1322         functions.
1323         (init_deps): Initialize last_reg_pending_barrier and deps->readonly.
1324         (free_deps): Initialize deps->reg_last.
1325         (sched_analyze_reg, sched_analyze_1, sched_analyze_2,
1326         sched_analyze_insn): Update to use dependency hooks infrastructure
1327         and readonly contexts.
1328         (deps_analyze_insn): New function.  Move part of logic from ...
1329         (sched_analyze): ... here.  Also move some logic to ...
1330         (deps_start_bb): ... here.  New function.
1331         (add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
1332         sel_sched_p.
1333         (sched_deps_init): New function.  Move code from ...
1334         (init_dependency_caches): ... here.  Remove.
1335         (init_deps_data_vector): New.
1336         (sched_deps_finish): New function.  Move code from ...
1337         (free_dependency_caches): ... here.  Remove.
1338         (init_deps_global, finish_deps_global): Adjust for use with
1339         selective scheduling.
1340         (get_dep_weak): Move logic to ...
1341         (get_dep_weak_1): New function.
1342         (ds_merge): Move logic to ...
1343         (ds_merge_1): New static function.
1344         (ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
1345         (ds_get_max_dep_weak): New function.
1346         * sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
1347         (n_insns): Rename to rgn_n_insns.
1348         (debug_ebb_dependencies): New function.
1349         (init_ready_list): Use it.
1350         (begin_schedule_ready): Use sched_init_only_bb.
1351         (ebb_print_insn): Indicate when an insn starts a new cycle.
1352         (contributes_to_priority, compute_jump_reg_dependencies,
1353         add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
1354         (add_block1): Remove to ebb_add_block.
1355         (ebb_sched_deps_info, ebb_common_sched_info): New variables.
1356         (schedule_ebb): Initialize them.  Use remove_notes instead of
1357         rm_other_notes.  Use haifa_local_init/finish.
1358         (schedule_ebbs): Use haifa_sched_init/finish.
1359         * sched-int.h: Include vecprim.h, remove rtl.h.
1360         (struct ready_list): Delete declaration.
1361         (sched_verbose_param, enum sched_pass_id_t,
1362         bb_vec_t, insn_vec_t, rtx_vec_t): New.
1363         (struct sched_scan_info_def): New structure.
1364         (sched_scan_info, sched_scan, sched_init_bbs,
1365         sched_init_luids, sched_finish_luids, sched_extend_target,
1366         haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
1367         (struct common_sched_info_def): New.
1368         (common_sched_info, haifa_common_sched_info,
1369         sched_emulate_haifa_p): Declare.
1370         (sel_sched_p): New.
1371         (sched_luids): Declare.
1372         (INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
1373         (sched_max_luid, insn_luid): Declare.
1374         (note_list, remove_notes, restore_other_notes, bb_note): Declare.
1375         (sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
1376         print_insn, print_pattern, print_value, haifa_classify_insn,
1377         sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
1378         setup_sched_dump, sched_init, sched_finish,
1379         sel_insn_is_speculation_check): Export.
1380         (struct ready_list): Move from haifa-sched.c.
1381         (ready_try, ready, max_issue): Export.
1382         (ebb_compute_jump_reg_dependencies, find_fallthru_edge,
1383         sched_init_only_bb, sched_split_block, sched_split_block_1,
1384         sched_create_empty_bb, sched_create_empty_bb_1,
1385         sched_create_recovery_block, sched_create_recovery_edges): Export.
1386         (enum reg_pending_barrier_mode): Export.
1387         (struct deps): New fields `last_reg_pending_barrier' and `readonly'.
1388         (deps_t): New.
1389         (struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
1390         print_insn field.  Move add_block and fix_recovery_cfg to
1391         common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
1392         (struct sched_deps_info_def): ... this new structure.
1393         (sched_deps_info): Declare.
1394         (struct spec_info_def): Remove weakness_cutoff, add
1395         data_weakness_cutoff and control_weakness_cutoff.
1396         (spec_info): Declare.
1397         (struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
1398         dep_count field.
1399         (struct haifa_insn_data): Rename to struct _haifa_insn_data.
1400         (haifa_insn_data_def, haifa_insn_data_t): New typedefs.
1401         (current_sched_info): Change type to struct haifa_sched_info.
1402         (haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
1403         (h_d_i_d): New variable.
1404         (HDID): New accessor macro.
1405         (h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
1406         (HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
1407         and HDID.
1408         (IS_SPECULATION_CHECK_P): Update for selective scheduler.
1409         (enum SCHED_FLAGS): Update for selective scheduler.
1410         (enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
1411         (init_dependency_caches, free_dependency_caches): Delete declarations.
1412         (deps_analyze_insn, remove_from_deps, get_dep_weak_1,
1413         estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
1414         ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
1415         sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
1416         haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
1417         ds_to_dt): Export.
1418         (rm_other_notes): Delete declaration.
1419         (schedule_block): Remove one argument.
1420         (cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
1421         ready_element, ready_lastpos, sched_extend_ready_list,
1422         sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
1423         concat_note_lists): Export.
1424         (struct region): Move from sched-rgn.h.
1425         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
1426         RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
1427         BLOCK_TO_BB, CONTAINING_RGN): Export.
1428         (ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
1429         (current_nr_blocks, current_blocks, target_bb): Likewise.
1430         (dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
1431         sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
1432         sched_rgn_local_init, extend_regions,
1433         rgn_make_new_region_out_of_new_block, compute_priorities,
1434         debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
1435         extend_rgns, deps_join rgn_setup_common_sched_info,
1436         rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
1437         dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
1438         (get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
1439         increase_insn_priority): Likewise.
1440         * sched-rgn.c: Include sel-sched.h.
1441         (ref_counts): New static variable.  Use it ...
1442         (INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
1443         (FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
1444         (sched_is_disabled_for_current_region_p): Delete static declaration.
1445         (struct region): Move to sched-int.h.
1446         (nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
1447         ebb_head): Define and initialize.
1448         (RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
1449         BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
1450         BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
1451         sched-int.h.
1452         (find_single_block_region): Add new argument to indicate that EBB
1453         regions should be constructed.
1454         (debug_live): Delete declaration.
1455         (current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
1456         (compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
1457         declaration.
1458         (init_regions): Delete declaration.
1459         (debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
1460         rgn_estimate_number_of_insns): New.
1461         (too_large): Use estimate_number_of_insns.
1462         (haifa_find_rgns): New. Move the code from ...
1463         (find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
1464         (free_trg_info): New.
1465         (compute_trg_info): Allocate candidate tables here instead of ...
1466         (init_ready_list): ... here.
1467         (rgn_print_insn): Use const_rtx.
1468         (contributes_to_priority, extend_regions): Delete static declaration.
1469         (add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
1470         (add_block1): Rename to rgn_add_block.
1471         (debug_rgn_dependencies): Delete static qualifier.
1472         (new_ready): Use sched_deps_info.  Simplify.
1473         (rgn_common_sched_info, rgn_const_sched_deps_info,
1474         rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
1475         (region_sched_info): Rename to rgn_const_sched_info.
1476         (deps_join): New, extracted from ...
1477         (propagate_deps): ... here.
1478         (compute_block_dependences, debug_dependencies): Update for selective
1479         scheduling.
1480         (free_rgn_deps, compute_priorities): New functions.
1481         (sched_rgn_init, sched_rgn_finish, rgn_setup_region,
1482         sched_rgn_compute_dependencies): New functions.
1483         (schedule_region): Use them.
1484         (sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
1485         rgn_setup_common_sched_info, rgn_setup_sched_infos):
1486         New functions.
1487         (schedule_insns): Call new functions that were split out.
1488         (rgn_make_new_region_out_of_new_block): New.
1489         (get_rgn_sched_max_insns_priority): New.
1490         (rest_of_handle_sched, rest_of_handle_sched2): Call selective
1491         scheduling when appropriate.
1492         * sched-vis.c: Include insn-attr.h.
1493         (print_value, print_pattern): Make global.
1494         (print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
1495         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
1496         TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1497         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1498         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
1499         TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
1500         hooks.  Initialize them to 0.
1501         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1502         * target.h (struct gcc_target): Add them.  Rename gen_check field to
1503         gen_spec_check.
1504         * flags.h (sel_sched_switch_set): Declare.
1505         * opts.c (sel_sched_switch_set): New variable.
1506         (decode_options): Unset flag_sel_sched_pipelining_outer_loops if
1507         pipelining is disabled from command line.
1508         (common_handle_option): Record whether selective scheduling is
1509         requested from command line.
1510         * doc/invoke.texi: Document new flags and parameters.
1511         * doc/tm.texi: Document new target hooks.
1512         * config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
1513         (dfa_state_size): Do not declare locally.
1514         * config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
1515         * config/rs6000/rs6000.c (rs6000_init_sched_context,
1516         rs6000_alloc_sched_context, rs6000_set_sched_context,
1517         rs6000_free_sched_context): New functions.
1518         (struct _rs6000_sched_context): New.
1519         (rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
1520         scheduling.
1521         (rs6000_sched_finish): Do not run for selective scheduling.
1522
1523 2008-08-31  Jan Hubicka  <jh@suse.cz>
1524
1525         * frv.c (frv_rtx_costs): Update forward declaration.
1526         * spu.c (spu_rtx_costs): Likewise.
1527         * pdp11.c: Include df.h
1528         (pdp11_output_function_epilogue): Use df_set_regs_ever_live.
1529         * m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
1530         (m68hc11_rtx_costs_1): Fix call of rtx_cost.
1531         * iq2000.c (iq2000_address_cost): Add speed argument.
1532         (iq2000_rtx_costs): Likewise.
1533         * mn10300.c (mn10300_address_cost_1): Remove speed argument;
1534         update call of mn10300_address_cost.
1535         * mcore.c: Include df.h
1536         (mcore_rtx_costs): Update prototype.
1537         * score3.c: Include df.h
1538         (score3_rtx_costs): Remove speed argument.
1539         * score7.c: Include df.h
1540         (score7_address_cost): Remove speed argument.
1541         * score-protos.h (score_address_cost): Update prototype.
1542         * score.c: Include df.h
1543         (score_rtx_costs): Update call of costs functions.
1544         * v850.c (v850_rtx_costs): Add bool argument.
1545
1546 2008-08-31  Hans-Peter Nilsson  <hp@axis.com>
1547
1548         * config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
1549
1550 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1551
1552         * gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
1553         * config/i386/gthr-win32.c (__gthread_setspecific): Same.
1554
1555 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1556
1557         * mkmap-flat.awk: Add option pe_dll.
1558         * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
1559         * config/i386/t-cygwin (SHLIB_LC): Add.
1560         * config/i386/t-mingw32 (SHLIB_LC): Add.
1561         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
1562         (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
1563         (LINK_SPEC): Support libgcc_s.
1564         (LIBGCC_SPEC): Support libgcc_s.
1565         (LIBGCC_SONAME): New.
1566
1567 2008-08-31  Jan Hubicka  <jh@suse.cz>
1568
1569         * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
1570         mistakely had old version of patch.
1571
1572         * ipa-cp.c (ipcp_need_original_clone_p): Remove.
1573         (ipcp_estimate_growth): New.
1574         (ipcp_insert_stage): Use ipcp_estimate_growth.
1575         * profile.c (branch_prob): When reading failed, do not consider
1576         profile as read.
1577
1578 2008-08-31  Jan Hubicka  <jh@suse.cz>
1579
1580         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
1581         loop is optimized for speed.
1582
1583 2008-08-31  Richard Guenther  <rguenther@suse.de>
1584
1585         PR middle-end/37289
1586         * fold-const.c (fold_binary): Retain conversions in folding
1587         ~A + 1 to -A.
1588
1589 2008-08-31  Jan Hubicka  <jh@suse.cz>
1590
1591         * postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
1592         * predict.c (maybe_hot_frequency_p): Make inline.
1593         (maybe_hot_count_p): Break out from ...
1594         (maybe_hot_bb_p): ... this one.
1595         (maybe_hot_edge_p): Simplify.
1596         * basic-block.h (probably_cold_bb_p): Remove.
1597
1598 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
1599
1600         PR target/37168
1601         * config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
1602         prototype.
1603         * config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
1604         * config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
1605         Also split V4SFmode.
1606         * config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
1607         vector float modes.
1608
1609 2008-08-31  Jan Hubicka  <jh@suse.cz>
1610
1611         * predict.c (PROB_VERY_LIKELY): Make small enough so things
1612         become cold.
1613         * predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.
1614
1615 2008-08-31  Jakub Jelinek  <jakub@redhat.com>
1616
1617         PR debug/37287
1618         * dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
1619         add source coords.
1620
1621         * dwarf2out.c (native_encode_initializer): Subtract min_index for
1622         non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
1623
1624 2008-08-31  Jan Hubicka  <jh@suse.cz>
1625
1626         * sparc.h (BRANCH_COST): Fix macro definition.
1627         * avr.c (avr_operand_rtx_cost): Add speed argument.
1628         (avr_rtx_costs): Update calls of avr_operand_rtx_cost.
1629
1630 2008-08-31  Richard Guenther  <rguenther@suse.de>
1631
1632         * tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
1633         types instead of operands.  Re-instantiate verifying of
1634         binary expression operands.
1635
1636 2008-08-30  Jan Hubicka  <jh@suse.cz>
1637
1638         * fwprop.c (should_replace_address): Add speed attribute.
1639         (PR_OPTIMIZE_FOR_SPEED): New flag.
1640         (propagate_rtx_1): Use it.
1641         (propagate_rtx): Set it.
1642         (try_fwprop_subst): Update call of rtx_costs.
1643         (forward_propagate_and_simplify): LIkewise.
1644         * hooks.c (hook_int_rtx_bool_0): New
1645         (hook_bool_rtx_int_int_intp_false): Replace by ...
1646         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
1647         * hooks.h (hook_int_rtx_bool_0): New
1648         (hook_bool_rtx_int_int_intp_false): Replace by ...
1649         (hook_bool_rtx_int_int_intp_bool_false): .. thisone.
1650         * optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
1651         (prepare_cmp_insn): UPdate call of rtx_cost.
1652         * postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
1653         (reload_cse_simplify_operands): Update call of rtx_cost.
1654         (reload_cse_move2add): call of rtx_cost.
1655         * target.h (struct gcc_target): Update rtx_costs and address_costs.
1656         * rtlanal.c (rtx_cost): Add speed argument.
1657         (address_cost): Add speed argument
1658         (default_address_cost): Likewise.
1659         (insn_rtx_cost): Likewise.
1660         * cfgloopanal.c (seq_cost): Add speed argument.
1661         (target_reg_cost, target_spill_cost): Turn to array.
1662         (init_set_costs): Update for speed.
1663         (estimate_reg_pressure_cost): Add speed argument.
1664         * auto-inc-dec.c (attempt_change): Update call of rtx_cost.
1665         * dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
1666         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
1667         (seq_cost): Add speed argument.
1668         (computation_cost): Add speed arugment.
1669         (add_cost, multiply_by_const, get_address_cost): add speed argument.
1670         (force_expr_to_var_cost): Update for profile info.
1671         (force_var_cost): Likewise.
1672         (split_address_cost): Likewise.
1673         (ptr_difference_cost): Likewise.
1674         (difference_cost): Likewise.
1675         (get_computation_cost_at): Likewise.
1676         (determine_iv_cost): Likewise.
1677         (ivopts_global_cost_for_size): Likewise.
1678         (rewrite_use_address): Likewise.
1679         (tree_ssa_iv_optimize_loop): Initialize speed field.
1680         * cse.c (optimize_this_for_speed_p): New static var.
1681         (notreg_cost): Update call of rtx_cost.
1682         (cse_extended_basic_block): set optimize_this_for_speed_p.
1683         * ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
1684         (noce_try_cmove_arith): Likewise.
1685         (noce_try_sign_mask): LIkewise.
1686         * expr.c (compress_float_constant): Update rtx_cost calls.
1687         * tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
1688         (addr_to_parts): Likewise.
1689         (create_mem_ref): Likewise.
1690         * dse.c (find_shift_sequence): Add speed argument.
1691         (replace_read): Update call.
1692         * calls.c (precompute_register_parameters): Update call of rtx_cost.
1693         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
1694         * neg_cost, shift_cost, shiftadd_cost,
1695         shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
1696         mul_highpart_cost): Increase dimension.
1697         (init_expmed): Initialize for both size and speed.
1698         (expand_shift): Use profile.
1699         (synth_mult): Use profile.
1700         (choose_mult_variant): Use profile.
1701         (expand_mult): Use profile.
1702         (expand_mult_highpart_optab): Use profile.
1703         (expand_mult_highpart): Use profile.
1704         (expand_smod_pow2): Use profile.
1705         (expand_divmod): Use profile.
1706         * simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
1707         * loop-invariant.c (create_new_invariant): Use profile.
1708         (gain_for_invariant): Add speed parameter.
1709         (best_gain_for_invariant): Likewise.
1710         (find_invariants_to_move): Likewise.
1711         (move_single_loop_invariants): Set it.
1712         * target-def.h (TARGET_RTX_COSTS): Use hook.
1713         * rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
1714         (optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
1715         * output.h (default_address_cost): Update prototype.
1716         * combine.c (optimize_this_for_speed_p): New static var.
1717         (combine_validate_cost): Update call of rtx_cost.
1718         (combine_instructions): Set optimize_this_for_speed_p.
1719         (expand_compound_operation): Update call of rtx_cost.
1720         (make_extraction):Update call of rtx_cost.
1721         (force_to_mode):Update call of rtx_cost.
1722         (distribute_and_simplify_rtx):Update call of rtx_cost.
1723         * cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
1724         (estimate_reg_pressure_cost): Update prototype.
1725         * tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
1726         * basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
1727         Remove.
1728         * config/alpha/alpha.c (alpha_rtx_costs): Update.
1729         (alpha_rtx_costs): Update.
1730         * config/frv/frv.c (frv_rtx_costs): Update.
1731         * config/s390/s390.c (s390_rtx_costs): Update.
1732         * config/m32c/m32c.c (m32c_memory_move_cost): Update.
1733         (m32c_rtx_costs): Update.
1734         * config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
1735         (spu_rtx_costs): Update.
1736         * config/sparc/sparc.c (sparc_rtx_costs): Update.
1737         * config/m32r/m32r.c (m32r_rtx_costs): Update.
1738         * config/i386/i386.c (:ix86_address_cost): Update.
1739         (ix86_rtx_costs): Update.
1740         * config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
1741         * config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
1742         * config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
1743         * config/crx/crx.c (crx_address_cost): Update.
1744         * config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
1745         * config/stormy16/stormy16.c
1746         (xstormy16_address_cost, xstormy16_rtx_costs): Update.
1747         * config/m68hc11/m68hc11.c
1748         (m68hc11_address_cost, m68hc11_rtx_costs): Update.
1749         * config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
1750         * config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
1751         * config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
1752         * config/ia64/ia64.c (ia64_rtx_costs): Update.
1753         * config/m68k/m68k.c (m68k_rtx_costs): Update.
1754         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
1755         * config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
1756         * config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
1757         (mcore_rtx_costs): update.
1758         * config/score/score3.c (score3_rtx_costs): Update.
1759         * config/score/score7.c (score7_rtx_costs): Update.
1760         * config/score/score3.h (score3_rtx_costs):Update.
1761         * config/score/score7.h (score7_rtx_costs): Update.
1762         * config/score/score.c (score_rtx_costs): Update.
1763         * config/arm/arm.c (arm_address_cost): Update.
1764         (arm_rtx_costs_1): Update.
1765         (arm_rtx_costs_1): Update.
1766         (arm_size_rtx_costs): Update.
1767         (arm_size_rtx_costs): Update.
1768         (arm_size_rtx_costs): Update.
1769         (arm_xscale_rtx_costs): Update.
1770         (arm_thumb_address_cost): Update.
1771         * config/pa/pa.c (hppa_address_cost): Update.
1772         * config/mips/mips.c (mips_rtx_costs): Update.
1773         * config/vax/vax.c (vax_address_cost): Update.
1774         * config/h8300/h8300.c (h8300_shift_costs): Update.
1775         (h8300_rtx_costs): Update.
1776         * config/v850/v850.c (TARGET_ADDRESS_COST): Update.
1777         (v850_rtx_costs): Update.
1778         * config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
1779         * config/bfin/bfin.c
1780         (bfin_address_cost): Update.
1781         (bfin_rtx_costs): Update.
1782         * stmt.c (lshift_cheap_p): Update.
1783
1784 2008-08-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1785
1786         PR middle-end/36444
1787         * expmed.c (extract_bit_field_1): Check the mode size to make
1788         sure the vector modes have the same size.
1789
1790 2008-08-29  Michael Meissner  <gnu@the-meissners.org>
1791
1792         * dojump.c (top level): Include basic-block.h to declare
1793         optimize_insn_for_speed_p
1794
1795         * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
1796
1797         * opts.h (CL_SAVE): New option class for marking options that are
1798         target specific options usable in the target attribute.
1799         (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
1800
1801         * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
1802         can easily find the target specific options that are safe to use
1803         in the attribute or pragma.
1804
1805         * attribs.c (decl_attributes): Change #pragma GCC option to
1806         #pragma GCC target, and attribute((option(...))) to
1807         attribute((target(...))).
1808
1809         * doc/extend.texi (target attribute): Change from option
1810         attribute.  Delete push/pop/reset.
1811         (#pragma GCC target): Change from #pragma GCC option.  Delete
1812         push/pop/reset.
1813         (#pragma GCC push_options): Document new pragma.
1814         (#pragma GCC pop_options): Document new pragma.
1815         (#pragma GCC reset_options): Document new pragma.
1816
1817         * targhooks.c (default_target_option_valid_attribute_p): Add
1818         warning about port not supporting target attributes.
1819         (default_target_option_pragma_parse): New function, warn about
1820         #pragma GCC target not being supported.
1821
1822         * targhooks.h (default_target_option_pragma_parse): Add
1823         declaration.
1824
1825         * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
1826         TI_CURRENT_OPTION_PRAGMA.
1827         (current_target_pragma): Rename from current_option_pragma.
1828
1829         * target.h: (struct target_option): Delete booleans for changing
1830         the optimization level on hot/cold functions.  Change signature of
1831         pragma_parse hook to take a second tree.
1832
1833         * c-tree.h (c_builtin_function_ext_scope): Add declaration.
1834
1835         * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
1836         that the declaration is done at global scope.
1837
1838         * langhooks.c (add_builtin_function_common): Move most of the code
1839         from add_builtin_function here, calling the hook passed in.
1840         (add_builtin_function): Call add_builtin_function_common with
1841         standard builtin hook.
1842         (add_builtin_function_ext_scope): New function to add builtins to
1843         global scope.
1844
1845         * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
1846         hook.
1847         (add_builtin_function_ext_scope): Add declaration.
1848
1849         * c-pragma.c (handle_pragma_target): Rename from
1850         handle_pragma_option, #pragma GCC option is now #pragma GCC
1851         target.  Move warning about port not supporting target options to
1852         default pragma parse hook.  Remove push/pop/reset from this
1853         pragma.
1854         (handle_pragma_optimize): Remove push/pop/reset from this pragma.
1855         (option_stack): Delete static variable.
1856         (optimize_stack): Ditto.
1857         (optons_stack): New stack of saved target and optimization
1858         options.
1859         (handle_pragma_push_options): New function to handle pushing both
1860         target and optimization options.
1861         (handle_pragma_pop_options): New function to handle popping both
1862         target and optimization options.
1863         (handle_pragma_reset_options): New function to handle resetting
1864         both target and optimization options to their initial state.
1865         (init_pragma): Rename handle_pragma_option to
1866         handle_pragma_target.  Add support for push_options, pop_options,
1867         and reset_options pragmas.
1868
1869         * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
1870         default_target_option_pragma_parse.
1871         (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
1872         default_target_option_valid_attribute_p.
1873         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1874         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1875         (TARGET_OPTION_HOOKS): Delete the fields for whether to change
1876         optimization level on hot/cold functions.
1877
1878         * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
1879         if the caller and callee have different optimization levels.
1880
1881         * c-common.c (handle_target_attribute): Rename from
1882         handle_option_attribute, attribute((option(...))) is now
1883         attribute((target(...))).  Move warning if the port does not
1884         support target attributes to the default hook.
1885         (handle_hot_attribute): Delete code to change the optimization
1886         level of hot functions.
1887         (handle_cold_attribute): Ditto.
1888
1889         * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
1890         argument that is the binary tree options to use if there are no
1891         arguments.  Call ix86_valid_target_attribute_tree instead of
1892         ix86_valid_option_attribute_tree.
1893         (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
1894         (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
1895         ix86_pragma_option_parse.
1896
1897         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
1898         Rename from ix86_valid_option_attribute_tree.
1899
1900         * config/i386/i386.c (ix86_add_new_builtins): New function to add
1901         new builtins when the ISA changes.
1902         (ix86_valid_target_attribute_tree): Rename from
1903         ix86_valid_option_attribute_tree.  Change callers.  If the
1904         function specified optimization options, use those as the starting
1905         point before setting up the target attributes.  If the
1906         optimization options were changed in the course of setting the
1907         target attributes, record the new optimization options.
1908         (ix86_valid_target_attribute_tree_inner_p): Rename from
1909         ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
1910         ix86_add_new_builtins if the ISA changed.
1911         (ix86_valid_target_attribute_p): Rename from
1912         ix86_valid_option_attribute_p.  Change callers.
1913         (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
1914         __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
1915         as delayed builtin functions.
1916         (struct builtin_isa): New structure to record builtin functions
1917         that should be delayed until the ISA for that function is used.
1918         (ix86_builtins_isa): Change from int to struct to track builtin
1919         functions we want to declare at some point.
1920         (def_builtin): If the front end can delay defining the builtin
1921         functions, don't create builtins for ISAs not part of the default
1922         options.
1923         (def_builtin_const): Ditto.
1924         (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
1925         __builtin_ia32_pcmov_v2di to be different builtin functions.
1926         (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
1927         a structure instead of an int.
1928         (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
1929         ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
1930         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1931         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1932
1933         * config/ia64/ia64.h
1934         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
1935         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
1936
1937         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
1938         hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
1939         (LANG_HOOKS_INITIALIZER): Add
1940         LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
1941
1942 2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1943
1944         PR target/37270
1945         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
1946         the reload address with the index register for SFmode
1947         access with a displacement.
1948
1949 2008-08-30  Jan Hubicka  <jh@suse.cz>
1950
1951         * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
1952         * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
1953         * dojump.c (do_jump): Likewise.
1954         * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
1955         (note-if_info): Add BRANCH_COST.
1956         (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
1957         noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
1958         noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
1959         branch cost.
1960         * expr.h (BRANCH_COST): Update default.
1961         * predict.c (predictable_edge_p): New function.
1962         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
1963         Update BRANCH_COST call.
1964         * basic-block.h (predictable_edge_p): Declare.
1965         * config/alpha/alpha.h (BRANCH_COST): Update.
1966         * config/frv/frv.h (BRANCH_COST): Update.
1967         * config/s390/s390.h (BRANCH_COST): Update.
1968         * config/spu/spu.h (BRANCH_COST): Update.
1969         * config/sparc/sparc.h (BRANCH_COST): Update.
1970         * config/m32r/m32r.h (BRANCH_COST): Update.
1971         * config/i386/i386.h (BRANCH_COST): Update.
1972         * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
1973         * config/sh/sh.h (BRANCH_COST): Update.
1974         * config/pdp11/pdp11.h (BRANCH_COST): Update.
1975         * config/avr/avr.h (BRANCH_COST): Update.
1976         * config/crx/crx.h (BRANCH_COST): Update.
1977         * config/xtensa/xtensa.h (BRANCH_COST): Update.
1978         * config/stormy16/stormy16.h (BRANCH_COST): Update.
1979         * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
1980         * config/iq2000/iq2000.h (BRANCH_COST): Update.
1981         * config/ia64/ia64.h (BRANCH_COST): Update.
1982         * config/rs6000/rs6000.h (BRANCH_COST): Update.
1983         * config/arc/arc.h (BRANCH_COST): Update.
1984         * config/score/score.h (BRANCH_COST): Update.
1985         * config/arm/arm.h (BRANCH_COST): Update.
1986         * config/pa/pa.h (BRANCH_COST): Update.
1987         * config/mips/mips.h (BRANCH_COST): Update.
1988         * config/vax/vax.h (BRANCH_COST): Update.
1989         * config/h8300/h8300.h (BRANCH_COST): Update.
1990         * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
1991         * doc/invoke.texi (predictable-branch-cost-outcome): Document.
1992         * doc/tm.texi (BRANCH_COST): Update.
1993
1994 2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
1995
1996         PR target/37283
1997         * config/arm/arm.c (arm_optimization_options): Set
1998         flag_section_anchors to 2 instead of 1 to distinguish it from
1999         -fsection-anchors given explicitely on the command line.
2000
2001 2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
2002
2003         * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
2004         final insn of a split.
2005
2006 2008-08-30  Jan Hubicka  <jh@suse.cz>
2007
2008         * postreload-gcse.c (gate_handle_gcse2): Disable for functions
2009         optimized for speed.
2010         * final.c (compute_alignments): Use optimize_bb_for_size_p.
2011         * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
2012         * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
2013         flag_gcse_after_reload_set): New static vars.
2014         (common_handle_option): Enable those flags for profile-use.
2015         (decode_options): Remove optimize_size flags that are handled
2016         on higher granuality.
2017         * tree-vectorizer.c (vectorize_loops): Use
2018         optimize_loop_nest_for_speed_p.
2019         * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
2020         * tree-predcom.c (tree_predictive_commoning): Use
2021         optimize_loop_for_speed_p.
2022         * varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
2023         * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
2024         * predict.c (optimize_loop_for_speed_p): Fix walk.
2025
2026 2008-08-30  Jan Hubicka  <jh@suse.cz>
2027
2028         * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
2029         functions.
2030         (cgraph_decide_inlining_of_small_function): Use edge->count to detect
2031         profile presence locally.
2032
2033 2008-08-29  Joseph Myers  <joseph@codesourcery.com>
2034
2035         PR bootstrap/37086
2036         * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
2037         versions before 4.0.
2038
2039 2008-08-29  Jan Hubicka  <jh@suse.cz>
2040
2041         * tree-inline.c (insert_init_stmt): Insert sequence even when
2042         not in SSA form.
2043
2044 2008-08-29  Jeff Law  <law@redhat.com>
2045
2046         * mn10300.c (mn10300_secondary_reload_class): We need secondary
2047         reloads for AM33-2 if IN is a pseudo with an equivalent memory
2048         location and class is an FP register.
2049
2050 2008-08-29  Jan Hubicka  <jh@suse.cz>
2051
2052         * see.c (see_merge_one_def_extension): Silence used uninitialized
2053         warning.
2054         * matrix-reorg.c (check_allocation_function): Likewise.
2055         * config/i386/driver-i386.c (detect_caches_amd): Likewise.
2056
2057 2008-08-29  Jakub Jelinek  <jakub@redhat.com>
2058
2059         PR c/37261
2060         * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
2061         compute new & and | in type rather than TREE_TYPE (arg0).
2062
2063         * dwarf2out.c (fortran_common): Update comment.
2064         (gen_variable_die): Swap com_die and var_die variables in Fortran
2065         COMMON block handling code.
2066
2067         * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
2068
2069         * dwarf2out.c (gen_const_die): New function.
2070         (size_of_die, value_format, output_die): Output larger
2071         dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
2072         (native_encode_initializer): New function.
2073         (tree_add_const_value_attribute): Call it.
2074         (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
2075
2076         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
2077         DECL_BY_REFERENCE decls don't pass TREE_READONLY and
2078         TREE_THIS_VOLATILE to add_type_attribute.
2079
2080         * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
2081         types.
2082         (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
2083         types.
2084
2085         * dwarf2out.c (loc_by_reference): New function.
2086         (add_location_or_const_value_attribute): Use it.
2087
2088         PR fortran/23057
2089         * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
2090         as DW_TAG_variable children of DW_TAG_common_block rather than
2091         DW_TAG_member children.  Put DW_AT_external to individual
2092         DW_TAG_variable DIEs, not to DW_TAG_common_block.
2093
2094         * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
2095         loc_descriptor_from_tree_1.
2096
2097         PR fortran/29635
2098         PR fortran/23057
2099         * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
2100         arguments to imported_module_or_decl.
2101         (debug_nothing_tree_tree): Removed.
2102         (debug_nothing_tree_tree_tree_bool): New prototype.
2103         * debug.c (do_nothing_debug_hooks): Adjust.
2104         (debug_nothing_tree_tree): Removed.
2105         (debug_nothing_tree_tree_tree_bool): New function.
2106         * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
2107         (gen_variable_die): Put all common vars for the
2108         same COMMON block under one DW_TAG_common_block.
2109         (declare_in_namespace): Return new context_die, for Fortran
2110         return the module DIE instead of adding extra declarations into
2111         the namespace.
2112         (gen_type_die_with_usage): Adjust declare_in_namespace caller.
2113         (gen_namespace_die): If is_fortran (), generate DW_TAG_module
2114         instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
2115         DW_AT_declaration.
2116         (dwarf2out_global_decl): Don't skip Fortran global vars.
2117         (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
2118         (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
2119         If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
2120         DW_TAG_imported_declaration as child of previous
2121         DW_TAG_imported_module.
2122         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
2123         * sdbout.c (sdb_debug_hooks): Likewise.
2124         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2125
2126 2008-08-29  Jan Hubicka  <jh@suse.cz>
2127
2128         * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
2129
2130         * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
2131         * ipa-cp.c (n_cloning_candidates): New static variable.
2132         (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
2133         (ipcp_print_all_lattices): Improve debug output.
2134         (ipcp_cloning_candidate_p): New function.
2135         (ipcp_initialize_node_lattices): Use it.
2136         (ipcp_init_stage): Do only analyzis here; prettier debug output.
2137         (ipcp_propagate_stage): Prettier debug output.
2138         (ipcp_iterate_stage): Initialize latices here; prettier debug output.
2139         (ipcp_print_all_structures): Remove.
2140         (ipcp_need_redirect_p): Test !n_cloning_candidates.
2141         (ipcp_insert_stage): Prettier debug output; call
2142         cgraph_remove_unreachable_nodes before propagating.
2143         (pass_ipa_cp): Schedule function removal pass.
2144         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
2145         debug output.
2146         (cgraph_maybe_hot_edge_p): Move to ...
2147         * predict.c (cgraph_maybe_hot_edge_p) ... here.
2148         * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
2149         (common_handle_option): Set them; enable ipa-cp when profiling.
2150         * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
2151         (ipa_print_all_jump_functions): Likewise.
2152         (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
2153         (ipa_print_node_params, ipa_print_all_params): New.
2154         * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
2155         ipa_print_all_param_flags): Remove.
2156         (ipa_print_node_params, ipa_print_all_params): New.
2157
2158 2008-08-29  Bob Wilson  <bob.wilson@acm.org>
2159
2160         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
2161         change from 2008-04-03.
2162         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
2163
2164 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
2165
2166         PR rtl-opt/37251
2167
2168         * ira-color.c (push_allocnos_to_stack): Truncate
2169         removed_splay_allocno_vec.
2170
2171 2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
2172
2173         PR rtl-opt/37243
2174         * ira-color (ira_fast_allocation): Don't assign hard registers to
2175         global allocnos.
2176
2177 2008-08-29  Jan Hubicka  <jh@suse.cz>
2178
2179         PR middle-end/37278
2180         * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
2181         for cold internal loops.
2182
2183 2008-08-29  Richard Guenther  <rguenther@suse.de>
2184
2185         * tree-ssa-structalias.c (create_variable_info_for): Do not
2186         create fields for heap vars or vars with a noalias state.
2187         For NO_ALIAS_ANYTHING variables add a self-constraint, not one
2188         from ESCAPED.
2189
2190 2008-08-29  Richard Guenther  <rguenther@suse.de>
2191
2192         * common.opt (ftree-store-ccp): Mark as preserved for
2193         backward compatibility.
2194         * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
2195         * tree-pass.h (pass_store_ccp): Remove.
2196         * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
2197         (first_vdef): Remove declaration.
2198         (get_value_loaded_by): Likewise.
2199         * tree-ssa-ccp.c (do_store_ccp): Remove.
2200         (get_default_value): Simplify as do_store_ccp is always false
2201         now.  Do not initialize mem_ref.
2202         (set_value_varying): Likewise.
2203         (canonicalize_float_value): Likewise.
2204         (set_lattice_value): Likewise.
2205         (likely_value): Likewise.
2206         (surely_varying_stmt_p): Likewise.
2207         (ccp_initialize): Likewise.
2208         (ccp_lattice_meet): Likewise.
2209         (ccp_visit_phi_node): Likewise.
2210         (ccp_fold): Likewise.
2211         (evaluate_stmt): Likewise.
2212         (visit_assignment): Likewise.
2213         (ccp_visit_stmt): Likewise.
2214         (execute_ssa_ccp): Fold into ...
2215         (do_ssa_ccp): ... this.
2216         (do_ssa_store_ccp): Remove.
2217         (gate_store_ccp): Likewise.
2218         (pass_store_ccp): Likewise.
2219         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
2220         initialize mem_ref.
2221         * tree-ssa-propagate.c (first_vdef): Remove.
2222         (get_value_loaded_by): Likewise.
2223         (replace_vuses_in): Likewise.
2224         (substitute_and_fold): Do not call replace_vuses_in.
2225         * opts.c (decode_options): Do not set flag_tree_store_ccp.
2226
2227 2008-08-29  Richard Guenther  <rguenther@suse.de>
2228
2229         PR middle-end/37236
2230         * tree-ssa-structalias.c (intra_create_variable_infos): Mark
2231         PARAM_NOALIAS tags with is_heapvar.
2232         * tree-ssa-operands.c (access_can_touch_variable): Offset
2233         based tests do not apply for heapvars.  Fix offset test.
2234
2235 2008-08-29  Jan Hubicka  <jh@suse.cz>
2236
2237         * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
2238         (-fipa-cp-clone): Enabled by default at -O3.
2239         * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
2240         make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
2241
2242 2008-08-29  Jan Hubicka  <jh@suse.cz>
2243
2244         * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
2245         New functions.
2246         * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
2247         Declare.
2248         * gimple.c (giple_copy_call_skip_args): New function.
2249         (giple_copy_call_skip_args): Declare.
2250
2251         * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
2252         * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
2253         (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
2254         (ipcp_create_replace_map): Improve debug output.
2255         (ipcp_need_redirect_p): Return false when not clonning.
2256         (ipcp_update_callgraph): Skip args.
2257         (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
2258         skip args.
2259         * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
2260         (save_inline_function_body): Update call of tree_function_versioning.
2261         * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
2262         * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
2263         (tree_function_versioning): Likewise.
2264         * tree-inline.h (tree_function_versioning): Update prototype.
2265
2266 2008-08-29  Jan Hubicka  <jh@suse.cz>
2267
2268         * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
2269         * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
2270         * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
2271         * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
2272         * value-prof.c (gimple_divmod_fixed_value_transform,
2273         gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
2274         gimple_stringops_transform): Use optimize_bb_for_size_p.
2275         * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
2276         * final.c (compute_alignments): Use optimize_function_for_size_p.
2277         * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
2278         (fold_builtin_strcpy, fold_builtin_fputs): Use
2279         optimize_function_for_size_p.
2280         * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
2281         * recog.c (relax_delay_slots): Likewise.
2282         * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
2283         (execute_cse_reciprocals): Use optimize_bb_for_size_p.
2284         * ipa-inline.c (cgraph_decide_recursive_inlining): Use
2285         optimize_function_for_size_p.
2286         (cgraph_decide_inlining_of_small_function): Use
2287         optimize_function_for_size_p.
2288         * global.c (find_reg): Use optimize_function_for_size_p.
2289         * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
2290         flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
2291         flag_prefetch_loop_arrays. Those can work it out from profile.
2292         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
2293         optimize_loop_for_speed_p.
2294         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
2295         argument.
2296         (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
2297         * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
2298         * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
2299         * local-alloc.c (block_alloc): Pass BB pointer.
2300         (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
2301         * gcse.c (gcse_main): Use optimize_function_for_size_p.
2302         * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
2303         (decide_peel_completely): Likewise.
2304         * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
2305         optimize_loop_for_size_p.
2306         (vect_enhance_data_refs_alignment): Likewise.
2307         * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
2308         (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
2309         * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
2310         (try_crossjump_bb): Use optimize_bb_for_size_p.
2311         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2312         optimize_loop_for_speed_p.
2313         * bb-reorder.c (find_traces_1_round): Likewise.
2314         (copy_bb): Use optimize_bb_for_speed_p.
2315         (duplicate_computed_gotos): Likewise.
2316         * basic-block.h (optimize_loop_nest_for_size_p,
2317         optimize_loop_nest_for_speed_p): New.
2318         * stmt.c (expand_case): Use optimize_insn_for_size_p.
2319
2320 2008-08-29  Tristan Gingold  <gingold@adacore.com>
2321
2322         * gcov.c (main): Call expandargv.
2323
2324 2008-08-29  Jan Hubicka  <jh@suse.cz>
2325
2326         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
2327         is not cold.
2328         * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
2329         Constify arguments.
2330         (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
2331         * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
2332         Constify.
2333         (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
2334
2335 2008-08-29  Jan Hubicka  <jh@suse.cz>
2336
2337         * tree-pass.h (pass_strip_predict_hints): Declare.
2338         * predict.c (strip_builtin_expect): Rename to ...
2339         (strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
2340         (tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
2341         (tree_estimate_probability): Do not strip builtin_expect.
2342         (pass_strip_predict_hints): New pass.
2343         * tree-inline.c (expand_call_inline): When inlining cold function, predict
2344         it as unlikely.
2345         * passes.c (init_optimization_passes): Add pass_strip_predict_hints.
2346
2347 2008-08-29  Richard Guenther  <rguenther@suse.de>
2348
2349         PR tree-optimization/37207
2350         * tree-vrp.c (extract_range_from_binary_expr): Also try
2351         to constant fold if only one of the operands is a constant.
2352
2353 2008-08-29  Nick Clifton  <nickc@redhat.com>
2354
2355         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Treat LABEL_REFs in
2356         the same way as SYMBOL_REFs.
2357
2358 2008-08-28  Bob Wilson  <bob.wilson@acm.org>
2359
2360         * config/xtensa/xtensa.md (<u>mulsidi3): Use a temporary register.
2361
2362 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
2363
2364         * config/mips/mips.h (ISA_HAS_BBIT): New macro.
2365         * config/mips/mips.md (branch_likely): Remove const.  Fix
2366         comment formatting.
2367         (define_delay for type "branch"): Change to only apply for branch
2368         with likely variant.
2369         (define_delay for type "branch" and "branch_likely" no).  New delay
2370         definition.
2371         (equality_op): New code iterator.
2372         (bbv, bbinv): New code attributes.
2373         (*branch_bit<bbv><mode>, *branch_bit<bbv><mode>_inverted): New
2374         patterns.
2375
2376 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2377             Andrew Pinski  <pinskia@gcc.gnu.org>
2378
2379         PR 18050
2380         * c-common.c (verify_tree): Fix handling of ADDR_EXPR.
2381
2382 2008-08-28  Paolo Carlini  <paolo.carlini@oracle.com>
2383
2384         * gtrh-posix.h: Fix uses of _POSIX_TIMEOUTS per the normal Posix
2385         rule that a symbolic constant must be defined and >= 0 for the
2386         corresponding facility to be present at compile-time.
2387         * gthr-posix.c: Likewise.
2388
2389 2008-08-28  Adam Nemet  <anemet@caviumnetworks.com>
2390
2391         * config/mips/mips.h (ISA_HAS_DMUL3): New macro.
2392         * config/mips/mips.md (D): New mode attribute.
2393         (mulsi3, muldi3): Merge it into ...
2394         (mul<mode>3): ... new template.  Use _mul3 ending for 3-op
2395         patterns.
2396         (muldi3_mul3): New pattern.
2397         (mulsi3_mult3): Rename to mulsi3_mul3.
2398
2399 2008-08-28  Jan Hubicka  <jh@suse.cz>
2400
2401         * expmed.c (store_bit_field_1): Be prepared for movstrict expander
2402         to fail.
2403         * predict.c (always_optimize_for_size_p): Rename to ...
2404         (optimize_function_for_size): ... this one; make extern.
2405         (optimize_function_for_speed_p): New.
2406         (optimize_bb_for_size_p, optimize_bb_for_size_p,
2407         optimize_edge_for_size_p,optimize_edge_for_size_p,
2408         optimize_insn_for_size_p, optimize_insn_for_size_p): Update.
2409         * basic-block.h (optimize_function_for_size_p,
2410         optimize_function_for_speed_p): Declare.
2411         * i386.md (optimize_size checks): Replace them by appropriate
2412         predicate.
2413         (standard_80387_constant_p, ix86_compute_frame_layout,
2414         ix86_expand_epilogue, ix86_decompose_address,
2415         print_operand, emit_i387_cw_initialization,
2416         inline_memory_move_cost, ix86_pad_returns,
2417         ix86_reorg): Replace optimize_size checks.
2418
2419 2008-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
2420
2421         * rtl.h (simplify_subreg_regno): Declare.
2422         * rtlanal.c (simplify_subreg_regno): New function, split out from...
2423         * simplify-rtx.c (simplify_subreg): ...here.
2424         * reload.c (find_reloads): Use simplify_subreg_regno instead of
2425         subreg_offset_representable_p.
2426
2427 2008-08-28  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2428
2429         PR c/30949
2430         * c-typeck.c (convert_for_assignment): Give a note describing what
2431         was passed and what was expected.
2432
2433 2008-08-28  Joey Ye  <joey.ye@intel.com>
2434
2435         * doc/extend.texi: Document AVX built-in functions.
2436         * doc/invoke.texi: Document -mavx.
2437
2438 2008-08-28  H.J. Lu  <hongjiu.lu@intel.com>
2439             Joey Ye  <joey.ye@intel.com>
2440             Xuepeng Guo  <xuepeng.guo@intel.com>
2441
2442         * config.gcc (extra_headers): Add gmmintrin.h for x86 and x86-64.
2443
2444         * config/i386/cpuid.h (bit_FMA): New.
2445         (bit_XSAVE): Likewise.
2446         (bit_OSXSAVE): Likewise.
2447         (bit_AVX): Likewise.
2448
2449         * config/i386/gas.h (ASM_OUTPUT_OPCODE): Undefine before
2450         define.  Use ASM_OUTPUT_AVX_PREFIX.
2451
2452         * config/i386/gmmintrin.h: New.
2453
2454         * config/i386/i386.c (x86_64_reg_class): Add X86_64_AVX_CLASS.
2455         (OPTION_MASK_ISA_AVX_SET): New.
2456         (OPTION_MASK_ISA_FMA_SET): Likewise.
2457         (OPTION_MASK_ISA_AVX_UNSET): Likewise.
2458         (OPTION_MASK_ISA_FMA_SET): Likewise.
2459         (OPTION_MASK_ISA_SSE4_2_UNSET): Updated.
2460         (ix86_handle_option): Handle OPT_mavx and OPT_mfma.
2461         (pta_flags): Add PTA_AVX and PTA_FMA.
2462         (override_options): Handle PTA_AVX and PTA_FMA.
2463         (init_cumulative_args): Handle warn_avx.
2464         (classify_argument): Return 0 for COImode and OImode.  Return
2465         1 and X86_64_AVX_CLASS for 256bit vector types.
2466         (examine_argument): Handle X86_64_AVX_CLASS.
2467         (construct_container): Likewise.
2468         (function_arg_advance_32): Pass OImode and 256bit vector types
2469         in AVX register.
2470         (function_arg_advance_64): Take a new argument to indicate if a
2471         parameter is named.  Handle 256bit vector types.  Return
2472         immediately for unnamed 256bit vector mode parameters.
2473         (function_arg_advance): Updated.
2474         (function_arg_32): Add comments for TImode.  Handle OImode
2475         and 256bit vector types.
2476         (function_arg_64): Take a new argument to indicate if a
2477         parameter is named.  Handle 256bit vector types.  Return NULL
2478         for unnamed 256bit vector mode parameters.
2479         (function_arg): Updated.
2480         (setup_incoming_varargs_64): Support
2481         AVX encoding for *sse_prologue_save_insn.
2482         (ix86_gimplify_va_arg): Handle 256bit vector mode parameters.
2483         (standard_sse_constant_p): Return -2 for all 1s if SSE2 isn't
2484         enabled.  For all 1s in 256bit vector modes, return 3 if AVX is
2485         enabled, otherwise return -3.
2486         (standard_sse_constant_opcode): Handle AVX and 256bit vector
2487         modes.
2488         (print_reg): Support AVX registers.  Handle 'x' and 't'.
2489         Handle 'd' to duplicate the operand.
2490         (print_operand): Likewise.  Also support AVX vector compare
2491         instructions.
2492         (output_387_binary_op): Support AVX.
2493         (output_fp_compare): Likewise.
2494         (ix86_expand_vector_move_misalign): Likewise.
2495         (ix86_attr_length_vex_default): New.
2496         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
2497         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
2498         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
2499         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
2500         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_BLENDPD256,
2501         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
2502         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DIVPD256,
2503         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_DPPS256,
2504         IX86_BUILTIN_HADDPD256, IX86_BUILTIN_HADDPS256,
2505         IX86_BUILTIN_HSUBPD256, IX86_BUILTIN_HSUBPS256,
2506         IX86_BUILTIN_MAXPD256, IX86_BUILTIN_MAXPS256,
2507         IX86_BUILTIN_MINPD256, IX86_BUILTIN_MINPS256,
2508         IX86_BUILTIN_MULPD256, IX86_BUILTIN_MULPS256,
2509         IX86_BUILTIN_ORPD256, IX86_BUILTIN_ORPS256,
2510         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
2511         IX86_BUILTIN_SUBPD256, IX86_BUILTIN_SUBPS256,
2512         IX86_BUILTIN_XORPD256, IX86_BUILTIN_XORPS256,
2513         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
2514         IX86_BUILTIN_CMPPS, IX86_BUILTIN_CMPPD256,
2515         IX86_BUILTIN_CMPPS256, IX86_BUILTIN_CVTDQ2PD256,
2516         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
2517         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
2518         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
2519         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_EXTRACTF128PD256,
2520         IX86_BUILTIN_EXTRACTF128PS256, IX86_BUILTIN_EXTRACTF128SI256,
2521         IX86_BUILTIN_VZEROALL, IX86_BUILTIN_VZEROUPPER,
2522         IX86_BUILTIN_VZEROUPPER_REX64, IX86_BUILTIN_VPERMILVARPD,
2523         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
2524         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_VPERMILPD,
2525         IX86_BUILTIN_VPERMILPS, IX86_BUILTIN_VPERMILPD256,
2526         IX86_BUILTIN_VPERMILPS256, IX86_BUILTIN_VPERMIL2PD,
2527         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256,
2528         IX86_BUILTIN_VPERMIL2PS256, IX86_BUILTIN_VPERM2F128PD256,
2529         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
2530         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
2531         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
2532         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_VINSERTF128PD256,
2533         IX86_BUILTIN_VINSERTF128PS256, IX86_BUILTIN_VINSERTF128SI256,
2534         IX86_BUILTIN_LOADUPD256, IX86_BUILTIN_LOADUPS256,
2535         IX86_BUILTIN_STOREUPD256, IX86_BUILTIN_STOREUPS256,
2536         IX86_BUILTIN_LDDQU256, IX86_BUILTIN_LOADDQU256,
2537         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_MASKLOADPD,
2538         IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKSTOREPD,
2539         IX86_BUILTIN_MASKSTOREPS, IX86_BUILTIN_MASKLOADPD256,
2540         IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKSTOREPD256,
2541         IX86_BUILTIN_MASKSTOREPS256, IX86_BUILTIN_MOVSHDUP256,
2542         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
2543         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
2544         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
2545         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
2546         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
2547         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
2548         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
2549         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
2550         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
2551         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
2552         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
2553         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
2554         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
2555         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
2556         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
2557         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
2558         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
2559         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256
2560         and IX86_BUILTIN_MOVMSKPS256,
2561         (ix86_special_builtin_type): Add V32QI_FTYPE_PCCHAR,
2562         V8SF_FTYPE_PCV4SF, V8SF_FTYPE_PCFLOAT, V4DF_FTYPE_PCV2DF,
2563         V4DF_FTYPE_PCDOUBLE, V8SF_FTYPE_PCV8SF_V8SF,
2564         V4DF_FTYPE_PCV4DF_V4DF, V4SF_FTYPE_PCV4SF_V4SF,
2565         V2DF_FTYPE_PCV2DF_V2DF, VOID_FTYPE_PCHAR_V32QI,
2566         VOID_FTYPE_PFLOAT_V8SF, VOID_FTYPE_PDOUBLE_V4DF,
2567         VOID_FTYPE_PV8SF_V8SF_V8SF, VOID_FTYPE_PV4DF_V4DF_V4DF,
2568         VOID_FTYPE_PV4SF_V4SF_V4SF and VOID_FTYPE_PV2DF_V2DF_V2DF,
2569         (ix86_builtin_type): Add INT_FTYPE_V8SF_V8SF_PTEST,
2570         INT_FTYPE_V4DI_V4DI_PTEST, INT_FTYPE_V4DF_V4DF_PTEST,
2571         INT_FTYPE_V4SF_V4SF_PTEST, INT_FTYPE_V2DF_V2DF_PTEST,
2572         INT_FTYPE_V8SF, INT_FTYPE_V4DF, V8SI_FTYPE_V8SF, V8SI_FTYPE_V4SI,
2573         V8SF_FTYPE_V8SF, V8SF_FTYPE_V8SI, V8SF_FTYPE_V4SF,
2574         V4SI_FTYPE_V8SI, V4SI_FTYPE_V4DF, V4DF_FTYPE_V4DF,
2575         V4DF_FTYPE_V4SI, V4DF_FTYPE_V4SF, V4DF_FTYPE_V2DF,
2576         V4SF_FTYPE_V4DF, V4SF_FTYPE_V8SF, V2DF_FTYPE_V4DF,
2577         V8SF_FTYPE_V8SF_V8SF, V8SF_FTYPE_V8SF_V8SI,
2578         V4DF_FTYPE_V4DF_V4DF, V4DF_FTYPE_V4DF_V4DI,
2579         V4SF_FTYPE_V4SF_V4SI, V2DF_FTYPE_V2DF_V2DI,
2580         V8SF_FTYPE_V8SF_INT, V4SI_FTYPE_V8SI_INT, V4SF_FTYPE_V8SF_INT,
2581         V2DF_FTYPE_V4DF_INT, V4DF_FTYPE_V4DF_INT,
2582         V8SF_FTYPE_V8SF_V8SF_V8SF, V4DF_FTYPE_V4DF_V4DF_V4DF,
2583         V8SI_FTYPE_V8SI_V8SI_INT, V8SF_FTYPE_V8SF_V8SF_INT,
2584         V4DF_FTYPE_V4DF_V4DF_INT, V4DF_FTYPE_V4DF_V2DF_INT,
2585         V8SF_FTYPE_V8SF_V8SF_V8SI_INT, V4DF_FTYPE_V4DF_V4DF_V4DI_INT,
2586         V4SF_FTYPE_V4SF_V4SF_V4SI_INT and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
2587         (bdesc_special_args): Add IX86_BUILTIN_VZEROALL,
2588         IX86_BUILTIN_VZEROUPPER. IX86_BUILTIN_VZEROUPPER_REX64,
2589         IX86_BUILTIN_VBROADCASTSS, IX86_BUILTIN_VBROADCASTSD256,
2590         IX86_BUILTIN_VBROADCASTSS256, IX86_BUILTIN_VBROADCASTPD256,
2591         IX86_BUILTIN_VBROADCASTPS256, IX86_BUILTIN_LOADUPD256,
2592         IX86_BUILTIN_LOADUPS256, IX86_BUILTIN_STOREUPD256,
2593         IX86_BUILTIN_STOREUPS256, IX86_BUILTIN_LOADDQU256,
2594         IX86_BUILTIN_STOREDQU256, IX86_BUILTIN_LDDQU256,
2595         IX86_BUILTIN_MASKLOADPD, IX86_BUILTIN_MASKLOADPS,
2596         IX86_BUILTIN_MASKLOADPD256, IX86_BUILTIN_MASKLOADPS256,
2597         IX86_BUILTIN_MASKSTOREPD, IX86_BUILTIN_MASKSTOREPS,
2598         IX86_BUILTIN_MASKSTOREPD256 and IX86_BUILTIN_MASKSTOREPS256.
2599         (ix86_builtins): Add IX86_BUILTIN_ADDPD256,
2600         IX86_BUILTIN_ADDPS256, IX86_BUILTIN_ADDSUBPD256,
2601         IX86_BUILTIN_ADDSUBPS256, IX86_BUILTIN_ANDPD256,
2602         IX86_BUILTIN_ANDPS256, IX86_BUILTIN_ANDNPD256,
2603         IX86_BUILTIN_ANDNPS256, IX86_BUILTIN_DIVPD256,
2604         IX86_BUILTIN_DIVPS256, IX86_BUILTIN_HADDPD256,
2605         IX86_BUILTIN_HSUBPS256, IX86_BUILTIN_HSUBPD256,
2606         IX86_BUILTIN_HADDPS256, IX86_BUILTIN_MAXPD256,
2607         IX86_BUILTIN_MAXPS256, IX86_BUILTIN_MINPD256,
2608         IX86_BUILTIN_MINPS256, IX86_BUILTIN_MULPD256,
2609         IX86_BUILTIN_MULPS256, IX86_BUILTIN_ORPD256,
2610         IX86_BUILTIN_ORPS256, IX86_BUILTIN_SUBPD256,
2611         IX86_BUILTIN_SUBPS256, IX86_BUILTIN_XORPD256,
2612         IX86_BUILTIN_XORPS256, IX86_BUILTIN_VPERMILVARPD,
2613         IX86_BUILTIN_VPERMILVARPS, IX86_BUILTIN_VPERMILVARPD256,
2614         IX86_BUILTIN_VPERMILVARPS256, IX86_BUILTIN_BLENDPD256,
2615         IX86_BUILTIN_BLENDPS256, IX86_BUILTIN_BLENDVPD256,
2616         IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_DPPS256,
2617         IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS256,
2618         IX86_BUILTIN_CMPSD, IX86_BUILTIN_CMPSS, IX86_BUILTIN_CMPPD,
2619         IX86_BUILTIN_CMPPS,
2620         IX86_BUILTIN_CMPPD256,IX86_BUILTIN_CMPPS256,
2621         IX86_BUILTIN_EXTRACTF128PD256, IX86_BUILTIN_EXTRACTF128PS256,
2622         IX86_BUILTIN_EXTRACTF128SI256, IX86_BUILTIN_CVTDQ2PD256,
2623         IX86_BUILTIN_CVTDQ2PS256, IX86_BUILTIN_CVTPD2PS256,
2624         IX86_BUILTIN_CVTPS2DQ256, IX86_BUILTIN_CVTPS2PD256,
2625         IX86_BUILTIN_CVTTPD2DQ256, IX86_BUILTIN_CVTPD2DQ256,
2626         IX86_BUILTIN_CVTTPS2DQ256, IX86_BUILTIN_VPERM2F128PD256,
2627         IX86_BUILTIN_VPERM2F128PS256, IX86_BUILTIN_VPERM2F128SI256,
2628         IX86_BUILTIN_VPERMILPD, IX86_BUILTIN_VPERMILPS,
2629         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
2630         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMILPS,
2631         IX86_BUILTIN_VPERMILPD256, IX86_BUILTIN_VPERMILPS256,
2632         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
2633         IX86_BUILTIN_VPERMIL2PD256, IX86_BUILTIN_VPERMIL2PS256,
2634         IX86_BUILTIN_VINSERTF128PD256, IX86_BUILTIN_VINSERTF128PS256,
2635         IX86_BUILTIN_VINSERTF128SI256, IX86_BUILTIN_MOVSHDUP256,
2636         IX86_BUILTIN_MOVSLDUP256, IX86_BUILTIN_MOVDDUP256,
2637         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS256,
2638         IX86_BUILTIN_SQRTPS_NR256, IX86_BUILTIN_RSQRTPS256,
2639         IX86_BUILTIN_RSQRTPS_NR256, IX86_BUILTIN_RCPPS256,
2640         IX86_BUILTIN_ROUNDPD256, IX86_BUILTIN_ROUNDPS256,
2641         IX86_BUILTIN_UNPCKHPD256, IX86_BUILTIN_UNPCKLPD256,
2642         IX86_BUILTIN_UNPCKHPS256, IX86_BUILTIN_UNPCKLPS256,
2643         IX86_BUILTIN_SI256_SI, IX86_BUILTIN_PS256_PS,
2644         IX86_BUILTIN_PD256_PD, IX86_BUILTIN_SI_SI256,
2645         IX86_BUILTIN_PS_PS256, IX86_BUILTIN_PD_PD256,
2646         IX86_BUILTIN_VTESTZPD, IX86_BUILTIN_VTESTCPD,
2647         IX86_BUILTIN_VTESTNZCPD, IX86_BUILTIN_VTESTZPS,
2648         IX86_BUILTIN_VTESTCPS, IX86_BUILTIN_VTESTNZCPS,
2649         IX86_BUILTIN_VTESTZPD256, IX86_BUILTIN_VTESTCPD256,
2650         IX86_BUILTIN_VTESTNZCPD256, IX86_BUILTIN_VTESTZPS256,
2651         IX86_BUILTIN_VTESTCPS256, IX86_BUILTIN_VTESTNZCPS256,
2652         IX86_BUILTIN_PTESTZ256, IX86_BUILTIN_PTESTC256,
2653         IX86_BUILTIN_PTESTNZC256, IX86_BUILTIN_MOVMSKPD256 and
2654         IX86_BUILTIN_MOVMSKPS256.
2655         (ix86_init_mmx_sse_builtins): Support AVX builtins.
2656         (ix86_expand_args_builtin): Likewise.
2657         (ix86_expand_special_args_builtin): Likewise.
2658         (ix86_hard_regno_mode_ok): Handle AVX modes.
2659         (ix86_expand_vector_init_duplicate): Likewise.
2660         (ix86_expand_vector_init_one_nonzero): Likewise.
2661         (ix86_expand_vector_init_one_var): Likewise.
2662         (ix86_expand_vector_init_concat): Likewise.
2663         (ix86_expand_vector_init_general): Likewise.
2664         (ix86_expand_vector_set): Likewise.
2665         (ix86_vector_mode_supported_p): Likewise.
2666         (x86_extended_reg_mentioned_p): Check INSN_P before using
2667         PATTERN.
2668
2669         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
2670         OPTION_MASK_ISA_AVX and OPTION_MASK_ISA_FMA.
2671
2672         * config/i386/i386.h (TARGET_AVX): New.
2673         (TARGET_FMA): Likewise.
2674         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AVX and TARGET_FMA.
2675         (BIGGEST_ALIGNMENT): Set to 256 for TARGET_AVX.
2676         (VALID_AVX256_REG_MODE): New.
2677         (AVX256_VEC_FLOAT_MODE_P): Likewise.
2678         (AVX_FLOAT_MODE_P): Likewise.
2679         (AVX128_VEC_FLOAT_MODE_P): Likewise.
2680         (AVX256_VEC_FLOAT_MODE_P): Likewise.
2681         (AVX_VEC_FLOAT_MODE_P): Likewise.
2682         (ASM_OUTPUT_AVX_PREFIX): Likewise.
2683         (ASM_OUTPUT_OPCODE): Likewise.
2684         (UNITS_PER_SIMD_WORD): Add a FIXME for 32byte vectorizer
2685         support.
2686         (SSE_REG_MODE_P): Allow 256bit vector modes.
2687         (ix86_args): Add a warn_avx field.
2688
2689         * config/i386/i386.md (UNSPEC_PCMP): New.
2690         (UNSPEC_VPERMIL): Likewise.
2691         (UNSPEC_VPERMIL2): Likewise.
2692         (UNSPEC_VPERMIL2F128): Likewise.
2693         (UNSPEC_MASKLOAD): Likewise.
2694         (UNSPEC_MASKSTORE): Likewise.
2695         (UNSPEC_CAST): Likewise.
2696         (UNSPEC_VTESTP): Likewise.
2697         (UNSPECV_VZEROALL): Likewise.
2698         (UNSPECV_VZEROUPPER): Likewise.
2699         (XMM0_REG): Likewise.
2700         (XMM1_REG): Likewise.
2701         (XMM2_REG): Likewise.
2702         (XMM3_REG): Likewise.
2703         (XMM4_REG): Likewise.
2704         (XMM5_REG): Likewise.
2705         (XMM6_REG): Likewise.
2706         (XMM8_REG): Likewise.
2707         (XMM9_REG): Likewise.
2708         (XMM10_REG): Likewise.
2709         (XMM11_REG): Likewise.
2710         (XMM12_REG): Likewise.
2711         (XMM13_REG): Likewise.
2712         (XMM14_REG): Likewise.
2713         (XMM15_REG): Likewise.
2714         (prefix): Likewise.
2715         (prefix_vex_imm8): Likewise.
2716         (prefix_vex_w): Likewise.
2717         (length_vex): Likewise.
2718         (maxmin): Likewise.
2719         (movoi): Likewise.
2720         (*avx_ashlti3): Likewise.
2721         (*avx_lshrti3): Likewise.
2722         (*avx_setcc<mode>): Likewise.
2723         (*fop_<mode>_comm_mixed_avx): Likewise.
2724         (*fop_<mode>_comm_avx): Likewise.
2725         (*fop_<mode>_1_mixed_avx): Likewise.
2726         (*fop_<mode>_1_avx): Likewise.
2727         (*avx_<code><mode>3): Likewise.
2728         (*avx_ieee_smin<mode>3): Likewise.
2729         (*avx_ieee_smax<mode>3): Likewise.
2730         (mode): Add OI, V8SF and V4DF.
2731         (length): Support VEX prefix.
2732         (*cmpfp_i_mixed): Set prefix attribute.
2733         (*cmpfp_i_sse): Likewise.
2734         (*cmpfp_iu_mixed): Likewise.
2735         (*cmpfp_iu_sse): Likewise.
2736         (*movsi_1): Support AVX.
2737         (*movdi_2): Likewise.
2738         (*movdi_1_rex64): Likewise.
2739         (*movti_internal): Likewise.
2740         (*movti_rex64): Likewise.
2741         (*movsf_1): Likewise.
2742         (*movdf_nointeger): Likewise.
2743         (*movdf_integer_rex64): Likewise.
2744         (*movtf_internal): Likewise.
2745         (zero_extendsidi2_32): Likewise.
2746         (zero_extendsidi2_rex64): Likewise.
2747         (*extendsfdf2_mixed): Likewise.
2748         (*extendsfdf2_sse): Likewise.
2749         (*truncdfsf_fast_mixed): Likewise.
2750         (*truncdfsf_fast_sse): Likewise.
2751         (*truncdfsf_mixed): Likewise.
2752         (fix_trunc<mode>di_sse): Likewise.
2753         (fix_trunc<mode>si_sse): Likewise.
2754         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
2755         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
2756         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
2757         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
2758         (*rcpsf2_sse): Likewise.
2759         (*rsqrtsf2_sse): Likewise.
2760         (*sqrt<mode>2_sse): Likewise.
2761         (sse4_1_round<mode>2): Likewise.
2762         (*sse_prologue_save_insn): Disallow REX prefix for AVX.
2763         Support AVX.  Set length attribute properly for AVX.
2764
2765         * config/i386/i386-modes.def (VECTOR_MODES (INT, 32)): New.
2766         (VECTOR_MODES (FLOAT, 32)): Likewise.
2767         (VECTOR_MODE (INT, DI, 8)): Likewise.
2768         (VECTOR_MODE (INT, HI, 32)): Likewise.
2769         (VECTOR_MODE (INT, QI, 64)): Likewise.
2770         (VECTOR_MODE (FLOAT, DF, 8)): Likewise.
2771         (VECTOR_MODE (FLOAT, SF, 16)): Likewise.
2772         (VECTOR_MODE (INT, DI, 4)): Removed.
2773         (VECTOR_MODE (INT, SI, 8)): Likewise.
2774         (VECTOR_MODE (INT, HI, 16)): Likewise.
2775         (VECTOR_MODE (INT, QI, 32)): Likewise.
2776         (VECTOR_MODE (FLOAT, SF, 8)): Likewise.
2777         (INT_MODE (OI, 32)): Likewise.
2778
2779         * config/i386/i386.opt (mavx): New.
2780         (mfma): Likewise.
2781
2782         * config/i386/i386-protos.h (ix86_attr_length_vex_default): New.
2783
2784         * config/i386/mmx.md (*mov<mode>_internal_rex64): Support AVX.
2785         (*mov<mode>_internal_avx): New.
2786         (*movv2sf_internal_rex64_avx): Likewise.
2787         (*movv2sf_internal_avx): Likewise.
2788
2789         * config/i386/predicates.md (const_4_to_5_operand): New.
2790         (const_6_to_7_operand): Likewise.
2791         (const_8_to_11_operand): Likewise.
2792         (const_12_to_15_operand): Likewise.
2793         (avx_comparison_float_operator): Likewise.
2794
2795         * config/i386/sse.md (AVX256MODEI): New.
2796         (AVX256MODE): Likewise.
2797         (AVXMODEQI): Likewise.
2798         (AVXMODE): Likewise.
2799         (AVX256MODEF2P): Likewise.
2800         (AVX256MODE2P): Likewise.
2801         (AVX256MODE4P): Likewise.
2802         (AVX256MODE8P): Likewise.
2803         (AVXMODEF2P): Likewise.
2804         (AVXMODEF4P): Likewise.
2805         (AVXMODEDCVTDQ2PS): Likewise.
2806         (AVXMODEDCVTPS2DQ): Likewise.
2807         (avxvecmode): Likewise.
2808         (avxvecpsmode): Likewise.
2809         (avxhalfvecmode): Likewise.
2810         (avxscalarmode): Likewise.
2811         (avxcvtvecmode): Likewise.
2812         (avxpermvecmode): Likewise.
2813         (avxmodesuffixf2c): Likewise.
2814         (avxmodesuffixp): Likewise.
2815         (avxmodesuffixs): Likewise.
2816         (avxmodesuffix): Likewise.
2817         (vpermilbits): Likewise.
2818         (pinsrbits): Likewise.
2819         (mov<mode>): Likewise.
2820         (*mov<mode>_internal): Likewise.
2821         (push<mode>1): Likewise.
2822         (movmisalign<mode>): Likewise.
2823         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2824         (avx_movdqu<avxmodesuffix>): Likewise.
2825         (avx_lddqu<avxmodesuffix>): Likewise.
2826         (<plusminus_insn><mode>3): Likewise.
2827         (*avx_<plusminus_insn><mode>3): Likewise.
2828         (*avx_vm<plusminus_insn><mode>3): Likewise.
2829         (mul<mode>3): Likewise.
2830         (*avx_mul<mode>3): Likewise.
2831         (*avx_vmmul<mode>3): Likewise.
2832         (divv8sf3): Likewise.
2833         (divv4df3): Likewise.
2834         (avx_div<mode>3): Likewise.
2835         (*avx_div<mode>3): Likewise.
2836         (*avx_vmdiv<mode>3): Likewise.
2837         (avx_rcpv8sf2): Likewise.
2838         (*avx_vmrcpv4sf2): Likewise.
2839         (sqrtv8sf2): Likewise.
2840         (avx_sqrtv8sf2): Likewise.
2841         (*avx_vmsqrt<mode>2): Likewise.
2842         (rsqrtv8sf2): Likewise.
2843         (avx_rsqrtv8sf2): Likewise.
2844         (*avx_vmrsqrtv4sf2): Likewise.
2845         (<code><mode>3): Likewise.
2846         (*avx_<code><mode>3_finite): Likewise.
2847         (*avx_<code><mode>3): Likewise.
2848         (*avx_vm<code><mode>3): Likewise.
2849         (*avx_ieee_smin<mode>3): Likewise.
2850         (*avx_ieee_smax<mode>3): Likewise.
2851         (avx_addsubv8sf3): Likewise.
2852         (avx_addsubv4df3): Likewise.
2853         (*avx_addsubv4sf3): Likewise.
2854         (*avx_addsubv2df3): Likewise.
2855         (avx_h<plusminus_insn>v4df3): Likewise.
2856         (avx_h<plusminus_insn>v8sf3): Likewise.
2857         (*avx_h<plusminus_insn>v4sf3): Likewise.
2858         (*avx_h<plusminus_insn>v2df3): Likewise.
2859         (avx_cmpp<avxmodesuffixf2c><mode>3): Likewise.
2860         (avx_cmps<ssemodesuffixf2c><mode>3): Likewise.
2861         (*avx_maskcmp<mode>3): Likewise.
2862         (avx_nand<mode>3): Likewise.
2863         (*avx_<code><mode>3): Likewise.
2864         (*avx_nand<mode>3): Likewise.
2865         (*avx_<code><mode>3): Likewise.
2866         (*avx_cvtsi2ss): Likewise.
2867         (*avx_cvtsi2ssq): Likewise.
2868         (*avx_cvtsi2sd): Likewise.
2869         (*avx_cvtsi2sdq): Likewise.
2870         (*avx_cvtsd2ss): Likewise.
2871         (avx_cvtss2sd): Likewise.
2872         (avx_cvtdq2ps<avxmodesuffix>): Likewise.
2873         (avx_cvtps2dq<avxmodesuffix>): Likewise.
2874         (avx_cvttps2dq<avxmodesuffix>): Likewise.
2875         (*avx_cvtsi2sd): Likewise.
2876         (*avx_cvtsi2sdq): Likewise.
2877         (avx_cvtdq2pd256): Likewise.
2878         (avx_cvtpd2dq256): Likewise.
2879         (avx_cvttpd2dq256): Likewise.
2880         (*avx_cvtsd2ss): Likewise.
2881         (*avx_cvtss2sd): Likewise.
2882         (avx_cvtpd2ps256): Likewise.
2883         (avx_cvtps2pd256): Likewise.
2884         (*avx_movhlps): Likewise.
2885         (*avx_movlhps): Likewise.
2886         (avx_unpckhps256): Likewise.
2887         (*avx_unpckhps): Likewise.
2888         (avx_unpcklps256): Likewise.
2889         (*avx_unpcklps): Likewise.
2890         (avx_movshdup256): Likewise.
2891         (avx_movsldup256): Likewise.
2892         (avx_shufps256): Likewise.
2893         (avx_shufps256_1): Likewise.
2894         (*avx_shufps_<mode>): Likewise.
2895         (*avx_loadhps): Likewise.
2896         (*avx_storelps): Likewise.
2897         (*avx_loadlps): Likewise.
2898         (*avx_movss): Likewise.
2899         (*vec_dupv4sf_avx): Likewise.
2900         (*vec_concatv2sf_avx): Likewise.
2901         (*vec_concatv4sf_avx): Likewise.
2902         (*vec_setv4sf_0_avx): Likewise.
2903         (*vec_setv4sf_avx): Likewise.
2904         (*avx_insertps): Likewise.
2905         (avx_vextractf128<mode>): Likewise.
2906         (vec_extract_lo_<mode>): Likewise.
2907         (vec_extract_hi_<mode>): Likewise.
2908         (vec_extract_lo_<mode>): Likewise.
2909         (vec_extract_hi_<mode>): Likewise.
2910         (vec_extract_lo_v16hi): Likewise.
2911         (vec_extract_hi_v16hi): Likewise.
2912         (vec_extract_lo_v32qi): Likewise.
2913         (vec_extract_hi_v32qi): Likewise.
2914         (avx_unpckhpd256): Likewise.
2915         (*avx_unpckhpd): Likewise.
2916         (avx_movddup256): Likewise.
2917         (*avx_movddup): Likewise.
2918         (avx_unpcklpd256): Likewise.
2919         (*avx_unpcklpd): Likewise.
2920         (avx_shufpd256): Likewise.
2921         (avx_shufpd256_1): Likewise.
2922         (*avx_punpckhqdq): Likewise.
2923         (*avx_punpcklqdq): Likewise.
2924         (*avx_shufpd_<mode>): Likewise.
2925         (*avx_storehpd): Likewise.
2926         (*avx_loadhpd): Likewise.
2927         (*avx_loadlpd): Likewise.
2928         (*avx_movsd): Likewise.
2929         (*vec_concatv2df_avx): Likewise.
2930         (*avx_<plusminus_insn><mode>3): Likewise.
2931         (*avx_<plusminus_insn><mode>3): Likewise.
2932         (*avx_mulv8hi3): Likewise.
2933         (*avxv8hi3_highpart): Likewise.
2934         (*avx_umulv8hi3_highpart): Likewise.
2935         (*avx_umulv2siv2di3): Likewise.
2936         (*avx_mulv2siv2di3): Likewise.
2937         (*avx_pmaddwd): Likewise.
2938         (*avx_mulv4si3): Likewise.
2939         (*avx_ashr<mode>3): Likewise.
2940         (*avx_lshr<mode>3): Likewise.
2941         (*avx_ashl<mode>3): Likewise.
2942         (*avx_<code><mode>3): Likewise.
2943         (*avx_eq<mode>3): Likewise.
2944         (*avx_gt<mode>3): Likewise.
2945         (*avx_nand<mode>3): Likewise.
2946         (*avx_nand<mode>3): Likewise.
2947         (*avx_<code><mode>3): Likewise.
2948         (*avx_<code><mode>3): Likewise.
2949         (*avx_packsswb): Likewise.
2950         (*avx_packssdw): Likewise.
2951         (*avx_packuswb): Likewise.
2952         (*avx_punpckhbw): Likewise.
2953         (*avx_punpcklbw): Likewise.
2954         (*avx_punpckhwd): Likewise.
2955         (*avx_punpcklwd): Likewise.
2956         (*avx_punpckhdq): Likewise.
2957         (*avx_punpckldq): Likewise.
2958         (*avx_pinsr<avxmodesuffixs>): Likewise.
2959         (*avx_pinsrq): Likewise.
2960         (*avx_loadld): Likewise.
2961         (*vec_extractv2di_1_rex64_avx): Likewise.
2962         (*vec_extractv2di_1_avx): Likewise.
2963         (*vec_dupv2di_avx): Likewise.
2964         (*vec_concatv2si_avx): Likewise.
2965         (*vec_concatv4si_1_avx): Likewise.
2966         (*vec_concatv2di_avx): Likewise.
2967         (*vec_concatv2di_rex64_avx): Likewise.
2968         (*avx_uavgv16qi3): Likewise.
2969         (*avx_uavgv8hi3): Likewise.
2970         (*avx_psadbw): Likewise.
2971         (avx_movmskp<avxmodesuffixf2c>256): Likewise.
2972         (*avx_phaddwv8hi3): Likewise.
2973         (*avx_phadddv4si3): Likewise.
2974         (*avx_phaddswv8hi3): Likewise.
2975         (*avx_phsubwv8hi3): Likewise.
2976         (*avx_phsubdv4si3): Likewise.
2977         (*avx_phsubswv8hi3): Likewise.
2978         (*avx_pmaddubsw128): Likewise.
2979         (*avx_pmulhrswv8hi3): Likewise.
2980         (*avx_pshufbv16qi3): Likewise.
2981         (*avx_psign<mode>3): Likewise.
2982         (*avx_palignrti): Likewise.
2983         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2984         (avx_blendvp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2985         (avx_dpp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2986         (*avx_mpsadbw): Likewise.
2987         (*avx_packusdw): Likewise.
2988         (*avx_pblendvb): Likewise.
2989         (*avx_pblendw): Likewise.
2990         (avx_vtestp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
2991         (avx_ptest256): Likewise.
2992         (avx_roundp<avxmodesuffixf2c>256): Likewise.
2993         (*avx_rounds<ssemodesuffixf2c>): Likewise.
2994         (*avx_aesenc): Likewise.
2995         (*avx_aesenclast): Likewise.
2996         (*avx_aesdec): Likewise.
2997         (*avx_aesdeclast): Likewise.
2998         (avx_vzeroupper): Likewise.
2999         (avx_vzeroupper_rex64): Likewise.
3000         (avx_vpermil<mode>): Likewise.
3001         (avx_vpermilvar<mode>3): Likewise.
3002         (avx_vpermil2<mode>3): Likewise.
3003         (avx_vperm2f128<mode>3): Likewise.
3004         (avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>): Likewise.
3005         (avx_vbroadcastss256): Likewise.
3006         (avx_vbroadcastf128_p<avxmodesuffixf2c>256): Likewise.
3007         (avx_vinsertf128<mode>): Likewise.
3008         (vec_set_lo_<mode>): Likewise.
3009         (vec_set_hi_<mode>): Likewise.
3010         (vec_set_lo_<mode>): Likewise.
3011         (vec_set_hi_<mode>): Likewise.
3012         (vec_set_lo_v16hi): Likewise.
3013         (vec_set_hi_v16hi): Likewise.
3014         (vec_set_lo_v32qi): Likewise.
3015         (vec_set_hi_v32qi): Likewise.
3016         (avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>): Likewise.
3017         (avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): Likewise.
3018         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
3019         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Likewise.
3020         (vec_init<mode>): Likewise.
3021         (*vec_concat<mode>_avx): Likewise.
3022         (blendbits): Support V8SF and V4DF.
3023         (sse2_movq128): Support AVX.
3024         (<sse>_movnt<mode>): Likewise.
3025         (sse2_movntv2di): Likewise.
3026         (sse_rcpv4sf2): Likewise.
3027         (sse_sqrtv4sf2): Likewise.
3028         (sse_rsqrtv4sf2): Likewise.
3029         (<sse>_comi): Likewise.
3030         (<sse>_ucomi): Likewise.
3031         (sse_cvtss2si): Likewise.
3032         (sse_cvtss2si_2): Likewise.
3033         (sse_cvtss2siq): Likewise.
3034         (sse_cvtss2siq_2): Likewise.
3035         (sse_cvttss2si): Likewise.
3036         (sse_cvttss2siq): Likewise.
3037         (sse2_cvtsd2si): Likewise.
3038         (sse2_cvtsd2si_2): Likewise.
3039         (sse2_cvtsd2siq): Likewise.
3040         (sse2_cvtsd2siq_2): Likewise.
3041         (sse2_cvttsd2si): Likewise.
3042         (sse2_cvttsd2siq): Likewise.
3043         (sse2_cvtdq2pd): Likewise.
3044         (*sse2_cvtpd2dq): Likewise.
3045         (*sse2_cvttpd2dq): Likewise.
3046         (*sse2_cvtpd2ps): Likewise.
3047         (sse2_cvtps2pd): Likewise.
3048         (sse3_movshdup): Likewise.
3049         (sse3_movsldup): Likewise.
3050         (sse_storehps): Likewise.
3051         (*sse4_1_extractps): Likewise.
3052         (sse2_storelpd): Likewise.
3053         (vec_dupv2df_sse3): Likewise.
3054         (*vec_concatv2df_sse3): Likewise.
3055         (*sse4_1_pextrb): Likewise.
3056         (*sse4_1_pextrb_memory): Likewise.
3057         (*sse2_pextrw): Likewise.
3058         (*sse4_1_pextrw_memory): Likewise.
3059         (*sse4_1_pextrd): Likewise.
3060         (*sse4_1_pextrq): Likewise.
3061         (sse2_pshufd_1): Likewise.
3062         (sse2_pshuflw_1): Likewise.
3063         (sse2_pshufhw_1): Likewise.
3064         (*sse2_storeq_rex64): Likewise.
3065         (*vec_dupv4si): Likewise.
3066         (<sse>_movmskp<ssemodesuffixf2c>): Likewise.
3067         (sse2_pmovmskb): Likewise.
3068         (*sse2_maskmovdqu): Likewise.
3069         (*sse2_maskmovdqu_rex64): Likewise.
3070         (sse_ldmxcsr): Likewise.
3071         (sse_stmxcsr): Likewise.
3072         (abs<mode>2): Likewise.
3073         (sse4_1_movntdqa): Likewise.
3074         (sse4_1_phminposuw): Likewise.
3075         (sse4_1_extendv8qiv8hi2): Likewise.
3076         (*sse4_1_extendv8qiv8hi2): Likewise.
3077         (sse4_1_extendv4qiv4si2): Likewise.
3078         (*sse4_1_extendv4qiv4si2): Likewise.
3079         (sse4_1_extendv2qiv2di2): Likewise.
3080         (*sse4_1_extendv2qiv2di2): Likewise.
3081         (sse4_1_extendv4hiv4si2): Likewise.
3082         (*sse4_1_extendv4hiv4si2): Likewise.
3083         (sse4_1_extendv2hiv2di2): Likewise.
3084         (*sse4_1_extendv2hiv2di2): Likewise.
3085         (sse4_1_extendv2siv2di2): Likewise.
3086         (*sse4_1_extendv2siv2di2): Likewise.
3087         (sse4_1_zero_extendv8qiv8hi2): Likewise.
3088         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
3089         (sse4_1_zero_extendv4qiv4si2): Likewise.
3090         (*sse4_1_zero_extendv4qiv4si2): Likewise.
3091         (sse4_1_zero_extendv2qiv2di2): Likewise.
3092         (*sse4_1_zero_extendv2qiv2di2): Likewise.
3093         (sse4_1_zero_extendv4hiv4si2): Likewise.
3094         (*sse4_1_zero_extendv4hiv4si2): Likewise.
3095         (sse4_1_zero_extendv2hiv2di2): Likewise.
3096         (*sse4_1_zero_extendv2hiv2di2): Likewise.
3097         (sse4_1_zero_extendv2siv2di2): Likewise.
3098         (*sse4_1_zero_extendv2siv2di2): Likewise.
3099         (sse4_1_ptest): Likewise.
3100         (sse4_1_roundp<ssemodesuffixf2c>): Likewise.
3101         (sse4_2_pcmpestri): Likewise.
3102         (sse4_2_pcmpestrm): Likewise.
3103         (sse4_2_pcmpistri): Likewise.
3104         (sse4_2_pcmpistrm): Likewise.
3105         (aesimc): Likewise.
3106         (aeskeygenassist): Likewise.
3107
3108 2008-08-28  Uros Bizjak  <ubizjak@gmail.com>
3109
3110         * config/i386/predicates.md (vzeroall_operation): New.
3111
3112         * config/i386/sse.md (avx_vzeroall): New.
3113         (*avx_vzeroall): Likewise.
3114
3115 2008-08-28  Paul Brook  <paul@codesourcery.com>
3116             Mark Shinwell  <shinwell@codesourcery.com>
3117             Richard Earnshaw  <richard.earnshaw@arm.com>
3118
3119         * config/arm/arm.c (TARGET_MAX_ANCHOR_OFFSET): New.
3120         (TARGET_MIN_ANCHOR_OFFSET): New.
3121         (arm_override_options): Set correct anchor ranges for Thumb-1
3122         and Thumb-2 if required.
3123         (legitimize_pic_address): Handle case involving a TLS symbol
3124         reference with an addend.
3125         (arm_optimization_options): Enable section anchors at -O1 and
3126         above.
3127         * config/arm/arm.h (OPTIMIZATION_OPTIONS): New.
3128         * config/arm/arm-protos.h (arm_optimization_options): New.
3129
3130 2008-08-28  Nick Clifton  <nickc@redhat.com>
3131
3132         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Define.
3133         * config/stormy16/stormy16.md (zero_extendqihi2): Fix length
3134         attribute.
3135
3136         * config/v850/v850.h (IRA_COVER_CLASSES): Define.
3137         * config/v850/v850.md (return): Remove frame size restriction.
3138
3139         * config/mcore/mcore.h (IRA_COVER_CLASSES): Define.
3140
3141         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Define.
3142
3143         * config/fr30/fr30.h (IRA_COVER_CLASSES): Define.
3144
3145         * config/m32r/m32r.h (IRA_COVER_CLASSES): Define.
3146
3147 2008-08-28  Paul Brook  <paul@codesourcery.com>
3148
3149         * config/arm/vfp11.md: Update license notice.
3150         * config/arm/cortex-r4.md: Ditto.
3151
3152 2008-08-28  Richard Guenther  <rguenther@suse.de>
3153
3154         PR tree-optimization/37207
3155         * tree-ssa-ifcombine.c (recognize_single_bit_test): Fix
3156         tuplification bug.
3157
3158 2008-08-28  Dodji Seketeli  <dodji@redhat.com>
3159
3160         PR c++/36741
3161         * tree.c (int_fits_type_p): Don't forget unsigned integers
3162           of type sizetype which higher end word equals -1.
3163
3164 2008-08-28  Ira Rosen  <irar@il.ibm.com>
3165
3166         * target.h (struct vectorize): Add new target builtin.
3167         * tree-vectorizer.c (destroy_loop_vec_info): Call
3168         vect_free_slp_instance instead of vect_free_slp_node.
3169         * tree-vectorizer.h (enum slp_load_perm_type): New.
3170         (struct _slp_instance): Add new fields.
3171         (SLP_INSTANCE_LOAD_PERMUTATION): New.
3172         (SLP_INSTANCE_LOADS): New.
3173         (vect_free_slp_tree): Remove.
3174         (vect_free_slp_instance): Declare.
3175         (SLP_TREE_LOADS_PERM_TYPE, TARG_VEC_PERMUTE_COST): New.
3176         (vectorizable_load): Add argument.
3177         (vect_transform_slp_perm_load): New.
3178         * tree-vect-analyze.c (vect_analyze_operations): Add an argument to
3179         vectorizable_load.
3180         (vect_get_place_in_interleaving_chain): New function.
3181         (vect_free_slp_tree): Make static.
3182         (vect_free_slp_instance): New function.
3183         (vect_build_slp_tree): Add new arguments. Allow load permutations and
3184         collect the load location in the interleaving chain.
3185         (vect_supported_slp_permutation_p): New function.
3186         (vect_supported_load_permutation_p): Likewise.
3187         (vect_analyze_slp_instance): In case of loads permutation, call
3188         vect_supported_load_permutation_p to check that the permutation is
3189         supported.
3190         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM): New.
3191         * tree-vect-transform.c (vect_transform_stmt): Add new argument.
3192         (vect_create_mask_and_perm): New function.
3193         (vect_get_mask_element, vect_transform_slp_perm_load): Likewise.
3194         (vectorizable_load): Add an argument. Don't keep the created vectors
3195         statements in the node if permutation is required. Call
3196         vect_transform_slp_perm_load to generate the permutation.
3197         (vect_transform_stmt): Add new argument. Call vectorizable_load with
3198         additional argument.
3199         (vect_schedule_slp_instance): In case of loads permutation, allocate
3200         vectorized statements structure for all the related SLP nodes. Call
3201         vect_transform_stmt with addditional argument.
3202         (vect_transform_loop): Call vect_transform_stmt with correct arguments.
3203         * config/spu/spu.c (spu_builtin_vec_perm): New.
3204         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
3205         * config/spu/spu.h (TARG_VEC_PERMUTE_COS): Define.
3206         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): New.
3207         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Redefine.
3208
3209 2008-08-28  Chris Fairles  <chris.fairles@gmail.com>
3210
3211         * gthr-posix.h (__gthread_create,  __gthread_join, __gthread_detach,
3212         __gthread_mutex_timed_lock, __gthread_recursive_mutex_timed_lock,
3213         __gthread_cond_signal, __gthread_cond_timedwait,
3214         __gthread_cond_timedwait_recursive): New functions.
3215         * gthr-posix.c (pthread_mutex_timedlock, pthread_cond_timedwait):
3216         Likewise.
3217         * gthr.h: Comment on defining __GTHREADS_CXX0X macro in conforming
3218         thread interfaces.
3219
3220 2008-08-28  Richard Guenther  <rguenther@suse.de>
3221
3222         PR middle-end/37005
3223         * fold-const.c (maybe_canonicalize_comparison_1): Require
3224         undefined overflow only for canonicalizing A +- CST cmp CST.
3225         Make sure to not generate new constants that are not inside
3226         their TYPE_MIN/MAX_VALUE range.
3227         (maybe_canonicalize_comparison): Remove undefined overflow
3228         checking from here.
3229         (fold_binary): Remove now duplicate folding.
3230
3231 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
3232
3233         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
3234         use not updated in the last change.
3235
3236 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3237
3238         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
3239         (IRA_COVER_CLASSES): Add FPUL_REGS.
3240
3241 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3242
3243         PR 37217
3244         * c-common.c (conversion_warning): Check for null operands.
3245
3246 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3247
3248         PR c/31673
3249         * c-decl.c (check_for_loop_decls): Improve error message. Give
3250         hint.
3251
3252 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3253
3254         PR c/37186
3255         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
3256         (convert_for_assignment): Pass corrent OPT_W* parameter to
3257         WARN_FOR_ASSIGNMENT.
3258
3259 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
3260
3261         PR c++/35321
3262         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
3263
3264 2008-08-27  Paul Brook  <paul@codesourcery.com>
3265
3266         * config.gcc: Loosen checks for arm uclinux eabi targets.
3267
3268 2008-08-27  Paul Brook  <paul@codesourcery.com>
3269
3270         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
3271         _clzsi2.
3272         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3273
3274 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
3275
3276         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
3277         the enumerators of an ENUMERAL_TYPE.
3278         * dbxout.c (dbxout_type): Ditto.
3279
3280 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3281
3282         PR rtl-opt/37219
3283         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
3284         (fwprop_addr): Check that the loop_father is not the outer loop.
3285
3286 2008-08-26  Paul Brook  <paul@codesourcery.com>
3287
3288         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
3289         Remove documentation entry for fmul type.
3290         Use fmuls to annotate single-precision multiplication patterns,
3291         fmuld to annotate double-precision multiplication patterns,
3292         fmacs to annotate single-precision multiply-accumulate patterns
3293         and fmacd to annotate double-precision multiply-accumulate patterns.
3294         * config/arm/vfp11.md: Update reservations accordingly.
3295         * config/arm/arm.md: Note that certain values of the "type"
3296         attribute are documented in vfp.md.
3297         * config/arm/arm1020e.md: Remove out of date duplicate comment.
3298         (v10_cvt): Use new fmul types.
3299
3300 2008-08-26  Paul Brook   <paul@codesourcery.com>
3301
3302         * config/arm/vfp.md: Move pipeline description for VFP11 to...
3303         * config/arm/vfp11.md: ...here.  New.
3304         * config/arm/arm.md: Include vfp11.md.
3305
3306 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
3307
3308         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
3309         parameter to inform call.
3310
3311 2008-08-26  Jeff Law  <law@redhat.com>
3312
3313         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
3314         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
3315         preferred class when copying a constant into a partial word register.
3316
3317 2008-08-26  Ben Elliston  <bje@au.ibm.com>
3318
3319         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
3320         * cp/typeck.c: Likewise.
3321         * cp/tree.c: Likewise.
3322         * gimple-low.c: Likewise.
3323         * jump.c: Likewise.
3324
3325 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
3326
3327         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
3328         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
3329
3330         * doc/passes.texi: Describe IRA.
3331
3332         * doc/tm.texi (IRA_COVER_CLASSES,
3333         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
3334
3335         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
3336         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
3337         -fira-propagate-cost, -fno-ira-share-save-slots,
3338         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
3339
3340         * flags.h (ira_algorithm): New enumeration.
3341         (flag_ira_algorithm, flag_ira_verbose): New external variable
3342         declarations.
3343
3344         * postreload.c (gate_handle_postreload): Don't do post reload
3345         optimizations unless the reload is completed.
3346
3347         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
3348         IRA.
3349
3350         * tree-pass.h (pass_ira): New external variable declaration.
3351
3352         * reload.h: Add 2008 to the Copyright.
3353
3354         * cfgloopanal.c: Include params.h.
3355         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
3356         mode.
3357
3358         * params.h (IRA_MAX_LOOPS_NUM): New macro.
3359
3360         * toplev.c (ira.h): New include.
3361         (flag_ira_algorithm, flag_ira_verbose): New external variables.
3362         (backend_init_target): Call ira_init.
3363         (backend_init): Call ira_init_once.
3364         (finalize): Call finish_ira_once.
3365
3366         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
3367         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
3368         external variables.
3369
3370         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
3371         may_move_out_cost): New external variable declarations.
3372         (move_table): New typedef.
3373
3374         * caller-save.c: Include headers output.h and ira.h.
3375         (no_caller_save_reg_set): New global variable.
3376         (save_slots_num, save_slots): New variables.
3377         (reg_save_code, reg_restore_code, add_stored_regs): Add
3378         prototypes.
3379         (init_caller_save): Set up no_caller_save_reg_set.
3380         (init_save_areas): Reset save_slots_num.
3381         (saved_hard_reg): New structure.
3382         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
3383         (initiate_saved_hard_regs, new_saved_hard_reg,
3384         finish_saved_hard_regs, saved_hard_reg_compare_func): New
3385         functions.
3386         (setup_save_areas): Add code for sharing stack slots.
3387         (all_blocks): New variable.
3388         (save_call_clobbered_regs): Process pseudo-register too.
3389         (mark_set_regs): Process pseudo-register too.
3390         (insert_one_insn): Put the insn after bb note in a empty basic
3391         block.  Add insn check.
3392
3393         * global.c (eliminable_regset): Make it external.
3394         (mark_elimination): Use DF_LR_IN for IRA.
3395         (pseudo_for_reload_consideration_p): New.
3396         (build_insn_chain): Make it external.  Don't ignore spilled
3397         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
3398         (gate_handle_global_alloc): New function.
3399         (pass_global_alloc): Add the gate function.
3400
3401         * opts.c (decode_options): Set up flag_ira.  Print the warning for
3402         -fira.
3403         (common_handle_option): Process -fira-algorithm and -fira-verbose.
3404
3405         * timevar.def (TV_IRA, TV_RELOAD): New passes.
3406
3407         * regmove.c (regmove_optimize): Don't do replacement of output for
3408         IRA.
3409
3410         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
3411         New external variable declarations.
3412
3413         * local-alloc.c (update_equiv_regs): Make it external.  Return
3414         true if jump label rebuilding should be done.  Rescan new_insn for
3415         notes.
3416         (gate_handle_local_alloc): New function.
3417         (pass_local_alloc): Add the gate function.
3418
3419         * alias.c (value_addr_p, stack_addr_p): New functions.
3420         (nonoverlapping_memrefs_p): Use them for IRA.
3421
3422         * common.opt (fira, fira-algorithm, fira-coalesce,
3423         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
3424         fira-verbose): New options.
3425
3426         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
3427         move_cost, may_move_in_cost, may_move_out_cost): Make the
3428         variables external.
3429         (move_table): Remove typedef.
3430         (init_move_cost): Make it external.
3431         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
3432         functions.
3433
3434         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
3435         setup_reg_classes): New function prototypes.
3436         (eliminable_regset): New external variable declaration.
3437         (build_insn_chain, update_equiv_regs): New function prototypes.
3438
3439         * Makefile.in (IRA_INT_H): New definition.
3440         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
3441         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
3442         (reload1.o, toplev.o): Add dependence on ira.h.
3443         (cfgloopanal.o): Add PARAMS_H.
3444         (caller-save.o): Add dependence on output.h and ira.h.
3445         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
3446         ira-emit.o, ira-lives.o): New entries.
3447
3448         * passes.c (pass_ira): New pass.
3449
3450         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
3451
3452         * reload1.c (ira.h): Include the header.
3453         (changed_allocation_pseudos): New bitmap.
3454         (init_reload): Initiate the bitmap.
3455         (compute_use_by_pseudos): Permits spilled registers in FROM.
3456         (temp_pseudo_reg_arr): New variable.
3457         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
3458         IRA.  Call alter_reg with the additional parameter.  Don't clear
3459         spilled_pseudos for IRA.  Restore original insn chain for IRA.
3460         Clear changed_allocation_pseudos at the end of reload.
3461         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
3462         (hard_regno_to_pseudo_regno): New variable.
3463         (count_pseudo): Check spilled pseudos.  Set up
3464         hard_regno_to_pseudo_regno.
3465         (count_spilled_pseudo): Check spilled pseudos. Update
3466         hard_regno_to_pseudo_regno.
3467         (find_reg): Use better_spill_reload_regno_p.  Check
3468         hard_regno_to_pseudo_regno.
3469         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
3470         code for IRA.
3471         (eliminate_regs_1): Use additional parameter for alter_reg.
3472         (finish_spills): Set up pseudo_previous_regs only for spilled
3473         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
3474         more arguments.  Don't clear live_throughout and dead_or_set for
3475         spilled pseudos.  Use additional parameter for alter_reg.  Call
3476         mark_allocation_change.  Set up changed_allocation_pseudos.
3477         Remove sanity check.
3478         (emit_input_reload_insns, delete_output_reload): Use additional
3479         parameter for alter_reg.  Call mark_allocation_change.
3480         (substitute, gen_reload_chain_without_interm_reg_p): New
3481         functions.
3482         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
3483
3484         * testsuite/gcc.dg/20080410-1.c: New file.
3485
3486         * config/s390/s390.h (IRA_COVER_CLASSES,
3487         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
3488
3489         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
3490
3491         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
3492
3493         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
3494
3495         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
3496
3497         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
3498
3499         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
3500
3501         2008-08-24  Jeff Law  <law@redhat.com>
3502         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
3503         when ignoring unavailable registers.
3504
3505         2008-08-24  Jeff Law  <law@redhat.com>
3506         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
3507         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
3508         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
3509         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
3510
3511         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
3512         * ira-build.c (allocno_range_compare_func): Stabilize sort.
3513
3514         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
3515         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
3516         * reload1.c (find_reg): Process registers in register allocation order.
3517
3518         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
3519         * toplev.c (backend_init_target): Move ira_init call from
3520         here...
3521         (lang_dependent_init_target): ...to here.
3522
3523         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
3524         * ira.c (setup_class_subset_and_memory_move_costs): Don't
3525         calculate memory move costs for NO_REGS.
3526
3527         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
3528         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
3529         STACK_REGS is defined.
3530
3531         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
3532         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
3533
3534         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
3535         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
3536
3537         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
3538         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
3539         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
3540         barrier.
3541
3542 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
3543             Dorit Nuzman  <dorit@il.ibm.com>
3544
3545         * gcc/config/spu/spu.md (vec_extract_evenv4si,
3546         vec_extract_evenv4sf, vec_extract_evenv8hi,
3547         vec_extract_evenv16qi, vec_extract_oddv4si,
3548         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
3549         vec_interleave_highv4sf, vec_interleave_lowv4sf,
3550         vec_interleave_highv4si, vec_interleave_lowv4si,
3551         vec_interleave_highv8hi, vec_interleave_lowv8hi,
3552         vec_interleave_highv16qi, vec_interleave_lowv16qi,
3553         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
3554
3555 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
3556
3557         PR target/36756
3558         * config/rs6000/rs6000.c (optimization_options): Don't default to
3559         section anchors without toplevel reorder.
3560
3561 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3562
3563         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
3564         (mfc_end_critical_section): Likewise.
3565
3566 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3567
3568         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
3569         all type qualifiers from element type to vector type.
3570
3571 2008-08-25  David Daney  <ddaney@avtrex.com>
3572
3573         * config/mips/mips.md (immediate_insn): Move up in file, fix
3574         comment typo, reformat.
3575         (fetchop_bit, atomic_hiqi_op memory_barrier,
3576         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
3577         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
3578         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
3579         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
3580         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
3581         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
3582         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
3583         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
3584         sync_old_nand<mode>, sync_new_nand<mode>,
3585         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
3586         test_and_set_12): Moved to sync.md.
3587         (sync.md): Include.
3588         * config/mips/sync.md: New file.
3589
3590 2008-08-25  Richard Henderson  <rth@redhat.com>
3591
3592         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
3593         (regsave): Likewise.
3594         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
3595         (output_cfi_directive): Likewise.
3596         (div_data_align): New.
3597         (output_cfi): Use it.
3598
3599 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
3600
3601         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
3602         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
3603         (TARGET_OCTEON): New macro.
3604         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
3605         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
3606         (ISA_HAS_POP): New macro.
3607         * config/mips/driver-native.c (host_detect_local_cpu): Handle
3608         Octeon.
3609         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
3610         Handle Octeon.
3611         * config/mips/mips.md (cpu): Add octeon.
3612         (type): Add pop attribute value.
3613         (popcount<mode>2): New pattern.
3614         * doc/invoke.texi (-march=@var{arch}): Add octeon.
3615
3616 2008-08-24  Jan Hubicka  <jh@suse.cz>
3617
3618         * doc/invoke.texi (-fipa-cp-clone): New option.
3619         (-fipa-cp): Update docs.
3620         (--param ipcp-unit-growth):New.
3621         * ipa-cp.c: Include fibheap.h, params.h
3622         (ipcp_initialize_node_lattices): When not cloning, all externally
3623         visible functions are bottom.
3624         (ipcp_need_redirect_p): Accept clones.
3625         (ipcp_insert_stage): Use cost driven heuristics.
3626         (max_count, dead_nodes): New static vars.
3627         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
3628         ipcp_const_param_count): New functions.
3629         * common.opt (ipa-cp-clone): New command line option.
3630         * params.def (ipcp-unit-growth): New.
3631
3632 2008-08-24  Jan Hubicka  <jh@suse.cz>
3633
3634         * tree-inline.c (tree_function_versioning): Look harder
3635         for referenced vars.
3636
3637 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
3638
3639         PR tree-optimization/37185
3640         * matrix-reorg.c (transform_access_sites): Update changed stmt.
3641
3642 2008-08-23  Jan Hubicka  <jh@suse.cz>
3643
3644         * ipa-cp.c (ipcp_analyze_node): New function.
3645         (ipcp_update_cloned_node): Use it.
3646         (ipcp_init_stage): Likewise.
3647         * ipa-inline.c (function_insertion_hook_holder): New static var.
3648         (analyze_function): Break out from ....
3649         (inline_generate_summary): Here; register insertion hook.
3650         (cgraph_decide_inlining): Remove hook.
3651         (add_new_function): New function.
3652
3653 2008-08-23  Jan Hubicka  <jh@suse.cz>
3654
3655         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
3656
3657 2008-08-23  Jan Hubicka  <jh@suse.cz>
3658
3659         * ipa-cp.c (constant_val_insert): Remove.
3660         (ipcp_propagate_one_const): Remove.
3661         (ipcp_create_replace_map): Always insert replacements to the map.
3662         (ipcp_insert_stage): Do not try to insert statements by hand.
3663         * tree-inline.c (insert_init_stmt): Break out from ...
3664         (setup_one_parameter): ... here; allow NULL BB pointer.
3665         (tree_function_versioning): Use setup_one_parameter to process
3666         replacement map.
3667
3668 2008-08-23  Jan Hubicka  <jh@suse.cz>
3669
3670         * tree.c (decl_address_ip_invariant_p): New function.
3671         * tree.h (decl_address_ip_invariant_p): Declare.
3672         * gimple.c (strip_invariant_refs): Break out from ...
3673         (is_gimple_invariant_address): ... here
3674         (is_gimple_ip_invariant_address): New function.
3675         (is_gimple_ip_invariant): New function.
3676         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
3677         Declare.
3678
3679         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
3680         (ipcp_lat_is_insertable): All constants are insertable.
3681         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
3682         IPA_CONST_VALUE_REF.
3683         (ipcp_initialize_node_lattices): Propagate all types of operands.
3684         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
3685         (ipcp_create_replace_map): Reformat.
3686         (ipcp_need_redirect_p): Simplify.
3687         (ipcp_insert_stage): Check that argument is used before clonning.
3688         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
3689         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
3690         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
3691         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
3692         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
3693         (jump_func_type): Remove IPA_CONST_VALUE_REF.
3694         * tree-inline.c (tree_function_versioning): Add variables referenced by
3695         replacing trees.
3696
3697 2008-08-23  Jan Hubicka  <jh@suse.cz>
3698
3699         PR target/37094
3700         * i386.c (standard_80387_constant_p): Use optimize_size.
3701
3702 2008-08-23  Ira Rosen  <irar@il.ibm.com>
3703
3704         PR tree-optimization/37161
3705         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
3706         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
3707         (vect_determine_vectorization_factor): Move the scalar type
3708         retrieval to vect_get_smallest_scalar_type.
3709         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
3710         scalar type. Remove redundant computation.
3711         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
3712         (vect_get_slp_defs): Take the type of RHS into account if
3713         necessary by calling vect_get_smallest_scalar_type. Call
3714         vect_get_constant_vectors with additional argument.
3715
3716 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3717
3718         PR 35648
3719         * doc/invoke.texi (Wwrite-strings): Clarify description.
3720
3721 2008-08-23  Ira Rosen  <irar@il.ibm.com>
3722
3723         PR tree-optimization/37174
3724         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
3725         def stmt is a part of the loop before accessing its stmt_vec_info.
3726
3727 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
3728
3729         PR target/11259
3730         * config/avr/avr.md (UNSPEC_SWAP): New constants.
3731         (*swap): New insn pattern.
3732         (*ashlqi3): Rename from ashlqi3 insn pattern.
3733         (ashlqi3): New expanders.
3734         (*lshrqi3): Rename from lshrqi3 insn pattern.
3735         (lshrqi3): New expanders.
3736         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
3737         lshrqi3_const5, lshrqi3_const6): New splitters.
3738         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
3739         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
3740         peephole2 patterns.
3741
3742 2008-08-22  Richard Guenther  <rguenther@suse.de>
3743
3744         PR tree-optimization/37078
3745         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
3746         [+INF, +INF] ranges.
3747
3748 2008-08-22  Richard Guenther  <rguenther@suse.de>
3749
3750         PR tree-optimization/37143
3751         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
3752         a conversion statement instead of a copy.
3753
3754 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
3755
3756         PR target/37184
3757         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
3758         CCCmode, CCOmode and CCSmode destination modes.
3759
3760         PR target/37191
3761         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
3762         from different units in a single alternative.
3763         (*vec_extractv2sf_1): Ditto.
3764         (*vec_extractv2si_0): Ditto.
3765         (*vec_extractv2si_1): Ditto.
3766         * config/i386/sse.md (sse2_storehpd): Ditto.
3767         (sse2_storelpd): Ditto.
3768         (sse2_loadhpd): Ditto.
3769         (sse2_loadlpd): Ditto.
3770
3771         PR target/37197
3772         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
3773         (popcountsi2): Ditto.
3774         (clzdi2_abm): Ditto.
3775         (popcountdi2): Ditto.
3776         (clzhi2_abm): Ditto.
3777         (popcounthi2): Ditto.
3778
3779 2008-08-22  Richard Guenther  <rguenther@suse.de>
3780
3781         PR middle-end/36548
3782         PR middle-end/37125
3783         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
3784         if the multiplication does not overflow.
3785
3786 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
3787
3788         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
3789
3790 2008-08-21  Richard Henderson  <rth@redhat.com>
3791
3792         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
3793         spurrious comma from test.
3794         * configure: Rebuild.
3795
3796 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3797
3798         PR 30457
3799         * builtins.c (fold_builtin_next_arg): Add warning about undefined
3800         behaviour.
3801
3802 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
3803
3804         * c-tree.h (grokfield): New argument.
3805         * c-decl.c (grokfield): Handle new location argument.
3806         * c-parser.c (c_parser_struct_declaration): Pass location to
3807         grokfield.
3808
3809 2008-08-21  Richard Guenther  <rguenther@suse.de>
3810
3811         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
3812
3813 2008-08-21  Jan Hubicka  <jh@suse.cz>
3814
3815         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
3816         (cgraph_add_function_insertion_hook,
3817         cgraph_remove_function_insertion_hook,
3818         cgraph_call_function_insertion_hooks): New functions.
3819         * cgraph.h (cgraph_add_function_insertion_hook,
3820         cgraph_remove_function_insertion_hook,
3821         cgraph_call_function_insertion_hooks): Declare.
3822         * ipa-reference.c (function_insertion_hook_holder): New variable.
3823         (check_operand, look_for_address_of): When checking late, do not care
3824         about module bitmaps.
3825         (add_new_function): New function.
3826         (generate_summary): Register hooks; zero module bitmaps.
3827         (propagate): Unregister hooks.
3828         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
3829         (add_new_function): New function.
3830         (generate_summary): Register hook.
3831         (propagate): Remove hook.
3832
3833         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
3834
3835         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
3836         * ipa-cp.c (ipcp_update_cloned_node): New function.
3837         (build_const_val): Handle functions correctly; bring type logic
3838         into sync with tree-inline.c
3839         (ipcp_init_stage):  Take care of computing stuff needed by
3840         indirect inlining; update clones.
3841         (ipcp_generate_summary): Break out of ipcp_driver.
3842         (ipcp_driver): Do only execution and transformation.
3843         (pass_ipa_cp): Make IPA_PASS.
3844         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
3845         offset to address.
3846         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
3847         ipcp, some info is already available.
3848         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
3849         * tree-inline.c (remap_ssa_name): Unshare expression.
3850
3851 2008-08-21  Richard Guenther  <rguenther@suse.de>
3852
3853         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
3854         a PHI ask VN if it is already available.
3855         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
3856         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3857
3858 2008-08-21  Richard Guenther  <rguenther@suse.de>
3859
3860         PR middle-end/36817
3861         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
3862         makes sure to produce a result of the correct type.
3863
3864 2008-08-21  Jan Hubicka  <jh@suse.cz>
3865         Backport from LTO branch:
3866
3867         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
3868                     Jan Hubicka  <jh@suse.cz>
3869
3870         * ipa-pure-const.c
3871         (init_state, finish_state, set_function_state, generate_summary):
3872         New functions.
3873         (scan_stmt): Renamed from scan_function.  Changed to keep state in
3874         local static vars rather than cgraph aux field.
3875         (propagate): Renamed from static_execute. Changed to keep state in
3876         local static vars rather than cgraph aux field.
3877         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
3878         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
3879
3880         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
3881
3882         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
3883         * ipa-reference.c (init_function_info, generate_summary,
3884         propagate): New functions.
3885         (analyze_function):  Call init_function_info.
3886         (static_execute): Stripped into generate_summary and propagate.
3887         (pass_ipa_reference): Made into ipa_opt_pass.
3888
3889 2008-08-21  Richard Guenther  <rguenther@suse.de>
3890
3891         PR tree-optimization/37181
3892         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
3893         folding result.
3894         (extract_range_from_unary_expr): Likewise.
3895
3896 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3897
3898         * diagnostic.c (pedwarn_at): Rename as pedwarn.
3899         (pedwarn): Delete.
3900         * toplev.h (pedwarn_at): Likewise.
3901         * builtins.c: Update all calls to pedwarn.
3902         * c-lex.c: Likewise.
3903         * toplev.c: Likewise.
3904         * c-tree.h: Likewise.
3905         * c-decl.c: Likewise.
3906         * c-errors.c: Likewise.
3907         * c-typeck.c: Likewise.
3908         * c-common.c: Likewise.
3909         * c-parser.c: Likewise.
3910
3911 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
3912
3913         PR target/31070
3914         * config/sparc/sparc.c (function_arg_slotno): Handle structure
3915         with MODE_VECTOR_INT mode.
3916
3917 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3918
3919         PR middle-end/179
3920         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
3921         initialized outside the current module.
3922         (warn_uninitialized_var): Ignore left-hand side when walking the
3923         trees. Ignore address expressions. Examine VUSE operands in gimple
3924         statements with a variable declaration on the right-hand side.
3925
3926 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
3927
3928         PR bootstrap/37155
3929         * rtlanal.c (subreg_offset_representable_p): Revert last change.
3930
3931 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3932
3933         PR 35701
3934         * c-common.c (conversion_warning): Do not warn if applying bit-and
3935         operator to unsigned constant that fits in the target type.
3936
3937 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3938
3939         PR c++/35602
3940         * c-common.c (conversion_warning): Do not warn for artificial
3941         expressions.
3942
3943 2008-08-20  Richard Guenther  <rguenther@suse.de>
3944
3945         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
3946         (extract_range_from_binary_expr): Fall back to constant propagation.
3947         (extract_range_from_unary_expr): Likewise.
3948
3949 2008-08-20  Richard Guenther  <rguenther@suse.de>
3950
3951         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
3952         with TREE_THIS_VOLATILE on shared nodes.
3953         (fold_stmt_r): Likewise.
3954
3955 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
3956
3957         PR c/37171
3958         * c-parser.c (c_parser_attributes): For keywords use canonical
3959         spelling for attr_name.
3960
3961 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3962
3963         * value-prof.c (check_counter): Revert wrong call to error.
3964
3965 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3966
3967         * profile.c: Update calls to inform.
3968         * value-prof.c: Update calls to inform.
3969
3970 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3971
3972         * diagnostic.c (inform): Add an explicit location_t parameter.
3973         * toplev.h (inform): Update declaration.
3974         * builtins.c: Update all calls to inform.
3975         * c-common.c: Likewise.
3976         * c-decl.c: Likewise.
3977         * c-opts.c: Likewise.
3978         * c-pch.c: Likewise.
3979         * c-pragma.c: Likewise.
3980         * c-typeck.c: Likewise.
3981         * coverage.c: Likewise.
3982         * opts.c: Likewise.
3983         * toplev.c: Likewise.
3984         * tree-cfg.c: Likewise.
3985         * tree-ssa.c: Likewise.
3986
3987 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3988
3989         PR target/37169
3990         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
3991         V2DI mode, for SSE4.1, use movq instead of vector set if the
3992         second element is zero and inter-unit moves are OK.
3993
3994 2008-08-20  Richard Guenther  <rguenther@suse.de>
3995
3996         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
3997         properly handle conversion/copy chains after tuplification.
3998
3999 2008-08-20  Richard Guenther  <rguenther@suse.de>
4000
4001         * passes.c (init_optimization_passes): Move the second
4002         forwprop pass before alias computation.  Remove the second
4003         DCE pass.  Remove the first dominator and phi copy/const
4004         prop passes.
4005
4006 2008-08-20  Nick Clifton  <nickc@redhat.com>
4007
4008         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
4009         support of this feature.  Do not assume that a sufficiently new
4010         assembler will support the feature regardless of the target type.
4011         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
4012         * configure: Regenerate.
4013
4014 2008-08-20  Richard Guenther  <rguenther@suse.de>
4015
4016         * tree-vrp.c (found_in_subgraph): Remove.
4017         (live): New global static.
4018         (live_on_edge): New function.
4019         (blocks_visited): Remove.
4020         (register_edge_assert_for_2): Use live_on_edge.
4021         (find_conditional_asserts): Remove code dealing with
4022         found_in_subgraph.  Do not walk the CFG.
4023         (find_switch_asserts): Likewise.
4024         (find_assert_locations_1): Renamed from find_assert_locations.
4025         Move finding assert locations for conditional and switch
4026         statements first.  Update live bitmap.  Do not walk the CFG.
4027         (find_assert_locations): New function.
4028         (insert_range_assertions): Remove entry of CFG walk.
4029         Adjust call to find_assert_locations.
4030         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
4031         that only can appear because of fake exit edges but assert we
4032         never try to insert on those.
4033         (fini_pre): Do not remove fake exit edges here...
4034         (execute_pre): ...but here, before committing edge inserts.
4035
4036 2008-08-19  Richard Guenther  <rguenther@suse.de>
4037
4038         * passes.c (init_optimization_passes): Exchange store-ccp
4039         with a ccp pass.
4040
4041 2008-08-19  Rafael Espíndola  <espindola@google.com>
4042
4043         * varasm.c (weak_decls): Move earlier in the file.
4044         (assemble_external): Add weak decls to the weak_decls list.
4045         (declare_weak): Don't add decls to the weak_decls list.
4046
4047 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
4048
4049         PR target/37157
4050         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
4051         before (sse2_shufpd_<mode>).
4052
4053 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
4054
4055         PR debug/37156
4056         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
4057         * tree.c (block_nonartificial_location): Likewise.
4058
4059 2008-08-19  Richard Guenther  <rguenther@suse.de>
4060
4061         PR tree-optimization/35972
4062         PR tree-optimization/23094
4063         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
4064         parameter.
4065         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
4066         handle MISALIGNED_INDIRECT_REF.
4067         (get_ref_from_reference_ops): New helper.
4068         (vn_reference_lookup_pieces): Walk the use-def chain using the
4069         alias-oracle if requested.
4070         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
4071         walking the use-def chain.
4072         (compute_avail): But not here.
4073         (create_component_ref_by_pieces_1): Properly handle
4074         MISALIGNED_INDIRECT_REF.
4075         (do_regular_insertion): Handle fully redundant
4076         expressions after PHI-translation also for SSA_NAME values, not
4077         only constants.  Correctly use edoubleprime for that.
4078
4079 2008-08-19  Ira Rosen  <irar@il.ibm.com>
4080
4081         * tree-vectorizer.c (supportable_widening_operation): Support
4082         multi-step conversion, return the number of steps in such conversion
4083         and the required intermediate types.
4084         (supportable_narrowing_operation): Likewise.
4085         * tree-vectorizer.h (vect_pow2): New function.
4086         (supportable_widening_operation): Change argument types.
4087         (supportable_narrowing_operation): Likewise.
4088         (vectorizable_type_promotion): Add an argument.
4089         (vectorizable_type_demotion): Likewise.
4090         * tree-vect-analyze.c (vect_analyze_operations): Call
4091         vectorizable_type_promotion and vectorizable_type_demotion with
4092         additional argument.
4093         (vect_get_and_check_slp_defs): Detect patterns.
4094         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
4095         types.
4096         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
4097         vect_build_slp_tree with correct arguments. Calculate unrolling factor
4098         according to the smallest type in the loop.
4099         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
4100         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call
4101         supportable_widening_operation with correct arguments.
4102         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector
4103         operands lists according to the number of vector statements in left
4104         or right node, if exists.
4105         (vect_gen_widened_results_half): Remove unused argument.
4106         (vectorizable_conversion): Call supportable_widening_operation,
4107         supportable_narrowing_operation, and vect_gen_widened_results_half
4108         with correct arguments.
4109         (vectorizable_assignment): Change documentation, support multiple
4110         types in SLP.
4111         (vectorizable_operation): Likewise.
4112         (vect_get_loop_based_defs): New function.
4113         (vect_create_vectorized_demotion_stmts): Likewise.
4114         (vectorizable_type_demotion): Support loop-aware SLP and general
4115         multi-step conversion. Call vect_get_loop_based_defs and
4116         vect_create_vectorized_demotion_stmts for transformation.
4117         (vect_create_vectorized_promotion_stmts): New function.
4118         (vectorizable_type_promotion): Support loop-aware SLP and general
4119         multi-step conversion. Call vect_create_vectorized_promotion_stmts
4120         for transformation.
4121         (vectorizable_store): Change documentation, support multiple
4122         types in SLP.
4123         (vectorizable_load): Likewise.
4124         (vect_transform_stmt): Pass SLP_NODE to
4125         vectorizable_type_promotion and vectorizable_type_demotion.
4126         (vect_schedule_slp_instance): Move here the calculation of number
4127         of vectorized statements for each node from...
4128         (vect_schedule_slp): ... here.
4129         (vect_transform_loop): Call vect_schedule_slp without the last
4130         argument.
4131
4132 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
4133
4134         PR bootstrap/37152
4135         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change =
4136         to == in assert statement.
4137         (vectorizable_reduction): Fix typo.
4138
4139 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
4140
4141         PR bootstrap/37153
4142         * value-prof.c (check_counter): Dereference pointer to overall
4143         count when printing it.
4144
4145 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
4146
4147         * profile.h: Really add it.
4148
4149 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
4150
4151         * mcf.c: Really add it.
4152
4153 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
4154             Vinodha Ramasamy  <vinodha@google.com>
4155
4156         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
4157         count_scale.
4158         * value-prof.c (check_counter): Fix the counter if
4159         flag_profile_correction is true.
4160         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
4161         tree_mod_subtract_transform):
4162         Follow check_counter parameter change.
4163         * common.opt (fprofile-correction): New option.
4164         * mcf.c: New file.
4165         * profile.h: Likewise.
4166         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
4167         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
4168         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
4169         functions.
4170         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
4171         flag_profile_correction is set.
4172
4173 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
4174
4175         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
4176
4177 2008-08-18  Tomas Bily  <tbily@suse.cz>
4178
4179         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
4180         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
4181         CONVERT_EXPR_P.
4182         * tree-data-ref.c (split_constant_offset_1): Likewise.
4183         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
4184         * tree-sra.c (sra_walk_expr): Likewise.
4185         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
4186         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
4187         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
4188         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
4189         Likewise.
4190         * gimple.c (gimple_assign_unary_nop_p): Likewise.
4191         * tree-vect-transform.c (vectorizable_type_demotion)
4192         (vectorizable_type_promotion): Likewise.
4193         * tree-inline.c (expand_call_inline):
4194         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
4195         (forward_propagate_addr_expr_1, forward_propagate_comparison)
4196         (tree_ssa_forward_propagate_single_use_vars): Likewise.
4197         * expr.c (expand_expr_real_1): Likewise.
4198         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
4199         (gimple_assign_unary_useless_conversion_p): Likewise.
4200         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4201         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
4202         * fold-const.c (fold_unary): Likewise.
4203         * tree.h (CONVERT_EXPR_P): Likewise.
4204         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
4205         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
4206         * tree-vrp.c:
4207         (register_edge_assert_for_2, extract_range_from_unary_expr)
4208         (register_edge_assert_for_1): Likewise.
4209
4210 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4211
4212         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
4213         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
4214         (enum real_value_const): Delete.
4215         (get_real_const): Delete.
4216         * real.c (get_real_const): Delete.
4217         (dconst_e_ptr): Define.
4218         (dconst_third_ptr): Define.
4219         (dconst_sqrt2_ptr): Define.
4220         * builtins.c: Update all callers.
4221
4222 2008-08-18  Richard Guenther  <rguenther@suse.de>
4223
4224         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
4225         statement iterator after statement removal.
4226
4227 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
4228
4229         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
4230         (detect_processor_freebsd): Likewise.
4231         (host_detect_local_cpu): Call newly added functions for FreeBSD.
4232
4233 2008-08-18  Richard Guenther  <rguenther@suse.de>
4234
4235         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
4236         and loads have the correct types.
4237
4238 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4239
4240         PR cpp/7263
4241         * c-opts.c (cpp_opts): Remove static.
4242         * c-parser.c (cpp_opts): Declare it extern.
4243         (disable_extension_diagnostics): Handle cpp options.
4244         (enable_extension_diagnostics): Likewise.
4245
4246 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4247
4248         * diagnostics.c (permerror_at): Rename as permerror.
4249         (permerror): Delete.
4250         * toplev.h: Likewise.
4251
4252 2008-08-18  Richard Guenther  <rguenther@suse.de>
4253
4254         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
4255         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
4256         Move call_cdce before build_alias.  Move copyrename2,
4257         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
4258         right after final inlining.
4259         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
4260         (pass_build_cfg): But instead via TODO_dump_func.
4261
4262 2008-08-18  Richard Guenther  <rguenther@suse.de>
4263
4264         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
4265         element index.
4266         (scalarize_init): If we failed to generate some initializers
4267         do not generate zeros for not instantiated members.  Instead
4268         rely on the copy out.
4269         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
4270         about missing flow-sensitive alias info only if we have
4271         aliases computed.
4272
4273 2008-08-17  Nick Clifton  <nickc@redhat.com>
4274
4275         * doc/extend.texi (Function Attributes): Fix typo in description
4276         if hot function attribute.
4277
4278 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
4279             Richard Sandiford  <rdsandiford@googlemail.com>
4280
4281         * doc/install.texi (--with-mips-plt): Document.
4282         * doc/invoke.texi (-mplt, -mno-plt): Document.
4283         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
4284         and handle ${with_mips_plt}.
4285         * config/mips/mips.opt (mplt): New option.
4286         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
4287         (TARGET_ABICALLS_PIC2): Likewise.
4288         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
4289         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
4290         (ASM_SPEC): Use !mabi=* instead of !mabi*.
4291         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
4292         to decide whether to output ".option picX" directives.
4293         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
4294         Pass -call_nonpic rather than -KPIC for -mplt.
4295         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
4296         on the command line.  Also remove it when -mabi=64 is used without
4297         -msym32.
4298         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
4299         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
4300         TARGET_ABICALLS_PIC0.
4301         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
4302         TARGET_ABICALLS.
4303         (mips16_build_function_stub): Only output ".option pic" directives
4304         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
4305         (mips16_build_call_stub): Fix comment and remove redundant
4306         ".set at"/"set .noat" directives.
4307         (mips_function_rodata_section): Use the default behaviour for
4308         TARGET_ABSOLUTE_ABICALLS.
4309         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
4310         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
4311         (mips_restore_gp): Do nothing if the current function doesn't use
4312         a global pointer.
4313         (mips_expand_prologue): Only save $gp if the current function uses it.
4314         Use a normal move for TARGET_ABICALLS_PIC0.
4315         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
4316
4317 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
4318
4319         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
4320         of function when handling GLOBAL_POINTER_REGNUM.
4321
4322 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
4323
4324         PR ada/20548
4325         * common.opt (-fstack-check): Do not declare the variable here.
4326         (-fstack-check=): New option variant.
4327         * doc/invoke.texi (Code Gen Options): Document it.
4328         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
4329         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
4330         (STACK_CHECK_STATIC_BUILTIN): New macro.
4331         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
4332         * opts.c: Include expr.h.
4333         (common_handle_option) <OPT_fold_stack_check_>: New case.
4334         <OPT_fstack_check>: Likewise.
4335         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
4336         consistently in the test for variable-sized types.  Adjust for
4337         new behaviour of flag_stack_check.
4338         * explow.c: Include except.h.
4339         (allocate_dynamic_stack_space): Do not take into account
4340         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
4341         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
4342         for variable-sized parameters.  Treat all parameters whose size is
4343         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
4344         stack checking is enabled.
4345         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
4346         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
4347         if generic stack checking is enabled.
4348         (expand_function_end): Adjust for new behaviour of flag_stack_check.
4349         * reload1.c (reload): Likewise.
4350         * stmt.c (expand_decl): Assert that all automatic variables have
4351         fixed size at this point and remove dead code.
4352         * flags.h (stack_check_type): New enumeration type.
4353         (flag_stack_check): Declare.
4354         * toplev.c (flag_stack_check): New global variable.
4355         * Makefile.in (opts.o): Add dependency on EXPR_H.
4356         (explow.o): Add dependency on except.h.
4357
4358 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
4359
4360         * config/avr/avr.c (avr_override_options): Reduce value of
4361         PARAM_INLINE_CALL_COST.
4362
4363 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
4364
4365         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
4366         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
4367         lieu of TYPE_MODE (type) throughout.
4368
4369 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
4370
4371         * config/arm/arm.c (add_minipool_backward_ref): Check for
4372         8-byte-aligned entries in second case of forcing insertion after a
4373         particular entry.  Change third case to avoid inserting
4374         non-8-byte-aligned entries before 8-byte-aligned ones.
4375
4376 2008-08-15  Richard Guenther  <rguenther@suse.de>
4377
4378         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
4379         strip components for unknown size accesses.
4380
4381 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
4382
4383         * config/s390/2097.md New file.
4384         * config/s390/s390.md ("z10prop" attribute): Define none,
4385         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
4386         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
4387         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
4388         possible values and apply them to insns as appropriate.
4389         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
4390         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
4391         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
4392         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
4393         values.
4394         ("bfp" mode attribute): Removed.  Every occurence replaced
4395         with <mode>.
4396         * config/s390/s390.c (struct "z10_cost"): Updated entries.
4397         * config/s390/2084.md (insn_reservation "x_itof"): Updated
4398           type attribute.
4399
4400 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4401
4402         PR c/28152
4403         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
4404         for keywords.
4405
4406 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
4407
4408         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
4409         additional argument. Support reduction when duplication is needed due
4410         to data-types of different sizes in the loop.
4411         (get_initial_def_for_induction): Fix printout.
4412         (vect_get_vec_def_for_stmt_copy): Support case where the
4413         vec_stmt_for_operand is a phi node.
4414         (vectorizable_reduction): Support reduction when duplication is needed
4415         due to data-types of different sizes in the loop.
4416         (vectorizable_call): Remove restriction to not vectorize in case we
4417         have data-types of different sizes in the loop.
4418         (vectorizable_conversion): Likewise.
4419         (vectorizable_operation): Likewise.
4420         (vectorizable_type_demotion): Likewise.
4421         (vectorizable_type_promotion): Likewise.
4422         (vectorizable_induction): Add restriction to not vectorize in case
4423         we have data-types of different sizes in the loop.
4424
4425 2008-08-14  Christophe Saout  <christophe@saout.de>
4426             Uros Bizjak  <ubizjak@gmail.com>
4427
4428         PR target/37101
4429         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
4430         (*vec_concatv2di_rex64_sse4_1): Ditto.
4431         (*vec_concatv2di_rex64_sse): Ditto.
4432
4433 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
4434
4435         PR middle-end/37103
4436         * fold-const.c (fold_widened_comparison): Do not allow
4437         sign changes that change the result even if shorter type
4438         is wider than arg1_unw's type.
4439
4440 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
4441
4442         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
4443         Skip if the multilib testing specifies -march that does not
4444         agree with the one specified in the testcase.
4445
4446 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
4447
4448         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
4449         zero extend SImode values being converted to TFmode before passing
4450         to libcalls.
4451
4452 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4453
4454         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
4455         __PPU__ when targeting the Cell/B.E. PPU processor.
4456
4457 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
4458
4459         * gimple.h (gimple_call_set_chain): Accept SSA variables.
4460         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
4461         Rematerialize the static chain, if any.
4462         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
4463         static chain.
4464
4465 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
4466
4467         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
4468         (new_loc_descr): Likewise.
4469         (add_loc_descr): Likewise.
4470         (size_of_loc_descr): Likewise.
4471         (size_of_locs): Likewise.
4472         (output_loc_operands): Likewise.
4473         (output_loc_sequence): Likewise.
4474         (new_reg_loc_descr): New.
4475         (build_cfa_loc): Use it.
4476         (build_cfa_aligned_loc): Likewise.
4477         (one_reg_loc_descriptor): Likewise.
4478         (based_loc_descr): Likewise.
4479
4480 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4481
4482         PR 30551
4483         * doc/invoke.texi (Wmain): Update.
4484         * c-decl.c (start_decl): warn_main is only 0 or 1.
4485         (start_function): Likewise. Fix formatting.
4486         (finish_function): Delete redundant warning.
4487         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
4488         * c-opts (c_common_handle_option): -Wall only has effect if
4489         warn_main is uninitialized. OPT_Wmain is automatically
4490         handled. -pedantic also enables Wmain.
4491         (c_common_post_options): Handle all logic for Wmain here.
4492         * c-common.c (warn_main): Delete.
4493         (check_main_parameter_types): Make pedwarns conditional on
4494         OPT_Wmain.
4495         * c-common.h (warn_main): Delete.
4496
4497 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
4498
4499         PR middle-end/36701
4500         * expr.c (emit_group_store): Allocate stack temp with the
4501         largest alignment when copying from register to stack.
4502
4503 2008-08-13  Richard Guenther  <rguenther@suse.de>
4504
4505         * tree.h (maybe_fold_offset_to_address): Declare.
4506         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
4507         (ccp_fold): Handle pointer conversions the same as fold_stmt.
4508         Likewise for POINTER_PLUS_EXPR.
4509         (maybe_fold_offset_to_reference): Enable disabled code.
4510         (maybe_fold_offset_to_address): New function.
4511         (fold_stmt_r): Use it.
4512         (fold_gimple_assign): Likewise.
4513         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
4514         (gimplify_expr): Likewise.
4515
4516 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4517
4518         * toplev.h (pedwarn_at): Fix declaration.
4519
4520 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
4521
4522         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
4523         LINK_SPEC): Use %R in -Y P argument.
4524
4525 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4526
4527         PR c/15236
4528         * diagnostic.c (pedwarn_at): New.
4529         * toplev.h (pedwarn_at): Declare.
4530         * c-tree.h (build_enumerator): Update declaration.
4531         * c-decl.c (finish_enum): Update comment.
4532         (build_enumerator): Take a location parameter. Give a pedwarn but do
4533         not perform any conversion.
4534         * c-parser.c (c_parser_enum_specifier): Set correct location for
4535         enumerator.
4536
4537 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4538
4539         PR 35635
4540         * c-common.c (conversion_warning): Use a switch. Ignore boolean
4541         expressions except for conversions to signed:1 bitfields. Handle
4542         COND_EXPR with constant operands.
4543
4544 2008-08-13  Richard Guenther  <rguenther@suse.de>
4545
4546         PR tree-optimization/15255
4547         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
4548         (struct oecount_s): New struct and VEC types.
4549         (cvec): New global.
4550         (oecount_hash): New function.
4551         (oecount_eq): Likewise.
4552         (oecount_cmp): Likewise.
4553         (zero_one_operation): New function.
4554         (build_and_add_sum): Likewise.
4555         (undistribute_ops_list): Perform un-distribution of multiplication
4556         and division on the chain of summands.
4557         (should_break_up_subtract): Also break up subtracts for factors.
4558         (reassociate_bb): Delete dead visited statements.
4559         Call undistribute_ops_list.  Re-sort and optimize if it did something.
4560         * passes.c (init_optimization_passes): Move DSE before
4561         reassociation.
4562         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
4563         PHI nodes.
4564
4565 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
4566
4567         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
4568
4569         * doc/invoke.texi: Revert unintended checkin.
4570
4571 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
4572
4573         PR libgomp/26165
4574         * gcc.c (include_spec_function): Tweak call to find_a_file.
4575
4576 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
4577
4578         PR middle-end/37014
4579         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
4580         and TRUTH_ORIF_EXPR.
4581         * dojump.c (do_jump): Likewise.
4582
4583         PR tree-optimization/37084
4584         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
4585         if id->regimplify, don't assume stmt is a cast assignment.
4586
4587 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
4588
4589         * final.c (final_scan_insn): Use app_enable/app_disable functions.
4590
4591 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4592
4593         PR bootstrap/37097
4594         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
4595         by last change.
4596
4597 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4598
4599         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
4600         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
4601
4602         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
4603         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
4604         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
4605         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
4606         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
4607
4608         * doc/tm.texi (Storage Layout): Remove documentation for
4609         TARGET_FLOAT_FORMAT.
4610
4611         * simplify-rtx.c (simplify_binary_operation_1): Replace
4612         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
4613
4614 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4615
4616         * real.h (struct real_format): New member has_sign_dependent_rounding.
4617         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
4618         spu_single_format, ieee_double_format, mips_double_format,
4619         motorola_double_format, ieee_extended_motorola_format,
4620         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
4621         ieee_extended_intel_96_round_53_format, ibm_extended_format,
4622         mips_extended_format, ieee_quad_format, mips_quad_format,
4623         vax_f_format, vax_d_format, vax_g_format): Initialize it.
4624         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
4625
4626         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
4627         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
4628         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
4629         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
4630         (ROUND_TOWARDS_ZERO): Likewise.
4631
4632         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
4633         (FLOAT_MODE_FORMAT): New macro.
4634         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
4635         (MODE_COMPOSITE_P): ... this new macro.
4636         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
4637         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
4638         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
4639
4640         * flags.h: Include "real.h".
4641
4642         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
4643         REAL_MODE_FORMAT_COMPOSITE_P.
4644         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
4645
4646         * doc/tm.texi (Storage Layout): Remove documentation of
4647         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
4648         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
4649         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
4650         they only apply to libgcc2.a.
4651
4652 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4653
4654         * config/spu/float_disf.c: New file.
4655         * config/spu/float_unsdisf.c: New file.
4656         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
4657         (LIB2FUNCS_EXCLUDE): Define.
4658
4659 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4660             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4661
4662         * real.h (struct real_format): New member round_towards_zero.
4663         * real.c (round_for_format): Respect fmt->round_towards_zero.
4664         (ieee_single_format, mips_single_format, motorola_single_format,
4665         spu_single_format, ieee_double_format, mips_double_format,
4666         motorola_double_format, ieee_extended_motorola_format,
4667         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
4668         ieee_extended_intel_96_round_53_format, ibm_extended_format,
4669         mips_extended_format, ieee_quad_format, mips_quad_format,
4670         vax_f_format, vax_d_format, vax_g_format): Initialize it.
4671         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
4672
4673         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
4674         real_format to choose rounding mode when calling MPFR functions.
4675         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
4676         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
4677
4678         * real.h (real_to_decimal_for_mode): Add prototype.
4679         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
4680         Respect target rounding mode when generating decimal representation.
4681         (real_to_decimal): New stub for backwards compatibility.
4682         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
4683         real_to_decimal_for_mode instead of real_to_decimal.
4684
4685         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
4686
4687 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4688             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4689
4690         * real.c (spu_single_format): New variable.
4691         * real.h (spu_single_format): Declare.
4692
4693         * config/spu/spu.c (spu_override_options): Install SFmode format.
4694         (spu_split_immediate): Use integer mode to operate on pieces of
4695         floating-point values in all cases.
4696
4697         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
4698         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
4699         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
4700
4701 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4702
4703         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
4704
4705 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4706
4707         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
4708
4709 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
4710
4711         PR c++/36688
4712         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
4713         on the VAR_DECL instead of TYPE_READONLY on its type.
4714
4715 2008-08-12  Ira Rosen  <irar@il.ibm.com>
4716
4717         * tree-vectorizer.c: Depend on langhooks.h.
4718         (supportable_widening_operation): Add two arguments. Support double
4719         type conversions.
4720         (supportable_narrowing_operation): Likewise.
4721         * tree-vectorizer.h (supportable_widening_operation): Add two
4722         arguments.
4723         (supportable_narrowing_operation): Likewise.
4724         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
4725         supportable_widening_operation with correct arguments.
4726         * tree-vect-transform.c (vectorizable_conversion): Likewise.
4727         (vectorizable_type_demotion): Support double type conversions.
4728         (vectorizable_type_promotion): Likewise.
4729         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
4730
4731 2008-08-11  Michael Matz  <matz@suse.de>
4732
4733         * i386/i386.c (override_options): Move initialisation from
4734         flag_schedule_insns_after_reload to here from ...
4735         (optimization_options): ... here.
4736
4737 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
4738
4739         PR rtl-optimization/36998
4740         * dwarf2out.c (compute_barrier_args_size_1,
4741         compute_barrier_args_size): Temporarily remove assertions.
4742
4743 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4744
4745         PR middle-end/20644
4746         * tree-ssa.c (struct walk_data): Add new flag
4747         warn_possibly_uninitialized.
4748         (warn_uninitialized_var): Use it.
4749         (warn_uninitialized_vars): New.
4750         (execute_early_warn_uninitialized): Call it.
4751         (execute_late_warn_uninitialized): Likewise.
4752
4753 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4754
4755         PR middle-end/36238
4756         * reload1.c (gen_reload): Guard calls to get_secondary_mem
4757         for memory subregs.
4758
4759 2008-08-09  Jan Hubicka  <jh@suse.cz>
4760
4761         PR target/37055
4762         * optabs.c (maybe_emit_unop_insn): Remove produced code if
4763         expansion failed.
4764         (expand_fix): Be prepared for expansion to fail.
4765         (expand_sfix_optab): Remove instructions if expansion failed.
4766
4767 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
4768
4769         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
4770         avr31 architecture.
4771         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
4772         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4773
4774 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4775
4776         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
4777         mips/t-libgcc-mips16 to tmake_file.
4778         * config/mips/mips-protos.h (mips_call_type): New enum.
4779         (mips_pic_base_register, mips_got_load): Declare.
4780         (mips_restore_gp): Take an rtx argument.
4781         (mips_use_pic_fn_addr_reg_p): Declare.
4782         (mips_expand_call): Replace the sibcall_p argument with
4783         a mips_call_type argument.  Add a lazy_p parameter.
4784         (mips_split_call): Declare.
4785         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
4786         (MIPS16_PIC_TEMP): Likewise.
4787         (reg_class): Delete M16_NA_REGS.
4788         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
4789         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
4790         (mips_split_hi_p): Declare.
4791         * config/mips/mips.c (mips_split_hi_p): New array.
4792         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
4793         (mips_got_symbol_type_p): New function.
4794         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
4795         (mips16_stub_function_p): New function.
4796         (mips16_local_function_p): Likewise.
4797         (mips_use_pic_fn_addr_reg_p): Likewise.
4798         (mips_cannot_force_const_mem): Return false for HIGHs.
4799         Extend CONST_INT and symbolic handling to MIPS16, using
4800         mips_symbol_insns to check that the base symbol type is a
4801         legitimate constant.  Reject GOT-based constants if
4802         TARGET_MIPS16_PCREL_LOADS.
4803         (mips_const_insns): Check targetm.cannot_force_const_mem when
4804         decomposing a symbolic base and a large offset.
4805         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
4806         When calling a function that needs $25 from MIPS16 code,
4807         move the target address into $25 separately and add a USE
4808         to the call insn.
4809         (mips16_gp_pseudo_reg): Insert the initializer immediately
4810         before the first real insn.
4811         (mips_pic_base_register, mips_got_load): New functions.
4812         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
4813         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
4814         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
4815         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
4816         (mips_call_tls_get_addr): Update the call to mips_expand_call,
4817         also passing NULL_RTX rather than const0_rtx as the aux argument.
4818         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
4819         instead of TARGET_EXPLICIT_RELOCS.
4820         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
4821         (mips_load_call_address): Replace the sibcall_p argument with
4822         a mips_call_type argument.  Use mips_got_load.
4823         (mips16_local_alias): New structure.
4824         (mips16_local_aliases): New variable.
4825         (mips16_local_aliases_hash): New function.
4826         (mips16_local_aliases_eq): Likewise.
4827         (mips16_local_alias): Likewise.
4828         (mips16_stub_function): Likewise.
4829         (mips16_build_function_stub): Create a local alias for the target
4830         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
4831         .cpload directive and an R_MIPS_NONE relocation for the target
4832         function, then load the alias rather than the function itself.
4833         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
4834         (mips16_copy_fpr_return_value): Use mips16_stub_function and
4835         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
4836         (mips16_build_call_stub): Replace the FN parameter with an
4837         FN_PTR parameter.  Force the address into a register if it
4838         isn't a call_insn_operand; don't rely on the caller to do this.
4839         If a call to a locally-defined and locally-binding MIPS16
4840         function must be made indirectly, redirect the call to the
4841         function's local alias.  Use mips16_stub_function_p,
4842         mips16_stub_function, mips_expand_call and use_reg.
4843         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
4844         Use explicit %hi and %lo accesses where possible.
4845         Use MIPS_CALL to generate the correct code form of a
4846         jal instruction.  Add clobbers of $18 instead of uses.
4847         Update the call to mips_emit_call_insn.
4848         (mips_expand_call): Replace the SIBCALL_P argument with a
4849         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
4850         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
4851         allowing it to modify the call address.  Update the calls to
4852         mips_load_call_address and mips_emit_call_insn.
4853         (mips_split_call): New function.
4854         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
4855         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
4856         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
4857         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
4858         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
4859         if TARGET_MIPS16.
4860         (mips_cprestore_slot): New function.
4861         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
4862         and use mips_cprestore_slot.
4863         (mips_output_function_prologue): Handle TARGET_MIPS16 for
4864         LOADGP_OLDABI.
4865         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
4866         then use a copygp_mips16 instruction to set up $28.
4867         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
4868         (mips16_lay_out_constants): Call split_all_insns_noflow.
4869         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
4870         false if TARGET_MIPS16.
4871         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
4872         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
4873         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
4874         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
4875         MIPS16 code.  Allow MIPS16 o32 PIC.
4876         (mips_override_options): Allow MIPS16 o32 PIC.
4877         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
4878         after reload if TARGET_USE_GOT.
4879         (UNSPEC_COPYGP): New constant.
4880         (length): Use a default length of 8 for MIPS16 GOT loads.
4881         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
4882         (*got_page<mode>): Check mips_split_hi_p.
4883         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
4884         (unspec_got<mode>, unspec_call<mode>): New expanders.
4885         (load_got<mode>, load_call<mode>): Remove the length attributes.
4886         Use a got attribute instead of a type attribute.
4887         (copygp_mips16): New insn.
4888         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
4889         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
4890         (sibcall, sibcall_value, call, call_value): Update the calls
4891         to mips_expand_call.
4892         (call_internal, call_value_internal): Use mips_split_call.
4893         (call_value_multiple_internal): Likewise.
4894         (call_split): Move after call_internal (the insn it is split from).
4895         (call_internal_direct, call_value_internal_direct): Turn into
4896         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
4897         (call_direct_split, call_value_direct_split): New patterns.
4898         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
4899         and use M16_REGS instead of M16_NA_REGS.
4900         * config/mips/predicates.md (const_call_insn_operand): Replace
4901         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
4902         mips_use_pic_fn_addr_reg_p check.
4903         (move_operand): Reject HIGHs if mips_split_hi_p.
4904         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
4905         (__mips16_floatunsisf): Inline __mips16_floatsisf.
4906         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
4907         * config/mips/libgcc-mips16.ver: New file.
4908         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
4909         $(srcdir)/config/mips/libgcc-mips16.ver.
4910
4911 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4912
4913         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
4914         (mips_unspec_address, mips_unspec_offset_high): Likewise.
4915         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
4916         (mips16_cfun_returns_in_fpr_p): Likewise.
4917
4918 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4919
4920         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
4921         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
4922         rather than 4 to PC.
4923
4924 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4925
4926         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
4927         (FUNCTION_PROFILER): Save the static chain pointer into $2
4928         beforehand and restore it aftewards.
4929         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
4930         address directly into $25 and call the function through $25;
4931         do not clobber $3.  Pad the DImode version to cover the space
4932         left by the deleted $25 <- $3 move.
4933         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
4934         the removal of the $25 <- $3 move.
4935         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
4936         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
4937
4938 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
4939             Daniel Jacobowitz  <dan@codesourcery.com>
4940
4941         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
4942         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
4943         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
4944         * config/mips/mips.c (mips_start_function_definition): New function.
4945         (mips_end_function_definition): Likewise.
4946         (mips_output_function_prologue): Use mips_start_function_definition.
4947         (mips_output_function_epilogue): Use mips_end_function_definition.
4948         (build_mips16_function_stub): Use mips_start_function_definition
4949         and mips_end_function_definition.
4950         (build_mips16_call_stub): Likewise.
4951
4952 2008-08-09  Richard Guenther  <rguenther@suse.de>
4953
4954         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
4955         * gimple.h (gimple_call_fn): Adjust comment.
4956         (gimple_call_set_fndecl): New function.
4957         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
4958         longer having bare FUNCTION_DECL operand.
4959         (gimple_call_return_type): Likewise.
4960         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
4961
4962         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
4963         (gimple_mod_pow2): Likewise.
4964         (gimple_mod_subtract): Likewise.
4965         (gimple_ic): Likewise.
4966         (gimple_stringop_fixed_value): Likewise.
4967         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
4968         longer having bare FUNCTION_DECL operand.
4969         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
4970         * omp-low.c (optimize_omp_library_calls): Likewise.
4971         * cgraphunit.c (update_call_expr): Likewise.
4972         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
4973         (execute_convert_to_rsqrt): Likewise.
4974         * cfgexpand.c (gimple_to_tree): Simplify.
4975         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
4976         bare FUNCTION_DECL operand.
4977         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
4978         (convert_gimple_call): Use gimple_call_fndecl.
4979         * c-common.c (c_warn_unused_result): Likewise.
4980
4981 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4982
4983         PR c/17880
4984         * c-typeck.c (digest_init): Call verify_sequence_points from here.
4985         (c_finish_return): Likewise.
4986         (c_start_case): Likewise.
4987         * c-common.c (warn_for_collisions_1): Use explicit location in
4988         warning.
4989         * c-parser.c (c_parser_condition): New. Call
4990         verify_sequence_points.
4991         (c_parser_paren_condition): Call c_parser_condition.
4992         (c_parser_for_statement): Call c_parser_condition.
4993
4994 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4995
4996         PR 36901
4997         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.
4998         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
4999         Moved from diagnostic.h
5000         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
5001         DK_PERMERROR.
5002         (emit_diagnostic): New.
5003         (warning0, pedwarn0): Delete.
5004         (warning, warning_at, pedwarn, permerror): Return bool.
5005         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
5006         Moved to diagnostic.c.
5007         (struct diagnostic_context): Use correct type for
5008         classify_diagnostic.
5009         (diagnostic_report_diagnostic): Update declaration.
5010         (emit_diagnostic): Declare.
5011         * errors.c (warning): Return bool.
5012         * errors.h (warning): Update declaration.
5013         * toplev.h (warning0, pedwarn0): Delete.
5014         (warning, warning_at, pedwarn, permerror): Return bool.
5015         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
5016         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
5017         inform. Update all calls.
5018         (diagnose_mismatched_decls): Check return value of warning/pedwarn
5019         before giving informative note.
5020         (implicit_decl_warning): Likewise.
5021         * c-typeck.c (build_function_call): Likewise.
5022         * tree-sssa.c (warn_uninit): Likewise.
5023         * builtins.c (gimplify_va_arg_expr): Likewise.
5024
5025 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5026
5027         PR 7651
5028         * doc/invoke.texi (-Wextra): Move warning from here...
5029         (-Wuninitialized): ... to here.
5030
5031 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5032
5033         PR 28875
5034         * flags.h (set_Wunused): Delete
5035         * toplev.c (process_options): Handle Wunused flags here.
5036         * opts.c (maybe_warn_unused_parameter): Delete.
5037         (common_handle_option): Replace set_Wunused by warn_unused.
5038         (set_Wextra): Do not handle Wunused-parameter here.
5039         (set_Wunused): Delete.
5040         * c-opts.c (c_common_handle_option): Replace set_Wunused by
5041         warn_unused.
5042         * common.opt (Wunused): Add Var and Init.
5043         (Wunused-function): Likewise.
5044         (Wunused-label): Likewise.
5045         (Wunused-parameter): Likewise.
5046         (Wunused-value): Likewise.
5047         (Wunused-variable): Likewise.
5048
5049 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
5050
5051         * doc/invoke.texi: Add cpu_type power7.
5052         * config.in (HAVE_AS_VSX): New.
5053         * config.gcc: Add cpu_type power7.
5054         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
5055         VSX instructions.
5056         * configure: Regenerate.
5057         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
5058         power5.
5059         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
5060         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
5061         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
5062
5063 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
5064
5065         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
5066         type to vectorize.builtin_conversion.
5067         (vectorizable_conversion): Likewise.
5068         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
5069         integral type as input.
5070         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
5071         FIX_TRUNC_EXPR.
5072         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
5073         and ALTIVEC_BUILTIN_VCTSXS.
5074         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
5075         formatting.
5076
5077 2008-08-08  Richard Guenther  <rguenther@suse.de>
5078
5079         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
5080         (surely_varying_stmt_p): Calls are varying only if they are
5081         non-builtin and not indirect or have no result.
5082         (ccp_fold): Re-instantiate code before the tuples merge.
5083
5084 2008-08-08  Richard Guenther  <rguenther@suse.de>
5085
5086         PR tree-optimization/37056
5087         * gimple.h (gimple_assign_rhs_class): New helper function.
5088         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
5089         unary operations properly.
5090
5091 2008-08-07  Jan Hubicka  <jh@suse.cz>
5092
5093         * i386.h (ix86_size_cost): Declare.
5094         (ix86_cur_cost): New function macro.
5095         * i386.md (peepholes expanding size and splitters): Predicate by
5096         optimize_insn_for_speed_p.
5097         (peepholes reduce size and splitters): Predicate by
5098         optimize_insn_for_size_p.
5099         * i386.c (ix86_size_cost): Rename from ...
5100         (size_cost): This one.
5101         (override_options): Update.
5102         (decide_alg): Likewise.
5103         (ix86_expand_clear): Use RTL profile.
5104         (ix86_pad_returns): Use RTL profile.
5105
5106 2008-08-07  Jan Hubicka  <jh@suse.cz>
5107
5108         * recog.c (split_all_insns): Set RTL profile
5109         (peephole2_optimize): Likewise.
5110         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5111         * combine.c (combine_instructions): Likewise.
5112
5113 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5114
5115         * c-common.c (c_common_reswords): Also warn about keyword "bool".
5116
5117 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
5118
5119         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
5120         value in a6 after the set_frame_ptr insn.
5121
5122 2008-08-07  Richard Henderson  <rth@redhat.com>
5123
5124         PR debug/37033
5125         * gcc.c (cpp_options): Pass along -g*.
5126
5127 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
5128
5129         * config/arm/arm.c (output_move_neon): Update comment describing
5130         big-endian vector layout.
5131         (arm_assemble_integer): Do not handle big-endian NEON vectors
5132         specially.
5133         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
5134         neon_vget_lane<mode>_sext_internal,
5135         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
5136         element indices for big-endian.
5137
5138 2008-08-07  Richard Henderson  <rth@redhat.com>
5139
5140         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
5141         * configure, config.in: Rebuild.
5142         * debug.h (dwarf2out_do_cfi_asm): Declare.
5143         * c-cppbuiltin.c (c_cpp_builtins): Use it.
5144         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
5145         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
5146         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
5147
5148 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
5149
5150         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
5151         movv2si_internal): Combine into mov<mode>_internal.
5152         (movv2si_internal_2): Remove.
5153
5154 2008-08-07  Jan Hubicka  <jh@suse.cz>
5155
5156         PR target/37048
5157         * i386.md (single stringop patterns): Enable unconditionally.
5158
5159 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
5160
5161         PR target/36992
5162         * config/i386/emmintrin.h (_mm_move_epi64): Use
5163         __builtin_ia32_movq128.
5164
5165         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
5166         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
5167
5168         * config/i386/sse.md (sse2_movq128): New.
5169
5170         * doc/extend.texi: Document __builtin_ia32_movq128.
5171
5172 2008-08-07  Richard Guenther  <rguenther@suse.de>
5173
5174         PR middle-end/37042
5175         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
5176         pointers can access anything.
5177
5178 2008-08-06  Jan Hubicka  <jh@suse.cz>
5179
5180         * optabs.c (emit_unop_insn): Break out to ...
5181         (maybe_emit_unop_insn): ... this one.
5182         (expand_sfix_optab): Use maybe variant.
5183         * optabs.h (maybe_emit_unop_insn): Declare.
5184
5185         * i386.md (mov0 patterns): Enable by default.
5186         (FP conversion expanders): Disable expansion of code expanding
5187         sequences when instruction should be optimized for size.
5188         (single strinop patterns): Enable when optimizing for size.
5189         (string expanders): Disable expanding of code expanding sequences
5190         when optimizning instruction for size.
5191         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
5192         per BB basis.
5193         (ix86_fp_comparison_sahf_cost): Likewise.
5194         (ix86_expand_branch): Likewise.
5195         (ix86_expand_ashl_const): Likewise.
5196         (ix86_split_ashl): Likewise.
5197         (ix86_expand_strlen): Likewise.
5198         (ix86_emit_fp_unordered_jump): Likewie.
5199
5200 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5201
5202         * c-common.c: Fix typo.
5203         (c_common_reswords): Activate more C++ keyword warnings.
5204
5205         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
5206
5207 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5208
5209         PR 26785
5210         * diagnostic.c (permerror_at): New.
5211         * toplev.h (permerror_at): Declare.
5212
5213 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
5214             Ira Rosen  <irar@il.ibm.com>
5215
5216         * tree-vect-transform.c (vect_model_simple_cost): Return
5217         immediately if stmt is pure SLP.
5218         (vect_model_store_cost): Ditto.
5219         (vect_model_load_cost): Ditto.
5220         (vectorizable_store): Remove PURE_SLP check before call
5221         to vect_model_store_cost.
5222         (vect_model_store_cost): When checking whether stmt describe
5223         strided access, add a check that it is not slp_node.
5224
5225 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5226
5227         PR 8715
5228         * c-common.c (warn_for_sign_compare): New. Handle separately the
5229         case that 'constant' is zero.
5230         * c-typeck.c (build_binary_op): Move code to c-common.c
5231
5232 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5233
5234         * config/alpha/alpha.c (alpha_preferred_reload_class,
5235         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
5236         alpha_output_mi_thunk_osf): Avoid C++ keywords.
5237         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
5238         * config/arm/arm.md: Likewise.
5239         * config/avr/avr-protos.h (preferred_reload_class,
5240         test_hard_reg_class, avr_simplify_comparison_p,
5241         out_shift_with_cnt, class_max_nregs): Likewise.
5242         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
5243         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
5244         preferred_reload_class, test_hard_reg_class): Likewise.
5245         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
5246         bfin_memory_move_cost, bfin_secondary_reload,
5247         bfin_output_mi_thunk): Likewise.
5248         * config/crx/crx.c (crx_secondary_reload_class,
5249         crx_memory_move_cost): Likewise.
5250         * config/frv/frv-protos.h (frv_secondary_reload_class,
5251         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
5252         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
5253         frv_secondary_reload_class, frv_class_likely_spilled_p,
5254         frv_class_max_nregs): Likewise.
5255         * config/h8300/h8300.c (h8300_classify_operand,
5256         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
5257         Likewise.
5258         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
5259         * config/ia64/ia64.c (ia64_preferred_reload_class,
5260         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
5261         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
5262         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
5263         Likewise.
5264         * config/m68hc11/m68hc11.c (preferred_reload_class,
5265         m68hc11_memory_move_cost): Likewise.
5266         * config/mcore/mcore.c (mcore_secondary_reload_class,
5267         mcore_reload_class): Likewise.
5268         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
5269         mips_class_max_nregs, mips_cannot_change_mode_class,
5270         mips_preferred_reload_class, mips_secondary_reload_class,
5271         mips_output_mi_thunk): Likewise.
5272         * config/mmix/mmix.c (mmix_preferred_reload_class,
5273         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
5274         Likewise.
5275         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5276         Likewise.
5277         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
5278         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
5279         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5280         * config/rs6000/rs6000.c (paired_expand_vector_init,
5281         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
5282         compare_section_name, rs6000_memory_move_cost): Likewise.
5283         * config/s390/s390.c (s390_emit_compare_and_swap,
5284         s390_preferred_reload_class, s390_secondary_reload,
5285         legitimize_pic_address, legitimize_tls_address,
5286         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
5287         s390_class_max_nregs): Likewise.
5288         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
5289         * config/s390/s390.md: Likewise.
5290         * config/score/score-protos.h (score_secondary_reload_class,
5291         score_preferred_reload_class): Likewise.
5292         * config/score/score.c (score_preferred_reload_class,
5293         score_secondary_reload_class): Likewise.
5294         * config/score/score3.c (score3_output_mi_thunk,
5295         score3_preferred_reload_class, score3_secondary_reload_class,
5296         score3_hard_regno_mode_ok): Likewise.
5297         * config/score/score3.h (score3_preferred_reload_class,
5298         score3_secondary_reload_class): Likewise.
5299         * config/score/score7.c (score7_output_mi_thunk,
5300         score7_preferred_reload_class, score7_secondary_reload_class,
5301         score7_hard_regno_mode_ok): Likewise.
5302         * config/score/score7.h (score7_preferred_reload_class,
5303         score7_secondary_reload_class): Likewise.
5304         * config/sh/sh.c (prepare_move_operands, output_far_jump,
5305         output_branchy_insn, add_constant, gen_block_redirect,
5306         sh_insn_length_adjustment, sh_cannot_change_mode_class,
5307         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
5308         Likewise.
5309         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5310         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
5311         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
5312         xstormy16_preferred_reload_class): Likewise.
5313         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
5314         xtensa_expand_atomic, override_options,
5315         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
5316         Likewise.
5317         * reorg.c (try_merge_delay_insns): Likewise.
5318         * tree.c (merge_dllimport_decl_attributes): Likewise.
5319
5320         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
5321
5322 2008-08-06  Michael Matz  <matz@suse.de>
5323
5324         * Makefile.in (write_entries_to_file): Quote words.
5325         * gengtype.c: (read_input_line): Skip over leading white-space.
5326
5327 2008-08-06  Marc Gauthier  <marc@tensilica.com>
5328
5329         * config.gcc: Match more processor names for Xtensa.
5330         * configure.ac: Likewise.
5331         * doc/install.texi (Specific): Likewise.
5332         * configure: Regenerate.
5333
5334 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5335
5336         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
5337         * calls.c (avoid_likely_spilled_reg): Likewise.
5338         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
5339         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
5340         * config/i386/i386.c (ix86_expand_special_args_builtin,
5341         ix86_secondary_reload): Likewise.
5342         * except.c (struct eh_region, gen_eh_region_catch,
5343         remove_unreachable_regions, duplicate_eh_regions,
5344         assign_filter_values, build_post_landing_pads,
5345         sjlj_find_directly_reachable_regions, remove_eh_handler,
5346         reachable_next_level, foreach_reachable_handler,
5347         can_throw_internal_1, can_throw_external_1,
5348         collect_one_action_chain): Likewise.
5349         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
5350         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
5351         * function.c (update_temp_slot_address, instantiate_new_reg,
5352         instantiate_virtual_regs_in_rtx,
5353         instantiate_virtual_regs_in_insn): Likewise.
5354         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
5355         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
5356         gimplify_cleanup_point_expr): Likewise.
5357         * ipa-cp.c (ipcp_lattice_changed): Likewise.
5358         * passes.c (next_pass_1): Likewise.
5359         * print-tree.c (print_node_brief, print_node): Likewise.
5360         * profile.c (branch_prob): Likewise.
5361         * tree-dump.c (dump_register): Likewise.
5362         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
5363         Likewise.
5364         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
5365         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
5366         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
5367         copy_arguments_for_versioning, copy_static_chain): Likewise.
5368         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
5369         add_new_name_mapping, register_new_name_mapping): Likewise.
5370         * tree-mudflap.c (mf_xform_derefs): Likewise.
5371         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
5372         get_init_expr, combine_chains): Likewise.
5373         * tree-pretty-print.c (dump_generic_node): Likewise.
5374         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
5375         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
5376         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
5377         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
5378
5379 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
5380
5381         PR middle-end/37010
5382         * calls.c (expand_call): Use the biggest preferred stack
5383         boundary.
5384
5385 2008-08-06  Michael Matz  <matz@suse.de>
5386
5387         PR target/36613
5388         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
5389         for reused reload, instead of overwriting them.
5390
5391 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
5392
5393         PR middle-end/37009
5394         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
5395         for incoming stack boundary.
5396
5397         * function.c (assign_parm_find_entry_rtl): Update
5398         parm_stack_boundary.
5399
5400         * function.h (rtl_data): Add parm_stack_boundary.
5401
5402         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
5403         parm_stack_boundary for incoming stack boundary.
5404
5405 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
5406
5407         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
5408         for unrepresentable subregs or treat them as equal to other regs
5409         or subregs with the same register number.
5410
5411 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
5412
5413         PR middle-end/35432
5414         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
5415         if want_value.
5416
5417 2008-08-06  Jan Hubicka  <jh@suse.cz>
5418
5419         * predict.c (maybe_hot_frequency_p): When profile is absent, all
5420         frequencies might be hot.
5421
5422 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
5423
5424         * reload.c (find_reloads): Force constants into literal pool
5425         also if they are wrapped in a SUBREG.
5426
5427 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5428
5429         PR target/35659
5430         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
5431         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
5432         Don't allow predicated instructions for data speculation.
5433         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
5434         declaration.
5435
5436 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5437
5438         * haifa-sched.c (extend_global): Split to extend_global_data and
5439         extend_region_data.  Update all uses.
5440         (extend_all): Rename to extend_block_data.
5441
5442 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5443
5444         * sched-rgn.c (new_ready): Check if instruction can be
5445         speculatively scheduled before attempting speculation.
5446         (debug_rgn_dependencies): Remove wrongful assert.
5447
5448 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
5449
5450         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
5451
5452 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
5453
5454         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
5455         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
5456         va_size, and type_size.
5457
5458 2008-08-04  Jason Merrill  <jason@redhat.com>
5459
5460         PR c++/37016
5461         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
5462         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
5463
5464 2008-08-05  Richard Henderson  <rth@redhat.com>
5465
5466         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
5467         * configure: Rebuild.
5468
5469 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5470
5471         PR tree-opt/37024
5472         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
5473         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
5474         is a conversion.
5475
5476 2008-08-05  Richard Henderson  <rth@redhat.com>
5477
5478         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
5479         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
5480         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
5481         * common.opt (fdwarf2-cfi-asm): New.
5482         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
5483         * config.in, configure: Rebuild.
5484         * dwarf2asm.c (dw2_asm_output_data_raw): New.
5485         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
5486         (dw2_force_const_mem): Externalize.
5487         * dwarf2asm.h: Update.
5488         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
5489         generate a real label.
5490         (output_cfi_directive): New.
5491         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
5492         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
5493         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
5494         and .cfi_lsda.
5495         (dwarf2out_end_epilogue): Emit .cfi_endproc.
5496         (output_loc_operands_raw, output_loc_sequence_raw): New.
5497         (output_cfa_loc_raw): New.
5498
5499 2008-08-05  Paul Brook  <paul@codesourcery.com>
5500
5501         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
5502         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
5503         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
5504         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
5505         * config/arm/arm.h (TARGET_VFPD32): Define.
5506         (TARGET_VFP3): Use TARGET_VFPD32.
5507         (fputype): Add FPUTYPE_VFP3D16.
5508         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
5509         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
5510         * config/arm/arm-cores.def: Add cortex-r4f.
5511         * config/arm/arm-tune.md: Regenerate.
5512
5513 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5514
5515         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
5516         Reword some comments throughout the file.
5517
5518         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
5519         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
5520         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
5521         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
5522
5523         (MFC_START_ENABLE): Remove PPU-only define.
5524         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
5525         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
5526
5527         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
5528         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
5529         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
5530         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
5531         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
5532         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
5533         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
5534
5535         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
5536         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
5537         (mfc_sdcrt, mfc_sdcrtst): Likewise.
5538         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
5539
5540         (spu_read_machine_status): Fix typo.
5541
5542 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5543
5544         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
5545         SUBREG of multi-word hard register.
5546         * config/spu/spu.c (valid_subreg): Likewise.
5547         (adjust_operand): Handle SUBREGs of multi-word hard registers.
5548
5549 2008-08-04  Richard Guenther  <rguenther@suse.de>
5550
5551         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
5552         the candidate with the stripped base if that base is different
5553         from the original base even for offset zero.
5554
5555 2008-08-04  Richard Guenther  <rguenther@suse.de>
5556
5557         PR middle-end/36691
5558         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
5559         check for no_overflow.
5560
5561 2008-08-04  Richard Guenther  <rguenther@suse.de>
5562
5563         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
5564
5565 2008-08-04  Paul Brook  <paul@codesourcery.com>
5566
5567         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
5568         (arm_order_regs_for_local_alloc): New function.
5569         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
5570         prototype.
5571         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
5572
5573 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
5574
5575         PR target/37012
5576         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
5577         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
5578         (ix86_expand_epilogue): Likewise.
5579
5580 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
5581
5582         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
5583         in comments.
5584
5585 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
5586
5587         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
5588         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
5589         (*movv2sf_internal_rex64): Ditto.
5590
5591 2008-08-03  Jan Hubicka  <jh@suse.cz>
5592
5593         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
5594         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
5595         * expmed.c (expand_smod_pow2): Likewise.
5596
5597 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
5598
5599         PR target/36992
5600         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
5601         alternative 0 of operand 1.
5602         (*vec_concatv2di_rex64_sse): Ditto.
5603         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
5604         of operand 1.
5605         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
5606         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
5607         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
5608         (*movv2sf_internal_rex64): Ditto.
5609
5610 2008-08-02  Richard Guenther  <rguenther@suse.de>
5611
5612         PR target/35252
5613         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
5614         (ssedoublesizemode): New mode attribute.
5615         (sse_shufps): Call gen_sse_shufps_v4sf.
5616         (sse_shufps_1): Macroize.
5617         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
5618         (sse2_shufpd_1): Macroize.
5619         (vec_extract_odd, vec_extract_even): New expanders.
5620         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
5621         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
5622         * i386.c (ix86_expand_vector_init_one_nonzero): Call
5623         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
5624         (ix86_expand_vector_set): Likewise.
5625         (ix86_expand_reduc_v4sf): Likewise.
5626
5627 2008-08-01  Doug Kwan  <dougkwan@google.com>
5628
5629         * matrix-reorg.c: Re-enable all code.
5630         (struct malloc_call_data): Change CALL_STMT to gimple type.
5631         (collect_data_for_malloc_call): Tuplify.
5632         (struct access_site_info): Change STMT to gimple type.
5633         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
5634         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
5635         (struct free_info): Change STMT to gimple type.
5636         (struct matrix_access_phi_node):  Change PHI to gimple type.
5637         (get_inner_of_cast_expr): Remove.
5638         (may_flatten_matrices_1): Tuplify.
5639         (may_flatten_matrices): Ditto.
5640         (mark_min_matrix_escape_level): Ditto.
5641         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
5642         (ssa_accessed_in_call_rhs): New
5643         (ssa_accessed_in_assign_rhs): New
5644         (record_access_alloc_site_info): Tuplify.
5645         (add_allocation_site): Ditto.
5646         (analyze_matrix_allocation_site): Ditto.
5647         (analyze_transpose): Ditto.
5648         (get_index_from_offset): Ditto.
5649         (update_type_size): Ditto.
5650         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
5651         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
5652         (analyze_accesses_for_phi_node): Tuplify.
5653         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
5654         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
5655         (analyze_matrix_accesses): Tuplify.
5656         (check_var_data): New call-back type for check_var_notmodified_p.
5657         (check_var_notmodified_p): Tuplify and use call-back struct to
5658         return statement found.
5659         (can_calculate_expr_before_stmt): Factor out statement related code
5660         into ...
5661         (can_calculate_stmt_before_stmt): New.
5662         (check_allocation_function): Tuplify.
5663         (find_sites_in_func): Ditto.
5664         (record_all_accesses_in_func): Ditto.
5665         (transform_access_sites): Ditto.
5666         (transform_allocation_sites): Ditto.
5667         (matrix_reorg): Re-enable.
5668         (gate_matrix_reorg): Re-enable.
5669
5670 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
5671
5672         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
5673         for labels for which it hasn't been set yet.  If it has been set,
5674         stop walking insns and continue with next worklist item.
5675         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
5676         if the only BARRIER is at the very end of a function.
5677
5678 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         * cfgexpand.c (expand_stack_alignment): Assert that
5681         stack_realign_drap and drap_rtx must match.
5682
5683         * function.c (instantiate_new_reg): If DRAP is used to realign
5684         stack, replace virtual_incoming_args_rtx with internal arg
5685         pointer.
5686
5687 2008-08-01  Richard Guenther  <rguenther@suse.de>
5688
5689         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
5690         loop information only if we initialized it.
5691         (execute_pre): Call fini_pre with in_fre.
5692         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
5693         if we do not unroll because we hit max-completely-peeled-insns.
5694         Use our estimation for consistency, do allow shrinking.
5695
5696 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
5697
5698         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
5699         with MIN_STACK_BOUNDARY.
5700         (ix86_update_stack_boundary): Likewise.
5701         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
5702         STACK_BOUNDARY.
5703
5704         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
5705         (MIN_STACK_BOUNDARY): This.
5706
5707 2008-08-01  Richard Guenther  <rguenther@suse.de>
5708
5709         PR middle-end/36997
5710         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
5711
5712 2008-08-01  Richard Guenther  <rguenther@suse.de>
5713
5714         PR tree-optimization/36988
5715         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
5716         do not matter if that doesn't change volatile qualification.
5717
5718 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
5719
5720         * configure.ac: Do not generate libada-mk.  Do not subst
5721         host_cc_for_libada.
5722         * libada-mk.in: Remove.
5723         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
5724         * configure: Regenerate.
5725
5726 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
5727
5728         * tree-pass.h: Added comment about not dumping passes with name
5729         starting with star in struct opt_pass.
5730         * passes.c (register_dump_files_1): Don't do dump for a pass with
5731         name starting with star.
5732         * doc/passes.texi (Pass manager): Mention pass names and special
5733         meaning of star prefix to avoid dump.
5734
5735 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
5736
5737         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
5738         to MIPS64r2.
5739         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
5740         (ISA_MIPS64R2): New macro.
5741         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
5742         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
5743         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
5744         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
5745         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
5746         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
5747         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
5748         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
5749         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
5750         Move up to keep list alphabetically sorted.
5751         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
5752         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
5753         processor.
5754         * doc/invoke.texi (MIPS Options): Add -mips64r2.
5755         (-march=@var{arch}): Add mips64r2.
5756
5757 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5758
5759         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
5760
5761 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
5762
5763         * expr.c (expand_assignment): Check for complete type.
5764
5765 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5766
5767         PR debug/36977
5768         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
5769
5770         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
5771         for stack alignment.
5772
5773         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
5774
5775 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
5776
5777         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
5778         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
5779
5780 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
5781
5782         PR rtl-optimization/36419
5783         * dwarf2out.c (barrier_args_size): New variable.
5784         (compute_barrier_args_size, compute_barrier_args_size_1): New
5785         functions.
5786         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
5787         if not called yet in the current function, use barrier_args_size
5788         array to find the new args_size value.
5789         (dwarf2out_frame_debug): Free and clear barrier_args_size.
5790
5791 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5792
5793         PR debug/36980
5794         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
5795         rule 19.
5796
5797 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
5798
5799         PR debug/36976
5800         * dwarf2out.c (dwarf2out_args_size_adjust): New.
5801         (dwarf2out_stack_adjust): Use it.
5802         (dwarf2out_frame_debug_expr): Likewise.
5803
5804 2008-07-31  Richard Guenther  <rguenther@suse.de>
5805
5806         PR tree-optimization/36978
5807         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
5808         the generated condition.
5809
5810 2008-07-31  Richard Guenther  <rguenther@suse.de>
5811
5812         * passes.c (init_optimization_passes): Always call
5813         pass_early_warn_uninitialized.
5814         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
5815         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
5816         * doc/passes.texi (Warn for uninitialized variables): Adjust.
5817
5818 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
5819
5820         PR c/36970
5821         * builtins.c (maybe_emit_free_warning): New function.
5822         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
5823         maybe_emit_free_warning for BUILT_IN_FREE.
5824
5825         PR debug/36278
5826         * dwarf2out.c (get_context_die): New function.
5827         (force_decl_die, force_type_die): Use it.
5828         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
5829         returns NULL, force generation of DW_TAG_typedef and put that into
5830         DW_AT_import.
5831
5832         PR preprocessor/36649
5833         * c-pch.c (c_common_read_pch): Save and restore
5834         line_table->trace_includes across PCH restore.
5835
5836 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
5837
5838         PR ada/36554
5839         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
5840
5841 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
5842
5843         PR 36974
5844         * final.c (call_from_call_insn): Handle COND_EXEC.
5845
5846 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
5847
5848         * builtins.c (std_gimplify_va_arg_expr): Replace
5849         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
5850         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
5851
5852 2008-07-30  Joey Ye  <joey.ye@intel.com>
5853             H.J. Lu  <hongjiu.lu@intel.com>
5854
5855         * builtins.c (expand_builtin_setjmp_receiver): Replace
5856         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
5857         (expand_builtin_apply_args_1): Likewise.
5858         (expand_builtin_longjmp): Need DRAP for stack alignment.
5859         (expand_builtin_apply): Likewise.
5860
5861         * caller-save.c (setup_save_areas): Call assign_stack_local_1
5862         instead of assign_stack_local to allow alignment reduction.
5863
5864         * calls.c (emit_call_1): Need DRAP for stack alignment if
5865         return pops.
5866         (expand_call): Replace virtual_incoming_args_rtx with
5867         crtl->args.internal_arg_pointer.
5868         * stmt.c (expand_nl_goto_receiver): Likewise.
5869
5870         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
5871         alignment and store to stack_alignment_estimated and
5872         max_used_stack_slot_alignment.
5873         (expand_one_var): Likewise.
5874         (expand_stack_alignment): New function.
5875         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
5876         and stack_alignment_estimated fields in rtl_data.  Call
5877         expand_stack_alignment at end.
5878
5879         * defaults.h (INCOMING_STACK_BOUNDARY): New.
5880         (MAX_STACK_ALIGNMENT): Likewise.
5881         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
5882         (SUPPORTS_STACK_ALIGNMENT): Likewise.
5883
5884         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
5885         stack alignment when generating virtual registers.
5886
5887         * function.c (assign_stack_local): Renamed to ...
5888         (assign_stack_local_1): This.  Add a parameter to indicate
5889         if it is OK to reduce alignment.
5890         (assign_stack_local): Use it.
5891         (instantiate_new_reg): Instantiate virtual incoming args rtx
5892         to vDRAP if stack realignment and DRAP is needed.
5893         (assign_parms): Collect parameter/return type alignment and
5894         contribute to stack_alignment_estimated.
5895         (locate_and_pad_parm): Likewise.
5896         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
5897         with crtl->args.internal_arg_pointer.
5898
5899         * function.h (rtl_data): Add new field drap_reg,
5900         max_used_stack_slot_alignment, stack_alignment_estimated,
5901         stack_realign_needed, need_drap, stack_realign_processed and
5902         stack_realign_finalized.
5903         (stack_realign_fp): New macro.
5904         (stack_realign_drap): Likewise.
5905
5906         * global.c (compute_regsets): Frame pointer is needed when
5907         stack is realigned.  Can eliminate frame pointer when stack is
5908         realigned and dynamic realigned argument pointer isn't used.
5909
5910         * reload1.c (update_eliminables):  Frame pointer is needed
5911         when stack is realigned.
5912         (init_elim_table): Can eliminate frame pointer when stack is
5913         realigned and dynamic realigned argument pointer isn't used.
5914
5915         * rtl.h (assign_stack_local_1): Declare new funtion.
5916
5917         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
5918         (TARGET_GET_DRAP_RTX): Likewise.
5919         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
5920         TARGET_GET_DRAP_RTX.
5921
5922         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
5923
5924         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
5925         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
5926
5927 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
5928             H.J. Lu  <hongjiu.lu@intel.com>
5929
5930         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
5931         vdrap_reg, stack_realign and drap_reg_saved.
5932         (add_cfi): Don't allow redefining CFA when DRAP is used.
5933         (reg_save): Handle stack alignment.
5934         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
5935         alignment.  Don't generate DWARF information for (set fp sp)
5936         when DRAP is used.
5937         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
5938         to INVALID_REGNUM.
5939         (int_loc_descriptor): Move prototype forward.  Also define if
5940         DWARF2_UNWIND_INFO is true.
5941         (output_cfa_loc): Handle DW_CFA_expression.
5942         (build_cfa_aligned_loc): New.
5943         (based_loc_descr): Update assert for stack realign.  For local
5944         variables, use sp+offset when stack is aligned without drap and
5945         fp+offset when stack is aligned with drap.  For arguments, use
5946         cfa+offset when drap is used to align stack.
5947
5948 2008-07-30  Joey Ye  <joey.ye@intel.com>
5949             H.J. Lu  <hongjiu.lu@intel.com>
5950
5951         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
5952         Break long line.
5953         (ix86_gen_andsp): New.
5954         (ix86_user_incoming_stack_boundary): Likewise.
5955         (ix86_default_incoming_stack_boundary): Likewise.
5956         (ix86_incoming_stack_boundary): Likewise.
5957         (ix86_can_eliminate): Likewise.
5958         (find_drap_reg): Likewise.
5959         (ix86_update_stack_boundary): Likewise.
5960         (ix86_get_drap_rtx): Likewise.
5961         (ix86_finalize_stack_realign_flags): Likewise.
5962         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
5963         (TARGET_GET_DRAP_RTX): Likewise.
5964         (override_options): Overide option value for new options.
5965         (ix86_function_ok_for_sibcall): Remove check for
5966         force_align_arg_pointer.
5967         (ix86_handle_cconv_attribute): Likewise.
5968         (ix86_function_regparm): Likewise.
5969         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
5970         (ix86_va_start): Replace virtual_incoming_args_rtx with
5971         crtl->args.internal_arg_pointer.
5972         (ix86_select_alt_pic_regnum): Check DRAP register.
5973         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
5974         (ix86_compute_frame_layout): Compute frame layout wrt stack
5975         realignment.
5976         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
5977         (ix86_expand_prologue): Decide if stack realignment is needed
5978         and generate prologue code accordingly.
5979         (ix86_expand_epilogue): Generate epilogue code wrt stack
5980         realignment is really needed or not.
5981
5982         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
5983         (ABI_STACK_BOUNDARY): Likewise.
5984         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
5985         (STACK_REALIGN_DEFAULT): Likewise.
5986         (INCOMING_STACK_BOUNDARY): Likewise.
5987         (MAX_STACK_ALIGNMENT): Likewise.
5988         (ix86_incoming_stack_boundary): Likewise.
5989         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
5990         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
5991         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
5992         (machine_function): Remove force_align_arg_pointer.
5993
5994         * config/i386/i386.md (BX_REG): New.
5995         (R13_REG): Likewise.
5996
5997         * config/i386/i386.opt (mforce_drap): New.
5998         (mincoming-stack-boundary): Likewise.
5999         (mstackrealign): Add Init(-1).
6000
6001         * config/i386/i386-protos.h (ix86_can_eliminate): New
6002
6003 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
6004
6005         * doc/extend.texi: Update force_align_arg_pointer.
6006
6007         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
6008         -mstackrealign.
6009
6010         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
6011         (INCOMING_STACK_BOUNDARY): Likewise.
6012         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
6013         (TARGET_GET_DRAP_RTX): Likewise.
6014
6015 2008-07-30  Andreas Schwab  <schwab@suse.de>
6016
6017         PR rtl-optimization/36929
6018         * dse.c (replace_inc_dec): Use emit_insn_before instead of
6019         add_insn_before and fix argument order.
6020         (replace_inc_dec_mem): Handle NULL rtx.
6021
6022 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
6023
6024         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
6025         function.
6026         (arm_compute_initial_elimination_offset): Use it.
6027         (arm_compute_save_reg_mask): Include static chain save slot when
6028         calculating alignment.
6029         (arm_get_frame_offsets): Ditto.
6030         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
6031         that we can use to decrement the stack when the stack decrement
6032         could be too big for an immediate value in a single insn.
6033         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
6034
6035 2008-07-30  Richard Guenther  <rguenther@suse.de>
6036
6037         PR tree-optimization/36967
6038         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
6039         Release defs of statements we remove.
6040
6041 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
6042
6043         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
6044         instead of NULL_RTVEC.
6045
6046 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
6047
6048         PR target/35866
6049
6050         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
6051         vector modes.
6052
6053 2008-07-30  Rafael Ávila de Espíndola  <espindola@google.com>
6054
6055         * final.c (call_from_call_insn): New.
6056         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
6057
6058 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
6059
6060         * configure.ac: Substitute ADA_CFLAGS.
6061         * configure: Regenerate.
6062         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
6063         * Makefile.in: Remove mention of X_* variables.
6064         * config/pa/x-ada-hpux10: Remove.
6065         * config/pa/x-ada: Remove.
6066
6067         * doc/fragments.texi: Update.
6068
6069 2008-07-30  Olivier Hainque  <hainque@adacore.com>
6070
6071         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
6072         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
6073         __dso_handle explicitly here.
6074
6075 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6076
6077         PR 34389
6078         * c-typeck.c (build_binary_op): Encapsulate code into...
6079         * c-common.c (shorten_binary_op): ...this new function.
6080         (conversion_warning): Use the new function. Handle non-negative
6081         constant in bitwise-and.
6082         * c-common.h (shorten_binary_op): Declare.
6083
6084 2008-07-30  Olivier Hainque  <hainque@adacore.com>
6085
6086         * scan.c (make_sstring_space): Add explicit conversions of
6087         allocator's return value.
6088         * fix-header.c (recognized_function): Likewise.
6089
6090 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6091
6092         * doc/cpp.texi: Update to GFDL 1.2.
6093         * doc/gcc.texi: Do not list GPL as Invariant Section.
6094         * doc/gccint.texi: Likewise.  Update copyright years.
6095         * doc/install.texi: Update copyright years.
6096
6097 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
6098
6099         PR target/36955
6100         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
6101         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
6102
6103 2008-07-29  Jan Hubicka  <jh@suse.cz>
6104
6105         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
6106         (grokdeclarator): Likewise.
6107         * langhooks.c (lhd_warn_unused_global_decl): Use
6108         DECL_DECLARED_INLINE_P.
6109         * print-tree.c (print_node): Remove DECL_INLINE check.
6110
6111 2008-07-29  Richard Guenther  <rguenther@suse.de>
6112
6113         PR tree-optimization/36945
6114         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
6115         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
6116         Record invariant addresses un-decomposed.
6117         (copy_reference_ops_from_call): Record reference call
6118         arguments properly.  Simplify.
6119         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
6120         helper split out from ...
6121         (create_component_ref_by_pieces): ... here.  Simplify.
6122         Prepare for recursive invocation for call arguments.
6123         (create_expression_by_pieces): Adjust call to
6124         create_component_ref_by_pieces.
6125         (compute_avail): Process operand 2 of reference ops.
6126
6127 2008-07-29  Richard Guenther  <rguenther@suse.de>
6128
6129         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
6130
6131 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
6132
6133         * c-format.c (check_format_types): Revert unwanted checkin.
6134
6135 2008-07-29  Jan Hubicka  <jh@suse.cz>
6136
6137         * flags.h (flag_really_no_inline): Remove.
6138         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
6139         * toplev.c (flag_really_no_inline): Remove.
6140         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
6141         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
6142         (cgraph_decide_inlining_incrementally): Likewise.
6143         (compute_inline_parameters): Likewise.
6144         * opts.c (decode_options): Simplify.
6145         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
6146         * common.opt (finline): Initialize to 1.
6147         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
6148
6149 2008-07-29  Jan Hubicka  <jh@suse.cz>
6150
6151         * predict.c (always_optimize_for_size_p): New function.
6152         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
6153         optimize_edge_for_size_p, optimize_edge_for_speed_p,
6154         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
6155         functions.
6156         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
6157         * function.c (prepare_function_start): Set default profile.
6158         * function.h (rtl_data): Add maybe_hot_insn_p.
6159         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
6160         (construct_exit_block): Likewise.
6161         (tree_expand_cfg): Likewise.
6162         * basic-block.h
6163         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
6164         optimize_edge_for_size_p, optimize_edge_for_speed_p,
6165         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
6166         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
6167         Declare.
6168
6169 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6170
6171         PR 34985
6172         * c-decl.c (merge_decls): Merge USED flags.
6173
6174 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6175
6176         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
6177         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
6178         next_stack, lab_false and lab_over trees.
6179
6180 2008-07-28  Richard Guenther  <rguenther@suse.de>
6181
6182         PR tree-optimization/36957
6183         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
6184         (useless_type_conversion_p): Remove.
6185         (types_compatible_p): Remove.
6186         * gimple.h (tree_ssa_useless_type_conversion): Declare.
6187         (useless_type_conversion_p): Declare.
6188         (types_compatible_p): Declare.
6189         (gimple_expr_type): Return the base type only if it is
6190         trivially convertible to the subtype.
6191
6192 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
6193
6194         * configure.ac: Use the m4_do macro to concatenate the warnings into
6195         one string in ACX_PROG_CC_WARNING_OPTS,
6196         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
6197         * configure: Regenerate.
6198
6199 2008-07-28  Richard Guenther  <rguenther@suse.de>
6200
6201         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
6202         (insert_fake_stores): Remove.
6203         (realify_fake_stores): Likewise.
6204         (execute_pre): Remove dead code.
6205         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
6206         (find_func_aliases): Deal with it here instead.
6207         Re-enable gcc_unreachable call.
6208
6209 2008-07-28  Richard Guenther  <rguenther@suse.de>
6210
6211         Merge from gimple-tuples-branch.
6212
6213         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
6214         * gimple.def: New file.
6215         * gsstruct.def: Likewise.
6216         * gimple-iterator.c: Likewise.
6217         * gimple-pretty-print.c: Likewise.
6218         * tree-gimple.c: Removed.  Merged into ...
6219         * gimple.c: ... here.  New file.
6220         * tree-gimple.h: Removed.  Merged into ...
6221         * gimple.h: ... here.  New file.
6222
6223         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
6224         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
6225         --enable-checking=gimple flag.
6226         * config.in: Likewise.
6227         * configure: Regenerated.
6228
6229         * tree-ssa-operands.h: Tuplified.
6230         * tree-vrp.c: Likewise.
6231         * tree-loop-linear.c: Likewise.
6232         * tree-into-ssa.c: Likewise.
6233         * tree-ssa-loop-im.c: Likewise.
6234         * tree-dump.c: Likewise.
6235         * tree-complex.c: Likewise.
6236         * cgraphbuild.c: Likewise.
6237         * tree-ssa-threadupdate.c: Likewise.
6238         * tree-ssa-loop-niter.c: Likewise.
6239         * tree-pretty-print.c: Likewise.
6240         * tracer.c: Likewise.
6241         * gengtype.c: Likewise.
6242         * tree-loop-distribution.c: Likewise.
6243         * tree-ssa-loop-unswitch.c: Likewise.
6244         * cgraph.c: Likewise.
6245         * cgraph.h: Likewise.
6246         * tree-ssa-loop-manip.c: Likewise.
6247         * value-prof.c: Likewise.
6248         * tree-ssa-loop-ch.c: Likewise.
6249         * tree-tailcall.c: Likewise.
6250         * value-prof.h: Likewise.
6251         * tree.c: Likewise.
6252         * tree.h: Likewise.
6253         * tree-pass.h: Likewise.
6254         * ipa-cp.c: Likewise.
6255         * tree-scalar-evolution.c: Likewise.
6256         * tree-scalar-evolution.h: Likewise.
6257         * target.h: Likewise.
6258         * lambda-mat.c: Likewise.
6259         * tree-phinodes.c: Likewise.
6260         * diagnostic.h: Likewise.
6261         * builtins.c: Likewise.
6262         * tree-ssa-alias-warnings.c: Likewise.
6263         * cfghooks.c: Likewise.
6264         * fold-const.c: Likewise.
6265         * cfghooks.h: Likewise.
6266         * omp-low.c: Likewise.
6267         * tree-ssa-dse.c: Likewise.
6268         * ipa-reference.c: Likewise.
6269         * tree-ssa-uncprop.c: Likewise.
6270         * toplev.c: Likewise.
6271         * tree-gimple.c: Likewise.
6272         * tree-gimple.h: Likewise.
6273         * tree-chrec.c: Likewise.
6274         * tree-chrec.h: Likewise.
6275         * tree-ssa-sccvn.c: Likewise.
6276         * tree-ssa-sccvn.h: Likewise.
6277         * cgraphunit.c: Likewise.
6278         * tree-ssa-copyrename.c: Likewise.
6279         * tree-ssa-ccp.c: Likewise.
6280         * tree-ssa-loop-ivopts.c: Likewise.
6281         * tree-nomudflap.c: Likewise.
6282         * tree-call-cdce.c: Likewise.
6283         * ipa-pure-const.c: Likewise.
6284         * c-format.c: Likewise.
6285         * tree-stdarg.c: Likewise.
6286         * tree-ssa-math-opts.c: Likewise.
6287         * tree-ssa-dom.c: Likewise.
6288         * tree-nrv.c: Likewise.
6289         * tree-ssa-propagate.c: Likewise.
6290         * ipa-utils.c: Likewise.
6291         * tree-ssa-propagate.h: Likewise.
6292         * tree-ssa-alias.c: Likewise.
6293         * gimple-low.c: Likewise.
6294         * tree-ssa-sink.c: Likewise.
6295         * ipa-inline.c: Likewise.
6296         * c-semantics.c: Likewise.
6297         * dwarf2out.c: Likewise.
6298         * expr.c: Likewise.
6299         * tree-ssa-loop-ivcanon.c: Likewise.
6300         * predict.c: Likewise.
6301         * tree-ssa-loop.c: Likewise.
6302         * tree-parloops.c: Likewise.
6303         * tree-ssa-address.c: Likewise.
6304         * tree-ssa-ifcombine.c: Likewise.
6305         * matrix-reorg.c: Likewise.
6306         * c-decl.c: Likewise.
6307         * tree-eh.c: Likewise.
6308         * c-pretty-print.c: Likewise.
6309         * lambda-trans.c: Likewise.
6310         * function.c: Likewise.
6311         * langhooks.c: Likewise.
6312         * ebitmap.h: Likewise.
6313         * tree-vectorizer.c: Likewise.
6314         * function.h: Likewise.
6315         * langhooks.h: Likewise.
6316         * tree-vectorizer.h: Likewise.
6317         * ipa-type-escape.c: Likewise.
6318         * ipa-type-escape.h: Likewise.
6319         * domwalk.c: Likewise.
6320         * tree-if-conv.c: Likewise.
6321         * profile.c: Likewise.
6322         * domwalk.h: Likewise.
6323         * tree-data-ref.c: Likewise.
6324         * tree-data-ref.h: Likewise.
6325         * tree-flow-inline.h: Likewise.
6326         * tree-affine.c: Likewise.
6327         * tree-vect-analyze.c: Likewise.
6328         * c-typeck.c: Likewise.
6329         * gimplify.c: Likewise.
6330         * coretypes.h: Likewise.
6331         * tree-ssa-phiopt.c: Likewise.
6332         * calls.c: Likewise.
6333         * tree-ssa-coalesce.c: Likewise.
6334         * tree.def: Likewise.
6335         * tree-dfa.c: Likewise.
6336         * except.c: Likewise.
6337         * except.h: Likewise.
6338         * cfgexpand.c: Likewise.
6339         * tree-cfgcleanup.c: Likewise.
6340         * tree-ssa-pre.c: Likewise.
6341         * tree-ssa-live.c: Likewise.
6342         * tree-sra.c: Likewise.
6343         * tree-ssa-live.h: Likewise.
6344         * tree-predcom.c: Likewise.
6345         * lambda.h: Likewise.
6346         * tree-mudflap.c: Likewise.
6347         * ipa-prop.c: Likewise.
6348         * print-tree.c: Likewise.
6349         * tree-ssa-copy.c: Likewise.
6350         * ipa-prop.h: Likewise.
6351         * tree-ssa-forwprop.c: Likewise.
6352         * ggc-page.c: Likewise.
6353         * c-omp.c: Likewise.
6354         * tree-ssa-dce.c: Likewise.
6355         * tree-vect-patterns.c: Likewise.
6356         * tree-ssa-ter.c: Likewise.
6357         * tree-nested.c: Likewise.
6358         * tree-ssa.c: Likewise.
6359         * lambda-code.c: Likewise.
6360         * tree-ssa-loop-prefetch.c: Likewise.
6361         * tree-inline.c: Likewise.
6362         * tree-inline.h: Likewise.
6363         * tree-iterator.c: Likewise.
6364         * tree-optimize.c: Likewise.
6365         * tree-ssa-phiprop.c: Likewise.
6366         * tree-vect-transform.c: Likewise.
6367         * tree-object-size.c: Likewise.
6368         * tree-outof-ssa.c: Likewise.
6369         * cfgloop.c: Likewise.
6370         * system.h: Likewise.
6371         * tree-profile.c: Likewise.
6372         * cfgloop.h: Likewise.
6373         * c-gimplify.c: Likewise.
6374         * c-common.c: Likewise.
6375         * tree-vect-generic.c: Likewise.
6376         * tree-flow.h: Likewise.
6377         * c-common.h: Likewise.
6378         * basic-block.h: Likewise.
6379         * tree-ssa-structalias.c: Likewise.
6380         * tree-switch-conversion.c: Likewise.
6381         * tree-ssa-structalias.h: Likewise.
6382         * tree-cfg.c: Likewise.
6383         * passes.c: Likewise.
6384         * ipa-struct-reorg.c: Likewise.
6385         * ipa-struct-reorg.h: Likewise.
6386         * tree-ssa-reassoc.c: Likewise.
6387         * cfgrtl.c: Likewise.
6388         * varpool.c: Likewise.
6389         * stmt.c: Likewise.
6390         * tree-ssanames.c: Likewise.
6391         * tree-ssa-threadedge.c: Likewise.
6392         * langhooks-def.h: Likewise.
6393         * tree-ssa-operands.c: Likewise.
6394         * config/alpha/alpha.c: Likewise.
6395         * config/frv/frv.c: Likewise.
6396         * config/s390/s390.c: Likewise.
6397         * config/m32c/m32c.c: Likewise.
6398         * config/m32c/m32c-protos.h: Likewise.
6399         * config/spu/spu.c: Likewise.
6400         * config/sparc/sparc.c: Likewise.
6401         * config/i386/i386.c: Likewise.
6402         * config/sh/sh.c: Likewise.
6403         * config/xtensa/xtensa.c: Likewise.
6404         * config/stormy16/stormy16.c: Likewise.
6405         * config/ia64/ia64.c: Likewise.
6406         * config/rs6000/rs6000.c: Likewise.
6407         * config/pa/pa.c: Likewise.
6408         * config/mips/mips.c: Likewise.
6409
6410 2008-07-28  Simon Baldwin  <simonb@google.com>
6411
6412         * c-pragma.c (handle_pragma_message): New function.
6413         (init_pragma): Register handle_pragma_message.
6414         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
6415         documentation.
6416
6417 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
6418
6419         PR tree-optimization/35252
6420         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
6421         REALPART_EXPR to be considered as same load operation.
6422
6423 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
6424
6425         PR tree-optimization/36830
6426         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
6427         (expressions_equal_p): Return false if only one operand is null.
6428
6429 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
6430
6431         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
6432         version requirements.
6433
6434 2008-07-26  Olivier Hainque  <hainque@adacore.com>
6435
6436         * collect2.c (symkind): New enum.  Symbol kinds we care about.
6437         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
6438         code and head comment accordingly.
6439         (scan_prog_file): Use symkind names instead of bare integers.
6440
6441 2008-07-25  Jan Hubicka  <jh@suse.cz>
6442
6443         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
6444         DECL_INLINE.
6445         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
6446         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
6447         * dojump.c (clear_pending_stack_adjust): Likewise.
6448         * print-tree.c (print_node): Ignore DECL_INLINE.
6449         * tree-inline.c (inlinable_function_p): Likewise.
6450
6451 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
6452
6453         * doc/extend.texi (hot attribute): Document that the hot attribute
6454         turns on -O3 for some ports.
6455         (cold attribute): Document that the cold attribute turns on -Os
6456         for some ports
6457
6458         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
6459         reflect function specific option support.
6460
6461         * target.h (struct target_option_hooks): Add fields to say whether
6462         the cold attribute implies -Os and the hot attribute implies -O3.
6463
6464         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
6465         By default, do not turn on -Os for cold functions.
6466         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
6467         not turn on -O3 for hot functions.
6468
6469         * c-common.c (handle_hot_attribute): Use target hook to determine
6470         if hot functions should enable -O3.
6471         (handle_cold_attribute): Use target hook to determine if cold
6472         functions should enable -Os.
6473
6474         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
6475         (override_options): Move disable scheduling to
6476         optimization_options.
6477         (optimization_options): Disable scheduling here, not
6478         override_options.
6479         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6480         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6481
6482         * config/ia64/ia64.c (ia64_override_options): Move setting
6483         scheduling flags to ia64_optimization_options.
6484         (ia64_optimization_options): Disable scheduling options here, and
6485         not in ia64_override_options.
6486         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6487         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
6488
6489 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
6490
6491         PR target/36936
6492         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
6493
6494 2008-07-25  Martin Jambor  <mjambor@suse.cz>
6495
6496         PR tree-optimization/36926
6497         * ipa-prop.c (ipa_analyze_call_uses): Call
6498         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
6499
6500 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
6501
6502         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
6503         movv2si_internal): Add mem = reg alternative.
6504
6505 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
6506
6507         PR bootstrap/36918
6508         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
6509         DEFAULT_PCC_STRUCT_RETURN to 127.
6510
6511 2008-07-24  Jan Hubicka  <jh@suse.cz>
6512
6513         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
6514         (build_cgraph_edges): Likewise.
6515         * cgraph.c (cgraph_node): Do not update assembler hash.
6516         (cgraph_remove_node): Drop non-unit-at-a-time code.
6517         * tree-pass.h (pass_O0_always_inline): Remove.
6518         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
6519         * toplev.c (process_options): Flag unit-at-a-time does not imply
6520         no section anchors.
6521         * cgraphunit.c: Update comments.
6522         (decide_is_function_needed): Drop non-unit-at-a-time mode.
6523         (cgraph_assemble_pending_functions): Remove.
6524         (cgraph_reset_node): Drop non-unit-at-a-time code.
6525         (cgraph_finalize_function): Likewise.
6526         (cgraph_analyze_function): Likewise.
6527         (cgraph_finalize_compilation_unit): Likewise.
6528         (cgraph_expand_function): Likewise.
6529         (cgraph_optimize): Likesise.
6530         (save_inline_function_body): Likewise.
6531         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
6532         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
6533         * ipa-inline.c: Update comments.
6534         (enum inlining_mode): remove INLINE_SPEED.
6535         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
6536         (cgraph_mark_inline_edge): Likewise.
6537         (try_inline): Likewise.
6538         (cgraph_decide_inlining_incrementally): Likewise.
6539         (cgraph_gate_inlining): Remove.
6540         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
6541         (cgraph_gate_early_inlining): Likewise.
6542         (gate_inline_passes): Remove.
6543         (pass_inline_parameters, pass_ipa_inline): Remove gates.
6544         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
6545         pass_O0_always_inline): Remove.
6546         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
6547         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
6548         * opts.c (no_unit_at_a_time_default): Remove.
6549         (decode_options): Remove flag_unit_at_a_time reset and warning.
6550         * opts.h (no_unit_at_a_time_default): Remove.
6551         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
6552         early in GNU dialect.
6553         (merge_decls): Update comment; drop unit-at-a-time check.
6554         (finish_decl): Likewise.
6555         (grok_declaration): Remove flag_inline_trees code.
6556         (finish_functions): Return on function returning non-void on all
6557         statics.
6558         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
6559         * cfgexpand.c (expand_one_static_var): Remove.
6560         (expand_one_var): Remove expand_one_static_var call.
6561         (expand_used_vars_for_block): Remove flag_unit_a_time check.
6562         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
6563         and flag_unit_at_a-time compatibility checks.
6564         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
6565         * tree-inline.c (flag_inline_trees): Remove.
6566         (inlinable_function_p): Don't check it.
6567         (expand_call_inline): Remove non-unit-at-a-time code.
6568         * tree-inline.h (flag_inline_trees): Remove.
6569         * tree-optimize.c (execute_early_local_optimizations): Remove
6570         unit-at-a-time checks.
6571         (tree_rest_of_compilation): Likewise.
6572         * combine.c (setup_incoming_promotions): Likewise.
6573         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
6574         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
6575         * passes.c (pass_inline_parameters): Update comments; remove
6576         O0_alwaysinline pass.
6577         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
6578         (execute_one_pass): Likewise.
6579         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
6580         (ix86_function_sseregparm): Likewise.
6581         * arm.c (arm_function_in_section_p): Likewise.
6582         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
6583         * varpool.c: Update comments.
6584         (decide_is_variable_needed): Remove unit-at-a-time checks.
6585         (varpool_finalize_decl): Likewise.
6586
6587 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
6588
6589         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
6590         to 2 instead of -1.
6591         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
6592
6593 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
6594
6595         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
6596         imp symbol extension.
6597
6598         2008-07-23  Ian Lance Taylor  <iant@google.com>
6599
6600         * tree-vrp.c (infer_value_range): Ignore asm statements when
6601         looking for memory accesses for -fdelete-null-pointer-checks.
6602
6603 2008-07-24  Ben Elliston  <bje@au.ibm.com>
6604
6605         * config/spu/spu-c.c (__vector_keyword): New variable.
6606         (vector_keyword): Likewise.
6607         (spu_categorize_keyword): New function.
6608         (spu_macro_to_expand): Likewise.
6609         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
6610         compiling an ISO C dialect.
6611
6612 2008-07-24  Ben Elliston  <bje@au.ibm.com>
6613
6614         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
6615         conventional usage.
6616
6617 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6618
6619         * configure: Regenerate.
6620         * configure.ac: Require texinfo 4.7.
6621         * doc/install.texi: Document texinfo 4.7 requirement.
6622
6623 2008-07-23  Martin Jambor  <mjambor@suse.cz>
6624
6625         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
6626         rather than for DECL_SAVED_TREE.
6627         * ipa-prop.c: Include diagnostic.h.
6628         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
6629         thoroughly.
6630         (ipa_detect_param_modifications): Function rewritten from scratch.
6631         (ipa_compute_jump_functions): Changed accesses to modification flags.
6632         (ipa_free_node_params_substructures): Update flags destruction.
6633         (ipa_node_duplication_hook): Update flags duplication.
6634         (ipa_print_all_params_modified): Updated flag access.
6635         * ipa-prop.h (struct ipa_param_flags): New structure.
6636         (struct ipa_node_params): New field modification_analysis_done,
6637         modified_flags changed into param_flags.
6638         (ipa_is_ith_param_modified): Changed to use new flags.
6639         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
6640
6641         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
6642         ipa-cp.c and split into two functions.
6643         (ipa_print_node_jump_functions): New function.
6644         (compute_scalar_jump_functions): New function.
6645         (type_like_member_ptr_p): New function.
6646         (compute_pass_through_member_ptrs): New function.
6647         (fill_member_ptr_cst_jump_function): New function.
6648         (determine_cst_member_ptr): New function.
6649         (compute_cst_member_ptr_arguments): New function.
6650         (ipa_compute_jump_functions): Complete rewrite.
6651         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
6652         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
6653         (struct ipa_member_ptr_cst): New structure.
6654         (union jump_func_value): New field member_cst.
6655         * ipa-cp.c (ipcp_lat_is_insertable): New function.
6656         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
6657         jump function types.
6658         (ipcp_print_all_lattices): Slight fprintf rearrangement.
6659         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
6660         instead of ipcp_print_all_jump_functions.
6661         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
6662         only for replacable scalars.
6663
6664         * doc/invoke.texi (Optimize options): Add description of
6665         -findirect-inlining.
6666         * common.opt (flag_indirect_inlining): New flag.
6667         * opts.c (decode_options): Set flag_indirect_inlining when
6668         optimize >= 3.
6669
6670         * ipa-inline.c: Include ipa-prop.h.
6671         (inline_indirect_intraprocedural_analysis): New function.
6672         (inline_generate_summary): Allocate parameter and argument info
6673         structures, call inline_indirect_intraprocedural_analysis on each
6674         node when doing indirect inlining and deallocate indirect inlining
6675         data structures in the end.
6676         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
6677         (free_all_ipa_structures_after_iinln): New function.
6678         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
6679         done.
6680         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
6681
6682         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
6683         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
6684         of computing the frequency separately.
6685         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
6686         of computing the frequency separately.
6687         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
6688         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
6689         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
6690         (ipa_get_stmt_member_ptr_load_param): New function.
6691         (ipa_is_ssa_with_stmt_def): New function.
6692         (ipa_note_param_call): New function.
6693         (ipa_analyze_call_uses): New function.
6694         (ipa_analyze_stmt_uses): New function.
6695         (ipa_analyze_params_uses): New function.
6696         (ipa_free_node_params_substructures): Also free the param_calls linked
6697         list.
6698         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
6699         (ipa_print_node_param_flags): New function.
6700         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
6701         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
6702         * ipa-prop.h (struct ipa_param_flags): New field called.
6703         (struct ipa_param_call_note): New structure.
6704         (struct ipa_node_params): New fields param_calls and
6705         uses_analysis_done.
6706         (ipa_is_ith_param_called): New function.
6707         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6708         ipa_analyze_params_uses and dump parameter flags.
6709
6710         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
6711         ipa_propagate_indirect_call_infos if performing indirect inlining,
6712         pass a new parameter new_edges to it.
6713         (add_new_edges_to_heap): New fucntion.
6714         (cgraph_decide_inlining_of_small_functions): New vector
6715         new_indirect_edges for newly found indirect edges , call
6716         ipa_propagate_indirect_call_infos after inlining.
6717         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
6718         inlining if performing indirect inlining.  Call
6719         free_all_ipa_structures_after_iinln when doing so too.
6720         (inline_generate_summary): Do not call
6721         free_all_ipa_structures_after_iinln here.
6722         * ipa-prop.c (update_jump_functions_after_inlining): New function.
6723         (print_edge_addition_message): New function.
6724         (update_call_notes_after_inlining): New function.
6725         (propagate_info_to_inlined_callees): New function.
6726         (ipa_propagate_indirect_call_infos): New function.
6727         * ipa-prop.h: Include cgraph.h
6728         (struct ipa_param_call_note): Fields reordered, new field processed.
6729         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
6730         flag indirect_call.
6731         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
6732         rediscovered call statements.
6733         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
6734         (dump_cgraph_node): Dump also the indirect_call flag.
6735         (cgraph_clone_edge): Copy also the indirect_call flag.
6736         * tree-inline.c (copy_bb): Do not check for fndecls from call
6737         expressions, check for edge availability when moving clones.
6738         (get_indirect_callee_fndecl): New function.
6739         (expand_call_inline): If callee declaration is not apprent from
6740         the statement, try calling get_indirect_callee_fndecl.  Do not
6741         issue warnings or call sorry when not inlinings an indirect edge.
6742         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
6743
6744         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
6745         bit more frandly to matching.
6746         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
6747         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
6748         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
6749
6750 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6751
6752         PR 36907
6753         * opth-gen.awk: Suppress function specific features when building
6754         target libraries.
6755         * optc-gen.awk: Ditto.
6756
6757 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6758
6759         PR 35058
6760         * diagnostic.c (pedwarn): Add opt parameter.
6761         (pedwarn0): New.
6762         * c-tree.h (pedwarn_init): Add opt parameter.
6763         (pedwarn_c90): Likewise.
6764         (pedwarn_c99): Likewise.
6765         * c-errors.c (pedwarn_c99): Likewise.
6766         (pedwarn_c90): Likewise.
6767         * toplev.h (pedwarn): Update declaration.
6768         (pedwarn0): Declare.
6769         * c-lex.c: All calls to pedwarn changed.
6770         * builtins.c: All calls to pedwarn changed.
6771         * toplev.c: All calls to pedwarn changed.
6772         * c-decl.c: All calls to pedwarn changed.
6773         * c-typeck.c: All calls to pedwarn changed.
6774         * c-common.c: All calls to pedwarn changed.
6775         * c-parser.c: All calls to pedwarn changed.
6776
6777 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6778             Karthik Kumar  <karthikkumar@gmail.com>
6779
6780         * attribs.c (file scope): Include c-common.h.
6781         (decl_attributes): Add support for #pragma GCC optimize and
6782         #pragma GCC option.
6783
6784         * targhooks.c (default_can_inline_p): New function that is the
6785         default for the TARGET_CAN_INLINE_P target hook.
6786
6787         * targhooks.h (default_can_inline_p): Add declaration.
6788
6789         * tree.c (cl_optimization_node): New static tree for building
6790         OPTIMIZATION_NODE tree.
6791         (cl_target_option_node): New static tree for building
6792         TARGET_OPTION_NODE tree.
6793         (cl_option_hash_table): New hash table for hashing
6794         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6795         (cl_option_hash_hash): New function to provide the hash value for
6796         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6797         (cl_option_hash_eq): New function to provide an equality test for
6798         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
6799         (tree_code_size): Add support for OPTIMIZATION_NODE and
6800         TARGET_OPTION_NODE trees.
6801         (tree_code_structure): Add support for OPTIMIZATION_NODE and
6802         TARGET_OPTION_NODE trees.
6803         (build_optimization_node): Build a tree that has all of the
6804         current optimization options.
6805         (build_target_option_node): Build a tree that has the target
6806         options that might be changed on a per function basis.
6807
6808         * tree.h (file scope): Include options.h.
6809         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
6810         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
6811         (TREE_OPTIMIZATION): Ditto.
6812         (TREE_TARGET_SPECIFIC): Ditto.
6813         (struct tree_function_decl): Add fields for remembering the
6814         current optimization options and target specific options.
6815         (struct tree_optimization_option): New tree variant that remembers
6816         the optimization options.
6817         (struct tree_target_option): New tree variant that remembers the
6818         target specific flags that might change for compiling a particular
6819         function.
6820         (union tree_node): Include tree_optimization_option and
6821         tree_target_option fields.
6822         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
6823         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
6824         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
6825         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
6826         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
6827         optimization and target options.
6828         (optimization_default_node): New macro to refer to global_trees
6829         field.
6830         (optimization_current_node): Ditto.
6831         (optimization_cold_node): Ditto.
6832         (optimization_hot_node): Ditto.
6833         (target_option_default_node): Ditto.
6834         (target_option_current_node): Ditto.
6835         (current_option_pragma): Ditto.
6836         (current_optimize_pragma): Ditto.
6837
6838         * target.h (struct gcc_target): Add valid_option_attribute_p,
6839         target_option_save, target_option_restore, target_option_print,
6840         target_option_pragma_parse, and can_inline_p hooks.
6841
6842         * toplev.h (parse_optimize_options): Add declaration.
6843         (fast_math_flags_struct_set_p): Ditto.
6844
6845         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
6846         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
6847         optimize is used.
6848
6849         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
6850         tree_can_inline_p hook to see if one function can inline another.
6851         (cgraph_decide_inlining): Ditto.
6852         (cgraph_decide_inlining_incrementally): Ditto.
6853
6854         * opts.c (decode_options): Add support for running multiple times
6855         to allow functions with different target or optimization options
6856         than was specified on the command line.
6857         (fast_math_flags_struct_set_p): New function that is similar to
6858         fast_math_flags_set_p, except it uses the values in the
6859         cl_optimization structure instead of global variables.
6860
6861         * optc-gen.awk: Add support for TargetSave to allow a back end to
6862         declare new fields that need to be saved when using function
6863         specific options.  Include flags.h and target.h in the options.c
6864         source.  Add support for Save to indicate which options can be set
6865         for individual functions.  Generate cl_optimize_save,
6866         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
6867         cl_target_option_restore, cl_target_option_print functions to
6868         allow functions to use different optimization or target options.
6869
6870         * opt-functions.awk (var_type_struct): Return the type used for
6871         storing the field in a structure.
6872
6873         * opth-gen.awk: Add support for TargetSave to allow a back end to
6874         declare new fields that need to be saved when using function
6875         specific options.  Add support for Save to indicate which options
6876         can be set for individual functions.  Only generate one extern for
6877         Mask fields.  Generate cl_optimization and cl_target_option
6878         structures to remember optimization and target options.
6879
6880         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
6881         collecting new tree nodes.
6882         (TS_TARGET_OPTION): Ditto.
6883
6884         * c-decl.c (merge_decls): Merge function specific target and
6885         optimization options.
6886
6887         * function.c (invoke_set_current_function_hook): If the function
6888         uses different optimization options, change the global variables
6889         to reflect this.
6890
6891         * coretypes.h (struct cl_optimization): Add forward reference.
6892         (struct cl_target_option): Ditto.
6893
6894         * c-pragma.c (option_stack): New static vector to remember the
6895         current #pragma GCC option stack.
6896         (handle_pragma_option): New function to support #pragma GCC option
6897         to change target options.
6898         (optimize_stack): New static vector to remember the current
6899         #pragma GCC optimize stack.
6900         (handle_pragma_optimize): New function to support #pragma GCC
6901         optimize to change optimization options.
6902         (init_pragma): Add support for #pragma GCC optimize and #pragma
6903         GCC option.
6904
6905         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
6906         optimization options.
6907         (TARGET_OPTION_NODE): New tree code for remembering certain target
6908         options.
6909
6910         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
6911         TARGET_OPTION_NODE trees.
6912
6913         * common.opt (-O): Add Optimization flag.
6914         (-Os): Ditto.
6915         (-fmath-errno): Ditto.
6916         (-falign-functions): Add UInteger flag to make sure flag gets full
6917         int in cl_optimization structure.
6918         (-falign-jumps): Ditto.
6919         (-falign-labels): Ditto.
6920         (-falign-loops): Ditto.
6921         (-fsched-stalled-insns): Ditto.
6922         (-fsched-stalled-insns-dep): Ditto.
6923
6924         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
6925         definition.
6926         (TARGET_OPTION_SAVE): Ditto.
6927         (TARGET_OPTION_RESTORE): Ditto.
6928         (TARGET_OPTION_PRINT): Ditto.
6929         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
6930         (TARGET_CAN_INLINE_P): Ditto.
6931         (TARGET_INITIALIZER): Add new hooks.
6932
6933         * tree-inline.c (tree_can_inline_p): New function to determine
6934         whether one function can inline another.  Check if the functions
6935         use compatible optimization options, and also call the backend
6936         can_inline_p hook.
6937
6938         * tree-inline.h (tree_can_inline_p): Add declaration.
6939
6940         * c-common.c (c_common_attribute): Add support for option and
6941         optimize attributes.
6942         (handle_option_attribute): Add support for the option attribute to
6943         allow the user to specify different target options for compiling a
6944         specific function.
6945         (handle_optimize_attribute): Add support for the optimize
6946         attribute to allow the user to specify different optimization
6947         options for compiling a specific function.
6948         (handle_hot_attribute): Turn on -O3 optimization for this one
6949         function if it isn't the default optimization level.
6950         (handle_cold_attribute): Turn on -Os optimization for this one
6951         function if it insn't the default optimization.
6952         (const_char_p): New const char * typedef.
6953         (optimize_args): New static vector to remember the optimization
6954         arguments.
6955         (parse_optimize_options): New function to set up the optimization
6956         arguments from either the optimize attribute or #pragma GCC optimize.
6957
6958         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
6959         (builtin_define_std): Ditto.
6960
6961         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
6962         Add t-i386 Makefile fragment to add i386-c.o and i386.o dependencies.
6963         (x86_64-*-*): Ditto.
6964
6965         * Makefile.in (TREE_H): Add options.h.
6966         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
6967
6968         * doc/extend.texi (option attribute): Document new attribute.
6969         (optimize attribute): Ditto.
6970         (hot attribute): Document hot attribute sets -O3.
6971         (cold attribute): Document cold attribute sets -Os.
6972         (#pragma GCC option): Document new pragma.
6973         (#pragma GCC optimize): Ditto.
6974
6975         * doc/options.texi (TargetSave): Document TargetSave syntax.
6976         (UInteger): Document UInteger must be used for certain flags.
6977         (Save): Document Save option to create target specific options
6978         that can be saved/restored on a function specific context.
6979
6980         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new macro.
6981         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
6982
6983         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new hook.
6984         (TARGET_OPTION_SAVE): Ditto.
6985         (TARGET_OPTION_RESTORE): Ditto.
6986         (TARGET_OPTION_PRINT): Ditto.
6987         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
6988         (TARGET_CAN_INLINE_P): Ditto.
6989
6990         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
6991         -mfpmath=sse,387.
6992         (-mfpmath=both): Ditto.
6993
6994 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
6995             Karthik Kumar  <karthikkumar@gmail.com>
6996
6997         * config/i386/i386.h (TARGET_ABM): Move switch into ix86_isa_flags.
6998         (TARGET_POPCNT): Ditto.
6999         (TARGET_SAHF): Ditto.
7000         (TARGET_AES): Ditto.
7001         (TARGET_PCLMUL): Ditto.
7002         (TARGET_CMPXCHG16B): Ditto.
7003         (TARGET_RECIP): Move switch into target_flags.
7004         (TARGET_FUSED_MADD): Ditto.
7005         (ix86_arch_features): Make an unsigned char type.
7006         (ix86_tune_features): Ditto.
7007         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
7008         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
7009         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
7010
7011         * config/i386/i386.opt (arch): New TargetSave field to define
7012         fields that need to be saved for function specific option support.
7013         (tune): Ditto.
7014         (fpmath): Ditto.
7015         (branch_cost): Ditto.
7016         (ix86_isa_flags_explicit): Ditto.
7017         (tune_defaulted): Ditto.
7018         (arch_specified): Ditto.
7019         (-m128-long-double): Add Save flag to save option for target
7020         specific option support.
7021         (-m80387): Ditto.
7022         (-maccumulate-outgoing-args): Ditto.
7023         (-malign-double): Ditto.
7024         (-malign-stringops): Ditto.
7025         (-mfancy-math-387): Ditto.
7026         (-mhard-float): Ditto.
7027         (-mieee-fp): Ditto.
7028         (-minline-all-stringops): Ditto.
7029         (-minline-stringops-dynamically): Ditto.
7030         (-mms-bitfields): Ditto.
7031         (-mno-align-stringops): Ditto.
7032         (-mno-fancy-math-387): Ditto.
7033         (-mno-push-args): Ditto.
7034         (-mno-red-zone): Ditto.
7035         (-mpush-args): Ditto.
7036         (-mred-zone): Ditto.
7037         (-mrtd): Ditto.
7038         (-msseregparm): Ditto.
7039         (-mstack-arg-probe): Ditto.
7040         (-m32): Ditto.
7041         (-m64): Ditto.
7042         (-mmmx): Ditto.
7043         (-m3dnow): Ditto.
7044         (-m3dnowa): Ditto.
7045         (-msse): Ditto.
7046         (-msse2): Ditto.
7047         (-msse3): Ditto.
7048         (-msse4.1): Ditto.
7049         (-msse4.2): Ditto.
7050         (-msse4): Ditto.
7051         (-mno-sse4): Ditto.
7052         (-msse4a): Ditto.
7053         (-msse5): Ditto.
7054         (-mrecip): Move flag into target_flags.
7055         (-mcld): Ditto.
7056         (-mno-fused-madd): Ditto.
7057         (-mfused-madd): Ditto.
7058         (-mabm): Move flag into ix86_isa_flags.
7059         (-mcx16): Ditto.
7060         (-mpopcnt): Ditto.
7061         (-msahf): Ditto.
7062         (-maes): Ditto.
7063         (-mpclmul): Ditto.
7064
7065         * config/i386/i386-c.c: New file for #pragma support.
7066         (ix86_target_macros_internal): New function to #define or #undef
7067         target macros based when the user uses the #pragma GCC option to
7068         change target options.
7069         (ix86_pragma_option_parse): New function to add #pragma GCC option
7070         support.
7071         (ix86_target_macros): Move defining the target macros here from
7072         TARGET_CPU_CPP_BUILTINS in i386.h.
7073         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
7074         defined, initialize any subtarget #pragmas.
7075
7076         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
7077         REGISTER_TARGET_PRAGMAS.
7078
7079         * config/i386/t-i386: New file for x86 dependencies.
7080         (i386.o): Make dependencies mirror the include files used.
7081         (i386-c.o): New file, add dependencies.
7082
7083         * config/i386/i386-protos.h (override_options): Add bool argument.
7084         (ix86_valid_option_attribute_tree): Add declaration.
7085         (ix86_target_macros): Ditto.
7086         (ix86_register_macros): Ditto.
7087
7088         * config/i386/i386.c (ix86_tune_features): Move initialization of
7089         the target masks to initial_ix86_tune_features to allow functions
7090         to have different target options.  Make type unsigned char,
7091         instead of unsigned int.
7092         (initial_ix86_tune_features): New static vector to hold processor
7093         masks for the tune variables.
7094         (ix86_arch_features): Move initialization of the target masks to
7095         initial_ix86_arch_features to allow functions to have different
7096         target options.  Make type unsigned char, instead of unsigned int.
7097         (initial_ix86_arch_features): New static vector to hold processor
7098         masks for the arch variables.
7099         (enum ix86_function_specific_strings): New enum to describe the
7100         string options used for attribute((option(...))).
7101         (ix86_target_string): New function to return a string that
7102         describes the target options.
7103         (ix86_debug_options): New function to print the current options in
7104         the debugger.
7105         (ix86_function_specific_save): New function hook to save the
7106         function specific global variables in the cl_target_option structure.
7107         (ix86_function_specific_restore): New function hook to restore the
7108         function specific variables from the cl_target_option structure to
7109         the global variables.
7110         (ix86_function_specific_print): New function hook to print the
7111         target specific options in the cl_target_option structure.
7112         (ix86_valid_option_attribute_p): New function hook to validate
7113         attribute((option(...))) arguments.
7114         (ix86_valid_option_attribute_tree): New function that is common
7115         code between attribute((option(...))) and #pragma GCC option
7116         support that parses the options and returns a tree holding the options.
7117         (ix86_valid_option_attribute_inner_p): New helper function for
7118         ix86_valid_option_attribute_tree.
7119         (ix86_can_inline_p): New function hook to decide if one function
7120         can inline another on a target specific basis.
7121         (ix86_set_current_function); New function hook to switch target
7122         options if the user used attribute((option(...))) or #pragma GCC
7123         option.
7124         (ix86_tune_defaulted): Move to static file scope from
7125         override_options.
7126         (ix86_arch_specified): Ditto.
7127         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
7128         ix86_isa_flags.
7129         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
7130         (OPTION_MASK_ISA_ABM_SET): Ditto.
7131         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
7132         (OPTION_MASK_ISA_CX16_SET): Ditto.
7133         (OPTION_MASK_ISA_SAHF_SET): Ditto.
7134         (OPTION_MASK_ISA_AES_UNSET): Ditto.
7135         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
7136         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
7137         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
7138         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
7139         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
7140         (struct ptt): Move to static file scope from override_options.
7141         (processor_target_table): Ditto.
7142         (cpu_names): Ditto.
7143         (ix86_handle_option): Add support for options that are now isa options.
7144         (override_options): Add support for declaring functions that
7145         support different target options than were specified on the
7146         command line.  Move struct ptt, processor_target_table, cpu_names,
7147         ix86_tune_defaulted, ix86_arch_specified to static file scope.
7148         Add bool argument.  Fix up error messages so the appropriate error
7149         is given for either command line or attribute.
7150         (ix86_previous_fndecl): New static to remember previous function
7151         declaration to see if we need to change target options.
7152         (ix86_builtins_isa): New array to record the ISA of each builtin
7153         function.
7154         (def_builtin): Always create the builtin function, even if the
7155         current ISA doesn't support it.
7156         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
7157         tests for those builtins.
7158         (ix86_init_builtins): Remove TARGET_MMX test for calling
7159         ix86_init_mmx_sse_builtins.
7160         (ix86_expand_builtin): If the current ISA doesn't support a given
7161         builtin, signal an error.
7162         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
7163         (TARGET_SET_CURRENT_FUNCTION): Ditto.
7164         (TARGET_OPTION_SAVE): Ditto.
7165         (TARGET_OPTION_RESTORE): Ditto.
7166         (TARGET_OPTION_PRINT): Ditto.
7167         (TARGET_CAN_INLINE_P): Ditto.
7168
7169 2008-07-22  Rafael Ávila de Espíndola  <espindola@google.com>
7170
7171         * c-typeck.c (build_external_ref): Don't call assemble_external.
7172         * final.c (output_operand): Call assemble_external.
7173
7174 2008-07-21  DJ Delorie  <dj@redhat.com>
7175
7176         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
7177         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
7178
7179 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7180
7181         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
7182         original insn and splitter contents into ...
7183         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
7184         flag_unsafe_math_optimizations.  Add dummy scratch register.
7185         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
7186         !flag_unsafe_math_optimizations.  Returns number with next
7187         highest magnitude if this is still less or equal to the true
7188         quotient in magnitude.
7189
7190 2008-07-21  Rafael Ávila de Espíndola  <espindola@google.com>
7191
7192         * Makefile.in: Replace toplev.h with TOPLEV_H.
7193         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
7194         * c-lex.c (fe_file_change): Don't set in_system_header.
7195         * c-parser.c (c_token): Remove in_system_header.
7196         (c_lex_one_token): Don't set in_system_header.
7197         (c_parser_set_source_position_from_token): Don't set in_system_header.
7198         * diagnostic.c (diagnostic_report_diagnostic): Use location from
7199         diagnostic_info.
7200         (warning_at): New.
7201         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
7202         * flags.h (in_system_header): Remove.
7203         * function.c (saved_in_system_header): Remove.
7204         (push_cfun): Don't set in_system_header.
7205         (pop_cfun): Don't set in_system_header.
7206         (push_struct_function): Don't set in_system_header.
7207         * input.h (expanded_location): Add sysp.
7208         (in_system_header_at): New.
7209         (in_system_header): New.
7210         * toplev.c (in_system_header): Remove.
7211         * toplev.h: Include input.h
7212         (warning_at): New.
7213         * tree-cfg.c (execute_warn_function_return): Call warning_at.
7214         * tree-ssa.c (warn_uninit): Call warning_at.
7215         (warn_uninitialized_var): Update calls to warn_uninit.
7216         (warn_uninitialized_phi): Update calls to warn_uninit.
7217         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
7218         (expand_location): Initialize xloc.sysp.
7219         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
7220         (tree_decl_with_vis): Remove in_system_header_flag.
7221
7222 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
7223
7224         PR target/36822
7225         * recog.c (asm_operand_ok): Change the order of the extra
7226         memory constraint checks.
7227
7228 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7229
7230         PR tree-opt/36879
7231         * tree-switch-conversion.c (build_one_array): Call
7232         varpool_mark_needed_node and varpool_finalize_decl
7233         instead of assemble_variable.
7234
7235 2008-07-19  Jan Hubicka  <jh@suse.cz>
7236
7237         * cgraph.c (cgraph_add_new_function): Do early local passes.
7238         * tree-nrv.c (gate_pass_return_slot): New gate.
7239         (pass_nrv): Add the gate.
7240         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
7241         functions.
7242         (coalesce_ssa_name): Coalesce SSA names.
7243         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
7244         not optimizing so unused user vars remains visible.
7245         * common.opt (flag_tree_ter): Always enable by default.
7246         * tree-ssa-ter.c: Include flags.h
7247         (is_replaceable_p): Check that locations match; when aliasing is missing
7248         be conservative about loads.
7249         * tree-optimize.c (gate_init_datastructures): Remove.
7250         (pass_init_datastructures): New.
7251         * passes.c: Reorder passes so we always go into SSA.
7252
7253 2008-07-19  Jan Hubicka  <jh@suse.cz>
7254
7255         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
7256         * doc/invoke.texi (--combine): Likewise.
7257         (-finline-functions-called-once): Update levels when enabled.
7258         (-funit-at-a-time): Document new behaviour.
7259         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
7260         -fno-section-anchors when disabled explicitly.
7261         (inline params): They are not ignored now.
7262         (precompiled headers): Remove unit-at-a-time as being incompatible.
7263         * opts.c (decode_options): Handle unit-at-a-time as alias;
7264         imply -fno-section-anchors when toplevel reorder is disabled
7265         explicitly.
7266         * common.opt (ftoplevel-reorder): Set default value to 2.
7267         (funit-at-a-time): Set default value to 1.
7268         * config/rs6000/rs6000.c (optimization_options): Set section anchors
7269         to 2.
7270
7271 2008-07-19  Jan Hubicka  <jh@suse.cz>
7272
7273         * builtins.c (expand_builtin_int_roundingfn,
7274         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
7275         it is not useful.
7276
7277 2008-07-19  Richard Guenther  <rguenther@suse.de>
7278
7279         PR bootstrap/36864
7280         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
7281         * tree-ssa-sccvn.c (get_constant_value_id): New function.
7282         * tree-ssa-pre.c (get_expr_value_id): For newly created
7283         constant value-ids make sure to add the expression to its
7284         expression-set.
7285
7286 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
7287
7288         PR middle-end/36877
7289         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
7290         return value of the builtin is ignored.
7291
7292 2008-07-19  Olivier Hainque  <hainque@adacore.com>
7293
7294         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
7295         bits, a C conformant malloc implementation has to provide.
7296         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
7297
7298 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
7299
7300         PR target/36780
7301         PR target/36827
7302         * reload.c (find_reloads_subreg_address): Only reload address if
7303         reloaded == 0, not for reloaded != 1.
7304
7305         Revert:
7306         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
7307         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
7308         (m32c_legitimate_address_p): Handle "++rii" addresses created by
7309         m32c_legitimize_reload_address.
7310
7311         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7312         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
7313         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
7314
7315 2008-07-19  Olivier Hainque  <hainque@adacore.com>
7316
7317         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
7318         argument, saying whether nested array are to be collapsed
7319         into a single array type DIE with multiple subscripts.
7320         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
7321         issues, centralize the nested array types collapsing control and
7322         disable the transformation for Ada.
7323
7324 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
7325
7326         PR target/36786
7327         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
7328         x86_64_shift_adj.
7329         (x86_64_shift_adj_2): New expander.
7330         (x86_64_shift_adj_3): Ditto.
7331         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
7332         to split TImode operands.
7333         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
7334         (ix86_split_lshr): Ditto.
7335
7336 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
7337
7338         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
7339         and __CHAR32_TYPE__.
7340         * c-typeck.c (digest_init): Support char16_t and char32_t.
7341         (set_nonincremental_init_from_string): Idem.
7342
7343 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
7344
7345         PR middle-end/36859
7346         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
7347         PREFERRED_STACK_BOUNDARY.
7348         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
7349
7350 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
7351
7352         PR middle-end/36858
7353         * function.c (locate_and_pad_parm): Cap boundary earlier.
7354
7355 2008-07-17  Julian Brown  <julian@codesourcery.com>
7356
7357         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
7358         no-op for targets which don't use DLLs.
7359
7360 2008-07-17  Martin Jambor  <mjambor@suse.cz>
7361
7362         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
7363         that nodes are relevant by examining the node->analyzed flag.
7364         (ipcp_init_stage): Check which nodes are relevant, assert that the
7365         relevant ones are also required.
7366         (ipcp_propagate_stage): Check on the side arrays are properly
7367         allocated.
7368         (ipcp_print_all_jump_functions): Make sure not to touch any node
7369         that is not analyzed or an edge that does not have a corresponding
7370         entry in the on-the-side vectors.
7371         (ipcp_function_scale_print): Likewise.
7372         (ipcp_update_callgraph): Check that the node is relevant.
7373         (ipcp_insert_stage): Check that the node is relevant.  Check there is
7374         an info for every node and edge.
7375         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
7376         (ipa_print_all_tree_maps): Likewise and a new variable info.
7377         (ipa_print_all_params_modified): Likewise.
7378         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
7379
7380 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
7381
7382         PR target/25343
7383         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
7384
7385 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
7386
7387         PR rtl-optimization/36753
7388         * fwprop.c (use_killed_between): Don't shortcut
7389         single-definition global registers.
7390
7391 2008-07-16  Jan Hubicka  <jh@suse.cz>
7392
7393         * cgraph.h (varpool_empty_needed_queue): Declare.
7394         * cgraphunit.c (output_in_order): Mark all variables as needed;
7395         empty the queue.
7396         * varpool.c (varpool_assemble_node): Update debug queue.
7397         (varpool_assemble_pending_decls): Don't do it here.
7398         (varpool_empty_needed_queue):  New function.
7399
7400 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7401
7402         * recog.c (peephole2_optimize): Fix formatting.
7403
7404 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7405
7406         * c-pch.c (get_ident): Avoid C++ keywords.
7407         * combine-stack-adj.c (single_set_for_csa): Likewise.
7408         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
7409         output_asm_insn): Likewise.
7410         * reload.c (push_secondary_reload, find_reusable_reload,
7411         push_reload, combine_reloads, find_reloads,
7412         debug_reload_to_stream): Likewise.
7413         * reload.h (struct reload): Likewise.
7414         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
7415         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
7416         emit_output_reload_insns): Likewise.
7417         * targhooks.c (default_secondary_reload): Likewise.
7418         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
7419
7420 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7421
7422         * recog.c (validate_change_1, validate_change,
7423         validate_unshare_change, validate_replace_rtx_1, struct
7424         funny_match, constrain_operands, peephole2_optimize): Avoid C++
7425         keywords.
7426         * reload.c (push_secondary_reload, secondary_reload_class,
7427         scratch_reload_class, find_valid_class, find_reusable_reload,
7428         push_reload, find_dummy_reload, find_reloads_address_1,
7429         find_reloads_address_part, find_equiv_reg): Likewise.
7430         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
7431         choose_reload_regs): Likewise.
7432         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
7433         Likewise.
7434         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
7435         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
7436         * sched-rgn.c (concat_INSN_LIST): Likewise.
7437         * stor-layout.c (mode_for_size, mode_for_size_tree,
7438         smallest_mode_for_size): Likewise.
7439
7440 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7441
7442         * cfg.c (dump_reg_info): Avoid C++ keywords.
7443         * dwarf2asm.c (dw2_force_const_mem,
7444         dw2_asm_output_encoded_addr_rtx): Likewise.
7445         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
7446         * expmed.c (expand_shift): Likewise.
7447         * global.c (find_reg): Likewise.
7448         * graph.c (draw_edge): Likewise.
7449         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
7450         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
7451         widen_clz, widen_bswap, expand_parity, expand_unop,
7452         emit_cmp_and_jump_insn_1): Likewise.
7453         * postreload.c (reload_cse_simplify_operands): Likewise.
7454         * ra.h (add_neighbor): Likewise.
7455         * reg-stack.c (remove_regno_note, change_stack): Likewise.
7456         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
7457         record_reg_classes, copy_cost, record_address_regs,
7458         invalid_mode_change_p): Likewise.
7459         * regrename.c (regrename_optimize, scan_rtx_reg,
7460         dump_def_use_chain, find_oldest_value_reg,
7461         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
7462
7463 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
7464
7465         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
7466         MASK_POWERPC64 for power4 in previous commit.
7467
7468 2008-07-16  Olivier Hainque  <hainque@adacore.com>
7469
7470         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
7471         instead of bare conversion to cast const-ness away.
7472
7473 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
7474
7475         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
7476         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
7477         * config/xtensa/xtensa.c (xtensa_function_value): New function.
7478         (TARGET_FUNCTION_VALUE): Define.
7479
7480 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
7481
7482         * config/rs6000/rs6000.c (processor_target_table): Add
7483         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
7484
7485 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
7486
7487         PR target/36827
7488         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
7489         (m32c_legitimate_address_p): Handle "++rii" addresses created by
7490         m32c_legitimize_reload_address.
7491
7492 2007-07-16  Rafael Ávila de Espíndola  <espindola@google.com>
7493
7494         * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
7495         DECL_IN_SYSTEM_HEADER in sync.
7496
7497 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
7498
7499         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
7500         * tree-ssa-pre.c (pre_expr_eq): Ditto
7501         (get_constant_for_value_id): Take a type as an argument.
7502         (fully_constant_expression): Pass in type.
7503         (find_or_generate_expression): Short circuit constant case.
7504         (create_expression_by_pieces): Remove special casing of
7505         pointer_plus.
7506         (do_regular_insertion): Short circuit constant case.
7507         (do_partial_partial_insertion): Ditto.
7508
7509 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7510
7511         PR target/36782
7512         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
7513
7514 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
7515
7516         * config/xtensa/libgcc-xtensa.ver: New file.
7517         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
7518
7519 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7520
7521         * df-problems.c (df_set_note): Avoid C++ keywords.
7522         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
7523         * dse.c (record_store, remove_useless_values): Likewise.
7524         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
7525         gen_reg_rtx_offset, operand_subword, change_address_1,
7526         change_address, adjust_address_1, offset_address,
7527         widen_memory_access, emit_copy_of_insn_after): Likewise.
7528         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
7529         * fwprop.c (should_replace_address, propagate_rtx_1,
7530         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
7531         Likewise.
7532         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
7533         gcse_emit_move_after, update_ld_motion_stores): Likewise.
7534         * lcm.c (compute_insert_delete, pre_edge_lcm,
7535         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
7536         * lower-subreg.c (resolve_reg_notes): Likewise.
7537         * mode-switching.c (optimize_mode_switching): Likewise.
7538
7539 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7540
7541         * bt-load.c (add_btr_def, migrate_btr_def,
7542         branch_target_load_optimize): Avoid C++ keywords.
7543         * caller-save.c (insert_restore, insert_save, insert_one_insn):
7544         Likewise.
7545         * combine.c (subst, simplify_set, make_extraction,
7546         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
7547         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
7548         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
7549
7550 2008-07-15  Richard Guenther  <rguenther@suse.de>
7551
7552         PR middle-end/36369
7553         * c-common.c (strict_aliasing_warning): Do not warn for
7554         TYPE_REF_CAN_ALIAS_ALL pointers.
7555         (c_common_get_alias_set): may_alias types are not special.
7556         * tree.c (build_pointer_type_for_mode): Look up the may_alias
7557         attribute and set can_ref_all accordingly.
7558         (build_reference_type_for_mode): Likewise.
7559         * doc/extend.texi (may_alias): Clarify.
7560
7561 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7562
7563         PR target/36780
7564         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
7565         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
7566
7567 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7568
7569         PR target/31568
7570         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
7571         gcc_assert, instead call output_operand_lossage.
7572
7573 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
7574
7575         * builtins.c (std_canonical_va_list): Treat structure based
7576         va_list types.
7577
7578 2008-07-15  Ben Elliston  <bje@au.ibm.com>
7579
7580         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
7581
7582 2007-07-14  Rafael Ávila de Espíndola  <espindola@google.com>
7583
7584         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
7585         is set.
7586
7587 2008-07-14  Jan Hubicka  <jh@suse.cz>
7588
7589         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
7590         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
7591         fix predicates and constraints.
7592         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
7593         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
7594
7595 2008-07-14  Doug Kwan  <dougkwan@google.com>
7596
7597         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
7598         additional option file arm/eabi.opt.
7599         * config/arm/eabi.h (File): New configuration file for EABI targets.
7600         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
7601         SUBSUBTARGET_EXTRA_SPECS.
7602         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
7603         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
7604         from STARTFILE_SPEC so that it can be referenced in an override.
7605         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
7606         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
7607         can be referenced in an override.
7608         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
7609         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
7610         so that it can be referenced in an override.
7611         (LINK_SPEC): Use BPABI_LINK_SPEC.
7612         * config/arm/eabi.opt (File): New.
7613
7614 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7615
7616         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
7617         (FIXED_VALUE_H): New variable.
7618         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
7619         input.h, fixed-value.h.
7620         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
7621         (BASIC_BLOCK_H): Use $(BITMAP_H).
7622         (FUNCTION_H): Add varray.h.
7623         (IPA_REFERENCE_H): Use $(BITMAP_H).
7624         (CGRAPH_H): Add $(BASIC_BLOCK_H).
7625         (DF_H): Use $(BITMAP_H).
7626         (GGC_H): Add statistics.h.
7627         (INSN_ADDR_H): New.
7628         (INSN_ATTR_H): Use it.
7629         (SYSTEM_H): Add safe-ctype.h, filenames.h.
7630         (INPUT_H): New.
7631         (SYMTAB_H): Add $(OBSTACK_H).
7632         (CPP_INTERNAL_H): New.
7633         (TREE_DUMP_H): Add tree-pass.h.
7634         (TREE_FLOW_H): Use $(BITMAP_H)
7635         (PRETTY_PRINT_H): Use $(INPUT_H).
7636         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
7637         (GSTAB_H): New.
7638         (BITMAP_H): New.
7639         (many object files): Fix lots of header dependencies throughout.
7640
7641 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7642
7643         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
7644         New macros.
7645         (s-gtyp-input): Use them to write tmp-gi.list.
7646         (echo_to_gi.list): Remove.
7647
7648 2008-07-14  Richard Guenther  <rguenther@suse.de>
7649
7650         * tree-ssa-sccvn.c (pre_info): Remove.
7651         (switch_to_PRE_table): Likewise.
7652         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
7653         (set_hashtable_value_ids): Do not create value-ids for the
7654         optimistic tables.
7655         (run_scc_vn): Remove double test.  Remove bogus special-case
7656         in value-number printing.
7657         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
7658         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
7659         SSA_NAME_VALUE.
7660         * tree-flow-inline.h (get_value_handle): Remove.
7661         * tree-flow.h (get_value_handle): Remove.
7662
7663 2008-07-14  Martin Jambor  <mjambor@suse.cz>
7664
7665         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
7666         in which we generate arithmetics is not a subrange.
7667
7668 2008-07-14  Martin Jambor  <mjambor@suse.cz>
7669
7670         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
7671
7672 2008-07-14  Richard Guenther  <rguenther@suse.de>
7673
7674         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
7675
7676 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7677
7678         PR target/36745
7679         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
7680         reload for symbol refs moved to r0 with -fPIC.
7681         (legitimize_pic_address): Use the target register as temporary
7682         reg if possible.
7683         (emit_symbolic_move): Adjust comment.
7684         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
7685         New expanders.
7686
7687 2008-07-14  Ben Elliston  <bje@au.ibm.com>
7688
7689         * c-common.h (C_CPP_HASHNODE): New macro.
7690         * coretypes.h (struct cpp_token): Forward declare.
7691         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7692         the context-sensitive keyword method.
7693         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
7694         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
7695         expand_bool_pixel): New.
7696         (altivec_categorize_keyword): New function.
7697         (init_vector_keywords): New function.
7698         (rs6000_macro_to_expand): Likewise.
7699         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
7700         compiling an ISO C dialect.
7701
7702 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
7703
7704         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
7705         (create_expression_by_pieces): Fix typo.
7706         (do_regular_insertion): Use debug counter here too.
7707
7708 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
7709
7710         PR target/35492.
7711         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
7712         CONST_OK_FOR_LETTER_P.  All port-local users changed.
7713         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
7714         implement Kp matching power-of-two.
7715         (CONSTRAINT_LEN): Define to match.
7716         * config/cris/cris.md: Replace all use of constraint K with Kc.
7717         ("*btst*): Use Kp for operand 0 of last alternative.
7718
7719 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7720
7721         PR testsuite/36440
7722         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
7723         and quad formats.
7724
7725 2008-07-13  Jan Hubicka  <jh@suse.cz>
7726
7727         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
7728         to be mangled too.
7729
7730 2008-07-13  Richard Guenther  <rguenther@suse.de>
7731
7732         PR middle-end/36811
7733         * langhooks.c (lhd_print_error_function): Deal with recursive
7734         BLOCK trees.
7735
7736 2008-07-12  Jan Hubicka  <jh@suse.cz>
7737
7738         * cgraph.c (assembler_name_hash): New static var.
7739         (hash_node_by_assembler_name, eq_assembler_name): New.
7740         (cgraph_node_for_asm): Use hashtable.
7741         (cgraph_remove_node): Maintain hashtable.
7742         (change_decl_assembler_name): Sanity check that names are not changing
7743         after aliasing was processed.
7744         * cgraph.h (varpoon_node): Add next GGC marker.
7745         * tree.c (decl_assembler_name_equal): Constify.
7746         (decl_assembler_name_hash): New.
7747         * tree.h (decl_assembler_name_equal): Constify.
7748         (decl_assembler_name_hash): Update.
7749
7750 2008-07-12  David Daney  <ddaney@avtrex.com>
7751
7752         * config/mips/driver-native.c (host_detect_local_cpu): Handle
7753         sb1 and r5000 cpus.
7754
7755 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7756
7757         * doc/md.texi: Document the MIPS "v" constraint.
7758         * config/mips/mips.h (reg_class): Revert last change.
7759         (REG_CLASS_NAMES): Likewise.
7760         (REG_CLASS_CONTENTS): Likewise.
7761         * config/mips/mips.c (mips_regno_to_class): Likewise.
7762         * config/mips/constraints.md (v): Likewise, but add documentation.
7763         Add a comment to say that this constraint should not be used in
7764         gcc code.
7765
7766 2008-07-11  DJ Delorie  <dj@redhat.com>
7767
7768         * config/h8300/h8300.md (length): Fix branch offset limit.
7769
7770 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
7771
7772         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
7773         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
7774         (avr_hard_regno_scratch_ok): New function.
7775         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
7776         * config/avr/avr.md (all peepholes that request a scratch register):
7777         Remove avr_peep2_scratch_safe use.
7778
7779 2008-07-11  Tom Tromey  <tromey@redhat.com>
7780             Ian Lance Taylor  <iant@google.com>
7781
7782         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
7783         (struct c_common_resword): Define.
7784         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
7785         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
7786         (c_common_reswords, num_c_common_reswords): Declare.
7787         * c-common.c (c_common_reswords): New global const array.
7788         (num_c_common_reswords): New const int.
7789         * c-parser.c (struct resword, reswords): Don't define.
7790         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
7791         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
7792         than reswords.  If warning about C++ keywords, give them a special
7793         RID code.
7794         (c_lex_one_token): Warn about C++ keywords.  Call
7795         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
7796         (c_parser_external_declaration): Look for RID_xxx rather than
7797         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
7798         (c_parser_statement_after_labels): Likewise.
7799         (c_parser_objc_class_instance_variables): Likewise.
7800         (c_parser_objc_class_declaration): Likewise.
7801         (c_parser_objc_try_catch_statement): Likewise.
7802         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
7803         (declspecs_add_type): Likewise.
7804
7805 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
7806
7807         * ggc-page.c (alloc_page):
7808         Substituting xmalloc, xcalloc with
7809         XNEWVEC and XCNEWVAR macros which add the
7810         needed casts.
7811
7812 2008-07-11  Richard Guenther  <rguenther@suse.de>
7813
7814         PR tree-optimization/36765
7815         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
7816         aliases from HEAP vars to SMTs.
7817
7818 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7819
7820         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
7821         * configure.ac (loose_warn): Move -Wc++-compat from here...
7822         (strict_warn): ...to here.
7823         * configure: Regenerate.
7824
7825 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
7826
7827         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
7828         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
7829         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
7830         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
7831         excluding more specific h8300-*-* and sh-*-* targets.
7832
7833 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
7834
7835         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
7836         (eliminate): Ditto.
7837         (execute_pre): Call loop_optimizer_finalize in early exit.
7838
7839 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
7840
7841         PR middle-end/36790
7842         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
7843         uids in the bitmap, not just VAR_DECL uids.
7844
7845         PR rtl-optimization/36419
7846         * combine-stack-adj.c (adjust_frame_related_expr): New function.
7847         (combine_stack_adjustments_for_block): Call it if needed.  Delete
7848         correct insn.
7849         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
7850         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
7851         prologue sp adjustment.
7852
7853 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
7854
7855         PR other/28322
7856         * opts.c (print_ignored_options): Report postponed diagnostics for
7857         unknown -Wno-* options as warnings, not errors.
7858         (postpone_unknown_option_error): Renamed to...
7859         (postpone_unknown_option_warning): ... this.
7860
7861 2008-07-09  Doug Kwan  <dougkwan@google.com>
7862
7863         Revert:
7864         2008-07-08  Doug Kwan  <dougkwan@google.com>
7865
7866         * config/arm/arm.opt (mandroid): New option.
7867         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
7868         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
7869         (CC1_SPEC): Same.
7870         (CC1PLUS_SPEC): Same.
7871         (LIB_SPEC): Same.
7872         (STARTFILE_SPEC): Same.
7873         (ENDFILE_SPEC): Same.
7874         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
7875         used.
7876
7877 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
7878
7879         PR target/35802
7880         * config/mips/mips.h (reg_class): Remove V1_REG.
7881         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
7882         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
7883         instead of V1_REGS.
7884         (mips_get_tp): New function.
7885         (mips_legitimize_tls_address): Use it.
7886         * config/mips/constraints.md (v): Delete.
7887         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
7888         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
7889         After reload, split into a move and ...
7890         (*tls_get_tp_<mode>_split): ...this new instruction.
7891
7892 2008-07-09  David Daney  <ddaney@avtrex.com>
7893
7894         * config/mips/driver-native.c: Include coretypes.h and tm.h.
7895
7896 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
7897
7898         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
7899         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
7900         Add c argument.
7901         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
7902         htab_delete should be called.  Don't free c.
7903         (lookup_tmp_var): Create temp_htab lazily.
7904         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
7905         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
7906         callers.
7907         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
7908         lower_omp_ordered, lower_omp_critical, lower_omp_for,
7909         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
7910         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
7911         * tree-sra.c (generate_element_init): Likewise.
7912         * tree-mudflap.c (execute_mudflap_function_ops,
7913         execute_mudflap_function_decls): Likewise.
7914         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
7915         * tree-gimple.h (struct gimplify_ctx): New type.
7916         (push_gimplify_context): Adjust prototype.
7917
7918 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
7919
7920         * tree-ssa-pre.c (phi_translate_1): Update placement of
7921         add_to_value calls.
7922
7923 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
7924
7925         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
7926         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
7927         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
7928         * targhooks.c (default_hard_regno_scratch_ok): New function.
7929         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
7930         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
7931         * recog.c:  Include "target.h".
7932         (peep2_find_free_register): Add check for global regs. Add target
7933         specific check.
7934         * Makefile.in (recog.o): Depend on target.h.
7935
7936 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
7937
7938         * config/sh/sh.c (sh_canonical_va_list_type): New.
7939         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
7940
7941 2008-07-09  Raksit Ashok <raksit@google.com>
7942
7943         * doc/invoke.texi (Option Summary): Mention new option
7944         -Wdisallowed-function-list=...
7945         (Warning Options): Document -Wdisallowed-function-list=...
7946         * common.opt (Wdisallowed-function-list=): New flag.
7947         * flags.h (warn_disallowed_functions): External definition of new
7948         boolean warning flag.
7949         (warn_if_disallowed_function_p): Declare new function.
7950         * opts.c (warning_disallowed_functions): New static variable.
7951         (warn_disallowed_functions): New boolean warning flag.
7952         (warn_if_disallowed_function_p): New function.
7953         (add_comma_separated_to_vector): Rename
7954         add_instrument_functions_exclude_list to this.
7955         (common_handle_option): Handle new option. Rename calls to
7956         add_instrument_functions_exclude_list into calls to
7957         add_comma_separated_to_vector.
7958         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
7959         based on flag warn_disallowed_functions.
7960
7961 2008-07-09  Christian Bruel  <christian.bruel@st.com>
7962
7963         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
7964          instead of get_attr_length.
7965
7966 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7967
7968         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
7969         keywords.
7970         * genemit.c (gen_insn): Likewise.
7971         * gengtype.c (note_def_vec): Likewise.
7972         * gengtype.h (note_def_vec): Likewise.
7973         * genoutput.c (struct data, output_insn_data, process_template,
7974         gen_expand, gen_split, note_constraint): Likewise.
7975         * genrecog.c (new_decision, add_to_sequence, factor_tests,
7976         make_insn_sequence): Likewise.
7977         * gensupport.c (record_insn_name): Likewise.
7978
7979 2008-07-08  Doug Kwan  <dougkwan@google.com>
7980
7981         * config/arm/arm.opt (mandroid): New option.
7982         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
7983         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
7984         (CC1_SPEC): Same.
7985         (CC1PLUS_SPEC): Same.
7986         (LIB_SPEC): Same.
7987         (STARTFILE_SPEC): Same.
7988         (ENDFILE_SPEC): Same.
7989         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
7990         used.
7991
7992 2008-07-08  Raksit Ashok  <raksit@google.com>
7993
7994         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
7995         (set_storage_via_setmem): Fix expected_align parameter.
7996         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
7997         missing from the list.
7998         * doc/md.texi (movmem): Explicitly state that expected alignment is
7999         to be expressed in bytes.
8000         (setmem): Explicitly state that expected alignment is to be expressed
8001         in bytes.
8002
8003 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
8004
8005         * reload.c (find_reloads_subreg_address): Do not require validity
8006         of address in original mode before reloading address.
8007
8008 2008-07-07  Tianwei Sheng  <tianweis@google.com>
8009
8010         * df-core.c (df_remove_problem): Adjust the access to avoid out of
8011         bounds array access.
8012
8013 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
8014
8015         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
8016
8017 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
8018
8019         Fix PR tree-optimization/23455
8020         Fix PR tree-optimization/35286
8021         Fix PR tree-optimization/35287
8022         * Makefile.in (OBJS-common): Remove tree-vn.o.
8023         (tree-vn.o): Remove.
8024         * dbgcnt.def: Add treepre_insert debug counter.
8025         * gcc/tree-flow.h (add_to_value): Updated for other changes.
8026         (debug_value_expressions): Ditto.
8027         (print_value_expressions): Ditto.
8028         * tree-pretty-print.c (dump_generic_node): Updated for
8029         VALUE_HANDLE removal.
8030         * tree-ssa-dom.c (record_equality): Ditto.
8031         (cprop_operand): Ditto.
8032         (lookup_avail_expr): Ditto.
8033         * tree-ssa-threadedge.c
8034         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
8035         (simplify_control_stmt_condition): Ditto.
8036         * tree.c (tree_code_size): Ditto.
8037         (tree_node_structure): Ditto.
8038         (iterative_hash_expr): Ditto.
8039         * tree.def: Ditto.
8040         * tree.h (VALUE_HANDLE_ID): Ditto.
8041         (VALUE_HANDLE_EXPR_SET): Ditto.
8042         (struct tree_value_handle): Ditto.
8043         (union tree_node): Ditto.
8044         * treestruct.def: Ditto.
8045         * tree-vn.c: Removed.
8046         * tree-ssa-pre.c: Rewritten entirely.
8047         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
8048         (constant_value_ids): Ditto.
8049         (vn_nary_op_t): Moved to header.
8050         (vn_phi_t): Ditto.
8051         (vn_reference_op_t): Ditto
8052         (vn_reference_t): Ditto.
8053         (next_value_id): New variable.
8054         (VN_INFO): Add an assert.
8055         (vn_constant_eq): New function.
8056         (vn_constant_hash): Ditto.
8057         (get_or_alloc_constant_value_id): Ditto.
8058         (value_id_constant_p): Ditto.
8059         (vn_reference_compute_hash): De-staticify.
8060         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
8061         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
8062         (valueize_refs): Update opcode if it changes from ssa name to constant.
8063         (vn_reference_lookup_1): Add new argument.
8064         (vn_reference_lookup):  Ditto.
8065         (vn_reference_lookup_pieces): New function.
8066         (vn_reference_insert): Add return type. Modify to deal with value ids.
8067         (vn_reference_insert_pieces):  New function.
8068         (vn_nary_op_compute_hash): De-staticify.
8069         (vn_nary_op_eq): Ditto.
8070         (vn_nary_op_lookup_pieces): New function.
8071         (vn_nary_op_lookup): Add new argument.
8072         (vn_nary_op_insert_pieces): New function.
8073         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
8074         (vn_phi_insert): Ditto.
8075         (visit_unary_op): Update for callee changes.
8076         (visit_binary_op): Ditto.
8077         (visit_reference_op_load): Ditto.
8078         (visit_reference_op_store): Ditto.
8079         (init_scc_vn): Init next_value_id, constant_to_value_id and
8080         constant_value_ids.
8081         (free_scc_vn): Free them.
8082         (set_hashtable_value_ids): New function.
8083         (run_scc_vn): Use it.
8084         (get_max_value_id): New function.
8085         (get_next_value_id): Ditto.
8086         (expressions_equal_p): Moved from tree-vn.c
8087         (sort_vuses): Ditto.
8088         (sort_vuses_heap): Ditto.
8089         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
8090         above).
8091         * tree.c (iterative_hash_hashval_t): Made non-static
8092         * tree.h (iterative_hash_hashval_t): Declare it.
8093
8094 2008-07-08  Martin Jambor  <mjambor@suse.cz>
8095
8096         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
8097         instead of ipa_create_node_params.
8098         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
8099         ipa_check_create_edge_args, free them with
8100         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
8101
8102         * ipa-prop.c: Include flags.h and tree-inline.h.
8103         (ipa_node_params_vector): New variable.
8104         (ipa_edge_args_vector): New variable.
8105         (edge_removal_hook_holder): New variable.
8106         (node_removal_hook_holder): New variable.
8107         (edge_duplication_hook_holder): New variable.
8108         (node_duplication_hook_holder): New variable.
8109         (ipa_detect_param_modifications): Check for presence of modified flags.
8110         (ipa_compute_jump_functions): Check for presence of jump functions.
8111         (ipa_free_edge_args_substructures): New function.
8112         (ipa_create_node_params): Removed.
8113         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
8114         (ipa_free_node_params_substructures): New function.
8115         (ipa_free_all_node_params): Changed to deallocate the on-the-side
8116         vector.
8117         (ipa_edge_removal_hook): New function.
8118         (ipa_node_removal_hook): New function.
8119         (duplicate_array): New function.
8120         (ipa_edge_duplication_hook): New function.
8121         (ipa_node_duplication_hook): New function.
8122         (ipa_register_cgraph_hooks): New function.
8123         (ipa_unregister_cgraph_hooks): New function.
8124         (free_all_ipa_structures_after_ipa_cp): New function.
8125
8126         * ipa-prop.h: Include vec.h.
8127         (ipa_node_params_t): New typedef with vector types for it.
8128         (ipa_edge_args_t):  New typedef with vector types for it.
8129         (IPA_NODE_REF): Changed to access an on-the-side vector.
8130         (IPA_EDGE_REF): Changed to access an on-the-side vector.
8131         (ipa_check_create_node_params): New function.
8132         (ipa_check_create_edge_args): New function.
8133
8134         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
8135         all users.
8136
8137 2008-07-07  Tom Tromey  <tromey@redhat.com>
8138
8139         * configure, config.in: Rebuilt.
8140         * configure.ac: Don't check for scandir or alphasort.
8141
8142 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
8143
8144         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
8145         types immediately after creating them.
8146
8147 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
8148
8149         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
8150
8151 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
8152
8153         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
8154         dump_constraint_graph.
8155         (dump_constraint_edge): New function.
8156         (dump_constraint_graph): New function.
8157         (debug_constraint_graph): New function.
8158         (dump_constraint): Removed useless comparison.
8159         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
8160         (dump_constraint_graph): Declare.
8161         (debug_constraint_graph): Declare.
8162         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
8163
8164 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
8165
8166         * config/i386/i386.c (is_va_list_char_pointer): New.
8167         (ix86_va_start): Replace compare with ms_va_list_type_node
8168         by is_va_list_char_pointer.
8169         (ix86_gimplify_va_arg): Likewise.
8170
8171 2008-07-07  Martin Jambor  <mjambor@suse.cz>
8172
8173         * cgraph.c (cgraph_edge_max_uid): New variable.
8174         (struct cgraph_edge_hook_list): New type.
8175         (struct cgraph_node_hook_list): New type.
8176         (struct cgraph_2edge_hook_list): New type.
8177         (struct cgraph_2node_hook_list): New type.
8178         (first_cgraph_edge_removal_hook): New variable.
8179         (first_cgraph_node_removal_hook): New variable.
8180         (first_cgraph_edge_duplicated_hook): New variable.
8181         (first_cgraph_node_duplicated_hook): New variable.
8182         (cgraph_add_edge_removal_hook): New function.
8183         (cgraph_remove_edge_removal_hook): New function.
8184         (cgraph_call_edge_removal_hooks):  New function.
8185         (cgraph_add_node_removal_hook):  New function.
8186         (cgraph_remove_node_removal_hook):  New function.
8187         (cgraph_call_node_removal_hooks):  New function.
8188         (cgraph_add_edge_duplication_hook):  New function.
8189         (cgraph_remove_edge_duplication_hook):  New function.
8190         (cgraph_call_edge_duplication_hooks):  New function.
8191         (cgraph_add_node_duplication_hook):  New function.
8192         (cgraph_remove_node_duplication_hook):  New function.
8193         (cgraph_call_node_duplication_hooks):  New function.
8194         (cgraph_create_edge): Assign to edge uid.
8195         (cgraph_remove_edge): Call edge removal hooks.
8196         (cgraph_node_remove_callees): Call edge removal hooks.
8197         (cgraph_node_remove_callers): Call edge removal hooks.
8198         (cgraph_remove_node): Call node removal hooks.
8199         (cgraph_clone_edge): Call edge duplication hooks.
8200         (cgraph_clone_node): Call node duplication hooks.
8201
8202         * cgraph.h (cgraph_edge): New field uid.
8203         (cgraph_edge_hook): New type.
8204         (cgraph_node_hook): New type.
8205         (cgraph_2edge_hook): New type.
8206         (cgraph_2node_hook): New type.
8207
8208 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
8209
8210         * config.in: Regenerate.
8211
8212 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
8213
8214         * gcc.c (print_sysroot): New.
8215         (option_map, display_help, process_command): Handle the
8216         -print-sysroot option.
8217         (main): Print the sysroot if requested.
8218         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
8219
8220 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8221
8222         PR target/34780
8223         * unwind-pe.h (size_of_encoded_value): add attribute unused.
8224
8225 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
8226
8227         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
8228         (assign_parm_setup_block_p): Also check mode of entry_parm.
8229
8230 2008-07-07  Richard Guenther  <rguenther@suse.de>
8231
8232         * tree-ssa-structalias.h (set_used_smts): Remove.
8233         * tree-ssa-structalias.c (used_smts): Likewise.
8234         (set_used_smts): Likewise.
8235         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
8236         call to set_used_smts.
8237
8238 2008-07-07  Richard Guenther  <rguenther@suse.de>
8239
8240         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
8241         (new_var_info): Set it to false.
8242         (solution_set_add): Correctly handle pointers outside a var and
8243         inside a field.
8244         (type_safe): Treat variables with is_full_var properly.
8245         (do_sd_constraint): Likewise.
8246         (do_ds_constraint): Likewise.
8247         (process_constraint): Remove zeroing offset for !use_field_sensitive.
8248         (get_constraint_for_ptr_offset): New function.
8249         (get_constraint_for_component_ref): For addresses at least include
8250         the last field of the variable.  Handle is_full_vars properly.
8251         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
8252         (handle_ptr_arith): Remove.
8253         (find_func_aliases): Simplify assignment handling.
8254         (create_function_info_for): For parameter and result varinfos set
8255         is_full_var flag.
8256         (create_variable_info_for): Set is_full_var flag whenever we
8257         just created a single varinfo for a decl.
8258         (init_alias_vars): Initialize use_field_sensitive from
8259         max-fields-for-field-sensitive parameter.
8260
8261 2008-07-07  Richard Guenther  <rguenther@suse.de>
8262
8263         PR tree-optimization/36713
8264         * tree-flow-inline.h (is_call_used): New function.
8265         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
8266         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
8267         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
8268
8269 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
8270
8271         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
8272
8273 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
8274
8275         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
8276
8277 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
8278             Nathan Sidwell  <nathan@codesourcery.com>
8279
8280         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
8281         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
8282         tmake_file.
8283         * config/m68k/t-linux: New.
8284         * doc/install.texi: Document m68k-*-linux is now multilibbed by
8285         default.
8286
8287 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
8288
8289         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
8290         * config/m68k/m68k-devices.def: Remove multilibs that only differ
8291         by MAC/EMAC.
8292
8293 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8294
8295         * gcc.c (execute): Fix -Wc++-compat warning.
8296
8297 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8298
8299         PR target/36720
8300         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
8301         constant for little endian.
8302
8303 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
8304
8305         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
8306         mips_base_mips16 instead of TARGET_MIPS16.
8307         (mips_base_mips16): Declare.
8308         * config/mips/mips.c (mips_base_mips16): Make global.
8309         (was_mips16_p): Remove GTY marker.
8310         (was_mips16_pch_p): New variable.
8311         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
8312         (mips_override_options): Force to non-MIPS16 mode initially.
8313         Do not complain about MIPS16 PIC incompatibilities here.
8314         Only allow -mgpopt if -mexplicit-relocs is in force for
8315         non-MIPS16 code.
8316
8317 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
8318
8319         * configure.ac: Check for caddr_t, define to char * if not defined.
8320         * configure: Regenerate.
8321         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
8322         (mmap_gt_pch_use_address): Likewise.
8323         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
8324
8325 2008-07-06  Richard Guenther  <rguenther@suse.de>
8326
8327         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
8328         (new_var_info): Deal with it.
8329         (solution_set_add): Likewise.
8330         (bitpos_of_field): Make signed, fix.
8331         (struct fieldoff): Remove type and decl fields.  Make size field
8332         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
8333         flags.
8334         (fieldoff_compare): Deal with it.
8335         (push_fields_onto_fieldstack): Remove has_union argument, glob
8336         adjacent non-pointer fields together.
8337         (create_function_info_for): Do not set has_union.
8338         (create_variable_info_for): Simplify.
8339
8340 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
8341
8342         * config.gcc (extra_headers): Add cross-stdarg.h for target
8343         x86_64-*-* and i?86-*-*.
8344         * config/i386/cross-stdarg.h: New.
8345         * builtins.c (std_fn_abi_va_list): New.
8346         (std_canonical_va_list_type): New.
8347         (stabilize_va_list): Replace va_list_type_node use by
8348         mtarget.canonical_va_list_type.
8349         (gimplify_va_arg_expr): Likewise.
8350         (expand_builtin_va_copy): Replace va_list_type_node use by
8351         mtarget.fn_abi_va_list.
8352         * tree-sra.c (is_va_list_type): New helper.
8353         (decl_can_be_decomposed_p): Replace
8354         va_list_type_node use by is_va_list_type.
8355         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
8356         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8357         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
8358         * config/i386/i386-protos.h (ix86_get_valist_type): New.
8359         (ix86_enum_va_list): New.
8360         * config/i386/i386.c (sysv_va_list_type_node): New.
8361         (ms_va_list_type_node): New.
8362         (ix86_function_type_abi): Remove sorry.
8363         (ix86_build_builtin_va_list_abi): New.
8364         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
8365         for 64-bit targets.
8366         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
8367         (ix86_init_builtins_va_builtins_abi): New.
8368         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
8369         for 64-bit targets.
8370         (ix86_handle_abi_attribute): New.
8371         (attribute_spec): Add sysv_abi and ms_abi.
8372         (ix86_fn_abi_va_list): New.
8373         (ix86_canonical_va_list_type): New.
8374         (ix86_enum_va_list): New.
8375         (TARGET_FN_ABI_VA_LIST): New.
8376         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8377         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
8378         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
8379         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8380         (TARGET_ENUM_VA_LIST): New.
8381         * expr.h (std_fn_abi_va_list): New.
8382         (std_canonical_va_list_type): New.
8383         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
8384         (TARGET_CANONICAL_VA_LIST_TYPE): New.
8385         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
8386         TARGET_CANONICAL_VA_LIST_TYPE.
8387         * target.h (struct gcc_target): Add fn_abi_va_list hook
8388         and canonical_va_list_type hook.
8389
8390 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8391
8392         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
8393         integral and pointer types.
8394
8395 2008-07-04  Roger Sayle  <roger@eyesopen.com>
8396
8397         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
8398         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
8399
8400 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8401
8402         PR target/36684
8403         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
8404
8405 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
8406
8407         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
8408         build_gimple_modify_stmt.
8409         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
8410         gimple operand.  Use fold_build* instead of build*.
8411
8412 2008-07-04  Richard Guenther  <rguenther@suse.de>
8413
8414         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
8415         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
8416         properly to compute the reachability set if we do field-sensitive PTA.
8417         * invoke.texi (max-fields-for-field-sensitive): Document default.
8418         * opts.c (decode_options): Set max-fields-for-field-sensitive to
8419         100 for optimize >= 2.
8420
8421 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8422
8423         * ggc-zone.c (lookup_page_table_if_allocated,
8424         set_page_table_entry, zone_find_object_size, alloc_small_page,
8425         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
8426         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
8427         -Wc++-compat and/or -Wcast-qual warnings.
8428
8429 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
8430
8431         PR target/36634
8432         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
8433         pic_offset_table_rtx to be marked as used here.
8434         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
8435         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
8436         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
8437         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
8438         !TARGET_SECURE_PLT.
8439
8440 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8441
8442         * alloc-pool.c (hash_descriptor, eq_descriptor,
8443         alloc_pool_descriptor): Fix -Wc++-compat warnings.
8444         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
8445         Likewise.
8446         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
8447         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
8448         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
8449         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
8450         Likewise.
8451
8452 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
8453
8454         * tree-flow.h (loop_only_exit_p): Declare.
8455         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
8456         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
8457         the number of iterations if it is constant.  Otherwise, if this is the
8458         only possible exit of the loop, use the conservative estimate on the
8459         number of iterations of the entire loop if available.
8460
8461 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
8462
8463         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
8464         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
8465         Add synchronization functions.
8466         * config/sync.c: New file.
8467         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
8468         (LIBGCC_SYNC_CFLAGS): Likewise.
8469
8470 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
8471
8472         PR target/36710
8473         * config/i386/i386.md (mode): Add TF to "mode" attribute.
8474         (*pushtf_sse): New insn pattern.
8475         (pushtf splitters): New splitters.
8476
8477 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
8478
8479         PR middle-end/35736
8480         * predict.c (build_predict_expr): Use void_type_node for the tree
8481         type, instead of NULL_TREE.
8482
8483 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
8484
8485         * config/i386/i386.c (contains_aligned_value_p): Return true
8486         for TCmode.
8487         (ix86_data_alignment): Align TCmode to 128bits.
8488         (ix86_local_alignment): Likewise.
8489
8490 2008-07-03  Andrew Haley  <aph@redhat.com>
8491
8492         PR bootstrap/33304
8493         * vec.h (VEC_TA): New.
8494         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
8495         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
8496         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
8497         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
8498         (C_COMMON_FIXED_TYPES): Remove first arg.
8499         (C_COMMON_FIXED_MODE_TYPES): Likewise.
8500         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
8501         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
8502         not to use empty macro arguments.
8503
8504 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
8505
8506         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
8507         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
8508         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
8509         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
8510         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
8511         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
8512         config/ia64/crtn.asm, config/m68hc11/larith.asm,
8513         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
8514         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
8515         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
8516         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
8517         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
8518         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
8519         config/rs6000/e500crtres64gpr.asm,
8520         config/rs6000/e500crtres64gprctr.asm,
8521         config/rs6000/e500crtrest32gpr.asm,
8522         config/rs6000/e500crtrest64gpr.asm,
8523         config/rs6000/e500crtresx32gpr.asm,
8524         config/rs6000/e500crtresx64gpr.asm,
8525         config/rs6000/e500crtsav32gpr.asm,
8526         config/rs6000/e500crtsav64gpr.asm,
8527         config/rs6000/e500crtsav64gprctr.asm,
8528         config/rs6000/e500crtsavg32gpr.asm,
8529         config/rs6000/e500crtsavg64gpr.asm,
8530         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
8531         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
8532         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
8533         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
8534         config/sparc/sol2-cn.asm: Remove .file directives.
8535
8536 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
8537
8538         * resource.c (mark_referenced_resources): Look inside
8539         UNSPEC_VOLATILEs and ASM_INPUTs.
8540
8541 2008-07-02  Ian Lance Taylor  <iant@google.com>
8542
8543         * rtlanal.c (add_reg_note): New function.
8544         * rtl.h (add_reg_note): Declare.
8545         * auto-inc-dec.c (attempt_change): Use add_reg_note.
8546         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
8547         * builtins.c (expand_builtin_longjmp): Likewise.
8548         (expand_builtin_nonlocal_goto): Likewise.
8549         * calls.c (emit_call_1, expand_call): Likewise.
8550         * cfgexpand.c (add_reg_br_prob_note): Likewise.
8551         * cfglayout.c (fixup_reorder_chain): Likewise.
8552         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
8553         (commit_one_edge_insertion): Likewise.
8554         * combine.c (move_deaths, distribute_notes): Likewise.
8555         * df-problems.c (df_set_note): Likewise.
8556         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
8557         (set_unique_reg_note): Likewise.
8558         (emit_copy_of_insn_after): Likewise.
8559         * expr.c (expand_expr_real): Likewise.
8560         * gcse.c (add_label_notes): Likewise.
8561         * haifa-sched.c (create_check_block_twin): Likewise.
8562         * jump.c (mark_jump_label_1): Likewise.
8563         * loop-doloop.c (add_test, doloop_modify): Likewise.
8564         * loop-unswitch.c (compare_and_jump_seq): Likewise.
8565         * lower-subreg.c (move_eh_region_note): Likewise.
8566         * optabs.c (emit_libcall_block): Likewise.
8567         * predict.c (predict_insn): Likewise.
8568         (combine_predictions_for_insn): Likewise.
8569         * recog.c (peephole2_optimize): Likewise.
8570         * regmove.c (try_auto_increment): Likewise.
8571         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
8572         * reload.c (find_reloads): Likewise.
8573         * reload1.c (fixup_eh_region_note): Likewise.
8574         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
8575         * reorg.c (delete_prior_computation): Likewise.
8576         (delete_computation, dbr_schedule): Likewise.
8577         * config/pa/pa.c (legitimize_pic_address): Likewise.
8578         * config/sh/sh.c (sh_reorg): Likewise.
8579
8580 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
8581
8582         PR target/36669
8583         * config/libgcc-glibc.ver: Add %exclude.
8584         * config/m32r/libgcc-glibc.ver: Likwise.
8585         * config/s390/libgcc-glibc.ver: Likwise.
8586         * config/sh/libgcc-glibc.ver: Likwise.
8587         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
8588
8589         * config/i386/libgcc-glibc.ver: New.
8590
8591         * config/i386/libgcc-x86_64-glibc.ver: Removed.
8592
8593 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
8594
8595         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
8596         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
8597         i[34567]86-*-linux*, x86_64-*-linux*.  Add
8598         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
8599         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
8600         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
8601         i[34567]86-*-linux*, x86_64-*-linux*.
8602
8603         * libgcc-std.ver: Add empty GCC_4.4.0.
8604
8605         * mkmap-symver.awk: Support multiple versions per symbol.
8606
8607         * config/i386/i386.c (ix86_init_builtins): Always define
8608         __builtin_fabsq and __builtin_copysignq with fallbacks.
8609         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
8610         and __builtin_copysignq if SSE2 isn't available.
8611
8612         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
8613         (LIBGCC2_TF_CEXT): Likwise.
8614         (TF_SIZE): Likwise.
8615
8616         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
8617
8618         * config/i386/sfp-machine.h: Moved to libgcc.
8619
8620         * config/i386/sfp-machine.h: New.
8621         * config/i386/t-linux: Likwise.
8622
8623         * config/i386/t-darwin: Remove softfp_wrap_start and
8624         softfp_wrap_end.
8625         * config/i386/t-darwin64: Likewise.
8626
8627         * config/i386/t-fprules-softfp64: Renamed to ...
8628         * config/i386/t-fprules-softfp: This.
8629
8630         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
8631         and softfp_wrap_end.
8632
8633 2008-07-02  Jason Merrill  <jason@redhat.com>
8634
8635         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
8636
8637         * tree.c (ctor_to_list): New fn.
8638         * tree.h: Declare it.
8639         (CONSTRUCTOR_ELT): New macro.
8640         (CONSTRUCTOR_NELTS): New macro.
8641
8642 2008-07-02  Richard Guenther  <rguenther@suse.de>
8643
8644         * tree-ssa-structalias.c (struct variable_info): Reorder
8645         to fill padding on 64bit hosts.  Make collapsed_to an int.
8646         (get_varinfo_fc): Deal with that.
8647         (new_var_info): Likewise.
8648         (collapse_rest_of_var): Likewise.
8649
8650 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
8651
8652         * doc/install.texi (--enable-java-home): Document.
8653         (--enable-aot-compile-rpm): Likewise.
8654         (--with-arch-directory): Likewise.
8655         (--with-os-directory): Likewise.
8656         (--with-origin-name): Likewise.
8657         (--with-arch-suffix): Likewise.
8658         (--with-jvm-root-dir): Likewise.
8659         (--with-jvm-jar-dir): Likewise.
8660         (--with-python-dir): Likewise.
8661
8662 2008-07-02  Richard Guenther  <rguenther@suse.de>
8663
8664         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
8665         from decls explicitly.  Merge operand checking from tuples.
8666
8667 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8668
8669         * tree-switch-conversion.c: Included timevar.h which I forgot before.
8670
8671 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8672
8673         * tree-switch-conversion.c: Included timevar.h
8674         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
8675
8676         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
8677
8678 2008-07-02  Martin Jambor  <mjambor@suse.cz>
8679
8680         * tree-switch-conversion.c: Corrected various comments and
8681         whitespace issues
8682         (build_constructors): Fixed minor formatting mistakes.
8683
8684         * invoke.texi (Optimize Options): Corrected the
8685         switch-conversion-max-branch-ratio parameter.
8686
8687 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
8688
8689         * final.c (asm_insn_count): Return zero for an empty asm body.
8690
8691 2008-07-02  Richard Guenther  <rguenther@suse.de>
8692
8693         * bitmap.h (bitmap_set_bit): Return bool.
8694         (bitmap_clear_bit): Likewise.
8695         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
8696         write to the bitmap if it would.
8697         (bitmap_clear_bit): Likewise.
8698         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
8699         bitmap_set_bit return value.
8700         (add_pred_graph_edge): Likewise.
8701         (add_graph_edge): Likewise.
8702         (do_sd_constraint): Likewise.
8703         (do_ds_constraint): Likewise.
8704
8705 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8706
8707         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
8708         Fix -Wc++-compat and/or -Wcast-qual warnings.
8709         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
8710         gen_regparm_prefix): Likewise.
8711         * vmsdbgout.c (write_modbeg, lookup_filename,
8712         vmsdbgout_source_line, vmsdbgout_init): Likewise.
8713
8714 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
8715
8716         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
8717         defaults.h definition apply.
8718
8719 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
8720
8721         * function.c (assign_parm_remove_parallels): New.
8722         (assign_parm_setup_block_p): Do not return true for non-BLKmode
8723         PARALLELs.
8724         (assign_parm_setup_block): Do not handle them.
8725         (assign_parm_setup_reg, assign_parm_setup_stack): Call
8726         assign_parm_remove_parallels.
8727
8728 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
8729
8730         * c-typeck.c (convert_for_assignment): Use
8731         vector_targets_convertible_p.
8732         * c-common.c (vector_targets_convertible_p): New.
8733         * c-common.h (vector_targets_convertible_p): New prototype.
8734         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
8735         opaque_p_V2SI_type_node.
8736
8737 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
8738
8739         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
8740         RFmode constants.
8741
8742 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
8743
8744         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
8745         TFmode constants via two element DImode vector for hosts with
8746         HOST_BITS_PER_WIDE_INT < 64.
8747         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
8748         also for HOST_BITS_PER_WIDE_INT < 64.
8749
8750 2008-07-01  Richard Guenther  <rguenther@suse.de>
8751
8752         PR tree-optimization/36666
8753         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
8754         (get_constraint_exp_from_ssa_var): Split into ...
8755         (get_constraint_exp_for_temp): ... this ...
8756         (get_constraint_for_ssa_var): ... and that.
8757         Return constraint expressions for all touched sub-fields
8758         if the results address is not taken.
8759         (process_constraint): Remove assertion that aggregate
8760         assignments do not happen at this place.
8761         (get_constraint_for_component_ref): Add address_p argument.
8762         Return constraint expressions for all touched sub-fields
8763         if the results address is not taken.
8764         (do_deref): Use get_constraint_exp_for_temp.
8765         (get_constraint_for_1): Rename from ...
8766         (get_constraint_for): ... this.  Add the old function as wrapper.
8767         (do_structure_copy): Use get_constraint_for_1.
8768
8769 2008-07-01  Martin Jambor  <mjambor@suse.cz>
8770
8771         * Makefile.in (tree-switch-conversion.o): Add.
8772         (OBJS-common): Add tree-swtch-conversion.o.
8773         * passes.c (init_optimization_passes): Add pass_convert_switch.
8774         * tree-pass.h: (pass_convert_switch): Add.
8775         * tree-switch-conversion.c: New file.
8776         * gcc.dg/tree-ssa/cswtch.c: New testcase.
8777         * common.opt (ftree-cswtch): New option.
8778         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
8779         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
8780         * opts.c (decode_options): Set flag_tree_switch_conversion when
8781         optimization level is >= 2.
8782         * doc/invoke.texi (Optimize Options): Added description of
8783         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
8784
8785 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8786
8787         * config/darwin-driver.c (darwin_default_min_version): Fix
8788         -Wc++-compat warnings.
8789
8790 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
8791
8792         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
8793         of operand 0.
8794
8795 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8796
8797         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
8798
8799 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
8800
8801         PR rtl-optimization/34744
8802         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
8803         (df_scan_free_internal): Free data structures not
8804         allocated in storage pools.
8805         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
8806         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
8807         df_scan_free_mws_vec.
8808         * dse.c (dse_step6): Free offset_map_p and offset_map_n
8809         unconditionally.
8810
8811 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
8812
8813         * config/i386/i386.c (contains_aligned_value_p): Return true
8814         for __float128.
8815         (ix86_function_arg_boundary): Return its natural boundary
8816         for __float128.
8817         (return_in_memory_32): Don't check TDmode.
8818         (ix86_split_to_parts): Support splitting into 4 parts and
8819         support TFmode for 32bit target.
8820         (ix86_split_long_move): Support splitting into 4 parts.
8821         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
8822         for SSE2.
8823         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
8824         (ix86_init_builtins): Here.
8825         (ix86_scalar_mode_supported_p): Always return true for TFmode.
8826         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
8827         'q' and 'w', respectively.
8828
8829         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
8830         TARGET_64BIT.
8831         (movtf_internal): Likewise.
8832         (<code>tf2): Likewise.
8833         (*absnegtf2_sse): Likewise.
8834         (copysign<mode>3): Likewise.
8835         (copysign<mode>3_const): Likewise.
8836         (copysign<mode>3_var): Likewise.
8837         (define_split UNSPEC_COPYSIGN): Likewise.
8838         * config/i386/sse.md (*nandtf3): Likewise.
8839         (<code>tf3): Likewise.
8840         (*<code>tf3): Likewise.
8841
8842 2008-06-30  Joey Ye  <joey.ye@intel.com>
8843             H.J. Lu  <hongjiu.lu@intel.com>
8844
8845         * global.c (compute_regsets): Set frame_pointer_needed here.
8846         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
8847
8848 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
8849
8850         * doc/install.texi (specific): Expand Windows build notes.
8851
8852 2008-06-30  Ira Rosen  <irar@il.ibm.com>
8853
8854         PR tree-optimization/36648
8855         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
8856         number of prolog iterations by step. Fix the comment.
8857
8858 2008-06-30  Richard Guenther  <rguenther@suse.de>
8859
8860         PR middle-end/36671
8861         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
8862         handle calls from ECF_MALLOC functions.
8863         (handle_pure_call): ECF_MALLOC functions do not return
8864         call-used memory.
8865         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
8866
8867 2008-06-29  Andreas Schwab  <schwab@suse.de>
8868
8869         * config/m68k/m68k.c (print_operand): Always print a float
8870         constant in hex.
8871         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
8872         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
8873         Remove macros.
8874
8875         * config/rs6000/x-linux64: Remove never used file.
8876
8877 2008-06-29  Richard Guenther  <rguenther@suse.de>
8878
8879         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
8880         prototype.
8881         (struct alias_info): Move ...
8882         * tree-ssa-alias.c: ... here.
8883         (update_alias_info): Declare.
8884         (compute_may_aliases): Call it.
8885         (update_alias_info): New function.
8886         * tree-ssa-structalias.c (update_alias_info): Move ...
8887         * tree-ssa-alias.c (update_alias_info_1): ... here.
8888         * tree-ssa-structalias.c (process_constraint_1): Remove
8889         unused from_call argument.  Rename to ...
8890         (process_constraint): ... this.  Delete old wrapper.
8891         (make_constraint_to): Adjust callers.
8892         (handle_const_call): Likewise.
8893         (handle_pure_call): Likewise.
8894         (init_base_vars): Likewise.
8895         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
8896         (find_func_aliases): We don't need structure copies for
8897         complex types.
8898         (make_constraint_from_anything): Remove.
8899         (create_variable_info_for): For globals make constraints
8900         from escaped, not from anything.
8901         (compute_points_to_sets): Do not call update_alias_info.
8902         (ipa_pta_execute): Use make_constraint_from.
8903
8904 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8905
8906         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
8907         (bitmap.o-warn, dominance.o-warn): New.
8908         * configure.ac (cxx_compat_warn): Delete.
8909         (loose_warn): Add -Wcast-qual and -Wc++-compat.
8910         * system.h: Remove #pragma diagnostic for -Wcast-qual and
8911         -Wc++-compat.
8912         * configure: Regenerate.
8913
8914         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
8915         warnings.
8916
8917 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8918
8919         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
8920         * df-scan.c (df_notes_rescan): Likewise.
8921         * ggc-page.c (set_page_table_entry): Likewise.
8922         * intl.c (gcc_gettext_width): Likewise.
8923         * varasm.c (get_unnamed_section, get_noswitch_section,
8924         get_section): Likewise.
8925
8926 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
8927
8928         * regrename.c (build_def_use): Don't copy RTX.
8929
8930 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
8931
8932         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
8933         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
8934         punctuation.  Use @ref instead of @xref.
8935         (Function Names): Remove stray @display/@end display.
8936         (C++ Attributes): Use @ref instead of @xref.
8937         (Deprecated Features): Fix punctuation around @xref.
8938         (Backwards Compatibility): Likewise.
8939         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
8940
8941 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
8942
8943         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
8944         constants for E500 double.
8945
8946 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8947
8948         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
8949         element type of const_vector.
8950
8951 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
8952
8953         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
8954         Remove FLAGS_REG clobber from expander pattern.
8955         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
8956         (anddi3, andsi3, andhi3, andqi3): Ditto.
8957         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
8958         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
8959         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
8960         (ashlsi3, ashlhi3, ashlqi3): Ditto.
8961         (ashrsi3, ashrhi3, ashrqi3): Ditto.
8962         (lshrsi3, lshrhi3, lshrqi3): Ditto.
8963         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
8964         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
8965
8966 2008-06-28  Richard Guenther  <rguenther@suse.de>
8967
8968         * tree-ssa-structalias.c (callused_id, var_callused,
8969         callused_tree): Add.
8970         (handle_pure_call): New function.
8971         (find_func_aliases): Call it.
8972         (find_what_p_points_to): Handle the call-used set.
8973         (clobber_what_escaped): Likewise.
8974         (compute_call_used_vars): New function.
8975         (init_base_vars): Init the call-used variable.
8976         (do_sd_constraint): Do not propagate the solution from CALLUSED
8977         but use CALLUSED as a placeholder.
8978         (solve_graph): Likewise.
8979         * tree-flow-inline.h (gimple_call_used_vars): New function.
8980         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
8981         (compute_call_used_vars): Declare.
8982         * tree-ssa-alias.c (set_initial_properties): Call
8983         compute_call_used_vars.
8984         (reset_alias_info): Clear call-used variables.
8985         (add_call_clobber_ops): Assert we are not called for const/pure
8986         functions.  Remove handling of them.
8987         (add_call_read_ops): Handle pure functions by adding the
8988         call-used set of variables as VUSEs.
8989         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
8990         (delete_tree_ssa): Free it.
8991         * tree-dfa.c (remove_referenced_var): Clear the var from the
8992         call-used bitmap.
8993
8994 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
8995
8996         * tree.c (build_varargs_function_type_list): New.
8997         (build_function_type_list_1): New.
8998         (build_function_type_list): Use build_function_type_list_1.
8999         * tree.h (build_varargs_function_type_list): New.
9000
9001 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9002
9003         PR target/34856
9004         * config/spu/spu.c (spu_builtin_splats): Do not generate
9005         invalid CONST_VECTOR expressions.
9006         (spu_expand_vector_init): Likewise.
9007
9008 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
9009
9010         * optabs.c (libfunc_decls): New variable.
9011         (libfunc_decl_hash, libfunc_decl_eq): New functions.
9012         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
9013         for the same function twice.
9014
9015 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
9016
9017         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
9018         ix86_expand_binary_operator directly.
9019         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
9020         for operand 2.
9021         (*ashrti3_1): Ditto.
9022         (*lshrti3_1): Ditto.
9023         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
9024         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
9025         using only one splitter.  Conditionaly execute splitter before or
9026         after peephole2 pass.
9027         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
9028         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
9029         Use only one alternative in asm template.
9030         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
9031         in asm template.
9032         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
9033         "J" operand constraint for operand 2.
9034         (*ashldi3_cconly_rex64): Ditto.
9035         (*ashrdi3_cmp_rex64): Ditto.
9036         (*ashrdi3_cconly_rex64): Ditto.
9037         (*lshrdi3_cmp_rex64): Ditto.
9038         (*lshrdi3_cconly_rex64): Ditto.
9039         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
9040         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
9041         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
9042         gen_x86_shrd_1.
9043
9044 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
9045
9046         * gimplify.c (omp_is_private): Don't return true if decl is not
9047         already private on #pragma omp for or #pragma omp parallel for.
9048
9049         PR debug/36617
9050         * tree-cfg.c (struct move_stmt_d): Replace block field with
9051         orig_block and new_block fields.
9052         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
9053         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
9054         (move_block_to_fn): Replace vars_map and new_label_map arguments
9055         with struct move_stmt_d pointer.
9056         (replace_block_vars_by_duplicates): New function.
9057         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
9058         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
9059         all subblocks of ORIG_BLOCK to the new function.  Call
9060         replace_block_vars_by_duplicates.
9061         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
9062         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
9063         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
9064         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
9065         (expand_omp): Temporarily set input_location to the location of
9066         region's controlling stmt.
9067         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
9068         BIND_EXPR, push ctx->block_vars and gimplification vars into
9069         the BIND_EXPR and its block's BLOCK_VARS instead of directly
9070         into dest function.
9071         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
9072         there are any BLOCK_VARS.
9073         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
9074         OMP_PARALLEL or OMP_TASK stmt.
9075         (lower_omp): Save and restore input_location around the lower_omp_1
9076         call.
9077
9078 2008-06-27  Richard Guenther  <rguenther@suse.de>
9079
9080         PR tree-optimization/36400
9081         PR tree-optimization/36373
9082         PR tree-optimization/36344
9083         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
9084         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
9085         (update_alias_info): Remove call clobbering code.
9086         (make_constraint_to): New helper function.
9087         (make_escape_constraint): Likewise.
9088         (handle_rhs_call): Use it on all pointer containing arguments.
9089         Also mark the static chain escaped.
9090         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
9091         instead of ANYTHING.
9092         (make_constraint_from): New helper split out from ...
9093         (make_constraint_from_anything): ... here.
9094         (find_func_aliases): Add constraints for escape sites.
9095         (intra_create_variable_infos): Make constraints from NONLOCAL
9096         for parameters.
9097         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
9098         as ANYTHING.
9099         (clobber_what_p_points_to): Remove.
9100         (clobber_what_escaped): New function.
9101         (init_base_vars): Init NONLOCAL and ESCAPED.
9102         (do_sd_constraint): Do not propagate the solution from ESCAPED
9103         but use ESCAPED as a placeholder.
9104         (solve_graph): Likewise.
9105         * tree-flow.h (clobber_what_p_points_to): Remove.
9106         (clobber_what_escaped): Declare.
9107         * tree-ssa-alias.c (set_initial_properties): Call it.
9108         Remove code clobbering escaped pointers.
9109
9110 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
9111
9112         * function.c (allocate_struct_function): Only allocate a unique
9113         funcdef_no if the decl is nonzero.
9114
9115 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
9116
9117         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
9118         * config/mips/mips.c (mips_split_const_insns): New function.
9119         * config/mips/mips.md (move_type): New attribute.
9120         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
9121         (dword_mode): New attribute.
9122         (type): Avoid long line.  Map "move_type"s to "type"s,
9123         choosing "multi" for doubleword moves if appropriate.
9124         Swap MTC/MFC comments to match their declaration order.
9125         (extended_mips16): Default to "yes" if "move_type" is "sll0",
9126         "type" is "branch" or "jal" is "direct".
9127         (length): Handle "extended_mips16" first.  Make the default
9128         "0" for "ghost" instructions.  Set the length from "move_type".
9129         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
9130         of "type", with "sll0" for the register alternative.  Remove the
9131         "extended_mips16" attribute.
9132         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
9133         of "type", with "shift_shift" for the register alternative.
9134         Remove the "length" attribute.
9135         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
9136         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
9137         of "type", with "andi" for the register alternative.
9138         (*zero_extendqihi2): Likewise.
9139         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
9140         of "andi" instead of a "type" of "arith".
9141         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
9142         instead of "type".
9143         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
9144         (mov_<store>r, *mov<mode>_ra): Likewise.
9145         (extendsidi2): Use "move_type" instead of "type", with "move"
9146         for the register alternative.
9147         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
9148         of "type", with "signext" for the register alternative.
9149         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
9150         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
9151         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
9152         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
9153         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
9154         (unnamed branch insn): Likewise.
9155         (*movdi_gp32_fp64): Fold into...
9156         (*movdi_32bit): ...here.
9157         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
9158         (*movdf_hardfloat): ...this new pattern.
9159         (*movdf_softfloat): Remove redundant FPR alternatives.
9160         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
9161         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
9162         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
9163         the "move" attribute.
9164         (*movdi_32bit): Use "move_type" instead of "type" and remove the
9165         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
9166         and "store" for COP loads and stores.
9167         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
9168         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
9169         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
9170         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
9171         (*movtf_mips16, *movv2sf): Likewise.
9172         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
9173         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
9174         (mfhc1<mode>): Use "move_type" instead of "move".
9175         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
9176         (loadgp_blockage): Remove the "length" attribute.
9177         (blockage, set_got_version, update_got_version): Likewise.
9178         (call_internal): Remove the "extended_mips16" attribute.
9179         (call_value_internal, call_value_multiple_internal): Likewise.
9180         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
9181         instead of "move".
9182         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
9183         the "length" attribute.
9184
9185 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9186
9187         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
9188         -Wcast-qual warnings.
9189         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
9190         handle_pragma_pop_macro): Likewise.
9191         * collect2.c (resolve_lib_name): Likewise.
9192         * config/arc/arc.c (arc_init): Likewise.
9193         * config/arm/arm.c (neon_builtin_compare,
9194         locate_neon_builtin_icode): Likewise.
9195         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
9196         * config/bfin/bfin.c (bfin_init_machine_status,
9197         bfin_optimize_loop): Likewise.
9198         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
9199         * config/cris/cris.c (cris_init_expanders): Likewise.
9200         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
9201         * config/darwin.c (machopic_indirection_eq,
9202         machopic_indirection_name, machopic_output_indirection): Likewise.
9203         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
9204         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
9205         frv_optimize_membar): Likewise.
9206         * config/i386/cygwin.h (mingw_scan,
9207         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
9208         * config/i386/cygwin1.c (mingw_scan): Likewise.
9209         * config/i386/i386.c (machopic_output_stub): Likewise.
9210         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
9211         i386_pe_unique_section): Likewise.
9212         * config/ia64/ia64.c (ia64_init_machine_status,
9213         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
9214         Likewise.
9215         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
9216         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
9217         * config/m68k/m68k.c (m68k_handle_option,
9218         m68k_sched_md_init_global): Likewise.
9219         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
9220         mcore_unique_section): Likewise.
9221         * config/mips/mips.c (mips_block_move_straight,
9222         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
9223         Likewise.
9224         * config/mmix/mmix.c (mmix_init_machine_status,
9225         mmix_encode_section_info): Likewise.
9226         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
9227         * config/rs6000/rs6000.c (rs6000_init_machine_status,
9228         print_operand_address, output_toc, redefine_groups,
9229         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
9230         * config/s390/s390.c (s390_init_machine_status): Likewise.
9231         * config/score/score.c (score_block_move_straight,
9232         score_block_move_loop_body): Likewise.
9233         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
9234         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9235         * emit-rtl.c (find_auto_inc): Likewise.
9236         * gcc.c (translate_options, process_command): Likewise.
9237         * reorg.c (dbr_schedule): Likewise.
9238         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
9239         * xcoffout.c (xcoffout_declare_function): Likewise.
9240
9241 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
9242
9243         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
9244         ipa-pta working again.
9245
9246 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
9247
9248         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
9249         genautomata.
9250
9251 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
9252
9253         * config.gcc (powerpc*-*-*): Add new core e500mc.
9254         * config/rs6000/e500mc.md: New file.
9255         * config/rs6000/rs6000.c (processor_costs): Add new costs for
9256         e500mc.
9257         (rs6000_override_options): Add e500mc case to
9258         processor_target_table. Altivec and Spe options not allowed
9259         with e500mc. Add isel instruction to e500mc by
9260         default. Initialize rs6000_cost for e500mc.
9261         (rs6000_issue_rate): Set issue rate for e500mc.
9262         * config/rs6000/rs6000.h (processor_type): Add
9263         PROCESSOR_PPCE500MC.
9264         (ASM_CPU_SPEC): Add e500mc.
9265         Set TARGET_ISEL to rs6000_isel.
9266         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
9267         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
9268         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
9269         Include e500mc.md.
9270         * doc/invoke.texi: Add e500mc to list of cpus.
9271
9272 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9273
9274         PR c/34867
9275         * c-lex.c (lex_charconst): Initialize unsignedp.
9276
9277 2008-06-27  Olivier Hainque  <hainque@adacore.com>
9278
9279         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
9280         documented assumptions.
9281
9282 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
9283
9284         * dwarf2out.c: Remove trailing white spaces.  Break long line
9285         in comments.
9286
9287 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
9288
9289         * libfuncs.h (LTI_synchronize): New libfunc_index.
9290         (synchronize_libfunc): Declare.
9291         * builtins.c (expand_builtin_synchronize): Consider using
9292         synchronize_libfunc before falling back on an asm blockage.
9293         * config/mips/mips.c: Include libfuncs.h
9294         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
9295
9296 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
9297
9298         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
9299         parameter.  Copy stack_reg to r11 where appropriate.
9300         (no_global_regs_above): Add gpr parameter.
9301         (rs6000_stack_info): Only add padding for SPE save area if we
9302         are saving SPE GPRs and CR.
9303         (saveres_routine_syms): New variable.
9304         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
9305         Define.
9306         (rs6000_savres_routine_sym): New function.
9307         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
9308         split out of...
9309         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
9310         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
9311         Tweak FPR out-of-line saving.
9312         (rs6000_make_savres_rtx): New function.
9313         (rs6000_use_multiple_p): New function.
9314         (rs6000_savres_strategy): New function.
9315         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
9316         out-of-line if appropriate.
9317         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
9318         if we are optimizing for size.
9319         (GP_SAVE_INLINE): Define.
9320         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
9321         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
9322         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
9323         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
9324         (*save_fpregs_<mode>): Add use of r11.
9325         (*restore_gpregs_<mode>): New insn.
9326         (*return_and_restore_gpregs_<mode>): New insn.
9327         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
9328         use r11.
9329         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
9330         (*restore_gpregs_spe): New insn.
9331         (*return_and_restore_gpregs_spe): New insn.
9332         * config/rs6000/predicates.md (save_world_operation): Fix check.
9333
9334 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
9335
9336         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
9337         this point, so assert that.
9338
9339 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
9340
9341         * cfganal.c: Include vec.h and vecprim.h.
9342         (compute_idf): Import from...
9343         * tree-into-ssa (compute_idf): ...here.
9344         * basic-block.h (compute_idf): Export.
9345
9346 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
9347
9348         * c-decl.c (merge_decls): Use !current_function_decl to check for
9349         extern declaration of C99 inline function being at file scope.
9350
9351 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
9352
9353         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
9354
9355 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9356
9357         * alias.c (record_alias_subset, init_alias_analysis): Fix
9358         -Wc++-compat and/or -Wcast-qual warnings.
9359         * attribs.c (lookup_attribute_spec): Likewise.
9360         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
9361         copy_bb, connect_traces,
9362         find_rarely_executed_basic_blocks_and_cr): Likewise.
9363         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
9364         note_btr_set, migrate_btr_defs): Likewise.
9365         * builtins.c (result_vector, expand_builtin_memcpy,
9366         expand_builtin_mempcpy_args, expand_builtin_strncpy,
9367         builtin_memset_read_str, expand_builtin_printf,
9368         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
9369         Likewise.
9370         * caller-save.c (mark_set_regs): Likewise.
9371         * calls.c (expand_call, emit_library_call_value_1): Likewise.
9372         * cgraph.c (cgraph_edge): Likewise.
9373         * combine.c (likely_spilled_retval_1): Likewise.
9374         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
9375         htab_counts_entry_del, get_coverage_counts): Likewise.
9376         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
9377         new_cselib_val): Likewise.
9378         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
9379         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
9380         Likewise.
9381         * df-core.c (df_compact_blocks): Likewise.
9382         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
9383         * df-scan.c (df_grow_reg_info, df_ref_create,
9384         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
9385         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
9386         df_record_entry_block_defs, df_record_exit_block_uses,
9387         df_bb_verify): Likewise.
9388         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
9389         DF_REF_EXTRACT_MODE_CONST): New.
9390         * dominance.c (get_immediate_dominator, get_dominated_by,
9391         nearest_common_dominator, root_of_dom_tree,
9392         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
9393         -Wc++-compat and/or -Wcast-qual warnings.
9394         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
9395         record_store, replace_read, check_mem_read_rtx, scan_insn,
9396         dse_step1, dse_record_singleton_alias_set): Likewise.
9397         * dwarf2asm.c (dw2_force_const_mem): Likewise.
9398
9399 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9400
9401         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
9402         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
9403         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
9404         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
9405         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
9406         add_ranges_num, add_ranges_by_labels, file_info_cmp,
9407         file_name_acquire, output_file_names, add_const_value_attribute,
9408         premark_used_types_helper, file_table_eq, file_table_hash,
9409         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
9410         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
9411         -Wcast-qual warnings.
9412         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
9413         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
9414         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
9415         gen_reg_rtx, start_sequence, init_emit): Likewise.
9416         * et-forest.c (et_new_occ, et_new_tree): Likewise.
9417         * except.c (init_eh_for_function, gen_eh_region,
9418         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
9419         arh_to_landing_pad, arh_to_label, add_action_record,
9420         add_call_site, switch_to_exception_section): Likewise.
9421         * expmed.c (synth_mult): Likewise.
9422         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
9423         store_expr): Likewise.
9424         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
9425         Likewise.
9426         * function.c (assign_stack_temp_for_type,
9427         allocate_struct_function, match_asm_constraints_1): Likewise.
9428         * gcov-io.c (gcov_allocate): Likewise.
9429         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
9430         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
9431         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
9432         record_one_set, insert_expr_in_table, insert_set_in_table,
9433         dump_hash_table, compute_hash_table_work, alloc_hash_table,
9434         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
9435         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
9436         -Wcast-qual warnings.
9437
9438 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9439
9440         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
9441         -Wcast-qual warnings.
9442         * gcc.c (process_command): Likewise.
9443         * genattrtab.c (oballoc): Use XOBNEW.
9444         (oballocvec): Define.
9445         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
9446         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
9447         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
9448         -Wc++-compat and/or -Wcast-qual warnings.
9449         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
9450         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
9451         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
9452         gen_presence_absence_set, gen_automaton, gen_regexp_el,
9453         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
9454         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
9455         add_excls, process_presence_absence_names,
9456         process_presence_absence_patterns, add_presence_absence,
9457         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
9458         get_free_state, add_arc, get_free_automata_list_el,
9459         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
9460         transform_3, cache_presence, create_ainsns, create_automata,
9461         create_state_ainsn_table, dfa_insn_code_enlarge,
9462         output_trans_func, output_min_issue_delay_func,
9463         output_dead_lock_func, output_reset_func,
9464         output_get_cpu_unit_code_func, output_dfa_start_func,
9465         expand_automata): Likewise.
9466         * genextract.c (gen_insn): Likewise.
9467         * gengtype-lex.l: Likewise.
9468         * gengtype.c (read_input_list, adjust_field_type,
9469         process_gc_options): Likewise.
9470         * genoutput.c (note_constraint): Likewise.
9471         * genpreds.c (mangle, add_constraint): Likewise.
9472         * genrecog.c (process_define_predicate, new_decision,
9473         add_to_sequence): Likewise.
9474         * gensupport.c (record_insn_name): Likewise.
9475
9476 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9477
9478         * config/i386/driver-i386.c (detect_caches_amd,
9479         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
9480         and/or -Wcast-qual warnings.
9481         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
9482         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
9483         gt_pch_save): Likewise.
9484         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
9485         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
9486         * global.c (compute_regsets): Likewise.
9487         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
9488         finish_graph_dump_file): Likewise.
9489         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
9490         unlink_bb_notes): Likewise.
9491         * integrate.c (get_hard_reg_initial_val): Likewise.
9492         * ipa-prop.c (ipa_push_func_to_list): Likewise.
9493         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
9494         * local-alloc.c (update_equiv_regs): Likewise.
9495         * loop-invariant.c (check_invariant_table_size,
9496         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
9497         Likewise.
9498         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
9499         altered_reg_used, mark_altered): Likewise.
9500         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
9501         insert_var_expansion_initialization,
9502         combine_var_copies_in_loop_exit, apply_opt_in_copies,
9503         release_var_copies): Likewise.
9504         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
9505         analyze_matrix_decl, add_allocation_site, analyze_transpose,
9506         analyze_accesses_for_phi_node, check_var_notmodified_p,
9507         check_allocation_function, find_sites_in_func,
9508         record_all_accesses_in_func, transform_access_sites,
9509         transform_allocation_sites): Likewise.
9510         * omp-low.c (new_omp_region, create_omp_child_function_name,
9511         check_omp_nesting_restrictions, check_combined_parallel,
9512         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
9513         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
9514         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
9515         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
9516         Likewise.
9517         * opts-common.c (prune_options): Likewise.
9518         * opts.c (add_input_filename, print_filtered_help,
9519         get_option_state): Likewise.
9520         * params.c (add_params): Likewise.
9521         * passes.c (set_pass_for_id, next_pass_1,
9522         do_per_function_toporder, pass_fini_dump_file): Likewise.
9523         * postreload.c (reload_cse_simplify_operands): Likewise.
9524         * predict.c (tree_predicted_by_p, tree_predict_edge,
9525         clear_bb_predictions, combine_predictions_for_bb): Likewise.
9526
9527 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9528
9529         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
9530         warnings.
9531         * recog.c (check_asm_operands, validate_change_1): Likewise.
9532         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
9533         subst_asm_stack_regs): Likewise.
9534         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
9535         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
9536         * regmove.c (reg_is_remote_constant_p): Likewise.
9537         * regrename.c (regrename_optimize, scan_rtx_reg,
9538         kill_clobbered_value, kill_set_value, kill_autoinc_value):
9539         Likewise.
9540         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
9541         regstat_compute_calls_crossed): Likewise.
9542         * reload1.c (init_reload, new_insn_chain,
9543         has_nonexceptional_receiver, reload, copy_reloads,
9544         calculate_needs_all_insns, init_elim_table): Likewise.
9545         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
9546         * rtl.c (shallow_copy_rtx_stat): Likewise.
9547         * rtlanal.c (parms_set): Likewise.
9548         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
9549         sbitmap_resize, sbitmap_vector_alloc): Likewise.
9550         * sched-ebb.c (earliest_block_with_similiar_load,
9551         add_deps_for_risky_insns): Likewise.
9552         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
9553         schedule_region): Likewise.
9554         * see.c (eq_descriptor_pre_extension,
9555         hash_descriptor_pre_extension, hash_del_pre_extension,
9556         eq_descriptor_properties, hash_descriptor_properties,
9557         hash_del_properties, see_seek_pre_extension_expr,
9558         see_initialize_data_structures, see_print_register_properties,
9559         see_print_pre_extension_expr, see_delete_merged_def_extension,
9560         see_delete_unmerged_def_extension, see_emit_use_extension,
9561         see_pre_delete_extension, see_map_extension, see_commit_changes,
9562         see_analyze_merged_def_local_prop,
9563         see_analyze_merged_def_local_prop,
9564         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
9565         see_set_prop_merged_def, see_set_prop_unmerged_def,
9566         see_set_prop_unmerged_use, see_print_one_extension,
9567         see_merge_one_use_extension, see_merge_one_def_extension,
9568         see_store_reference_and_extension, see_update_uses_relevancy,
9569         see_update_defs_relevancy): Likewise.
9570         * statistics.c (hash_statistics_hash, hash_statistics_eq,
9571         hash_statistics_free, curr_statistics_hash): Likewise.
9572         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
9573         expand_asm_operands, expand_return, case_bit_test_cmp,
9574         expand_case): Likewise.
9575         * stor-layout.c (start_record_layout): Likewise.
9576         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
9577         gt_pch_save_stringpool): Likewise.
9578         * tree-data-ref.c (hash_stmt_vertex_info,
9579         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
9580         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
9581
9582 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
9583
9584         PR target/36627
9585         * config/i386/i386.md : Change constraints of HImode and QImode
9586         immediate operands from "i" to "n".  Change SImode "ni" constraint to
9587         "i" and SImode "rmi" constraint to "g".  Remove all constraints
9588         from const0_operand and const1_operand predicated operands.
9589         (i): Change QImode and HImode attribute from "i" to "n".
9590         (*subqi_2): Change HImode operands to QImode.
9591         (*subqi_3): Ditto.
9592
9593 2008-06-25  Olivier Hainque  <hainque@adacore.com>
9594
9595         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
9596         sed substitutions.
9597
9598 2008-06-25  Richard Guenther  <rguenther@suse.de>
9599
9600         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
9601         not overflow the result type.
9602
9603 2008-06-25  Richard Guenther  <rguenther@suse.de>
9604
9605         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
9606         (vn_lookup): Likewise.
9607
9608 2008-06-25  Richard Guenther  <rguenther@suse.de>
9609
9610         PR tree-optimization/35518
9611         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
9612         * tree-sra.c (instantiate_element): Use fold_build3 to build
9613         BIT_FIELD_REFs.
9614         (try_instantiate_multiple_fields): Likewise.
9615
9616 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9617
9618         * config/rs6000/rs6000.md: Change all string instruction's clobber to
9619         be early clobbers.
9620
9621 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9622
9623         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
9624         use_backchain_to_restore_sp to true
9625         if the offset of the link register save area would go over the 32k - 1
9626         offset limit of the load
9627         instructions.
9628
9629 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
9630
9631         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
9632         anchor for the type-punning blurb.  Cross-reference "Structures
9633         unions enumerations and bit-fields implementation".  Provide a
9634         cast-through-pointer example.  Make final sentence self-contained.
9635         * doc/implement-c.texi (Structures unions enumerations and
9636         bit-fields implementation): Cross-reference the type-punning blurb
9637         in the -fstrict-aliasing documentation.
9638
9639 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9640
9641         PR middle-end/36594
9642         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
9643         the memory instead of the memory itself for the save area.
9644
9645 2008-06-24  Olivier Hainque  <hainque@adacore.com>
9646             Nicolas Roche  <roche@adacore.com>
9647
9648         * gengtype.c (srcdir_len): size_t instead of int.
9649         (get_file_realbasename): New function.  For F a filename, the real
9650         basename of F, with all the path components stripped.
9651         (get_file_srcdir_relative_path): New function.  For F a filename, the
9652         relative path to F from $(srcdir).
9653         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
9654         get_file_realbasename.  Adjust the head comment.
9655         (get_prefix_langdir_index): New function. For F a filename, return the
9656         lang_dir_names[] relative index of the language directory that is
9657         a prefix in F.
9658         (get_file_langdir): For F a filename, return the name of the language
9659         directory where F is located.
9660         (get_file_gtfilename): New function. The gt- output file name for an
9661         input filename F.
9662         (get_output_file_with_visibility): Replace in-line computations with
9663         uses of get_file_gtfilename and get_prefix_langdir_index.
9664         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
9665
9666 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
9667
9668         PR tree-optimization/36504
9669         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
9670         references without base address.
9671
9672 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9673
9674         PR middle-end/36584
9675         * calls.c (expand_call): Increase alignment for recursive functions.
9676
9677 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
9678
9679         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
9680         (TARGET_FUNCTION_VALUE): New define.
9681         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
9682         * config/avr/avr.h (FUNCTION_VALUE): Remove.
9683
9684 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9685
9686         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
9687         (fmod<mode>3): Ditto.
9688         (remainderxf3): Ditto.
9689         (remainder<mode>3): Ditto.
9690
9691 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
9692
9693         PR target/36533
9694         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
9695         REG is a hard register.
9696
9697         PR tree-optimization/36508
9698         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
9699         499, don't check it at all in release compilers.
9700
9701 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
9702
9703         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
9704         together with SSE_TARGET_MATH to disable insn pattern.
9705         (*fop_<MODEF:mode>_2_i387): Ditto.
9706         (*fop_<MODEF:mode>_3_i387): Ditto.
9707
9708 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
9709
9710         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
9711
9712 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9713
9714         PR middle-end/34906
9715         * gimplify.c (gimplify_asm_expr): Check the return code of
9716         parse_output_constraint call, set function return and is_inout
9717         value if it failed.
9718
9719 2008-06-22  Ian Lance Taylor  <iant@google.com>
9720
9721         * c-lex.c (narrowest_unsigned_type): Change itk to int.
9722         (narrowest_signed_type): Likewise.
9723         * c-typeck.c (c_common_type): Change local variable mclass to enum
9724         mode_class, twice.
9725         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
9726         tcc_comparison, not the tree code itself.
9727         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
9728         (c_expand_expr): Cast modifier to enum expand_modifier.
9729         * c-common.h (C_RID_CODE): Add casts.
9730         (C_SET_RID_CODE): Define.
9731         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
9732         (c_lex_one_token): Add cast to avoid warning.
9733         (c_parser_objc_type_name): Rename local typename to type_name.
9734         (check_no_duplicate_clause): Change code parameter to enum
9735         omp_clause_code.
9736         (c_parser_omp_var_list_parens): Change kind parameter to enum
9737         omp_clause_code.
9738         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
9739         c_parser_omp_list_var_parens.
9740         (c_parser_omp_threadprivate): Likewise.
9741         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
9742         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
9743         * c-format.c (NO_FMT): Define.
9744         (printf_length_specs): Use NO_FMT.
9745         (asm_fprintf_length_specs): Likewise.
9746         (gcc_diag_length_specs): Likewise.
9747         (scanf_length_specs): Likewise.
9748         (strfmon_length_specs): Likewise.
9749         (gcc_gfc_length_specs): Likewise.
9750         (printf_flag_specs): Change 0 to STD_C89.
9751         (asm_fprintf_flag_specs): Likewise.
9752         (gcc_diag_flag_specs): Likewise.
9753         (gcc_cxxdiag_flag_specs): Likewise.
9754         (scanf_flag_specs): Likewise.
9755         (strftime_flag_specs): Likewise.
9756         (strfmon_flag_specs): Likewise.
9757         (print_char_table): Likewise.
9758         (asm_fprintf_char_table): Likewise.
9759         (gcc_diag_char_table): Likewise.
9760         (gcc_tdiag_char_table): Likewise.
9761         (gcc_cdiag_char_table): Likewise.
9762         (gcc_cxxdiag_char_table): Likewise.
9763         (gcc_gfc_char_table): Likewise.
9764         (scan_char_table): Likewise.
9765         (time_char_table): Likewis.
9766         (monetary_char_table): Likewise.
9767         * c-format.h (BADLEN): Likewise.
9768
9769 2008-06-21  Ian Lance Taylor  <iant@google.com>
9770
9771         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
9772         Define END_OF_BASE_TREE_CODES around inclusion.
9773         * tree.c (tree_code_type): New global array.
9774         (tree_code_length, tree_code_name): Likewise.
9775         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
9776         $(lang_tree_files).
9777         (all-tree.def, s-alltree): New targets.
9778         (gencheck.h, s-gencheck): Remove.
9779         (tree.o): Depend upon all-tree.def.
9780         (build/gencheck.o): Remove gencheck.h dependency.
9781         (mostlyclean): Don't remove gencheck.h.
9782         * c-common.h (enum c_tree_code): Remove.
9783         * c-lang.c (tree_code_type): Remove.
9784         (tree_code_length, tree_code_name): Remove.
9785         * gencheck.c (tree_codes): Include all-tree.def, rather than
9786         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
9787         after it is used.
9788         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
9789         than tree.def.
9790         * cp/cp-tree.h (enum cplus_tree_code): Remove.
9791         (operator_name_info): Size to MAX_TREE_CODES.
9792         (assignment_operator_name_info): Likewise.
9793         * cp/cp-lang.c (tree_code_type): Remove.
9794         (tree_code_length, tree_code_name): Remove.
9795         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
9796         (assignment_operator_name_info): Likewise.
9797         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
9798         MAX_TREE_CODES.
9799         * cp/mangle.c (write_expression): Likewise.
9800         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
9801         * fortran/f95-lang.c (tree_code_type): Remove.
9802         (tree_code_length, tree_code_name): Remove.
9803         * java/java-tree.h (enum java_tree_code): Remove.
9804         * java/lang.c (tree_code_type): Remove.
9805         (tree_code_length, tree_code_name): Remove.
9806         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
9807         * objc/objc-act.h (enum objc_tree_code): Remove.
9808         * objc/objc-lang.c (tree_code_type): Remove.
9809         (tree_code_length, tree_code_name): Remove.
9810         * objcp/objcp-lang.c (tree_code_type): Remove.
9811         (tree_code_length, tree_code_name): Remove.
9812         * ada/ada-tree.h (enum gnat_tree_code): Remove.
9813         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
9814         * ada/misc.c (tree_code_type): Remove.
9815         (tree_code_length, tree_code_name): Remove.
9816
9817 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
9818
9819         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
9820         the grand_bitmap_obstack.
9821
9822 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9823
9824         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
9825         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
9826         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
9827         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
9828         move_stmt_r, new_label_mapper): Likewise.
9829         * tree-complex.c (cvc_lookup): Likewise.
9830         * tree-dfa.c (create_function_ann): Likewise.
9831         * tree-dump.c (dump_register): Likewise.
9832         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
9833         find_phi_replacement_condition): Likewise.
9834         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
9835         tree_function_versioning): Likewise.
9836         * tree-into-ssa.c (cmp_dfsnum): Likewise.
9837         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
9838         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
9839         get_nonlocal_debug_decl, convert_nonlocal_reference,
9840         convert_nonlocal_omp_clauses, get_local_debug_decl,
9841         convert_local_reference, convert_local_omp_clauses,
9842         convert_nl_goto_reference, convert_nl_goto_receiver,
9843         convert_tramp_reference, convert_call_expr): Likewise.
9844         * tree-outof-ssa.c (contains_tree_r): Likewise.
9845         * tree-parloops.c (reduction_phi, initialize_reductions,
9846         eliminate_local_variables_1, add_field_for_reduction,
9847         add_field_for_name, create_phi_for_local_result,
9848         create_call_for_reduction_1, create_loads_for_reductions,
9849         create_stores_for_reduction, create_loads_and_stores_for_name):
9850         Likewise.
9851         * tree-phinodes.c (allocate_phi_node): Likewise.
9852         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
9853         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
9854         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
9855         * tree-ssa-coalesce.c (compare_pairs): Likewise.
9856         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
9857         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
9858         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
9859         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
9860         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
9861         vn_nary_op_insert): Likewise.
9862         * tree-ssa.c (redirect_edge_var_map_add,
9863         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
9864         * tree-vectorizer.c (vectorize_loops): Likewise.
9865         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
9866         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
9867         tree_cons_stat, build1_stat, build_variant_type_copy,
9868         decl_init_priority_lookup, decl_fini_priority_lookup,
9869         decl_priority_info, decl_restrict_base_lookup,
9870         decl_restrict_base_insert, decl_debug_expr_lookup,
9871         decl_debug_expr_insert, decl_value_expr_lookup,
9872         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
9873         type_hash_add, get_file_function_name, tree_check_failed,
9874         tree_not_check_failed, tree_range_check_failed,
9875         omp_clause_range_check_failed, build_omp_clause,
9876         build_vl_exp_stat): Likewise.
9877         * value-prof.c (gimple_histogram_value,
9878         gimple_duplicate_stmt_histograms): Likewise.
9879         * var-tracking.c (attrs_list_insert, attrs_list_copy,
9880         unshare_variable, variable_union_info_cmp_pos, variable_union,
9881         dataflow_set_different_1, dataflow_set_different_2,
9882         vt_find_locations, variable_was_changed, set_variable_part,
9883         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
9884         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
9885         section_entry_hash, object_block_entry_eq,
9886         object_block_entry_hash, create_block_symbol,
9887         initialize_cold_section_name, default_function_rodata_section,
9888         strip_reg_name, set_user_assembler_name, const_desc_eq,
9889         build_constant_desc, output_constant_def, lookup_constant_def,
9890         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
9891         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
9892         default_internal_label): Likewise.
9893         * varray.c (varray_init, varray_grow): Likewise.
9894         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
9895
9896 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
9897
9898         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
9899         operators for "test" insn.  Macroize insn using SWI mode macro.
9900         (*jcc_fused_2): Ditto.
9901         (*jcc_fused_3): Macroize insn using SWI mode macro.
9902         (*jcc_fused_4): Ditto.
9903
9904 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
9905
9906         * tree-ssa-pre.c: Fix typo in comment.
9907         (init_antic, fini_antic): Add explicit funtions for
9908         initializing and deinitializing ANTIC and AVAIL sets.
9909         (create_expression_by_pieces): Fix typo in comment.
9910         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
9911         (execute_pre): Eventually dump details about ANTIC_IN.
9912
9913 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9914
9915         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
9916         * gcc.c (translate_options, init_spec, store_arg, read_specs,
9917         add_to_obstack, file_at_path, find_a_file, execute,
9918         add_preprocessor_option, add_assembler_option, add_linker_option,
9919         process_command, insert_wrapper, do_option_spec, do_self_spec,
9920         spec_path, do_spec_1, is_directory, main, used_arg,
9921         getenv_spec_function): Likewise.
9922         * tlink.c (symbol_hash_lookup, file_hash_lookup,
9923         demangled_hash_lookup, symbol_push, file_push, frob_extension):
9924         Likewise.
9925
9926 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
9927
9928         * doc/rtl.texi: Updated subreg section.
9929
9930 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
9931
9932         PR c++/36523
9933         * cgraphunit.c (cgraph_process_new_functions): Don't clear
9934         node->needed and node->reachable.
9935         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
9936         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
9937         (expand_task_call): Don't call expand_task_copyfn.
9938         (expand_task_copyfn): Renamed to...
9939         (finalize_task_copyfn): ... this.
9940
9941 2008-06-19  Jan Hubicka  <jh@suse.cz>
9942
9943         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
9944         clobbering framepointer.
9945
9946 2008-06-19  Jan Hubicka  <jh@suse.cz>
9947
9948         * tree-optimize.c (execute_early_local_optimizations): Set
9949         cgraph_state only at first invocation.
9950
9951 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9952
9953         * system.h (-Wc++-compat): Activate as a warning, no an error.
9954
9955 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
9956
9957         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
9958         instead of "#" in insn asm template.
9959         (*jcc_fused_2): Ditto.
9960
9961 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
9962
9963         * config/i386/i386.h (ix86_tune_indices)
9964         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
9965         (TARGET_FUSE_CMP_AND_BRANCH): New define.
9966         * config/i386/i386.md (*jcc_fused_1): New insn pattern
9967         (*jcc_fused_2): Ditto.
9968         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
9969         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
9970         (print operand): Handle 'E' and 'e' code.
9971
9972 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
9973
9974         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
9975         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9976         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9977
9978 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
9979
9980         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
9981         node->decl.
9982         (cgraph_expand_function): Use local copy of decl.
9983         (cgraph_expand_all_functions): Remove redundant initialization of
9984         order_pos.
9985         (cgraph_optimize): Reword internal_error message.
9986
9987 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
9988
9989         * arm-protos.h (arm_return_in_memory): Remove public
9990         arm_return_in_memory() prototype.
9991         * arm.c (arm_return_in_memory): Add static prototype, add target
9992         hook macro, change definition and comments.
9993         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
9994
9995 2008-06-19  Ben Elliston  <bje@au.ibm.com>
9996
9997         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
9998         real.c: Remove references to IEEE 754R.
9999         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
10000         * doc/libgcc.texi (Decimal float library routines): Likewise.
10001
10002 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10003
10004         * targhooks.h (struct gcc_target): New member unwind_word_mode.
10005         (default_unwind_word_mode): Add prototype.
10006         * targhooks.c (default_unwind_word_mode): New function.
10007         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
10008         instead of word_mode.
10009         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
10010         (TARGET_INITIALIZER): Use it.
10011
10012         * c-common.c (handle_mode_attribute): Support "unwind_word"
10013         mode attribute.
10014         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
10015
10016         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
10017         word_mode to access SjLj_Function_Context member "data".
10018         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
10019         conversion from targetm.eh_return_filter_mode () to
10020         targetm.unwind_word_mode () if they differ.
10021
10022         * builtin-types.def (BT_UNWINDWORD): New primitive type.
10023         (BT_FN_UNWINDWORD_PTR): New function type.
10024         (BT_FN_WORD_PTR): Remove.
10025         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
10026         * except.c (expand_builtin_extend_pointer): Convert pointer to
10027         targetm.unwind_word_mode () instead of word_mode.
10028
10029         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
10030         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
10031         (spu_unwind_word_mode): New function.
10032         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
10033         (TARGET_UNWIND_WORD_MODE): Define.
10034         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
10035
10036 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10037
10038         * config/spu/spu.c (reg_align): Remove.
10039         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
10040         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
10041         (spu_split_store): Likewise.
10042
10043 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10044
10045         * gcc/tree-vn.c: Fix typo in comment.
10046
10047 2008-06-18  Jan Hubicka  <jh@suse.cz>
10048
10049         * cgraphunit.c (cgraph_optimize): Output debug info when doing
10050         toplevel reorder too.
10051
10052 2008-06-18  Jan Hubicka  <jh@suse.cz>
10053
10054         * c-opts.c (c_common_post_options): PCH is not compatible with
10055         no-unit-at-a-time.
10056         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
10057         -fno-toplevel-reorder by default now.
10058
10059 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10060
10061         PR documentation/30739
10062         * doc/install.texi (Prerequisites): Document dependency on awk.
10063
10064 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
10065             Ian Lance Taylor  <iant@google.com>
10066
10067         PR rtl-optimization/35604
10068         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
10069         only want to change jump destinations, not eventual label comparisons.
10070
10071 2008-06-16  Jan Hubicka  <jh@suse.cz>
10072
10073         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
10074         syntax errors.
10075         (cgraph_analyze_function): Likewise.
10076
10077 2008-06-16  Jan Hubicka  <jh@suse.cz>
10078
10079         * cgraph.h (cgraph_mark_if_needed): New function.
10080         * cgraphunit.c (cgraph_mark_if_needed): New function.
10081         * c-decl.c (duplicate_decl): Use it.
10082
10083 2008-06-16  Jan Hubicka  <jh@suse.cz>
10084
10085         * cgraph.c (cgraph_add_new_function): When in expansion state, do
10086         lowering.
10087
10088 2008-06-16  Jan Hubicka  <jh@suse.cz>
10089
10090         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
10091
10092 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
10093             Kazu Hirata  <kazu@codesourcery.com>
10094             Maxim Kuvyrkov  <maxim@codesourcery.com
10095
10096         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
10097         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
10098         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
10099         EXTRA_SPEC_FUNCTIONS.
10100         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
10101         (DRIVER_SELF_SPECS): Adjust.
10102         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
10103         * config/mips/st.h, config/mips/t-st: New.
10104         * config/mips/driver-native.c, config/mips/x-native: New.
10105         * doc/invoke.texi (MIPS): Document 'native' value for -march and
10106         -mtune options.
10107
10108 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
10109
10110         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
10111         from it.
10112         (ISA_HAS_FP_CONDMOVE): New macro.
10113         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
10114         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
10115         (ISA_HAS_NMADD3_NMSUB3): New macro.
10116         * config/mips/mips.c (mips_rtx_costs): Update.
10117         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
10118         compiling for ST Loongson 2E/2F.
10119         (madd<mode>): Rename to madd4<mode>.  Update.
10120         (madd3<mode>): New pattern.
10121         (msub<mode>): Rename to msub4<mode>.  Update.
10122         (msub3<mode>): New pattern.
10123         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
10124         (nmadd3<mode>): New pattern.
10125         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
10126         (nmadd3<mode>_fastmath): New pattern.
10127         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
10128         (nmsub3<mode>): New pattern.
10129         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
10130         (nmsub3<mode>_fastmath): New pattern.
10131         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
10132
10133 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
10134
10135         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
10136         (DF_REF_INSN_INFO): New.
10137         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
10138         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
10139         with a NULL DF_REF_INSN_INFO.
10140         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
10141         DF_INSN_SET.
10142         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
10143         DF_INSN_INFO_EQ_USES): New.
10144         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
10145         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
10146         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
10147         * df-core.c: Update comment for above changes.
10148         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
10149         DF_INSN_UID_* macros.
10150         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
10151         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
10152         insn rtx.  Update all callers.
10153         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
10154         df_ref_create_structure, df_insn_refs_collect): Likewise.
10155         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
10156         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
10157         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
10158         macros to access the insn refs.
10159         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
10160         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
10161         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
10162         for accessing the refs.
10163         (try_fwprop_subst): Likewise.
10164         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
10165         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
10166         for accessing the refs.
10167         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
10168         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
10169         to look at the insn refs.
10170         (record_uses): Likewise.
10171         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
10172         function anymore.
10173         (mark_artificial_uses): Don't mark_insn for artificial refs.
10174         (mark_reg_rependencies): Likewise.
10175
10176         * doc/rtl.texi: Remove documentation of ADDRESSOF.
10177
10178 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10179
10180         * configure: Regenerate.
10181
10182 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10183
10184         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
10185         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10186         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10187
10188 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10189
10190         * config/avr/avr.c (avr_mcu_t): Add attiny167.
10191         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10192         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10193
10194 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
10195
10196         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
10197         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10198         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10199
10200 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
10201
10202         * tree-ssa-sccvn.c: Fix format of comments.
10203
10204 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
10205
10206         * cgraph.c: Remove unneeded forward declarations of eq_node()
10207         and hash_node().
10208
10209 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
10210
10211         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
10212         REG_RETVAL notes.
10213         (see_update_relevancy): Likewise.
10214         * fwprop.c (try_fwprop_subst): Likewise.
10215         * rtlanal.c (noop_move_p): Likewise.
10216         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
10217         notes to non-existing libcall blocks.
10218         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
10219         Remove orig_set.
10220         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
10221         (dead_libcall_p): Remove.
10222         (delete_trivially_dead_insns): Don't use it.
10223         * web.c (union_defs): Remove comment about keeping nops.
10224         * gcse.c (hash_scan_insn): Don't take libcall pointers.
10225         (compute_hash_table_work): Don't track libcall notes.
10226         (do_local_cprop): Don't take libcall pointers.  Don't update
10227         libcall notes.
10228         (adjust_libcall_notes): Deleted.
10229         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
10230         ever have existed in the first place).
10231         (replace_store_insn): Don't try to remove libcall notes.
10232         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
10233         (resolve_reg_notes): Don't call them.
10234         (resolve_simple_move): Likewise.
10235         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
10236         Don't remove REG_RETVAL notes.
10237         * emit-rtl.c (try_split): Don't update libcall notes.
10238         (emit_copy_of_insn_after): Dito.
10239         * cselib.c (cselib_current_insn_in_libcall): Remove.
10240         (cselib_process_insn): Don't set/clear it.
10241         (new_elt_loc_list): Don't record it.
10242         (cselib_init): Don't initialize it.
10243         * cselib.c (struct elt_loc_list): Remove in_libcall field.
10244         * loop-invariant.c (find_invariant_insn): Don't look for libcall
10245         notes.
10246         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
10247         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
10248         (init_deps): Don't initialize it.
10249         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
10250         * combine.c (delete_noop_moves): Don't update libcall notes.
10251         (can_combine_p): Remove now pointless #if 0 block.
10252         (try_combine): Remove another obsolete #if 0 block.
10253         (distribute_notes): Don't distribute libcall notes.
10254         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
10255         * dce.c (libcall_dead_p): Remove.
10256         (delete_unmarked_insns): Don't handle libcall blocks.
10257         (preserve_libcall_for_dce): Remove.
10258         (prescan_insns_for_dce): Don't special-case libcall block insns.
10259         * reload1 (reload): Don't handle libcall notes.
10260         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
10261         documentation.
10262
10263 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
10264
10265         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
10266         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10267         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10268
10269 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
10270
10271         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
10272         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
10273         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
10274
10275 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10276
10277         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
10278
10279 2008-06-16  Ira Rosen  <irar@il.ibm.com>
10280
10281         PR tree-optimization/36493
10282         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
10283         the arguments list. Use VECTYPE to create vector pointer.
10284         (vectorizable_store): Fail if accesses through a pointer to vectype
10285         do not alias the original memory reference operands.
10286         Call vect_create_data_ref_ptr without the removed argument.
10287         (vectorizable_load): Likewise.
10288         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
10289         removed argument.
10290
10291 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
10292
10293         PR target/36336
10294         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for
10295         reg_equiv_constant.
10296
10297 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
10298
10299         * config/mips/loongson2ef.md: New file.
10300         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
10301         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
10302         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
10303         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
10304         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
10305         and loongson_2f.
10306         (loongson2ef.md): New include.
10307         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
10308         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
10309         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
10310         (loongson_gt_<mode>, loongson_extract_halfword)
10311         (loongson_insert_halfword_0, loongson_insert_halfword_2)
10312         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
10313         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
10314         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
10315         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
10316         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
10317         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
10318         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
10319         (vec_interleave_low<mode>): Define type attribute.
10320         * config/mips/mips.c (mips_ls2): New static variable.
10321         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
10322         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
10323         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
10324         Implement target scheduling hooks.
10325         (mips_multipass_dfa_lookahead): Update to handle tuning for
10326         Loongson 2E/2F.
10327         (mips_sched_init): Initialize data for Loongson scheduling.
10328         (mips_ls2_variable_issue): New static function.
10329         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
10330         Add sanity check.
10331         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
10332         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
10333         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
10334         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
10335         Handle ST Loongson 2E/2F cores.
10336         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
10337
10338 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10339
10340         * omp-low.c (extract_omp_for_data): Fix comment typo.
10341         * c.opt: Fix typo.
10342
10343 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10344
10345         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
10346         FIXME note about gcc/config.guess.
10347         * doc/options.texi (Option file format): Remove non-ASCII bytes.
10348         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
10349         * doc/cppopts.texi: Likewise.
10350         * doc/extend.texi: Likewise.
10351         * doc/gcc.texi: Likewise.
10352         * doc/gccint.texi: Likewise.
10353         * doc/gcov.texi: Likewise.
10354         * doc/gty.texi: Likewise.
10355         * doc/hostconfig.texi: Likewise.
10356         * doc/install.texi: Likewise.
10357         * doc/invoke.texi: Likewise.
10358         * doc/loop.texi: Likewise.
10359         * doc/makefile.texi: Likewise.
10360         * doc/md.texi: Likewise.
10361         * doc/passes.texi: Likewise.
10362         * doc/tm.texi: Likewise.
10363         * doc/tree-ssa.texi: Likewise.
10364         * doc/trouble.texi: Likewise.
10365
10366 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
10367             Nathan Sidwell  <nathan@codesourcery.com>
10368             Maxim Kuvyrkov  <maxim@codesourcery.com>
10369             Richard Sandiford  <rdsandiford@googlemail.com>
10370
10371         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
10372         * config/mips/mips-protos.h (mips_expand_vector_init): New.
10373         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
10374         builtins.
10375         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
10376         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
10377         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
10378         V8QImode cases.
10379         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
10380         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
10381         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
10382         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
10383         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
10384         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
10385         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
10386         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
10387         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
10388         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
10389         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
10390         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
10391         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
10392         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
10393         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
10394         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
10395         (mips_builtins): Add Loongson builtins.
10396         (mips_loongson_2ef_bdesc): New.
10397         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
10398         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
10399         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
10400         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
10401         New.
10402         (mips_expand_vector_init): New.
10403         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
10404         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
10405         if appropriate.
10406         * config/mips/mips.md: Add unspec numbers for Loongson
10407         builtins.  Include loongson.md.
10408         (MOVE64): Include Loongson vector modes.
10409         (SPLITF): Include Loongson vector modes.
10410         (HALFMODE): Handle Loongson vector modes.
10411         * config/mips/loongson.md: New.
10412         * config/mips/loongson.h: New.
10413         * config.gcc: Add loongson.h header for mips*-*-* targets.
10414         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
10415
10416 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
10417
10418         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
10419         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
10420         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
10421         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
10422         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
10423         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
10424         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
10425         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
10426         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
10427         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
10428         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
10429         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
10430         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
10431         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
10432         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
10433         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
10434         Remove use_fixproto=yes.
10435         (ia64*-*-hpux*): Remove comment about using fixproto.
10436         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
10437
10438 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10439
10440         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
10441         library rebuilds.
10442         * configure: Regenerate.
10443
10444 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
10445
10446         PR middle-end/36520
10447         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
10448         before evaluating it.
10449
10450 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
10451
10452         PR c/36507
10453         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
10454         nested inline functions.
10455         (start_decl, start_function): Don't invert DECL_EXTERNAL
10456         for nested inline functions.
10457
10458 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
10459
10460         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
10461         splits that must be made for correctness.
10462
10463 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
10464
10465         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
10466         (AVAIL_NON_MIPS16): Likewise.
10467         (mips_builtin_description): Replace target_flags with a predicate.
10468         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
10469         (dspr2_32): New availability predicates.
10470         (MIPS_BUILTIN): New macro.
10471         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
10472         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
10473         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
10474         Replace the TARGET_FLAGS parameters with AVAIL parameters.
10475         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
10476         (mips_dsp_32only_bdesc): Merge into...
10477         (mips_builtins): ...this new array.
10478         (mips_bdesc_map, mips_bdesc_arrays): Delete.
10479         (mips_init_builtins): Update after above changes.
10480         (mips_expand_builtin_1): Merge into...
10481         (mips_expand_builtin): ...here and update after above changes.
10482
10483 2008-06-12  Paul Brook  <paul@codesourcery.com>
10484
10485         * longlong.h (__arm__): Define count_leading_zeros.
10486         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
10487         (clzsi2, clzdi2): New functions.
10488         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
10489         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
10490         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
10491         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
10492         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
10493         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
10494         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
10495         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
10496         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
10497         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
10498
10499 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
10500
10501         * config/m68k/m68k.c (m68k_tune_flags): New.
10502         (override_options): Compute m68k_tune_flags.
10503         (MULL_COST, MULW_COST): Update for various variants of CFV2.
10504         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
10505
10506 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
10507
10508         PR middle-end/36506
10509         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
10510
10511 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
10512
10513         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
10514         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
10515
10516 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
10517
10518         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
10519         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
10520
10521 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
10522
10523         PR middle-end/36506
10524         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
10525         reductions.
10526
10527 2008-06-12  Richard Guenther  <rguenther@suse.de>
10528
10529         PR tree-optimization/36345
10530         * tree-flow.h (struct ptr_info_def): Align escape_mask,
10531         add memory_tag_needed flag.
10532         (may_alias_p): Declare.
10533         * tree-ssa-alias.c (may_alias_p): Export.
10534         (set_initial_properties): Use memory_tag_needed flag.
10535         (update_reference_counts): Likewise.
10536         (reset_alias_info): Reset memory_tag_needed flag.
10537         (create_name_tags): Check memory_tag_needed flag.
10538         (dump_points_to_info_for): Dump it.
10539         * tree-ssa-structalias.c (struct variable_info): Remove
10540         directly_dereferenced flag.
10541         (new_var_info): Do not initialize it.
10542         (process_constraint_1): Do not set it.
10543         (update_alias_info): Set is_dereferenced flag.
10544         (set_uids_in_ptset): Use may_alias_p.
10545         (set_used_smts): Check memory_tag_needed flag.
10546         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
10547         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
10548         memory_tag_needed flag.
10549         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
10550         from broken design.
10551
10552 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
10553
10554         * config/i386/i386.c (ix86_compute_frame_layout): Disable
10555         red zone for w64 abi.
10556         (ix86_expand_prologue): Likewise.
10557         (ix86_force_to_memory): Likewise.
10558         (ix86_free_from_memory): Likewise.
10559
10560 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
10561
10562         PR target/36425
10563         * config/rs6000/rs6000.c (rs6000_override_options): Set
10564         rs6000_isel conditionally to the absence of comand line override.
10565         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
10566         Remove duplicate rs6000_isel setting.
10567         * config/rs6000/eabispe.h: Ditto.
10568
10569 2008-06-11  Richard Guenther  <rguenther@suse.de>
10570
10571         * alias.c (get_alias_set): Use the element alias-set for arrays.
10572         (record_component_aliases): For arrays and vectors do nothing.
10573         * c-common.c (strict_aliasing_warning): Handle the cases
10574         of alias set zero explicitly.
10575         * Makefile.in (dfp.o-warn): Add -Wno-error.
10576
10577 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
10578
10579         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
10580         tune_32 tune_64.
10581         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
10582         tune_32 tune_64 to supported_defaults.  Allow values not
10583         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
10584         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
10585         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
10586         with_cpu_64 to generic for 64-bit-supporting configurations, not
10587         with_cpu.  Remove FIXMEs.
10588         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
10589         --with-arch-64, --with-tune-32, --with-tune-64): Document.
10590         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
10591         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
10592         arch_32 and arch_64.
10593
10594 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
10595             Olivier Hainque  <hainque@adacore.com>
10596
10597         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
10598         Use DECL_SIZE_UNIT to retrieve the size of the field.
10599
10600 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
10601
10602         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
10603         with function calls after declarations.  Lay out
10604         neon_float_type_node before further use.
10605
10606 2008-06-11  Richard Guenther  <rguenther@suse.de>
10607
10608         * tree-flow.h (may_point_to_global_var): Declare.
10609         * tree-ssa-alias.c (may_point_to_global_var): New function.
10610         * tree-ssa-sink.c (is_hidden_global_store): Use it.
10611
10612 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
10613
10614         * configure.ac: Teach that fido supports .debug_line.
10615         * configure: Regenerate.
10616
10617 2008-06-10  Tom Tromey  <tromey@redhat.com>
10618
10619         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
10620         debug hook.
10621
10622 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
10623
10624         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
10625         (encode_decimal64, decode_decimal64, encode_decimal128,
10626         decode_decimal128): Reverse order of 32-bit parts of value if host
10627         and target endianness differ.
10628
10629 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
10630
10631         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
10632         Avoid division by 0.
10633         (tree_mod_pow2_value_transform): Likewise.
10634         (tree_ic_transform): Likewise.
10635         (tree_stringops_transform): Likewise.
10636         (tree_mod_subtract_transform): Likewise.
10637         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
10638         (copy_edges_for_bb): Likewise.
10639         (initialize_cfun): Likewise.
10640
10641 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
10642
10643         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
10644         nonmemory_operand. Add "N" operand constraint.
10645         (*btsi): Ditto.
10646         (*jcc_btdi_mask_rex64): New instruction and split pattern.
10647         (*jcc_btsi_mask): Ditto.
10648         (*jcc_btsi_mask_1): Ditto.
10649
10650 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
10651
10652         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
10653         TYPE_CANONICAL for copied element type.
10654
10655 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
10656
10657         PR target/36473
10658         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
10659         Add m_CORE2 and m_GENERIC.
10660         * config/i386/predicates.md (bt_comparison_operator): New predicate.
10661         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
10662         (*btsi): Ditto.
10663         (*jcc_btdi_rex64): New instruction and split pattern.
10664         (*jcc_btsi): Ditto.
10665         (*jcc_btsi_1): Ditto.
10666         (*btsq): Fix Intel asm dialect operand order.
10667         (*btrq): Ditto.
10668         (*btcq): Ditto.
10669
10670 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
10671
10672         PR middle-end/36447
10673         * simplify-rtx.c (simplify_subreg): Add check for shift count
10674         greater than size.
10675
10676 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
10677
10678         * doc/md.texi: Synchronize with later constraints.md change.
10679         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
10680         with a C implementation.
10681         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
10682         MFLO handling.
10683         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
10684         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
10685         when moving to and from MD_REGNUM.
10686         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
10687         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
10688         Handle byte and halfword moves.
10689         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
10690         separately.
10691         * config/mips/constraints.md (h): Turn into NO_REGS.
10692         (l, x): Update documentation.
10693         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
10694         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
10695         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
10696         (HILO): New mode iterator.
10697         (MOVE128): Add TI.
10698         (any_div): New code iterator.
10699         (u): Extend code attribute to div and udiv.
10700         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
10701         d_operand in the splitters.  Remove redundant CONST_INT checks.
10702         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
10703         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
10704         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
10705         accordingly, using normal moves instead of unspecs to move LO into
10706         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
10707         (<u>mulsidi3): Handle expansion in C code.
10708         (<u>mulsidi3_32bit_internal): Rename to...
10709         (<u>mulsidi3_32bit): ...this.
10710         (<u>mulsidi3_32bit_r4000): Fix insn separator.
10711         (*<u>mulsidi3_64bit): Rename to...
10712         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
10713         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
10714         to set LO and HI to the multiplication result.  Use a normal move
10715         for MFLO and an unspec for MFHI.
10716         (*<u>mulsidi3_64bit_parts): Replace with...
10717         (<u>mulsidi3_64bit_hilo): ...this new instruction.
10718         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
10719         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
10720         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
10721         instead of HI.  Split the instruction into a separate multiplication
10722         and MFHI if !TARGET_FIX_R4000.
10723         (<su>muldi3_highpart): Likewise.
10724         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
10725         and the "=h" clobber.
10726         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
10727         (<u>mulditi3): New expander.
10728         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
10729         (madsi): Remove "=h" clobber.
10730         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
10731         Force the modulus result to be a GPR and split the instruction into
10732         a division followed by an MFHI after reload.
10733         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
10734         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
10735         the MIPS16 HIGH define_split.
10736         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
10737         of acc<->gpr moves to "multi".
10738         (*movdi_64bit): Replace the single "x" alternative with
10739         alternatives for moving into and out of "a".
10740         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
10741         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
10742         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
10743         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
10744         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
10745         (movti): New expander.
10746         (*movti, *movti_mips16): New insns.
10747         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
10748         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
10749         (mthi<GPR:mode>_<HILO:mode>): Likewise.
10750         * config/mips/predicates.md (fpr_operand): Delete.
10751         (d_operand): New predicate.
10752
10753 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
10754
10755         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
10756         failure on some Bourne shells.
10757         (x86_64-*-*): Ditto.
10758
10759 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
10760
10761         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
10762
10763 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10764
10765         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
10766         (sparc-sun-solaris2*): Likewise.
10767
10768 2008-06-09  Arnaud Charlet  <charlet@adacore.com
10769
10770         * doc/install.texi: Update requirements to build the Ada compiler.
10771
10772 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
10773
10774         * df-scan.c (struct df_scan_problem_data): Remove the
10775         mw_link_pool alloc pool.
10776         (df_scan_free_internal): Don't free it.
10777         (df_scan_alloc): Don't allocate it.
10778         * df.h (struct df_link): Update comment.
10779
10780 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
10781
10782         * except.h: Correct checks for when SJLJ exceptions must be used.
10783
10784 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10785
10786         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
10787         default.
10788
10789 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
10790
10791         PR tree-optimization/36218
10792         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
10793         configure for the build system.
10794         (BUILD_LDFLAGS): Define.
10795         * configure: Regenerate.
10796         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
10797
10798 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
10799
10800         PR target/36424
10801         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
10802         * config/avr/avr.c (avr_hard_regno_rename_ok): New function.
10803         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype.
10804
10805 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
10806
10807         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
10808
10809 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
10810
10811         * config.gcc (Obsolete configurations): Remove list of
10812         configurations.
10813         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
10814         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
10815         targets matched by those patterns.
10816         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
10817         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
10818         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
10819         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
10820         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
10821         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
10822         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
10823         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
10824         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
10825         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
10826         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
10827         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
10828         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
10829         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
10830         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
10831         Make code for Solaris 7 and greater unconditional for Solaris.
10832         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
10833         Remove --with-* handling.
10834         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
10835         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
10836         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
10837         LINK_OS_WINDISS_SPEC): Remove.
10838         * config/rs6000/sysv4.opt (mwindiss): Remove.
10839         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
10840         * configure: Regenerate.
10841         * doc/cpp.texi: Don't mention BeOS.
10842         * doc/extend.texi (interrupt): Don't mention MS1.
10843         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
10844         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
10845         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
10846         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
10847         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
10848         Remove.
10849         * doc/invoke.texi (MT Options): Remove.
10850         (-mwindiss): Remove.
10851         (CRIS Options): Remove cris-axis-aout references.
10852         (HPPA Options): Don't mention hppa1.1-*-pro.
10853         * doc/md.texi: (MorphoTech family): Remove.
10854         * libgcc2.c: Don't handle UWIN.
10855         * config/alpha/t-unicosmk: Remove.
10856         * config/alpha/unicosmk.h: Remove.
10857         * config/arm/kaos-arm.h: Remove.
10858         * config/arm/kaos-strongarm.h: Remove.
10859         * config/arm/strongarm-coff.h: Remove.
10860         * config/arm/strongarm-elf.h: Remove.
10861         * config/arm/strongarm-pe.h: Remove.
10862         * config/arm/t-strongarm-pe: Remove.
10863         * config/arm/t-xscale-coff: Remove.
10864         * config/arm/t-xscale-elf: Remove.
10865         * config/arm/xscale-coff.h: Remove.
10866         * config/arm/xscale-elf.h: Remove.
10867         * config/chorus.h: Remove.
10868         * config/cris/aout.h: Remove.
10869         * config/cris/aout.opt: Remove.
10870         * config/cris/t-aout: Remove.
10871         * config/i386/beos-elf.h: Remove.
10872         * config/i386/kaos-i386.h: Remove.
10873         * config/i386/ptx4-i.h: Remove.
10874         * config/i386/sco5.h: Remove.
10875         * config/i386/sco5.opt: Remove.
10876         * config/i386/sysv4-cpp.h: Remove.
10877         * config/i386/sysv5.h: Remove.
10878         * config/i386/t-beos: Remove.
10879         * config/i386/t-sco5: Remove.
10880         * config/i386/t-uwin: Remove.
10881         * config/i386/uwin.asm: Remove.
10882         * config/i386/uwin.h: Remove.
10883         * config/kaos.h: Remove.
10884         * config/mips/windiss.h: Remove.
10885         * config/mt: Remove directory.
10886         * config/pa/pa-osf.h: Remove.
10887         * config/pa/pa-pro-end.h: Remove.
10888         * config/pa/t-pro: Remove.
10889         * config/ptx4.h: Remove.
10890         * config/rs6000/beos.h: Remove.
10891         * config/rs6000/kaos-ppc.h: Remove.
10892         * config/rs6000/t-beos: Remove.
10893         * config/rs6000/windiss.h: Remove.
10894         * config/sh/kaos-sh.h: Remove.
10895         * config/sol2-6.h: Remove.
10896         * config/sparc/sol26-sld.h: Remove.
10897         * config/sparc/sysv4-only.h: Remove.
10898         * config/vax/bsd.h: Remove.
10899         * config/vax/t-memfuncs: Remove.
10900         * config/vax/ultrix.h: Remove.
10901         * config/vax/vaxv.h: Remove.
10902         * config/windiss.h: Remove.
10903
10904 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
10905
10906         PR rtl-optimization/36438
10907         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
10908         for vector shifts with constant scalar shift operands.
10909
10910 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
10911
10912         * doc/invoke.texi: Document -march=xlr.
10913         * config/mips/xlr.md: New file.
10914         * config/mips/mips.md: Include it.
10915         (cpu): Add "xlr".
10916         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
10917         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
10918         (mips_rtx_cost_data): Likewise.
10919
10920 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
10921
10922         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
10923         PRE_INC and PRE_DEC cases.
10924
10925 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
10926
10927         PR rtl-optimization/36419
10928         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
10929         the emitting jump insn.
10930
10931         PR target/36362
10932         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
10933         is not bool, boolify the whole *expr_p and convert to the desired type.
10934
10935 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
10936
10937         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
10938         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
10939         Add omp_private_outer_ref hook, add another argument to
10940         omp_clause_default_ctor hook.
10941         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
10942         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
10943         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
10944         hook_tree_tree_tree_tree_null.
10945         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
10946         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
10947         * hooks.c (hook_tree_tree_tree_tree_null): New function.
10948         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
10949         * tree.def (OMP_TASK): New tree code.
10950         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
10951         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
10952         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
10953         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
10954         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
10955         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
10956         OMP_CLAUSE_COLLAPSE_EXPR): Define.
10957         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
10958         (OMP_DIRECTIVE_P): Add OMP_TASK.
10959         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
10960         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
10961         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
10962         and OMP_CLAUSE_UNTIED entries.
10963         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
10964         num_ops to 2.
10965         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
10966         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
10967         * tree-pretty-print.c (dump_omp_clause): Handle
10968         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
10969         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
10970         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
10971         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
10972         warning about unsigned iterators.  Change decl/init/cond/incr
10973         arguments to TREE_VECs, check arguments for all collapsed loops.
10974         (c_finish_omp_taskwait): New function.
10975         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
10976         ws_clauses.
10977         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
10978         default_function_array_conversion on init.  Add par_clauses argument.
10979         If decl is present in parallel's lastprivate clause, change it to
10980         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
10981         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
10982         collapse count in clauses.
10983         (c_parser_omp_for, c_parser_omp_parallel): Adjust
10984         c_parser_omp_for_loop callers.
10985         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
10986         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
10987         (c_parser_omp_clause_name): Handle collapse and untied clauses.
10988         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
10989         functions.
10990         (c_parser_omp_clause_schedule): Handle schedule(auto).
10991         Include correct location in the error message.
10992         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
10993         and PRAGMA_OMP_CLAUSE_UNTIED.
10994         (OMP_TASK_CLAUSE_MASK): Define.
10995         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
10996         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
10997         * tree-nested.c (convert_nonlocal_omp_clauses,
10998         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
10999         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
11000         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
11001         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
11002         OMP_CLAUSE_DECL.
11003         (conver_nonlocal_reference, convert_local_reference,
11004         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
11005         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
11006         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
11007         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
11008         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
11009         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
11010         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
11011         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
11012         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
11013         OMP_CLAUSE_UNTIED.
11014         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
11015         * c-common.h (c_finish_omp_taskwait): New prototype.
11016         * gimple-low.c (lower_stmt): Handle OMP_TASK.
11017         * tree-parloops.c (create_parallel_loop): Create 1 entry
11018         vectors for OMP_FOR_{INIT,COND,INCR}.
11019         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
11020         (make_edges): Handle OMP_TASK.
11021         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
11022         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
11023         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
11024         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
11025         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
11026         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
11027         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
11028         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
11029         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
11030         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
11031         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
11032         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
11033         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
11034         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
11035         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
11036         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
11037         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
11038         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
11039         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
11040         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
11041         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
11042         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
11043         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
11044         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
11045         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
11046         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
11047         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
11048         original iterator is present in lastprivate clause or if
11049         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
11050         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
11051         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
11052         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
11053         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
11054         if it is set, lookup var in outer contexts too.  Handle
11055         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
11056         to be implicitly determined firstprivate for task regions.
11057         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
11058         if it is set, lookup var in outer contexts too.  Set
11059         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
11060         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
11061         OMP_CLAUSE_UNTIED.  Take region_type as last argument
11062         instead of in_parallel and in_combined_parallel.
11063         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
11064         Adjust callers.
11065         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
11066         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
11067         (new_omp_context): Set default_kind to
11068         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
11069         (omp_region_type): New enum.
11070         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
11071         fields, add region_type.
11072         (new_omp_context): Take region_type as argument instead of is_parallel
11073         and is_combined_parallel.
11074         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
11075         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
11076         ctx->is_combined_parallel checks.
11077         (gimplify_omp_task): New function.
11078         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
11079         OMP_CLAUSE_UNTIED.
11080         * omp-low.c (extract_omp_for_data): Use schedule(static)
11081         for schedule(auto).  Handle pointer and unsigned iterators.
11082         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
11083         Add loops argument.  Extract data for collapsed OMP_FOR loops.
11084         (expand_parallel_call): Assert sched_kind isn't auto,
11085         map runtime schedule to index 3.
11086         (struct omp_for_data_loop): New type.
11087         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
11088         Add loop, loops, collapse and iter_type fields.
11089         (workshare_safe_to_combine_p): Disallow combined for if
11090         iter_type is unsigned long long.  Don't combine collapse > 1 loops
11091         unless all bounds and steps are constant.  Adjust extract_omp_for_data
11092         caller.
11093         (expand_omp_for_generic): Handle pointer, unsigned and long long
11094         iterators.  Handle collapsed OMP_FOR loops.  Adjust
11095         for struct omp_for_data changes.  If libgomp function doesn't return
11096         boolean_type_node, add comparison of the return value with 0.
11097         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
11098         pointer, unsigned and long long iterators.  Adjust for struct
11099         omp_for_data changes.
11100         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
11101         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
11102         unsigned long long.  Allocate loops array, pass it to
11103         extract_omp_for_data.  For collapse > 1 loops use always
11104         expand_omp_for_generic.
11105         (omp_context): Add sfield_map and srecord_type fields.
11106         (is_task_ctx, lookup_sfield): New functions.
11107         (use_pointer_for_field): Use is_task_ctx helper.  Change first
11108         argument's type from const_tree to tree.  Clarify comment.
11109         In OMP_TASK disallow copy-in/out sharing.
11110         (build_sender_ref): Call lookup_sfield instead of lookup_field.
11111         (install_var_field): Add mask argument.  Populate both record_type
11112         and srecord_type if needed.
11113         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
11114         in srecord_type.
11115         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
11116         and DECL_FIELD_OFFSET.
11117         (scan_sharing_clauses): Adjust install_var_field callers.  For
11118         firstprivate clauses on explicit tasks allocate the var by value in
11119         record_type unconditionally, rather than by reference.
11120         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
11121         Use is_taskreg_ctx instead of is_parallel_ctx.
11122         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
11123         (create_omp_child_function_name): Add task_copy argument, use
11124         *_omp_cpyfn* names if it is true.
11125         (create_omp_child_function): Add task_copy argument, if true create
11126         *_omp_cpyfn* helper function.
11127         (scan_omp_parallel): Adjust create_omp_child_function callers.
11128         Rename parallel_nesting_level to taskreg_nesting_level.
11129         (scan_omp_task): New function.
11130         (lower_rec_input_clauses): Don't run constructors for firstprivate
11131         explicit task vars which are initialized by *_omp_cpyfn*.
11132         Pass outer var ref to omp_clause_default_ctor hook if
11133         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
11134         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
11135         OMP_CLAUSE_REDUCTION_INIT.
11136         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
11137         avoid duplicate setting of fields.  Handle
11138         OMP_CLAUSE_PRIVATE_OUTER_REF.
11139         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
11140         copy-out if TREE_READONLY, only copy-in.
11141         (expand_task_copyfn): New function.
11142         (expand_task_call): New function.
11143         (struct omp_taskcopy_context): New type.
11144         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
11145         New functions.
11146         (lower_omp_parallel): Rename to...
11147         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
11148         Call create_task_copyfn if srecord_type is needed.  Adjust
11149         sender_decl type.
11150         (task_shared_vars): New variable.
11151         (check_omp_nesting_restrictions): Warn if work-sharing,
11152         barrier, master or ordered region is closely nested inside OMP_TASK.
11153         Add warnings for barrier if closely nested inside of work-sharing,
11154         ordered, or master region.
11155         (scan_omp_1): Call check_omp_nesting_restrictions even for
11156         GOMP_barrier calls.  Rename parallel_nesting_level to
11157         taskreg_nesting_level.  Handle OMP_TASK.
11158         (lower_lastprivate_clauses): Even if some lastprivate is found on a
11159         work-sharing construct, continue looking for them on parent parallel
11160         construct.
11161         (lower_omp_for_lastprivate): Add lastprivate clauses
11162         to the beginning of dlist rather than end.  Adjust for struct
11163         omp_for_data changes.
11164         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
11165         not after it.  Handle collapsed OMP_FOR loops, adjust for
11166         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
11167         (get_ws_args_for): Adjust extract_omp_for_data caller.
11168         (scan_omp_for): Handle collapsed OMP_FOR
11169         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
11170         (lower_omp_single_simple): If libgomp function doesn't return
11171         boolean_type_node, add comparison of the return value with 0.
11172         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
11173         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
11174         (parallel_nesting_level): Rename to...
11175         (taskreg_nesting_level): ... this.
11176         (is_taskreg_ctx): New function.
11177         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
11178         of is_parallel_ctx.
11179         (execute_lower_omp): Rename parallel_nesting_level to
11180         taskreg_nesting_level.
11181         (expand_omp_parallel): Rename to...
11182         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
11183         Call omp_task_call for OMP_TASK regions.
11184         (expand_omp): Adjust caller, handle OMP_TASK.
11185         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
11186
11187         * bitmap.c (bitmap_default_obstack_depth): New variable.
11188         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
11189         if argument is NULL and bitmap_default_obstack is already initialized.
11190         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
11191         at the end.
11192         * matrix-reorg.c (matrix_reorg): Likewise.
11193
11194 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
11195
11196         * config/i386/i386.md (*indirect_jump): Macroize using P
11197         mode iterator.  Remove !TARGET_64BIT from insn constraints.
11198         (*tablejump_1): Ditto.
11199         (*indirect_jump_rex64): Remove insn pattern.
11200         (*tablejump_1_rex64): Ditto.
11201         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
11202         and eh_return_si insn patterns.
11203
11204 2008-06-06  Richard Guenther  <rguenther@suse.de>
11205
11206         * tree-ssa-structalias.c (merge_smts_into): Remove.
11207         (find_what_p_points_to): Do not bother to compute the
11208         points-to set for pt_anything pointers.
11209         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
11210         for pt_anything pointers is ok.
11211
11212 2008-06-06  Jan Hubicka  <jh@suse.cz>
11213
11214         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
11215
11216 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11217
11218         * cgraph.c: Fix typos in comments.
11219         (cgraph_availability_names): Fix string typo.
11220         * fold-const.c: Fix typos in comments.
11221         (fold_binary): Fix typo in warning.
11222         * genautomata.c: Fix typos in comments.
11223         (check_presence_pattern_sets): Fix typo in local variable.
11224         (output_description): Fix typo in output.
11225         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
11226         * hwint.h: Likewise.
11227         * matrix-reorg.c (check_allocation_function): Likewise.
11228         * omega.c (smooth_weird_equations): Likewise.
11229         * auto-inc-dec.c: Fix typos in comments.
11230         * bb-reorder.c: Likewise.
11231         * builtins.c: Likewise.
11232         * c-common.c: Likewise.
11233         * c-cppbuiltin.c: Likewise.
11234         * c-parser.c: Likewise.
11235         * c-pretty-print.c: Likewise.
11236         * cfgcleanup.c: Likewise.
11237         * cfgexpand.c: Likewise.
11238         * cfghooks.c: Likewise.
11239         * cfglayout.c: Likewise.
11240         * cfgloopmanip.c: Likewise.
11241         * cgraphunit.c: Likewise.
11242         * coverage.c: Likewise.
11243         * dbxout.c: Likewise.
11244         * df-byte-scan.c: Likewise.
11245         * df-core.c: Likewise.
11246         * df-problems.c: Likewise.
11247         * df-scan.c: Likewise.
11248         * dfp.c: Likewise.
11249         * dominance.c: Likewise.
11250         * domwalk.c: Likewise.
11251         * dse.c: Likewise.
11252         * dwarf2out.c: Likewise.
11253         * emit-rtl.c: Likewise.
11254         * et-forest.c: Likewise.
11255         * function.c: Likewise.
11256         * function.h: Likewise.
11257         * gcc.c: Likewise.
11258         * gcov-io.c: Likewise.
11259         * gcov.c: Likewise.
11260         * gcse.c: Likewise.
11261         * genattrtab.c: Likewise.
11262         * ggc-page.c: Likewise.
11263         * gimplify.c: Likewise.
11264         * gthr-lynx.h: Likewise.
11265         * haifa-sched.c: Likewise.
11266         * ipa-cp.c: Likewise.
11267         * ipa-inline.c: Likewise.
11268         * ipa-prop.h: Likewise.
11269         * ipa-pure-const.c: Likewise.
11270         * ipa-struct-reorg.c: Likewise.
11271         * ipa-struct-reorg.h: Likewise.
11272         * ipa-type-escape.c: Likewise.
11273         * ipa.c: Likewise.
11274         * loop-doloop.c: Likewise.
11275         * mips-tfile.c: Likewise.
11276         * mkmap-flat.awk: Likewise.
11277         * mkmap-symver.awk: Likewise.
11278         * modulo-sched.c: Likewise.
11279         * omp-low.c: Likewise.
11280         * optabs.c: Likewise.
11281         * optabs.h: Likewise.
11282         * opts.c: Likewise.
11283         * passes.c: Likewise.
11284         * postreload-gcse.c: Likewise.
11285         * postreload.c: Likewise.
11286         * predict.c: Likewise.
11287         * pretty-print.h: Likewise.
11288         * profile.c: Likewise.
11289         * protoize.c: Likewise.
11290         * ra-conflict.c: Likewise.
11291         * real.c: Likewise.
11292         * recog.c: Likewise.
11293         * regclass.c: Likewise.
11294         * regs.h: Likewise.
11295         * reload.c: Likewise.
11296         * rtl-error.c: Likewise.
11297         * rtlanal.c: Likewise.
11298         * scan.h: Likewise.
11299         * sched-rgn.c: Likewise.
11300         * see.c: Likewise.
11301         * stmt.c: Likewise.
11302         * target.h: Likewise.
11303         * tree-dfa.c: Likewise.
11304         * tree-eh.c: Likewise.
11305         * tree-flow-inline.h: Likewise.
11306         * tree-inline.c: Likewise.
11307         * tree-into-ssa.c: Likewise.
11308         * tree-loop-distribution.c: Likewise.
11309         * tree-nested.c: Likewise.
11310         * tree-parloops.c: Likewise.
11311         * tree-pass.h: Likewise.
11312         * tree-pretty-print.c: Likewise.
11313         * tree-profile.c: Likewise.
11314         * tree-scalar-evolution.c: Likewise.
11315         * tree-sra.c: Likewise.
11316         * tree-ssa-alias-warnings.c: Likewise.
11317         * tree-ssa-ccp.c: Likewise.
11318         * tree-ssa-coalesce.c: Likewise.
11319         * tree-ssa-dom.c: Likewise.
11320         * tree-ssa-dse.c: Likewise.
11321         * tree-ssa-forwprop.c: Likewise.
11322         * tree-ssa-live.c: Likewise.
11323         * tree-ssa-live.h: Likewise.
11324         * tree-ssa-loop-im.c: Likewise.
11325         * tree-ssa-loop-ivopts.c: Likewise.
11326         * tree-ssa-loop-niter.c: Likewise.
11327         * tree-ssa-loop-prefetch.c: Likewise.
11328         * tree-ssa-phiopt.c: Likewise.
11329         * tree-ssa-phiprop.c: Likewise.
11330         * tree-ssa-sccvn.c: Likewise.
11331         * tree-ssa-ter.c: Likewise.
11332         * tree-ssa-threadupdate.c: Likewise.
11333         * tree-ssa.c: Likewise.
11334         * tree-vect-analyze.c: Likewise.
11335         * tree-vect-transform.c: Likewise.
11336         * tree-vectorizer.c: Likewise.
11337         * tree-vn.c: Likewise.
11338         * tree-vrp.c: Likewise.
11339         * tree.c: Likewise.
11340         * tree.def: Likewise.
11341         * tree.h: Likewise.
11342         * unwind-dw2-fde.c: Likewise.
11343         * unwind.inc: Likewise.
11344         * value-prof.c: Likewise.
11345         * vmsdbgout.c: Likewise.
11346
11347 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
11348
11349         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
11350         always place FP constants in the TOC for TARGET_POWERPC64.
11351         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
11352
11353 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
11354
11355         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
11356         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
11357         enable for TARGET_E500_DOUBLE.
11358         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
11359         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
11360         floating-point modes like integer modes for E500 double.
11361         (rs6000_legitimate_offset_address_p): Likewise.
11362         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
11363         addressing for DDmode for E500 double.
11364         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
11365         modes as using 64-bits of registers for E500 double.
11366         (spe_build_register_parallel): Do not handle DDmode or TDmode.
11367         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
11368         specially for E500 double.
11369         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
11370         TDmode for E500 double.
11371         (rs6000_gimplify_va_arg): Only handle SDmode in registers
11372         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
11373         (rs6000_split_multireg_move): Do not handle TDmode specially for
11374         E500 double.
11375         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
11376         using 64-bit registers for E500 double.
11377         (emit_frame_save): Do not handle DDmode specially for E500 double.
11378         (gen_frame_mem_offset): Likewise.
11379         (rs6000_function_value): Do not call spe_build_register_parallel
11380         for DDmode or TDmode.
11381         (rs6000_libcall_value): Likewise.
11382         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
11383         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
11384         for E500 double.
11385
11386 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
11387
11388         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
11389         in comments.
11390
11391 2008-06-04  Junjie Gu <jgu@tensilica.com>
11392
11393         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
11394         comparison for frame pointers.
11395
11396 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
11397
11398         PR target/27386
11399         * config/avr/avr.h (PUSH_ROUNDING): Remove.
11400
11401 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
11402
11403         PR target/30243
11404         * builtins.c (expand_builtin_signbit): Don't take lowpart when
11405         register is already smaller or equal to required mode.
11406
11407 2008-06-04  Xinliang David Li  <davidxl@google.com>
11408
11409         * tree-call-cdce.c: New file.
11410         (cond_dead_built_in_calls): New static variable.
11411         (input_domain): New struct.
11412         (check_pow): New function.
11413         (check_builtin_call): Ditto.
11414         (check_target_format): Ditto.
11415         (is_call_dce_candidate): Ditto.
11416         (gen_one_condition): Ditto.
11417         (gen_conditions_for_domain): Ditto.
11418         (get_domain): Ditto.
11419         (gen_conditions_for_pow_cst_base): Ditto.
11420         (gen_conditions_for_pow_int_base): Ditto.
11421         (gen_conditions_for_pow): Ditto.
11422         (get_no_error_domain): Ditto.
11423         (gen_shrink_wrap_conditions): Ditto.
11424         (shrink_wrap_one_built_in_call): Ditto.
11425         (shink_wrap_conditional_dead_built_in_calls): Ditto.
11426         (tree_call_cdce): Ditto.
11427         (gate_call_cdce): Ditto.
11428         (pass_call_cdce): New gimple pass.
11429         * passes.c: (init_optimization_passes): New pass.
11430         * tree-pass.h: New pass declaration.
11431         * opts.c (decode_options): New flag setting.
11432         * common.opt: Add -ftree-builtin-call-dce flag.
11433         * Makefile.in: Add new source file.
11434         * tempvar.def: New tv_id.
11435         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
11436
11437 2008-06-04  Richard Guenther  <rguenther@suse.de>
11438
11439         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
11440         (is_call_clobbered): Always check var_ann->call_clobbered.
11441         (mark_call_clobbered): Always set var_ann->call_clobbered.
11442         (clear_call_clobbered): Always clear var_ann->call_clobbered.
11443         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
11444         (reset_alias_info): Clear call clobbering info on MTAGs and
11445         globals as well.
11446         (set_pt_anything): Set pt_global_mem.
11447         (create_tag_raw): Adjust comment.
11448         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
11449
11450 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
11451             Maxim Kuvyrkov  <maxim@codesourcery.com>
11452
11453         * config/m68k/m68k.opt (mxgot): New option.
11454         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
11455         (m68k_output_addr_const_extra): New.
11456         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
11457         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
11458         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
11459         * doc/invoke.texi (M680x0 Options): Document -mxgot.
11460
11461 2008-06-04  Richard Guenther  <rguenther@suse.de>
11462
11463         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
11464         negative or non-representable offsets.
11465
11466 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
11467
11468         * config/i386/i386.c (ix86_gen_leave): New.
11469         (ix86_gen_pop1): Likewise.
11470         (ix86_gen_add3): Likewise.
11471         (ix86_gen_sub3): Likewise.
11472         (ix86_gen_sub3_carry): Likewise.
11473         (ix86_gen_one_cmpl2): Likewise.
11474         (ix86_gen_monitor): Likewise.
11475         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
11476         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
11477         ix86_gen_one_cmpl2 and ix86_gen_monitor.
11478         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
11479         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
11480         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
11481         (ix86_expand_epilogue): Updated.
11482         (print_operand): Handle integer register operand for 'z'.
11483         (ix86_expand_strlensi_unroll_1): Likewise.
11484         (ix86_expand_strlen): Likewise.
11485         (ix86_expand_builtin): Likewise.
11486         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
11487         mov{q}/mov{l} and add{q}/add{l}.
11488
11489 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11490
11491         * config/i386/i386.md (P): New mode iterator.
11492         (SFmode push_operand splitter): Macroize DImode and SImode pushes
11493         using P mode iterator.
11494         (DFmode push_operand splitter): Ditto.
11495         (XFmode push_operand splitter): Ditto.
11496         (DFmode float_extend SFmode push_operand splitter): Ditto.
11497         (XFmode float_extend SFmode push_operand splitter): Do not generate
11498         SImode pushes for 64bit target.  Macroize Dimode and SImode
11499         pushes using P mode iterator.
11500         (XFmode float_extend DFmode push_operand splitter): Ditto.
11501
11502 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11503
11504         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
11505         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
11506         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
11507         return type to int.
11508         (ix86_call_abi_override): Remove check for call_used_regs.
11509
11510 2008-06-03  Richard Guenther  <rguenther@suse.de>
11511
11512         * tree-ssa-structalias.c (find_func_aliases): Add constraints
11513         for the lhs of calls if the return type contains pointers.
11514
11515 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
11516
11517         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
11518         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
11519         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
11520         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
11521         of cfun and DEFAULT_ABI to deceide abi mode.
11522         (DEFAULT_ABI): New.
11523         (REG_PARM_STACK_SPACE): Removed.
11524         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
11525         (STACK_BOUNDARY): Use default target to deceide stack boundary.
11526         * config/i386/i386-protos.h (ix86_cfun_abi): New.
11527         (ix86_function_abi): Likewise.
11528         (ix86_function_type_abi): Likewise.
11529         (ix86_call_abi_override): Likewise.
11530         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
11531         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
11532         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
11533         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
11534         specific defines.
11535         (X86_64_REGPARM_MAX): New.
11536         (X86_64_SSE_REGPARM_MAX): New.
11537         (X64_REGPARM_MAX): New.
11538         (X64_SSE_REGPARM_MAX): New.
11539         (X86_32_REGPARM_MAX): New.
11540         (X86_32_SSE_REGPARM_MAX): New.
11541         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
11542         (ix86_function_regparm): Handle user calling abi.
11543         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
11544         by DEFAULT_ABI versus SYSV_ABI check.
11545         (ix86_reg_parm_stack_space): New.
11546         (ix86_function_type_abi): New.
11547         (ix86_call_abi_override): New.
11548         (ix86_function_abi): New.
11549         (ix86_cfun_abi): New.
11550         (init_cumulative_args): Call abi specific initialization.
11551         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
11552         (function_arg_64): Extend SSE_REGPARM_MAX check.
11553         (function_arg (): Remove TARGET_64BIT_MS_ABI.
11554         (ix86_pass_by_reference): Likewise.
11555         (ix86_function_value_regno_p): Likewise.
11556         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
11557         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
11558         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
11559         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
11560         (setup_incoming_varargs_64): Adjust regparm for call abi.
11561         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
11562         (ix86_va_start): Likewise.
11563         (ix86_gimplify_va_arg): Likewise.
11564         (ix86_expand_prologue): Likewise.
11565         (output_pic_addr_const): Likewise.
11566         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
11567         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
11568         (x86_output_mi_thunk): Likewise.
11569         (x86_function_profiler): Likewise.
11570         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
11571         (SYSV_ABI, MS_ABI): New constants.
11572         (DEFAULT_ABI): New.
11573         (init_regs): Add prototype of function in regclass.c file.
11574         (OVERRIDE_ABI_FORMAT): New.
11575         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
11576         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
11577         (OUTGOING_REG_PARM_STACK_SPACE): New.
11578         (ix86_reg_parm_stack_space): New prototype.
11579         (CUMULATIVE_ARGS): Add call_abi member.
11580         (machine_function): Add call_abi member.
11581         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
11582         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
11583
11584 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com>
11585
11586         PR target/34879
11587         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
11588         (avr_builtin_setjmp_frame_value): New function.
11589         * config/avr/avr.md (nonlocal_goto_receiver): Define.
11590         (nonlocal_goto): Define.
11591
11592 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
11593
11594         * config/mips/mips.c (mips_emit_loadgp): Return early if
11595         there is nothing do to, otherwise emit a blockage if
11596         !TARGET_EXPLICIT_RELOCS || crtl->profile.
11597         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
11598
11599 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11600
11601         * configure.ac: Drop unneeded backslash ending up in config.in.
11602         * acinclude.m4: Likewise.
11603         * config.in: Regenerate.
11604
11605 2008-05-26  Jan Hubicka  <jh@suse.cz>
11606
11607         * predict.c (maybe_hot_frequency_p): Break out of...
11608         (maybe_hot_bb_p): ... here.
11609         (maybe_hot_edge_p): New.
11610         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
11611         * basic-block.h (maybe_hot_edge_p): Declare.
11612
11613 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
11614
11615         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
11616         (*cmpfp_<mode>_cc): Ditto.
11617         (*fp_jcc_8<mode>_387): Ditto.
11618         (*fop_<MODEF:mode>_2_i387): Ditto.
11619         (*fop_<MODEF:mode>_3_i387): Ditto.
11620         (*fop_xf_2_i387): Ditto.
11621         (*fop_xf_3_i387): Ditto.
11622
11623 2008-06-02  Tomas Bily  <tbily@suse.cz>
11624
11625         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
11626
11627 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11628
11629         * config/mips/mips.c (mips_valid_offset_p): New function.
11630         (mips_valid_lo_sum_p): Likewise.
11631         (mips_classify_address): Use them.
11632         (mips_force_address): New function.
11633         (mips_legitimize_address): Use it.
11634         * config/mips/mips.md (MOVE128): New mode iterator.
11635         (movtf): Require TARGET_64BIT.  Remove empty strings.
11636         (*movtf_internal): Rename to...
11637         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
11638         of "R" and use {,fp}{load,store} attributes instead of "multi".
11639         Use a separate define_split.
11640         (*movtf_mips16): New pattern.
11641
11642 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11643
11644         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
11645         * config/mips/mips.c (mips_expand_before_return): New function.
11646         (mips_expand_epilogue): Call it.
11647         * config/mips/mips.md (return): Turn into a define_expand.
11648         (*return): New insn.
11649
11650 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11651
11652         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
11653         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
11654         functions.  Do not emit uses and clobbers of CONCATs; individually
11655         use and clobber their operands.
11656         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
11657         gen_clobber, emit_use and gen_use.
11658         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
11659         (expand_builtin_return): Likewise.
11660         * cfgbuild.c (count_basic_blocks): Likewise.
11661         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
11662         * explow.c (emit_stack_restore): Likewise.
11663         * expmed.c (extract_bit_field_1): Likewise.
11664         * expr.c (convert_move, emit_move_complex_parts): Likewise.
11665         (emit_move_multi_word, store_constructor): Likewise.
11666         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
11667         (thread_prologue_and_epilogue_insns): Likewise.
11668         * lower-subreg.c (resolve_simple_move): Likewise.
11669         * optabs.c (widen_operand, expand_binop): Likewise.
11670         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
11671         * reload.c (find_reloads): Likewise.
11672         * reload1.c (eliminate_regs_in_insn): Likewise.
11673         * stmt.c (expand_nl_goto_receiver): Likewise.
11674         * config/alpha/alpha.md (builtin_longjmp): Likewise.
11675         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
11676         * config/arm/arm.c (arm_load_pic_register): Likewise.
11677         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
11678         * config/arm/arm.md (untyped_return): Likewise.
11679         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
11680         * config/avr/avr.c (expand_prologue): Likewise.
11681         * config/bfin/bfin.c (do_unlink): Likewise.
11682         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
11683         * config/cris/cris.c (cris_expand_prologue): Likewise.
11684         * config/darwin.c (machopic_indirect_data_reference): Likewise.
11685         (machopic_legitimize_pic_address): Likewise.
11686         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
11687         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
11688         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
11689         (ix86_expand_convert_uns_didf_sse): Likewise.
11690         (ix86_expand_vector_init_general): Likewise.
11691         * config/ia64/ia64.md (eh_epilogue): Likewise.
11692         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
11693         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
11694         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
11695         (config/iq2000/iq2000.c): Likewise.
11696         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
11697         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
11698         (builtin_longjmp): Likewise.
11699         * config/mn10300/mn10300.md (call, call_value): Likewise.
11700         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
11701         * config/pdp11/pdp11.md (abshi2): Likewise.
11702         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
11703         * config/s390/s390.c (s390_emit_prologue): Likewise.
11704         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
11705         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
11706         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
11707         * config/sh/sh.c (prepare_move_operands): Likewise.
11708         (output_stack_adjust, sh_expand_epilogue): Likewise.
11709         (sh_set_return_address, sh_expand_t_scc): Likewise.
11710         * config/sparc/sparc.c (load_pic_register): Likewise.
11711         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
11712         * config/spu/spu.c (spu_expand_epilogue): Likewise.
11713         * config/v850/v850.c (expand_epilogue): Likewise.
11714
11715 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
11716
11717         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
11718         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
11719         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
11720         * config/avr/avr.c (expand_prologue, expand_epilogue): Use
11721         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the
11722         stack pointer register.
11723         (output_movhi): Remove code for interrupt specific writing to the
11724         stack pointer register.
11725
11726 2008-05-31  Richard Guenther  <rguenther@suse.de>
11727
11728         PR tree-optimization/34244
11729         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
11730         (tree_expr_nonzero_warnv_p): Likewise.
11731         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
11732         ssa_name_nonnegative_p.
11733         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
11734         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
11735         not tree_expr_nonzero_warnv_p.
11736
11737         PR tree-optimization/36262
11738         Revert
11739         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
11740
11741         PR tree-optimization/34244
11742         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
11743         (record_numbers_of_iterations): New function.
11744         (execute_vrp): Cache the numbers of iterations of loops.
11745         * tree-scalar-evolution.c (scev_reset_except_niters):
11746         New function.
11747         (scev_reset): Use scev_reset_except_niters.
11748         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
11749
11750 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
11751
11752         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
11753         __WORKAROUND_RETS when appropriate.
11754
11755 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
11756
11757         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
11758         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
11759         mode iterator.
11760         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
11761         *fop_df_comm_sse insn patterns using MODEF mode iterator.
11762         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
11763         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
11764         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
11765         *fop_df_1_mixed insn patterns using MODEF mode iterator.
11766         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
11767         *fop_df_1_sse insn patterns using MODEF mode iterator.
11768         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
11769         *fop_df_1_i387 insn patterns using MODEF mode iterator.
11770         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
11771         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
11772         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
11773         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
11774         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
11775         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
11776         (*fop_xf_4_i387): Use <MODE> for mode attribute.
11777         (*fop_xf_5_i387): Ditto.
11778         (*fop_xf_6_i387): Ditto.
11779
11780 2008-05-30  Richard Guenther  <rguenther@suse.de>
11781
11782         * builtins.c (build_string_literal): Avoid generating
11783         a non-gimple_val result.
11784
11785 2008-05-30  DJ Delorie  <dj@redhat.com>
11786
11787         * exec-tool.in: Use an environment variable (private) instead of a
11788         file (shared) as a semaphore, so as to not break parallel builds.
11789
11790 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
11791
11792         * optabs.c (maybe_encapsulate_block): Remove.
11793         (emit_libcall_block): Adjust accordingly.
11794         * optabs.h (maybe_encapsulate_block): Remove prototype.
11795
11796         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
11797         Don't use maybe_encapsulate_block.
11798
11799 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
11800
11801         * config/rs6000/rs6000.c (rs6000_legitimize_address,
11802         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
11803         rtx is a SYMBOL_REF before calling get_pool_constant.
11804
11805 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
11806
11807         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
11808
11809 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
11810
11811         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
11812         rather than OS names to choose INO_T_EQ definition.
11813         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
11814         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
11815
11816 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
11817
11818         PR target/36348
11819         * config/darwin-f.c: New.
11820         * config/t-darwin: Added rule to build darwin-f.o.
11821         * config.gcc: Defined new variable, fortran_target_objs.
11822         (*-*-darwin*): Set fortran_target_objs.
11823         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
11824         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
11825         * configure: Regenerated.
11826
11827 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
11828
11829         PR target/35771
11830         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
11831         canonical type if needed.
11832
11833 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
11834
11835         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
11836
11837 2008-05-29  Richard Guenther  <rguenther@suse.de>
11838
11839         PR tree-optimization/36343
11840         PR tree-optimization/36346
11841         PR tree-optimization/36347
11842         * tree-flow.h (clobber_what_p_points_to): Declare.
11843         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
11844         pointed-to variable is dereferenced is irrelevant to whether
11845         the pointer can access the pointed-to variable.
11846         (clobber_what_p_points_to): New function.
11847         * tree-ssa-alias.c (set_initial_properties): Use it.
11848         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
11849         call clobber check for NMTs.
11850
11851 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
11852
11853         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
11854         for printing gcov_type.
11855
11856 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
11857
11858         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
11859         and the eh region information.
11860         * value-prof.c (gimple_move_stmt_histograms): New function.
11861         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
11862
11863 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
11864
11865         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
11866
11867 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
11868
11869         * value-prof.c (tree_ic_transform): Print counts.
11870         * tree-profile.c (tree_gen_ic_func_profiler):
11871         Clear __gcov_indreict_call_callee variable to avoid misattribution
11872         of the profile.
11873
11874 2008-05-28  Rafael Espíndola  <espindola@google.com>
11875
11876         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
11877         invalid sharing.
11878
11879 2008-05-28  Richard Guenther  <rguenther@suse.de>
11880
11881         PR tree-optimization/36339
11882         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
11883         and clobbering code out of the loop.
11884
11885 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11886
11887         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
11888         letters defined.
11889
11890         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
11891         s390_contiguous_bitmask_p, s390_symref_operand_p,
11892         s390_check_symref_alignment, s390_reload_larl_operand,
11893         s390_reload_symref_address): New functions.
11894         (s390_branch_condition_mnemonic): Support compare and branch
11895         instructions.
11896         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
11897         and 'W' constraints.
11898         (s390_secondary_reload): Add secondary reloads for unaligned
11899         symbol refs or symbol refs to floating point or QI/TI mode
11900         integer values.
11901         (legitimate_address_p): Accept symbol references as addresses.
11902         (s390_expand_insv): Use rotate and insert selected bits
11903         instruction for insv when building for z10.
11904         (print_operand_address): Handle symbol ref addresses.
11905         (print_operand): Output modifier 'c' added for signed byte values.
11906         (s390_encode_section_info): Mark symbol refs with
11907         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
11908
11909         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
11910         (length attribute): RRF, RRR have 4 byte length.
11911         (FPALL, INTALL): New mode iterators added.
11912         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
11913         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
11914         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
11915         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
11916         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
11917         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
11918         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
11919         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
11920         instructions.
11921         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
11922         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
11923         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
11924         reload<INTALL:mode><P:mode>_toreg_z10,
11925         reload<FPALL:mode><P:mode>_tomem_z10,
11926         reload<FPALL:mode><P:mode>_toreg_z10,
11927         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
11928         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
11929         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
11930         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
11931         definition.
11932         (movmem, clrmem, cmpmem): New splitters added.
11933
11934         * config/s390/predicates.md (larl_operand): Use
11935         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
11936         SYMBOL_REF_ALIGN1_P.
11937         (s390_signed_integer_comparison,
11938         s390_unsigned_integer_comparison): New predicates.
11939
11940         * config/s390/s390-protos.h (s390_check_symref_alignment,
11941         s390_contiguous_bitmask_p, s390_reload_larl_operand,
11942         s390_reload_symref_address,
11943         s390_compare_and_branch_condition_mask): Prototypes added.
11944
11945         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
11946         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
11947         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
11948
11949 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11950
11951         * config/s390/s390.c (z10_cost): New cost function for z10.
11952         (s390_handle_arch_option, override_options): Support -march=z10 switch.
11953         (s390_issue_rate): Adjust issue rate for z10.
11954         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
11955         (processor_flags): Add PF_Z10.
11956         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
11957         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
11958         * gcc/config.gcc: Add z10.
11959
11960 2008-05-28  Richard Guenther  <rguenther@suse.de>
11961
11962         PR tree-optimization/36291
11963         * tree-flow. h (struct gimple_df): Remove var_anns member.
11964         * tree-flow-inline.h (gimple_var_anns): Remove.
11965         (var_ann): Simplify.
11966         * tree-dfa.c (create_var_ann): Simplify.
11967         (remove_referenced_var): Clear alias info from var_anns of globals.
11968         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
11969         (delete_tree_ssa): Clear alias info from var_anns of globals.
11970         Do not free var_anns.
11971         (var_ann_eq): Remove.
11972         (var_ann_hash): Likewise.
11973
11974 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
11975
11976         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
11977         and loongson2f entries.
11978         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
11979         * config/mips/mips.h (processor_type): Add Loongson-2E
11980         and Loongson-2F entries.
11981         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
11982         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
11983         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
11984         * doc/invoke.texi (MIPS Options): Document loongson2e
11985         and loongson2f processor names.
11986
11987 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
11988
11989         PR target/35767
11990         PR target/35771
11991         * config/i386/i386.c (ix86_function_arg_boundary): Use
11992         alignment of canonical type.
11993         (ix86_expand_vector_move): Check unaligned memory access for
11994         all SSE modes.
11995
11996 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
11997
11998         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
11999         Moved to the front of file.
12000
12001 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
12002             H.J. Lu  <hongjiu.lu@intel.com>
12003
12004         * dwarf2out.c (current_fde): New.
12005         (add_cfi): Use it.
12006         (lookup_cfa:): Likewise.
12007         (dwarf2out_end_epilogue): Likewise.
12008         (dwarf2out_note_section_used): Likewise.
12009
12010 2008-05-27  Michael Matz  <matz@suse.de>
12011
12012         PR c++/27975
12013         * c.opt (Wenum-compare): New warning option.
12014         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
12015
12016 2008-05-27  Michael Matz  <matz@suse.de>
12017
12018         PR middle-end/36326
12019         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
12020         non-BLKmode types.
12021         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
12022         into memory as tail calls.
12023
12024 2008-05-27  Richard Guenther  <rguenther@suse.de>
12025
12026         PR tree-optimization/36339
12027         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
12028         pointers cause all addressable variables to be call clobbered.
12029
12030 2008-05-27  Richard Guenther  <rguenther@suse.de>
12031
12032         PR tree-optimization/36245
12033         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
12034
12035 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
12036
12037         * config/s390/s390.md: Replace all occurences of the 'm'
12038         constraint with 'RT'.
12039
12040 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
12041
12042         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
12043         definitions added.
12044         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
12045         "*movdi_64".
12046         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
12047         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
12048         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
12049
12050 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
12051
12052         * reload.c: (find_reloads): Skip alternatives according to the
12053         "enabled" attribute. Constify the constraint variable.
12054         * recog.c (get_attr_enabled): Add default implementation.
12055         (extract_insn): Set the alternative_enabled_p array
12056         in the recog_data struct.
12057         (preprocess_constraints, constrain_operands): Skip
12058         alternatives according to the "enabled" attribute
12059         * recog.h (struct recog_data): New field alternative_enabled_p.
12060         (skip_alternative): New inline function.
12061         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
12062         (record_reg_classes): Skip alternative according to the
12063         "enabled" attribute.
12064
12065         * doc/md.texi: Add documention for the "enabled" attribute.
12066
12067 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
12068
12069         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
12070         * postreload.c (reload_cse_simplify_operands): Replace 'm'
12071         constraint with TARGET_MEM_CONSTRAINT.
12072         * recog.c (asm_operand_ok, preprocess_constraints,
12073         constrain_operands): Likewise.
12074         * regclass.c (record_reg_classes): Likewise.
12075         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
12076         * reload1.c (maybe_fix_stack_asms): Likewise.
12077         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
12078         * recog.h: Adjust comment.
12079         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
12080         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
12081         * doc/md.texi: Add a note to description of 'm' constraint.
12082         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
12083
12084 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
12085
12086         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
12087         that the bitfield is of integral type before testing its precision.
12088
12089 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
12090             Sa Liu  <saliu@de.ibm.com>
12091
12092         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3,
12093         __modti3, __udivti3, __umodti3 and __udivmodti4.
12094         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
12095         that implement TImode mul and div functions.
12096         * config/spu/multi3.c: New. Implement __multi3.
12097         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
12098         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
12099         functions on SPU.
12100
12101 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
12102
12103         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
12104         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
12105         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
12106         tls_sysv_suffix): New mode and mode attribute iterators.
12107         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
12108         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
12109         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
12110         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
12111         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
12112         iterators.
12113
12114 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
12115
12116         PR tree-optimization/36329
12117         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
12118         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
12119         * cgraphbuild.c (initialize_inline_failed): Use the latter
12120         macro in lieu of the former.
12121         * ipa-inline.c (cgraph_mark_inline): Likewise.
12122         (cgraph_decide_inlining_of_small_function): Likewise.
12123         (cgraph_decide_inlining): Likewise.
12124         (cgraph_decide_inlining_incrementally): Likewise.
12125
12126 2008-05-26  Tristan Gingold  <gingold@adacore.com>
12127             Anatoly Sokolov  <aesok@post.ru>
12128
12129         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
12130         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
12131         * config/avr/avr.c (expand_prologue): Tune "call_prologue"
12132         optimization for 'avr6' architecture.
12133
12134 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
12135
12136         PR target/34932
12137         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
12138
12139 2008-05-26  Richard Guenther  <rguenther@suse.de>
12140
12141         * tree-ssa-sccvn.c (expr_has_constants): Declare.
12142         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
12143
12144 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
12145
12146         PR middle-end/36253
12147         * caller-save.c (insert_restore): Verify alignment of spill space.
12148         (insert_save): Likewise.
12149         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
12150         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
12151         (STACK_SLOT_ALIGNMENT): Likewise.
12152         * function.c (LOCAL_ALIGNMENT): Removed.
12153         (get_stack_local_alignment): New.
12154         (assign_stack_local): Use it.  Set alignment on stack slot.
12155         (assign_stack_temp_for_type): Use get_stack_local_alignment.
12156         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
12157         (STACK_SLOT_ALIGNMENT): New.
12158         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
12159         stack slot in XFmode.
12160
12161         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
12162
12163 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
12164
12165         PR/36321
12166         * config/i386/i386.md (allocate_stack_worker_64): Make sure
12167         argument operand in rax isn't removed.
12168
12169 2008-05-26  Richard Guenther  <rguenther@suse.de>
12170
12171         PR middle-end/36300
12172         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
12173         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
12174
12175 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12176
12177         PR bootstrap/36331
12178         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
12179
12180 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
12181
12182         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
12183         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
12184
12185 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12186
12187         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
12188         build a trampoline if we don't want one.
12189         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
12190         return zero for nested functions if we don't want a trampoline.
12191
12192 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12193
12194         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
12195
12196 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
12197
12198         PR fortran/18428
12199         * c.opt: Removed undocumented option '-lang-fortran'.
12200         * c-common.h: Removed global variable 'lang_fortran'.
12201         * c-opts.c (c_common_handle_option): Removed code to handle
12202         option '-lang-fortran'. Updated includes.
12203         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
12204         definition of '__GFORTRAN__'.
12205         (define__GNUC__): Reimplemented to use BASEVER and
12206         cpp_define_formatted.
12207         (builtin_define_with_value_n): Removed.
12208         * c-incpath.h: Renamed to ...
12209         * incpath.h: ... this.
12210         * c-incpath.c: Renamed to ...
12211         * incpath.c: ... this. Updated includes.
12212         * fix-header.c: Updated includes.
12213         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
12214         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
12215         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
12216
12217 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12218
12219         * tree.h: Update the table of flags used on tree nodes.
12220         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
12221         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
12222         (FORCED_LABEL): Add access check.
12223         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
12224         (ASM_INPUT_P): Likewise.
12225         (ASM_VOLATILE_P): Likewise.
12226         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
12227         (OMP_SECTION_LAST): Access private_flag directly.
12228         (OMP_RETURN_NOWAIT): Likewise.
12229         (OMP_PARALLEL_COMBINED): Likewise.
12230         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
12231         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
12232         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
12233         deprecated_flag directly.
12234
12235 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12236
12237         * final.c (frame_pointer_needed): Removed.
12238         * flags.h (frame_pointer_needed): Likewise.
12239
12240         * function.h (rtl_data): Add frame_pointer_needed.
12241         (frame_pointer_needed): New.
12242
12243 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
12244
12245         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
12246
12247 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
12248
12249         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
12250         SRC is a REG.
12251
12252 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
12253
12254         * c-common.c (strip_array_types): Move function to..
12255         * tree.c: ..here.
12256         (get_inner_array_type): Delete.
12257         * c-common.h (strip_array_types): Move declaration to..
12258         * tree.h: ..here.
12259         (get_inner_array_type): Delete.
12260         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
12261         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
12262         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12263         * config/pa/pa.c (emit_move_sequence): Likewise.
12264
12265 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12266
12267         * config/i386/i386.md (*sse_prologue_save_insn): Set length
12268         attribute to 34.
12269
12270 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
12271
12272         * function.c: Include target hook for nonlocal_goto frame value.
12273
12274 2008-05-24  Richard Guenther  <rguenther@suse.de>
12275
12276         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
12277         variable can be only accessed through a pointer or a union.
12278
12279 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12280
12281         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
12282         * doc/extend.texi: Likewise.
12283
12284 2008-05-23  DJ Delorie  <dj@redhat.com>
12285
12286         * config/m32c/jump.md (untyped_call): Add.
12287
12288         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
12289         for A24 to PSImode.
12290         (m32c_address_cost): Detail costs for indirect offsets.
12291
12292 2008-05-23  Rafael Espíndola  <espindola@google.com>
12293
12294         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
12295         if a node is a SUBREG.
12296         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
12297         is a SUBREG.
12298
12299 2008-05-23  Paul Brook  <paul@codesourcery.com>
12300             Carlos O'Donell  <carlos@codesourcery.com>
12301
12302         * doc/extend.texi: Clarify use of __attribute__((naked)).
12303         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
12304         * target.h (gcc_target): Add allocate_stack_slots_for_args.
12305         * function.c (use_register_for_decl): Use
12306         targetm.calls.allocate_stack_slots_for_args.
12307         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
12308         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
12309         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
12310
12311 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
12312
12313         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
12314
12315 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
12316
12317         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
12318         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
12319         is only rounded once.
12320
12321 2008-05-23  Richard Guenther  <rguenther@suse.de>
12322
12323         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
12324
12325 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
12326             Jakub Jelinek  <jakub@redhat.com>
12327
12328         PR target/36079
12329         * configure.ac: Handle --enable-cld.
12330         * configure: Regenerated.
12331         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
12332         * config/i386/i386.h (struct machine_function): Add needs_cld field.
12333         (ix86_current_function_needs_cld): New define.
12334         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
12335         (cld): New isns pattern.
12336         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
12337         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
12338         * config/i386/i386.opt (mcld): New option.
12339         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
12340         TARGET_CLD and ix86_current_function_needs_cld.
12341         (override_options): Use -mcld by default for 32-bit code if
12342         USE_IX86_CLD.
12343
12344         * doc/install.texi (Options specification): Document --enable-cld.
12345         * doc/invoke.texi (Machine Dependent Options)
12346         [i386 and x86-64 Options]: Add -mcld option.
12347         (Intel 386 and AMD x86-64 Options): Document -mcld option.
12348
12349 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
12350         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
12351         (return_in_memory_64): Likewise.
12352         (return_in_memory_ms_64): Likewise.
12353
12354 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12355
12356         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
12357         * builtins.c (fold_builtin_fpclassify): New.
12358         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
12359         * builtins.def (BUILT_IN_FPCLASSIFY): New.
12360         * c-common.c (handle_type_generic_attribute): Adjust to accept
12361         fixed arguments before an elipsis.
12362         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
12363         * doc/extend.texi: Document __builtin_fpclassify.
12364
12365 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
12366
12367         * omp-low.c (gate_expand_omp_ssa): Remove.
12368         (pass_expand_omp_ssa): Remove.
12369         (gate_expand_omp): Do not check for flag_openmp_ssa.
12370         * common.opt (-fopenmp-ssa): Remove.
12371         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
12372
12373 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
12374
12375         * config/sh/sh.opt (mfixed-range): New option.
12376         * config/sh/sh-protos.h (sh_fix_range): Declare.
12377         * config/sh/sh.c (sh_fix_range): New function.
12378         * config/sh/sh.h (sh_fixed_range_str): Declare.
12379         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
12380         is not empty.
12381         * doc/invoke.texi (SH Options): Document -mfixed-range.
12382
12383 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
12384
12385         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
12386         it before the redeclaration.
12387
12388 2008-05-22  Anatoly Sokolov <aesok@post.ru>
12389
12390         * config/avr/avr.c (get_sequence_length): Add new function.
12391         (expand_prologue, expand_epilogue): Remove duplicate code.
12392
12393 2008-05-22  Rafael Espíndola  <espindola@google.com>
12394
12395         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
12396         sharing.
12397
12398 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
12399
12400         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
12401         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
12402
12403         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
12404         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
12405         (vect_update_misalignment_for_peel): Likewise.
12406         (vector_alignment_reachable_p): Likewise.
12407         * tree-vect-transform.c (vectorizable_load): Likewise.
12408         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
12409         (get_vectype_for_scalar_type): Pass mode of scalar_type
12410         to UNITS_PER_SIMD_WORD.
12411
12412         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
12413         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
12414         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
12415         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
12416         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
12417
12418 2008-05-22  Ira Rosen  <irar@il.ibm.com>
12419
12420         PR tree-optimization/36293
12421         * tree-vect-transform.c (vect_transform_strided_load): Don't check
12422         if the first load must be skipped because of a gap.
12423
12424 2008-05-22  Richard Guenther  <rguenther@suse.de>
12425
12426         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
12427         more cases of offset disambiguation that is possible if
12428         strict-aliasing rules apply.
12429         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
12430         for basic offset and type-based disambiguation.
12431
12432 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12433
12434         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
12435         ix86_expand_vector_set on V16QImode for SSE4.1.
12436
12437 2008-05-21  Tom Tromey  <tromey@redhat.com>
12438
12439         * c.opt (Wimport): Mark as undocumented.
12440         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
12441         -Wno-import.
12442         (Warning Options): Likewise.
12443         * doc/cppopts.texi: Don't mention -Wimport.
12444
12445 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
12446
12447         PR tree-optimization/36287
12448         PR tree-optimization/36286
12449         * lambda-code.c (build_access_matrix): Do not use the loop->num
12450         for computing the number of induction variables: use the loop depth
12451         instead.
12452
12453 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
12454
12455         PR/36280
12456         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
12457         option -f(no-)leading-underscore.
12458
12459 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12460
12461         * config/i386/i386.c (ix86_expand_vector_init_general): Use
12462         GET_MODE_NUNITS (mode).
12463
12464 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
12465
12466         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
12467         (-mmulhw): Add 464 to description.
12468         (-mdlmzb): Likewise.
12469         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
12470         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
12471         464fp entries.
12472         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
12473         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
12474         * config/rs6000/rs6000.md: Update comments for 464.
12475
12476 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
12477
12478         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
12479
12480 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12481
12482         * config/i386/sse.md (vec_extractv4sf): Removed.
12483         (vec_extractv2df): Likewise.
12484         (vec_extractv2di): Likewise.
12485         (vec_extractv4si): Likewise.
12486         (vec_extractv8hi): Likewise.
12487         (vec_extractv16qi): Likewise.
12488         (vec_extract<mode>): New.
12489
12490 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12491
12492         * config/i386/sse.md (vec_setv4sf): Removed.
12493         (vec_setv2df): Likewise.
12494         (vec_setv2di): Likewise.
12495         (vec_setv4si): Likewise.
12496         (vec_setv8hi): Likewise.
12497         (vec_setv16qi): Likewise.
12498         (vec_set<mode>): New.
12499
12500 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12501
12502         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
12503         goto for vec_concat and vec_interleave.
12504
12505 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
12506
12507         * config/i386/sse.md (vec_initv4sf): Removed.
12508         (vec_initv2df): Likewise.
12509         (vec_initv2di): Likewise.
12510         (vec_initv4si): Likewise.
12511         (vec_initv8hi): Likewise.
12512         (vec_initv16qi): Likewise.
12513         (vec_init<mode>): New.
12514
12515 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
12516
12517         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
12518
12519 2008-05-21  Tom Tromey  <tromey@redhat.com>
12520
12521         * ggc-zone.c (lookup_page_table_if_allocated): New function.
12522         (zone_find_object_offset): Likewise.
12523         (gt_ggc_m_S): Likewise.
12524         (highest_bit): Likewise.
12525         * ggc-page.c (gt_ggc_m_S): New function.
12526         * stringpool.c (string_stack): Remove.
12527         (init_stringpool): Update.
12528         (ggc_alloc_string): Use ggc_alloc.
12529         (maybe_delete_ident): New function.
12530         (ggc_purge_stringpool): Likewise.
12531         (gt_ggc_m_S): Remove.
12532         * ggc-common.c (ggc_protect_identifiers): New global.
12533         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
12534         ggc_protect_identifiers.
12535         * ggc.h (ggc_protect_identifiers): Declare.
12536         (gt_ggc_m_S): Update.
12537         (ggc_purge_stringpool): Declare.
12538         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
12539         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
12540         special case.
12541         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
12542
12543 2008-05-21  David S. Miller  <davem@davemloft.net>
12544
12545         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
12546         tmake_file.
12547
12548 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12549
12550         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
12551         once finished.
12552
12553 2008-05-20  David Daney  <ddaney@avtrex.com>
12554
12555         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
12556         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
12557         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
12558         UNSPEC_UPDATE_GOT_VERSION): Renumber.
12559         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
12560         (atomic_hiqi_op): New define_code_iterator.
12561         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
12562         mips_expand_compare_and_swap_12.
12563         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
12564         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
12565         (sync_<optab><mode>, sync_old_<optab><mode>,
12566         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
12567         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
12568         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
12569         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
12570         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
12571         (test_and_set_12): New insn.
12572         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
12573         sync_new_<optab><mode>, sync_old_nand<mode>,
12574         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
12575         clobber to operand 0 for SI and DI mode insns.
12576         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
12577         mips_gen_fn_4): New typedefs.
12578         (mips_gen_fn_ptrs): Define new union type.
12579         (mips_expand_compare_and_swap_12): Remove declaration.
12580         (mips_expand_atomic_qihi): Declare function.
12581         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
12582         (mips_expand_atomic_qihi): ... this.  Use new generator function
12583         parameter.
12584         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
12585         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
12586         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
12587         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
12588         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
12589         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
12590         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
12591         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
12592         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
12593         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
12594         New macros.
12595
12596 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
12597
12598         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
12599         the missing break.
12600
12601 2008-05-20  Anatoly Sokolov <aesok@post.ru>
12602
12603         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
12604         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
12605         (avr_attribute_table): Add 'OS_main' function attribute.
12606         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
12607         functions with 'OS_main' attribute.
12608
12609 2008-05-20  Richard Guenther  <rguenther@suse.de>
12610
12611         PR tree-optimization/35204
12612         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
12613         helper, split out from ...
12614         (DFS): ... here.  Make the DFS walk non-recursive.
12615
12616 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
12617             Jan Sjodin  <jan.sjodin@amd.com>
12618
12619         PR tree-optimization/36181
12620         * tree-parloops.c (loop_has_vector_phi_nodes): New.
12621         (parallelize_loops): Don't parallelize when the loop has vector
12622         phi nodes.
12623
12624 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12625             Sebastian Pop  <sebastian.pop@amd.com>
12626
12627         * tree-loop-linear.c (gather_interchange_stats): Look in the access
12628         matrix, and never look at the tree representation of the memory
12629         accesses.
12630         (linear_transform_loops): Computes parameters and access matrices.
12631         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
12632         when fails.
12633         (access_matrix_get_index_for_parameter): New.
12634         * tree-data-ref.h (struct access_matrix): New.
12635         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
12636         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
12637         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
12638         am_vector_index_for_loop): New.
12639         (struct data_reference): Add field access_matrix.
12640         (DR_ACCESS_MATRIX): New.
12641         (compute_data_dependences_for_loop): Update declaration.
12642         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
12643         * lambda.h (lambda_vector_vec_p): Declared.
12644         * lambda-code.c: Depend on pointer-set.h.
12645         (lambda_collect_parameters_from_af, lambda_collect_parameters,
12646         av_for_af_base, av_for_af, build_access_matrix,
12647         lambda_compute_access_matrices): New.
12648         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
12649
12650 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
12651
12652         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
12653         $SOURCEDIR/include.
12654
12655 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12656             Sebastian Pop  <sebastian.pop@amd.com>
12657
12658         PR tree-optimization/36206
12659         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
12660         FOLD_CONVERSIONS.
12661         (instantiate_scev_1): Rename flags to fold_conversions.
12662         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
12663         outeside instantiation_loop.
12664         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
12665         (evolution_function_is_affine_or_constant_p): Removed.
12666         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
12667         instantiate_scev.
12668         (analyze_siv_subscript): Pass in the loop nest number.
12669         Call evolution_function_is_affine_in_loop instead of
12670         evolution_function_is_affine_p.
12671         (analyze_overlapping_iterations): Pass in the loop nest number.
12672
12673 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
12674             Sebastian Pop  <sebastian.pop@amd.com>
12675
12676         PR tree-optimization/36206
12677         * tree-chrec.h (chrec_fold_op): New.
12678         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
12679         and other trees.
12680
12681 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
12682
12683         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
12684         (DIRS_EQ): New.
12685         (remove_duplicates): Do not set inode on non-inode systems.
12686         Use DIRS_EQ.
12687
12688 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
12689
12690         * config.gcc (tm_file): Update comments about relative pathnames.
12691
12692 2008-05-20  Richard Guenther  <rguenther@suse.de>
12693
12694         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
12695         * tree-ssa-sccvn.c (process_scc): Likewise.
12696         * tree-ssa-sink.c (execute_sink_code): Likewise.
12697         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
12698         * tree-vrp.c (process_assert_insertions): Likewise.
12699         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
12700         (perform_tree_ssa_dce): Likewise.
12701         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
12702         (dump_dominator_optimization_stats): Likewise.
12703         * tree-vectorizer.c (vectorize_loops): Likewise.
12704
12705 2008-05-20  Richard Guenther  <rguenther@suse.de>
12706
12707         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
12708
12709 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
12710
12711         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
12712         (ix86_i386elf_return_in_memory): Likewise.
12713         (ix86_i386interix_return_in_memory): Likewise.
12714         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
12715         (SUBTARGET_RETURN_IN_MEMORY): New.
12716         * config/i386/i386elf.h: Likewise.
12717         * config/i386/ptx4-i.h: Likewise.
12718         * config/i386/sol2-10.h: Likewise.
12719         * config/i386/sysv4.h: Likewise.
12720         * config/i386/vx-common.h: Likewise.
12721         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
12722         * config/i386/i386.c (ix86_return_in_memory): Made static and
12723         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
12724         (ix86_i386elf_return_in_memory): Removed.
12725         (ix86_i386interix_return_in_memory): Removed.
12726         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
12727         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
12728
12729 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
12730
12731         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
12732
12733 2008-05-19  Xinliang David Li  <davidxl@google.com>
12734
12735         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18.
12736         * opts.c: Ditto.
12737         * common.opt: Ditto.
12738         * doc/invoke.texi: Ditto.
12739
12740 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
12741
12742         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
12743         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
12744
12745 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
12746
12747         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
12748         sizes of operand array from 8/4 to 4/2.
12749         (ix86_expand_vector_init_general): Change size of operand array
12750         from 32 to 16.  Remove op0, op1 and half_mode.
12751
12752 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
12753
12754         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
12755         (ix86_expand_vector_init_interleave): Likewise.
12756         (ix86_expand_vector_init_general): Use them.  Assert
12757         word_mode == SImode when n_words == 4.
12758
12759 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
12760
12761         * config/i386/i386.c (ix86_secondary_reload): New static function.
12762         (TARGET_SECONDARY_RELOAD): New define.
12763         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
12764         * config/i386/i386.md (reload_outqi): Remove.
12765
12766 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12767
12768         PR middle-end/35509
12769         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
12770         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
12771         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
12772         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
12773         (fold_builtin_1): Likewise.
12774         * builtins.def (BUILT_IN_ISINF_SIGN): New.
12775         c-common.c (check_builtin_function_arguments): Handle
12776         BUILT_IN_ISINF_SIGN.
12777         * doc/extend.texi: Document __builtin_isinf_sign.
12778         * fold-const.c (operand_equal_p): Handle COND_EXPR.
12779
12780 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
12781
12782         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
12783         EH cleanup at the end of the pass, search for those that have been
12784         turned into forwarder blocks and do the cleanup on their successor.
12785
12786 2008-05-18  Richard Guenther  <rguenther@suse.de>
12787
12788         * tree-cfg.c (verify_gimple_expr): Allow conversions from
12789         pointers to sizetype and vice versa.
12790
12791 2008-05-18 Xinliang David Li   <davidxl@google.com>
12792
12793         * gcc/tree-ssa-dce.c: Coding style fix.
12794         (check_pow): Documentation comment.
12795         (check_log): Documenation comment. Coding style fix.
12796         (is_unnecessary_except_errno_call): Ditto.
12797         (gen_conditions_for_pow): Ditto.
12798         (gen_conditions_for_log): Ditto.
12799         (gen_shrink_wrap_conditions): Ditto.
12800         (shrink_wrap_one_built_in_calls): Ditto.
12801         * gcc/doc/invoke.texi: Better documentation string.
12802         * ChangeLog: Fix wrong change log entries from
12803         May 17 checkin on function call DCE.
12804
12805 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
12806
12807         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
12808
12809 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
12810
12811         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
12812         * df-problems.c (simulation routines): Fixed block comment to
12813         properly say how to add forwards scanning functions.
12814
12815 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
12816
12817         * tree-inline.c (setup_one_parameter): Remove dead code.
12818
12819 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
12820
12821         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
12822         a BIT_AND_EXPR only for an INTEGER_TYPE.
12823
12824 2008-05-17 Xinliang David Li   <davidxl@google.com>
12825
12826         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
12827         (check_pow, check_log, is_unnecessary_except_errno_call): New
12828         functions to check for eliminating math functions that are pure
12829         except for setting errno.
12830         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
12831         general condition expressions for shrink-wrapping pow/log calls.
12832         (gen_shrink_wrap_conditions): Ditto.
12833         (shrink_wrap_one_built_in_call): Ditto.
12834         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
12835         (mark_operand_necessary): If debugging, output if OP is necessary.
12836         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
12837         unnecessary.
12838         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
12839         opt level >= 2.
12840         * gcc/common.opt: New user flag -ftree-builtin-dce.
12841         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
12842
12843 2008-05-16  David S. Miller  <davem@davemloft.net>
12844
12845         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
12846         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
12847
12848 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
12849
12850         PR target/36246
12851         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
12852
12853 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12854
12855         * ifcvt.c (dead_or_predicable): Rename
12856         df_simulate_one_insn_backwards to df_simulate_one_insn.
12857         * recog.c (peephole2_optimize): Ditto.
12858         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
12859         Ditto.
12860         * df.h: Rename df_simulate_one_insn_backwards to
12861         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
12862         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
12863         scanning of defs and uses.
12864         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
12865         (df_simulate_one_insn_forwards): Removed.
12866
12867 2008-05-16  Doug Kwan  <dougkwan@google.com>
12868
12869         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
12870         QNaN & SNaN.
12871         (real_from_string): Handle NaNs and Inf as approriate.
12872
12873 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
12874
12875         * doc/gty.texi (Source Files Containing Type Information): Note
12876         that headers should appear first in the gtfiles list.
12877
12878 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12879
12880         * tree.def (COND_EXEC): Properly documented this code.
12881
12882 2008-05-16  Diego Novillo  <dnovillo@google.com>
12883
12884         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
12885         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
12886         the new field.
12887
12888 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12889
12890         * tree-ssa-dse (max_stmt_uid): Removed.
12891         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt,
12892         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
12893         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
12894         * function.h (cfun.last_stmt_uid): New field.
12895         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
12896         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
12897         New functions.
12898         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
12899         (create_stmt_ann): Initialize the ann->uid field.
12900         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
12901         with new calls.
12902         * tree-flow.h (renumber_gimple_stmt_uids): New function.
12903
12904 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
12905
12906         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
12907         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
12908         (init_empty_tree_cfg): Call it.
12909
12910 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12911
12912         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
12913         Update all users.
12914
12915 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
12916
12917         * doc/invoke.text (-fdump-tree-*-verbose): New option.
12918         * tree-dump.c (dump_options): New verbose option.
12919         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
12920         Add verbose dump.
12921         * tree-pass.h (TDF_VERBOSE): New dump flag.
12922         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
12923         (tree-flow.h): Added include.
12924         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
12925
12926 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
12927
12928         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
12929
12930         From Jie Zhang  <jie.zhang@analog.com>
12931         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12932         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
12933         mcpu=bf561-none and mcpu=bf561-0.2.
12934         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12935         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
12936         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12937         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
12938         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
12939         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
12940         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
12941         option.
12942         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
12943         (cputype_selected): Remove.
12944         (bfin_handle_option): Don't use cputype_selected.
12945         (override_options): When no mcpu option, enable all workarounds.
12946         Don't use bfin_workarounds.
12947         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
12948         processor type.
12949         (DEFAULT_CPU_TYPE): Don't define.
12950
12951 2008-05-16  Richard Guenther  <rguenther@suse.de>
12952
12953         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
12954         on deletion of the last stmt.
12955
12956 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
12957
12958         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
12959         V8HImode for SSE2 and V16QImode for SSE4.1.
12960
12961 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
12962
12963         * cgraph.h (compute_inline_parameters): Made public.
12964         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
12965         variable_generate_summary, function_write_summary,
12966         variable_write_summary, variable_read_summary.  Added generate_summary,
12967         write_summary, read_summary.
12968         * cgraphunit.c (cgraph_process_new_functions): Changed call from
12969         pass_ipa_inline.function_generate_summary, to
12970         compute_inline_parameters.
12971         * ipa-inline.c (compute_inline_parameters): Made public and added
12972         node parameter.
12973         (compute_inline_parameters_for_current): New function.
12974         (pass_inline_param): Now calls compute_inline_parameters_for_current.
12975         (inline_generate_summary): Removed parameter and made to loop over
12976         all cgraph nodes.
12977         (pass_ipa_inline): Updated for new IPA_PASS structure.
12978         * passes.c (execute_ipa_summary_passes): Now is called once per
12979         pass rather than once per node*pass.
12980
12981 2008-05-15  Anatoly Sokolov <aesok@post.ru>
12982
12983         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p,
12984         avr_have_mul_p, avr_asm_only_p): Remove variables.
12985         (avr_override_options): Remove initialization of removed variables.
12986         (avr_file_start):  Convert removed variables to fields of
12987         'struct base_arch_s *avr_current_arch'.
12988         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
12989         (AVR_HAVE_MUL): (Ditto.).
12990         (AVR_HAVE_MOVW): (Ditto.).
12991         (AVR_HAVE_LPMX): (Ditto.).
12992         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p,
12993         avr_asm_only_p): Remove declaration.
12994
12995 2008-05-15  Diego Novillo  <dnovillo@google.com>
12996
12997         * config/arm/arm.c (arm_return_in_memory): Fix return type.
12998         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
12999
13000 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
13001
13002         PR middle-end/36194
13003         * combine.c (check_conversion): Rename back to check_promoted_subreg.
13004         Don't call record_truncated_value from here.
13005         (record_truncated_value): Turn it into a for_each_rtx callback.
13006         (record_truncated_values): New function.
13007         (combine_instructions): Call note_uses with record_truncated_values.
13008         Change name of check_conversion to check_promoted_subreg.
13009
13010 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
13011
13012         * doc/sourcebuild.texi: Document support for torture tests.
13013
13014 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
13015
13016         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
13017         to alternative 4 of operand 2.
13018
13019 2008-05-15  Richard Guenther  <rguenther@suse.de>
13020
13021         * tree-pass.h (current_pass): Declare.
13022         (get_pass_for_id): Likewise.
13023         * passes.c (passes_by_id, passes_by_id_size): New globals.
13024         (set_pass_for_id): New function.
13025         (get_pass_for_id): Likewise.
13026         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
13027         (execute_function_todo): Flush per function statistics.
13028         * toplev.c (compile_file): Init statistics.
13029         (general_init): Do early statistics initialization.
13030         (finalize): Finish statistics.
13031         * statistics.h (statistics_early_init): Declare.
13032         (statistics_init): Likewise.
13033         (statistics_fini): Likewise.
13034         (statistics_fini_pass): Likewise.
13035         (statistics_counter_event): Likewise.
13036         (statistics_histogram_event): Likewise.
13037         * statistics.c: New file.
13038         * Makefile.in (OBJS-common): Add statistics.o.
13039         (statistics.o): Add dependencies.
13040         * doc/invoke.texi (-fdump-statistics): Document.
13041
13042         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
13043         (insert): Likewise.
13044         (execute_pre): Use statistics_counter_event.
13045         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
13046         (substitute_and_fold): Increment it.  Use statistics_counter_event.
13047
13048 2008-05-15  Diego Novillo  <dnovillo@google.com>
13049
13050         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
13051
13052         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
13053         * tree-ssa-alias.c (new_type_alias): Remove references to
13054         sub-variables from comment.
13055         * tree-ssa-operands.c (swap_tree_operands): Likewise.
13056
13057 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
13058
13059         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
13060         attribute to 1 only for insertps alternative.
13061
13062 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
13063
13064         * config/bfin/bfin.md (loadbytes): New pattern.
13065         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
13066         (bfin_init_builtins): Initialize it.
13067         (bdesc_1arg): Add it.
13068
13069 2008-05-15  Sa Liu  <saliu@de.ibm.com>
13070
13071         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
13072         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
13073         * testsuite/lib/target-supports.exp: Add
13074         check_effective_target_fortran_integer_16.
13075
13076 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
13077
13078         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
13079         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
13080         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
13081         (TARGET_RETURN_IN_MEMORY): Define.
13082
13083 2008-05-15  Richard Guenther  <rguenther@suse.de>
13084
13085         PR middle-end/36244
13086         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
13087         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
13088         represent unmodifiable vars.
13089
13090 2008-05-15  Richard Guenther  <rguenther@suse.de>
13091
13092         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
13093         INDIRECT_REF and TARGET_MEM_REF.
13094         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13095         TARGET_MEM_REF.
13096
13097 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
13098             H.J. Lu  <hongjiu.lu@intel.com>
13099
13100         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
13101         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
13102         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
13103         insn alternatives.  Add missing alternatives.
13104         (*vec_concatv2di_rex64_sse4_1): Likewise.
13105         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
13106         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
13107         Require TARGET_SSE.
13108
13109 2008-05-15  Richard Guenther  <rguenther@suse.de>
13110
13111         PR tree-optimization/36009
13112         PR tree-optimization/36204
13113         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
13114         (determine_invariantness_stmt): Record the loop a store is
13115         always executed in.
13116         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
13117         dependency.
13118
13119 2008-05-15  Richard Guenther  <rguenther@suse.de>
13120
13121         PR tree-optimization/34330
13122         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
13123         through the pointer will alias the SMT.
13124
13125 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
13126
13127         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
13128
13129 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
13130
13131         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
13132
13133 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
13134             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
13135
13136         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
13137         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
13138         (vashl_optab): New optab for vector/vector shifts.
13139         (vashr_optab): Ditto.
13140         (vlshr_optab): Ditto.
13141         (vrotl_optab): Ditto.
13142         (vrotr_optab): Ditto.
13143         (optab_subtype): New enum for optab_for_tree_code call.
13144         (optab_for_tree_code): Add enum optab_subtype argument.
13145
13146         * optabs.c (optab_for_tree_code): Take an additional argument to
13147         distinguish between a vector shift by a scalar and vector shift by
13148         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
13149         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
13150         vector shift by a vector.
13151         (expand_widen_pattern_expr): Pass additional argument to
13152         optab_for_tree_code.
13153
13154         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
13155         vrotl_optab, vrotr_optab.
13156
13157         * expr.c (expand_expr_real_1): Update calls to
13158         optab_for_tree_code to distinguish between vector shifted by a
13159         scalar and vector shifted by a vector.
13160         * tree-vectorizer.c (supportable_widening_operation): Ditto.
13161         (supportable_narrowing_operation): Ditto.
13162         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
13163         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
13164         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
13165         (vect_create_epilog_for_reduction): Ditto.
13166         (vectorizable_reduction): Ditto.
13167         (vectorizable_operation): Ditto.
13168         (vect_strided_store_supported): Ditto.
13169         (vect_strided_load_supported): Ditto.
13170         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
13171         * expmed.c (expand_shift): Ditto.
13172
13173         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
13174         scalar type.
13175         (ashr@var{m}3): Ditto.
13176         (vashl@var{m}3): Document new vector/vector shift standard name.
13177         (vashr@var{m}3): Ditto.
13178         (vlshr@var{m}3): Ditto.
13179         (vrotl@var{m}3): Ditto.
13180         (vrotr@var{m}3): Ditto.
13181
13182         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
13183         (PPERM_INVERT): Ditto.
13184         (PPERM_REVERSE): Ditto.
13185         (PPERM_REV_INV): Ditto.
13186         (PPERM_ZERO): Ditto.
13187         (PPERM_ONES): Ditto.
13188         (PPERM_SIGN): Ditto.
13189         (PPERM_INV_SIGN): Ditto.
13190         (PPERM_SRC1): Ditto.
13191         (PPERM_SRC2): Ditto.
13192
13193         * config/i386/sse.md (mulv2di3): Add SSE5 support.
13194         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
13195         allows a memory operand to be the value being added, and split it
13196         to improve vectorization.
13197         (sse5_pmacsdqh_mem): Ditto.
13198         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
13199         (sse5_mulv2div2di3_high): Ditto.
13200         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
13201         (vec_pack_trunc_v4si): Ditto.
13202         (vec_pack_trunc_v2di): Ditto.
13203         (sse5_pcmov_<mode>): Remove code that tried to use use
13204         andps/andnps instead of pcmov.
13205         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
13206         pmacsdqh instructions.
13207         (vec_widen_smult_lo_v4si): Ditto.
13208
13209         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
13210         (PPERM_INVERT): Ditto.
13211         (PPERM_REVERSE): Ditto.
13212         (PPERM_REV_INV): Ditto.
13213         (PPERM_ZERO): Ditto.
13214         (PPERM_ONES): Ditto.
13215         (PPERM_SIGN): Ditto.
13216         (PPERM_INV_SIGN): Ditto.
13217         (PPERM_SRC1): Ditto.
13218         (PPERM_SRC2): Ditto.
13219         (ix86_expand_sse_movcc): Move the SSE5 test after the if
13220         true/false tests.
13221         (ix86_expand_int_vcond): If SSE5 generate all possible integer
13222         comparisons.
13223         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
13224         says ignore whether the last reference is a memory operand.
13225
13226 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
13227             Paolo Bonzini <bonzini at gnu dot org>
13228
13229         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
13230         shift patterns.
13231
13232         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
13233         (vlshr<mode>3): Rename from vlshr<mode>3.
13234         (vashr<mode>3): Rename from vashr<mode>3.
13235         (mulv4sf3): Change the names of vector shift patterns.
13236         (mulv4si3): Ditto.
13237         (negv4sf2): Ditt.
13238
13239         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
13240         shift insns.
13241
13242         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
13243         (SI_SHLHI): Ditto.
13244         (SI_SHL): Ditto.
13245         (SI_SHLI): Ditto.
13246         (SI_ROTH): Ditto.
13247         (SI_ROTHI): Ditto.
13248         (SI_ROT): Ditto.
13249         (SI_ROTI): Ditto.
13250         (SPU_RL_0): Ditto.
13251         (SPU_RL_1): Ditto.
13252         (SPU_RL_2): Ditto.
13253         (SPU_RL_3): Ditto.
13254         (SPU_RL_4): Ditto.
13255         (SPU_RL_5): Ditto.
13256         (SPU_RL_6): Ditto.
13257         (SPU_RL_7): Ditto.
13258         (SPU_SL_0): Ditto.
13259         (SPU_SL_1): Ditto.
13260         (SPU_SL_2): Ditto.
13261         (SPU_SL_3): Ditto.
13262         (SPU_SL_4): Ditto.
13263         (SPU_SL_5): Ditto.
13264         (SPU_SL_6): Ditto.
13265         (SPU_SL_7): Ditto.
13266
13267         * config/spu/spu.md (v): New iterator macro to add v for vector types.
13268         (floatunssidf2_internal): Change vector/vector shift names.
13269         (floatunsdidf2_internal): Ditto.
13270         (mulv8hi3): Ditto.
13271         (ashrdi3): Ditto.
13272         (ashrti3): Ditto.
13273         (cgt_df): Ditto.
13274         (cgt_v2df): Ditto.
13275         (dftsv): Ditto.
13276         (vashl<mode>3): Rename from ashl<mode>3.
13277         (vashr<mode>3): Rename from ashr<mode>3.
13278         (vlshr<mode>3): Rename from lshr<mode>3.
13279         (vrotl<mode>3): Rename from rotl<mode>3.
13280
13281 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
13282
13283         PR target/36224
13284         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
13285         multiply gives the wrong value when doing widening multiplies.
13286         (vec_widen_smult_lo_v4si): Ditto.
13287
13288 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
13289
13290         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
13291         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
13292         emit_library_call_value.
13293         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
13294         * tree.h (ECF_LIBCALL_BLOCK): Removed.
13295         * calls.c (initialize_argument_information, precompute_arguments,
13296         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
13297         (precompute_arguments): Removed flags parameter.
13298         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
13299
13300 2008-05-14  Richard Guenther  <rguenther@suse.de>
13301
13302         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
13303         Make sure to register the store if the use is a PHI_NODE.
13304
13305 2008-05-14  Olivier Hainque  <hainque@adacore.com>
13306
13307         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
13308         memory if the component is to be referenced in BLKmode according
13309         to get_inner_reference.
13310
13311 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
13312
13313         * calls.c (emit_library_call_value_1): Restore code clearing
13314         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
13315
13316 2008-05-14  Olivier Hainque  <hainque@adacore.com>
13317             Nicolas Roche  <roche@adacore.com>
13318
13319         * configure.ac: Add support for a "gcc_subdir" variable in
13320         config-lang.in, to denote a subdirectory where the language/GCC
13321         integration files are to be found.
13322         * configure: Regenerate.
13323
13324 2008-05-14  Ira Rosen  <irar@il.ibm.com>
13325
13326         PR tree-optimization/36098
13327         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
13328         value for the first load in the group in case of a gap.
13329         (vect_build_slp_tree): Check that there are no gaps in loads.
13330
13331 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
13332
13333         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
13334         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
13335         expand_copysign_bit, ): Change call to emit_no_conflict_block to
13336         emit_insn and remove unneeded code to construct extra args.
13337         (emit_no_conflict_block): Removed.
13338         * optabls.h: (emit_no_conflict_block): Removed.
13339         * cse.c (cse_extended_basic_block): Remove search for
13340         REG_NO_CONFLICT note.
13341         * global.c: Removed incorrect comment added in revision 117.
13342         * expr.c (convert_move): Change call to emit_no_conflict_block to
13343         emit_insn.
13344         * recog.c: Change comments so that they do not mention
13345         REG_NO_CONFLICT.
13346         * local_alloc.c (combine_regs): Removed last parameter.
13347         (no_conflict_p): Removed.
13348         (block_alloc): Removed note, no_conflict_combined_regno and set
13349         local vars. Removed all code to process REG_NO_CONFLICT blocks.
13350         (combine_regs): Removed already_dead and code to look for
13351         REG_NO_CONFLICT notes.
13352         * lower_subreg (remove_retval_note): Removed code to look for
13353         REG_NO_CONFLICT block.
13354         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
13355         (resolve_clobber): Remove code to process libcalls that have
13356         REG_NO_CONFLICT notes.
13357         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
13358         case.
13359         * combine.c (can_combine_p, distribute_notes):  Removed
13360         REG_NO_CONFLICT case.
13361         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
13362         to emit_insns.
13363         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
13364         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
13365         Ditto.
13366         * reg-notes.def (NO_CONFLICT): Removed.
13367
13368 2008-05-14  David S. Miller  <davem@davemloft.net>
13369
13370         * config/sparc/sparc.c (sparc_profile_hook): If
13371         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
13372         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
13373         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
13374
13375 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13376
13377         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
13378
13379 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
13380
13381         PR target/36222
13382         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
13383         and op1 expansion before vector concat to have less live pseudos.
13384
13385 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13386
13387         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13388         ix86_expand_vector_set if supported.
13389
13390 2008-05-13  Diego Novillo  <dnovillo@google.com>
13391             Kenneth Zadeck  <zadeck@naturalbridge.com>
13392
13393         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
13394
13395         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
13396         phinodes_print_statistics, init_ssanames, fini_ssanames,
13397         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
13398         release_ssa_name, release_defs, replace_ssa_name_symbol,
13399         ssanames_print_statistics): Move ...
13400         * tree-flow.h: ... here.
13401         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
13402         Use FN instead of cfun.
13403         (make_ssa_name_fn): Rename from make_ssa_name.
13404         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
13405         * tree-flow-inline.h (make_ssa_name): Move from
13406         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
13407         * omp-low.c (expand_omp_parallel):
13408         * tree-flow-inline.h (redirect_edge_var_map_result):
13409         * tree-ssa.c (init_tree_ssa): Add argument FN.
13410         Use it instead of cfun.  Update all users.
13411
13412 2008-05-13  Tom Tromey  <tromey@redhat.com>
13413
13414         PR preprocessor/22168:
13415         * doc/cpp.texi (Top): Update menu.
13416         (Alternatives to Wrapper #ifndef): New node.
13417         (Other Directives): Document deprecation.
13418         (Obsolete Features): Remove menu.
13419         (Assertions): Merge node into Obsolete Features.
13420         (Obsolete once-only headers): Move earlier; rename to Alternatives
13421         to Wrapper #ifndef.
13422         * doc/cppopts.texi: Update.
13423         * c.opt (Wdeprecated): Enable for C and ObjC.
13424         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
13425         (C++ Dialect Options): Move -Wno-deprecated from here to...
13426         (Warning Options): ... here.
13427
13428 2008-05-13  Richard Guenther  <rguenther@suse.de>
13429
13430         PR middle-end/36227
13431         * fold-const.c (fold_sign_changed_comparison): Do not allow
13432         changes in pointer-ness.
13433
13434 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
13435
13436         PR target/24713
13437         * config/sh/sh.c (sh_expand_prologue): Don't clear
13438         RTX_FRAME_RELATED_P for push insns.
13439
13440 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
13441
13442         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
13443
13444 2008-05-12  Anatoly Sokolov <aesok@post.ru>
13445
13446         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
13447         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
13448         Use 'machine->is_leaf' instead of 'leaf_func_p'.
13449
13450 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13451
13452         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
13453         (*vec_concatv4sf_sse): This.
13454         (*sse2_concatv2si): Renamed to ...
13455         (*vec_concatv2si_sse2): This.
13456         (*sse1_concatv2si): Renamed to ...
13457         (*vec_concatv2si_sse): This.
13458         (*vec_concatv2di_rex): Renamed to ...
13459         (*vec_concatv2di_rex64): This.
13460         (*vec_concatv2si_sse4_1): New.
13461         (*vec_concatv2di_rex64_sse4_1): Likewise.
13462
13463 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
13464
13465         PR rtl-optimization/36111
13466         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
13467         that was created for swappable operands.
13468
13469 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
13470
13471         PR ada/36001
13472         * Makefile.in: Substitute GNATMAKE and GNATBIND.
13473         * configure.ac: Add call to ACX_PROG_GNAT.
13474
13475 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
13476
13477         * optc-gen.awk: Fix comment typo.
13478
13479 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13480
13481         * pretty-print.c (pp_integer_with_precision): Use
13482         HOST_LONG_LONG_FORMAT.
13483
13484 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
13485
13486         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
13487
13488 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
13489
13490         * config/i386/i386.c (bdesc_ptest): Removed.
13491         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
13492         (bdesc_args): Add __builtin_ia32_ptestz128,
13493         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
13494         (ix86_init_mmx_sse_builtins): Updated.
13495         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
13496         (ix86_expand_builtin): Updated.
13497
13498 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
13499
13500         * tree-cfg.c (valid_fixed_convert_types_p): New function.
13501         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
13502
13503 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
13504
13505         * value-prof.c (interesting_stringop_to_profile): Do not
13506         return early for BUILT_IN_MEMPCPY.
13507
13508 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13509
13510         * calls.c (expand_call): Don't use callgraph to increase
13511         preferred_stack_boundary.
13512
13513         * cgraph.h (cgraph_rtl_info): Use unsigned on
13514         preferred_incoming_stack_boundary.
13515
13516         * final.c (rest_of_clean_state): Use unsigned on
13517         preferred_stack_boundary.
13518
13519 2008-05-09  Tom Tromey  <tromey@redhat.com>
13520
13521         PR preprocessor/22231:
13522         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
13523         proceeding.
13524
13525 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
13526
13527         PR tree-optimization/36129
13528         * tree-ssa-ccp.c: Include value-prof.h.
13529         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
13530         built-in function was folded to a constant.
13531         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
13532
13533 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
13534             Sebastian Pop  <sebastian.pop@amd.com>
13535
13536         * tree-scalar-evolution.c: Document instantiate_scev.
13537         (instantiate_parameters_1): Renamed instantiate_scev_1.
13538         Don't use the same loop for instantiation_loop and evolution_loop.
13539         (instantiate_scev): New.
13540         (instantiate_parameters): Moved...
13541         (resolve_mixers): Update call to instantiate_scev_1 to pass the
13542         same loop twice.  Maintains the semantics for this function.
13543         * tree-scalar-evolution.h (instantiate_scev): Declare.
13544         (instantiate_parameters): ...here.  Now static inline.
13545         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
13546         instead of resolve_mixers.
13547
13548 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
13549
13550         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
13551
13552 2008-05-09  Tomas Bily  <tbily@suse.cz>
13553
13554         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
13555         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
13556         * tree-ssa-structalias.c (get_constraint_for): Likewise.
13557         * c-common.c (c_common_truthvalue_conversion): Likewise.
13558         * tree-object-size.c (compute_object_offset): Likewise.
13559         * tree-inline.c (estimate_num_insns_1): Likewise.
13560         * varasm.c (const_hash_1, compare_constant, copy_constant)
13561         (compute_reloc_for_constant, output_addressed_constants)
13562         (initializer_constant_valid_p): Likewise.
13563         * c-omp.c (check_omp_for_incr_expr): Likewise.
13564         * gimplify.c (gimplify_expr): Likewise.
13565         * c-typeck.c (c_finish_return): Likewise.
13566         * tree-vectorizer.c (supportable_widening_operation)
13567         (supportable_narrowing_operation): Likewise.
13568         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
13569         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
13570         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
13571         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
13572         (descr_info_loc): Likewise.
13573         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
13574         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
13575         (fold_unary): Likewise.
13576         * builtins.c (get_pointer_alignment): Likewise.
13577         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
13578         (instantiate_parameters_1): Likewise.
13579         * tree.c (expr_align, stabilize_reference): Likewise.
13580         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
13581         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
13582         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
13583         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
13584         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
13585         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
13586         Likewise.
13587         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
13588         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
13589         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
13590         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
13591         (forward_propagate_comparison)
13592         (tree_ssa_forward_propagate_single_use_vars): Likewise.
13593         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
13594         * emit-rtl.c (component_ref_for_mem_expr)
13595         (set_mem_attributes_minus_bitpos): Likewise.
13596         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
13597         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
13598         Likewise.
13599         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
13600         (build_function_call, pointer_diff, build_compound_expr)
13601         (c_finish_return): Likewise.
13602         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
13603         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
13604         Likewise.
13605         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
13606         * expr.c (is_aligning_offset): Likewise.
13607         * tree-ssa-alias.c (is_escape_site): Likewise.
13608         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
13609         (check_all_va_list_escapes): Likewise.
13610         * tree-ssa-loop-ivopts.c (determine_base_object)
13611         (determine_common_wider_type): Likewise.
13612         * dojump.c (do_jump): Likewise.
13613         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
13614         * tree-gimple.c (is_gimple_cast): Likewise.
13615         * fold-const.c (decode_field_reference, )
13616         (fold_sign_changed_comparison, fold_unary, fold_comparison)
13617         (fold_binary): Likewise.
13618         * tree-ssa-alias-warnings.c (find_alias_site_helper)
13619         (already_warned_in_frontend_p): Likewise.
13620         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
13621         * tree.c (really_constant_p, get_unwidened): Likewise.
13622         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
13623         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
13624         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
13625         Likewise.
13626         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
13627         CONVERT_EXPR_P.
13628         (CONVERT_EXPR_P): Define.
13629         (CASE_CONVERT): Define.
13630
13631 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
13632
13633         PR middle-end/36117
13634         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
13635         (delete_unmarked_insns): When deleting a call, call
13636         delete_unreachable_blocks.
13637         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
13638         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
13639
13640 2008-05-08  Richard Guenther  <rguenther@suse.de>
13641
13642         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
13643         (-ftree-salias): Likewise.
13644         (salias-max-implicit-fields): Remove param documentation.
13645         (salias-max-array-elements): Likewise.
13646         * tree-pass.h (pass_create_structure_vars): Remove.
13647         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
13648         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
13649         * tree-ssa-alias.c (create_structure_vars): Remove.
13650         (gate_structure_vars): Likewise.
13651         (pass_create_structure_vars): Likewise.
13652         (gate_build_alias): Likewise.
13653         (pass_build_alias): Adjust to run always and dump the function.
13654         * common.opt (ftree-salias): Hide.
13655         * passes.c (init_optimization_passes): Remove
13656         pass_create_structure_vars, adjust comment.
13657         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
13658         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
13659         * opts.c (decode_options): Do not set flag_tree_salias.
13660         (common_handle_option): Add OPT_ftree_salias to the backward
13661         compatibility section.
13662
13663 2008-05-08  Richard Guenther  <rguenther@suse.de>
13664
13665         * tree-flow-inline.h (var_can_have_subvars): Move ...
13666         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
13667         * tree-flow.h (var_can_have_subvars): Remove.
13668         (push_fields_onto_fieldstack): Remove.
13669         (sort_fieldstack): Likewise.
13670         (struct fieldoff): Move ...
13671         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
13672         alias_set and base_for_components fields.
13673         (sort_fieldstack): Make static.
13674         (push_fields_onto_fieldstack): Likewise.  Remove code that
13675         handles anything but RECORD_TYPEs.  Remove alias_set and
13676         base_for_components handling.
13677         (create_variable_info_for): Adjust.
13678
13679 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
13680
13681         * common.opt (Wframe-larger-than=): Shorten the help message
13682         to one line.
13683         * doc/invoke.texi (Wframe-larger-than=): Add more description.
13684
13685 2008-05-08  Rafael Espíndola  <espindola@google.com>
13686
13687         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
13688         trap.
13689         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
13690         trap and that both operands are gimple values.
13691         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
13692         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
13693         is a fp operation.
13694
13695 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13696
13697         * read-rtl.c (join_c_conditions): Return the first string if the
13698         two strings are equal.
13699
13700 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13701
13702         * gensupport.h (pred_data): Add a "num_codes" field.
13703         (add_predicate_code): Declare.
13704         * gensupport.c (add_predicate_code): New function.
13705         (std_pred_table): Add an "allows_const_p" field.
13706         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
13707         Remove the (incomplete) list of such codes from the codes field.
13708         (init_predicate_table): Use add_predicate_code.  Add all
13709         RTX_CONST_OBJs if allows_const_p is true.
13710         * genrecog.c (process_define_predicate): Use add_predicate_code.
13711
13712 2008-05-08  David Daney  <ddaney@avtrex.com>
13713             Richard Sandiford  <rsandifo@nildram.co.uk>
13714
13715         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
13716         special case of constant zero operands.
13717         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
13718         old and new values.  Special case constant zero values.
13719         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
13720         fails.
13721         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
13722         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
13723
13724 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
13725
13726         PR target/36090
13727         * simplify-rtx.c (simplify_plus_minus): Create CONST of
13728         similar RTX_CONST_OBJ before CONST_INT.
13729
13730 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
13731
13732         * stmt.c (expand_stack_restore): Change sa mode if needed.
13733
13734 2008-05-08  Richard Guenther  <rguenther@suse.de>
13735
13736         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
13737         return type to bool.
13738         (ix86_sol10_return_in_memory): Likewise.
13739         (ix86_i386elf_return_in_memory): Likewise.
13740         (ix86_i386interix_return_in_memory): Likewise.
13741         * config/i386/i386.c (ix86_return_in_memory): Likewise.
13742         (ix86_sol10_return_in_memory): Likewise.
13743         (ix86_i386elf_return_in_memory): Likewise.
13744         (ix86_i386interix_return_in_memory): Likewise.
13745
13746 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
13747
13748         PR bootstrap/36180
13749         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
13750         fndecl argument.
13751         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
13752         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
13753         declared in front.
13754
13755 2008-05-08  Richard Guenther  <rguenther@suse.de>
13756
13757         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
13758         * tree-data-ref.h (struct dr_alias): Remove subvars field.
13759         (DR_SUBVARS): Remove.
13760         * tree-dfa.c (dump_subvars_for): Remove.
13761         (debug_subvars_for): Likewise.
13762         (dump_variable): Do not dump subvars.
13763         (remove_referenced_var): Do not remove subvars.
13764         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
13765         (lookup_subvars_for_var): Remove.
13766         (get_subvars_for_var): Likewise.
13767         (get_subvars_at): Likewise.
13768         (get_first_overlapping_subvar): Likewise.
13769         (overlap_subvar): Likewise.
13770         * tree-flow.h (subvar_t): Remove.
13771         (struct var_ann_d): Remove subvars field.
13772         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
13773         argument.  Remove special handling of SFTs.
13774         (compute_tag_properties): Likewise.
13775         (set_initial_properties): Likewise.
13776         (compute_call_clobbered): Likewise.
13777         (count_mem_refs): Likewise.
13778         (compute_memory_partitions): Likewise.
13779         (compute_flow_insensitive_aliasing): Likewise.
13780         (setup_pointers_and_addressables): Likewise.
13781         (new_type_alias): Likewise.
13782         (struct used_part): Remove.
13783         (used_portions): Likewise.
13784         (struct used_part_map): Likewise.
13785         (used_part_map_eq): Likewise.
13786         (used_part_map_hash): Likewise.
13787         (free_used_part_map): Likewise.
13788         (up_lookup): Likewise.
13789         (up_insert): Likewise.
13790         (get_or_create_used_part_for): Likewise.
13791         (create_sft): Likewise.
13792         (create_overlap_variables_for): Likewise.
13793         (find_used_portions): Likewise.
13794         (create_structure_vars): Likewise.
13795         * tree.def (STRUCT_FIELD_TAG): Remove.
13796         * tree.h (MTAG_P): Adjust.
13797         (struct tree_memory_tag): Remove base_for_components and
13798         unpartitionable flags.
13799         (struct tree_struct_field_tag): Remove.
13800         (SFT_PARENT_VAR): Likewise.
13801         (SFT_OFFSET): Likewise.
13802         (SFT_SIZE): Likewise.
13803         (SFT_NONADDRESSABLE_P): Likewise.
13804         (SFT_ALIAS_SET): Likewise.
13805         (SFT_UNPARTITIONABLE_P): Likewise.
13806         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
13807         (union tree_node): Remove sft field.
13808         * alias.c (get_alias_set): Remove special handling of SFTs.
13809         * print-tree.c (print_node): Remove handling of SFTs.
13810         * tree-dump.c (dequeue_and_dump): Likewise.
13811         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
13812         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
13813         * tree-predcom.c (set_alias_info): Do not set subvars.
13814         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
13815         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
13816         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
13817         (add_vars_for_offset): Remove.
13818         (add_virtual_operand): Remove special handling of SFTs.
13819         (add_call_clobber_ops): Likewise.
13820         (add_call_read_ops): Likewise.
13821         (get_asm_expr_operands): Likewise.
13822         (get_modify_stmt_operands): Likewise.
13823         (get_expr_operands): Likewise.
13824         (add_to_addressable_set): Likewise.
13825         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
13826         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
13827         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
13828         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
13829         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
13830         (tree_node_structure): Likewise.
13831         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
13832         handling of SFTs.
13833         (find_what_p_points_to): Likewise.
13834
13835 2008-05-08  Sa Liu  <saliu@de.ibm.com>
13836
13837         * config/spu/spu.md: Fixed subti3 pattern.
13838
13839 2008-05-08  Richard Guenther  <rguenther@suse.de>
13840
13841         PR middle-end/36154
13842         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
13843         sure to create a representative for trailing arrays for PTA.
13844
13845 2008-05-08  Richard Guenther  <rguenther@suse.de>
13846
13847         PR middle-end/36172
13848         * fold-const.c (operand_equal_p): Two objects which types
13849         differ in pointerness are not equal.
13850
13851 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
13852
13853         * calls.c (compute_argument_block_size): Add argument tree fndecl.
13854         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
13855         (emit_library_call_value_1): Add new variable fndecl initialized by
13856         NULL_TREE. It should be the decl type of orgfun, but this information
13857         seems not to be available here, so it uses the default calling abi.
13858         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
13859         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
13860         by TARGET_RETURN_IN_MEMORY.
13861         * config/i386/i386-interix.h: Likewise.
13862         * config/i386/i386.h: Likewise.
13863         * config/i386/i386elf.h: Likewise.
13864         * config/i386/ptx4-i.h: Likewise.
13865         * config/i386/sol2-10.h: Likewise.
13866         * config/i386/sysv4.h: Likewise.
13867         * config/i386/vx-common.h: Likewise.
13868         * config/cris/cris.h: Removed #if 0 clause.
13869         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
13870         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
13871         argument.
13872         (ix86_sol10_return_in_memory): Likewise.
13873         (ix86_i386elf_return_in_memory): New.
13874         (ix86_i386interix_return_in_memory): New.
13875         * config/mt/mt-protos.h (mt_return_in_memory): New.
13876         * config/mt/mt.c: Likewise.
13877         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
13878         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
13879         * config/bfin/bfin.h: Likewise.
13880         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
13881         argument.
13882         * config/bfin/bfin.c: Likewise.
13883         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
13884         * config/alpha/unicosmk.h: Likewise.
13885         * config/i386/cygming.h: Likewise.
13886         * config/iq2000/iq2000.h: Likewise.
13887         * config/mips/mips.h: Likewise.
13888         * config/mn10300/mn10300.h: Likewise.
13889         * config/rs6000/rs6000.h: Likewise.
13890         * config/score/score.h: Likewise.
13891         * config/spu/spu.h: Likewise.
13892         * config/v850/v850.h: Likewise.
13893         * defaults.h: Likewise.
13894         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
13895         * expr.c (emit_block_move): Adjust use of
13896         OUTGOING_REG_PARM_STACK_SPACE.
13897         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
13898         OUTGOING_REG_PARM_STACK_SPACE.
13899         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
13900
13901 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
13902
13903         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
13904         on OMP_RETURN for OMP_FOR.
13905
13906         PR debug/35896
13907         * dwarf2out.c (dw_expand_expr, common_check): Removed.
13908         (fortran_common): New function.
13909         (gen_variable_die): Call fortran_common instead of common_check,
13910         adjust for it returning tree instead of rtx.  Formatting.
13911
13912 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
13913
13914         PR rtl/7335
13915         PR rtl/33826
13916         * see.c (see_copy_insn): Copy new pure const attributes for new call.
13917         * c-decl.c (merge_decls): Ditto.
13918         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
13919         to RTL_CONST_OR_PURE_CALL_P.
13920         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
13921         Initialized DECL_LOOPING_CONST_PURE.
13922         (process_call_operands): Set tree_side_effects properly.
13923         * tree.h (TREE_READONLY_DECL_P): Removed.
13924         (DECL_IS_PURE): Renamed to DECL_PURE_P.
13925         (DECL_LOOPING_OR_CONST_P): New macro.
13926         (struct tree_function_decl): Added looping_const_or_pure_p.
13927         (ECF_*) Renumbered.
13928         (ECF_LOOPING_OR_CONST_P): New macro.
13929         * rtlanal.c (pure_const_p): Removed.
13930         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
13931         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
13932         to RTL_CONST_CALL_P.
13933         * ipa-pure-const.c (pure_const_state_e): Added looping field.
13934         (check_decl, check_tree, check_call, scan_function): Initialize
13935         looping.
13936         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
13937         (static_execute): Set looping true for recursive functions.
13938         Undo setting state to IPA_NEITHER for recursive functions.
13939         * cse.c (cse_insn):
13940         * ifcvt.c (noce_can_store_speculate_p): Changed
13941         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or
13942         RTL_CONST_OR_PURE_CALL_P.
13943         * dse.c (scan_insn): Ditto.
13944         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
13945         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
13946         RTL_CONST_OR_PURE_CALL_P.
13947         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
13948         pure_call_p to RTL_CONST_CALL_P.
13949         * gimplify.c (gimplify_call_expr): Clear side effects for
13950         non-looping pure and constant calls.
13951         * calls.c (emit_call_1): Set rtl flags from ecf flags.
13952         (flags_from_decl_or_type): Set ecf flags from decl flags.
13953         (initialize_argument_information): Turn off
13954         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
13955         Change const to pure if callee_copies is true rather than just
13956         turning off const.
13957         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
13958         way of marking pure calls.
13959         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
13960         Remove hack that was supposed to fix pr7335 and remove old
13961         way of marking pure calls.
13962         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
13963         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
13964         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
13965         RTL_CONST_OR_PURE_CALL_P.
13966         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
13967         * loop-invariant.c (find_exits, find_invariant_bb): Changed
13968         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
13969         * sched-deps.c (schedule_analyze): Ditto.
13970         * rtl.h (struct rtx_def): Use call field, unchanging field, and
13971         return_val field of calls to represent pure and const function info.
13972         (CONST_OR_PURE_CALL_P): Deleted macro.
13973         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
13974         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
13975         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
13976         TREE_READONLY.
13977         * tree-optimize.c (execute_fixup_cfg): Added test for
13978         ECF_LOOPING_CONST_OR_PURE.
13979         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
13980         DECL_PURE_P.
13981         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
13982         effects for looping pure or const calls.
13983         (verify_gimple_expr): Added verification code.
13984         * config/alpha/alpha.c (alpha_legitimize_address,
13985         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
13986         RTL_CONST_CALL_P.
13987         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
13988         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
13989         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
13990         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
13991         RTL_CONST_OR_PURE_CALL_P.
13992         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
13993         and const calls to be deleted.
13994
13995 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
13996
13997         PR target/35714
13998         * config/i386/mmx.md (mmx_subv2sf3): New expander.
13999         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
14000         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
14001         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
14002         to handle nonimmediate operands.
14003         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
14004         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
14005         to handle nonimmediate operands.
14006         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
14007         (mmx_pmulhrwv4hi3): New expander.  Use
14008         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14009         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
14010         (sse2_umulv1siv1di3): New expander.  Use
14011         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14012         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
14013         (mmx_eq<mode>3): New expander.  Use
14014         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14015         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
14016         (mmx_uavgv8qi3): New expander.  Use
14017         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14018         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
14019         (mmx_uavgv4hi3): New expander.  Use
14020         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14021
14022         * config/i386/sse.md
14023         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
14024         to handle nonimmediate operands.
14025         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
14026         to handle nonimmediate operands.
14027         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
14028         to handle nonimmediate operands.
14029         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
14030         to handle nonimmediate operands.
14031         (sse2_unpckhpd_exp): New expander.  Use
14032         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14033         (sse2_unpcklpd_exp): New expander.  Use
14034         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14035         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
14036         to handle nonimmediate operands.
14037         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
14038         to handle nonimmediate operands.
14039         (*sse2_<plusminus_insn><mode>3): Rename from
14040         sse2_<plusminus_insn><mode>3 insn pattern.
14041         (sse2_<plusminus_insn><mode>3): New expander.  Use
14042         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14043         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
14044         (sse2_umulv2siv2di3): New expander.  Use
14045         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14046         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
14047         (sse4_1_mulv2siv2di3): New expander.  Use
14048         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14049         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
14050         (sse2_pmaddwd): New expander.  Use
14051         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14052         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
14053         (sse2_eq<mode>3): New expander.  Use
14054         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14055         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
14056         (sse4_1_eqv2di3): New expander.  Use
14057         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14058         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
14059         (sse2_uavgv16qi3): New expander.  Use
14060         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14061         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
14062         (sse2_uavgv16qi3): New expander.  Use
14063         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14064         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
14065         (sse2_uavgv8hi3): New expander.  Use
14066         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14067         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
14068         (ssse3_pmulhrswv8hi3): New expander.  Use
14069         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14070         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
14071         (ssse3_pmulhrswv4hi3): New expander.  Use
14072         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14073
14074         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
14075         (<sse>_vmmul<mode>3): Ditto.
14076         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
14077         (divv2df3): Ditto.
14078         (ssse3_pmaddubsw128): Use register_operand for operand 1.
14079         (ssse3_pmaddubsw): Ditto.
14080
14081         * config/i386/i386.c (struct_builtin_description)
14082         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
14083         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
14084         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
14085         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
14086         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
14087         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
14088         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
14089         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
14090         (ix86_fixup_binary_operands): Assert that src1
14091         and src2 must have the same mode when swapped.
14092         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
14093         and ix86_binary_operator_ok.  Do not force operands in registers
14094         when optimizing.
14095
14096 2008-05-07  Jan Hubicka  <jh@suse.cz>
14097
14098         * cgraph.c (dump_cgraph_node): Update.
14099         * cgraph.h (cgraph_local_info): Break out inline summary.
14100         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
14101         hook.
14102         * ipa-inline (inline_summary): New accestor function.
14103         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
14104         cgraph_decide_inlining, compute_inline_parameters): Update.
14105         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
14106
14107 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
14108
14109         Cleanup ColdFire scheduling support and add V4 pipeline model.
14110
14111         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
14112         (define_attr cpu): Add cfv4 value.
14113         (define_attr type, define_attr type1): Merge into a single 'type'
14114         attribute.  Update all uses.
14115         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
14116         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
14117         Update all uses.
14118         (define_attr opx_mem, define_attr opy_mem): Remove.
14119         (define_attr op_mem): Clean up, update comment.
14120         (define_attr size): Use specific values instead of general int.
14121         (define_attr guess, define_attr split): Remove.  Update all uses.
14122         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
14123         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
14124         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
14125         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
14126         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
14127         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
14128         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
14129         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
14130         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
14131         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
14132         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
14133         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
14134         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
14135         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
14136         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
14137         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
14138         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
14139         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
14140         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
14141         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
14142         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
14143         Update or set attributes.
14144         (stack_tie): New fake instruction.
14145
14146         * config/m68k/m68k.h (TUNE_CFV4): New macro.
14147         (m68k_sched_attr_size): Update declaration.
14148         (m68k_sched_attr_type2): Remove.
14149         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
14150         Declare new bypass predicates.
14151
14152         * config/m68k/m68k.c (m68k_sched_issue_rate,
14153         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
14154         implementations.
14155         (TARGET_SCHED_ISSUE_RATE,
14156         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
14157         (override_options): Handle scheduling for ColdFire V4 core.
14158         (m68k_expand_prologue): Emit stack_tie.
14159         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
14160         'OP_TYPE_FPN'.  Update all uses.
14161         (sched_guess_p): Remove.
14162         (sched_address_type): Handle symbolic addresses.
14163         (sched_get_operand): New static function.
14164         (sched_operand_type): Merge into sched_attr_op_type.
14165         (sched_attr_op_type): Handle FP registers, handle quick constants,
14166         update.
14167         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
14168         (m68k_sched_attr_size): Update.  Move logic to ...
14169         (sched_get_attr_size_int): New static function.
14170         (sched_get_opxy_mem_type): New static function.
14171         (m68k_sched_attr_op_mem): Update.
14172         (m68k_sched_attr_type2): Remove.
14173         (sched_cfv4_bypass_data): New static variable.
14174         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
14175         (m68k_sched_issue_rate): Implement scheduler hook.
14176         (struct _sched_ib: enabled_p): New field.
14177         (m68k_sched_variable_issue): Update.  Handle V4.
14178         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
14179         sched_dump_class_func_t, sched_dump_split_class,
14180         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
14181         sched_dump_dfa_class, m68k_sched_dump): Remove.
14182         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
14183         hook.
14184         (m68k_sched_init_global): Remove statisctics dumping, introduce
14185         sanity check that all instructions have pipeline reservations.  Handle
14186         ColdFire V4 core.
14187         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
14188         Handle ColdFire V4 core.
14189         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
14190         New static functions.
14191         (m68k_sched_address_bypass_p): New bypass predicate.
14192         (sched_get_indexed_address_scale): New static function.
14193         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
14194
14195         * cf.md: Update comments.
14196         (define_attr type2): Remove.  Use 'type' attribute instead.
14197         Update all uses.
14198         (cf_ib): Rename to cfv123_ib.  Update all uses.
14199         (cf_oep): Rename to cfv123_oep.  Update all uses.
14200         (cf_chr): Rename to cfv123_chr.  Update all uses.
14201         (cf_mem): Rename to cfv123_mem.  Update all uses.
14202         (cf_mac): Move to more appropriate place.
14203         (cfv123_guess): New automaton and cpu_unit.
14204         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
14205         Update uses of 'size' attribute.  Handle before reload scheduling.
14206         (cfv123_guess): New dummy reservation for unhandled instructions.
14207         (cfv4_*): Pipeline description of ColdFire V4 core.
14208         (ignore): New reservation to handle 'ignore' type.
14209
14210 2008-05-07  Ian Lance Taylor  <iant@google.com>
14211
14212         PR middle-end/36013
14213         * gimplify.c (find_single_pointer_decl_1): Don't look through
14214         indirections.
14215         (find_single_pointer_decl): Adjust comments.
14216
14217 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
14218
14219         PR middle-end/36137
14220         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
14221         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
14222
14223         PR middle-end/36106
14224         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
14225         integral type rather than floating point, then VIEW_CONVERT_EXPR
14226         to the floating point type.
14227
14228 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
14229
14230         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
14231         TFmode op0 to register.
14232
14233 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
14234
14235         * c-decl.c (grokdeclarator): Comment typo.
14236
14237 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
14238
14239         * tree-flow.h: Remove prototype for computed_goto_p.
14240         * tree-cfg.c (computed_goto_p): Make static.
14241
14242 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
14243
14244         PR target/35657
14245         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
14246         (contains_aligned_value_p): This.  Handle _Decimal128.
14247         (ix86_function_arg_boundary): Only align _Decimal128 to its
14248         natural boundary and handle it properly.
14249
14250 2008-05-06  Martin Jambor  <mjambor@suse.cz>
14251
14252         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
14253         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
14254         (ipcp_method_set_orig_node): Removed.
14255         (ipcp_cval_get_cvalue_type): Removed.
14256         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
14257         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
14258         (ipcp_cval_set_cvalue_type): Removed.
14259         (ipcp_cval_get_cvalue): Removed.
14260         (ipcp_cval_set_cvalue): Removed.
14261         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
14262         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
14263         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
14264         (ipcp_cval_meet): Renamed to ipa_lattice_meet
14265         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
14266         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
14267         (ipcp_get_ith_lattice): Changed parameters.
14268         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
14269         (ipcp_lattice_from_jfunc): Changed parameters.
14270         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
14271         (ipcp_method_cval_print): Added temporary variable info.
14272         (ipcp_redirect): Removed already unused local variable caller.
14273         (ipcp_redirect): New temporary variable orig_callee_info
14274         (ipcp_redirect): Removed newly unused local variable callee.
14275         (ipcp_redirect): Removed (a bit confusing) local variable type.
14276         (ipcp_insert_stage): Added local variable info.
14277         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters
14278         renamed too
14279         (ipcp_formal_create): Removed.
14280         (ipcp_method_cval_set): Removed.
14281         (ipcp_propagate_stage): Renamed lattice variables.
14282         (ipcp_method_cval_set_cvalue_type): Removed.
14283         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
14284         (ipcp_print_all_lattices): Changed printed strings to refer to
14285         lattices rather than cvals.
14286         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
14287         (ipcp_propagate_const): Changed formal parameters.
14288         (build_const_val): Changed formal parameters.
14289         (ipcp_insert_stage): Removed useless variable cvalue
14290         (build_const_val): Changed formal parameters.
14291         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
14292         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
14293         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
14294         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
14295         (ipcp_print_func_profile_counts): Changed string from "method" to
14296         "function"
14297         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
14298         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
14299         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
14300         (ipcp_structures_print): Renamed to ipcp_print_all_structures
14301         (ipcp_profile_print): Renamed to ipcp_print_profile_data
14302         (ipcp_lat_is_const): Changed parameters and made inline.
14303         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
14304         (ipcp_redirect): Renamed to ipcp_need_redirect_p
14305         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using
14306         the predicate condition directly
14307         (ipcp_propagate_stage): Added local variable args. Removed local
14308         variable callee.  (Both are mere code simplifications.)
14309         (ipcp_method_dont_insert_const): Renamed to
14310         ipcp_node_not_modifiable_p.
14311         (ipcp_node_not_modifiable_p): Made inline.
14312         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
14313         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
14314         (ipcp_print_all_lattices): Removed variable cvalue
14315         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
14316         Updated comments.
14317
14318 2008-05-06  Olivier Hainque  <hainque@adacore.com>
14319
14320         * tree-sra.c (try_instantiate_multiple_fields): Early return
14321         if field has POINTER_TYPE.
14322
14323 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
14324
14325         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
14326         by using 'q' specifier for instruction.
14327         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
14328
14329 2008-05-06  Anatoly Sokolov <aesok@post.ru>
14330
14331         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
14332         Change mode of zero_extract from QImode to HImode.
14333         (sign bit tests peepholes): (Ditto.).
14334
14335 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
14336
14337         * config/i386/mmx.md: Remove double backslashes from asm templates.
14338         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
14339         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
14340         to handle nonimmediate operands.
14341         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
14342         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
14343         to handle nonimmediate operands.
14344         (*mmx_<code>v2sf3_finite): New insn pattern.
14345         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
14346         (mmx_<code>v2sf3): New expander.  Use
14347         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14348         (mmx_<plusminus_insn><mode>3): New expander.  Use
14349         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14350         (*mmx_<plusminus_insn><mode>3): New insn pattern.
14351         (mmx_add<mode>3): Removed.
14352         (mmx_ssadd<mode>3): Ditto.
14353         (mmx_usadd<mode>3): Ditto.
14354         (mmx_sub<mode>3): Ditto.
14355         (mmx_sssub<mode>3): Ditto.
14356         (mmx_ussub<mode>3): Ditto.
14357         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
14358         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
14359         to handle nonimmediate operands.
14360         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
14361         insn pattern.
14362         (mmx_smulv4hi3_highpart): New expander.  Use
14363         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14364         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
14365         insn pattern.
14366         (mmx_umulv4hi3_highpart): New expander.  Use
14367         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14368         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
14369         (mmx_<code>v4hi3): New expander.  Use
14370         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14371         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
14372         (mmx_<code>v8qi3): New expander.  Use
14373         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14374         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
14375         (mmx_<code><mode>3): New expander.  Use
14376         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
14377
14378 2008-05-05  Jan Hubicka  <jh@suse.cz>
14379
14380         PR tree-optimization/36118
14381         * passes.c (pass_init_dump_file): Fix dump header.
14382
14383 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14384
14385         PR middle-end/36141
14386         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
14387         VCE for function decls.
14388
14389 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
14390
14391         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
14392
14393 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
14394
14395         * config/i386/i386.md (sat_plusminus): New.
14396         (plusminus_insn): Likewise.
14397         (plusminus_mnemonic): Likewise.
14398         (addsub): Removed.
14399         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
14400         (*<addsub><mode>3_cc_overflow): Renamed to ...
14401         (*<plusminus_insn><mode>3_cc_overflow): This.
14402         (*<addsub>si3_zext_cc_overflow): Renamed to ...
14403         (*<plusminus_insn>si3_zext_cc_overflow): This.
14404
14405         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
14406         (<plusminus_insn><mode>3): This.
14407         (*<addsub><mode>3): Renamed to ...
14408         (*<plusminus_insn><mode>3): This.
14409         (<sse>_vm<addsub><mode>3): Renamed to ...
14410         (<sse>_vm<plusminus_insn><mode>3): This.
14411         (sse3_h<addsub>v4sf3): Renamed to ...
14412         (sse3_h<plusminus_insn>v4sf3): This.
14413         (sse3_h<addsub>v2df3): Renamed to ...
14414         (sse3_h<plusminus_insn>v2df3): This.
14415         (<plusminus_insn><mode>3): New.
14416         (*<plusminus_insn><mode>3): Likewise.
14417         (sse2_<plusminus_insn><mode>3): Likewise.
14418         (add<mode>): Removed.
14419         (*add<mode>3): Likewise.
14420         (sse2_ssadd<mode>3): Likewise.
14421         (sse2_usadd<mode>3): Likewise.
14422         (sub<mode>3): Likewise.
14423         (*sub<mode>3): Likewise.
14424         (sse2_sssub<mode>3): Likewise.
14425         (sse2_ussub<mode>3): Likewise.
14426
14427 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
14428
14429         * gthr-single.h: Add in required interface elements as per gthr.h.
14430         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
14431         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
14432         Generalize UNUSED macro.
14433         (__gthread_once): Add.
14434         (__gthread_key_create): Add.
14435         (__gthread_key_delete): Add.
14436         (__gthread_getspecific): Add.
14437         (__gthread_setspecific): Add.
14438
14439 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
14440
14441         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
14442         the same size types for the indirect reference on the rhs, then
14443         create a VCE.
14444
14445 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
14446
14447         * config/i386/i386.md
14448         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
14449         one insn template instead of template series.
14450         (*xordi_1_rex64): Ditto.
14451         (*xordi_2_rex64): Ditto.
14452
14453 2008-05-05  Ira Rosen  <irar@il.ibm.com>
14454
14455         PR tree-optimization/36119
14456         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
14457         in case of SLP.
14458
14459 2008-06-04  Jan Hubicka  <jh@suse.cz>
14460
14461         tree-optimization/36100
14462         * tree-pass.h (pass_O0_always_inline): Declare.
14463         * ipa-inline.c (inline_transform): Remove dead code.
14464         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
14465         pass_O0_always_inline): New.
14466         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
14467
14468 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
14469
14470         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
14471         mnemonic in this_param move for TARGET_64BIT.
14472
14473 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
14474
14475         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
14476         (*strmovsi_rex_1): Ditto.
14477         (*strsetsi_1): Ditto.
14478         (*strsetsi_rex_1): Ditto.
14479
14480         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
14481         adddicc expanders using SWI mode iterator.
14482
14483 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
14484
14485         PR target/36121
14486         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
14487         argument handling.
14488
14489 2008-05-04  David S. Miller  <davem@davemloft.net>
14490
14491         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
14492         (sparc*-*-linux*): Use linux.h in tm_file.
14493         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
14494         compiler defaulting to 32-bit.
14495         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
14496         no longer needed.
14497         * config/sparc/linux.h: Remove definitions now obtained
14498         properly from linux.h
14499         * config/sparc/linux64.h: Likewise.
14500         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
14501         don't want this setting for 32-bit builds in a biarch compiler.
14502         * doc/install.texi: Add sparc-linux to list of targets
14503         supporting --enable-targets=all.
14504
14505 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
14506
14507         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
14508
14509 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
14510
14511         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
14512         after V4SI_FTYPE_V8HI.
14513         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
14514         case V4SI_FTYPE_V2DF.
14515
14516 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
14517
14518         * doc/invoke.texi (max-flow-memory-locations): Removed.
14519         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
14520
14521 2008-05-03  Richard Guenther  <rguenther@suse.de>
14522
14523         PR middle-end/34973
14524         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
14525
14526 2008-05-02  David S. Miller  <davem@davemloft.net>
14527
14528         * config.gcc (need_64bit_hwint): Document libcpp dependency.
14529
14530 2008-05-02  Simon Baldwin <simonb@google.com>
14531
14532         PR bootstrap/36108
14533         * c-common.h (warn_array_subscript_range): Removed.
14534         * c-common.c (warn_array_subscript_range): Ditto.
14535         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
14536         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
14537
14538 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
14539
14540         * config/i386/i386.c (ix86_special_builtin_type): New.
14541         (bdesc_special_args): Likewise.
14542         (ix86_expand_special_args_builtin): Likewise.
14543         (ix86_init_mmx_sse_builtins): Updated.
14544         (ix86_expand_builtin): Updated.
14545         (ix86_expand_store_builtin): Removed.
14546         (ix86_expand_unop_builtin): Likewise.
14547
14548         * config/i386/mm3dnow.h (__v2sf): Moved to ...
14549         * config/i386/mmintrin.h (__v2sf): Here.
14550
14551         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
14552         const __v2sf.
14553         (_mm_loadl_pi): Likewise.
14554         (_mm_storeh_pi): Replace __v2si with __v2sf.
14555         (_mm_storel_pi): Likewise.
14556
14557         * doc/extend.texi: Correct __builtin_ia32_loadhps,
14558         __builtin_ia32_loadlps, __builtin_ia32_storehps,
14559         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
14560         __builtin_ia32_loadlpd.
14561
14562 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
14563
14564         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
14565         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
14566         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
14567         (ix86_init_mmx_sse_builtins): Updated.
14568         (ix86_expand_args_builtin): Likewise.
14569         (ix86_expand_builtin): Likewise.
14570         (ix86_expand_unop1_builtin): Renamed to ...
14571         (ix86_expand_unop_vec_merge_builtin): This.
14572
14573 2008-05-01  Jan Hubicka  <jh@suse.cz>
14574
14575         PR bootstrap/36100
14576         * ipa-inline.c (inline_generate_summary): Make static.
14577         (inline_transform): Do not call inlining at -O0; make static.
14578         * passes.c (execute_todo): Add sanity check.
14579         (execute_one_ipa_transform_pass): Execute proper flags.
14580
14581 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
14582
14583         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
14584         (DECL_NONADDRESSABLE_P): Likewise.
14585         * alias.c (record_component_aliases): Fix comment.
14586
14587 2008-05-01  Simon Baldwin <simonb@google.com>
14588
14589         * c-common.h (warn_array_subscript_range): New function.
14590         * c-common.c (warn_array_subscript_range): Ditto.
14591         * tree-vrp.c (check_array_ref): Corrected code to agree with
14592         comment, ignoring only arrays of size 0 or size 1.
14593         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
14594
14595 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14596
14597         * config/i386/i386.c (ix86_builtin_type): Replace
14598         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
14599         (bdesc_args): Updated.
14600         (ix86_init_mmx_sse_builtins): Likewise.
14601         (ix86_expand_args_builtin): Likewise.
14602
14603         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
14604         with __v1di.
14605
14606         * doc/extend.texi: Correct __builtin_ia32_palignr.
14607
14608 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14609
14610         PR target/36095
14611         * config/i386/i386.c (bdesc_crc32): Removed.
14612         (ix86_expand_crc32): Likewise.
14613         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
14614         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
14615         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
14616         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
14617         UINT_FTYPE_UINT_UCHAR.
14618         (bdesc_args): Updated. Add crc32 builtins.
14619         (ix86_init_mmx_sse_builtins): Updated.
14620         (ix86_expand_args_builtin): Updated to support subreg.
14621
14622         * doc/extend.texi: Correct __builtin_ia32_crc32di.
14623
14624 2008-05-01  Jan Hubicka  <jh@suse.cz>
14625
14626         * tree-pass.h (opt_pass): Add IPA_PASS.
14627         (varpool_node, cgraph_node): Forward declare.
14628         (ipa_opt_pass): Define.
14629         (pass_ipa_inline): Turn into ipa_opt_pass.
14630         (pass_apply_inline): Remove.
14631         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
14632         (apply_inline): Turn into ....
14633         (inline_transform): ... this one.
14634         (inline_generate_summary): New function.
14635         (pass_apply_inline): Remove.
14636         * function.h (ipa_opt_pass): Forward declare structure; typedef;
14637         vector.
14638         (struct function): Add ipa_transforms_to_apply.
14639         * passes.c (register_one_dump_file): Work on IPA_PASS.
14640         (init_optimization_passes): Remove pass_inline_parameters and
14641         pass_apply_inline.
14642         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
14643         (execute_one_pass) ... here; apply transforms when possible.
14644         (add_ipa_transform_pass, execute_ipa_summary_asses,
14645         execute_one_ipa_transform_pass): New.
14646         (execute_ipa_pass_list): Update for IPA_PASS type.
14647
14648 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14649
14650         * config/i386/i386.c (ix86_builtin_type): Add
14651         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
14652         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
14653         (bdesc_args): Add SSE4a builtins.
14654         (ix86_init_mmx_sse_builtins): Updated.
14655         (ix86_expand_args_builtin): Likewise.
14656         (ix86_expand_builtin): Likewise.
14657
14658 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
14659
14660         * config/i386/i386.c (ix86_builtin_type): Add
14661         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
14662         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
14663         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
14664         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
14665         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
14666         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
14667         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
14668         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
14669         and DI_FTYPE_DI_DI_INT.
14670         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
14671         (ix86_init_mmx_sse_builtins): Updated.
14672         (ix86_expand_args_builtin): Likewise.
14673         (ix86_expand_builtin): Likewise.
14674         (ix86_expand_binop_imm_builtin): Removed.
14675
14676         * doc/extend.texi: Correct __builtin_ia32_palignr128.
14677
14678 2008-04-30  Richard Guenther  <rguenther@suse.de>
14679
14680         PR tree-optimization/32921
14681         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
14682
14683 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14684
14685         * config/arm/arm.c (arm_unwind_emit): Use
14686         crtl->all_throwers_are_sibcalls instead of
14687         cfun->all_throwers_are_sibcalls.
14688         (arm_output_fn_unwind): Likewise.
14689         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
14690         instead of cfun->uses_pic_offset_table.
14691         (frv_expand_prologue): Likewise.
14692         (frv_frame_pointer_required): Likewise.
14693         (frv_expand_fdpic_call): Likewise.
14694         (frv_emit_movsi): Likewise.
14695         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
14696         cfun->returns_pcc_struct instead of
14697         current_function_returns_pcc_struct.
14698         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
14699         instead of cfun->calls_eh_return.
14700         (m32c_pushm_popm): Likewise.
14701         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
14702         "extern" declaration.
14703
14704 2008-04-30  Richard Guenther  <rguenther@suse.de>
14705
14706         PR tree-optimization/21636
14707         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
14708         constant address.
14709         (evaluate_stmt): Print the likely value.
14710         (ccp_visit_stmt): Avoid excessive vertical spacing.
14711
14712 2008-04-30  Rafael Espíndola  <espindola@google.com>
14713
14714         * builtins.c (fold_call_expr): Return realret.
14715         * tree-ssa-threadedge.c
14716         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14717         __builtin_object_size.
14718
14719 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
14720
14721         * gcc.c (wrapper_string): New variable.
14722         (insert_wrapper): New function.
14723         (execute): New option -wrapper.
14724         * doc/invoke.texi (Overall Options): New driver option -wrapper.
14725
14726 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
14727
14728         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
14729         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
14730         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
14731         from...
14732         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
14733         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
14734         config/rs6000/e500crtres64gprctr.asm,
14735         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
14736         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
14737         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
14738         config/rs6000/e500crtsav64gprctr.asm,
14739         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
14740         config/rs6000/e500crtsavg64gprctr.asm: New files.
14741         * config/rs6000/t-ppccomm: Add build rules for new files.
14742         (LIB2FUNCS_STATIC_EXTRA): Add new files.
14743         * config/rs6000/t-netbsd: Add build rules for new files.
14744         (LIB2FUNCS_STATIC_EXTRA): New variable.
14745         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
14746         (CRTSAVRES_DEFAULT_SPEC): Likewise.
14747         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
14748
14749 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
14750
14751         * config/i386/i386.c (ix86_builtin_type): Add
14752         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
14753         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
14754         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
14755         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
14756         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
14757         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
14758         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
14759         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
14760         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
14761         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
14762         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
14763         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
14764         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
14765         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
14766         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
14767         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
14768         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
14769         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
14770         V1DI_FTYPE_V2SI_V2SI.
14771         (bdesc_2arg): Moved to ...
14772         (bdesc_args): Here.
14773         (ix86_init_mmx_sse_builtins): Updated.
14774         (ix86_expand_args_builtin): Updated.  Take a pointer
14775         to const struct builtin_description.  Handle comparison
14776         builtin functions.
14777         (ix86_expand_sse_compare): Take a new argument for swapping operands.
14778         (ix86_expand_builtin): Updated.
14779
14780         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
14781         (ssse3_pmaddubsw128): This.
14782         (ssse3_pmaddubswv4hi3): Renamed to ...
14783         (ssse3_pmaddubsw): This.
14784
14785         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
14786         (__builtin_ia32_packssdw128): Likewise.
14787         (__builtin_ia32_packuswb128): Likewise.
14788         (__builtin_ia32_pmaddubsw): Likewise.
14789         (__builtin_ia32_pmaddubsw128): Likewise.
14790
14791 2008-04-30  Richard Guenther  <rguenther@suse.de>
14792
14793         PR tree-optimization/14847
14794         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
14795         (recognize_bits_test): Use it.
14796         (recognize_single_bit_test): Likewise.
14797
14798 2008-04-30  Martin Jambor  <mjambor@suse.cz>
14799
14800         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
14801         instead of setting number of formal parameters to zero.
14802         (ipcp_init_stage): Do not set the number of actual parameters to zero
14803         either.
14804         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
14805         which are called with variable number of arguments.
14806         (ipcp_insert_stage): Explicitely skipping all nodes which are
14807         called with variable number of arguments.
14808         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible
14809         number of parameters.
14810
14811         * ipa-prop.h (struct ipa_node_params): Added flag
14812         called_with_var_arguments
14813         (ipa_set_param_count): Added.  Changed sole setter to use it.
14814         (ipa_get_param_count): Added.  All readers of param_count
14815         converted to use it instead.
14816         (ipa_set_called_with_variable_arg): Added.
14817         (ipa_is_called_with_var_arguments): Added.
14818         (ipa_get_ith_param): Added.  All readers of param_decls converted
14819         to use it instead.
14820         (ipa_set_cs_argument_count): Added, sole writer to argument_count
14821         changed to use it.
14822         (ipa_get_cs_argument_count): Added, all readers of argument_count
14823         changed to cal it.
14824         (ipa_get_ith_jump_func): Added. Accessors of jump values changed
14825         to use it.
14826
14827         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
14828         (struct ipcp_lattice): Renamed cval_type to type
14829         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
14830
14831         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
14832         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
14833         (ipcp_insert_stage): Changed the type of variable cvalue to tree
14834         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
14835         (build_const_val): Changed the type of parameter cvalue to tree
14836         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
14837         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
14838
14839         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called
14840         constant
14841
14842         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
14843         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
14844         (ipa_add_method): Renamed to ipa_push_func_to_list
14845         (ipa_remove_method): Renamed to ipa_pop_func_from_list
14846         (ipa_callsite_param_count): Removed.
14847         (ipa_callsite_param_count_set): Removed.
14848         (ipa_callsite_param): Removed.
14849         (ipa_callsite_callee): Removed.
14850         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
14851         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
14852         (ipa_method_formal_count): Removed.
14853         (ipa_method_formal_count_set): Removed.
14854         (ipa_method_get_tree): Removed.
14855         (ipa_method_tree_map_create): Removed.
14856         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
14857         (ipa_create_param_decls_array): Creates the array itself
14858         (ipa_create_param_decls_array): Temporary variable info instead of
14859         a few dereferences.
14860         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
14861         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
14862         (get_type): Removed.
14863         (ipa_jf_get_info_type): Removed.
14864         (ipa_node_create): Renamed to ipa_create_node_params
14865         (ipa_free): Renamed to ipa_free_all_node_params
14866         (ipa_nodes_create): Renamed to ipa_create_all_node_params
14867         (ipa_edges_create): Renamed to ipa_create_all_edge_args
14868         (ipa_edges_free): Renamed to ipa_free_all_edge_args
14869         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
14870         (ipa_free_all_node_params): Deallocation to jump_functions moved to
14871         ipa_free_all_edge_args
14872         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
14873         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
14874         (ipa_create_methodlist_node): Removed.
14875         (ipa_methodlist_method): Removed.
14876         (ipa_methodlist_method_set): Removed.
14877         (ipa_methodlist_next_method): Removed.
14878         (ipa_methodlist_next_method_set): Removed.
14879         (ipa_method_is_modified): Removed.
14880         (ipa_method_modify_create): Removed.
14881         (ipa_method_modify_init): Temporary variable info instead of a few
14882         dereferences.
14883         (ipa_detect_param_modifications): Temporary variable info instead of
14884         a few dereferences.
14885         (ipa_compute_jump_functions): Temporary variable info instead of
14886         a few dereferences.
14887         (ipa_method_modify_set): Removed.
14888         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
14889         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather
14890         than craph_node as the first parameter.
14891         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
14892         (ipa_method_modify_init): Removed.
14893         (ipa_compute_jump_functions): Added a temp variable instead of
14894         repeatadly dereferencing the cgraph_edge.aux pointer
14895         (ipa_callsite_param_set_type): Removed.
14896         (ipa_compute_jump_functions): i renamed to index and moved to
14897         an inner block
14898         (ipa_callsite_param_set_info_type_formal): Removed.
14899         (ipa_callsite_param_set_info_type): Removed.
14900         (ipa_callsite_param_map_create): Removed.
14901         (ipa_callsite_tree): Removed.
14902         (ipa_callsite_caller): Removed.
14903         (ipa_pop_func_from_list): return_method removed to return_func
14904
14905         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
14906         prefixed all values with IPA_. Changed all users.
14907         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN,
14908         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF
14909         and FORMAL_IPATYPE IPA_PASS_THROUGH.
14910         (union parameter_info): Renamed to jump_func_value.
14911         (union jump_func_value): Renamed value to constant
14912         (struct ipa_jump_func): Renamed info_type to value
14913         (struct ipa_node): Renamed to ipa_node_params
14914         (struct ipa_node_params): Renamed ipa_arg_num to param_count
14915         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
14916         (struct ipa_node_params): Renamed ipa_mod to modified_flags
14917         (struct ipa_edge): Renamed to ipa_edge_args
14918         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
14919         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
14920         (struct ipa_methodlist): Renamed to ipa_func_list
14921         (struct ipa_func_list): method_p renamed to node, next_method
14922         renamed to next
14923         (ipa_methodlist_p): Removed, switched all users to struct pointer
14924         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
14925
14926 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
14927
14928         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
14929         (rs6000_emit_epilogue): Use backchain to restore only when we
14930         have a large frame.  Make use of frame pointer to restore if we
14931         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
14932
14933 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
14934
14935         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
14936         Add mode to zero_extract.
14937         (sign bit tests peepholes): (Ditto.).
14938
14939 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
14940
14941         * config/i386/i386.c (ix86_builtins): Replace Prescott New
14942         Instructions in comments with SSE3.
14943         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
14944         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
14945         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
14946         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
14947         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
14948         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
14949         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
14950         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
14951         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
14952         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
14953         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
14954         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
14955         (bdesc_sse_args): Renamed to ...
14956         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
14957         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
14958         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
14959         IX86_BUILTIN_FABSQ.
14960         (bdesc_1arg): Moved to ...
14961         (bdesc_args): Here.
14962         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
14963         Instructions in comments with SSE3.
14964         (ix86_expand_sse_operands_builtin): Renamed to ...
14965         (ix86_expand_args_builtin): This.  Updated.
14966         (ix86_expand_unop1_builtin): Update comments.
14967         (ix86_expand_builtin): Updated.
14968
14969 2008-04-29  Richard Guenther  <rguenther@suse.de>
14970
14971         PR tree-optimization/36078
14972         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
14973         Update virtual SSA form after cleaning up the CFG.
14974
14975 2008-04-29  Richard Guenther  <rguenther@suse.de>
14976
14977         PR middle-end/15255
14978         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
14979
14980 2008-04-29  Richard Guenther  <rguenther@suse.de>
14981
14982         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
14983         (compute_may_aliases): Do not call finalize_ref_all_pointers.
14984         (compute_flow_insensitive_aliasing): Do not treat
14985         PTR_IS_REF_ALL pointers special.
14986         (get_smt_for): Likewise.
14987         (may_alias_p): Re-structure.
14988         (is_escape_site): A ref-all pointer conversion is not an escape site.
14989         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
14990         PTR_IS_REF_ALL pointers special.
14991         * tree-ssa-structalias.h (struct alias_info): Remove
14992         ref_all_symbol_mem_tag field.
14993         (PTR_IS_REF_ALL): Remove.
14994
14995 2008-04-29  Richard Guenther  <rguenther@suse.de>
14996
14997         PR middle-end/36077
14998         * fold-const.c (extract_muldiv_1): In combining division constants
14999         make sure to never overflow.
15000
15001 2008-04-29  Nick Clifton  <nickc@redhat.com>
15002
15003         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
15004
15005 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15006
15007         PR bootstrap/35169
15008         * optc-gen.awk: Work around HP-UX/IA awk bug.
15009
15010 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
15011
15012         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
15013         2008-04-25 commit.
15014
15015 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
15016
15017         PR target/36073
15018         * config/i386/i386.md
15019         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
15020         Change operand 1 predicate to nonimmediate_operand.
15021
15022 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
15023
15024         PR debug/36060
15025         * dwarf2out.c (struct die_struct): Mark as chain_circular through
15026         die_sub field.
15027         * gengtype.c (walk_type, write_func_for_structure): Handle
15028         chain_circular.
15029         * doc/gty.texi: Document chain_circular.
15030
15031 2008-04-28  Richard Guenther  <rguenther@suse.de>
15032
15033         PR tree-optimization/36066
15034         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
15035         SCEV and loop.
15036
15037 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
15038
15039         PR target/36064
15040         * config/i386/i386.md
15041         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
15042         Use match_scratch instead of match_operand for operands 3 and 4.
15043
15044 2008-04-27  Richard Guenther  <rguenther@suse.de>
15045
15046         PR tree-optimization/18754
15047         PR tree-optimization/34223
15048         * tree-pass.h (pass_complete_unrolli): Declare.
15049         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
15050         loop size before and after unconditionally of UL_NO_GROWTH in effect.
15051         Rewrite loop into loop closed SSA form if it is not already.
15052         (tree_unroll_loops_completely): Re-structure to iterate over
15053         innermost loops with intermediate CFG cleanups.
15054         Unroll outermost loops only if requested or the code does not grow
15055         doing so.
15056         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
15057         loops are available.
15058         (tree_vectorize): Instead do so here.
15059         (tree_complete_unroll): Also unroll outermost loops.
15060         (tree_complete_unroll_inner): New function.
15061         (gate_tree_complete_unroll_inner): Likewise.
15062         (pass_complete_unrolli): New pass.
15063         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
15064         uses outside of the loop.
15065         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
15066         form if it is available.
15067         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
15068         * passes.c (init_optimization_passes): Schedule complete inner
15069         loop unrolling pass before the first CCP pass after final inlining.
15070
15071 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
15072
15073         * targhooks.h (default_emutls_var_fields,
15074         default_emutls_var_init): Declare.
15075         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
15076         * target.h (struct gcc_target): Add struct emutls member.
15077         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
15078         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
15079         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
15080         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
15081         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
15082         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
15083         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
15084         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
15085         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
15086         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
15087         emit debug information.
15088         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
15089         * varasm.c: Include targhooks.h.
15090         (emutls_object_section, emutls_tmpl_section): New.
15091         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
15092         (EMUTLS_SEPARATOR): New.
15093         (prefix_name): New.
15094         (get_emutls_object_name): New.
15095         (default_emutls_var_fields): New, broken out of ...
15096         (get_emutls_object_type): ... here.  Adjust to use target hooks.
15097         (get_emutls_init_templ_addr): Adjust to use target hooks.
15098         (emutls_decl): Adjust to use target hooks.
15099         (emutls_finish): Likewise.
15100         (default_emutls_var_init): New, broken out of ...
15101         (assemble_variable): ... here.  Adjust to use target hooks.
15102         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
15103         SECCAT_EMUTLS_TMPL.
15104         * c-common.c (handle_section_attribute): Prevent overriding
15105         sections for emulated tls with special sections.
15106         * config/i386/i386.c (x86_64_elf_select_section): Add
15107         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
15108         (x86_64_elf_unique_section): Likewise.
15109         * config/vxworks.c: Include tree.h.
15110         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
15111         (vxworks_override_options): Set TLS scheme.
15112         * doc/tm.texi (Emulated TLS): New node.
15113
15114 2008-04-26  Simon Baldwin <simonb@google.com>
15115
15116         PR c/35652
15117         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
15118         with propagated string constants.
15119
15120 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
15121
15122         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
15123         constraint for operand 2 when operand 0 is memory operand.
15124         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
15125         operand 0 is memory operand.
15126         (fix_trunc<mode>_i387_with_temp): Ditto.
15127         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
15128         operand 2 when operand 1 is memory operand.
15129         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
15130         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
15131         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
15132         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
15133         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
15134         operands 2,3 and 4 when operand 1 is memory operand.
15135         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
15136         is memory operand.
15137         (fistdi2_floor_with_temp): Ditto.
15138         (fist<mode>2_floor_with_temp): Ditto.
15139         (fistdi2_ceil_with_temp): Ditto.
15140         (fist<mode>2_ceil_with_temp): Ditto.
15141         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
15142
15143 2008-04-26  David Daney  <ddaney@avtrex.com>
15144
15145         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
15146         unspec_volitile.
15147         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
15148         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
15149         UNSPEC_UPDATE_GOT_VERSION): Renumber.
15150         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
15151         (compare_and_swap_12): New insn.
15152         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
15153         * config/mips/mips.c (mips_force_binary): New function.
15154         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
15155         (mips_expand_compare_and_swap_12): New function.
15156         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
15157
15158 2008-04-25  Jan Hubicka  <jh@suse.cz>
15159
15160         PR testsuite/35843
15161         * cfgexpand.c (pass_expand): Turn into RTL pass.
15162         * passes.c (execute_one_pass): Do pass typechecking after execution.
15163         * tree-pass.h (pass_expand): Turn into RTL pass.
15164
15165         * function.h (struct rtl_data): Move here fields
15166         accesses_prior_frames, calls_eh_return, saves_all_registers,
15167         has_nonlocal_goto, has_asm_statement, is_thunk,
15168         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
15169         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
15170         arg_pointer_save_area_init from struct function; turn into bool.
15171         (struct function): Move
15172         calls_eh_return, saves_all_registers, has_nonlocal_goto,
15173         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
15174         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
15175         tail_call_emit, arg_pointer_save_area_init
15176         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
15177         (current_function_returns_struct, current_function_returns_pcc_struct,
15178         current_function_calls_setjmp, current_function_calls_alloca,
15179         current_function_accesses_prior_frames,
15180         current_function_calls_eh_return, current_function_is_thunk,
15181         current_function_stdarg, current_function_profile,
15182         current_function_limit_stack, current_function_uses_pic_offset_table,
15183         current_function_uses_const_pool, current_function_has_nonlocal_label,
15184         current_function_saves_all_registers,
15185         current_function_has_nonlocal_goto,
15186         current_function_has_asm_statement): Remove accesor macros.
15187         * ra-conflict.c (global_conflicts): Update.
15188         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
15189         (suitable_for_tail_call_opt_p): Update.
15190         * builtins.c (expand_builtin_return_addr): Update.
15191         (expand_builtin_setjmp_setup): Update.
15192         (expand_builtin_nonlocal_goto): Update.
15193         * final.c (final_start_function): Update.
15194         (profile_function): Update.
15195         (leaf_function_p): Update.
15196         (only_leaf_regs_used): Update.
15197         * df-scan.c (df_get_exit_block_use_set): Update.
15198         * dojump.c (clear_pending_stack_adjust): Update.
15199         * tree-stdarg.c (gate_optimize_stdarg): Update.
15200         * gimple-low.c (lower_function_body): Update.
15201         * global.c (compute_regsets): Update.
15202         (global_alloc): Update.
15203         * dwarf2out.c (dwarf2out_begin_prologue): Update.
15204         * expr.c (expand_assignment): Update.
15205         * dse.c (dse_step0): Update.
15206         (dse_step1): Update.
15207         * c-decl.c (store_parm_decls): Update.
15208         * local-alloc.c (combine_regs): Update.
15209         (find_free_reg): Update.
15210         * function.c (assign_parms_augmented_arg_list): Update.
15211         (assign_parm_find_data_types): Update.
15212         (assign_parms): Update.
15213         (allocate_struct_function): Update.
15214         (expand_function_start): Update.
15215         (expand_function_end): Update.
15216         (get_arg_pointer_save_area): Update.
15217         (thread_prologue_and_epilogue_insns): Update.
15218         (rest_of_match_asm_constraints): Update.
15219         * stor-layout.c (variable_size): Update.
15220         * gcse.c (gcse_main): Update.
15221         (bypass_jumps): Update.
15222         * gimplify.c (gimplify_function_tree): Update.
15223         * calls.c (emit_call_1): Update.
15224         (expand_call): Update.
15225         * bt-load.c (compute_defs_uses_and_gen): Update.
15226         * except.c (sjlj_assign_call_site_values): Update.
15227         (sjlj_emit_function_enter): Update.
15228         (can_throw_external): Update.
15229         (set_nothrow_function_flags): Update.
15230         (expand_builtin_unwind_init): Update.
15231         (expand_eh_return): Update.
15232         (convert_to_eh_region_ranges): Update.
15233         (output_function_exception_table): Update.
15234         * emit-rtl.c (gen_tmp_stack_mem): Update.
15235         * cfgexpand.c (expand_used_vars): Update.
15236         (tree_expand_cfg): Update.
15237         * cfgcleanup.c (rest_of_handle_jump): Update.
15238         * explow.c (allocate_dynamic_stack_space): Update.
15239         * varasm.c (assemble_start_function): Update.
15240         (force_const_mem): Update.
15241         (mark_constant_pool): Update.
15242         * tree-optimize.c (tree_rest_of_compilation): Update.
15243         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
15244         * tree-cfg.c (notice_special_calls): Update.
15245         (is_ctrl_altering_stmt): Update.
15246         (tree_can_make_abnormal_goto): Update.
15247         (tree_purge_dead_abnormal_call_edges): Update.
15248         * config/alpha/predicates.md: Update.
15249         * config/alpha/alpha.c (alpha_sa_mask): Update.
15250         (alpha_sa_size): Update.
15251         (alpha_does_function_need_gp): Update.
15252         (alpha_expand_prologue): Update.
15253         (alpha_start_function): Update.
15254         (alpha_output_function_end_prologue): Update.
15255         (alpha_expand_epilogue): Update.
15256         * config/frv/frv.c (frv_stack_info): Update.
15257         (frv_expand_epilogue): Update.
15258         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
15259         (s390_register_info): Update.
15260         (s390_frame_info): Update.
15261         (s390_init_frame_layout): Update.
15262         (s390_can_eliminate): Update.
15263         (save_gprs): Update.
15264         * config/spu/spu.c (spu_split_immediate): Update.
15265         (need_to_save_reg): Update.
15266         (spu_expand_prologue): Update.
15267         (spu_expand_epilogue): Update.
15268         * config/sparc/sparc.md: Update.
15269         * config/sparc/sparc.c (eligible_for_return_delay): Update.
15270         (sparc_tls_got): Update.
15271         (legitimize_pic_address): Update.
15272         (sparc_emit_call_insn): Update.
15273         (sparc_expand_prologue): Update.
15274         (output_return): Update.
15275         (print_operand): Update.
15276         (sparc_function_ok_for_sibcall): Update.
15277         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
15278         * config/m32r/m32r.md: Update.
15279         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
15280         (m32r_compute_frame_size): Update.
15281         (m32r_expand_prologue): Update.
15282         (m32r_expand_epilogue): Update.
15283         (m32r_legitimize_pic_address): Update.
15284         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
15285         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
15286         * config/i386/i386.c (ix86_frame_pointer_required): Update.
15287         (gen_push): Update.
15288         (ix86_save_reg): Update.
15289         (ix86_compute_frame_layout): Update.
15290         (ix86_expand_prologue): Update.
15291         (ix86_expand_epilogue): Update.
15292         * config/sh/sh.c (output_stack_adjust): Update.
15293         (calc_live_regs): Update.
15294         (sh5_schedule_saves): Update.
15295         (sh_expand_prologue): Update.
15296         (sh_expand_epilogue): Update.
15297         (sh_setup_incoming_varargs): Update.
15298         (sh_allocate_initial_value): Update.
15299         (sh_get_pr_initial_val): Update.
15300         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
15301         * config/sh/sh.md (label:): Update.
15302         * config/avr/avr.c (out_movhi_mr_r): Update.
15303         * config/crx/crx.h (enum): Update.
15304         * config/xtensa/xtensa.h (along): Update.
15305         * config/stormy16/stormy16.c Update.
15306         (xstormy16_compute_stack_layout): Update.
15307         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
15308         (fr30_expand_prologue): Update.
15309         * config/cris/cris.c (cris_conditional_register_usage): Update.
15310         (cris_reg_saved_in_regsave_area): Update.
15311         (cris_initial_frame_pointer_offset): Update.
15312         (cris_simple_epilogue): Update.
15313         (cris_expand_prologue): Update.
15314         (cris_expand_epilogue): Update.
15315         (cris_expand_pic_call_address): Update.
15316         (cris_asm_output_symbol_ref): Update.
15317         (cris_asm_output_label_ref): Update.
15318         * config/cris/cris.md Update.
15319         * config/iq2000/iq2000.c (compute_frame_size): Update.
15320         (iq2000_expand_epilogue): Update.
15321         * config/mt/mt.h (save_direction): Update.
15322         * config/mn10300/mn10300.c (mn10300_function_value): Update.
15323         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
15324         (ia64_secondary_reload_class): Update.
15325         * config/m68k/m68k.c (m68k_save_reg): Update.
15326         (m68k_expand_prologue): Update.
15327         (m68k_expand_epilogue): Update.
15328         (legitimize_pic_address): Update.
15329         * config/rs6000/rs6000.c (rs6000_got_register): Update.
15330         (first_reg_to_save): Update.
15331         (first_altivec_reg_to_save): Update.
15332         (compute_vrsave_mask): Update.
15333         (compute_save_world_info): Update.
15334         (rs6000_stack_info): Update.
15335         (spe_func_has_64bit_regs_p): Update.
15336         (rs6000_ra_ever_killed): Update.
15337         (rs6000_emit_eh_reg_restore): Update.
15338         (rs6000_emit_allocate_stack): Update.
15339         (rs6000_emit_prologue): Update.
15340         (rs6000_emit_epilogue): Update.
15341         (rs6000_output_function_epilogue): Update.
15342         (output_profile_hook): Update.
15343         (rs6000_elf_declare_function_name): Update.
15344         * config/rs6000/rs6000.h (rs6000_args): Update.
15345         * config/rs6000/rs6000.md: Update.
15346         * config/mcore/mcore.c (mcore_expand_prolog): Update.
15347         * config/arc/arc.c (arc_output_function_epilogue): Update.
15348         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
15349         * config/darwin.c (machopic_function_base_name): Update.
15350         * config/score/score3.c (score3_compute_frame_size): Update.
15351         (rpush): Update.
15352         (rpop): Update.
15353         (score3_epilogue): Update.
15354         * config/score/score7.c (score7_compute_frame_size): Update.
15355         (score7_prologue): Update.
15356         (score7_epilogue): Update.
15357         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
15358         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
15359         * config/arm/arm.c (use_return_insn): Update.
15360         (require_pic_register): Update.
15361         (arm_load_pic_register): Update.
15362         (arm_compute_save_reg0_reg12_mask): Update.
15363         (arm_compute_save_reg_mask): Update.
15364         (thumb1_compute_save_reg_mask): Update.
15365         (output_return_instruction): Update.
15366         (arm_output_function_prologue): Update.
15367         (arm_output_epilogue): Update.
15368         (arm_get_frame_offsets): Update.
15369         (arm_expand_prologue): Update.
15370         (thumb_pushpop): Update.
15371         (thumb_exit): Update.
15372         (thumb1_expand_prologue): Update.
15373         (thumb1_expand_epilogue): Update.
15374         (arm_unwind_emit): Update.
15375         (arm_output_fn_unwind): Update.
15376         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
15377         * config/arm/arm.md: Update.
15378         * config/pa/pa.md: Update.
15379         * config/pa/pa.c (legitimize_pic_address): Update.
15380         (compute_frame_size): Update.
15381         (hppa_expand_prologue): Update.
15382         (hppa_expand_epilogue): Update.
15383         (borx_reg_operand): Update.
15384         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
15385         (HARD_REGNO_RENAME_OK): Update.
15386         * config/mips/mips.c (mips_global_pointer): Update.
15387         (mips_save_reg_p): Update.
15388         (mips_compute_frame_info): Update.
15389         (mips_frame_pointer_required): Update.
15390         (mips_expand_prologue): Update.
15391         (mips_expand_epilogue): Update.
15392         (mips_can_use_return_insn): Update.
15393         (mips_reorg_process_insns): Update.
15394         * config/v850/v850.c (compute_register_save_size): Update.
15395         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
15396         * config/mmix/mmix.c (along): Update.
15397         (mmix_expand_epilogue): Update.
15398         * config/bfin/bfin.c (legitimize_pic_address): Update.
15399         (must_save_p): Update.
15400         (stack_frame_needed_p): Update.
15401         (add_to_reg): Update.
15402         (bfin_expand_prologue): Update.
15403         * stmt.c (expand_asm_operands): Update.
15404         * reload1.c (reload): Update.
15405         (init_elim_table): Update.
15406
15407 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
15408
15409         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
15410
15411 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
15412
15413         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
15414         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
15415         (mov<mode>): Removed.
15416         (*movv4sf_internal): Likewise.
15417         (*movv2df_internal): Likewise.
15418
15419 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
15420
15421         * config.gcc (crx-*-elf): Remove deprecation.
15422
15423 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
15424
15425         * config/i386/cygming-crtend.c (register_frame_ctor): Register
15426         __gcc_deregister_frame with atexit.
15427         (deregister_frame_dtor): Remove.
15428
15429 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
15430             Nathan Sidwell  <nathan@codesourcery.com>
15431
15432         * config/rs6000/rs6000.opt (mspe): Remove Var property.
15433         (misel): Likewise.
15434         * config/rs6000/rs6000.h (rs6000_spe): Declare.
15435         (rs6000_isel): Likewise.
15436         * config/rs6000/rs6000.c (rs6000_spe): New variable.
15437         (rs6000_isel): New variable.
15438         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
15439
15440 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15441
15442         PR c++/35758
15443         * c-common.c (handle_vector_size_attribute): Call
15444         lang_hooks.types.reconstruct_complex_type instead of
15445         reconstruct_complex_type.
15446         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
15447         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
15448         * langhooks.h (struct lang_hooks_for_types): Add
15449         reconstruct_complex_type hook.
15450         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
15451         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
15452
15453 2008-04-24  Richard Guenther  <rguenther@suse.de>
15454
15455         * c-common.h (check_builtin_function_arguments): Declare.
15456         * c-common.c (validate_nargs): New function.
15457         (check_builtin_function_arguments): Likewise.
15458         * c-typeck.c (build_function_call): Call
15459         check_builtin_function_arguments.
15460         * builtins.c (fold_builtin_classify): Remove error reporting code.
15461         (fold_builtin_unordered_cmp): Likewise.
15462         (fold_builtin_1): Likewise.
15463         (fold_builtin_n): Likewise.
15464
15465 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15466
15467         PR tree-optimization/36008
15468         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
15469         the original op1, rather than delta by step.
15470
15471 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
15472             Sebastian Pop  <sebastian.pop@amd.com>
15473
15474         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
15475         eliminate_local_variables_stmt, eliminate_local_variables,
15476         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
15477         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
15478         of code delimited by two edges in the CFG.
15479         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
15480         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
15481         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
15482         the case of parallelisation of reductions.
15483         (expr_invariant_in_region_p): New.
15484
15485         * tree-flow.h (gather_blocks_in_sese_region): Declared.
15486         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
15487
15488 2008-04-24  Ira Rosen  <irar@il.ibm.com>
15489             Richard Guenther  <rguenther@suse.de>
15490
15491         PR tree-optimization/36034
15492         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
15493         incapable of dealing with loads with gaps.
15494
15495 2008-04-24  Rafael Espíndola  <espindola@google.com>
15496
15497         * tree-flow.h (vrp_evaluate_conditional): Change signature.
15498         * tree-ssa-propagate.c (fold_predicate_in): Update call to
15499         vrp_evaluate_conditional.
15500         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
15501         (vrp_evaluate_conditional): Split the cond argument.
15502         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
15503         (simplify_stmt_for_jump_threading): Update call to
15504         vrp_evaluate_conditional.
15505
15506 2008-04-24  Ira Rosen  <irar@il.ibm.com>
15507
15508         PR tree-optimization/35982
15509         * tree-vect-analyze.c (vect_check_interleaving): Check that the
15510         interleaved data-refs are of the same type.
15511
15512 2008-04-24  Danny Smith  <dannysmith@users.net>
15513
15514         * c-format.c (check_format_info_main): Use strncmp rather than a
15515         magic prefix to handle multichar length specs.
15516         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
15517         Don't prefix "I64" and "I32" with '\0'.
15518
15519 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
15520
15521         PR target/36015
15522         * config/i386/i386.c (init_cumulative_args): Don't pass anything
15523         in registers for -m32 only if stdarg_p (fntype).
15524
15525 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
15526
15527         PR rtl-optimization/36006
15528         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
15529         temp to op0 in order to avoid invalid rtx sharing.
15530
15531 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
15532
15533         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
15534         check TREE_INVARIANT.
15535         * tree-gimple.c (is_gimple_address): New.
15536         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
15537         * tree-gimple.h (is_gimple_address): New.
15538         * tree.h (decl_address_invariant_p): New.
15539         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
15540         (build_string): Likewise.
15541         (decl_address_invariant_p): New, from is_gimple_invariant_address.
15542         (tree_invariant_p_1): Likewise.
15543         (save_expr): Use it.
15544         (tree_invariant_p): New.
15545         (skip_simple_arithmetic): Use it.
15546         (stabilize_reference_1): Use it.
15547         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
15548         simplify.
15549         (build1_stat): Drop code to compute TREE_INVARIANT.
15550         (build2_stat): Drop code to compute TREE_INVARIANT.
15551         (build3_stat): Drop code to compute TREE_INVARIANT.
15552         (build4_stat): Drop code to compute TREE_INVARIANT.
15553         (build5_stat): Drop code to compute TREE_INVARIANT.
15554         (build7_stat): Drop code to compute TREE_INVARIANT.
15555         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
15556         * tree.h (struct tree_base): Remove invariant_flag.
15557         (TREE_INVARIANT): Remove.
15558         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
15559         (fold_builtin_expect): Check TREE_CONSTANT.
15560         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
15561         * c-tree.h (c_expr_to_decl): Drop third parameter.
15562         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
15563         (build_c_cast): Don't set TREE_INVARIANT.
15564         (pop_init_level): Don't set TREE_INVARIANT.
15565         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
15566         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
15567         TREE_CONSTANT.
15568         (gimplify_init_constructor): Don't set TREE_INVARIANT.
15569         (gimplify_addr_expr): Adjust comment.
15570         * tree-mudflap.c (mf_build_string):
15571         * print-tree.c (print_node): Don't print TREE_INVARIANT.
15572         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
15573         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
15574         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
15575         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
15576         * langhooks.h (struct lang_hooks): Drop third parameter from
15577         expr_to_decl.
15578
15579 2008-04-23  Richard Guenther  <rguenther@suse.de>
15580
15581         PR tree-optimization/27799
15582         PR tree-optimization/32921
15583         PR tree-optimization/32624
15584         * tree-ssa-structalias.c (merge_smts_into): Only merge the
15585         SMTs aliases and the tag itself into the solution.
15586         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
15587         merge the points-to solution back into the SMT aliases.
15588         (may_alias_p): Use alias_set_subset_of instead of
15589         aliases_conflict_p.  A pointer which points to
15590         memory with alias set zero may access any variable.
15591
15592 2008-04-23  Richard Guenther  <rguenther@suse.de>
15593
15594         * alias.c (alias_set_subset_of): Correctly handle asking
15595         if zero is a subset of an alias set with zero child.
15596         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
15597         (compute_flow_insensitive_aliasing): Correctly walk all
15598         pointers.  Do not unnecessarily union sets.
15599
15600 2008-04-23  Richard Guenther  <rguenther@suse.de>
15601
15602         PR middle-end/36021
15603         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
15604
15605 2008-04-22  Tomas Bily  <tbily@suse.cz>
15606
15607         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
15608         unreachable case.
15609         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
15610         NON_LVALUE_EXPR.
15611         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
15612         * tree-ssa-structalias.c (get_constraint_for): Likewise.
15613         * tree-inline.c (estimate_num_insns_1): Likewise.
15614         * varasm.c (const_hash_1, compare_constant, copy_constant)
15615         (compute_reloc_for_constant, output_addressed_constants): Likewise.
15616         * emit-rtl.c (component_ref_for_mem_expr)
15617         (set_mem_attributes_minus_bitpos): Likewise.
15618         * expr.c (highest_pow2_factor, expand_expr_real_1, )
15619         (is_aligning_offset): Likewise.
15620         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
15621         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
15622         * dojump.c (do_jump): Likewise.
15623         * builtins.c (get_pointer_alignment, get_memory_rtx)
15624         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
15625         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
15626
15627 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
15628
15629         PR rtl-optimization/36017
15630         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
15631         expanding the library call.
15632
15633 2008-04-22  Ian Lance Taylor  <iant@google.com>
15634
15635         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
15636         than size_in_bytes.
15637
15638 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
15639
15640         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
15641         of LR/CTR moves for Power6.
15642
15643 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15644
15645         PR middle-end/36003
15646         * passes.c (init_optimization_passes): Remove
15647         pass_fast_rtl_byte_dce.
15648
15649 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
15650
15651         PR target/29096
15652         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
15653         builtin functions to generate faster code.
15654         (_mm_cvtpu16_ps): Ditto.
15655         (_mm_cvtpi32x2_ps): Ditto.
15656
15657 2008-04-22  Nick Clifton  <nickc@redhat.com>
15658
15659         * common.opt (ftree-loop-distribution): Add Optimization
15660         attribute.
15661
15662         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
15663         (frv_expand_builtin_va_start): Likewise.
15664
15665         * config/arm/arm.c (thumb_find_work_register): Fix location of
15666         argument register count.
15667
15668 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15669
15670         Support scheduling for ColdFire V1 and V3 microarchitecture.
15671         Improve scheduling of multiplication instructions.
15672
15673         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
15674         (mac): New instruction attribute.
15675         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
15676         (m68k_sched_mac): New variable.
15677         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
15678         Handle cfv1 and cfv3.
15679         (max_insn_size): New static variable.
15680         (struct _sched_ib): New type.
15681         (sched_ib): New static variable.
15682         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
15683         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
15684         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
15685         Update.
15686         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
15687         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
15688         new variables.  Update.
15689         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
15690         Add modeling of cfv3 instruction buffer.  Update.
15691         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
15692         * config/m68k/m68k.h (TUNE_CFV3): New macro.
15693         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
15694         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
15695         a particular reservation applies to.
15696         (type2): Reorganize attribute values.  Rename alu to alu_reg,
15697         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
15698         to mul_l and mul_w.
15699         (cf_ib_*): Simplify description of instruction buffer.
15700         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
15701         (cf_mem): Split into cf_mem1 and cf_mem2.
15702         (cf_v2_move_??): Rename to cfv12_alu_??.
15703         (cf_v2_move_l_??): Rename to cfv12_omove_??.
15704         (cf_v2_mul_??): Remove reservations.
15705         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
15706         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
15707         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
15708         appropriate place.
15709         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
15710         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
15711         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
15712         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
15713         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
15714         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
15715         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
15716         expansions of the above reservations for instructions of sizes
15717         1, 2 and 3 words.
15718
15719 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15720
15721         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
15722
15723 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
15724
15725         * coverage.c: Include tree-pass.h.
15726         (coverage_counter_alloc): Print da_file_name to the dump file.
15727
15728 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
15729
15730         * sbitmap.c (sbitmap_range_empty_p): New function.
15731         * sbitmap.h (sbitmap_range_empty_p): New function.
15732         * bitmap.h: Now includes obstack.h.
15733
15734 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
15735             Kenneth Zadeck  <zadeck@naturalbridge.com>
15736
15737         * dbgcnt.def (ra_byte_scan): Added.
15738         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
15739         when the last hit happens for a counter.
15740         * timevar.def (TV_DF_BYTE_LR): New variable.
15741         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
15742         * passes.c (pass_fast_rtl_byte_dce): New pass.
15743         * fwprop.c (update_df): Added mode to call df_ref_create.
15744         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
15745         DF_REF_EXTRACT_OFFSET.
15746         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN,
15747         DF_BYTE_LR_OUT, df_byte_lr): New macro.
15748         (df_mm): New enum.
15749         (df_ref_extract): Added mode field.
15750         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
15751         DF_REF_EXTRACT_OFFSET.
15752         (DF_REF_EXTRACT_MODE): New macro.
15753         (df_byte_lr_bb_info): New structure.
15754         (df_print_byte_regset, df_compute_accessed_bytes,
15755         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
15756         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
15757         df_byte_lr_simulate_uses,
15758         df_byte_lr_simulate_artificial_refs_at_top,
15759         df_byte_lr_simulate_artificial_refs_at_end,
15760         df_compute_accessed_bytes): New function.
15761         (df_ref_create): Add parameter.
15762         (df_byte_lr_get_bb_info): New inline function.
15763         * df-scan.c (df_ref_record, df_uses_record,
15764         df_ref_create_structure): Added mode parameter.
15765         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1,
15766         df_defs_record, df_uses_record, df_get_conditional_uses,
15767         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15768         df_entry_block_defs_collect, df_exit_block_uses_collect):
15769         Added mode parameter to calls to df_ref_record, df_uses_record,
15770         df_ref_create_structure.
15771         (df_ref_equal_p, df_ref_compare): Added test for modes.
15772         (df_ref_create_structure): Added code to set mode.  Renamed
15773         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
15774         DF_REF_EXTRACT_OFFSET.
15775         * df-core.c (df_print_byte_regset): New function.
15776         * df-byte-scan.c: New file.
15777         * df-problems.c (df_rd_transfer_function): Removed unnecessary
15778         calls to BITMAP_FREE.
15779         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
15780         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
15781         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info,
15782         df_byte_lr_check_regs, df_byte_lr_expand_bitmap,
15783         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
15784         df_byte_lr_local_compute, df_byte_lr_init,
15785         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
15786         df_byte_lr_transfer_function, df_byte_lr_free,
15787         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
15788         df_byte_lr_add_problem, df_byte_lr_simulate_defs,
15789         df_byte_lr_simulate_uses,
15790         df_byte_lr_simulate_artificial_refs_at_top,
15791         df_byte_lr_simulate_artificial_refs_at_end): New function.
15792         * dce.c (byte_dce_process_block): New function.
15793         (dce_process_block): au is now passed in rather than computed
15794         locally.  Changed loops that look at artificial defs to not look
15795         for conditional or partial ones, because there never are any.
15796         (fast_dce): Now is able to drive byte_dce_process_block or
15797         dce_process_block depending on the kind of dce being done.
15798         (rest_of_handle_fast_dce): Add parameter to fast_dce.
15799         (rest_of_handle_fast_byte_dce): New function.
15800         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
15801         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
15802
15803 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
15804
15805         PR fortran/35019
15806         * gcc.h: Added fortran options that take arguments to
15807         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
15808         macros.
15809
15810 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
15811
15812         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
15813         scalarization if on the LHS and not a full access.
15814
15815 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15816
15817         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
15818
15819 2008-04-18  Rafael Espíndola  <espindola@google.com>
15820
15821         * tree-vrp.c (find_case_label_index): Fix the binary search.
15822         (find_case_label_range): New.
15823         (vrp_visit_switch_stmt): Use find_case_label_range.
15824         (simplify_switch_using_ranges): Use find_case_label_range.
15825
15826 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
15827
15828         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
15829         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
15830
15831 2008-04-18  Tom Tromey  <tromey@redhat.com>
15832
15833         PR libcpp/15500:
15834         * doc/cpp.texi (Implementation-defined behavior): Mention
15835         -finput-charset.
15836
15837 2008-04-18  Ian Lance Taylor  <iant@google.com>
15838
15839         * fold-const.c (pointer_may_wrap_p): New static function.
15840         (fold_comparison): Add another test for pointer overflow.  Use
15841         pointer_may_wrap_p to disable some false positives.
15842
15843 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
15844
15845         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
15846         (fname_as_string): Match updated cpp_interpret_string prototype.
15847         (fix_string_type): Support char16_t* and char32_t*.
15848         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
15849         derivative) nodes.  Register as builtin if C++0x.
15850         (c_parse_error): Support CPP_CHAR{16,32}.
15851         * c-common.h (RID_CHAR16, RID_CHAR32): New elements.
15852         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
15853         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
15854         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
15855         CTI_CHAR32_ARRAY_TYPE>: New elements.
15856         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
15857         char32_type_node, signed_char32_type_node, char16_array_type_node,
15858         char32_array_type_node): New defines.
15859         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
15860         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
15861         (lex_string): Support CPP_STRING{16,32}, match updated
15862         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
15863         (lex_charconst): Support CPP_CHAR{16,32}.
15864         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
15865         and CPP_STRING{16,32}.
15866
15867 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
15868
15869         PR bootstrap/35457
15870         * aclocal.m4: Regenerate.
15871         * configure: Regenerate.
15872
15873 2008-04-18  Jan Hubicka  <jh@suse.cz>
15874
15875         * except.c (dw2_size_of_call_site_table,
15876         sjlj_size_of_call_site_table): Use vector API for call_site_record.
15877
15878         * cgraphbuild.c (build_cgraph_edges): Update.
15879         * tree-pass.h: Update comment.
15880         * final.c (leaf_function_p): Update.
15881         (leaf_renumber_regs): Update.
15882         (rest_of_clean_state): Update.
15883         * omp-low.c (expand_omp_parallel): Update.
15884         * ipa-reference.c (analyze_function): Update.
15885         * reorg.c (find_end_label): Update.
15886         (optimize_skip): Update.
15887         (fill_simple_delay_slots): Update.
15888         (fill_simple_delay_slots): Update.
15889         (make_return_insns): Update.
15890         (dbr_schedule): Update.
15891         * gimple-low.c (record_vars_into): Update.
15892         * cfgbuild.c (make_edges): Update.
15893         * function.c (assign_stack_local): Update.
15894         (assign_parm_adjust_stack_rtl): Update.
15895         (locate_and_pad_parm): Update.
15896         (allocate_struct_function): Do not initialize stack_alignment_needed
15897         and preferred_stack_boundary here.
15898         (stack_protect_prologue): Update.
15899         (stack_protect_epilogue): Update.
15900         (expand_function_start): Initialize stack_alignment_needed,
15901         preferred_stack_boundary and max_jumptable_ents.
15902         (expand_function_end): Update.
15903         (free_after_compilation): Do not NULLify epilogue_delay_list.
15904         * function.h (struct rtl_data): Add stack_protect_guard,
15905         stack_alignment_needed,
15906         preferred_stack_boundary, epilogue_delay_list.
15907         (struct function): Remove value_histograms, stack_alignment_needed,
15908         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
15909         last_label_uid,
15910         unexpanded_var_list, stack_protect_guard.
15911         (current_function_epilogue_delay_list): Remove.
15912         * ipa-type-escape.c (analyze_function): Update.
15913         * gimplify.c (pop_gimplify_context): Update comment.
15914         * calls.c (expand_call): Update.
15915         (emit_library_call_value_1): Update.
15916         * except.c (set_nothrow_function_flags): Update.
15917         * cfgexpand.c (get_decl_align_unit): Update.
15918         (create_stack_guard): Update.
15919         (estimated_stack_frame_size): Update.
15920         (expand_used_vars): Update.
15921         (tree_expand_cfg): Free histogram earliers, init expansion variables.
15922         * explow.c (allocate_dynamic_stack_space): Update.
15923         * tree-ssa-live.c (remove_unused_locals): Update.
15924         * varasm.c (mark_constant_pool): Update.
15925         * tree-inline.c (remap_decls): Update.
15926         (initialize_cfun): Update.
15927         (declare_return_variable): Update.
15928         (inline_forbidden_p): Update.
15929         (expand_call_inline): Update.
15930         (declare_inline_vars): Update.
15931         (tree_function_versioning): Update.
15932         * tree-flow.h (value_histograms): New.
15933         (VALUE_HISTOGRAMS): New macro.
15934         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
15935         last_label_uid.
15936         * tree-cfg.c (set_bb_for_stmt): Update.
15937         (replace_by_duplicate_decl): Update.
15938         (move_block_to_fn): Update.
15939         (new_label_mapper): Update.
15940         (dump_function_to_file): Update.
15941         * ipa-struct-reorg.c (build_data_structure): Update.
15942         * cfgrtl.c (print_rtl_with_bb): Update.
15943         * reload1.c (reload): Update.
15944         (reload): Update.
15945         * config/i386/i386.c (setup_incoming_varargs_64,
15946         ix86_compute_frame_layout): Update.
15947         * config/arc/arc.c (arc_output_function_epilogue): Update.
15948
15949 2008-04-18  Marius Strobl <marius@FreeBSD.org>
15950
15951         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
15952         for FreeBSD as well.
15953         * gthr-posix95.h: Likewise.
15954
15955 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
15956
15957         PR rtl-optimization/35838
15958         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
15959         out the byte offset of the first subreg.
15960
15961 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
15962
15963         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
15964         to split_ti instead of three separate calls with single member arrays.
15965         (subti3 splitter): Ditto.
15966         (adddi3 splitter): Ditto with split_di.
15967         (subdi3 splitter): Ditto.
15968         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
15969         two separate calls with single member arrays.  Swap match_dup
15970         operands 1 and 2 to better fit into the array.
15971         (negdi2 splitter): Ditto with split_di.
15972         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
15973         two separate calls with single member arrays.  Swap match_dup operands
15974         6 and 7 to better fit into the array.
15975
15976 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
15977
15978         * config/i386/i386.c (sse_builtin_type): New.
15979         (bdesc_sse_args): Likewise.
15980         (bdesc_sse_3arg): Removed.
15981         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
15982         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
15983         IX86_BUILTIN_ROUNDPS.
15984         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
15985         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
15986         IX86_BUILTIN_ROUNDPS.
15987         (ix86_expand_sse_4_operands_builtin): Removed.
15988         (ix86_expand_sse_operands_builtin): New.
15989         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
15990         and CODE_FOR_sse4_1_roundps.
15991         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
15992         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
15993
15994 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
15995
15996         PR target/35907
15997         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
15998         regs before frame pop when needed.  If use_backchain_to_restore_sp
15999         then load backchain into a temp reg to restore vr and vrsave.  Add
16000         code to restore vr after frame pop if possible.
16001
16002 2008-04-17  Richard Guenther  <rguenther@suse.de>
16003
16004         * tree-vn.c (expressions_equal_p): Do not check type
16005         equality or compatibility before calling operand_equal_p.
16006         * fold-const.c (operand_equal_p): Check equivalence of
16007         integer constants before bailing out due to signedness or
16008         precision differences.
16009         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
16010         spurious differences in type qualification.  Ignore types
16011         for COMPONENT_REFs at all.
16012
16013 2008-04-17  Christian Bruel  <christian.bruel@st.com>
16014
16015         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
16016         msw_skip comparison.
16017
16018 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
16019
16020         PR c/35739
16021         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
16022         reg type.
16023
16024         PR tree-optimization/35899
16025         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
16026         rather than TREE_OPERAND.
16027
16028 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
16029
16030         PR target/35944
16031         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
16032         temporary registers.  Change operand predicate to general_operand.
16033         (remainderxf3): Ditto.
16034
16035 2008-04-16  Richard Guenther  <rguenther@suse.de>
16036
16037         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
16038         * tree-affine.c (aff_combination_expand): Look through some
16039         conversions.
16040
16041 2008-04-15  Doug Kwan  <dougkwan@google.com>
16042
16043         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
16044         for hex printing.
16045         * tree-pretty-print.c (dump_generic_node): Ditto.
16046         * final.c (output_addr_const): Ditto.
16047         * dwarf2out.c (output_cfi): Ditto.
16048         * c-pretty-print.c (pp_c_integer_constant): Ditto.
16049         * print-rtl.c (print_rtx): Ditto.
16050         * print-tree.c (print_node_brief, print_node): Ditto.
16051         * c-common.c (match_case_to_enum_1): Ditto.
16052         * sched-vis.c (print_value): Ditto.
16053         * config/i386/i386.c (print_operand): Cast to long unsigned int
16054         for hex printing.
16055
16056 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
16057         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
16058         MS Windows VirtualProtect function.
16059
16060 2008-04-15  Jan Hubicka  <jh@suse.cz>
16061
16062         * gengtype.c (write_root): Param_is argument is OK.
16063         * expr.c (expand_expr_real_1): Update call of get_exception_*.
16064         * function.h: Include varray.h
16065         (rtl_eh): New stucture based on except.c one.
16066         (call_site_record): New forward declaration and vector type.
16067         * calls.c (emit_call_1): Do not call
16068         note_current_region_may_contain_throw.
16069         * except.c (eh_status): Remove cur_region, try_region since they are
16070         unused.
16071         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
16072         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
16073         sjlj_fc, sjlj_exit_after to rth_eh in function.h.
16074         Remove call_site_data_used, call_site_data_size.
16075         Turn call_site_record into vector in function.h.
16076         (note_current_region_may_contain_throw): Remove.
16077         (get_exception_pointer, get_exception_filter): Do not take struct
16078         function argument; update.
16079         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
16080         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
16081         build_post_landing_pads, dw2_build_landing_pads,
16082         sjlj_assign_call_site_values, sjlj_mark_call_sites,
16083         sjlj_emit_function_enter, sjlj_emit_function_enter,
16084         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
16085         sjlj_build_landing_pads, finish_eh_generation,
16086         remove_exception_handler_label, remove_eh_handler,
16087         maybe_remove_eh_handler, add_reachable_handler,
16088         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
16089         add_action_record, collect_one_action_chain, add_call_site,
16090         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
16091         sjlj_output_call_site_table, output_function_exception_table,
16092         * except.h (note_current_region_may_contain_throw): Remove
16093         (get_exception_pointer, get_exception_filter): Do not take struct
16094         function argument.
16095         * Makefile.in (GTFILES): Put varargs before struct function.
16096
16097 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
16098
16099         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
16100         punt for STRING_CST.
16101         (get_constraint_for): Deal with STRING_CST here instead.
16102
16103 2008-04-15  Richard Guenther  <rguenther@suse.de>
16104
16105         * tree-ssa-propagate.c (substitute_and_fold): Substitute
16106         statements in a basic-block with a backward walk.  Do not
16107         substitute into dead statements but instead remove those.
16108
16109 2008-04-15  Richard Guenther  <rguenther@suse.de>
16110
16111         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
16112         to zero, thus disable creation of SFTs.
16113
16114 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
16115
16116         * tree-predcom.c (suitable_reference_p): Return false if the
16117         reference can throw.
16118
16119 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
16120
16121         PR c/35751
16122         * c-decl.c (finish_decl): If extern or static var has variable
16123         size, set TREE_TYPE (decl) to error_mark_node.
16124
16125 2008-04-15  Rafael Espíndola  <espindola@google.com>
16126
16127         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
16128         variable arg1.
16129
16130 2008-04-15  Richard Guenther  <rguenther@suse.de>
16131
16132         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
16133         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
16134         (visit_reference_op_load): Do walk vuse-vdef chains on
16135         vn_reference_lookup.
16136         (visit_reference_op_store): But do not here.
16137         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
16138         vn_reference_lookup.
16139         (vn_lookup_with_vuses): But do so here.
16140
16141 2008-04-14  Ian Lance Taylor  <iant@google.com>
16142
16143         * fold-const.c (fold_overflow_warning): Remove assertion.
16144
16145 2008-04-15  Ben Elliston  <bje@au.ibm.com>
16146
16147         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
16148         temp1 local variables.
16149
16150 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
16151
16152         PR target/35661
16153         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
16154         ".text.unlikely" section as executable.
16155
16156 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
16157
16158         * config/ia64/ia64.c (rtx_needs_barrier): Handle
16159         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
16160         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
16161         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
16162         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
16163         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
16164         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
16165
16166 2008-04-14  Ian Lance Taylor  <iant@google.com>
16167
16168         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
16169         * fold-const.c (fold_comparison): If appropriate, test
16170         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
16171         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
16172         reassociating a pointer type.
16173         * doc/invoke.texi (Optimize Options): Document that
16174         -fstrict-overflow applies to pointer wraparound.
16175
16176 2008-04-13  Jan Hubicka  <jh@suse.cz>
16177
16178         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
16179
16180 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
16181
16182         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
16183         we are going to "save the world".
16184
16185 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
16186
16187         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
16188         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
16189         operand 0 constraint, not "=".
16190
16191 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
16192
16193         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
16194
16195 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
16196
16197         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
16198         of size of positions_needed * CHAR_BIT.
16199
16200 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
16201
16202         PR middle-end/35897
16203         * dse.c (store_info): Change positions_needed to unsigned
16204         HOST_WIDE_INT.
16205         (lowpart_bitmask): New.
16206         (record_store): Cast to unsigned HOST_WIDE_INT for
16207         positions_needed.  Assert width <= size of positions_needed *
16208         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
16209         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
16210         lowpart_bitmask to set mask.
16211
16212 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
16213
16214         * config/bfin/constraints.md: New file.
16215         * config/bfin/bfin.md: Include it.
16216         (adddi3): Use satisfies_constraint functions instead of the old macros.
16217         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
16218         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
16219         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
16220         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
16221         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
16222         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
16223         EXTRA_CONSTRAINT): Delete.
16224         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
16225         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
16226         of the old macros.
16227         * config/bfin/bfin.c: Include "tm-constrs.h".
16228         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
16229         Use satisfies_constraint functions instead of the old macros.
16230         * doc/md.texi (Blackfin Constraints): Update file name reference.
16231
16232 2008-04-11  Richard Guenther  <rguenther@suse.de>
16233
16234         PR tree-optimization/35869
16235         * tree-vrp.c (execute_vrp): Move switch statement update after
16236         jump threading.  Schedule another cfg cleanup run.
16237
16238 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
16239
16240         PR c/35744
16241         * attribs.c (decl_attributes): Return early on errorneous node.
16242
16243 2008-04-10  Oleg Ryjkov  <olegr@google.com>
16244
16245         * tree.h (struct tree_base): Added a new flag default_def_flag.
16246         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
16247
16248 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16249
16250         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
16251
16252 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16253
16254         PR target/35768
16255         * pa.md: Define mode iterator P.  Define mode attribute dwc.
16256         (dcacheflush): Update pattern to use iterator P and attribute dwc.
16257         (icacheflush): Likewise.
16258         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
16259         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
16260
16261 2008-04-11  Ben Elliston  <bje@au.ibm.com>
16262
16263         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
16264
16265 2008-04-10  Rafael Espíndola  <espindola@google.com>
16266
16267         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
16268         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
16269         (extract_range_from_expr): The same.
16270
16271 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
16272
16273         * config/mips/mips.md (GPR2): New mode iterator.
16274         (seq): Add comment.
16275         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
16276         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
16277         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
16278         Rewrite these to take two modes, the mode of comparison and the
16279         mode of the destination.
16280         * config/mips/mips.c (mips_expand_scc): Instead of having
16281         paradoxical subreg as destination, expand "narrowing" scc if mode
16282         of comparison is SI and target is requested in DI mode.
16283         (mips_emit_int_order_test): Update comment.  Make mode of
16284         comparison match CMP0 rather than TARGET.  When creating inverse
16285         target use mode of TARGET.
16286
16287 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
16288
16289         * gcov-dump.c (tag_summary): Only print summaries for the first
16290         GCOV_COUNTERS_SUMMABLE counters.
16291
16292 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
16293
16294         * config/i386/i386.md (absneg): New code iterator.
16295         (absnegprefix): New code attribute.
16296         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
16297         patterns using absneg code iterator.
16298         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
16299         using absneg code iterator.
16300         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
16301         *neg<mode>2 patterns using absneg code iterator.
16302         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
16303         *negextendsfdf2 patterns using absneg code iterator.
16304         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
16305         *negextendsfxf2 patterns using absneg code iterator.
16306         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
16307         *negextendsfdf2 patterns using absneg code iterator.
16308         * config/i386/sse.md (<code><mode>2): Macroize expander from
16309         abs<mode>2 and neg<mode>2 patterns using absneg code iterator.
16310
16311 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
16312
16313         * config/s390/s390.h: Remove the remains of the recent search
16314         & replace action of current_function_outgoing_args_size.
16315
16316 2008-04-10  Ira Rosen  <irar@il.ibm.com>
16317
16318         PR tree-optimization/35821
16319         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
16320         NEW_STMT_LIST is not NULL.
16321
16322 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
16323
16324         PR libstdc++/35597
16325         * toplev.c (process_options): Remove -ffunction-sections debugging
16326         warning.
16327
16328 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
16329
16330         PR middle-end/PR28690
16331         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
16332         than gen_rtx_fmt_ee to perform more canonicalizations.
16333
16334 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16335
16336         PR driver/35665
16337         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
16338
16339 2008-04-09  Richard Guenther  <rguenther@suse.de>
16340
16341         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
16342         (dump_function_to_file): Dump function arguments with types.
16343
16344 2008-04-08  Richard Guenther  <rguenther@suse.de>
16345
16346         * fold-const.c (fold_widened_comparison): Do not allow
16347         sign-changes that change the result.
16348
16349 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
16350
16351         PR target/35839
16352         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
16353         kinds of indirect references.
16354
16355 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
16356
16357         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
16358         GNU Fortran language string.
16359
16360 2008-04-08  Rafael Espíndola  <espindola@google.com>
16361
16362         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
16363         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
16364         * tree.h (tree_call_nonnegative_warnv_p): New.
16365
16366 2008-04-08  Jan Hubicka  <jh@suse.cz>
16367
16368         * function.c (free_after_compilation): Clear out regno_reg_rtx
16369         pointer.
16370
16371 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
16372
16373         Revert
16374         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
16375
16376         PR middle-end/PR28690
16377         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
16378         same precedence as REG_POINTER and MEM_POINTER operands.
16379
16380 2008-04-08  Richard Guenther  <rguenther@suse.de>
16381
16382         PR middle-end/35834
16383         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
16384         for adding index to base.
16385
16386 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
16387
16388         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
16389         (MINGW_ENABLE_EXECUTE_STACK): New.
16390         (IN_LIBGCC2): For libgcc include windows.h file for
16391         function declarations.
16392
16393 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
16394
16395         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
16396         and tem2 if tem1 is not a REG or MULT.
16397
16398 2008-04-08  Jan Hubicka  <jh@suse.cz>
16399
16400         * function.h (incomming_args): Break out of struct function.
16401         (function_subsections): Break out of struct function.
16402         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
16403         return_rtx and hard_reg_initial_vals from struct function.
16404         Kill inl_max_label_num.
16405         (current_function_pops_args, current_function_args_info,
16406         current_function_args_size, current_function_args_size,
16407         current_function_pretend_args_size,
16408         current_function_outgoing_args_size,
16409         current_function_internal_arg_pointer, current_function_return_rtx):
16410         Kill compatibility accestor macros.
16411         * builtins.c (expand_builtin_apply_args_1): Update.
16412         (expand_builtin_next_arg): Update.
16413         * df-scan.c (df_get_call_refs): Update.
16414         * dbxout.c (dbxout_function_end): Update.
16415         * dwarf2out.c (dwarf2out_switch_text_section): Update.
16416         (output_line_info): Update.
16417         (secname_for_decl): Update.
16418         (dwarf2out_var_location): Update.
16419         * function.c (free_after_compilation): Update.
16420         (assign_parm_find_stack_rtl): Update.
16421         (assign_parms): Update.
16422         (expand_dummy_function_end): Update.
16423         (expand_function_end): Update.
16424         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
16425         (expand_call): Update.
16426         (emit_library_call_value_1): Update.
16427         (store_one_arg): Update.
16428         * varasm.c (initialize_cold_section_name): Update.
16429         (unlikely_text_section): Update.
16430         (unlikely_text_section_p): Update.
16431         (assemble_start_function): Update.
16432         (assemble_end_function): Update.
16433         (default_section_type_flags): Update.
16434         (switch_to_section): Update.
16435         * integrate.c (set_decl_abstract_flags): Update.
16436         (get_hard_reg_initial_val): Update.
16437         (has_hard_reg_initial_val): Update.
16438         (allocate_initial_values): Update.
16439         * resource.c (init_resource_info): Update.
16440         * config/alpha/alpha.c (NUM_ARGS): Update.
16441         (direct_return): Update.
16442         (alpha_va_start): Update.
16443         (alpha_sa_size): Update.
16444         (alpha_initial_elimination_offset): Update.
16445         (alpha_expand_prologue): Update.
16446         (alpha_start_function): Update.
16447         (alpha_expand_epilogue): Update.
16448         (unicosmk_initial_elimination_offset):
16449         * config/alpha/alpha.md (call expander): Update.
16450         * config/s390/s390.c (s390_register_info): Update.
16451         (s390_register_info): Update.
16452         (s390_frame_info): Update.
16453         (s390_initial_elimination_offset): Update.
16454         (s390_build_builtin_va_list): Update.
16455         (s390_va_start): Update.
16456         * config/spu/spu.c (direct_return): Update.
16457         (spu_expand_prologue): Update.
16458         (spu_initial_elimination_offset): Update.
16459         (spu_build_builtin_va_list): Update.
16460         (spu_va_start): Update.
16461         * config/sparc/sparc.c (sparc_init_modes): Update.
16462         (sparc_compute_frame_size): Update.
16463         (function_value): Update.
16464         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
16465         * config/i386/i386.md (return expander): Update.
16466         * config/i386/i386.c (ix86_va_start): Update.
16467         (ix86_can_use_return_insn_p): Update.
16468         (ix86_compute_frame_layout): Update.
16469         (ix86_expand_epilogue): Update.
16470         * config/sh/sh.c (output_stack_adjust): Update.
16471         (calc_live_regs): Update.
16472         (sh_expand_prologue): Update.
16473         (sh_builtin_saveregs): Update.
16474         (sh_va_start): Update.
16475         (initial_elimination_offset): Update.
16476         (sh_allocate_initial_value): Update.
16477         (sh_function_ok_for_sibcall): Update.
16478         (sh_get_pr_initial_val): Update.
16479         * config/sh/sh.md (return expander): Update.
16480         * config/avr/avr.c (frame_pointer_required_p): UPdate.
16481         * config/crx/crx.c (crx_compute_frame): UPdate.
16482         (crx_initial_elimination_offset): UPdate.
16483         * config/xtensa/xtensa.c (compute_frame_size): Update
16484         (xtensa_builtin_saveregs): Update.
16485         (xtensa_va_start): Update.
16486         (order_regs_for_local_alloc): Update.
16487         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
16488         (xstormy16_expand_builtin_va_start): Update.
16489         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
16490         * config/m68hc11/m68hc11.md (return expanders): Update.
16491         * config/m68hc11/m68hc11.c (expand_prologue): Update.
16492         (expand_epilogue): Update.
16493         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
16494         (cris_simple_epilogue): Update.
16495         (cris_expand_prologue): Update.
16496         (cris_expand_epilogue): Update.
16497         * config/iq2000/iq2000.c (iq2000_va_start): Update.
16498         (compute_frame_size): Update.
16499         * config/mt/mt.c (mt_compute_frame_size): Update.
16500         * config/mn10300/mn10300.c (expand_prologue): Update.
16501         (expand_epilogue): Update.
16502         (initial_offset): Update.
16503         (mn10300_builtin_saveregs):
16504         * config/mn10300/mn10300.md (return expander): Update.
16505         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
16506         (ia64_initial_elimination_offset): Update.
16507         (ia64_initial_elimination_offset): Update.
16508         (ia64_expand_prologue): Update.
16509         * config/m68k/m68k.md (return expander): Update.
16510         * config/rs6000/rs6000.c (rs6000_va_start): Update.
16511         (rs6000_stack_info): Update.
16512         * config/mcore/mcore.c (layout_mcore_frame): Update.
16513         (mcore_expand_prolog): Update.
16514         * config/arc/arc.c (arc_compute_frame_size): Update.
16515         * config/score/score3.c (score3_compute_frame_size): Update.
16516         * config/score/score7.c (score7_compute_frame_size): Update.
16517         * config/arm/arm.c (use_return_insn): Update.
16518         (thumb_find_work_register): Update.
16519         (arm_compute_save_reg_mask): Update.
16520         (arm_output_function_prologue): Update.
16521         (arm_output_epilogue): Update.
16522         (arm_size_return_regs): Update.
16523         (arm_get_frame_offsets): Update.
16524         (arm_expand_prologue): Update.
16525         (thumb_exit): Update.
16526         (thumb_unexpanded_epilogue): Update.
16527         (thumb1_output_function_prologue): Update.
16528         * config/pa/pa.md (return expander): Update.
16529         * config/pa/pa.c (compute_frame_size): Update.
16530         (hppa_builtin_saveregs): Update.
16531         * config/mips/mips.c (mips_va_start): Update.
16532         (mips16_build_function_stub): Update.
16533         (mips_compute_frame_info): Update.
16534         (mips_restore_gp): Update.
16535         (mips_output_function_prologue): Update.
16536         (mips_expand_prologue): Update.
16537         * config/v850/v850.c (compute_frame_size): Update.
16538         (expand_prologue): * config/mmix/mmix.c (along): update.
16539         (mmix_initial_elimination_offset): update.
16540         (mmix_reorg): update.
16541         (mmix_use_simple_return): update.
16542         (mmix_expand_prologue): update.
16543         (mmix_expand_epilogue): Update.
16544         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
16545         (emit_link_insn): Update.
16546
16547 2008-04-08  Anatoly Sokolov <aesok@post.ru>
16548
16549         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define
16550         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL
16551         instructions.
16552         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for
16553         atmega103 device.
16554
16555 2008-04-07  Jan Hubicka  <jh@suse.cz>
16556
16557         * function.h (rtl): Rename to x_rtl.
16558         (crtl): New define.
16559         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
16560         frame_offset, stack_check_probe_note, arg_pointer_save_area,
16561         used_temp_slots avail_temp_slots, temp_slot_level,
16562         nonlocal_goto_handler_labels): Update accesstors.
16563         (rtl): New global variable.
16564         (struct function): Move some fileds to rtl_data.
16565         (get_arg_pointer_save_area): Update prototype.
16566         * builtins.c (expand_builtin_setjmp_receiver): Update call of
16567         get_arg_pointer_save_area.
16568         * expr.c (init_expr): Update
16569         * function.c (get_frame_size): Update
16570         (assign_stack_local): Update
16571         (expand_function_end): Update.
16572         (get_art_pointer_save_area): Update
16573         * function.h
16574         * emit-rtl.c (rtl): Declare.
16575         (regno_reg_rtx): Declare.
16576         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
16577         Update.
16578         (gen_reg_rtx): Update.
16579         * varasm.c (n_deferred_constatns): Update accestor.
16580         (init_varasm_status): Do not allocate varasm_status.
16581         (force_const_mem, get_pool_size, output_constant_pool): Update.
16582         * stmt.c (force_label_rtx): Do not use x_ prefixes.
16583         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
16584         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
16585         * sparc/sparc.h (INIT_EXPANDERS): Update.
16586         * ia64/ia64.h (INIT_EXPANDERS): Update.
16587
16588 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
16589
16590         * reload.c (push_secondary_reload): Add missing break to for loop.
16591
16592 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
16593
16594         PR middle-end/PR28690
16595         * rtlanal.c: Update copyright years.
16596         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
16597         as REG_POINTER and MEM_POINTER operands.
16598         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
16599         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
16600         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
16601         * gcse.c: Update copyright years.
16602         (pre_delete): Call gen_reg_rtx_and_attrs.
16603         (hoist_code): Likewise.
16604         (build_store_vectors): Likewise.
16605         (delete_store): Likewise.
16606         * loop-invariant.c (move_invariant_reg): Likewise.
16607         Update copyright years.
16608
16609 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
16610
16611         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
16612         control string instead of quoted.
16613
16614 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
16615
16616         * doc/rtl.texi: Rewrite of subreg section.
16617
16618 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
16619
16620         PR/35842
16621         * config/i386/i386.c (legitimize_pic_address): Add treating
16622         of dllimport SYM_REF's.
16623         (legitimize_dllimport_symbol): Add prototype.
16624
16625 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16626
16627         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
16628         reference in constructor with non self-referential type.
16629
16630 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16631
16632         Removal of Return with Depressed Stack Pointer support
16633         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
16634         (ECF_SP_DEPRESSED): Likewise.
16635         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
16636         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
16637         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16638         (expand_call): Do not test ECF_SP_DEPRESSED.
16639         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16640         * function.c (keep_stack_depressed): Delete.
16641         (handle_epilogue_set): Likewise.
16642         (update_epilogue_consts): Likewise.
16643         (emit_equiv_load): Likewise.
16644         (thread_prologue_and_epilogue_insns): Remove support for Return with
16645         Depressed Stack Pointer.
16646         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
16647
16648 2008-04-06  Richard Guenther  <rguenther@suse.de>
16649
16650         PR tree-optimization/35400
16651         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
16652         information from SSA_NAMEs.
16653
16654 2008-04-06  Anatoly Sokolov <aesok@post.ru>
16655
16656         * config/avr/avr.h (avr_mega_p): Remove declaration.
16657         (AVR_MEGA): Remove macro.
16658         * config/avr/avr.c (avr_mega_p): Remove variable.
16659         (avr_override_options): Remove inicializion of avr_mega_p.
16660         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
16661         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
16662         (avr_jump_mode): (Ditto.).
16663         (avr_output_progmem_section_asm_op): (Ditto.).
16664         (avr_asm_init_sections): (Ditto.).
16665         (avr_asm_init_sections): (Ditto.).
16666         (avr_rtx_costs): (Ditto.).
16667         * config/avr/avr.md: (Ditto.).
16668         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of
16669         '__AVR_MEGA__'.
16670
16671 2008-04-06  Richard Guenther  <rguenther@suse.de>
16672
16673         PR tree-optimization/35842
16674         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
16675         is_gimple_invariant_address.
16676
16677 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
16678
16679         * gcc.c (default_compilers): Sync Fortran extensions list with
16680         that in fortran/lang-specs.h.
16681         * doc/invoke.texi: Likewise.
16682         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
16683         * dwarf2out.c (gen_compile_unit_die): Likewise.
16684
16685 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
16686
16687         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
16688
16689 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
16690
16691         PR target/12329
16692         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
16693         attribute is used for nested functions.
16694
16695 2008-04-05  Jan Hubicka  <jh@suse.cz>
16696
16697         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
16698
16699         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
16700         letter argument.
16701         (dump_files): Update.
16702         (enable_rtl_dump_file): Do not accept letter argument.
16703         * tree-pass.h (dump_file_info): Remove letter argument.
16704         * toplev.c (decode_d_option): Update -da handling.
16705         * toplev.h (enable_rtl_dump_file): Update prototype.
16706         * passes.c (register_one_dump_file): Do not accept IPA argument; work
16707         it out based on pass type.
16708         (register_dump_files_1): Likewise.
16709         (init_optimization_passes): Update register_one_dump_file calls.
16710         (execute_one_pass): Sanity check that IPA passes are called at IPA
16711         level and RTL passes at RTL level.
16712         (execute_pass_list): IPA pass can not be after or subpass of
16713         GIMPLE/RTL pass.
16714         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
16715         disallov RTL subpasses of IPA subpasses.
16716
16717 2008-04-05  Ben Elliston  <bje@au.ibm.com>
16718
16719         * tree-cfg.c (need_fake_edge_p): Return false for calls to
16720         builtins that return exactly once and do not throw. Cache call to
16721         call_expr_flags.
16722
16723 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
16724
16725         PR rtl-optimization/34916
16726         PR middle-end/35519
16727         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
16728         between instruction pairs.
16729
16730 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
16731
16732         * doc/invoke.texi: Document -mbitops for SH.
16733         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
16734         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
16735         * config/sh/sh.c (print_operand): Add %t operand code.
16736         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
16737         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
16738         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
16739         (extendqihi2): Likewise.
16740         (movqi_i): Likewise.
16741         (insv): Use bset, bclr and bst instructions for SH2A if possible.
16742         (extv): Use bld instruction for SH2A if possible.
16743         (extzv): Likewise.
16744         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
16745         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
16746         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
16747         (bset.b, bclr.b): Define peepholes.
16748         * config/sh/sh.opt (mbitops): New option.
16749
16750 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
16751
16752         PR target/35620
16753         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
16754         and view convert expression.
16755
16756 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
16757
16758         PR target/35364
16759         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
16760
16761 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
16762
16763         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
16764
16765         * config/i386/cpuid.h (bit_AES): New.
16766         (bit_PCLMUL): Likewise.
16767
16768         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
16769         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
16770         SSE2 if AES or PCLMUL is enabled.
16771         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
16772         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
16773         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
16774         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
16775         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
16776         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
16777         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
16778         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
16779         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
16780         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
16781         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
16782         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
16783         __builtin_ia32_aeskeygenassist128 and
16784         __builtin_ia32_pclmulqdq128.
16785         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
16786         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
16787         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
16788
16789         * config/i386/i386.h (TARGET_AES): New.
16790         (TARGET_PCLMUL): Likewise.
16791         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
16792
16793         * config/i386/i386.md (UNSPEC_AESENC): New.
16794         (UNSPEC_AESENCLAST): Likewise.
16795         (UNSPEC_AESDEC): Likewise.
16796         (UNSPEC_AESDECLAST): Likewise.
16797         (UNSPEC_AESIMC): Likewise.
16798         (UNSPEC_AESKEYGENASSIST): Likewise.
16799         (UNSPEC_PCLMUL): Likewise.
16800
16801         * config/i386/i386.opt (maes): New.
16802         (mpclmul): Likewise.
16803
16804         * config/i386/sse.md (aesenc): New pattern.
16805         (aesenclast): Likewise.
16806         (aesdec): Likewise.
16807         (aesdeclast): Likewise.
16808         (aesimc): Likewise.
16809         (aeskeygenassist): Likewise.
16810         (pclmulqdq): Likewise.
16811
16812         * config/i386/wmmintrin.h: New.
16813
16814         * doc/extend.texi: Document AES and PCLMUL built-in function.
16815
16816         * doc/invoke.texi: Document -maes and -mpclmul.
16817
16818 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
16819
16820         * function.c (free_after_parsing): Replace with
16821         cxx_push_function_context from C++ front-end.
16822         (allocate_struct_function): Don't call langhook.
16823         * langhooks.h (struct lang_hooks_for_functions): Delete.
16824         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
16825         member "function".
16826         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
16827         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
16828         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
16829         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
16830         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
16831         remove LANG_HOOKS_FUNCTION_INITIALIZER.
16832         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
16833
16834         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
16835         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
16836
16837 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
16838
16839         PR c/35440
16840         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
16841         for all types.
16842
16843 2008-04-04  Richard Guenther  <rguenther@suse.de>
16844
16845         PR middle-end/35823
16846         * fold-const.c (optimize_minmax_comparison): Use the correct
16847         type for the constant in the simplified comparison.
16848
16849 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
16850
16851         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
16852         Pass L2 size as "--param l2-cache-size" to the compiler.
16853         (decode_l2_cache): New function to decode L2 cache parameters using
16854         0x8000006 extended cpuid function.
16855         (detect_caches_amd): Determine parameters of L2 cache using
16856         decode_l2_caches function.
16857         (decode_caches_intel): Decode L2 cache parameters.
16858         (detect_caches_intel): Determine L2 cache parameters using
16859         decode_caches_intel and decode_l2_caches functions.
16860
16861 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
16862
16863         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
16864         secondary input reload for subword loads from the constant pool.
16865
16866 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
16867
16868         PR target/35713
16869         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
16870           constants of the appropriate size for runtime calculations.
16871
16872         PR c/35712
16873         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
16874           decimal-float literal constant zero.
16875
16876 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
16877
16878         PR c/35738
16879         * c-parser.c (c_parser_omp_atomic): Call
16880         default_function_array_conversion on the RHS.
16881
16882         PR middle-end/35818
16883         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
16884         call is_variable_sized if decl has incomplete type.
16885
16886 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
16887
16888         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
16889
16890 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
16891
16892         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
16893         iterators.
16894         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
16895         (sgt<u>): Merge sgt and sgtu into new expander.
16896         (sgt, sgtu): Remove expanders.
16897         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
16898         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
16899         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
16900         *sgtu_<mode>_mips16 into new pattern.
16901         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
16902         (sge<u>): Merge sge and sgeu into new expander.
16903         (sge, sgeu): Remove expanders.
16904         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
16905         new pattern.
16906         (*sge_<mode>, second *sge_<mode>): Remove patterns.
16907         (slt<u>): Merge slt and sltu into new expander.
16908         (slt, sltu): Remove expanders.
16909         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
16910         (*slt_<mode>, *sltu_<mode>): Remove patterns.
16911         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
16912         *sltu_<mode>_mips16 into new pattern.
16913         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
16914         (sle<u>): Merge sle and sleu into new expander.
16915         (sle, sleu): Remove expanders.
16916         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
16917         (*sle_<mode>, *sleu_<mode>): Remove patterns.
16918         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
16919         *sleu_<mode>_mips16 into new pattern.
16920         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
16921
16922 2008-04-03  Jan Hubicka  <jh@suse.cz>
16923
16924         PR tree-optimization/35795
16925         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
16926         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
16927         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
16928         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
16929         * score/score3.c (score3_output_mi_thunk): Likewise.
16930         * score/score7.c (score7_output_mi_thunk): Likewise.
16931         * mips/mips.c (mips_output_mi_thunk): Likewise.
16932
16933 2008-04-03  Richard Guenther  <rguenther@suse.de>
16934
16935         * tree-vrp.c (extract_range_from_unary_expr): Handle all
16936         conversions.  Simplify code.
16937
16938 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
16939
16940         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
16941
16942 2008-04-03  Tom Tromey  <tromey@redhat.com>
16943             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16944
16945         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
16946         * config/bfin/t-bfin-linux (generated_files): Add
16947         linux-sysroot-suffix.h.
16948         * doc/install.texi (Prerequisites): Require make 3.80.
16949         * doc/sourcebuild.texi (Front End Directory): Document new
16950         variable.
16951         * Makefile.in (generated_files): New variable.
16952         (ALL_HOST_OBJS): New variable.
16953         ($(ALL_HOST_OBJS)): New target.
16954
16955 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
16956
16957         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
16958         (remap_block): Call id->transform_lang_insert_block instead
16959         of langhook.
16960         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
16961         Set id.transform_lang_insert_block to NULL.
16962         (clone_body): Move to cp/optimize.c
16963         * tree-inline.h (struct copy_body_data): Change
16964         transform_lang_insert_block to function pointer.
16965         (copy_generic_body, copy_decl_no_change): Export.
16966         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
16967         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
16968         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
16969
16970         * c-tree.h (insert_block): Kill.
16971         * c-decl.c (insert_block): Kill.
16972
16973 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
16974
16975         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
16976         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
16977         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
16978         argument.
16979         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
16980         argument, call {push,pop}_function_context from here.
16981         * c-parser.c: Use c_{push,pop}_function_context.
16982
16983         * function.c (push_function_context_to): Move meat ...
16984         (push_function_context): ... here.  Simplify.
16985         * function.c (pop_function_context_from): Move meat ...
16986         (pop_function_context): ... here.  Simplify.
16987         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
16988         leave_nested).
16989         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
16990         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
16991         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
16992         * tree.h (push_function_context_to, pop_function_context_from): Remove.
16993
16994 2008-04-03  Ben Elliston  <bje@au.ibm.com>
16995
16996         * expmed.c (extract_force_align_mem_bit_field): Remove.
16997
16998 2008-04-03  Richard Guenther  <rguenther@suse.de>
16999
17000         PR middle-end/35800
17001         * expr.h (try_casesi): Adjust prototype.
17002         * expr.c (try_casesi): Take fallback label as extra parameter.
17003         Use that for gen_casesi if default_label is NULL.
17004         * stmt.c (expand_case): Pass fallback label to try_casesi,
17005         make sure to fill gaps with a fallback label if default_label
17006         is not present.
17007
17008 2008-04-03  Dominique d'Humières <dominiq@lps.ens.fr>
17009
17010         PR target/35801
17011         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
17012
17013 2008-04-03  Ben Elliston  <bje@au.ibm.com>
17014
17015         * expmed.c (extract_split_bit_field): Remove if (0) code.
17016         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
17017         (do_ds_constraint): Likewise.
17018
17019 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
17020
17021         * doc/cppopts.texi (-dU): Document.
17022         * c-common.h (flag_dump_macros): Update comment.
17023         * c-opts.c (handle_OPT_d): Handle -dU.
17024         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
17025         dump_queued_macros, cb_used_define, cb_used_undef): New.
17026         (init_pp_output): Handle -dU.
17027         (cb_line_change): Call dump_queued_macros.
17028         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
17029
17030 2008-04-02  Anatoly Sokolov <aesok@post.ru>
17031
17032         * config/avr/predicates.md (io_address_operand): New predicate.
17033         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
17034         * config/avr/avr.c (avr_io_address_p): Remove function.
17035         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of
17036         'avr_io_address_p' function.
17037         (out_movhi_r_mr): (Ditto.).
17038         (out_movqi_mr_r): (Ditto.).
17039         (out_movhi_mr_r): (Ditto.).
17040         (avr_address_cost): (Ditto.).
17041
17042 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
17043
17044         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
17045         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
17046         in 32bit mode when XMM registers are available to avoid store
17047         forwarding stalls.
17048         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
17049         corresponding post-reload splitters.
17050
17051 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
17052
17053         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
17054         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
17055         __builtin_ia32_roundss.
17056         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
17057         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
17058         __builtin_ia32_roundss.
17059         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
17060         IX86_BUILTIN_SHUFPD here.
17061
17062 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
17063
17064         * config/i386/i386.md (plogic): New.
17065         (plogicprefix): Likewise.
17066
17067         * config/i386/mmx.md (mmx_<code><mode>3): New.
17068         (mmx_and<mode>3): Removed.
17069         (mmx_ior<mode>3): Likewise.
17070         (mmx_xor<mode>3): Likewise.
17071
17072         * config/i386/sse.md (<code><mode>3): New.
17073         (*<code><mode>3): Likewise.
17074         (*<code><mode>3): Likewise.
17075         (<code><mode>3): Likewise.
17076         (*sse_<code><mode>3): Likewise.
17077         (*sse2_<code><mode>3): Likewise.
17078         (<code>tf3): Likewise.
17079         (*<code>tf3): Likewise.
17080         (and<mode>3): Likewise.
17081         (*and<mode>3): Likewise.
17082         (ior<mode>3): Removed.
17083         (*ior<mode>3): Likewise.
17084         (xor<mode>3): Likewise.
17085         (*xor<mode>3): Likewise.
17086         (*and<mode>3): Likewise.
17087         (*ior<mode>3): Likewise.
17088         (*xor<mode>3): Likewise.
17089         (and<mode>3): Likewise.
17090         (*sse_and<mode>3): Likewise.
17091         (*sse2_and<mode>3): Likewise.
17092         (andtf3): Likewise.
17093         (*andtf3): Likewise.
17094         (ior<mode>3): Likewise.
17095         (*sse_ior<mode>3): Likewise.
17096         (*sse2_ior<mode>3): Likewise.
17097         (iortf3): Likewise.
17098         (*iortf3): Likewise.
17099         (xor<mode>3): Likewise.
17100         (*sse_xor<mode>3): Likewise.
17101         (*sse2_xor<mode>3): Likewise.
17102         (xortf3): Likewise.
17103         (*xortf3): Likewise.
17104
17105 2008-04-02  Richard Guenther  <rguenther@suse.de>
17106
17107         PR tree-optimization/14495
17108         PR tree-optimization/34793
17109         * tree-vrp.c (struct switch_update): New structure.
17110         (to_remove_edges, to_update_switch_stmts): New VECs.
17111         (simplify_switch_using_ranges): New function.  Remove not taken
17112         case labels and edges.
17113         (simplify_stmt_using_ranges): Call it.
17114         (identify_jump_threads): Mark edges we have queued for removal
17115         so we don't thread them.
17116         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
17117         case label vector.
17118         * tree-cfg.c (group_case_labels): Deal with missing default label.
17119         (tree_verify_flow_info): Allow missing default label.
17120         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
17121         (emit_case_nodes): Likewise.
17122         (expand_case): Do not rely on the default label to be present.
17123         * expr.c (try_casesi): Deal with NULL default_label.
17124         (do_tablejump): Likewise.
17125
17126 2008-04-02  Richard Guenther  <rguenther@suse.de>
17127
17128         PR tree-optimization/14495
17129         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
17130         SWITCH_EXPR here ...
17131         (vrp_visit_switch_stmt): ... but here (new function).
17132         (find_case_label_index): New helper function.
17133         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
17134
17135 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
17136
17137         * fwprop.c: Fix ISO-C99ism.
17138
17139 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
17140
17141         PR bootstrap/35752
17142         * Makefile.in (objdir): Set it here.
17143         * configure.ac: Not here.  Find dynamic linker characteristics.
17144         * exec-tool.in: Use them.
17145         * aclocal.m4: Regenerate.
17146         * configure: Regenerate.
17147
17148 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
17149
17150         * expr.c (expand_var): Delete it.
17151         * expr.h (expand_var): Delete prototype.
17152         * function.c (expand_function_start): Use expand_decl instead.
17153         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
17154         langhook.
17155
17156 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
17157
17158         PR rtl-optimization/35542
17159         * fwprop.c (forward_propagate_and_simplify): Replace
17160         loc_reg_mentioned_in_p with reg_mentioned_p.
17161
17162 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
17163
17164         PR rtl-optimization/35281
17165         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
17166         (propagate_rtx_1): Handle PR_HANDLE_MEM.
17167         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
17168         (varying_mem_p): Move above propagate_rtx.
17169         (all_uses_available_at): Do not check MEMs.
17170
17171 2008-04-02  Rafael Espíndola  <espindola@google.com>
17172
17173         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
17174         (register_edge_assert_for_2): Split the cond argument.
17175         (register_edge_assert_for_1): Adjust for the change in
17176         register_edge_assert_for_2.
17177         (register_edge_assert_for): Split the cond argument.
17178         (find_switch_asserts): Adjust for the change in
17179         register_edge_assert_for.
17180
17181 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
17182
17183         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
17184         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
17185         offsets for 64-bit mingw.
17186         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
17187         abi for x86_64-pc-mingw.
17188
17189 2008-04-02  Richard Guenther  <rguenther@suse.de>
17190
17191         * tree-vrp.c (extract_range_from_assert): Make sure to not
17192         produce range min/max with TREE_OVERFOW set.
17193         If merging a anti-range and a range keep the anti-range if
17194         the range covers all values of the type.
17195         (register_edge_assert_for_2): Only allow sign-changing
17196         conversions in detecting canonical range checks.  Also
17197         register an assert for the unsigned name if useful.
17198
17199         PR tree-optimization/35787
17200         * tree-vrp.c (vrp_val_max): New function.
17201         (vrp_val_min): Likewise.
17202         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
17203         (vrp_val_is_min): Likewise.
17204         (supports_overflow_infinity): Use vrp_val_{min,max}.
17205         (negative_overflow_infinity): Likewise.
17206         (positive_overflow_infinity): Likewise.
17207         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
17208         (is_positive_overflow_infinity): Likewise.
17209         (is_overflow_infinity): Likewise.
17210         (avoid_overflow_infinity): Use vrp_val_{min,max} and
17211         vrp_val_is_{min,max}.
17212         (set_and_canonicalize_value_range): Canonicalize anti-ranges
17213         to ranges if possible.  Avoid empty ranges.
17214
17215 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17216
17217         PR middle-end/35705
17218         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
17219         the expression is a function address.
17220
17221 2008-04-01  George Helffrich  <george@gcc.gnu.org>
17222
17223         PR fortran/35154, fortran/23057
17224         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
17225         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
17226         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
17227         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
17228         in common.
17229         (dbxout_syms): Check for COMMON-based symbol and wrap in
17230         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
17231         in bracket for efficiency.
17232
17233         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
17234         using DW_TAG_common_block + member offset.
17235         (add_pubname_string): New function.
17236         (dw_expand_expr): New function to find block name and offset for
17237         COMMON var.
17238         (common_check): New function to check whether symbol in Fortran COMMON.
17239         (gen_variable_die): If COMMON, use DW_TAG_common_block.
17240
17241 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
17242
17243         PR c/35436
17244         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
17245
17246 2008-04-02  Ben Elliston  <bje@au.ibm.com>
17247
17248         * config/v850/v850.md (casesi): Remove if (0) code.
17249         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17250         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
17251
17252 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
17253
17254         * config/i386/i386.md (rex64suffix): New mode attribute.
17255         (floathi<mode>2): Disable expander for SSE math.
17256         (*floathi<mode>2_1): New insn insn_and_split pattern.
17257         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
17258         corresponding post-reload splitters.
17259         (*floathi<mode>2_i387): New macroized insn pattern.
17260         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
17261         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
17262         insn_and_split pattern.
17263         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
17264         New macroized instruction patterns and corresponding post-reload
17265         splitters.
17266         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
17267         and corresponding post-reload splitters.
17268         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
17269         New macroized instruction patterns.
17270         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
17271         macroized instruction patterns and corresponding post-reload splitters.
17272         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
17273         corresponding post-reload splitters.
17274         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
17275         New macroized instruction patterns.
17276         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
17277         corresponding post-reload splitters.
17278         (*floatsi<mode>2_i387): New macroized instruction patterns.
17279
17280 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
17281
17282         * config/i386/i386.md (smaxmin): New.
17283         (umaxmin): Likewise.
17284         (maxminiprefix): Likewise.
17285         (maxminfprefix): Likewise.
17286         (<code><mode>3): Likewise.
17287         (smin<mode>3): Removed.
17288         (smax<mode>3): Likewise.
17289
17290         * config/i386/mmx.md (mmx_<code>v2sf3): New.
17291         (mmx_<code>v4hi3): Likewise.
17292         (mmx_<code>v8qi3): Likewise.
17293         (mmx_smaxv2sf3): Removed.
17294         (mmx_sminv2sf3): Likewise.
17295         (mmx_umaxv8qi3): Likewise.
17296         (mmx_smaxv4hi3): Likewise.
17297         (mmx_uminv8qi3): Likewise.
17298         (mmx_sminv4hi3): Likewise.
17299
17300         * config/i386/sse.md (<addsub><mode>3): New.
17301         (*<addsub><mode>3): Likewise.
17302         (<sse>_vm<addsub><mode>3): Likewise.
17303         (<maxmin><mode>3): Likewise.
17304         (*<maxmin><mode>3_finite): Likewise.
17305         (*<maxmin><mode>3): Likewise.
17306         (<sse>_vm<maxmin><mode>3): Likewise.
17307         (sse3_h<addsub>v4sf3): Likewise.
17308         (sse3_h<addsub>v2df3): Likewise.
17309         (<maxmin>v16qi3): Likewise.
17310         (*<maxmin>v16qi3): Likewise.
17311         (<maxmin>v8hi3): Likewise.
17312         (*<maxmin>v8hi3): Likewise.
17313         (*sse4_1_<maxmin><mode>3): Likewise.
17314         (*sse4_1_<maxmin><mode>3): Likewise.
17315         (add<mode>3): Removed.
17316         (*add<mode>3): Likewise.
17317         (<sse>_vmadd<mode>3): Likewise.
17318         (sub<mode>3): Likewise.
17319         (*sub<mode>3): Likewise.
17320         (<sse>_vmsub<mode>3): Likewise.
17321         (smin<mode>3): Likewise.
17322         (*smin<mode>3_finite): Likewise.
17323         (*smin<mode>3): Likewise.
17324         (<sse>_vmsmin<mode>3): Likewise.
17325         (smax<mode>3): Likewise.
17326         (*smax<mode>3_finite): Likewise.
17327         (*smax<mode>3): Likewise.
17328         (<sse>_vmsmax<mode>3): Likewise.
17329         (sse3_haddv4sf3): Likewise.
17330         (sse3_haddv2df3): Likewise.
17331         (sse3_hsubv4sf3): Likewise.
17332         (sse3_hsubv2df3): Likewise.
17333         (umaxv16qi3): Likewise.
17334         (*umaxv16qi3): Likewise.
17335         (smaxv8hi3): Likewise.
17336         (*smaxv8hi3): Likewise.
17337         (*sse4_1_smax<mode>3): Likewise.
17338         (*sse4_1_umax<mode>3): Likewise.
17339         (uminv16qi3): Likewise.
17340         (*uminv16qi3): Likewise.
17341         (sminv8hi3): Likewise.
17342         (*sminv8hi3): Likewise.
17343         (*sse4_1_smin<mode>3): Likewise.
17344         (*sse4_1_umin<mode>3): Likewise.
17345
17346 2008-04-01  Rafael Espíndola  <espindola@google.com>
17347
17348         * tree-cfg.c (verify_expr): remove in_phi.
17349         (verify_stmt): Don't call walk_tree with verify_expr. Use
17350         is_gimple_min_invariant instead of is_gimple_val.
17351
17352 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
17353
17354         * doc/include/gpl_v3.texi: Update for manpage generation.
17355         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
17356         gpl.texi.
17357         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
17358         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
17359         gpl_v3.texi instead of gpl.texi.
17360         (gpl.pod): New.
17361
17362 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
17363
17364         PR pch/13675
17365         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
17366
17367 2008-04-01  Rafael Espíndola  <espindola@google.com>
17368
17369         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
17370         (extract_code_and_val_from_cond): Use
17371         extract_code_and_val_from_cond_with_ops.
17372
17373 2008-04-01  Jan Hubicka  <jh@suse.cz>
17374
17375         * function.c (free_after_compilation): Free epilogue_delay_list.
17376         (prepare_function_start): Assert that previous compilation was freed.
17377
17378 2008-04-01  Jan Hubicka  <jh@suse.cz>
17379             Jim Wilson  <wilson@tuliptree.org>
17380             Andreas Tobler <andreast@gcc.gnu.org>
17381
17382         PR middle-end/35781
17383         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
17384         rtl.emit instead cfun->emit.
17385         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
17386         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
17387
17388 2008-04-01  Ben Elliston  <bje@au.ibm.com>
17389
17390         * doc/c-tree.texi (Function Basics): Fix grammatical error.
17391
17392 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
17393
17394         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
17395         New options
17396         (fprofile-use): Add var flag_profile_use
17397         * coverage.c (coverage_begin_output): Do not open a gcno file for
17398         output only if -ftest-coverage is set.
17399         Do not add getpwd() to gcda file path.
17400         (build_gcov_info): Check the new flag
17401         flag_profile_datafile_relative_path.
17402         (coverage_init): Use profile_data_prefix.
17403         Read profile counter only if flag_profile_use is set.
17404         * opts.c (common_handle_option): New option fprofile-use=,
17405         fprofile-dir=, fprofile-generate=.
17406         * toplev.c (profile_data_prefix): New variable definition.
17407         * toplev.h (profile_data_prefix): New declaration.
17408         * doc/invoke.tex (Option Summary, Optimization Options):
17409         Add new options.
17410
17411 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
17412
17413         * varasm.c (output_constant_pool_1): In LABEL_REF check,
17414         use tmp consistently.
17415
17416         PR target/35695
17417         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
17418         * config/ia64/ia64.c (rtx_needs_barrier): Handle
17419         UNSPEC_FR_RECIP_APPROX_RES.
17420         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
17421
17422 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
17423
17424         PR c/35750
17425         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
17426
17427 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17428
17429         PR middle-end/30186
17430         * fold-const.c (fold_indirect_ref_1): Support accessing non first
17431         element of the vector via a pointer.
17432
17433 2008-03-31  Ian Lance Taylor  <iant@google.com>
17434
17435         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
17436
17437 2008-03-31  Jan Hubicka  <jh@suse.cz>
17438
17439         * builtins.c (expand_builtin_setjmp_receiver): Update call of
17440         get_arg_pointer_save_area.
17441         * expr.c (init_expr): Just clear out rtl.expr.
17442         * function.c (free_after_compilation): Clear out whole RTL structure.
17443         (get_func_frame_size): Merge into ...
17444         (get_frame_size): ... this one.
17445         (assign_stack_local_1): Merge into ...
17446         (assign_stack_local): ... this one.
17447         (expand_function_end): Update call of get_arg_pointer_save_area.
17448         (get_art_pointer_save_area): Remove cfun argument.
17449         * function.h (emit_status): regno_pointer_align does not need length
17450         attribute. Move x_regno_reg_rtx to ...
17451         (regno_reg_rtx): ... new global array.
17452         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
17453         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
17454         apply_args_value, forced_labels, stack_pointer_delta):
17455         Update accestors.
17456         (struct varasm_status): Move here from varasm.c
17457         (struct rtl_data): New. Move here some fields from struct function.
17458         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
17459         frame_offset, stack_check_probe_note, arg_pointer_save_area,
17460         used_temp_slots avail_temp_slots, temp_slot_level,
17461         nonlocal_goto_handler_labels): Update accesstors.
17462         (rtl): New global variable.
17463         (struct function): Move some fileds to rtl_data.
17464         (get_arg_pointer_save_area): Update prototype.
17465         * emit-rtl.c (rtl): Declare.
17466         (regno_reg_rtx): Declare.
17467         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
17468         Update.
17469         (gen_reg_rtx): Update.
17470         (init_virtual_regs): Do not tate emit_status argument.
17471         (init_emit): Do not allocate emit.
17472         * varasm.c (varasm_statuc): Move to function.h.
17473         (n_deferred_constatns): Update accestor.
17474         (init_varasm_status): Do not allocate varasm_status.
17475         (force_const_mem, get_pool_size, output_constant_pool): Update.
17476         * stmt.c (force_label_rtx): Do not use x_ prefixes.
17477         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
17478
17479 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
17480
17481         PR rtl-optimization/35729
17482         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
17483         references.
17484
17485 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
17486
17487         PR target/32000
17488         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
17489         load/store if memory is unaligned.
17490         (*movti_rex64): Likewise.
17491
17492         * config/i386/predicates.md (misaligned_operand): New.
17493
17494 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
17495
17496         PR tree-opt/35431
17497         * tree-ssa-phiopt.c (conditional_replacement): Return early for
17498         complex types.
17499
17500 2008-03-31  Jan Beulich  <jbeulich@novell.com>
17501
17502         * config/ia64/constraints.md: Add 'j' constraint.
17503         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
17504         (movdi_internal): Likewise.
17505
17506 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
17507
17508         PR c/35748
17509         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
17510
17511 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
17512
17513         PR target/35757
17514         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
17515         proper error message for the third argument on blendpd and
17516         blendps.
17517
17518         * config/i386/sse.md (blendbits): New.
17519         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
17520
17521 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
17522
17523         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
17524
17525 2008-03-30  Richard Guenther  <rguenther@suse.de>
17526
17527         PR middle-end/31023
17528         * fold-const.c (fold_sign_changed_comparison): Do leave
17529         conversions to base-types alone.
17530
17531 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17532
17533         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
17534         the link register if one altivec register is be saved.
17535
17536 2008-03-30  Ben Elliston  <bje@au.ibm.com>
17537
17538         * final.c (final_scan_insn): Remove if (0) code.
17539
17540 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
17541
17542         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
17543
17544 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
17545
17546         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
17547         of V4SFmode to ix86_binary_operator_ok.
17548
17549 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
17550
17551         * config/i386/i386.c (override_options): Initialize
17552         ix86_veclib_handler to ix86_veclibabi_svml when
17553         -mveclibabi=svml is used.
17554         (ix86_veclibabi_svml): New function for SVML ABI style
17555         vectorization support.
17556         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
17557
17558 2008-03-28  Rafael Espíndola  <espindola@google.com>
17559
17560         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
17561         (tree_binary_nonnegative_warnv_p): Make it public.
17562         (tree_single_nonnegative_warnv_p): Make it public.
17563         (tree_invalid_nonnegative_warnv_p): Make it public.
17564         (tree_unary_nonzero_warnv_p): Make it public.
17565         (tree_binary_nonzero_warnv_p): Make it public
17566         (tree_single_nonzero_warnv_p): Make it public.
17567         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
17568         (extract_range_from_binary_expr): Split the expr argument.
17569         (extract_range_from_unary_expr): Split the expr argument.
17570         (extract_range_from_comparison): Split the expr argument.
17571         (extract_range_from_expr): Use the new aux functions.
17572         (vrp_evaluate_conditional_warnv): Use
17573         vrp_evaluate_conditional_warnv_with_ops.
17574         * tree.h (tree_unary_nonzero_warnv_p): Declare.
17575         (tree_binary_nonzero_warnv_p): Declare.
17576         (tree_single_nonzero_warnv_p): Declare.
17577         (tree_expr_nonzero_warnv_p): Declare.
17578         (tree_unary_nonnegative_warnv_p): Declare.
17579         (tree_binary_nonnegative_warnv_p): Declare.
17580         (tree_single_nonnegative_warnv_p): Declare.
17581         (tree_invalid_nonnegative_warnv_p): Declare.
17582
17583 2008-03-28  Richard Guenther  <rguenther@suse.de>
17584
17585         PR tree-optimization/30317
17586         PR tree-optimization/30911
17587         PR tree-optimization/34793
17588         * tree-vrp.c (set_and_canonicalize_value_range): New function.
17589         (struct assert_locus_d): New member EXPR.
17590         (register_new_assert_for): Add EXPR parameter to support
17591         ASSERT_EXPR <name, expr OP limit>.
17592         (register_edge_assert_for_1): Adjust callers.
17593         (find_assert_locations): Likewise.
17594         (process_assert_insertions_for): Build condition from expression.
17595         (extract_range_from_assert): Handle ASSERT_EXPRs
17596         of the form ASSERT_EXPR <name, expr OP limit>.
17597         (register_edge_assert_for_2): New helper registering
17598         asserts for comparisons.  Recognize range tests of the form
17599         (unsigned)i - CST1 OP CST2.
17600         (register_edge_assert_for_1): Use it.
17601         (register_edge_assert_for): Likewise.
17602         (needs_overflow_infinity): Integer sub-types
17603         do not need overflow infinities.
17604         (vrp_val_is_max): The extreme values of integer sub-types
17605         are those of the base type.
17606         (vrp_val_is_min): Likewise.
17607         * tree.def (ASSERT_EXPR): Document extra allowed conditional
17608         expressions.
17609
17610 2008-03-28  Nick Clifton  <nickc@redhat.com>
17611
17612         PR target/31110
17613         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
17614         Return GENERAL_REGS for stack adjustment reloads.
17615
17616 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17617
17618         PR target/31334
17619         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
17620         const_vector when all the vectors are constant.
17621
17622 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
17623
17624         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
17625         comparisons.
17626         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
17627         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
17628         (scc_sf): New.
17629         (s<code>_sf): Use new scc_sf attribute for opcode names.
17630
17631 2008-03-27  Tom Tromey  <tromey@redhat.com>
17632
17633         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
17634         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
17635         config/spu/t-spu-elf, config/i386/t-interix,
17636         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
17637         config/i386/x-darwin, config/i386/x-mingw32,
17638         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
17639         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
17640         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
17641         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
17642         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
17643         config/rs6000/x-darwin, config/rs6000/t-rs6000,
17644         config/score/t-score-elf, config/arm/t-strongarm-pe,
17645         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
17646         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
17647         Revert automatic dependency patch.
17648
17649 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17650
17651         PR target/35657
17652         * config/i386/i386.c (ix86_function_arg_boundary): Align
17653         decimal floating point to its natural boundary.
17654
17655 2008-03-27  Richard Guenther  <rguenther@suse.de>
17656
17657         PR middle-end/35716
17658         * fold-const.c (fold_comparison): Restrict distinct decl
17659         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
17660         solely rely on operand_equal_p.
17661
17662 2008-03-27  Richard Guenther  <rguenther@suse.de>
17663
17664         PR c/32511
17665         * c-common.c (handle_weak_attribute): Reject combination of
17666         weak and inline.
17667
17668 2008-03-27  Richard Guenther  <rguenther@suse.de>
17669
17670         PR tree-optimization/32810
17671         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
17672         conversions from DECL_INITIAL.
17673         (fold_const_aggregate_ref): Likewise from constructor elements.
17674
17675 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
17676
17677         * tree-affine.h (aff_combination_expand): Declare.
17678         (get_inner_reference_aff): Likewise.
17679         * tree-affine.c (aff_combination_expand): Split out from
17680         tree_to_aff_combination_expand.
17681         (get_inner_reference_aff): New function.
17682         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
17683         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
17684         (struct lim_aux_data): sm_done field removed.
17685         (mem_ref_loc_p, mem_ref_locs_p): New types.
17686         (struct mem_ref): Added id, stored, accesses_in_loop,
17687         indep_loop, dep_loop, indep_ref, dep_ref fields.
17688         Removed is_stored, locs and next fields.
17689         (memory_accesses): New variable.
17690         (movement_possibility): Do not allow moving statements
17691         that store to memory.
17692         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
17693         New functions.
17694         (determine_max_movement): For statements with memory references,
17695         find the outermost loop in that the reference is independent.
17696         (move_computations_stmt): Mark the virtual operands for renaming.
17697         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
17698         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
17699         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
17700         add_vop_ref_mapping, create_vop_ref_mapping_loop,
17701         create_vop_ref_mapping, analyze_memory_references,
17702         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
17703         get_all_locs_in_loop, ref_always_accessed_p,
17704         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
17705         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
17706         store_motion_loop, store_motion): New functions.
17707         (struct vop_to_refs_elt): New type.
17708         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
17709         memref_hash, memref_eq, hoist_memory_references): Rewritten.
17710         (schedule_sm): Replaced by...
17711         (execute_sm): ... this.
17712         (determine_lsm_ref, hoist_memory_references,
17713         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
17714         find_more_ref_vops, free_mem_ref, free_mem_refs,
17715         determine_lsm_loop, determine_lsm): Removed.
17716         (tree_ssa_lim_finalize): Free data structures used by store motion.
17717         (tree_ssa_lim): Call analyze_memory_references.  Use
17718         store_motion instead of determine_lsm.
17719
17720 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
17721
17722         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
17723         rename tmake_file to m68hc11/t-m68hc11.
17724         (mcore): Set inhibit_libc to true.
17725         * config.host (alpha*-dec-*vms*): Set extra_programs.
17726         (interix3*): Don't use host_xmake_file.
17727         * configure.ac: Let config.gcc override inhibit_libc.
17728         * configure: Regenerate.
17729
17730         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
17731         * config/t-openbsd-thread: Remove commented out lines.
17732
17733         * config/x-interix: Remove.
17734
17735         * config/m68hc11/t-m68hc11-gas: Rename to...
17736         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
17737
17738         * config/mcore/t-mcore: Remove T_CFLAGS.
17739         * config/mcore/t-mcore-pe: Likewise.
17740
17741 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
17742
17743         * configure.ac: Replace custom __GNU_SOURCE test with
17744         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
17745         * aclocal.m4: Regenerate.
17746         * configure: Regenerate.
17747         * config.in: Regenerate.
17748
17749 2008-03-27  Richard Guenther  <rguenther@suse.de>
17750
17751         * fold-const.c (target.h): Include.
17752         (fold_comparison): Fold comparison of addresses of decls
17753         that bind locally or of constants.  Consolidate address folding code.
17754         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
17755         results from fold_binary_to_constant.
17756         (compare_values_warnv): Likewise.
17757
17758 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
17759
17760         PR middle-end/35429
17761         * fold-const.c (fold_truthop): Check for integeral types when folding
17762         a == 0 && b == 0 and a != 0 || b != 0 .
17763
17764 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
17765
17766         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
17767
17768 2008-03-26  Andreas Schwab  <schwab@suse.de>
17769
17770         * doc/invoke.texi: Fix use of @item vs. @itemx.
17771
17772 2008-03-26  Tom Tromey  <tromey@redhat.com>
17773
17774         * Makefile.in (build/gensupport.o, build/print-rtl.o,
17775         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
17776         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
17777         build/gencodes.o, build/genconditions.o, build/genconfig.o,
17778         build/genconstants.o, build/genemit.o, build/genextract.o,
17779         build/genflags.o, build/genmddeps.o, build/genopinit.o,
17780         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
17781         options.h.
17782
17783 2008-03-26  Richard Guenther  <rguenther@suse.de>
17784
17785         Revert
17786         2008-03-26  Richard Guenther  <rguenther@suse.de>
17787
17788         * fold-const.c (target.h): Include.
17789         (fold_comparison): Fold comparison of addresses of two decls
17790         that bind locally.  Consolidate address folding code.
17791
17792 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17793
17794         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
17795         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
17796         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
17797         dconstsqrt2, dconstthird, dconste and/or dconst10.
17798         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
17799         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
17800         dconstsqrt2, dconste): Delete.
17801         (init_emit_once): Likewise.  Simplify initializing dconstm1.
17802         Constify variable.
17803         * real.c (get_real_const): New.
17804         * real.h (dconst3, dconst10, dconstm2, dconstthird,
17805         dconstsqrt2, dconste): Delete.
17806         (real_value_const, get_real_const): New.
17807
17808 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
17809
17810         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
17811
17812         * config/i386/i386.c (ix86_function_arg_boundary): Check
17813         BIGGEST_ALIGNMENT instead of 128.
17814         (setup_incoming_varargs_64): Likewise.
17815
17816 2008-03-26  Tom Tromey  <tromey@redhat.com>
17817
17818         * Makefile.in (DEPFILES): Add missing '/'.
17819
17820 2008-03-26  Richard Guenther  <rguenther@suse.de>
17821
17822         * fold-const.c (target.h): Include.
17823         (fold_comparison): Fold comparison of addresses of two decls
17824         that bind locally.  Consolidate address folding code.
17825
17826 2008-03-26  Nick Clifton  <nickc@redhat.com>
17827
17828         PR target/31232
17829         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
17830         not allow INT+INT as a legitimate addressing mode.
17831
17832 2008-03-26  Richard Guenther  <rguenther@suse.de>
17833
17834         * tree-flow.h (widen_bitfield): Remove declaration.
17835         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
17836         (widen_bitfield): Remove function.
17837         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
17838         code.
17839
17840 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17841
17842         PR target/31558
17843         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
17844         error_mark_node's.
17845
17846 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
17847
17848         PR rtl-optimization/35232
17849         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
17850         (forget_old_reloads_1, forget_marked_reloads): Don't clear
17851         reg_reloaded_call_part_clobbered here.
17852         (reload_regs_reach_end_p): New function.
17853         (reload_reg_rtx_for_input): New variable.
17854         (reload_reg_rtx_for_output): Likewise.
17855         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
17856         when reassigning a pseudo register.  Load reloadreg from
17857         reload_reg_rtx_for_input, moving the mode and register
17858         calculation to...
17859         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
17860         instead of the original when deciding whether an input reload
17861         would be a no-op or whether an output reload can be deleted.
17862         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
17863         when setting up new_spill_reg_store.  Load it from
17864         reload_reg_rtx_for_output, moving the mode and register
17865         calculation to...
17866         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
17867         instead of the original when deciding whether an output reload
17868         would be a no-op.  Do the same when modifying insn notes.
17869         Use rtx_equal_p instead of == to compare the registers.
17870         (inherit_piecemeal_p): Take a mode and two register numbers
17871         as argument.
17872         (emit_reload_insns): Clear new_spill_reg_store for every hard
17873         register in the reload register.  Remove spill registers
17874         from reg_reloaded_valid before considering whether to record
17875         inheritance information for them.  Use reload_reg_rtx_for_output
17876         instead of reg_rtx when recording output reloads.  Use
17877         reload_reg_rtx_for_input instead of reg_rtx when recording
17878         input reloads.  Set or clear reg_reloaded_call_part_clobbered
17879         at the same time as setting reg_reloaded_valid.
17880         (delete_output_reload): Add a new_reload_reg parameter and use it
17881         instead of rld[j].reg_rtx.
17882         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
17883         calls accordingly.
17884
17885 2008-03-25  Tom Tromey  <tromey@redhat.com>
17886
17887         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
17888         (build/genattr.o): Likewise.
17889         (build/genattrtab.o): Likewise.
17890         (build/gencodes.o): Likewise.
17891         (build/genconfig.o): Likewise.
17892         (build/genconstants.o): Likewise.
17893         (build/genemit.o): Likewise.
17894         (build/genextract.o): Likewise.
17895         (build/genflags.o): Likewise.
17896
17897 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
17898
17899         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
17900         instead of size_int for integer types.
17901         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
17902         to match type of MINUS_EXPR.
17903
17904 2008-03-25  Tom Tromey  <tromey@redhat.com>
17905
17906         * configure: Rebuilt.
17907         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
17908         Makefile.
17909
17910 2008-03-25  Tom Tromey  <tromey@redhat.com>
17911
17912         * config/x-solaris (host-solaris.o): Update.
17913         * config/x-linux (host-linux.o): Update.
17914         * config/x-hpux (host-hpux.o): Update.
17915         * config/x-darwin (host-darwin.o): Update.
17916         * config/v850/t-v850e (v850-c.o): Update.
17917         * config/v850/t-v850 (v850-c.o): Update.
17918         * config/t-vxworks (vxworks.o): Update.
17919         * config/t-sol2 (sol2-c.o, sol2.o): Update.
17920         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
17921         * config/spu/t-spu-elf (spu-c.o): Update.
17922         (spu.o): Remove.
17923         * config/sh/t-symbian (sh-c.o): Update.
17924         (symbian.o): Update.
17925         * config/sh/t-sh (sh-c.o): Update.
17926         * config/score/t-score-elf (score7.o, score3.o): Update.
17927         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
17928         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
17929         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
17930         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
17931         (rs6000.o): Remove.
17932         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
17933         * config/m32c/t-m32c (m32c-pragma.o): Update.
17934         * config/ia64/t-ia64 (ia64-c.o): Update.
17935         * config/i386/x-mingw32 (host-mingw32.o): Update.
17936         * config/i386/x-i386 (driver-i386.o): Update.
17937         * config/i386/x-darwin (host-i386-darwin.o): Update.
17938         * config/i386/x-cygwin (host-cygwin.o): Update.
17939         * config/i386/t-nwld (nwld.o): Update.
17940         * config/i386/t-netware (netware.o): Update.
17941         * config/i386/t-interix (winnt.o): Update.
17942         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
17943         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
17944         msformat-c.o): Update.
17945         * config/bfin/t-bfin-linux (generated_files): Add
17946         linux-sysroot-suffix.h.
17947         * config/arm/t-wince-pe (pe.o): Update.
17948         * config/arm/t-strongarm-pe (pe.o): Update.
17949         * config/arm/t-pe (pe.o): Update.
17950         * config/arm/t-arm (arm-c.o): Update.
17951         * doc/install.texi (Prerequisites): Require make 3.80.
17952         * Makefile.in: Remove .o targets.
17953         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
17954         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
17955         (simple_generated_h, simple_generated_c): Move earlier.
17956         (generated_files): New variable.
17957         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
17958         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
17959         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
17960         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
17961         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
17962         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
17963         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
17964         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
17965         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
17966         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
17967         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
17968         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
17969         (.c.o): Remove.
17970         (COMPILE.base, COMPILE): New variables.
17971         (%.o): New pattern rule.
17972         (ALL_HOST_OBJS): New variable.
17973         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
17974         (dummy-checksum.o, cc1-checksum.o): Remove.
17975         (DRIVER_SHLIB): New variable.
17976         (DRIVER_DEFINES): Use it.
17977         (gencondmd.c): Move out of build/.
17978         (s-conditions): Update.
17979         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
17980         (ALL_BUILD_OBJS): Likewise.
17981         (build/%.o): Use BUILDCOMPILE.
17982         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
17983         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
17984         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
17985         build/gencheck.o, build/gencodes.o, build/genconditions.o,
17986         build/genconfig.o, build/genconstants.o, build/genemit.o,
17987         build/genextract.o, build/genflags.o, build/genmddeps.o,
17988         build/genopinit.o, build/genoutput.o, build/genpeep.o,
17989         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
17990         build/gen-protos.o, build/scan.o, build/fix-header.o,
17991         build/scan-decls.o): Simplify.
17992         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
17993         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
17994         prefix.o, toplev.o): Reduce to variable setting.
17995         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
17996         ($(out_object_file), gcc-options.o): New targets.
17997         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
17998         * configure: Rebuilt.
17999         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
18000         * doc/sourcebuild.texi (Front End Directory): Document new variable.
18001
18002 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
18003
18004         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
18005         complain when we hit an error, return ERROR_MARK_NODE.
18006
18007 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
18008
18009         * config/sh/constraints.md (Pso, Psz): New constraints.
18010         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
18011         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
18012
18013 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
18014
18015         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
18016         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
18017
18018 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
18019
18020         * config/sh/sh.md (prefetch): Add condition for SH2A target.
18021         (prefetch_sh2a): New.
18022
18023 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
18024             Naveen.H.S  <naveen.hs@kpitcummins.com>
18025
18026         * config/sh/constraints.md (I28): New constraint.
18027         * config/sh/sh.c (broken_move): Add support for movi20s.
18028         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
18029
18030 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
18031             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
18032             Naveen.H.S  <naveen.hs@kpitcummins.com>
18033
18034         * config/sh/sh.c (SH_ATTRIBUTES): Define.
18035         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
18036         (print_operand): Handle resbank in %@ operand code.
18037         (sh_encode_section_info): New.
18038         (push_regs): Add conditions for resbank.
18039         (sh_expand_epilogue): Likewise.
18040         (sh_insert_attributes): Likewise.
18041         (sh_attribute_table): Likewise.
18042         (sh_handle_resbank_handler_attribute): New.
18043         (sh2a_handle_function_vector_handler_attribute): New.
18044         (sh2a_is_function_vector_call): New.
18045         (sh2a_get_function_vector_number): New.
18046         (sh2a_function_vector_p): New.
18047         (sh_cfun_resbank_handler_p): New.
18048         * config/sh/sh.md (calli): Emit jsr/n if possible.
18049         (calli_tbr_rel): New.
18050         (calli_pcrel): Emit jsr/n if possible.
18051         (return_i): Emit rts/n if possible.
18052         (call_valuei_tbr_rel): New.
18053         (call_valuei_pcrel): Add condition for SH2A target.
18054         (call_value): Likewise.
18055         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
18056         (sh2a_get_function_vector_number): Likewise.
18057         (sh2a_is_function_vector_call): Likewise.
18058         * doc/extend.texi: Document TBR relative addressing of SH2A.
18059         (resbank): Add description for SH2A.
18060
18061 2008-03-24  Richard Guenther  <rguenther@suse.de>
18062
18063         PR c/22371
18064         * gimplify.c (gimplify_modify_expr): For frontend type-correct
18065         pointer assignments change conversions according to middle-end rules.
18066         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
18067         * configure.ac: Include type checking in yes.
18068         * configure: Regenerate.
18069
18070 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18071
18072         * diagnostic.c (diagnostic_count_diagnostic): Delete.
18073         (diagnostic_report_diagnostic): Update. Handle ICEs here.
18074
18075 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
18076
18077         * gthr-vxworks.h (UNUSED): Define.
18078
18079 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
18080
18081         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
18082
18083 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
18084
18085         * doc/extend.texi (Function Attributes): Add missing comma in the
18086         example of the "alloc_size" attribute.
18087
18088 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
18089
18090         Revert:
18091         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
18092
18093         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
18094         32bit host.
18095
18096         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
18097
18098         PR target/35496
18099         * stor-layout.c (update_alignment_for_field): Set minimum alignment
18100         of the underlying type of a MS bitfield layout to the natural
18101         alignment of the type.
18102
18103         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
18104
18105         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
18106         to their natural alignment to avoid store forwarding stalls.
18107
18108 2008-03-22  Richard Guenther  <rguenther@suse.de>
18109
18110         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
18111         For PHI nodes verify the address is invariant.
18112         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
18113         (get_symbol_constant_value): Use is_gimple_min_invariant.
18114         (maybe_fold_stmt_indirect): Likewise.
18115
18116 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
18117
18118         PR rtl-optimization/33927
18119         * Makefile.in (dse.o): Depend on $(TM_P_H).
18120         * expr.h (extract_low_bits): Declare.
18121         * expmed.c (extract_low_bits): New function.
18122         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
18123         * dse.c: Include tm_p.h.
18124         (find_shift_sequence): Remove the read_reg argument and return the
18125         read value.  Emit the instructions instead of returning them.
18126         Iterate on new_mode rather than calculating it each time.
18127         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
18128         source to NEW_MODE and extract_low_bits to convert the shifted
18129         value to READ_MODE.
18130         (replace_read): Allow the load and store to have different mode
18131         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
18132         or extraction instructions before trying the replacement.  Update
18133         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
18134
18135 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
18136
18137         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
18138         to their natural alignment to avoid store forwarding stalls.
18139
18140 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18141
18142         PR target/27946
18143         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
18144         encouraging but not allowing gprs for input;
18145         change the input constraint to !f#r.
18146         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
18147         gprs for output;
18148         change the output constraint to !f#r.
18149
18150 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
18151
18152         PR target/13958
18153         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
18154         corresponding post-reload splitters.
18155         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
18156         when x87 FP math is selected.
18157         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
18158         New function prototype.
18159         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
18160         unreachable function to ease macroization of insn patterns.
18161
18162 2008-03-21  Martin Jambor  <mjambor@suse.cz>
18163
18164         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
18165         reference dumps if ddr is NULL or dependence is unknown.
18166
18167 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18168
18169         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
18170         unsigned extension into account.
18171         (ATOMIC_COMPARE_AND_SWAP): Likewise.
18172         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
18173         Do computations on a scratch register.
18174
18175 2008-03-21  Richard Guenther  <rguenther@suse.de>
18176
18177         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
18178         Use is_gimple_min_invariant instead of TREE_INVARIANT.
18179         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
18180         * tree-ssa-dom.c (record_equality): Likewise.
18181         * tree-inline.c (copy_body_r): Likewise.
18182         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
18183         TREE_INVARIANT.
18184
18185 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
18186
18187         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
18188         as 'delete_unused' argument.
18189
18190 2008-03-20  Richard Guenther  <rguenther@suse.de>
18191
18192         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
18193         special casing of constant qualifiers.
18194         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
18195         care about them in general.
18196         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
18197         regardless of their type.
18198         (fold_stmt_r): Forcefully fold *& if we end up with that.
18199
18200 2008-03-20  Paul Brook  <paul@codesourcery.com>
18201
18202         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
18203         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
18204         linker flags.
18205         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
18206         definition.
18207         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
18208         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
18209
18210 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
18211
18212         * common.opt (Wmudflap): New option.
18213         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
18214         (mx_register_decls): Likewise.
18215         (mudflap_finish_file): Likewise.
18216         * doc/invoke.texi: Document -Wno-mudflap.
18217
18218 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
18219
18220         * c-format.c (replace_format_name_to_system_name): New.
18221         (cmp_attribs): New.
18222         (convert_format_name_to_system_name): New.
18223         (decode_format_attr): Add use of convert_format_name_to_system_name.
18224         (format_types_orig): Add gnu_ prefix to names.
18225         (check_format_info_main): Special treating of \0 escaped names for
18226         supporting multi-character format specifiers as I32, I64.
18227         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
18228         (gnu_target_overrides_format_attributes): New.
18229         * c-format.h: Add structure target_ovr_attr to hold
18230         system specific formatter names.
18231         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
18232         msformat-c.o file to c_target_objs and cxx_target_objs.
18233         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
18234         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
18235         (TARGET_N_FORMAT_TYPES): New.
18236         * config/i386/msformat-c.c: New.
18237         * config/i386/t-cygming: Add build rule for msformat-c.o.
18238         * doc/extend.texi: Add new format names gnu_* and ms_* and
18239         further details.
18240         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
18241
18242 2008-03-20  Ira Rosen  <irar@il.ibm.com>
18243
18244         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
18245         optimizations turned on under -O3.
18246         (ftree-vectorize): Add that the flag is turned on with -O3.
18247
18248 2008-03-20  Ben Elliston  <bje@au.ibm.com>
18249
18250         * regmove.c (try_auto_increment): Fix spelling error in comment.
18251         * final.c (final_scan_insn): Likewise.
18252
18253 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
18254
18255         PR target/14552
18256         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
18257         allocator preferences for "y" and "r" class registers.
18258         ("*mov<mode>_internal"): Ditto.
18259         ("*movv2sf_internal_rex64"): Ditto.
18260         ("*movv2sf_internal"): Ditto.
18261
18262 2008-03-19  Michael Matz  <matz@suse.de>
18263
18264         PR middle-end/35616
18265         * calls.c (expand_call): Check overlap of arguments with call
18266         address for sibcalls.
18267
18268 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
18269
18270         PR target/35496
18271         * stor-layout.c (update_alignment_for_field): Set minimum alignment
18272         of the underlying type of a MS bitfield layout to the natural
18273         alignment of the type.
18274
18275 2008-03-19  Jan Hubicka  <jh@suse.cz>
18276
18277         PR other/35094
18278         * toplev.c (decode_d_option): Handle all CPP flags.
18279         * tree-vrp.c: Update tree_pass descriptors.
18280         * regrename.c: Update tree_pass descriptors.
18281         * fwprop.c: Update tree_pass descriptors.
18282         * doc/invoke.texi: Remove documentation of dropped -d? flags.
18283         * tree-into-ssa.c: Update tree_pass descriptors.
18284         * tree-dump.c: Update tree_pass descriptors.
18285         * tree-complex.c: Update tree_pass descriptors.
18286         * tree-dump.h: Update tree_pass descriptors.
18287         * see.c: Update tree_pass descriptors.
18288         * cgraphbuild.c: Update tree_pass descriptors.
18289         * tracer.c: Update tree_pass descriptors.
18290         * tree-loop-distribution.c: Update tree_pass descriptors.
18291         * cgraph.c: Update tree_pass descriptors.
18292         * postreload-gcse.c: Update tree_pass descriptors.
18293         * postreload.c: Update tree_pass descriptors.
18294         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
18295         * tree-tailcall.c: Update tree_pass descriptors.
18296         * tree-pass.h (tree_opt_pass): Rename to ...
18297         (opt_pass) ... this one; add "type" field and remove letter field.
18298         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
18299         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
18300         all_lowering_passes): Update declaration.
18301         * ipa-cp.c: Update tree_pass descriptors.
18302         * final.c: Update tree_pass descriptors.
18303         * omp-low.c: Update tree_pass descriptors.
18304         * tree-ssa-dse.c: Update tree_pass descriptors.
18305         * ipa-reference.c: Update tree_pass descriptors.
18306         * tree-ssa-uncprop.c: Update tree_pass descriptors.
18307         * auto-inc-dec.c: Update tree_pass descriptors.
18308         * reorg.c: Update tree_pass descriptors.
18309         * cgraphunit.c: Update tree_pass descriptors.
18310         * tree-ssa-copyrename.c: Update tree_pass descriptors.
18311         * tree-ssa-ccp.c: Update tree_pass descriptors.
18312         * df-core.c: Update tree_pass descriptors.
18313         * mode-switching.c: Update tree_pass descriptors.
18314         * tree-nomudflap.c: Update tree_pass descriptors.
18315         * modulo-sched.c: Update tree_pass descriptors.
18316         * ipa-pure-const.c: Update tree_pass descriptors.
18317         * cse.c: Update tree_pass descriptors.
18318         * web.c: Update tree_pass descriptors.
18319         * tree-stdarg.c: Update tree_pass descriptors.
18320         * tree-ssa-math-opts.c: Update tree_pass descriptors.
18321         * tree-ssa-dom.c: Update tree_pass descriptors.
18322         * tree-nrv.c: Update tree_pass descriptors.
18323         * tree-ssa-alias.c: Update tree_pass descriptors.
18324         * loop-init.c: Update tree_pass descriptors.
18325         * gimple-low.c: Update tree_pass descriptors.
18326         * ipa-inline.c: Update tree_pass descriptors.
18327         * tree-ssa-sink.c: Update tree_pass descriptors.
18328         * global.c: Update tree_pass descriptors.
18329         * ifcvt.c: Update tree_pass descriptors.
18330         * jump.c: Update tree_pass descriptors.
18331         * predict.c: Update tree_pass descriptors.
18332         * tree-ssa-loop.c: Update tree_pass descriptors.
18333         * recog.c: Update tree_pass descriptors.
18334         * dse.c: Update tree_pass descriptors.
18335         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
18336         * tree-eh.c: Update tree_pass descriptors.
18337         * regmove.c: Update tree_pass descriptors.
18338         * local-alloc.c
18339         * function.c: Update tree_pass descriptors.
18340         * tree-vectorizer.c: Update tree_pass descriptors.
18341         * gcse.c: Update tree_pass descriptors.
18342         * ipa-type-escape.c: Update tree_pass descriptors.
18343         * tree-if-conv.c: Update tree_pass descriptors.
18344         * init-regs.c: Update tree_pass descriptors.
18345         * ipa.c: Update tree_pass descriptors.
18346         * tree-ssa-phiopt.c: Update tree_pass descriptors.
18347         * rtl-factoring.c: Update tree_pass descriptors.
18348         * lower-subreg.c: Update tree_pass descriptors.
18349         * bt-load.c: Update tree_pass descriptors.
18350         * tree-dfa.c: Update tree_pass descriptors.
18351         * except.c: Update tree_pass descriptors.
18352         * emit-rtl.c: Update tree_pass descriptors.
18353         * cfgexpand.c: Update tree_pass descriptors.
18354         * tree-cfgcleanup.c: Update tree_pass descriptors.
18355         * cfgcleanup.c: Update tree_pass descriptors.
18356         * tree-ssa-pre.c: Update tree_pass descriptors.
18357         * tree-sra.c: Update tree_pass descriptors.
18358         * tree-mudflap.c: Update tree_pass descriptors.
18359         * tree-ssa-copy.c: Update tree_pass descriptors.
18360         * cfglayout.c: Update tree_pass descriptors.
18361         * tree-ssa-forwprop.c: Update tree_pass descriptors.
18362         * tree-ssa-dce.c: Update tree_pass descriptors.
18363         * tree-ssa.c: Update tree_pass descriptors.
18364         * regclass.c: Update tree_pass descriptors.
18365         * integrate.c: Update tree_pass descriptors.
18366         * tree-optimize.c: Update tree_pass descriptors.
18367         * tree-ssa-phiprop.c: Update tree_pass descriptors.
18368         * tree-object-size.c: Update tree_pass descriptors.
18369         * combine.c: Update tree_pass descriptors.
18370         * tree-outof-ssa.c: Update tree_pass descriptors.
18371         * bb-reorder.c: Update tree_pass descriptors.
18372         * stack-ptr-mod.c: Update tree_pass descriptors.
18373         * var-tracking.c: Update tree_pass descriptors.
18374         * tree-profile.c: Update tree_pass descriptors.
18375         * tree-vect-generic.c: Update tree_pass descriptors.
18376         * reg-stack.c: Update tree_pass descriptors.
18377         * sched-rgn.c: Update tree_pass descriptors.
18378         * tree-ssa-structalias.c: Update tree_pass descriptors.
18379         * tree-cfg.c: Update tree_pass descriptors.
18380         * passes.c (current_pass): Update declaration.
18381         (finish_optimization_passes): Update.
18382         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
18383         (register_one_dump_file, register_dump_files_1, next_pass_1):
18384         Update arguments.
18385         (init_optimization_passes): Update handling of new types.
18386         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
18387         * ipa-struct-reorg.c: Update tree_pass descriptors.
18388         * tree-ssa-reassoc.c: Update tree_pass descriptors.
18389         * combine-stack-adj.c: Update tree_pass descriptors.
18390         * cfgrtl.c: Update tree_pass descriptors.
18391         * dce.c: Update tree_pass descriptors.
18392         * tree-ssanames.c: Update tree_pass descriptors.
18393
18394 2008-03-19  Richard Guenther  <rguenther@suse.de>
18395
18396         PR middle-end/35609
18397         * tree-ssa.c (walk_data): New structure.
18398         (warn_uninitialized_var): If not always_executed warn with "maybe"
18399         instead of "is".
18400         (execute_early_warn_uninitialized): Compute post-dominators.
18401         Initialize always_executed before processing each basic block.
18402
18403 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
18404
18405         PR target/35504
18406         * config/i386/i386.c (x86_this_parameter): Calculate correct location
18407         of "this" pointer when "regparm = N" or "fastcall" is in effect.
18408
18409 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18410
18411         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
18412
18413 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
18414
18415         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
18416         is true.
18417         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
18418         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
18419         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
18420         target after ignore has been set, and move there also the commputation
18421         of subtarget and original_target.
18422         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
18423         (LANG_HOOKS_INITIALIZER): Remove it.
18424         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
18425
18426 2008-03-18  Richard Guenther  <rguenther@suse.de>
18427
18428         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
18429         found an expression with constants, note that in the VN for the lhs.
18430         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
18431         fold them to constants if possible.  Run cleanup_cfg if done so.
18432         (execute_pre): Return todo.
18433         (do_pre): Likewise.
18434         (execute_fre): Likewise.
18435         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
18436         of constants.
18437         (get_prop_source_stmt): Look through pointer conversions.
18438
18439 2008-03-18  Jan Hubicka  <jh@suse.cz>
18440
18441         * tree-pretty-print.c: Include predict.h.
18442         (dump_generic_node): Dump predictor.
18443         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
18444         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
18445         * gimple-low.c (lower_stmt): Likewise.
18446         * expr.c (expand_expr_real): Likewise.
18447         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
18448         them.
18449         (build_predict_expr, build_predict_expr): New.
18450         * predict.h (predictor_name, build_predict_expr): Update.
18451         * c-typeck.c (c_finish_bc_stmt): Add prediction.
18452         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
18453         * predict.def (PRED_CONTINUE): Update hitrate.
18454         * tree.def (PREDICT_EXPR): Define.
18455         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
18456         do not handle BIND_EXPR.
18457         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
18458         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
18459         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
18460         operands.
18461
18462 2008-03-18  Michael Matz  <matz@suse.de>
18463
18464         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
18465
18466 2008-03-18  Richard Guenther  <rguenther@suse.de>
18467
18468         * tree-gimple.h (is_gimple_invariant_address): Declare.
18469         (is_gimple_constant): Likewise.
18470         * tree-gimple.c (is_gimple_constant): New function.
18471         (is_gimple_invariant_address): Likewise.
18472         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
18473         and is_gimple_invariant_address.
18474         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
18475         previous change.
18476         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
18477         an addressable base.
18478
18479 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
18480
18481         PR middle-end/35611
18482         * gimplify.c (gimplify_expr): Gimplify second operand of
18483         OMP_ATOMIC_LOAD.
18484
18485 2008-03-17  Richard Guenther  <rguenther@suse.de>
18486
18487         PR tree-optimization/19637
18488         * fold-const.c (fold_unary): Remove restrictions of removing
18489         intermediate pointer-conversions (P2)(P1)P0.
18490         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
18491         conversion to void pointer.
18492         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
18493
18494 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
18495
18496         PR debug/31510
18497         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
18498         emulated thread local variables.
18499
18500 2008-03-16  Richard Guenther  <rguenther@suse.de>
18501
18502         PR middle-end/35607
18503         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
18504         expand TREE_INVARIANT operations that are not gimple invariant.
18505
18506 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
18507
18508         * doc/extend.texi (Alignment): Say that the ABI controls
18509         the __alignof__ for non-strict-alignment targets rather
18510         than being a recommendation.
18511
18512 2008-03-15  Paul Brook  <paul@codesourcery.com>
18513
18514         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
18515         annotations.
18516         (arm_output_fn_unwind): Mark functions that can not be unwound.
18517
18518 2008-03-15  Paul Brook  <paul@codesourcery.com>
18519
18520         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
18521         extension instructions.
18522
18523 2008-03-15  Richard Guenther  <rguenther@suse.de>
18524
18525         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
18526         and fold constant aggregate refs.
18527         (fold_const_aggregate_ref): Handle string constants
18528         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
18529         (evaluate_stmt): Simplify now that ccp_fold folds constant
18530         aggregate refs.
18531
18532 2008-03-15  Paul Brook  <paul@codesourcery.com>
18533
18534         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
18535         (extzv): Use gen_extzv_t2.
18536         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
18537
18538 2008-03-15  Richard Guenther  <rguenther@suse.de>
18539
18540         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
18541         (fold_const_aggregate_ref): Likewise.
18542         (get_value): Return NULL if we don't have any values.
18543         (ccp_finalize): Set const_val to NULL after freeing it.
18544         * tree-flow.h (get_symbol_constant_value): Declare.
18545         (fold_const_aggregate_ref): Likewise.
18546         * tree-ssa-sccvn.c (try_to_simplify): Use them.
18547
18548 2008-03-15  Richard Guenther  <rguenther@suse.de>
18549
18550         PR middle-end/35593
18551         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
18552         to not produce negative array indices if not allowed.  Add
18553         parameter to indicate that.
18554         (maybe_fold_offset_to_component_ref): Allow negative array
18555         indices only for the first member of a structure.
18556         (maybe_fold_offset_to_reference): Allow negative array indices.
18557         (maybe_fold_stmt_addition): Likewise.
18558
18559 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
18560             Anatoly Sokolov <aesok@post.ru>
18561
18562         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
18563         (avr_arch): Add ARCH_AVR6.
18564         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
18565         (initial_elimination_offset): Initialize and use 'avr_pc_size'
18566         instead of fixed value 2.
18567         (print_operand_address): Use gs() asm specifier instead of pm().
18568         (avr_assemble_integer): (Ditto.).
18569         (avr_output_addr_vec_elt): (Ditto.).
18570         (print_operand): Handle "!" code.
18571         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add
18572         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
18573         (AVR_HAVE_EIJMP_EICALL): Define.
18574         (AVR_3_BYTE_PC): Redefine.
18575         (AVR_2_BYTE_PC): (Ditto.).
18576         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
18577         (LINK_SPEC): Add atmega2560 and atmega2561.
18578         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561
18579         (crtm2561.o).
18580         * config/avr/avr.md (call_insn): Use eicall instead of icall
18581         for 3 byte PC devices.
18582         (call_value_insn): (Ditto.).
18583         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
18584         (indirect_jump): Use only for for 2 byte PC devices.
18585         (*tablejump): (Ditto.).
18586         (*indirect_jump_avr6): Add insn.
18587         (*tablejump_rjmp): Don't use for 3 byte PC devices.
18588         * config/avr/libgcc.S (__prologue_saves__): Use eijmp
18589         instead of ijmp for 3 byte PC devices.
18590         (__tablejump2__): (Ditto.).
18591         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
18592         (MULITLIB_DIRNAMES): (Ditto.).
18593         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
18594
18595 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
18596
18597         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
18598         "sse2_umulsidi3".  Use V1DI mode for operand 0.
18599         ("mmx_psadbw"): Use V1DI mode for operand 0.
18600         * config/i386/i386-modes.def (V1SI): New vector mode.
18601         * config/i386/i386.c (struct builtin_description)
18602         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
18603         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
18604         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
18605         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
18606         v1di_ftype_v8qi_v8qi type.
18607         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
18608
18609         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
18610         __builtin_ia32_pmuludq]: Fix the mode of return value.
18611
18612 2008-03-15  Richard Guenther  <rguenther@suse.de>
18613
18614         PR middle-end/35595
18615         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
18616         being a PHI_NODE.
18617
18618 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
18619
18620         * doc/invoke.texi (Option Summary, Xtensa Options): Document
18621         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
18622         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
18623         unless TARGET_SERIALIZE_VOLATILE is enabled.
18624         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
18625         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
18626         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
18627
18628 2008-03-14  Richard Guenther  <rguenther@suse.de>
18629
18630         PR tree-optimization/34172
18631         * tree-flow.h (refs_may_alias_p): Declare.
18632         (get_single_def_stmt): Likewise.
18633         (get_single_def_stmt_from_phi): Likewise.
18634         (get_single_def_stmt_with_phi): Likewise.
18635         * tree-dfa.c (refs_may_alias_p): New function.
18636         (get_single_def_stmt): Likewise.
18637         (get_single_def_stmt_from_phi): Likewise.
18638         (get_single_def_stmt_with_phi): Likewise.
18639         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
18640         (vn_reference_lookup_1): New helper function.
18641         (vn_reference_lookup): Walk the virtual use-def chain to
18642         continue searching for a match if the def does not alias the
18643         reference we are looking for.
18644
18645 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
18646
18647         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
18648         archive and Perzl.  Update The Written Word listing.
18649
18650 2008-03-14  Richard Guenther  <rguenther@suse.de>
18651
18652         PR tree-optimization/34043
18653         PR tree-optimization/33989
18654         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
18655         when doing FRE.
18656         (bitmap_find_leader): Use extra argument to verify dominance
18657         relationship inside a basic-block.
18658         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
18659         (find_leader_in_sets): Adjust.
18660         (create_component_ref_by_pieces): Take extra argument for
18661         dominance check, handle lookup failures.
18662         (find_or_generate_expression): Likewise.
18663         (create_expression_by_pieces): Likewise.
18664         (insert_into_preds_of_block): Adjust.
18665         (create_value_expr_from): If asked for, verify all operands
18666         are in the blocks AVAIL_OUT set.
18667         (make_values_for_stmt): Check for SSA_NAMEs that are life
18668         over an abnormal edge.
18669         (compute_avail): Remove such check.
18670         (do_SCCVN_insertion): New function.
18671         (eliminate): If we do not find a leader suitable for replacement
18672         insert a replacement expression from SCCVN if available.
18673         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
18674         (struct vn_ssa_aux): Add needs_insertion flag.
18675         * tree-ssa-sccvn.c (may_insert): New global flag.
18676         (copy_reference_ops_from_ref): Value-number union member access
18677         based on its size, not type and member if insertion is allowed.
18678         (visit_reference_op_load): For a weak match from union type
18679         punning lookup a view-converted value and insert a SSA_NAME
18680         for that value if that is not found.
18681         (visit_use): Make dumps shorter.  Do not disallow value numbering
18682         SSA_NAMEs that are life over an abnormal edge to constants.
18683         (free_scc_vn): Release inserted SSA_NAMEs.
18684         (run_scc_vn): New flag to specify whether insertion is allowed.
18685         Process SSA_NAMEs in forward order.
18686         * tree-ssa-loop-im.c (for_each_index): Handle invariant
18687         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
18688         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
18689         pointer type to/from integral types that do not change the
18690         precision to regular conversions.
18691
18692 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
18693
18694         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
18695         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
18696         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
18697         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
18698         input arguments and the mode of return value.  Built-in functions
18699         that operate on whole 64-bit MMX register now use V1DI mode.
18700
18701 2008-03-13  Alon Dayan  <alond@il.ibm.com>
18702             Olga Golovanevsky  <olga@il.ibm.com>
18703
18704         PR tree-optimization/35041
18705         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
18706         to locate the right position in a statement.
18707
18708 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
18709
18710         PR target/34000
18711         PR target/35553
18712         * config/i386/xmmintrin.h:  Change all static inline functions to
18713         extern inline and add __gnu_inline__ attribute.
18714         * config/i386/bmintrin.h: Ditto.
18715         * config/i386/smmintrin.h: Ditto.
18716         * config/i386/tmmintrin.h: Ditto.
18717         * config/i386/mmintrin-common.h: Ditto.
18718         * config/i386/ammintrin.h: Ditto.
18719         * config/i386/emmintrin.h: Ditto.
18720         * config/i386/pmmintrin.h: Ditto.
18721         * config/i386/mmintrin.h: Ditto.
18722         * config/i386/mm3dnow.h: Ditto.
18723
18724 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
18725
18726         PR middle-end/35185
18727         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
18728         (lower_omp_2): New function.
18729         (lower_omp_1, lower_omp): Rewritten.
18730
18731 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
18732
18733         PR 35054
18734         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
18735         with the phrase "Microsoft Windows compilers".
18736         (Push/Pop Macro Pragmas): New subsection. Document
18737         #pragma push_macro and pragma pop_macro.
18738
18739 2008-03-12  Paul Brook  <paul@codesourcery.com>
18740
18741         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
18742
18743 2008-03-12  Paul Brook  <paul@codesourcery.com>
18744
18745         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
18746         (thumb2_alusi3_short): Exclude PLUS and MINUS.
18747         (thumb2_addsi_shortim): Rename ...
18748         (thumb2_addsi_short): ... to this.  Allow register operands.
18749         (thumb2_subsi_short): New pattern.
18750         (thumb2_one_cmplsi2_short,
18751         thumb2_negsi2_short): New patterns and peepholes.
18752
18753 2008-03-12  Paul Brook  <paul@codesourcery.com>
18754
18755         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
18756
18757 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
18758
18759         * config/i386/i386.md (int_cond): New code iterator.
18760         (fp_cond): Ditto.
18761         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
18762         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
18763         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
18764         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
18765         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
18766         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
18767         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
18768         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
18769
18770 2008-03-12  Paul Brook  <paul@codesourcery.com>
18771
18772         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
18773         instead of {arm,thumb}_compute_save_reg_mask.
18774         (output_return_instruction): Ditto.
18775         (thumb_unexpanded_epilogue): Ditto.
18776         (thumb1_expand_prologue): Ditto.
18777         (thumb1_output_function_prologue): Ditto.
18778         (arm_set_return_address): Ditto.
18779         (thumb_set_return_address): Ditto.
18780         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
18781         regs to achieve stack alignment.
18782         (thumb1_compute_save_reg_mask): Fix compiler warning.
18783         (arm_output_epilogue): Use offsets->saved_regs_mask.
18784         Adjust stack pointer by poping call clobered registers.
18785         (arm_expand_prologue): Use offsets->saved_regs_mask.
18786         Adjust stack pointer by pushing extra registers.
18787         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
18788
18789 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
18790
18791         PR tree-opt/35422
18792         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
18793         conversion to the operands of a multiplication.
18794
18795 2008-03-12  Richard Guenther  <rguenther@suse.de>
18796
18797         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
18798         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
18799         * timevar.def (TV_TREE_PHIPROP): Add.
18800         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
18801         pass description.  Use TV_TREE_PHIPROP.
18802         * tree-ssa-forwprop.c: Remove phiprop code.
18803
18804 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
18805
18806         PR middle-end/35549
18807         * omp-low.c (maybe_lookup_decl): Constify first argument.
18808         (use_pointer_for_field): Change last argument from bool to
18809         omp_context *.  Disallow shared copy-in/out in nested
18810         parallel if decl is shared in outer parallel too.
18811         (build_outer_var_ref, scan_sharing_clauses,
18812         lower_rec_input_clauses, lower_copyprivate_clauses,
18813         lower_send_clauses, lower_send_shared_vars): Adjust callers.
18814
18815 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
18816             Ira Rosen  <irar@il.ibm.com>
18817
18818         * tree-vectorizer.c (free_stmt_vec_info): New function.
18819         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
18820         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
18821         * tree-vectorizer.h (free_stmt_vec_info): Declare.
18822         * tree-vect-transform.c (vectorizable_conversion): Free
18823         vec_oprnds0 if it was allocated.
18824         (vect_permute_store_chain): Remove unused VECs.
18825         (vectorizable_store): Free VECs that are allocated in the..
18826         function.
18827         (vect_transform_strided_load, vectorizable_load): Likewise.
18828         (vect_remove_stores): Simplify the code.
18829         (vect_transform_loop): Move code to vect_remove_stores().
18830         Call vect_remove_stores() and free_stmt_vec_info().
18831
18832 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18833
18834         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
18835         TARGET_HPUX.  Revise comment.
18836         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
18837         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
18838         Use sr4 variant of `be' instruction when not generating PIC code.
18839         (attr_length_call): Adjust for above change.
18840
18841 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18842
18843         * ipa-reference.c (static_execute): Remove module_statics_const and
18844         associated setting code.
18845
18846 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
18847
18848         PR target/35540
18849         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
18850         predicate for operand 1.
18851         (paritysi2_cmp): Use register_operand predicate for operand 2.
18852         Use earlyclobber modifier for operand 1.  Remove support for
18853         memory operands.
18854         (paritydi2_cmp): Use register_operand predicate for operand 3.
18855         Use earlyclobber modifier for operand 1.  Remove support for
18856         memory operands.
18857
18858 2008-03-11  Paul Brook  <paul@codesourcery.com>
18859             Vladimir Prus  <vladimir@codesourcery.com>
18860
18861         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
18862         (arm_compute_save_reg0_reg12_mask): Always
18863         check if register 11 must be saved.  Always safe hard frame pointer
18864         when frame_pointer_needeed.
18865         (arm_compute_save_reg_mask): Save IP and PC
18866         only with apcs frames.
18867         (arm_output_epilogue): Adjust Thumb2 codepath to
18868         be also invoked and work for ARM non-apcs frames.
18869         (arm_expand_prologue): Don't bother saving IP
18870         for non-apcs frame, since it's not clobbered by
18871         prologue code.  Implement non-apcs frame
18872         layout.
18873
18874 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
18875
18876         PR rtl-optimization/35281
18877         * expr.c (convert_move): Use a new pseudo for the intermediate
18878         from_mode->word_mode result.
18879
18880 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
18881
18882         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
18883         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
18884         * toplev.c (compile_file): Don't call it.
18885
18886 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
18887
18888         PR middle-end/35526
18889         * expr.c (store_expr): Call emit_block_move if the mode
18890         of "temp" RTX is BLKmode.
18891
18892 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18893             Richard Guenther  <rguenther@suse.de>
18894
18895         PR tree-optimization/31358
18896         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
18897         the step with a NULL_TREE.
18898         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
18899         to sizetype if type is a pointer type.
18900         (add_candidate_1): Don't convert the base and step to
18901         the generic type if the orginal type is a pointer type.
18902         (add_iv_value_candidates): Use sizetype for the step
18903         if type is a pointer type.
18904         (cand_value_at): Likewise.
18905         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
18906         for pointer types.
18907         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
18908         Don't convert the tem affine to the type.
18909         (add_elt_to_tree): Use sizetype for the step if a pointer.
18910         Use POINTER_PLUS_EXPR for pointers.
18911         (aff_combination_to_tree): Use sizetype for the step if a
18912         pointer.
18913
18914 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
18915
18916         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
18917         Remove commutativity hint.
18918
18919 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
18920
18921         PR c/35438
18922         PR c/35439
18923         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
18924         errorneous type.  Check that v is a VAR_DECL.
18925
18926         PR middle-end/35099
18927         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
18928
18929 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
18930
18931         PR tree-optimization/35494
18932         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
18933         may be overriden at link and run time.
18934
18935 2008-03-10  Richard Guenther  <rguenther@suse.de>
18936
18937         PR tree-optimization/34677
18938         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
18939         (poolify_tree): Likewise.
18940         (modify_expr_template): Likewise.
18941         (poolify_modify_stmt): Likewise.
18942         (insert_fake_stores): Handle all component-ref style stores
18943         in addition to INDIRECT_REF.  Also handle complex types.
18944         Do not poolify the inserted load.
18945         (realify_fake_stores): Do not rebuild the tree but only
18946         make it a SSA_NAME copy.
18947         (init_pre): Remove initialzation of modify_expr_template.
18948         Do not allocate modify_expr_node_pool.
18949         (fini_pre): Do not free modify_expr_node_pool.
18950
18951 2008-03-10  Paul Brook  <paul@codesourcery.com>
18952
18953         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
18954         to avoid conflicts.
18955
18956 2008-03-10  Paul Brook  <paul@codesourcery.com>
18957             Mark Shinwell  <shinwell@codesourcery.com>
18958
18959         * config/arm/cortex-r4.md: New.
18960         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
18961         insn attributes.
18962         * config/arm/arm.md: Include cortex-r4.md.
18963         (insn): Add smmls, sdiv and udiv values.
18964         (generic_sched): Don't use generic scheduling for Cortex-R4.
18965         (arm_issue_rate): New function.
18966         (TARGET_SCHED_ISSUE_RATE): Define.
18967
18968 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
18969
18970         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
18971
18972 2008-03-10  Richard Guenther  <rguenther@suse.de>
18973
18974         * tree-ssa-pre.c (get_sccvn_value): Simplify.
18975         (compute_avail): Do not add stmt uses to AVAIL_OUT.
18976
18977 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
18978
18979         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
18980         Set default to true.
18981
18982 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18983
18984         * c.opt (Wsynth): Deprecate.
18985         * doc/invoke.texi (Option Summary, Warning Options): Document
18986         -Wno-format-contains-nul.
18987
18988 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
18989
18990         PR target/35496
18991         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
18992         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
18993
18994 2008-03-09  Ira Rosen  <irar@il.ibm.com>
18995
18996         * config/rs6000/rs6000.c (builtin_description): Rename vector
18997         left shift operations.
18998         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
18999         (altivec_vsl<VI_char>): Rename to ...
19000         (ashl<mode>3): ... new name.
19001         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
19002         gen_ashlv4si3.
19003         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
19004
19005 2008-03-08  Richard Guenther  <rguenther@suse.de>
19006
19007         * coverage.h (tree_coverage_counter_addr): Declare.
19008         * coverage.c (tree_coverage_counter_addr): New function.
19009         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
19010         before using again.
19011         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
19012         (tree_gen_one_value_profiler): Likewise.
19013         (tree_gen_ic_profiler): Likewise.
19014         (tree_gen_average_profiler): Likewise.
19015         (tree_gen_ior_profiler): Likewise.
19016
19017 2008-03-08  Richard Guenther  <rguenther@suse.de>
19018
19019         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
19020         (vn_binary_op_insert): Likewise.
19021         (vn_unary_op_lookup): Likewise.
19022         (vn_unary_op_insert): Likewise.
19023         (vn_nary_op_lookup): Declare.
19024         (vn_nary_op_insert): Likewise.
19025         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
19026         and binary hashes, use a single obstack for unary_op_pool
19027         and binary_op_pool.
19028         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
19029         a single struct vn_nary_op_s.  Store tree code length and
19030         a variable number of operands.
19031         (struct vn_reference_op_struct): Remove unused op2.
19032         (vn_reference_op_eq): Do not compare op2.
19033         (vn_reference_op_compute_hash): Do not compute hash of op2.
19034         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
19035         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
19036         with vn_nary_op_compute_hash.
19037         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
19038         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
19039         vn_nary_op_lookup.
19040         (vn_unary_op_insert, vn_binary_op_insert): Replace with
19041         vn_nary_op_insert.
19042         (visit_unary_op): Call nary functions.
19043         (visit_binary_op): Likewise.
19044         (process_scc): Adjust for struct vn_tables_s changes.
19045         (allocate_vn_table): Likewise.
19046         (free_vn_table): Likewise.
19047         * tree-vn.c (vn_add): Call nary functions.
19048         (vn_lookup): Likewise.
19049
19050 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
19051
19052         PR target/35498
19053         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
19054         wdst back after sync_compare_and_swapqhi_internal.
19055
19056 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
19057
19058         PR target/22152
19059         * config/i386/i386-modes.def (V1DI): New vector mode.
19060         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
19061         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
19062         (MMXMODE248): Ditto.
19063         (MMXMODE): Add V1DI mode.
19064         (mmxvecsize): Change DI mode to V1DI mode.
19065         ("mov<mode>): Use MMXMODEI8 mode iterator.
19066         ("*mov<mode>_internal_rex64"): Ditto.
19067         ("*mov<mode>_internal"): Ditto.
19068         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
19069         ("mmx_sub<mode>3"): Ditto.
19070         ("mmx_adddi3"): Remove insn pattern.
19071         ("mmx_subdi3"): Ditto.
19072         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
19073         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
19074         ("mmx_ashl<mode>3"): Ditto.
19075         ("mmx_lshrdi3"): Remove insn pattern.
19076         ("mmx_ashldi3"): Ditto.
19077         * config/i386/i386.c (classify_argument): Handle V1DImode.
19078         (function_arg_advance_32): Ditto.
19079         (function_arg_32): Ditto.
19080         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
19081         mmx_addv1di3 insn pattern.
19082         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
19083         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
19084         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
19085         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
19086         Remove definitions of built-in functions.
19087         (V1DI_type_node): New node.
19088         (v1di_ftype_v1di_int): Ditto.
19089         (v1di_ftype_v1di_v1di): Ditto.
19090         (v2si_ftype_v2si_si): Ditto.
19091         (v4hi_ftype_v4hi_di): Remove node.
19092         (v2si_ftype_v2si_di): Ditto.
19093         (ix86_init_mmx_sse_builtins): Handle V1DImode.
19094         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
19095         Redefine builtins using def_builtin_const with *_ftype_*_int node.
19096         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
19097         Add new builtins using def_builtin_const.
19098         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
19099         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
19100         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
19101         * config/i386/mmintrin.h (__v1di): New typedef.
19102         (_mm_add_si64): Cast arguments to __v1di type.
19103         (_mm_sub_si64): Ditto.
19104         (_mm_sll_pi16): Cast __count to __v4hi type.
19105         (_mm_sll_pi32): Cast __count to __v2si type.
19106         (_mm_sll_si64): Cast arguments to __v1di type.
19107         (_mm_srl_pi16): Cast __count to __v4hi type.
19108         (_mm_srl_pi32): Cast __count to __v2si type.
19109         (_mm_srl_si64): Cast arguments to __v1di type.
19110         (_mm_sra_pi16): Cast __count to __v4hi type.
19111         (_mm_sra_pi32): Cast __count to __v2si type.
19112         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
19113         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
19114         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
19115         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
19116         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
19117         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
19118         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
19119         (_mm_srai_pi32): Use __builtin_ia32_psradi.
19120         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
19121         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
19122         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
19123         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
19124
19125 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
19126
19127         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
19128
19129 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
19130
19131         PR target/35373
19132         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
19133         reg+const addressing for Altivec modes.  Don't generate reg+reg
19134         addressing for TFmode or TDmode quantities.
19135
19136 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
19137
19138         * c-common.c (vector_types_convertible_p): Call langhook
19139         instead of comptypes.
19140
19141 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19142
19143         PR tree-opt/35402
19144         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
19145         integral and scalar float variables which have a
19146         NULL DECL_INITIAL.
19147
19148 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
19149
19150         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
19151         dwarf_register_span hook when emitting unwind information for
19152         register-to-memory saves.
19153         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
19154         (rs6000_frame_related): Remove call to spe_synthesize_frame.
19155
19156 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
19157
19158         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
19159         for the same VAR_DECL.
19160
19161 2008-03-06  Tom Tromey  <tromey@redhat.com>
19162
19163         * treelang: Delete.
19164         * doc/standards.texi (Standards): Don't mention treelang.
19165         * doc/invoke.texi (Overall Options): Don't mention treelang.
19166         * doc/install.texi (Prerequisites): Don't mention bison or
19167         treelang.
19168         (Configuration): Don't mention treelang.
19169         (Building): Likewise.
19170         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
19171
19172 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
19173
19174         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
19175         word-extractions out of a multi-word object.
19176
19177 2008-03-06  Richard Guenther  <rguenther@suse.de>
19178
19179         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
19180         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
19181         result type and precision.
19182         * expr.c (get_inner_reference): Set unsignedp based on the result
19183         type of BIT_FIELD_REF.
19184         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
19185         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
19186         (try_instantiate_multiple_fields): Likewise.  Use the correct type
19187         for BIT_FIELD_REF.
19188         (sra_build_assignment): Likewise.
19189         (sra_build_elt_assignment): Likewise.
19190         (sra_explode_bitfield_assignment): Likewise.
19191         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
19192         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
19193         set BIT_FIELD_REF_UNSIGNED.
19194         (vectorizable_load): Likewise.
19195
19196 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
19197
19198         * cse.c (cse_extended_basic_block): Invalidate artificial defs
19199         at bb start.
19200
19201 2008-03-06  Richard Guenther  <rguenther@suse.de>
19202
19203         * alias.c (struct alias_set_entry): Move has_zero_child field
19204         to pack with alias_set.
19205
19206 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
19207
19208         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
19209         32bit host.
19210
19211 2008-03-05  Ian Lance Taylor  <iant@google.com>
19212
19213         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
19214
19215 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
19216
19217         * fwprop.c (update_df): Support width and offset parameters of
19218         df_ref_create.
19219         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
19220         global_conflicts): Change DF_REF_EXTRACT to either
19221         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19222         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19223         * df-scan.c (df_ref_record, df_defs_record,
19224         df_ref_create_structure, df_def_record_1, df_uses_record,
19225         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
19226         df_bb_refs_collect, df_entry_block_defs_collect,
19227         df_exit_block_uses_collect): Support new width and offset fields.
19228         (ref_extract_pool): New storage pool.
19229         (df_free_ref): New function.
19230         (df_reg_chain_unlink, df_free_collection_rec,
19231         df_sort_and_compress_refs): Call df_free_ref.
19232         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
19233         of df_ref_extract.
19234         (df_ref_create_structure): Allocate df_ref_extract if offset and
19235         width fields are used.
19236         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
19237         (df_uses_record): Get offset and width from ZERO_EXTRACT
19238         and SIGN_EXTRACT.
19239         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
19240         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19241         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19242         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
19243         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
19244         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
19245         (df_ref_extract): New structure.
19246         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
19247         (df_ref_create): Add width and offset parameters.
19248
19249 2008-03-05  Richard Guenther  <rguenther@suse.de>
19250
19251         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19252         Use ranges_overlap_p.
19253         (offset_overlaps_with_access): Rename
19254         to ranges_overlap_p and move ...
19255         * tree-flow-inline.h (ranges_overlap_p): ... here.
19256
19257         * tree.h (get_inner_reference, handled_component_p): Update
19258         comments.
19259
19260         * tree.h (record_component_aliases, get_alias_set,
19261         alias_sets_conflict_p, alias_sets_must_conflict_p,
19262         objects_must_conflict_p): Move declarations ...
19263         * alias.h (record_component_aliases, get_alias_set,
19264         alias_sets_conflict_p, alias_sets_must_conflict_p,
19265         objects_must_conflict_p): ... here.
19266         Include coretypes.h.
19267         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
19268
19269 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
19270
19271         * cfg.c: Include tree-flow.h.
19272         (remove_edge_raw): Call redirect_edge_var_map_clear.
19273         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
19274         * tree-flow-inline.h (redirect_edge_var_map_def): New.
19275         (redirect_edge_var_map_result): New.
19276         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
19277         PENDING_STMT use with redirect_edge_var_map_*.
19278         * tree-ssa.c (edge_var_maps): New definition.
19279         (redirect_edge_var_map_add): New.
19280         (redirect_edge_var_map_clear): New.
19281         (redirect_edge_var_map_dup): New.
19282         (redirect_edge_var_map_vector): New.
19283         (redirect_edge_var_map_destroy): New.
19284         (ssa_redirect_edge): Replace PENDING_STMT use with
19285         redirect_edge_var_map_*.
19286         (flush_pending_stmts): Same.
19287         (delete_tree_ssa): Destroy edge var map.
19288         * tree-flow.h (struct _edge_var_map): New.
19289         Define edge_var_map vector type.
19290         Declare redirect_edge_var_map_* prototypes.
19291         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
19292         * tree-cfg.c (reinstall_phi_args): Replace
19293         PENDING_STMT use with redirect_edge_var_map_*.
19294
19295 2008-03-05  Richard Guenther  <rguenther@suse.de>
19296
19297         PR tree-optimization/35472
19298         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
19299         whose single use_stmt has a overlapping set of loaded and
19300         stored symbols as that use_stmt might be a noop assignment then.
19301
19302 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
19303
19304         * gthr-rtems.h: Implement __gthread_mutex_destroy.
19305
19306 2008-03-05  Richard Guenther  <rguenther@suse.de>
19307
19308         PR c++/35336
19309         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
19310         should be constants.
19311         * tree-cfg.c (verify_expr): Verify it.
19312         * fold-const.c (fold_truthop): Remove code generating
19313         BIT_FIELD_REFs of structure bases.
19314         (fold_binary): Likewise.
19315         (fold_ternary): Position and size of BIT_FIELD_REFs are
19316         always host integers.
19317         (make_bit_field_ref): Remove.
19318         (optimize_bit_field_compare): Remove.
19319         (all_ones_mask_p): Remove.
19320
19321 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
19322
19323         PR gcc/33009
19324         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
19325         (split_block_and_df_analyze): New. Split basic block and rebuild
19326         dataflow.
19327         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
19328         SPLIT_BLOCK.
19329         (split_pattern_seq): Likewise.
19330         (erase_matching_seqs): Likewise.
19331         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
19332
19333 2008-03-04  Geoff Keating  <geoffk@apple.com>
19334
19335         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
19336         declaration and code.
19337         (tree_invalid_nonnegative_warnv_p): Likewise.
19338
19339 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
19340
19341         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
19342         examples.  Truncate option-names then causing overfull hbox.
19343
19344 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19345
19346         PR target/35222
19347         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
19348         on hpux10.
19349         * configure: Rebuilt.
19350
19351 2008-03-04  Rafael Espíndola  <espindola@google.com>
19352
19353         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
19354         (tree_unary_nonnegative_warnv_p): New.
19355         (tree_binary_nonnegative_warnv_p): New.
19356         (tree_single_nonnegative_warnv_p): New.
19357         (tree_invalid_nonnegative_warnv_p): New.
19358         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
19359
19360 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19361
19362         PR 28322
19363         * opts.c (handle_option): Postpone 'unknown option' errors only for
19364         warning options.
19365
19366 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
19367
19368         PR target/35453
19369         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
19370         (_SIDD_XXX): This.
19371
19372 2008-03-04  Rafael Espíndola  <espindola@google.com>
19373
19374         * fold-const.c (tree_unary_nonzero_warnv_p): New.
19375         (tree_binary_nonzero_warnv_p): New.
19376         (tree_single_nonzero_warnv_p): New.
19377         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
19378
19379 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
19380
19381         PR middle-end/35456
19382         * fold-const.c (fold_cond_expr_with_comparison): Prevent
19383         transformations for modes that have signed zeros.
19384         * ifcvt.c (noce_try_abs): Ditto.
19385
19386 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
19387
19388         * config/i386/i386.c (override_options): Force
19389         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
19390
19391 2008-03-04  Jan Hubicka  <jh@suse.cz>
19392
19393         PR c++/35262
19394         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
19395         in last commit.
19396
19397 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
19398
19399         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
19400         label to probe the stack.
19401
19402 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
19403
19404         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
19405         (__gthr_win32_mutex_destroy): Declare.
19406         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
19407         __gthr_win32_mutex_destroy.
19408         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
19409
19410 2008-03-03  Jan Hubicka  <jh@suse.cz>
19411
19412         PR c++/35262
19413         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
19414         aggressive on inlining cold calls.
19415
19416 2008-03-03  Richard Guenther  <rguenther@suse.de>
19417
19418         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
19419         struct copies into the expression table.
19420         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
19421         (try_to_simplify): Likewise.
19422         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
19423         integral and pointer arguments which do not change the
19424         precision to NOP_EXPRs.
19425         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
19426         VIEW_CONVERT_EXPR case.
19427
19428 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
19429
19430         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
19431         defined in a loop at depth 0 is invariant.
19432         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
19433         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
19434         be called at loop depth 0.
19435
19436 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
19437
19438         PR driver/35420
19439         * gcc.c (process_command): Update copyright notice dates.
19440         * gcov.c (print_version): Likewise.
19441         * gcov-dump.c (print_version): Likewise.
19442         * mips-tfile.c (main): Likewise.
19443         * mips-tdump.c (main): Likewise.
19444
19445 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19446
19447         PR 24924
19448         * c-common.c (flag_permissive): Delete.
19449         (constant_expression_warnings): Check flags first.
19450         (constant_expression_error): New.
19451         * c-common.h (flag_permissive): Delete.
19452         (constant_expression_error): Declare.
19453         * flags.h (flag_permissive): Declare. Update description.
19454         * diagnostic.c (pedwarn): Update.
19455         (permerror): New.
19456         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
19457         (permissive_error_kind): New.
19458         * toplev.c (flag_permissive): Define. Update description.
19459         * toplev.h (permissive_error_kind): Declare.
19460         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
19461         (pedwarn_c90): Use pedantic_warning_kind.
19462         * c-opts.c (c_common_post_options): flag_permissive does not affect
19463         flag_pedantic_errors.
19464
19465 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
19466
19467         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
19468         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
19469         __absvsi2, __absvDI2): Use unsigned arithmetic.
19470
19471 2008-03-02  Andi Kleen  <ak@suse.de>
19472             Richard Guenther  <rguenther@suse.de>
19473
19474         * struct-equiv.c: Remove file.
19475         * cfg_cleanup.c (condjump_equiv_p): Remove.
19476         * Makefile.in (OBJS-common): Remove struct-equiv.o.
19477         (struct-equiv.o): Remove rule.
19478         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
19479         insns_match_p, struct_equiv_block_eq, struct_equiv_init,
19480         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
19481
19482 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19483
19484         * ifcvt.c (noce_process_if_block): Try to handle only the then
19485         block if the else block exists but isn't suitable.
19486
19487 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
19488
19489         PR gcc/35063
19490         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
19491         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
19492         regression from previous patch.
19493
19494 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
19495
19496         PR gcc/35063
19497         * gthr.h: Add __gthread_mutex_destroy as a function that must be
19498         implemented.
19499         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
19500         * gthr-single.h (__gthread_mutex_destroy): Likewise.
19501         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
19502         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
19503         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
19504         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
19505         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
19506         (__gthread_mutex_destroy_function): Rename to
19507         __gthread_mutex_destroy.
19508         * gthr-dce.h (__gthread_mutex_destroy): Call
19509         pthread_mutex_destroy.
19510         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
19511         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
19512         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
19513
19514 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19515
19516         * df-scan.c (df_ref_chain_change_bb): Simplify.
19517         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
19518         set_block_for_insn if there's any change.
19519         * df.h ((df_insn_change_bb): Fix prototype.
19520         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
19521         df_insn_change_bb, don't call set_block_for_insn.
19522         * emit-rtl.c (reorder_insns): Likewise.
19523         * haifa-sched.c (move_insn): Likewise.
19524
19525 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19526
19527         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
19528
19529 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
19530
19531         * tree-flow-inline.h (next_readonly_imm_use): Return
19532         NULL_USE_OPERAND_P after the end.
19533
19534 2008-03-01  Richard Guenther  <rguenther@suse.de>
19535
19536         PR tree-optimization/35411
19537         * tree-sra.c (sra_build_assignment): Split conversion to
19538         final type to a separate statement if we are not assigning
19539         to a register.
19540
19541 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
19542
19543         * fold-const.c (fold_convertible_p): Correct the logic to follow
19544         that in fold_convert().
19545
19546 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
19547
19548         PR c++/35315
19549         * tree-inline.c (build_duplicate_type): When we make a
19550         duplicate type, make it unique in the canonical types system.
19551
19552 2008-02-29  Tom Tromey  <tromey@redhat.com>
19553
19554         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
19555         input_file_stack_history, input_file_stack_restored): Remove.
19556         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
19557         * input.h (struct file_stack): Remove.
19558         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
19559         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
19560         Likewise.
19561         * diagnostic.h (struct diagnostic_context) <last_module>: Change
19562         type.
19563         (diagnostic_last_module_changed): Add 'map' argument.
19564         (diagnostic_set_last_function): Likewise.
19565         * diagnostic.c (undiagnostic_report_current_module): Iterate using
19566         line map, not input_file_stack.
19567         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
19568
19569 2008-02-29  Paul Brook  <paul@codesourcery.com>
19570
19571         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
19572
19573 2008-02-29  Paul Brook  <paul@codesourcery.com>
19574
19575         * config/arm/ieee754-df.S (muldf3): Use RET macros.
19576
19577 2008-02-29  Richard Guenther  <rguenther@suse.de>
19578
19579         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
19580         vn_lookup_or_add.
19581         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
19582         value for comparing for a store match.
19583         (simplify_unary_expression): Do nothing for SSA_NAMEs.
19584         (try_to_simplify): Do not do a full-blown reference lookup.
19585
19586 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19587
19588         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
19589         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
19590
19591         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
19592
19593 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
19594
19595         * tree-loop-linear.c (try_interchange_loops): Compare memory access
19596         strides against cache sizes.
19597
19598 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
19599
19600         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
19601         constant to fpul.
19602
19603 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
19604
19605         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
19606         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
19607         is smaller than the original promoted value.
19608         (simplify_subreg): If OP is a SUBREG, try to preserve its
19609         SUBREG_PROMOTED_VAR_P information.
19610
19611 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
19612
19613         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
19614         (VN_INFO_GET): Allocate new objects on the obstack.
19615         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
19616         for rpo_numbers_temp, for consistency.
19617         (free_scc_vn): Free the obstack.
19618
19619 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
19620
19621         * doc/invoke.texi: Document -ftree-loop-distribution.
19622         * tree-loop-distribution.c: New.
19623         * tree-pass.h (pass_loop_distribution): New.
19624         * graphds.h (struct graph): Add htab_t indices.
19625         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
19626         * tree-vectorizer.c (rename_variables_in_loop): Extern.
19627         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
19628         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
19629         * tree-data-ref.c (debug_data_dependence_relations): New.
19630         (dump_data_dependence_relation): Also print data references.
19631         (free_data_ref): Extern.
19632         (same_access_functions): Moved...
19633         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
19634         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
19635         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
19636         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
19637         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
19638         (stmts_from_loop): Skip LABEL_EXPR.
19639         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
19640         New.
19641         (build_rdg): Initialize rdg->indices htab.
19642         (free_rdg, stores_from_loop, ref_base_address,
19643         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
19644         have_similar_memory_accesses_1, ref_base_address_1,
19645         remove_similar_memory_refs): New.
19646         * tree-data-ref.h: Depend on tree-chrec.h.
19647         (debug_data_dependence_relations, free_data_ref): Declared.
19648         (same_access_functions): ... here.
19649         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
19650         New.
19651         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
19652         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
19653         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
19654         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
19655         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
19656         rdg_vertex_for_stmt): Declared.
19657         (struct rdg_edge): Add level.
19658         (RDGE_LEVEL): New.
19659         (free_rdg, stores_from_loop, remove_similar_memory_refs,
19660         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
19661         Declared.
19662         (rdg_has_similar_memory_accesses): New.
19663         * tree-vect-analyze.c: Remove unused static decls.
19664         * lambda.h (dependence_level): New.
19665         * common.opt (ftree-loop-distribution): New.
19666         * tree-flow.h (mark_virtual_ops_in_bb,
19667         slpeel_tree_duplicate_loop_to_edge_cfg,
19668         rename_variables_in_loop): Declared.
19669         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
19670         (OBJS-common): Add tree-loop-distribution.o.
19671         (tree-loop-distribution.o): New rule.
19672         * tree-cfg.c (mark_virtual_ops_in_bb): New.
19673         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
19674         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
19675
19676 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
19677
19678         PR target/33963
19679         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
19680         other than structures and unions.
19681
19682 2008-02-28  Richard Guenther  <rguenther@suse.de>
19683
19684         Revert:
19685         2008-02-26  Richard Guenther  <rguenther@suse.de>
19686
19687         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19688         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19689         (lookup_decl_from_uid): Declare.
19690         (remove_decl_from_map): Likewise.
19691         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
19692         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
19693         (decl_for_uid_map): New global hashtable mapping DECL_UID
19694         to the decl tree.
19695         (init_ttree): Allocate it.
19696         (insert_decl_to_uid_decl_map): New helper function.
19697         (make_node_stat): Insert new decls into the map.
19698         (copy_node_stat): Likewise.
19699         (lookup_decl_from_uid): New function.
19700         (remove_decl_from_map): Likewise.
19701         (print_decl_for_uid_map_statistics): New helper.
19702         (dump_tree_statistics): Call it.
19703
19704         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
19705         (referenced_var_iterator): Adjust.
19706         (FOR_EACH_REFERENCED_VAR): Adjust.
19707         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
19708         (num_referenced_vars): Adjust.
19709         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
19710         (first_referenced_var): Remove.
19711         (end_referenced_vars_p): Likewise.
19712         (next_referenced_var): Likewise.
19713         (referenced_var_iterator_set): New helper function.
19714         * tree-dfa.c (referenced_var_lookup): Adjust.
19715         (referenced_var_check_and_insert): Likewise.
19716         (remove_referenced_var): Likewise.
19717         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
19718         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19719         (verify_call_clobbering): Likewise.
19720         (verify_memory_partitions): Likewise.
19721         (init_tree_ssa): Allocate bitmap instead of hashtable for
19722         referenced_vars.
19723         (delete_tree_ssa): Adjust.
19724         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
19725         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
19726         (compute_tag_properties): Likewise.
19727         (set_initial_properties): Likewise.
19728         (find_partition_for): Likewise.
19729         (update_reference_counts): Likewise.
19730         (dump_may_aliases_for): Likewise.
19731         * tree-ssa-operands.c (add_virtual_operand): Likewise.
19732         (add_call_clobber_ops): Likewise.
19733         (add_call_read_ops): Likewise.
19734         (get_asm_expr_operands): Likewise.
19735         * tree-into-ssa.c (dump_decl_set): Likewise.
19736         (update_ssa): Likewise.
19737         * tree-sra.c (scan_function): Likewise.
19738         (decide_instantiations): Likewise.
19739         (scalarize_parms): Likewise.
19740         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
19741         (dsa_named_for): Likewise.
19742         * tree-ssa-structalias.c (update_alias_info): Likewise.
19743         (merge_smts_into): Likewise.
19744
19745 2008-02-27  David Daney  <ddaney@avtrex.com>
19746
19747         PR target/34409
19748         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
19749         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
19750         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
19751         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
19752         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
19753
19754 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
19755
19756         PR target/25477
19757         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
19758         (BUILT_IN_NEXTTOWARD): Remove.
19759         (BUILT_IN_NEXTTOWARDF): Ditto.
19760         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
19761         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
19762
19763 2008-02-27  Tom Tromey  <tromey@redhat.com>
19764
19765         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
19766         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
19767
19768 2008-02-27  Jan Beulich  <jbeulich@novell.com>
19769
19770         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
19771         update the respective field on newdecl.
19772
19773 2008-02-27  Revital Eres  <eres@il.ibm.com>
19774
19775         PR rtl-optimization/34999
19776         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
19777         crossing edges that ends with a call insn.
19778         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
19779         call insn and clear the EDGE_CROSSING flag of the crossing edge
19780         when fixing fallthru edges.
19781
19782 2008-02-27  Richard Guenther  <rguenther@suse.de>
19783
19784         PR middle-end/35390
19785         * fold-const.c (fold_unary): Return the correct argument,
19786         converted to the result type.
19787
19788 2008-02-27  Richard Guenther  <rguenther@suse.de>
19789
19790         PR middle-end/34971
19791         * expr.c (expand_expr_real_1): Assert on rotates that operate
19792         on partial modes.
19793         * fold-const.c (fold_binary): Use the types precision, not the
19794         bitsize of the mode if folding rotate expressions.  Build rotates
19795         only for full modes.
19796
19797 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
19798
19799         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
19800         and CPP_PRAGMA_EOL.
19801         * c-pragma.c (pragma_ns_name): New typedef.
19802         (registered_pp_pragmas): New variable.
19803         (c_pp_lookup_pragma): New function.
19804         (c_register_pragma_1): If flag_preprocess_only, do nothing
19805         for non-expanded pragmas, for expanded ones push pragma's
19806         namespace and name into registered_pp_pragmas vector.
19807         (c_invoke_pragma_handler): Register OpenMP pragmas even when
19808         flag_preprocess_only, don't register GCC pch_preprocess
19809         pragma if flag_preprocess_only.
19810         * c-opts.c (c_common_init): Call init_pragma even if
19811         flag_preprocess_only.
19812         * c-pragma.c (c_pp_lookup_pragma): New prototype.
19813         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
19814         cpp_register_pragma if flag_preprocess_only.
19815
19816 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19817
19818         PR c/28800
19819         * c-parser.c (c_parser_translation_unit): Warn for empty
19820         translation unit, not empty source file.
19821
19822 2008-02-26  Paul Brook  <paul@codesourcery.com>
19823
19824         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
19825         operand for Thumb-2.
19826         * config/arm/arm.h (reg_class): Add CORE_REGS.
19827         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
19828         (BASE_REG_CLASS): Use CORE_REGS.
19829         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
19830         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
19831         (REGNO_OK_FOR_INDEX_P): Exclude SP.
19832         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
19833         ARM_REGNO_OK_FOR_INDEX_P.
19834         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
19835         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
19836         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
19837         (ldm/stm peepholes): Ditto.
19838         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
19839         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
19840         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
19841         * config/arm/constraints.md: Enable "k" constraint on ARM.
19842
19843 2008-02-27  Ben Elliston  <bje@au.ibm.com>
19844
19845         * config/rs6000/rs6000.c: Annotate cache line size field in all
19846         instances of struct processor_costs.
19847
19848 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
19849
19850         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
19851         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
19852         jump_bypass): New counters.
19853         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
19854         * dce.c (gate_ud_dce): Same.
19855         (gate_fast_dce): Same.
19856         * dse.c (gate_dse1): New function.
19857         (gate_dse2): New function.
19858         (gate_dse): Merge results of new gate functions.
19859         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
19860         (gate_handle_jump_bypass): Add dbg_cnt.
19861         (gate_handle_gcse): Add dbg_cnt.
19862         * ifcvt.c (gate_handle_if_conversion): Same.
19863         (gate_handle_if_after_combine): Same.
19864         (gate_handle_if_after_reload): Same.
19865         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
19866
19867 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
19868
19869         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
19870         line sizes.
19871         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
19872
19873 2008-02-26  Jason Merrill  <jason@redhat.com>
19874
19875         PR c++/35315
19876         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE
19877         alone if it's the naming decl for the type's main variant.
19878
19879 2008-02-26  Tom Tromey  <tromey@redhat.com>
19880
19881         * system.h (USE_MAPPED_LOCATION): Poison.
19882         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
19883         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
19884         (make_goto_expr_edges): Likewise.
19885         (remove_bb): Likewise.
19886         (execute_warn_function_return): Likewise.
19887         * basic-block.h (struct edge_def) <goto_locus>: Change type to
19888         location_t.
19889         * c-common.c (fname_decl): Remove old location code.
19890         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
19891         location code.
19892         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
19893         variant.
19894         (ASM_INPUT_SOURCE_LOCATION): Likewise.
19895         (gen_rtx_ASM_INPUT): Likewise.
19896         (gen_rtx_ASM_INPUT_loc): Likewise.
19897         (get_rtx_asm_OPERANDS): Remove.
19898         * cfglayout.c (insn_locators_alloc): Remove old location code.
19899         (set_curr_insn_source_location): Likewise.
19900         (curr_insn_locator): Likewise.
19901         * print-tree.c (print_node): Remove old location code.
19902         * tree-mudflap.c (mf_varname_tree): Remove old location code.
19903         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
19904         * cfgexpand.c (expand_gimple_cond_expr): Don't use
19905         location_from_locus.
19906         (construct_exit_block): Remove old location code.
19907         * emit-rtl.c (force_next_line_note): Remove old location code.
19908         * profile.c (branch_prob): Remove old location code.
19909         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
19910         LOC_LINE): Remove old-location variants.
19911         * langhooks.c (lhd_print_error_function): Remove old location
19912         code.
19913         * configure, config.in: Rebuilt.
19914         * configure.ac (--enable-mapped-location): Remove.
19915         * c-decl.c (c_init_decl_processing): Remove old location code.
19916         (finish_function): Likewise.
19917         * recog.c (decode_asm_operands): Remove old location code.
19918         * c-pch.c (c_common_read_pch): Remove old location code.
19919         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
19920         variants.
19921         * gimple-low.c (lower_function_body): Remove old location code.
19922         * toplev.c (unknown_location): Remove.
19923         (push_srcloc): Remove old-location variant.
19924         (process_options): Remove old location code.
19925         (lang_dependent_init): Likewise.
19926         * input.h (UNKNOWN_LOCATION): Move definition.
19927         (location_t): Undeprecate.
19928         (source_locus): Remove.
19929         (location_from_locus): Remove.
19930         (struct location_s): Remove.
19931         Remove all old-location code.
19932         (input_line, input_filename): Remove.
19933         * final.c (final_scan_insn): Remove old location code.
19934         * diagnostic.c (diagnostic_build_prefix): Remove
19935         USE_MAPPED_LOCATION test.
19936         * tree.h (gimple_stmt) <locus>: Now a location_t.
19937         (tree_exp) <locus>: Likewise.
19938         (DECL_IS_BUILTIN): Remove old-location variant.
19939         (annotate_with_file_line, annotate_with_locus): Likewise.
19940         (expr_locus, set_expr_locus): Update.
19941         * tree.c (build1_stat): Remove old location code.
19942         (last_annotated_node): Remove.
19943         (annotate_with_file_line): Remove old-location variant.
19944         (annotate_with_locus): Likewise.
19945         (expr_location): Remove old location code.
19946         (set_expr_location): Likewise.
19947         (expr_has_location): Likewise.
19948         (expr_locus): Likewise.
19949         (set_expr_locus): Likewise.
19950         (expr_filename): Don't use location_from_locus.
19951         (expr_lineno): Likewise.
19952         * rtl-error.c (location_for_asm): Remove old location code.
19953         * c-lex.c (cb_line_change): Remove old location code.
19954         (fe_file_change): Likewise.
19955         (cb_def_pragma): Likewise.
19956         (c_lex_with_flags): Likewise.
19957         * gengtype.c (do_typedef): Don't special-case location types.
19958         (define_location_structures): Remove.
19959         (main): Don't call define_location_structures.
19960         * tree-pretty-print.c (dump_implicit_edges): Remove old location
19961         code.
19962
19963 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19964
19965         PR 26264
19966         * builtins.def (BUILT_IN_STDARG_START): Remove.
19967         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
19968         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
19969         * tree-inline.c (inline_forbidden_p_1): Likewise.
19970
19971 2008-02-26  Richard Guenther  <rguenther@suse.de>
19972
19973         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
19974         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
19975         (lookup_decl_from_uid): Declare.
19976         (remove_decl_from_map): Likewise.
19977         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
19978         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
19979         (decl_for_uid_map): New global hashtable mapping DECL_UID
19980         to the decl tree.
19981         (init_ttree): Allocate it.
19982         (insert_decl_to_uid_decl_map): New helper function.
19983         (make_node_stat): Insert new decls into the map.
19984         (copy_node_stat): Likewise.
19985         (lookup_decl_from_uid): New function.
19986         (remove_decl_from_map): Likewise.
19987         (print_decl_for_uid_map_statistics): New helper.
19988         (dump_tree_statistics): Call it.
19989
19990         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
19991         (referenced_var_iterator): Adjust.
19992         (FOR_EACH_REFERENCED_VAR): Adjust.
19993         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
19994         (num_referenced_vars): Adjust.
19995         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
19996         (first_referenced_var): Remove.
19997         (end_referenced_vars_p): Likewise.
19998         (next_referenced_var): Likewise.
19999         (referenced_var_iterator_set): New helper function.
20000         * tree-dfa.c (referenced_var_lookup): Adjust.
20001         (referenced_var_check_and_insert): Likewise.
20002         (remove_referenced_var): Likewise.
20003         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
20004         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20005         (verify_call_clobbering): Likewise.
20006         (verify_memory_partitions): Likewise.
20007         (init_tree_ssa): Allocate bitmap instead of hashtable for
20008         referenced_vars.
20009         (delete_tree_ssa): Adjust.
20010         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
20011         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20012         (compute_tag_properties): Likewise.
20013         (set_initial_properties): Likewise.
20014         (find_partition_for): Likewise.
20015         (update_reference_counts): Likewise.
20016         (dump_may_aliases_for): Likewise.
20017         * tree-ssa-operands.c (add_virtual_operand): Likewise.
20018         (add_call_clobber_ops): Likewise.
20019         (add_call_read_ops): Likewise.
20020         (get_asm_expr_operands): Likewise.
20021         * tree-into-ssa.c (dump_decl_set): Likewise.
20022         (update_ssa): Likewise.
20023         * tree-sra.c (scan_function): Likewise.
20024         (decide_instantiations): Likewise.
20025         (scalarize_parms): Likewise.
20026         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
20027         (dsa_named_for): Likewise.
20028         * tree-ssa-structalias.c (update_alias_info): Likewise.
20029         (merge_smts_into): Likewise.
20030
20031 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20032
20033         PR 34351
20034         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
20035         * c-opts.c (c_common_handle_option): Wall enables
20036         Wvolatile-register-var.
20037         * common.opt: Move Wvolatile-register-var to...
20038         * c.opt: ...here.
20039
20040 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20041
20042         * common.opt (Wlarger-than=): New.
20043         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
20044         -Wlarger-than=.
20045         * opts.c (common_handle_option): Handle -Wlarger-than=.
20046         * optc-gen.awk: Likewise.
20047         * opth-gen.awk: Likewise.
20048         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
20049         * tree-optimize.c (tree_rest_of_compilation): Likewise.
20050
20051 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20052
20053         * c-common.c (match_case_to_enum_1): Add appropriate
20054         OPT_W* parameter to warning.
20055         (c_do_switch_warnings): Likewise.
20056         * c-typeck.c (warning_init): Add one more parameter following
20057         'warning' function.
20058         (push_init_level): Update call to warning_init.
20059         (pop_init_level): Likewise.
20060         (add_pending_init): Likewise.
20061         (output_init_element: Likewise.
20062
20063 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20064
20065         PR 28322
20066         * toplev.c (toplev_main): If there are warnings or error, print
20067         errors for ignored options.
20068         * opts.c (ignored_options): New static variable.
20069         (postpone_unknown_option_error): New.
20070         (print_ignored_options): New.
20071         (handle_option): Postpone errors for unknown -Wno-* options.
20072         * opts.h (print_ignored_options): Declare.
20073
20074 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
20075
20076         * config/mips/mips.md (loadgp_blockage, blockage): Change type
20077         to "ghost".
20078
20079 2008-02-25  Richard Guenther  <rguenther@suse.de>
20080
20081         Revert:
20082         2008-02-25  Richard Guenther  <rguenther@suse.de>
20083
20084         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
20085         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
20086         (lookup_decl_from_uid): Declare.
20087         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
20088         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
20089         (decl_for_uid_map): New global hashtable mapping DECL_UID
20090         to the decl tree.
20091         (init_ttree): Allocate it.
20092         (insert_decl_to_uid_decl_map): New helper function.
20093         (make_node_stat): Insert new decls into the map.
20094         (copy_node_stat): Likewise.
20095         (lookup_decl_from_uid): New function.
20096         (print_decl_for_uid_map_statistics): New helper.
20097         (dump_tree_statistics): Call it.
20098
20099         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
20100         (referenced_var_iterator): Adjust.
20101         (FOR_EACH_REFERENCED_VAR): Adjust.
20102         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
20103         (num_referenced_vars): Adjust.
20104         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
20105         (first_referenced_var): Remove.
20106         (end_referenced_vars_p): Likewise.
20107         (next_referenced_var): Likewise.
20108         (referenced_var_iterator_set): New helper function.
20109         * tree-dfa.c (referenced_var_lookup): Adjust.
20110         (referenced_var_check_and_insert): Likewise.
20111         (remove_referenced_var): Likewise.
20112         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
20113         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20114         (verify_call_clobbering): Likewise.
20115         (verify_memory_partitions): Likewise.
20116         (init_tree_ssa): Allocate bitmap instead of hashtable for
20117         referenced_vars.
20118         (delete_tree_ssa): Adjust.
20119         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
20120         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20121         (compute_tag_properties): Likewise.
20122         (set_initial_properties): Likewise.
20123         (find_partition_for): Likewise.
20124         (update_reference_counts): Likewise.
20125         (dump_may_aliases_for): Likewise.
20126         * tree-ssa-operands.c (add_virtual_operand): Likewise.
20127         (add_call_clobber_ops): Likewise.
20128         (add_call_read_ops): Likewise.
20129         (get_asm_expr_operands): Likewise.
20130         * tree-into-ssa.c (dump_decl_set): Likewise.
20131         (update_ssa): Likewise.
20132         * tree-sra.c (scan_function): Likewise.
20133         (decide_instantiations): Likewise.
20134         (scalarize_parms): Likewise.
20135         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
20136         (dsa_named_for): Likewise.
20137         * tree-ssa-structalias.c (update_alias_info): Likewise.
20138         (merge_smts_into): Likewise.
20139
20140 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
20141
20142         PR fortran/29549
20143         * doc/invoke.texi (-fcx-limited-range): Document new option.
20144         * toplev.c (process_options): Handle -fcx-fortran-rules.
20145         * common.opt: Add documentation for -fcx-fortran-rules.
20146
20147 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
20148
20149         PR c/35162
20150         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
20151         actual behaviour and C99.
20152
20153 2008-02-26  Ben Elliston  <bje@au.ibm.com>
20154
20155         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
20156         (ASM_CPU_POWER6_SPEC): Likewise.
20157         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
20158         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
20159         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
20160
20161 2008-02-25  Richard Guenther  <rguenther@suse.de>
20162
20163         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
20164         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
20165         (lookup_decl_from_uid): Declare.
20166         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
20167         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
20168         (decl_for_uid_map): New global hashtable mapping DECL_UID
20169         to the decl tree.
20170         (init_ttree): Allocate it.
20171         (insert_decl_to_uid_decl_map): New helper function.
20172         (make_node_stat): Insert new decls into the map.
20173         (copy_node_stat): Likewise.
20174         (lookup_decl_from_uid): New function.
20175         (print_decl_for_uid_map_statistics): New helper.
20176         (dump_tree_statistics): Call it.
20177
20178         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
20179         (referenced_var_iterator): Adjust.
20180         (FOR_EACH_REFERENCED_VAR): Adjust.
20181         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
20182         (num_referenced_vars): Adjust.
20183         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
20184         (first_referenced_var): Remove.
20185         (end_referenced_vars_p): Likewise.
20186         (next_referenced_var): Likewise.
20187         (referenced_var_iterator_set): New helper function.
20188         * tree-dfa.c (referenced_var_lookup): Adjust.
20189         (referenced_var_check_and_insert): Likewise.
20190         (remove_referenced_var): Likewise.
20191         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
20192         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20193         (verify_call_clobbering): Likewise.
20194         (verify_memory_partitions): Likewise.
20195         (init_tree_ssa): Allocate bitmap instead of hashtable for
20196         referenced_vars.
20197         (delete_tree_ssa): Adjust.
20198         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
20199         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
20200         (compute_tag_properties): Likewise.
20201         (set_initial_properties): Likewise.
20202         (find_partition_for): Likewise.
20203         (update_reference_counts): Likewise.
20204         (dump_may_aliases_for): Likewise.
20205         * tree-ssa-operands.c (add_virtual_operand): Likewise.
20206         (add_call_clobber_ops): Likewise.
20207         (add_call_read_ops): Likewise.
20208         (get_asm_expr_operands): Likewise.
20209         * tree-into-ssa.c (dump_decl_set): Likewise.
20210         (update_ssa): Likewise.
20211         * tree-sra.c (scan_function): Likewise.
20212         (decide_instantiations): Likewise.
20213         (scalarize_parms): Likewise.
20214         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
20215         (dsa_named_for): Likewise.
20216         * tree-ssa-structalias.c (update_alias_info): Likewise.
20217         (merge_smts_into): Likewise.
20218
20219 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
20220
20221         PR target/35258
20222         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
20223         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
20224         * alias.h (nonoverlapping_memrefs_p): Likewise.
20225
20226 2008-02-25  Jan Beulich  <jbeulich@novell.com>
20227
20228         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
20229         * config/i386/netware-libgcc.exp: Add __bswap?i2,
20230         __emultls_get_address, __emultls_register_common,
20231         __floatundi?f, and _Unwind_GetIPInfo.
20232         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
20233         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
20234         (gen_regparm_prefix): Likewise.
20235         (i386_nlm_encode_section_info): Sync with
20236         config/i386/winnt.c:i386_pe_encode_section_info().
20237         (i386_nlm_maybe_mangle_decl_assembler_name): New.
20238         i386_nlm_mangle_decl_assembler_name): New.
20239         (netware_override_options): New.
20240         * config/i386/netware.h (netware_override_options): Declare.
20241         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
20242         (i386_nlm_mangle_decl_assembler_name): Declare.
20243         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
20244
20245 2008-02-25  Ben Elliston  <bje@au.ibm.com>
20246
20247         PR other/32948
20248         * c-decl.c (grokdeclarator): Remove unused local variables
20249         `typedef_type' and `type_as_written'.
20250         * bb-reorder.c
20251         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
20252         unused local variable `has_hot_blocks'.
20253         (fix_crossing_conditional_branches): Remove unused local variable
20254         `prev_bb'.
20255
20256 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
20257
20258         PR middle-end/19984
20259         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
20260         using DEF_C99_BUILTIN.
20261         (BUILT_IN_NANF): Ditto.
20262         (BUILT_IN_NANL): Ditto.
20263
20264 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
20265             Revital Eres  <eres@il.ibm.com>
20266
20267         * modulo-sched.c (calculate_must_precede_follow): Address TODO
20268         regarding the order of two dependent insns in the same row.
20269
20270 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
20271
20272         * stor-layout.c (layout_decl): Do not bump the alignment of a
20273         bit-field to more than byte alignment if it is packed.
20274
20275 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
20276
20277         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
20278         e300c2 and e300c3.
20279
20280 2008-02-24  Diego Novillo  <dnovillo@google.com>
20281
20282         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
20283
20284         PR 33738
20285         * tree-vrp.c (vrp_evaluate_conditional): With
20286         -Wtype-limits, emit a warning when comparing against a
20287         constant outside the natural range of OP0's type.
20288         * c.opt (Wtype-limits): Move ...
20289         * common.opt (Wtype-limits): ... here.
20290
20291 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
20292
20293         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
20294         * config/rs6000/e300c2c3.md: New file.
20295         * config/rs6000/rs6000.c (processor_costs): Add new costs for
20296         e300c2 and e300c3.
20297         (rs6000_override_options): Add e300c2 and e300c3 cases to
20298         processor_target_table. Do not allow usage of Altivec or Spe
20299         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
20300         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
20301         * config/rs6000/rs6000.h (processor_type): Add
20302         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
20303         (ASM_CPU_SPEC): Add e300c2 and e300c3.
20304         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
20305         and ppce300c3. Include e300c2c3.md.
20306
20307 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
20308
20309         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
20310         instead of TARGET_STRICT_ALIGN.
20311
20312 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
20313
20314         * explow.c (memory_address): Assert that the generated address is
20315         valid.
20316
20317 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
20318
20319         PR target/25477
20320         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
20321         * config/darwin-ppc-ldouble-patch.def: New file.
20322         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
20323         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
20324         SUBTARGET_INIT_BUILTINS if defined.
20325         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
20326         New functions.
20327
20328 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20329
20330         PR rtl-opt/33512
20331         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
20332         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
20333
20334 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20335
20336         PR pch/35027
20337         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
20338         file" warning condtional on -Winvalid-PCH.
20339
20340 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
20341
20342         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
20343
20344 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
20345
20346         PR target/22076
20347         PR target/34256
20348         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
20349         prevent reload from using MMX registers.
20350         (*mov<mode>_internal): Ditto.
20351         (*movv2sf_internal_rex64): Ditto.
20352         (*movv2sf_internal): Ditto.
20353
20354 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20355
20356         PR documentation/31569
20357         * doc/install.texi2html: Use makeinfo --no-number-sections.
20358
20359 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20360
20361         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
20362         ensure that we can address an entire entity > 8 bytes.  Don't
20363         generate reg+reg addressing for such data.
20364
20365 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20366
20367         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
20368         strings when optimizing for size, unless the target cares about
20369         alignment.
20370
20371 2008-02-22  Tom Tromey  <tromey@redhat.com>
20372
20373         * regclass.c (current_pass): Remove declaration.
20374
20375 2008-02-22  Anatoly Sokolov <aesok@post.ru>
20376
20377         * config/avr/libgcc.S (__RAMPZ__): Define.
20378         (__do_copy_data): Add for devices with 128KB code memory.
20379
20380 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
20381
20382         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
20383         Use spe_abi.
20384         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
20385
20386 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
20387
20388         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
20389         GENNONACR_REGS.
20390
20391 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20392
20393         PR c/19999
20394         * c-typeck.c (build_binary_op): Warn about floating point
20395         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
20396
20397 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
20398
20399         PR target/34526
20400         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
20401         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
20402         add vrsave.
20403         (rs6000_override_options): Set altivec_abi as default, not override,
20404         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
20405         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
20406         is used; use new member spe_abi.
20407         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
20408         spe_abi and altivec_abi.
20409
20410 2008-02-22  Tomas Bily  <tbily@suse.cz>
20411
20412         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
20413
20414 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20415
20416         PR bootstrap/35273
20417         * config.build (build_file_translate): Set to `CMD //c' only if
20418         it works.
20419         * Makefile.in (build_file_translate): Improve comment.
20420
20421 2008-02-21  Jan Hubicka  <jh@suse.cz>
20422
20423         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
20424         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
20425         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
20426
20427 2008-02-21  Michael Matz  <matz@suse.de>
20428
20429         PR target/35264
20430         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
20431
20432 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
20433
20434         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
20435         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
20436         as insn constraint.
20437         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
20438         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
20439         SSE_VEC_FLOAT_MODE_P as insn constraint.
20440         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
20441         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
20442         sse4a_movntdf using MODEF mode iterator.
20443         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
20444         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
20445         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
20446         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
20447         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
20448         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
20449         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
20450
20451 2008-02-21  Richard Guenther  <rguenther@suse.de>
20452
20453         * tree.def (PAREN_EXPR): New tree code.
20454         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
20455         and PAREN_EXPR.
20456         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
20457         * expr.c (expand_expr_real_1): Likewise.
20458         * tree-inline.c (estimate_num_insns_1): Likewise.
20459         * tree-complex.c (expand_complex_move): Likewise.
20460         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
20461         as plain x.
20462
20463 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20464
20465         PR target/35225
20466         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
20467
20468 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
20469
20470         PR target/35190
20471         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
20472
20473         * config/sh/sh.c (find_barrier): Don't go past
20474         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
20475
20476 2008-02-20  DJ Delorie  <dj@redhat.com>
20477
20478         * config/h8300/h8300.md (insv): Force source operand to be a register.
20479
20480         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
20481         as a jump, not as a plain insn.
20482
20483 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
20484
20485         * doc/invoke.texi (Warning Options): Add new option
20486         -Wframe-larger-than=.
20487         (-Wframe-larger-than): Document.
20488
20489         * flags.h (warn_frame_larger_than, frame_larger_than_size):
20490         Add declarations for new option variables.
20491
20492         * final.c (final_start_function): Check the frame size
20493         before emission and issue a Wframe-larger-than warning.
20494
20495         * opts.c (warn_frame_larger_than, frame_larger_than_size):
20496         Add definitions for new option variables.
20497         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
20498
20499         * common.opt (Wframe-larger-than=): New option.
20500
20501 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
20502
20503         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
20504         (<sse>_div<mode>3): Ditto.
20505         (<sse>_vmdiv<mode>3): Ditto.
20506         (<sse>_vmsqrt<mode>2): Ditto.
20507         (*smax<mode>3): Ditto.
20508         (sse5_frcz<mode>2): Ditto.
20509         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
20510         as insn constraint.
20511
20512 2008-02-20  Richard Guenther  <rguenther@suse.de>
20513
20514         PR middle-end/35265
20515         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
20516         be happy with INTEGRAL_TYPE_P.
20517
20518 2008-02-20  Richard Guenther  <rguenther@suse.de>
20519
20520         * fold-const.c (split_tree): Associate floatig-point expressions
20521         if flag_associative_math is set.
20522
20523 2008-02-20  Richard Guenther  <rguenther@suse.de>
20524
20525         * tree.h (fold_real_zero_addition_p): Declare.
20526         * fold-const.c (fold_real_zero_addition_p): Export.
20527         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
20528         floating-point operations with zero and one.
20529
20530 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
20531
20532         * doc/install.texi: Correct references to CFLAGS, replacing them
20533         with BOOT_CFLAGS.  Document flags used during bootstrap for
20534         target libraries.
20535
20536 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
20537
20538         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
20539         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
20540         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
20541         insn constraint.
20542         (smin<mode>3): Ditto from similar patterns.
20543         (smax<mode>3): Ditto.
20544         (*ieee_smin<mode>3): Ditto.
20545         (*ieee_smax<mode>3): Ditto.
20546         * config/i386/sse.md (sse): New mode attribute.
20547         (mov<mode>): Macroize expander from movv4sf and movv2df using
20548         SSEMODEF2P mode iterator.
20549         (<sse>_movnt<mode>): Ditto from similar patterns. Use
20550         SSE_VEC_FLOAT_MODE_P as insn constraint.
20551         (storent<mode>): Ditto.
20552         (storent<mode>): Macroize expander from storentsf and storentdf using
20553         MODEF mode iterator.
20554         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
20555         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
20556         (abs<mode>2): Ditto from similar patterns.
20557         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
20558         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
20559         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
20560         (<sse>_vmsqrt<mode>2): Ditto.
20561         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
20562         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
20563         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
20564         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
20565         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
20566         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
20567         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
20568         insn constraint.
20569         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
20570         iterator and SSE_FLOAT_MODE_P as insn constraint.
20571         (<sse>_ucomi): Ditto from similar patterns.
20572         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
20573         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
20574         SSE_VEC_FLOAT_MODE_P as insn constraint.
20575         (vcond<mode>): Ditto from similar patterns.
20576         (and<mode>3, *and<mode>3): Ditto.
20577         (<sse>_nand<mode>3): Ditto.
20578         (ior<mode>3, *ior<mode>3): Ditto.
20579         (xor<mode>3, *xor<mode>3): Ditto.
20580         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
20581         iterator and SSE_FLOAT_MODE_P as insn constraint.
20582         (*nand<mode>3): Ditto from similar patterns.
20583         (*ior<mode>3): Ditto.
20584         (*xor<mode>3): Ditto.
20585
20586 2008-02-20  Ira Rosen  <irar@il.ibm.com>
20587
20588         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
20589         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
20590         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
20591
20592 2008-02-19  Jan Hubicka  <jh@suse.cz>
20593
20594         * predict.c (tree_bb_level_predictions): Remove variable next
20595         mistakely introduced by previous commit.
20596
20597 2008-02-19  Jan Hubicka  <jh@suse.cz>
20598
20599         * predict.c (predict_paths_leading_to): Rewrite.
20600         (predict_paths_for_bb): New.
20601         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
20602
20603 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20604
20605         PR bootstrap/35218
20606         * Makefile.in (build_file_translate): New.
20607         (gcc-vers.texi): Use it for translating $(abs_srcdir).
20608         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
20609         * configure.ac (build_file_translate): Substitute it.
20610         * configure: Regenerate.
20611
20612 2008-02-19  Jan Hubicka  <jh@suse.cz>
20613
20614         PR rtl-optimization/34408
20615         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
20616         invalid sharing.
20617
20618 2008-02-19  Jan Hubicka  <jh@suse.cz>
20619
20620         PR middle-end/28779
20621         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
20622         call_expr.
20623
20624 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
20625
20626         PR Ada/35186
20627         * config/i386/i386-modes.def: Revert the last DI alignment
20628         change until Ada people can look into it.
20629
20630 2008-02-19  Nick Clifton  <nickc@redhat.com>
20631
20632         * opts.c (print_specific_help): Fix typo in --help text.
20633
20634 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
20635
20636         PR target/35239
20637         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
20638         32-bit inline asm without asm alternatives for host GCC < 3.0.
20639
20640 2008-02-19  Richard Guenther  <rguenther@suse.de>
20641
20642         PR tree-optimization/34989
20643         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
20644         Allow propagation to INDIRECT_REF if we can simplify only.
20645
20646 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20647
20648         * c-common.c (warn_for_collisions_1): Use appropriate option when
20649         warning.
20650
20651 2008-02-19  Nick Clifton  <nickc@redhat.com>
20652
20653         PR other/31349
20654         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
20655         (handle_options): Fix indentation.
20656         (print_filtered_help): If no language-specific options were
20657         displayed tell the user how to list all the options supported by
20658         the language's front-end.
20659         (print_specific_help): Fix indentation and remove duplicate line.
20660         (common_handle_option): Handle the -v option.
20661         For --help enable the display of undocumented options if the -v
20662         switch has been included on the command line.
20663         For --help= check for overlaps in the arguments between the option
20664         classes and the language names and issue a warning when they
20665         cannot be disambiguated.
20666         * c.opt (v): Pass on to the common option handler.
20667
20668 2008-02-19  Revital Eres  <eres@il.ibm.com>
20669
20670         * modulo-sched.c (sms_schedule): Change dump message when
20671         create_ddg function fails.
20672         (try_scheduling_node_in_cycle): Rename row to cycle.
20673         (print_partial_schedule): Rename CYCLE to ROW.
20674
20675 2008-02-19  Christian Bruel  <christian.bruel@st.com>
20676             Zdenek Dvorak  <ook@ucw.cz>
20677
20678         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
20679
20680 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
20681
20682         PR target/33555
20683         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
20684         (*x86_movdicc_0_m1_se): Ditto.
20685
20686 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
20687
20688         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
20689         (CMPtype): Define as __gcc_CMPtype.
20690         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
20691         (CMPtype): Define as __gcc_CMPtype.
20692
20693 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
20694
20695         Support valgrind 3.3 for --enable-checking=valgrind.
20696         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
20697         here.
20698         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
20699         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
20700         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
20701         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
20702         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
20703         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
20704         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
20705         respectively.
20706         * ggc-zone.c: Similar.
20707         * ggc-page.c: Similar.
20708
20709 2008-02-19  Paul Brook  <paul@codesourcery.com>
20710
20711         PR target/35071
20712         * config/arm/ieee754-df.S: Fix do_it typo.
20713         * config/arm/ieee754-sf.S: Fix do_it typo.
20714
20715 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
20716
20717         PR target/35189
20718         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
20719         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
20720         (OPTION_MASK_ISA_SSE_SET): Likewise.
20721         (OPTION_MASK_ISA_SSE2_SET): Likewise.
20722         (OPTION_MASK_ISA_SSE3_SET): Likewise.
20723         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
20724         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
20725         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
20726         (OPTION_MASK_ISA_SSE4_SET): Likewise.
20727         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
20728         (OPTION_MASK_ISA_SSE5_SET): Likewise.
20729         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
20730         (OPTION_MASK_ISA_MMX_UNSET): Updated.
20731         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
20732         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
20733         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
20734         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
20735         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
20736         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
20737         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
20738         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
20739         (OPTION_MASK_ISA_SSE4): Removed.
20740         (ix86_handle_option): Turn on bits in ix86_isa_flags and
20741         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
20742         (override_options): Don't turn on implied SSE/MMX bits in
20743         ix86_isa_flags.
20744
20745 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
20746
20747         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
20748         32bit host.
20749
20750 2008-02-18  Joey Ye  <joey.ye@intel.com>
20751
20752         PR middle-end/34921
20753         * tree-nested.c (insert_field_into_struct): Set type alignment
20754         to field alignment if the former is less than the latter.
20755
20756 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
20757
20758         * BASE-VER: Set to 4.4.0.
20759
20760 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20761
20762         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
20763         * doc/cfg.texi: Likewise.
20764         * doc/extend.texi: Likewise.
20765         * doc/gty.texi: Likewise.
20766         * doc/invoke.texi: Likewise.
20767         * doc/loop.texi: Likewise.
20768         * doc/md.texi: Likewise.
20769         * doc/passes.texi: Likewise.
20770         * doc/rtl.texi: Likewise.
20771         * doc/sourcebuild.texi: Likewise.
20772         * doc/tm.texi: Likewise.
20773         * doc/tree-ssa.texi: Likewise.
20774
20775 2008-02-17  Richard Guenther  <rguenther@suse.de>
20776
20777         PR middle-end/35227
20778         * tree-complex.c (init_parameter_lattice_values): Handle parameters
20779         without default definition.
20780
20781 2008-02-17  Richard Guenther  <rguenther@suse.de>
20782
20783         PR tree-optimization/35231
20784         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
20785         if A | B != 1.
20786
20787 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
20788
20789         Revert:
20790         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20791         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
20792         libgcc_cmp_return mode.
20793
20794 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20795
20796         PR c/28368
20797         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
20798
20799 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
20800
20801         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
20802         multilibs.
20803
20804 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20805
20806         * doc/c-tree.texi: Use `@.' where appropriate.
20807         * doc/extend.texi: Likewise.
20808         * doc/install.texi: Likewise.
20809         * doc/invoke.texi: Likewise.
20810         * doc/loop.texi: Likewise.
20811         * doc/makefile.texi: Likewise.
20812         * doc/md.texi: Likewise.
20813         * doc/passes.texi: Likewise.
20814         * doc/standards.texi: Likewise.
20815         * doc/tm.texi: Likewise.
20816
20817 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
20818
20819         PR middle-end/35196
20820         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
20821         in entry_bb.
20822         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
20823         rather than in entry_bb.
20824
20825 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20826
20827         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
20828         libgcc_cmp_return mode.
20829
20830 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
20831
20832         PR middle-end/35130
20833         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
20834         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
20835
20836 2008-02-15  Richard Guenther  <rguenther@suse.de>
20837             Zdenek Dvorak  <ook@ucw.cz>
20838
20839         PR tree-optimization/35164
20840         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
20841         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
20842         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
20843         Only propagate addresses which do not have abnormal SSA_NAMEs
20844         in their operands.
20845
20846 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
20847
20848         PR target/35088
20849         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
20850
20851 2008-02-15  Jan Hubicka  <jh@suse.cz>
20852
20853         PR middle-end/35149
20854         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
20855
20856 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20857
20858         PR middle-end/34621
20859         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
20860         when calculating alignment_pad.
20861
20862 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
20863
20864         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
20865         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
20866         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
20867         and STACK_BOUNDARY define.
20868
20869 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
20870
20871         PR preprocessor/35061
20872         * c-pragma.c (handle_pragma_pop_macro): Check that
20873         pushed_macro_table has been allocated.
20874
20875 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
20876
20877         PR middle-end/35136
20878         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
20879         (force_gimple_operand): Likewise.
20880         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
20881         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
20882         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
20883         (find_interesting_uses_address): Check addressability and alignment
20884         of the base expression only after substituting bases of IVs into it.
20885
20886 2008-02-14  Michael Matz  <matz@suse.de>
20887
20888         PR target/34930
20889         * function.c (instantiate_virtual_regs_in_insn): Reload address
20890         before falling back to reloading the whole operand.
20891
20892 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
20893
20894         * config/s390/s390.c (s390_mainpool_start): Emit the pool
20895         before the first section switch note.
20896
20897 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20898
20899         * doc/bugreport.texi: Update copyright years.
20900         * doc/c-tree.texi: Likewise.
20901         * doc/cfg.texi: Likewise.
20902         * doc/cpp.texi: Likewise.
20903         * doc/cppinternals.texi: Likewise.
20904         * doc/fragments.texi: Likewise.
20905         * doc/frontends.texi: Likewise.
20906         * doc/gcc.texi: Likewise.
20907         * doc/gty.texi: Likewise.
20908         * doc/hostconfig.texi: Likewise.
20909         * doc/implement-c.texi: Likewise.
20910         * doc/libgcc.texi: Likewise.
20911         * doc/loop.texi: Likewise.
20912         * doc/makefile.texi: Likewise.
20913         * doc/options.texi: Likewise.
20914         * doc/passes.texi: Likewise.
20915         * doc/rtl.texi: Likewise.
20916         * doc/sourcebuild.texi: Likewise.
20917         * doc/standards.texi: Likewise.
20918         * doc/tree-ssa.texi: Likewise.
20919         * doc/trouble.texi: Likewise.
20920
20921         * doc/extend.texi: Use @: or add comma where appropriate.
20922         * doc/invoke.texi: Likewise.
20923         * doc/tm.texi: Likewise.
20924
20925 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
20926
20927         PR target/34393
20928         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
20929         to a reg.
20930
20931 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
20932
20933         * doc/md.texi (clz, ctz): Add reference.
20934         * doc/rtl.texi (clz, ctz): Likewise.
20935
20936 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20937
20938         PR other/35148
20939         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
20940         srcdir.
20941
20942 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
20943
20944         * config/s390/s390.c (struct constant_pool): New field
20945         emit_pool_after added.
20946         (s390_mainpool_start): Set the emit_pool_after flag according
20947         to the section switch notes.
20948         (s390_mainpool_finish): Consider emit_pool_after when emitting
20949         the literal pool at the end of the function.
20950         (s390_chunkify_start): Force literal pool splits at section
20951         switch notes.
20952
20953 2008-02-13  Michael Matz  <matz@suse.de>
20954
20955         PR debug/35065
20956         * var-tracking.c (clobber_variable_part): Correctly traverse the
20957         list.
20958
20959 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20960
20961         PR 29673
20962         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
20963         Add -fdump-ipa-inline.
20964         * tree-dump.c (dump_files): Remove tree-inlined dump.
20965         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
20966
20967 2008-02-12  Richard Guenther  <rguenther@suse.de>
20968
20969         PR tree-optimization/35171
20970         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
20971         default defs.
20972
20973 2008-02-12  Richard Guenther  <rguenther@suse.de>
20974
20975         PR middle-end/35163
20976         * fold-const.c (fold_widened_comparison): Use get_unwidened in
20977         value-preserving mode.  Disallow final truncation.
20978
20979 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
20980
20981         PR middle-end/35136
20982         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
20983         code from here to...
20984         (force_gimple_operand): ...here.
20985
20986 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
20987
20988         PR c++/35144
20989         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
20990         non-compatible pointers.
20991         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
20992         different FIELD_DECLs, try harder by comparing field offsets, sizes
20993         and types.
20994
20995         PR inline-asm/35160
20996         * function.c (match_asm_constraints_1): Don't replace the same input
20997         multiple times.
20998
20999 2008-02-12  Anatoly Sokolov <aesok@post.ru>
21000
21001         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
21002         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
21003         (expand_epilogue): Restore RAMPZ register.
21004         * config/avr/avr.md (RAMPZ_ADDR): New constant.
21005
21006 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
21007
21008         * config/i386/cygwin.asm: (__alloca): Correct calling
21009         convention and alignment.
21010         (__chkstk): Force 8 byte stack alignment.
21011
21012 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
21013             Richard Guenther  <rguenther@suse.de>
21014
21015         PR tree-optimization/33992
21016         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
21017         the zero we compare against.
21018
21019 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
21020
21021         PR libfortran/35063
21022         * gthr-win32.h (__gthread_mutex_destroy_function): New function
21023         to CloseHandle after unlocking to prevent accumulation of handle
21024         count.
21025
21026 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21027
21028         PR middle_end/34150
21029         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
21030         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
21031         and update LABEL_NUSES during and after reload.
21032
21033 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
21034
21035         PR middle-end/34627
21036         * combine.c (simplify_if_then_else): Make sure the comparison is
21037         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
21038
21039 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
21040
21041         PR bootstrap/35051
21042         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
21043         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
21044         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
21045         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
21046         * tree.h (get_type_static_bounds): Likewise.
21047
21048 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21049
21050         * doc/invoke.texi (Option Summary, C++ Dialect Options)
21051         (Objective-C and Objective-C++ Dialect Options, Warning Options):
21052         Make -Wfoo language annotations match what the compiler outputs.
21053
21054 2008-02-08  Sa Liu  <saliu@de.ibm.com>
21055
21056         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu
21057         intrinsics spu_convts, spu_convtu, spu_convtf.
21058
21059 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
21060
21061         * doc/extend.texi (Function Attributes) <noinline>: Mention
21062         asm ("") as method to keep calls.
21063
21064 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21065
21066         PR other/32754
21067         * doc/options.texi (Options): Replace references to opts.sh with
21068         optc-gen.awk.
21069         * opts-common.c: Likewise.
21070         * optc-gen.awk: Likewise.
21071
21072 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
21073
21074         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
21075
21076 2008-02-07  Richard Henderson  <rth@redhat.com>
21077
21078         PR rtl-opt/33410
21079         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
21080         EXPR_LIST for the REG_EQUAL instead of a comparison with a
21081         funny mode.
21082
21083 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
21084
21085         PR tree-optimization/35085
21086         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
21087         for operand entry oe2 in addition to operand entry oe3 in order to
21088         expose more opportunities for vectorizer sum reduction.
21089
21090 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21091
21092         PR other/35107
21093         * Makefile.in (LIBS): Remove $(GMPLIBS).
21094         (cc1-dummy, cc1): Add $(GMPLIBS).
21095
21096 2008-02-06  Jan Hubicka  <jh@suse.cz>
21097
21098         PR target/23322
21099         * i386.md (moddf_integer): Do not produce partial memory stalls for
21100         targets where it hurts.
21101
21102 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
21103
21104         PR target/35083
21105         * optabs.c (expand_float): Do not check for decimal modes when
21106         expanding unsigned integer through signed conversion.
21107
21108 2008-02-06  Nick Clifton  <nickc@redhat.com>
21109
21110         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
21111         inside the clobber with a match_operand and duplicated operand
21112         number in the constraint.
21113         (ineqbranchsi): Delete redundant comment.
21114
21115 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
21116
21117         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add
21118         builtin_define ("__USE_INIT_FINI__").
21119         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
21120         -msx multilibs.
21121         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
21122
21123 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21124
21125         PR documentation/30330
21126         * doc/invoke.texi (C++ Dialect Options)
21127         (Objective-C and Objective-C++ Dialect Options, Warning Options):
21128         For each warning option -Wfoo that allows -Wno-foo, ensure both
21129         -Wfoo and -Wno-foo are listed in the option index.  Fix index
21130         entry of -Wswitch-default, index -Wnormalized= including the
21131         `=', and -Wlarger-than-@var{len} including @var{len}.
21132
21133 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
21134
21135         * config/i386/i386.md (floatunssisf2): Use
21136         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
21137         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
21138         Macroize expander using MODEF mode iterator.
21139
21140 2008-02-05  Diego Novillo  <dnovillo@google.com>
21141
21142         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
21143
21144         PR 33738
21145         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
21146
21147 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21148
21149         PR other/35070
21150         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
21151
21152 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
21153
21154         PR target/35084
21155         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
21156         to indicate if a message should be generated.
21157         (init_cumulative_args): Updated.
21158         (function_value_32): Likewise.
21159
21160 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
21161
21162         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
21163
21164 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
21165
21166         PR target/35083
21167         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
21168         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
21169
21170 2008-02-04  Diego Novillo  <dnovillo@google.com>
21171
21172         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
21173
21174         PR 33738
21175         * tree-vrp.c (vrp_evaluate_conditional): With
21176         -Wtype-limits, emit a warning when comparing against a
21177         constant outside the natural range of OP0's type.
21178
21179 2008-02-04  Richard Guenther  <rguenther@suse.de>
21180
21181         PR middle-end/33631
21182         * expr.c (count_type_elements): Give for unions instead of
21183         guessing.
21184
21185 2008-02-04  Richard Guenther  <rguenther@suse.de>
21186
21187         PR middle-end/35043
21188         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
21189         to TYPE_DOMAINs base type instead of using bitsizetype here.
21190
21191 2008-02-03  Jason Merrill  <jason@redhat.com>
21192
21193         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
21194
21195 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21196
21197         PR other/29972
21198         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
21199         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
21200         (RS/6000 and PowerPC Options): Fix typos and markup.
21201         * doc/passes.texi (Tree-SSA passes): Likewise.
21202
21203 2008-02-02  Michael Matz  <matz@suse.de>
21204
21205         PR target/35045
21206         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
21207         from record_last_reg_set_info.
21208         (record_last_reg_set_info): Take an RTX argument, iterate over all
21209         constituent hardregs.
21210         (record_last_set_info, record_opr_changes): Change calls to
21211         new signature or to record_last_reg_set_info_regno.
21212
21213 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
21214
21215         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
21216
21217 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
21218
21219         PR rtl-optimization/34773
21220         * reg-notes.def (EQUAL): Mention significance of combination of
21221         REG_EQUAL and REG_RETVAL.
21222         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
21223         insn that has a REG_RETVAL.
21224
21225 2008-02-01  Roger Sayle  <roger@eyesopen.com>
21226
21227         PR bootstrap/33781
21228         * configure.ac (--enable-fixed-point): Disable unless explicitly
21229         requested on IRIX.
21230         * configure: Regenerate.
21231
21232 2008-02-01  Richard Guenther  <rguenther@suse.de>
21233
21234         PR other/35042
21235         * invoke.texi (-finline-limit): Remove no longer true parts
21236         of the documentation.  Note that there is no default value.
21237
21238 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
21239             Mark Mitchell  <mark@codesourcery.com>
21240             Ben Elliston  <bje@au.ibm.com>
21241
21242         PR c/29326
21243         * doc/extend.texi (Other Builtins): Document.
21244
21245 2008-01-31  Tom Browder <tom.browder@gmail.com>
21246
21247         * doc/c-tree.texi (Types): Fix grammar.
21248         (Expression trees): Ditto.
21249         * doc/passes.texi (Tree-SSA passes): Ditto.
21250
21251         * doc/configterms.texi (Configure Terms): Fix typo.
21252         * doc/cpp.texi (Common Predefined Macros): Ditto.
21253         * doc/md.texi (Machine Constraints): Ditto.
21254
21255         * doc/makefile.texi (Makefile): Add comma.
21256
21257 2008-01-31  Tom Browder  <tom.browder@gmail.com>
21258             Gerald Pfeifer  <gerald@pfeifer.com>
21259
21260         * doc/sourcebuild.texi (Front End): Remove references to CVS
21261         and CVSROOT/modules.
21262         (Texinfo Manuals): Replace reference to CVS by one to SVN.
21263         (Back End): Remove reference to CVS.
21264
21265 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
21266
21267         PR target/34900
21268         * config/mips/mips.c (gen_load_const_gp): New function, taking a
21269         comment from...
21270         (mips16_gp_pseudo_reg): ...here.
21271         * config/mips/mips.md (load_const_gp): Replace with...
21272         (load_const_gp_<mode>): ...this :P-based insn.
21273
21274 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21275
21276         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
21277         options. Minor fixes.
21278         (-std): Move reference to standards closer to where language
21279         standards are first mentioned.
21280
21281 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
21282
21283         PR rtl-optimization/34995
21284         * reload.c (alternative_allows_const_pool_ref): Take an rtx
21285         parameter and return a bool.  If the rtx parameter is nonnull,
21286         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
21287         (find_reloads): Update call accordingly.  Pass the new operand
21288         if it needed no address reloads, otherwise pass null.
21289
21290 2008-01-30  Richard Henderson  <rth@redhat.com>
21291
21292         PR c/34993
21293         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
21294         for unbounded arrays.
21295
21296 2008-01-30  Silvius Rus  <rus@google.com>
21297
21298         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
21299
21300 2008-01-30  Jan Hubicka  <jh@suse.cz>
21301
21302         PR target/34982
21303         * i386.c (init_cumulative_args): Use real function declaration when
21304         calling locally.
21305
21306 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
21307
21308         PR rtl-optimization/34998
21309         * global.c (build_insn_chain): Treat non-subreg_lowpart
21310         SUBREGs of pseudos as clobbering all the words covered by the
21311         SUBREG, not just all the bytes.
21312         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
21313         original df_ref rather than an extract parameter.
21314         (global_conflicts): Update call accordingly.
21315
21316 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
21317
21318         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
21319         the overflow check to make it easier to read.
21320         (__fixtfdi): Change the type of the ll member in union
21321         long_double to UDItype_x.
21322
21323 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
21324
21325         PR middle-end/34969
21326         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
21327         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
21328         * tree-inline.c (fold_marked_statements): Call
21329         cgraph_update_edges_for_call_stmt if folding a call statement.
21330         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
21331         debug_generic_stmt calls, reset it back afterwards.
21332
21333         PR c/35017
21334         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
21335         static decls.
21336         * c-typeck.c (build_external_ref): Don't pedwarn about
21337         static vars in current function's scope.
21338
21339 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
21340
21341         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
21342
21343 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
21344
21345         PR c/35002
21346         * ipa-struct-reorg.c: Fix spelling.
21347         * params.def: Ditto.
21348
21349 2008-01-29  Richard Guenther  <rguenther@suse.de>
21350
21351         PR middle-end/35006
21352         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
21353         field.
21354         * tree-inline.c (remap_type): Increment remapping_type_depth
21355         around remapping types.
21356         (copy_body_r): Only add referenced variables if they are referenced
21357         from code, not types.
21358
21359 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
21360
21361         PR c++/34055
21362         PR c++/34103
21363         PR c++/34219
21364         PR c++/34606
21365         PR c++/34753
21366         PR c++/34754
21367         PR c++/34755
21368         PR c++/34919
21369         PR c++/34961
21370         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
21371         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
21372
21373 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
21374
21375         PR target/34412
21376         * config/avr/avr.c (expand_prologue): Use correct QI mode frame
21377         pointer for tiny stack.
21378
21379 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
21380
21381         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
21382
21383 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
21384
21385         * config/vx-common.h: Fix typo in comment.
21386
21387 2008-01-28  Ian Lance Taylor  <iant@google.com>
21388
21389         PR c++/34862
21390         PR c++/33407
21391         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
21392         coalesce pointers if they have different DECL_NO_TBAA_P values.
21393         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
21394         between variables with different DECL_NO_TBAA_P values.
21395
21396 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
21397
21398         PR 31535
21399         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
21400         are not legitimate small data references on SPE targets.
21401
21402 2008-01-28  David Daney  <ddaney@avtrex.com>
21403
21404         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
21405
21406 2008-01-28  David Daney  <ddaney@avtrex.com>
21407
21408         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
21409
21410 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
21411
21412         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
21413         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
21414         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
21415         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
21416         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
21417         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
21418         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
21419         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
21420
21421 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21422
21423         * basic-block.h (condjump_equiv_p): Fix comment.
21424
21425 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21426
21427         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
21428         print_generic_stmt_indented): Fix comment.
21429
21430 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
21431
21432         * configure.ac (__stack_chk_fail): Add detecion for availability
21433         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
21434         * configure: Regenerate.
21435
21436 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
21437
21438         PR middle-end/34688
21439         * final.c (output_addr_const): Handle TRUNCATE.
21440
21441 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
21442
21443         PR target/34711
21444         * tree-ssa-loop-ivopts.c (comp_cost): New type.
21445         (zero_cost, infinite_cost): New constants.
21446         (struct cost_pair): Change type of cost to comp_cost.
21447         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
21448         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
21449         New functions.
21450         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
21451         split_address_cost, ptr_difference_cost, difference_cost,
21452         get_computation_cost_at, get_computation_cost,
21453         determine_use_iv_cost_generic, determine_use_iv_cost_address,
21454         determine_use_iv_cost_condition, determine_use_iv_costs,
21455         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
21456         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
21457         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
21458         Change type of cost to comp_cost.
21459         (determine_iv_cost): Increase cost of non-original ivs, instead
21460         of decreasing the cost of original ones.
21461         (get_address_cost): Indicate the complexity of the addressing mode
21462         in comp_cost.
21463         (try_add_cand_for): Prefer using ivs not specific to some object.
21464         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
21465
21466 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
21467             Janis Johnson  <janis187@us.ibm.com>
21468
21469         PR target/34814
21470         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
21471         (TARGET_INSTANTIATE_DECLS): Likewise.
21472         * target.h (expand_to_rtl_hook): New target hook.
21473         (instantiate_decls): Likewise.
21474         * function.c (instantiate_decl): Make non-static.  Rename to...
21475         (instantiate_decl_rtl): ... this.
21476         (instantiate_expr): Use instantiate_decl_rtl.
21477         (instantiate_decls_1): Likewise.
21478         (instantiate_decls): Likewise.
21479         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
21480         * function.h (instantiate_decl_rtl): Add prototype.
21481         * cfgexpand.c (target.h): New include.
21482         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
21483         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
21484         (TARGET_INSTANTIATE_DECLS): Likewise.
21485         (TARGET_INITIALIZER): New target hooks added.
21486         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
21487         New prototype.
21488         * config/rs6000/rs6000.c (tree-flow.h): New include.
21489         (machine_function): Add sdmode_stack_slot field.
21490         (rs6000_alloc_sdmode_stack_slot): New function.
21491         (rs6000_instantiate_decls): Likewise.
21492         (rs6000_secondary_memory_needed_rtx): Likewise.
21493         (rs6000_check_sdmode): Likewise.
21494         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
21495         (TARGET_INSTANTIATE_DECLS): Likewise.
21496         (rs6000_hard_regno_mode_ok): Allow SDmode.
21497         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
21498         (rs6000_emit_move): Handle SDmode.
21499         (function_arg_advance): Likewise.
21500         (function_arg): Likewise.
21501         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
21502         SDmode var args for 32-bit compiles.
21503         (rs6000_secondary_reload_class): Handle SDmode.
21504         (rs6000_output_function_epilogue): Likewise.
21505         (rs6000_function_value): Simplify if statement.
21506         (rs6000_libcall_value): Likewise.
21507         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
21508         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
21509         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
21510         (movsd_hardfloat): New define_insn.
21511         (movsd_softfloat): Likewise.
21512         (movsd_store): Likewise.
21513         (movsd_load): Likewise.
21514         (extendsddd2): Likewise.
21515         (extendsdtd2): Likewise.
21516         (truncddsd2): Likewise.
21517         (movdd_hardfloat64): Fixup comment.
21518         (UNSPEC_MOVSD_LOAD): New constant.
21519         (UNSPEC_MOVSD_STORE): Likewise.
21520
21521 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
21522
21523         PR c++/34965
21524         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
21525         TRUTH_XOR_EXPR.
21526         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
21527         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
21528         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
21529         and TRUTH_XOR_EXPR.
21530
21531 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
21532
21533         PR target/34794
21534         * config.gcc: Separate AIX 5.3 from AIX 6.1.
21535         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
21536         __LONGDOUBLE128 too.
21537         * config/rs6000/aix61.h: New file.
21538
21539 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
21540
21541         PR rtl-optimization/34959
21542         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
21543         popcount and parity rtxes the same mode as their operand.
21544         Truncate or extend the result to the return value's mode
21545         if necessary.
21546
21547 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
21548
21549         PR target/34981
21550         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
21551         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
21552         to GOT_VERSION_REGNUM.
21553         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
21554         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
21555         * config/mips/mips.c (mips_emit_call_insn): New function.
21556         (mips_call_tls_get_addr): Call mips_expand_call directly.
21557         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
21558         emit_call_insn.
21559         (mips16_build_call_stub): Likewise.  Return the call insn or null.
21560         (mips_expand_call): Update the call to mips16_build_call_stub
21561         accordingly and a remove redundant condition.  Assert that MIPS16
21562         stubs do not use lazy binding.  Use mips_emit_call_insn and return
21563         the call insn.
21564         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
21565         TARGET_USE_GOT.
21566         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
21567         (mips_avoid_hazard): Remove hazard_set handling.
21568         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
21569         (UNSPEC_RESTORE_GP): ...this.
21570         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
21571         (FAKE_CALL_REGNO): Rename to...
21572         (GOT_VERSION_REGNUM): ...this.
21573         (type): Add "ghost" value.  Add an associated insn reservation.
21574         (hazard_set): Remove.
21575         (exception_receiver): Rename to...
21576         (restore_gp): ...this and update the unspec identifier accordingly.
21577         (exception_receiver, nonlocal_got_receiver): New expanders.
21578         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
21579         FAKE_CALL_REGNO.  Remove hazard_set attribute.
21580         (set_got_version, update_got_version): New patterns.
21581
21582 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
21583
21584         PR target/34970
21585         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
21586
21587 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
21588
21589         PR other/31955
21590         * doc/install.texi2html: Generate gcc-vers.texi.
21591
21592 2008-01-25  DJ Delorie  <dj@redhat.com>
21593
21594         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
21595
21596 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
21597
21598         * config/c4x: Remove directory.
21599         * config.gcc (crx-*, mt-*): Mark obsolete.
21600         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
21601         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
21602         sh-*-rtemscoff*): Remove cases.
21603         * defaults.h (C4X_FLOAT_FORMAT): Remove.
21604         * real.c (encode_c4x_single, decode_c4x_single,
21605         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
21606         c4x_extended_format): Remove.
21607         * real.h (c4x_single_format, c4x_extended_format): Remove.
21608         * doc/extend.texi (interrupt, naked): Remove mention of attributes
21609         on C4x.
21610         (Pragmas): Remove comment about c4x pragmas.
21611         * doc/install.texi (c4x): Remove target-specific instructions.
21612         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
21613         * doc/md.texi (Machine Constraints): Remove C4x documentation.
21614         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
21615         refer to C4x source files as examples.
21616         (C4X_FLOAT_FORMAT): Remove documentation.
21617
21618 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
21619
21620         * config/bfin/bfin.c (override_options): Reorder tests so that
21621         flag_pic gets enabled for -msep-data.
21622
21623 2008-01-25  Richard Guenther  <rguenther@suse.de>
21624
21625         PR middle-end/32244
21626         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
21627         to its bitfield precision if required.
21628
21629 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
21630
21631         PR middle-end/33880
21632         * tree-nested.c (walk_omp_for): New function.
21633         (convert_nonlocal_reference, convert_local_reference): Call
21634         walk_omp_for on OMP_FOR.
21635         (convert_call_expr): Call walk_body on OMP_FOR's
21636         OMP_FOR_PRE_INIT_BODY.
21637
21638 2008-01-25  Richard Guenther  <rguenther@suse.de>
21639
21640         PR tree-optimization/34966
21641         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
21642         default defs and PHI_NODEs we have to insert after the
21643         defining statement.
21644
21645 2008-01-24  Nick Clifton  <nickc@redhat.com>
21646
21647         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
21648         Provide a default definition.
21649         (LIBGCC2_UNITS_PER_WORD): Likewise.
21650
21651         * config/stormy16/stormy16.c: Include df.h for the prototype
21652         for df_regs_ever_live_p.
21653         (xstormy16_expand_builtin_va_start): Convert the stack offset
21654         into a component_ref and then use POINTER_PLUS_EXPR to add it
21655         to the incoming_virtual_args_rtx.
21656         (xstormy16_gimplify_va_arg_expr): Rename to
21657         xstormy16_gimplify_va_arg_expr.
21658         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
21659         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
21660         xstormy16_gimplify_va_arg_expr.
21661         Fix up some formatting issues.
21662
21663         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
21664         Move to predicates.md.
21665         (xs_hi_general_operand): Likewise.
21666         (xs_hi_nonmemory_operand): Likewise.
21667         * config/stormy16/predicates.md:
21668         (xstormy16_carry_plus_operand): New predicate.
21669         (xs_hi_general_operand): New predicate.
21670         (xs_hi_nonmemory_operand): New predicate.
21671         * config/stormy16/stormy16-protos.h:
21672         (xstormy16_carry_plus_operand): Delete prototype.
21673         (xs_hi_general_operand): Likewise.
21674         (xs_hi_nonmemory_operand): Likewise.
21675
21676         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
21677         modifiers as they are no longer needed and they can trigger
21678         reload spill failures.
21679
21680         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
21681         with a match_operand in order to help reload.
21682
21683         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
21684         constraint with 'e' for the 8th alternative as this version of
21685         the mov.w instruction only accepts the lower 8 registers.
21686
21687 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
21688
21689         PR target/34856
21690         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
21691         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
21692         vector elements.
21693
21694 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
21695
21696         PR middle-end/33333
21697         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
21698
21699 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
21700
21701         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
21702         New functions.
21703         (remove_structure): Update allocations list before removing structure.
21704
21705 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
21706
21707         * ipa-struct-reorg.c (is_safe_cond_expr,
21708         create_new_stmts_for_cond_expr): Use integer_zerop function,
21709         that recognize not only zero-pointer, but zero-integer too.
21710
21711 2008-01-25  Ben Elliston  <bje@au.ibm.com>
21712
21713         PR other/22232
21714         * fixproto: Escape "." in sed expression that strips leading "./".
21715
21716 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
21717
21718         PR driver/34904
21719         * gcc.c (SWITCH_OK): Removed.
21720         (SWITCH_LIVE): Changed to bit.
21721         (SWITCH_FALSE): Likewise.
21722         (SWITCH_IGNORE): Likewise.
21723         (switchstr): Change live_cond to unsigned int.
21724         (process_command): Replace SWITCH_OK with 0.
21725         (do_self_spec): Likewise.
21726         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
21727         (give_switch): Likewise.
21728         (used_arg): Likewise.
21729         (do_spec_1): Set the SWITCH_IGNORE bit.
21730         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
21731         bits.  Set the SWITCH_LIVE bit.
21732
21733 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
21734
21735         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
21736
21737 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
21738
21739         PR tree-optimization/34472
21740         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
21741         parameter to a "bool *" and set *DATA to false if there is
21742         an unsafe access.  Do not delete the structure here.
21743         (check_cond_exprs): Delete it here instead.
21744         (check_cond_exprs, exclude_cold_structs): Do not increase
21745         I when removing a structure.
21746
21747 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
21748
21749         PR target/34856
21750         * config/i386/i386.c (ix86_expand_vector_init): Consider only
21751         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
21752
21753 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
21754
21755         PR middle-end/34934
21756         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
21757         a fixed vector for stack.
21758
21759 2008-01-24  Ben Elliston  <bje@au.ibm.com>
21760
21761         PR c++/25701
21762         * doc/gcc.texi (Software development): Add a direntry for g++.
21763
21764 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
21765
21766         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
21767         stale and straggling -fforce-addr comments above.
21768
21769         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
21770         define.
21771         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
21772         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
21773
21774 2008-01-23  Michael Matz  <matz@suse.de>
21775
21776         PR debug/34895
21777         * dwarf2out.c (force_type_die): Use modified_type_die instead of
21778         gen_type_die.
21779
21780 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
21781
21782         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
21783         malloc result type.
21784
21785 2008-01-23 Anatoly Sokolov <aesok@post.ru>
21786
21787         * config/avr/avr.c (avr_current_arch): New variable.
21788         (avr_arch_types): Add 'avr31' and 'avr51' entries.
21789         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
21790         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
21791         (avr_override_options): Init 'avr_current_arch'.
21792         (base_arch_s): Move from here...
21793         * config/avr/avr.h (base_arch_s): ... here. Add new members
21794         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename
21795         'mega' to 'have_jmp_call'.
21796         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__",
21797         "__AVR_HAVE_RAMPZ__", "__AVR_HAVE_ELPM__" and "__AVR_HAVE_ELPMX__"
21798         macros.
21799         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51'
21800         architectures.
21801         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21802         MULTILIB_MATCHES): Ditto.
21803
21804 2008-01-23  Richard Guenther  <rguenther@suse.de>
21805
21806         PR middle-end/31529
21807         * cgraphunit.c (cgraph_reset_node): Always mark the node
21808         not reachable if it is not queued already.
21809
21810 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
21811
21812         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
21813         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
21814         (cputype_selected): New static variable.
21815         (bfin_handle_option): Set it if -mcpu is used.
21816         (override_option): Select default set of workarounds if no cpu type
21817         selected on the command line.
21818         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
21819
21820         From  Michael Frysinger  <michael.frysinger@analog.com>
21821         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
21822         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
21823
21824         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
21825         for bf547, bf523, bf524, and bf526.
21826         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
21827         bf526.
21828         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
21829         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
21830         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
21831         __ADSPBF547__ and __ADSPBF54x__ for bf547.
21832         * doc/invoke.texi (Blackfin Options): Document that
21833         -mcpu now accept bf547, bf523, bf524, and bf526.
21834
21835 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
21836
21837         PR rtl-optimization/34628
21838         * combine.c (try_combine): Stop and undo after the first combination
21839         if an autoincrement side-effect on the first insn has effectively
21840         been lost.
21841
21842 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
21843
21844         PR target/34529
21845         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
21846         Offset addresses are not valid for Altivec or paired float modes.
21847
21848 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
21849
21850         PR c++/34607
21851         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
21852         if DECL_INITIAL (decl) is error_mark_node.
21853
21854         PR c++/34914
21855         * c-common.c (handle_vector_size_attribute): Only allow
21856         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
21857         the same way as pointer, array etc. types.
21858         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
21859
21860         PR c++/34917
21861         * tree.c (build_type_attribute_qual_variant): Call
21862         build_qualified_type if attributes are equal, but quals are not.
21863
21864 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21865
21866         PR 32102
21867         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
21868         * flags.h (warn_strict_aliasing): Remove.
21869         (warn_strict_overflow): Remove.
21870         * opts.c (warn_strict_aliasing): Remove.
21871         (warn_strict_overflow): Remove.
21872         * c-opts.c (c_common_handle_option): -Wall only sets
21873         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
21874         (c_common_post_options): Give default values to -Wstrict-aliasing
21875         and -Wstrict-overflow if they are uninitialized.
21876         * common.opt (Wstrict-aliasing): Specify Var and Init.
21877         (Wstrict-overflow): Likewise.
21878
21879 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
21880
21881         PR rtl-optimization/26854
21882         PR rtl-optimization/34400
21883         PR rtl-optimization/34884
21884         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
21885         DF_RD->gen.
21886         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
21887         (df_rd_bb_info.expanded_lr_out): Deleted
21888         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
21889         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
21890         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
21891         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
21892         Removed code to allocate, initialize or free expanded_lr_out.
21893         (df_rd_bb_local_compute_process_def): Restructured to make more
21894         understandable.
21895         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
21896         sets if the sets are being trimmed.
21897
21898 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
21899
21900         PR bootstrap/32287
21901         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
21902         (as_vers): Likewise.
21903         * configure: Regenerated.
21904
21905 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
21906
21907         PR middle-end/33092
21908         * tree-pass.h (pass_build_alias): New pass.
21909         * tree-ssa-alias.c (gate_build_alias): New.
21910         (pass_build_alias): New.
21911         * passes.c (init_optimization_passes): Add pass_build_alias after
21912         pass_create_structure_vars.
21913
21914 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
21915
21916         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
21917         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
21918         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
21919         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
21920         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
21921         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
21922         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
21923         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
21924         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
21925         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
21926         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
21927         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
21928         * config/s390/s390.md (FP_ALL): New mode iterator.
21929         (_d): New mode attribute.
21930         ("*signbit<mode>2>"): Changed mode of first operand.
21931         ("isinf<mode>2"): Changed mode of first operand.
21932         ("*TDC_insn"): Adaptation for DFP modes.
21933
21934 2008-01-22  Ben Elliston  <bje@au.ibm.com>
21935
21936         * tree.c (check_qualified_type): Improve function description.
21937
21938 2008-01-21  Jason Merrill  <jason@redhat.com>
21939
21940         PR c++/34196
21941         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
21942         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
21943         if it is set.
21944
21945 2008-01-21  DJ Delorie  <dj@redhat.com>
21946
21947         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
21948         return zero.
21949
21950 2008-01-21  Richard Guenther  <rguenther@suse.de>
21951
21952         PR middle-end/34856
21953         * tree-cfg.c (verify_expr): Allow all invariant expressions
21954         instead of just constant class ones as reference argument.
21955         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
21956         like any other constant.
21957         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
21958
21959 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
21960
21961         * regmove.c (fixup_match_1): Update call crossed frequencies.
21962
21963 2008-01-21  Richard Guenther  <rguenther@suse.de>
21964
21965         PR c/34885
21966         * tree-inline.c (setup_one_parameter): Deal with mismatched
21967         types using a VIEW_CONVERT_EXPR.
21968
21969 2008-01-21  Alon Dayan  <alond@il.ibm.com>
21970             Olga Golovanevsky  <olga@il.ibm.com>
21971
21972         PR tree-optimization/34701
21973         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
21974         when the structure size is not a power of 2.
21975
21976 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
21977
21978         * doc/install.texi: Add doc for --enable-checking=df.
21979
21980 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
21981
21982         PR rtl-optimization/34808
21983         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
21984
21985 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
21986
21987         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
21988         input.
21989
21990 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
21991
21992         PR rtl-optimization/26854
21993         PR rtl-optimization/34400
21994         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
21995         DF_RD->gen.
21996         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
21997         (df_rd_bb_info.expanded_lr_out): New.
21998         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
21999         * loop_iv.c (iv_analysis_loop_init): Ditto.
22000         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
22001         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
22002         Added code to allocate, initialize or free expanded_lr_out.
22003         (df_rd_bb_local_compute_process_def): Restructured to make
22004         more understandable.
22005         (df_rd_confluence_n): Add code to do nothing with fake edges and
22006         code to no apply invalidate_by_call sets if the sets are being trimmed.
22007         (df_lr_local_finalize): Renamed to df_lr_finalize.
22008         (df_live_local_finalize): Renamed to df_live_finalize.
22009
22010 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
22011
22012         PR target/34831
22013         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
22014         deciding whether to use reciprocal instructions.
22015
22016 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
22017
22018         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
22019         dwarf2out_note_section_used if cold_text_section is NULL.
22020
22021 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
22022
22023         PR gcov-profile/34610
22024         * tree-cfg.c (make_edges): Mark both outgoing edges from
22025         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
22026         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
22027         from OMP_FOR and OMP_CONTINUE outgoing edges.
22028
22029         * tree-profile.c (tree_profiling): Return early if
22030         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
22031         at the end.
22032         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
22033         from cfun to child_cfun.
22034         * function.h (struct function): Add after_tree_profile bit.
22035
22036 2008-01-19 Anatoly Sokolov <aesok@post.ru>
22037
22038         * config/avr/avr.S (_exit): Disable interrupt.
22039
22040 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
22041             Steven Bosscher  <stevenb.gcc@gmail.com>
22042
22043         PR rtl-optimization/26854
22044         PR rtl-optimization/34400
22045         * df-problems.c (df_live_scratch): New scratch bitmap.
22046         (df_live_alloc): Allocate df_live_scratch when doing df_live.
22047         (df_live_reset): Clear the proper bitmaps.
22048         (df_live_bb_local_compute): Only process the artificial defs once
22049         since the order is not important.
22050         (df_live_init): Init the df_live sets only with the variables
22051         found live by df_lr.
22052         (df_live_transfer_function): Use the df_lr sets to prune the
22053         df_live sets as they are being computed.
22054         (df_live_free): Free df_live_scratch.
22055
22056 2008-01-18  Ian Lance Taylor  <iant@google.com>
22057
22058         * common.opt: Add fmerge-debug-strings.
22059         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
22060         flag_merge_debug_strings rather than flag_merge_constants.
22061         * doc/invoke.texi (Option Summary): Mention
22062         -fmerge-debug-strings.
22063         (Debugging Options): Document -fmerge-debug-strings.
22064
22065 2008-01-18  Ian Lance Taylor  <iant@google.com>
22066
22067         PR c++/33407
22068         * tree.h (DECL_IS_OPERATOR_NEW): Define.
22069         (struct tree_function_decl): Add new field operator_new_flag.
22070         * tree-inline.c (expand_call_inline): When inlining a call to
22071         operator new, force the return value to go into a variable, and
22072         set DECL_NO_TBAA_P on that variable.
22073         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
22074
22075 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
22076
22077         PR debug/34484
22078         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
22079         DWARF2_DEBUGGING_INFO.
22080         (dwarf2out_note_section_used): Ditto.  Add prototype.
22081         (have_multiple_function_sections, text_section_used,
22082         cold_text_section_used, *cold_text_sections): Move declarations
22083         before their uses.
22084
22085 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
22086
22087         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
22088         field and add signal_ra.
22089         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
22090         assignments to frame state pc.  Move end of stack check after
22091         MD_FALLBACK_FRAME_STATE_FOR.
22092         (uw_update_context_1): Use frame state signal_regs if set, instead
22093         of checking signal_frame flag.
22094         (uw_update_context): Use frame state signal_ra if set.
22095         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
22096         * config/xtensa/linux-unwind.h: New file.
22097
22098 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
22099
22100         * modulo-sched.c (get_sched_window): Fix comment typo.
22101
22102 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
22103
22104         PR tree-optimization/34648
22105         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
22106
22107 2008-01-17  Anatoly Sokolov <aesok@post.ru>
22108
22109         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
22110         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
22111
22112 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
22113
22114         PR rtl-optimization/34400
22115         * df-core.c (df_worklist_dataflow_overeager,
22116         df_worklist_dataflow_doublequeue): New functions.
22117         (df_worklist_dataflow): Two different worklist solvers.
22118         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
22119         New param.
22120
22121 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22122
22123         PR testsuite/34821
22124         * doc/invoke.texi: Document the dependence on pthread for fopenmp
22125         and ftree-parallelize-loops.
22126
22127 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
22128
22129         PR rtl-optimization/34826
22130         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
22131
22132 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
22133
22134         * global.c (find_reg): Mark the eh regs as used if necessary.
22135         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
22136         * ra.h (struct allocno): no_eh_reg field added.  Changed
22137         no_stack_reg type to bitfield.
22138
22139 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
22140
22141         * tree.c (substitute_in_expr): Add missing 'break'.
22142
22143 2008-01-17  Richard Guenther  <rguenther@suse.de>
22144
22145         PR tree-optimization/34825
22146         * tree-ssa-math-opts.c (is_division_by): Do not recognize
22147         x / x as division to handle.
22148
22149 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22150
22151         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
22152         "-pthread" is specified.
22153         * pa-hpux11.h (LIB_SPEC): Likewise.
22154
22155 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
22156             Peter Bergner  <bergner@vnet.ibm.com>
22157
22158         PR rtl-optimization/33796
22159         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
22160
22161 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22162
22163         PR libgfortran/34699
22164         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
22165         static links.
22166         * pa-hpux10.h (LINK_SPEC): Likewise.
22167         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
22168
22169 2008-01-16  Richard Guenther  <rguenther@suse.de>
22170
22171         PR middle-end/32628
22172         * fold-const.c (fold_convert_const_int_from_int): Do not
22173         set overflow if that occured only because of a sign extension
22174         change when converting from/to a sizetype with the same
22175         precision and signedness.
22176
22177 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
22178
22179         PR debug/34249
22180         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
22181         location address to the correct place.  Update copyright year.
22182
22183 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22184
22185         * lambda-code.c (lambda_transform_legal_p): Handle the case of
22186         no dependences in the dependence_relations vector.
22187
22188 2008-01-16  Jan Hubicka  <jh@suse.cz>
22189
22190         PR rtl-optimization/31396
22191         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
22192         * cfg.c (dump_reg_info): Print it.
22193         * regs.h (struct reg_info_t): add freq_calls_crossed.
22194         (REG_FREQ_CALLS_CROSSED): New macro.
22195         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
22196         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
22197         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
22198         regmove_optimize): Update call crossed frequencies.
22199         * local-alloc.c (struct qty): Add freq_calls_crossed.
22200         (alloc_qty): Copute freq_calls_crossed.
22201         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
22202         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
22203         * ra.h (struct allocno): Add freq_calls_crossed.
22204
22205 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22206
22207         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
22208         libgomp when compiling with ftree-parallelize-loops.
22209         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
22210
22211 2008-01-16  Richard Guenther  <rguenther@suse.de>
22212
22213         PR tree-optimization/34769
22214         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
22215         * tree.c (int_cst_value): Instead make this function more
22216         permissive in what it accepts as valid input.  Document this
22217         function always sign-extends the value.
22218
22219 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
22220             Richard Guenther  <rguenther@suse.de>
22221
22222         PR c/34668
22223         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
22224         (gimple_fold_indirect_ref_rhs): ... this.
22225         (gimple_fold_indirect_ref): New function with foldings
22226         that preserve lvalueness.
22227         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
22228         * tree-flow.h (gimple_fold_indirect_ref): Declare.
22229         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
22230         to fold an INDIRECT_REF, fall back to the old use of
22231         fold_indirect_ref_1.
22232
22233 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
22234
22235         * tree-data-ref.c (subscript_dependence_tester_1): Call
22236         free_conflict_function.
22237         (compute_self_dependence): Same.
22238
22239 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
22240
22241         PR debug/34249
22242         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
22243         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
22244         function global.
22245         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
22246         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
22247         for DWARF2_UNWIND_INFO targets.
22248
22249 2008-01-16  Richard Guenther  <rguenther@suse.de>
22250
22251         PR c/34768
22252         * c-typeck.c (common_pointer_type): Do not merge inconsistent
22253         type qualifiers for function types.
22254
22255 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
22256
22257         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
22258         loop_iterator li from previous commit.
22259
22260 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
22261
22262         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
22263
22264 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
22265
22266         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
22267         (parallelize_loops): Don't parallelize irreducible components.
22268
22269 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
22270
22271         PR c++/24924
22272         * c-opts (c_common_post_options): Do not enable CPP
22273         flag_pedantic_errors by default.
22274
22275 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
22276
22277         PR rtl-optimization/31944
22278         * cse.c (remove_pseudo_from_table): New function.
22279         (merge_equiv_classes): Use above function to remove pseudo-registers.
22280         (invalidate): Likewise.
22281
22282 2008-01-13  Richard Guenther  <rguenther@suse.de>
22283
22284         PR middle-end/34601
22285         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
22286         instead of TYPE_MODE to deal with calls from expand_one_error_var.
22287
22288 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
22289
22290         * gcse.c (cprop_jump): Call validate_unshare_change instead of
22291         validate_change to unshare the source of the PC set.
22292
22293 2008-01-12  Jan Hubicka  <jh@suse.cz>
22294
22295         PR middle-end/32135
22296         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
22297         references above array bounds.  This might trigger bounds checks for
22298         pointers to arrays.
22299
22300 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
22301
22302         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
22303         new_replaceable_dependencies.
22304
22305 2008-01-12  Doug Kwan  <dougkwan@google.com>
22306
22307         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
22308         instead of OPT_Wreturn_type in warning due to ignored return type
22309         qualifiers.
22310         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
22311         options included in -Wextra.
22312         * c.opt: New option -Wignored_qualifiers.
22313         * doc/invoke.texi (Warning Options, -Wextra): Add new option
22314         -Wignore_qualifiers.
22315         (-Wignored-qualifiers): Document.
22316         (-Wreturn-type): Remove description of functionality now handled
22317         by -Wignored-qualifiers.
22318
22319 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
22320
22321         PR ada/33788
22322         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
22323         NOP_EXPR if it is between integral types with the same precision.
22324
22325 2008-01-12  Jan Hubicka  <jh@suse.cz>
22326
22327         PR other/28023
22328         * invoke.texi (max-inline-recursive-depth): Fix default value.
22329
22330 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
22331
22332         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
22333         correct type.
22334
22335 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
22336
22337         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
22338
22339 2008-01-11  James E. Wilson  <wilson@specifix.com>
22340
22341         PR target/26015
22342         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
22343
22344 2008-01-11  Anatoly Sokolov <aesok@post.ru>
22345
22346         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't
22347         save/restore frame pointer register and don't use 'call-prologues'
22348         optimization in function with "OS_task" attribute.
22349
22350 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
22351
22352         PR middle-end/31309
22353         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
22354         when copying to memory.
22355
22356 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
22357
22358         PR rtl-optimization/30905
22359         * cfgcleanup.c: Include dce.h
22360         (crossjumps_occured): New global variable.
22361         (try_crossjump_bb): Exit loop after finding a fallthru edge.
22362         If something changed, set crossjumps_occured to true.
22363         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
22364         Don't add/remove fake edges to exit here...
22365         (cleanup_cfg): ...but do it here, when crossjumping.
22366         Run a fast DCE when successful crossjumps occured in the latest
22367         iteration of try_optimize_cfg.
22368
22369 2008-01-11  Richard Guenther  <rguenther@suse.de>
22370
22371         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
22372         (struct vn_unary_op_s): Likewise.
22373         (vn_reference_insert): Free old reference on hash collision.
22374
22375 2008-01-10  Raksit Ashok  <raksit@google.com>
22376
22377         PR rtl-optimization/27971
22378         * combine.c (find_split_point): Split PLUS expressions which are
22379         inside a MEM rtx, and whose first operand is complex.
22380
22381 2008-01-10  DJ Delorie  <dj@redhat.com>
22382
22383         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
22384         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
22385         (m32c_hard_regno_ok): Call the underlying function.
22386
22387 2008-01-10  Richard Guenther  <rguenther@suse.de>
22388
22389         PR middle-end/34683
22390         * tree-cfg.c (tree_merge_blocks): Do not go through the
22391         full-blown folding and stmt updating path if we just deal
22392         with virtual operands.
22393         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
22394         test for abnormal SSA_NAMEs.
22395
22396 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
22397
22398         PR middle-end/34641
22399         * reload.c (push_reload): Add assertions.  All constants from
22400         reg_equiv_constant should have been used for replacing the respective
22401         pseudo earlier.
22402         (find_reloads_address): Invoke find_reloads_address_part for
22403         constant taken from the reg_equiv_constant array.
22404
22405 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
22406
22407         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
22408         field (valnum) the first in the struct.  Replace bools with
22409         unit bit fields.
22410
22411 2008-01-10  Richard Guenther  <rguenther@suse.de>
22412
22413         PR tree-optimization/34651
22414         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
22415         types and ordering for masking and converting.
22416
22417 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
22418
22419         PR tree-optimization/34017
22420         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
22421         also for PHI_NODE expressions.
22422
22423 2008-01-09  Jan Hubicka  <jh@suse.cz>
22424
22425         PR tree-optimization/34708
22426         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
22427         based on number of case labels.
22428         (init_inline_once): Remove switch_cost.
22429         * tree-inline.h (eni_weights_d): Remove switch_cost.
22430
22431 2008-01-09  Richard Guenther  <rguenther@suse.de>
22432         Andrew Pinski  <andrew_pinski@playstation.sony.com>
22433
22434         PR middle-end/30132
22435         * gimplify.c (gimplify_cond_expr): Do not create an addressable
22436         temporary if an rvalue is ok or an lvalue is not required.
22437
22438 2008-01-09  Richard Guenther  <rguenther@suse.de>
22439
22440         PR middle-end/34458
22441         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
22442         adjust return type.
22443
22444 2008-01-09  Richard Guenther  <rguenther@suse.de>
22445
22446         PR middle-end/34679
22447         * tree.c (host_integerp): Check for sizetype only if the
22448         type is an integer type.
22449
22450 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
22451
22452         PR debug/26364
22453         * opts.c (decode_options): Disable inlining of functions called
22454         once if not in unit-at-a-time mode.
22455
22456 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
22457
22458         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
22459
22460 2008-01-08  Richard Guenther  <rguenther@suse.de>
22461
22462         PR middle-end/31863
22463         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
22464         out early if the result will be unused.
22465
22466 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
22467
22468         PR target/34709
22469         Revert:
22470
22471         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22472         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22473         for TARGET_RECIP.
22474
22475 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
22476
22477         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
22478         for vectorization tuned.
22479
22480 2008-01-08  Richard Guenther  <rguenther@suse.de>
22481
22482         PR tree-optimization/34683
22483         * tree-ssa-operands.c (operand_build_cmp): Export.
22484         * tree-ssa-operands.h (operand_build_cmp): Declare.
22485         * tree-vn.c (vuses_compare): Remove.
22486         (sort_vuses): Use operand_build_cmp.
22487         (sort_vuses_heap): Likewise.
22488         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
22489         to re-use old VEC if available.  Do not sort already sorted VUSEs.
22490         (vdefs_to_vec): Do not sort already sorted VDEFs.
22491
22492 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
22493
22494         PR middle-end/34694
22495         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
22496
22497 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
22498
22499         PR target/34702
22500         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
22501         limitations of reciprocal sequences on x86 targets.
22502
22503 2008-01-08  Richard Guenther  <rguenther@suse.de>
22504
22505         PR tree-optimization/34683
22506         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
22507
22508 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
22509
22510         PR target/34622
22511         * config/darwin.c (darwin_mergeable_string_section): Don't use
22512         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
22513
22514 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
22515
22516         PR target/34682
22517         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
22518         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
22519         predicates of op0 and op1 to register_operand.
22520         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
22521         expander using X87MODEF mode iterator.  Change predicates of
22522         op0 and op1 to register_operand.
22523         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
22524         corresponding patterns and macroize using MODEF macro.  Change
22525         predicates of op0 and op1 to register_operand and remove
22526         "m" constraint. Disparage "r" alternative with "!".
22527         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
22528         macroize using X87MODEF macro.  Change predicates of op0 and op1
22529         to register_operand and remove "m" constraint.  Disparage "r"
22530         alternative with "!".
22531         (absneg splitter with memory operands): Remove.
22532         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
22533         patterns and macroize using X87MODEF mode iterator.
22534         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
22535         Change predicate of op1 to register_operand.
22536         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
22537         for memory operands.
22538
22539 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
22540
22541         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
22542
22543 2008-01-07  Richard Guenther  <rguenther@suse.de>
22544
22545         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
22546         fields.
22547
22548 2008-01-07  Richard Guenther  <rguenther@suse.de>
22549
22550         PR tree-optimization/34683
22551         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
22552         VOPs of the needed size to save memory.  Use VEC_quick_push
22553         to save compile-time.
22554         (vdefs_to_vec): Likewise.
22555
22556 2008-01-07  Sa Liu  <saliu@de.ibm.com>
22557
22558         * config/spu/spu.md (divdf3): Genetate inline code for double
22559         division.  The implementation doesn't handle INF or NAN, therefore it
22560         only applies when -ffinite-math-only is given.
22561
22562 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
22563
22564         PR libstdc++/34680
22565         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
22566         * doc/cpp.texi ([Common Predefined Macros]): Document.
22567
22568 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
22569
22570         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
22571         order to use commutative addition instead of subtraction.
22572
22573 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
22574             Mircea Namolaru  <namolaru@il.ibm.com>
22575             Vladimir Yanovsky  <yanov@il.ibm.com>
22576             Revital Eres  <eres@il.ibm.com>
22577
22578         PR tree-optimization/34263
22579         * tree-outof-ssa.c (process_single_block_loop_latch,
22580         contains_tree_r): New functions.
22581         (analyze_edges_for_bb): Call process_single_block_loop_latch
22582         function to empty single-basic-block latch block if possible.
22583
22584 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22585
22586         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
22587         for TARGET_RECIP.
22588         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
22589
22590 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
22591
22592         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
22593
22594 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
22595
22596         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
22597
22598 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
22599
22600         PR tree-optimization/34618
22601         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
22602         flag from T.
22603
22604 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
22605
22606         PR target/34673
22607         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
22608         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
22609         Update copyright year.
22610
22611         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
22612         Update copyright year.
22613         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
22614         using NR fixup.
22615
22616 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
22617
22618         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
22619         edge does not point to current bb before changing need_assert.
22620
22621 2008-01-04  Richard Guenther  <rguenther@suse.de>
22622
22623         PR middle-end/34029
22624         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
22625         for verifying purposes if they are is_gimple_min_invariant.
22626
22627 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
22628
22629         PR tree-optimization/34448
22630         PR tree-optimization/34465
22631         * gimplify.c (gimplify_init_constructor): Add new parameter
22632         notify_temp_creation.  Use it.
22633         (gimplify_modify_expr_rhs): Take volatiles into account when
22634         optimizing constructors.
22635         Do not optimize constructors if gimplify_init_constructor will dump to
22636         memory.
22637         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
22638         * gcc.c-torture/compile/pr34448.c: New.
22639
22640 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
22641
22642         PR gcov-profile/34609
22643         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
22644         return_slot if result is TREE_ADDRESSABLE.
22645
22646 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
22647
22648         * config/mips/mips.md (sqrt_condition): Tweak comment.
22649         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
22650
22651 2008-01-03  Tom Tromey  <tromey@redhat.com>
22652
22653         PR c/34457
22654         * c-common.c (c_type_hash): Handle VLAs.
22655
22656 2008-01-03  Jan Hubicka  <jh@suse.cz>
22657
22658         PR tree-optimization/31081
22659         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
22660         0 when inlining and not inlining to first basic block.
22661         (remap_decl): When var is initialized to 0, don't set default_def.
22662         (expand_call_inline): Set entry_bb.
22663         * tree-inline.h (copy_body_data): Add entry_bb.
22664
22665 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
22666
22667         PR c++/34619
22668         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
22669         before returning.
22670
22671         PR tree-optimization/29484
22672         * tree-inline.c (inline_forbidden_p_2): New function.
22673         (inline_forbidden_p): Disallow inlining if some static var
22674         has an address of a local LABEL_DECL in its initializer.
22675         * doc/extend.texi (Labels as Values): Document &&foo behaviour
22676         vs. inlining.
22677
22678 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
22679
22680         PR tree-optimization/34635
22681         * tree-data-ref.c (add_other_self_distances): Make sure that the
22682         evolution step is constant.
22683
22684 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
22685
22686         PR middle-end/34608
22687         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
22688
22689 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
22690
22691         * tree-sra.c (scalarize_init): Insert the generate_element_init
22692         statements after the generate_element_zero statements.
22693
22694 2008-01-02  Richard Guenther  <rguenther@suse.de>
22695
22696         PR middle-end/34093
22697         PR middle-end/31976
22698         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
22699         for very large number of operands instead of ICEing.
22700
22701 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
22702
22703         PR target/34013
22704         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
22705         while stack probing.
22706
22707 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
22708
22709         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
22710         in C++0x mode.
22711
22712 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
22713
22714         PR libmudflap/26442
22715         * tree-mudflap.c (mx_register_decls): Guard warning by
22716         !DECL_ARTIFICIAL check.
22717
22718 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
22719
22720         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
22721         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
22722         sse5_perm<mode>): Fix constraints.